TiDB を Amazon AppFlow と統合する

Amazon アプリフローは、SaaS (Software as a Service) アプリケーションを AWS サービスに接続し、データを安全に転送するために使用する、フルマネージド API 統合サービスです。Amazon AppFlow を使用すると、Salesforce、Amazon S3、LinkedIn、GitHub など、さまざまなタイプのデータプロバイダーとの間で、TiDB からデータをインポートおよびエクスポートできます。詳細については、AWS ドキュメントのサポートされているソースおよび宛先アプリケーションを参照してください。

このドキュメントでは、TiDB を Amazon AppFlow と統合する方法について説明し、 TiDB Cloud Serverless クラスターの統合を例として取り上げます。

TiDB クラスターがない場合は、 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 アクセスキー ID とシークレットアクセスキーをまだ設定していない場合は設定します。

    aws configure
  3. JAR パッケージを Lambda としてアップロードします。

    sam deploy --guided

    注記:

    • --guidedオプションでは、プロンプトを使用してデプロイメントをガイドします。入力内容は構成ファイル (デフォルトではsamconfig.toml ) に保存されます。
    • stack_name 、デプロイする AWS Lambda の名前を指定します。
    • このガイドでは、 TiDB Cloud Serverless のクラウドプロバイダーとして AWS を使用します。Amazon S3 をソースまたは宛先として使用するには、AWS Lambda のregionを Amazon S3 と同じに設定する必要があります。
    • すでにsam deploy --guided実行している場合は、代わりにsam deploy実行するだけで、SAM CLI は構成ファイルsamconfig.tomlを使用して対話を簡素化します。

    次のような出力が表示された場合、この Lambda は正常にデプロイされています。

    Successfully created/updated stack - <stack_name> in <region>
  4. AWS Lambda コンソールに移動すると、アップロードしたばかりの Lambda が表示されます。ウィンドウの右上隅で正しいリージョンを選択する必要があることに注意してください。

    lambda dashboard

Lambdaを使用してコネクタを登録する

  1. AWS マネジメントコンソールAmazon AppFlow > コネクタに移動し、 「新しいコネクタの登録」をクリックします。

    register connector

  2. 「新しいコネクタの登録」ダイアログで、アップロードした Lambda 関数を選択し、コネクタ名を使用してコネクタ ラベルを指定します。

    register connector dialog

  3. 「登録」をクリックします。すると、TiDB コネクタが正常に登録されます。

ステップ2. フローを作成する

Amazon AppFlow > フローに移動し、 「フローの作成」をクリックします。

create flow

フロー名を設定する

フロー名を入力し、 「次へ」をクリックします。

name flow

ソーステーブルと宛先テーブルを設定する

ソースの詳細宛先の詳細を選択します。TiDB コネクタは両方で使用できます。

  1. ソース名を選択します。このドキュメントでは、サンプルソースとしてSalesforce を使用します。

    salesforce source

    Salesforce に登録すると、Salesforce はプラットフォームにいくつかのサンプル データを追加します。次の手順では、サンプル ソース オブジェクトとしてAccountオブジェクトを使用します。

    salesforce data

  2. [接続]クリックします。

    1. 「Salesforce に接続」ダイアログで、この接続の名前を指定し、 「続行」をクリックします。

      connect to salesforce

    2. 「許可」をクリックして、AWS が Salesforce データを読み取ることができることを確認します。

      allow salesforce

    注記:

    会社ですでに Salesforce の Professional Edition を使用している場合、REST API はデフォルトでは有効になっていません。REST API を使用するには、新しい Developer Edition を登録する必要がある場合があります。詳細については、 Salesforce フォーラムトピックを参照してください。

  3. 宛先の詳細領域で、宛先としてTiDB-Connectorを選択します。接続ボタンが表示されます。

    tidb dest

  4. 「接続」をクリックする前に、Salesforce Accountオブジェクト用に TiDB に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テーブルが作成されたら、 [接続]をクリックします。接続ダイアログが表示されます。

  6. 「TiDB コネクタに接続」ダイアログで、TiDB クラスターの接続プロパティを入力します。TiDB TiDB Cloud Serverless クラスターを使用する場合は、 TLSオプションをYesに設定して、TiDB コネクタが TLS 接続を使用できるようにする必要があります。次に、 「接続」をクリックします。

    tidb connection message

  7. これで、接続用に指定したデータベース内のすべてのテーブルを取得できます。ドロップダウン リストからsf_accountテーブルを選択します。

    database

    次のスクリーンショットは、Salesforceアカウントオブジェクトから TiDB のsf_accountテーブルにデータを転送するための構成を示しています。

    complete flow

  8. エラー処理領域で、現在のフロー実行を停止を選択します。フロートリガー領域で、オンデマンドトリガータイプ(フローを手動で実行する必要があることを意味する)を選択します。次に、次へをクリックします。

    complete step1

マッピングルールを設定する

Salesforce のAccountオブジェクトのフィールドを TiDB のsf_accountテーブルにマップし、 [次へ]をクリックします。

  • sf_accountテーブルが TiDB に新しく作成され、空です。

    test> SELECT * FROM sf_account; +----+------+------+---------------+--------+----------+ | id | name | type | billing_state | rating | industry | +----+------+------+---------------+--------+----------+ +----+------+------+---------------+--------+----------+
  • マッピングルールを設定するには、左側でソースフィールド名を選択し、右側で宛先フィールド名を選択します。次に、 「フィールドのマップ」をクリックすると、ルールが設定されます。

    add mapping rule

  • このドキュメントでは、次のマッピング ルール (ソース フィールド名 -> 宛先フィールド名) が必要です。

    • アカウントID -> id
    • アカウント名 -> 名前
    • アカウントタイプ -> タイプ
    • 請求先州/県 -> billing_state
    • アカウント評価 -> 評価
    • 業界 -> 業界

    mapping a rule

    show all mapping rules

(オプション)フィルターを設定する

データ フィールドにフィルターを追加する場合は、ここで設定できます。それ以外の場合は、この手順をスキップして[次へ]をクリックします。

filters

フローを確認して作成する

作成するフローの情報を確認します。問題がなければ、 「フローを作成」をクリックします。

review

ステップ3. フローを実行する

新しく作成されたフローのページで、右上隅の「フロー実行」をクリックします。

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 | +--------------------+-------------------------------------+--------------------+---------------+--------+----------------+

注目すべきこと

ヘルプが必要ですか?

TiDB コミュニティ 、またはサポートチケットを作成するについて質問します。

このページは役に立ちましたか?