TiDBとAmazon AppFlowを統合する
Amazon AppFlow Software as a Service (SaaS) アプリケーションを AWS サービスに接続し、データを安全に転送するために使用するフルマネージド API 統合サービスです。 Amazon AppFlow を使用すると、TiDB との間で、Salesforce、Amazon S3、LinkedIn、GitHub などのさまざまなタイプのデータプロバイダーにデータをインポートおよびエクスポートできます。詳細については、AWS ドキュメントのサポートされている送信元および送信先アプリケーション参照してください。
このドキュメントでは、TiDBをAmazon AppFlowと統合する方法について説明し、 TiDB Cloud Starterインスタンスの統合を例として取り上げます。
TiDB Cloud Starterインスタンスをお持ちでない場合は、 TiDB Cloudクイックスタート手順に従って作成できます。インスタンスは無料で、約30秒で作成できます。
前提条件
JDK 11以降
メイブン3.8以上
AWS CLIバージョン 2
次の要件を持つ AWS IDおよびアクセス管理(IAM)ユーザー:
ユーザーはアクセスキーを使用して AWS にアクセスできます。
ユーザーには以下の権限が付与されています。
AWSCertificateManagerFullAccess: AWS Secrets Manager読み書きに使用されます。AWSCloudFormationFullAccess: SAM CLI はAWS CloudFormationを使用して AWS リソースを宣言します。AmazonS3FullAccess: AWS CloudFormation はAmazon S3を使用して公開します。AWSLambda_FullAccess: 現在、Amazon AppFlow 用の新しいコネクタを実装する方法はAWS Lambdaのみです。IAMFullAccess: SAM CLI はコネクタ用にConnectorFunctionRoleを作成する必要があります。
セールスフォースアカウント。
ステップ1. TiDBコネクタを登録する
コードを複製する
TiDB と Amazon AppFlow の統合例のコードリポジトリクローンを作成します。
git clone https://github.com/pingcap-inc/tidb-appflow-integration
Lambda関数を構築してアップロードする
パッケージを作成する:
cd tidb-appflow-integration mvn clean package(オプション)AWSアクセスキーIDとシークレットアクセスキーを設定していない場合は、設定してください。
aws configureJARパッケージをLambda関数としてアップロードしてください。
sam deploy --guided注記:
--guidedオプションでは、プロンプトが表示され、デプロイの手順を案内します。入力内容は構成ファイルに保存され、デフォルトではsamconfig.tomlというファイルになります。stack_nameデプロイする AWS Lambda の名前を指定します。- このガイドでは、TiDB Cloud Starterのクラウド プロバイダーとして 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>AWS Lambdaコンソールにアクセスすると、先ほどアップロードしたLambda関数が表示されます。ウィンドウの右上隅で正しいリージョンを選択する必要があることに注意してください。
Lambdaを使用してコネクタを登録します
AWS マネジメントコンソールコンソールで、 Amazon AppFlow > コネクタクリックし、 [新しいコネクタの登録] をクリックします。
「新しいコネクタを登録」ダイアログで、アップロードしたLambda関数を選択し、コネクタ名を使用してコネクタラベルを指定します。
「登録」をクリックします。すると、TiDBコネクタが正常に登録されます。
ステップ2. フローを作成する
Amazon AppFlow > フローし、 [フローの作成] をクリックします。
フロー名を設定します
フロー名を入力し、 「次へ」をクリックします。
ソーステーブルと宛先テーブルを設定します。
ソースの詳細と宛先の詳細を選択してください。TiDBコネクタはどちらにも使用できます。
ソース名を選択してください。このドキュメントでは、例としてSalesforceをソースとして使用します。
Salesforceに登録すると、Salesforceはプラットフォームにサンプルデータを追加します。以下の手順では、アカウントオブジェクトをサンプルソースオブジェクトとして使用します。
「接続」をクリックしてください。
「Salesforceに接続」ダイアログで、この接続の名前を指定し、 「続行」をクリックします。
「許可」をクリックして、AWSがSalesforceデータを読み取ることを許可することを確認してください。
注記:
会社がすでに Salesforce の Professional Edition を使用している場合、REST API はデフォルトでは有効になっていません。 REST API を使用するには、新しい Developer Edition の登録が必要になる場合があります。詳細については、 Salesforceフォーラムトピックを参照してください。
「接続先の詳細」エリアで、接続先として「TiDB-Connector」を選択します。「接続」ボタンが表示されます。
「接続」をクリックする前に、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`) );sf_accountテーブルが作成されたら、 [接続]をクリックします。接続ダイアログが表示されます。TiDBコネクタへの接続ダイアログで、 TiDB Cloud Starterインスタンスの接続プロパティを入力します。TiDB Cloud Starterの場合、 TLSオプションを
Yesに設定する必要があります。これにより、TiDBコネクタがTLS接続を使用できるようになります。次に、 [接続]をクリックします。これで、接続時に指定したデータベース内のすべてのテーブルを取得できます。ドロップダウンリストからsf_accountテーブルを選択してください。
次のスクリーンショットは、Salesforce Accountオブジェクトから TiDB の
sf_accountテーブルにデータを転送するための設定を示しています。エラー処理領域で、 「現在のフロー実行を停止する」を選択します。フローのトリガー領域で、 「オンデマンドで実行」トリガータイプを選択します。これは、フローを手動で実行する必要があることを意味します。次に、 「次へ」をクリックします。
マッピングルールを設定する
Salesforce のAccountオブジェクトのフィールドを TiDB のsf_accountテーブルにマッピングし、 [次へ]をクリックします。
sf_accountテーブルは TiDB に新しく作成されましたが、空です。test> SELECT * FROM sf_account; +----+------+------+---------------+--------+----------+ | id | name | type | billing_state | rating | industry | +----+------+------+---------------+--------+----------+ +----+------+------+---------------+--------+----------+マッピングルールを設定するには、左側でソースフィールド名を選択し、右側で宛先フィールド名を選択します。次に、 「フィールドのマッピング」をクリックすると、ルールが設定されます。
このドキュメントでは、以下のマッピングルール(ソースフィールド名→宛先フィールド名)が必要です。
- アカウントID -> id
- アカウント名 -> 名前
- アカウントタイプ -> タイプ
- 請求先州/都道府県 -> billing_state
- アカウント評価 -> 評価
- 産業 -> 産業
(オプション)フィルターを設定する
データフィールドにフィルターを追加したい場合は、ここで設定できます。そうでない場合は、この手順をスキップして「次へ」をクリックしてください。
フローを確認して作成する
作成するフローの情報を確認してください。問題がなければ、 「フローを作成」をクリックします。
ステップ3. フローを実行する
新しく作成したフローのページで、右上隅にある「フローを実行」をクリックします。
以下のスクリーンショットは、フローが正常に実行された例を示しています。
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 |
+--------------------+-------------------------------------+--------------------+---------------+--------+----------------+
注目すべきこと
- 何か問題が発生した場合は、AWS マネジメントコンソールのCloudWatchページにアクセスしてログを取得できます。
- このドキュメントの手順は、 Amazon AppFlow Custom Connector SDK を使用したカスタムコネクタの構築に基づいています。
- TiDB Cloud Starterは本番環境ではありません。
- 長くなりすぎないように、このドキュメントの例では
Insert戦略のみを示していますが、UpdateおよびUpsert戦略もテスト済みで使用できます。
お困りですか?
- 不和or スラックコミュニティに質問してください。
- TiDB Cloudのサポートチケットを送信してください
- TiDB Self-Managedのサポートチケットを送信してください




















