📣

TiDB Cloud Serverless 现已更名为
Starter
!此页面由 AI 自动翻译,英文原文请见
此处。

将 TiDB 集成到 Amazon AppFlow

Amazon AppFlow 是一项完全托管的 API 集成服务,您可以使用它将您的软件即服务(SaaS)应用程序连接到 AWS 服务,并安全地传输数据。通过 Amazon AppFlow,您可以将数据从 TiDB 导入或导出到多种数据提供商,例如 Salesforce、Amazon S3、LinkedIn 和 GitHub。更多信息,请参见 AWS 文档中的 Supported source and destination applications

本文档描述了如何将 TiDB 与 Amazon AppFlow 集成,并以集成 TiDB Cloud Serverless 集群为例。

如果你没有 TiDB 集群,可以创建一个 TiDB Cloud Serverless 集群,该集群免费且大约在 30 秒内即可创建完成。

前提条件

第 1 步:注册 TiDB 连接器

克隆代码

克隆 集成示例代码仓库,用于 TiDB 和 Amazon AppFlow:

git clone https://github.com/pingcap-inc/tidb-appflow-integration

构建并上传 Lambda

  1. 构建包:

    cd tidb-appflow-integration mvn clean package
  2. (可选)如果尚未配置 AWS 访问密钥 ID 和密钥,请进行配置。

    aws configure
  3. 将 JAR 包作为 Lambda 上传:

    sam deploy --guided

    如果看到类似如下的输出,说明 Lambda 已成功部署。

    Successfully created/updated stack - <stack_name> in <region>
  4. 进入 AWS Lambda 控制台,可以看到你刚刚上传的 Lambda。注意需要在右上角选择正确的区域。

    lambda dashboard

使用 Lambda 注册连接器

  1. AWS 管理控制台,导航到 Amazon AppFlow > Connectors,点击 Register new connector

    register connector

  2. Register a new connector 对话框中,选择你上传的 Lambda 函数,并用连接器名称指定连接器标签。

    register connector dialog

  3. 点击 Register。此时,TiDB 连接器注册成功。

第 2 步:创建数据流

导航到 Amazon AppFlow > Flows,点击 Create flow

create flow

设置数据流名称

输入数据流名称,然后点击 Next

name flow

设置源表和目标表

选择 Source detailsDestination details。TiDB 连接器可以在两者中使用。

  1. 选择源名称。本文以 Salesforce 作为示例源。

    salesforce source

    注册到 Salesforce 后,Salesforce 会向你的平台添加一些示例数据。以下步骤将以 Account 对象作为示例源对象。

    salesforce data

  2. 点击 Connect

    1. Connect to Salesforce 对话框中,指定此连接的名称,然后点击 Continue

      connect to salesforce

    2. 点击 Allow,确认 AWS 可以读取你的 Salesforce 数据。

      allow salesforce

  3. Destination details 区域,选择 TiDB-Connector 作为目标。此时会显示 Connect 按钮。

    tidb dest

  4. 在点击 Connect 之前,你需要在 TiDB 中创建一个 sf_account 表,用于存储 Salesforce 的 Account 对象。注意,此表结构与 Amazon AppFlow 教程 中的示例数据不同。

    CREATE TABLE `sf_account` ( `id` varchar(255) NOT NULL, `name` varchar(150) NOT NULL DEFAULT '', `type` varchar(150) NOT NULL DEFAULT '', `billing_state` varchar(255) NOT NULL DEFAULT '', `rating` varchar(255) NOT NULL DEFAULT '', `industry` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`) );
  5. sf_account 表创建完成后,点击 Connect。会显示连接对话框。

  6. Connect to TiDB-Connector 对话框中,输入 TiDB 集群的连接属性。如果使用 TiDB Cloud Serverless 集群,需要将 TLS 选项设置为 Yes,以启用 TLS 连接。然后点击 Connect

    tidb connection message

  7. 现在可以获取你指定连接的数据库中的所有表。从下拉列表中选择 sf_account 表。

    database

    下图显示了将 Salesforce Account 对象中的数据传输到 TiDB 中 sf_account 表的配置示例:

    complete flow

  8. Error handling 区域,选择 Stop the current flow run。在 Flow trigger 区域,选择 Run on demand 触发类型,即需要手动运行数据流。然后点击 Next

    complete step1

设置映射规则

将 Salesforce 中 Account 对象的字段映射到 TiDB 中的 sf_account 表,然后点击 Next

  • sf_account 表在 TiDB 中是新建且为空的。

    test> SELECT * FROM sf_account; +----+------+------+---------------+--------+----------+ | id | name | type | billing_state | rating | industry | +----+------+------+---------------+--------+----------+ +----+------+------+---------------+--------+----------+
  • 设置映射规则时,可以在左侧选择源字段名,在右侧选择目标字段名,然后点击 Map fields,规则即被设置。

    add mapping rule

  • 本文档中需要的映射规则(源字段名 -> 目标字段名)包括:

    • Account ID -> id

    • Account Name -> name

    • Account Type -> type

    • Billing State/Province -> billing_state

    • Account Rating -> rating

    • Industry -> industry

      mapping a rule

      show all mapping rules

(可选)设置过滤器

如果你想为数据字段添加过滤条件,可以在此设置。否则跳过此步骤,点击 Next

filters

确认并创建数据流

确认即将创建的数据流信息。如果一切正常,点击 Create flow

review

第 3 步:运行数据流

在新建数据流的页面,点击右上角的 Run flow

run flow

下图显示了数据流成功运行的示例:

run success

查询 sf_account 表,即可看到 Salesforce Account 对象中的记录已写入其中:

test> SELECT * FROM sf_account; +--------------------+-------------------------------------+--------------------+---------------+--------+----------------+ | id | name | type | billing_state | rating | industry | +--------------------+-------------------------------------+--------------------+---------------+--------+----------------+ | 001Do000003EDTlIAO | Sample Account for Entitlements | null | null | null | null | | 001Do000003EDTZIA4 | Edge Communications | Customer - Direct | TX | Hot | Electronics | | 001Do000003EDTaIAO | Burlington Textiles Corp of America | Customer - Direct | NC | Warm | Apparel | | 001Do000003EDTbIAO | Pyramid Construction Inc. | Customer - Channel | null | null | Construction | | 001Do000003EDTcIAO | Dickenson plc | Customer - Channel | KS | null | Consulting | | 001Do000003EDTdIAO | Grand Hotels & Resorts Ltd | Customer - Direct | IL | Warm | Hospitality | | 001Do000003EDTeIAO | United Oil & Gas Corp. | Customer - Direct | NY | Hot | Energy | | 001Do000003EDTfIAO | Express Logistics and Transport | Customer - Channel | OR | Cold | Transportation | | 001Do000003EDTgIAO | University of Arizona | Customer - Direct | AZ | Warm | Education | | 001Do000003EDThIAO | United Oil & Gas, UK | Customer - Direct | UK | null | Energy | | 001Do000003EDTiIAO | United Oil & Gas, Singapore | Customer - Direct | Singapore | null | Energy | | 001Do000003EDTjIAO | GenePoint | Customer - Channel | CA | Cold | Biotechnology | | 001Do000003EDTkIAO | sForce | null | CA | null | null | +--------------------+-------------------------------------+--------------------+---------------+--------+----------------+

重要事项

需要帮助?

DiscordSlack 社区提问,或提交支持工单

文档内容是否有帮助?