TiDB CloudとAirbyteを統合する
エアバイト 、抽出、ロード、変換 (ELT) パイプラインを構築し、データ ウェアハウス、データ レイク、データベース内のデータを統合するためのオープン ソースのデータ統合エンジンです。このドキュメントでは、Airbyte をソースまたは宛先としてTiDB Cloudに接続する方法について説明します。
Airbyteをデプロイ
わずか数ステップで Airbyte をローカルに展開できます。
ワークスペースにドッカーインストールします。
Airbyte ソース コードを複製します。
git clone https://github.com/airbytehq/airbyte.git && \ cd airbytedocker-compose で Docker イメージを実行します。
docker-compose up
Airbyte バナーが表示されたら、ユーザー名 ( airbyte
) とパスワード ( password
) を使用してhttp://ローカルホスト:8000に移動し、UI にアクセスできます。
airbyte-server | ___ _ __ __
airbyte-server | / | (_)____/ /_ __ __/ /____
airbyte-server | / /| | / / ___/ __ \/ / / / __/ _ \
airbyte-server | / ___ |/ / / / /_/ / /_/ / /_/ __/
airbyte-server | /_/ |_/_/_/ /_.___/\__, /\__/\___/
airbyte-server | /____/
airbyte-server | --------------------------------------
airbyte-server | Now ready at http://localhost:8000/
airbyte-server | --------------------------------------
TiDBコネクタを設定する
便利なことに、TiDB をソースと宛先として設定する手順は同じです。
サイドバーの「ソース」または「宛先」をクリックし、TiDB タイプを選択して新しい TiDB コネクタを作成します。
次のパラメータを入力してください。
- ホスト: TiDB Cloudクラスターのエンドポイント
- ポート: データベースのポート
- データベース: データを同期するデータベース
- ユーザー名: データベースにアクセスするためのユーザー名
- パスワード: ユーザー名のパスワード
パラメータ値は、クラスターの接続ダイアログから取得できます。ダイアログを開くには、プロジェクトのクラスターページに移動し、ターゲット クラスターの名前をクリックして概要ページに移動し、右上隅の[接続]をクリックします。
SSL 接続を有効にし、 JDBC URL パラメータで TLS プロトコルをTLSv1.2またはTLSv1.3に設定します。
注記:
- TiDB Cloud はTLS 接続をサポートしています。TLSv1.2 およびTLSv1.3で TLS プロトコルを選択できます(例:
enabledTLSProtocols=TLSv1.2
。 - JDBC 経由でTiDB Cloudへの TLS 接続を無効にする場合は、JDBC URL パラメータで useSSL を
false
に設定し、SSL 接続を閉じる必要があります (例:useSSL=false
)。 - TiDB Cloud Serverless は TLS 接続のみをサポートします。
- TiDB Cloud はTLS 接続をサポートしています。TLSv1.2 およびTLSv1.3で TLS プロトコルを選択できます(例:
コネクタの作成を完了するには、[ソースまたは宛先の**設定**] をクリックします。次のスクリーンショットは、ソースとしての TiDB の構成を示しています。
TiDB から Snowflake、CSV ファイルから TiDB など、ソースと宛先の任意の組み合わせを使用できます。
TiDB コネクタの詳細については、 TiDB ソースおよびTiDB 宛先参照してください。
接続を設定する
ソースと宛先を設定したら、接続を構築して構成できます。
次の手順では、ソースと宛先の両方として TiDB を使用します。他のコネクタではパラメータが異なる場合があります。
サイドバーの「接続」をクリックし、 「新しい接続」をクリックします。
以前に確立したソースと宛先を選択します。
[接続の**設定]**パネルに移動し、接続の名前 (例:
${source_name} - ${destination-name}
を作成します。レプリケーション頻度を**24 時間ごと**に設定します。これは、接続が 1 日に 1 回データを複製することを意味します。
宛先名前空間を**カスタム形式に設定し、名前空間カスタム形式を**テストに設定して、すべてのデータを
test
データベースに保存します。同期モードを**「完全更新 | 上書き」**に選択します。
ヒント:
TiDB コネクタは増分同期と完全更新同期両方をサポートします。
- 増分モードでは、Airbyte は最後の同期ジョブ以降にソースに追加されたレコードのみを読み取ります。増分モードを使用した最初の同期は、完全更新モードと同等です。
- フル リフレッシュ モードでは、Airbyte はソース内のすべてのレコードを読み取り、同期タスクごとに宛先に複製します。Airbyte のNamespaceという名前のテーブルごとに同期モードを個別に設定できます。
デフォルトの正規化モードを使用するには、 「正規化と変換」を「正規化された表形式データ」に設定するか、ジョブの dbt ファイルを設定することができます。正規化の詳細については、 変換と正規化を参照してください。
[接続の設定]をクリックします。
接続が確立されたら、 [有効]をクリックして同期タスクをアクティブにします。 [今すぐ同期]をクリックしてすぐに同期することもできます。
制限事項
- TiDB コネクタは、TiCDC が提供する変更データ キャプチャ (CDC) 機能を使用できません。増分同期はカーソル メカニズムに基づいて実行されます。
- TiDB の宛先は、デフォルトの正規化モードで
timestamp
型をvarchar
型に変換します。これは、Airbyte が送信中にタイムスタンプ型を文字列に変換し、TiDB がcast ('2020-07-28 14:50:15+1:00' as timestamp)
サポートしていないために発生します。 - 一部の大規模な ELT ミッションでは、TiDB のパラメータを取引制限増やす必要があります。