📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。立即体验 →
​
​

TiDB 与 Amazon AppFlow 集成指南



Amazon AppFlow 是一项全托管的 API 集成服务,可用于将软件即服务 (SaaS) 应用与 AWS 服务连接,并安全地传输数据。通过 Amazon AppFlow,你可以在 TiDB 与多种数据提供方之间导入和导出数据,例如 Salesforce、Amazon S3、LinkedIn 和 GitHub。更多信息请参见 AWS 文档中的支持的源和目标应用。

本文档介绍了如何将 TiDB 与 Amazon AppFlow 进行集成,并以集成 TiDB Cloud Starter 实例为例进行说明。

如果你还没有 TiDB Cloud Starter 实例,可以按照 TiDB Cloud 快速上手指南 创建一个,该实例免费,且大约 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 access key ID 和 secret access key,请进行配置。

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

    sam deploy --guided

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

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

    lambda dashboard

使用 Lambda 注册连接器

  1. 在 AWS 管理控制台 中,前往 Amazon AppFlow > Connectors,然后点击 Register new connector。

    register connector

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

    register connector dialog

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

第 2 步:创建 flow

前往 Amazon AppFlow > Flows,点击 Create flow。

create flow

设置 flow 名称

输入 flow 名称,然后点击 Next。

name flow

设置源表和目标表

选择 Source details 和 Destination 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 中为 Salesforce 的 Account 对象创建一个 sf_account 表。注意该表结构与 Tutorial of 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 Cloud Starter 实例的连接属性。对于 TiDB Cloud Starter,需要将 TLS 选项设置为 Yes,这样 TiDB 连接器会使用 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 触发类型,表示你需要手动运行 flow。然后点击 Next。

    complete step1

设置映射规则

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

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

    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

确认并创建 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 | +--------------------+-------------------------------------+--------------------+---------------+--------+----------------+

注意事项

需要帮助?

文档内容是否有帮助?