TiDB CloudとAirbyteを統合する
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://localhost: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** (例:
enabledTLSProtocols=TLSv1.2
)の中から、ご希望のTLSプロトコルを選択できます。 - JDBC 経由でTiDB Cloudへの TLS 接続を無効にする場合は、JDBC URL パラメータで useSSL を
false
に設定し、SSL 接続を閉じる必要があります (例:useSSL=false
)。 - TiDB Cloud Starter とTiDB Cloud Essential は TLS 接続のみをサポートします。
- TiDB CloudはTLS接続をサポートしています。TLSv1.2と**TLSv1.3** (例:
「ソースまたは宛先の**設定」**をクリックしてコネクタの作成を完了します。次のスクリーンショットは、ソースとして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 のパラメータを取引制限増やす必要があります。