📣
TiDB Cloud Essential 开放公测中。此页面由 AI 自动翻译,英文原文请见此处。

将 TiDB 集成到 Amazon AppFlow



Amazon AppFlow 是一项全托管的 API 集成 service,可用于将你的 SaaS 应用程序与 AWS service 连接,并安全地传输数据。通过 Amazon AppFlow,你可以在 TiDB 与多种数据提供方之间导入和导出数据,例如 Salesforce、Amazon S3、LinkedIn 和 GitHub。更多信息请参见 AWS 文档中的 Supported source and destination applications

本文档介绍如何将 TiDB 集成到 Amazon AppFlow,并以集成 TiDB Cloud Starter cluster 为例。

如果你还没有 TiDB cluster,可以创建一个 TiDB Cloud Starter cluster,该 cluster 免费且大约 30 秒即可创建完成。

前置条件

步骤 1. 注册 TiDB connector

克隆代码

克隆 TiDB 与 Amazon AppFlow 的 集成示例代码仓库

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

构建并上传 Lambda

  1. 构建 package:

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

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

    sam deploy --guided

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

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

    lambda dashboard

使用 Lambda 注册 connector

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

    register connector

  2. Register a new connector 对话框中,选择你上传的 Lambda function,并使用 connector 名称指定 connector label。

    register connector dialog

  3. 点击 Register,此时 TiDB connector 注册成功。

步骤 2. 创建 flow

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

create flow

设置 flow 名称

输入 flow 名称,然后点击 Next

name flow

设置 source 和 destination 表

选择 Source detailsDestination details。TiDB connector 可用于两者。

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

    salesforce source

    注册 Salesforce 后,Salesforce 会在你的平台中添加一些示例数据。接下来的步骤将以 Account 对象作为示例 source 对象。

    salesforce data

  2. 点击 Connect

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

      connect to salesforce

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

      allow salesforce

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

    tidb dest

  4. 在点击 Connect 之前,需要在 TiDB 中为 Salesforce 的 Account 对象创建 sf_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 cluster 的连接属性。如果你使用 TiDB Cloud Starter cluster,需要将 TLS 选项设置为 Yes,以便 TiDB connector 使用 TLS 连接。然后点击 Connect

    tidb connection message

  7. 现在你可以获取到指定 database 下的所有表。从下拉列表中选择 sf_account 表。

    database

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

    complete flow

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

    complete step1

设置映射规则

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

  • sf_account 表在 TiDB 中是新建的,当前为空。

    test> SELECT * FROM sf_account; +----+------+------+---------------+--------+----------+ | id | name | type | billing_state | rating | industry | +----+------+------+---------------+--------+----------+ +----+------+------+---------------+--------+----------+
  • 设置映射规则时,可以在左侧选择 source field 名称,右侧选择 destination field 名称。然后点击 Map fields,即可设置一条规则。

    add mapping rule

  • 本文档需要以下映射规则(Source field name -> Destination field name):

    • 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

(可选)设置过滤器

如果你希望为数据 field 添加过滤器,可以在此设置。否则跳过此步骤,点击 Next

filters

确认并创建 flow

确认即将创建的 flow 信息。如果一切无误,点击 Create flow

review

步骤 3. 运行 flow

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

run flow

下图展示了 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 | +--------------------+-------------------------------------+--------------------+---------------+--------+----------------+

注意事项

需要帮助?

文档内容是否有帮助?