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 Paramsで TLS プロトコルをTLSv1.2またはTLSv1.3に設定します。
注記:
- TiDB Cloud はTLS 接続をサポートしています。 TLSv1.2およびTLSv1.3で TLS プロトコルを選択できます (例:
enabledTLSProtocols=TLSv1.2
)。 - JDBC 経由でTiDB Cloudへの TLS 接続を無効にしたい場合は、特に JDBC URL Params で useSSL を
false
に設定し、SSL 接続 (例:useSSL=false
を閉じる必要があります。 - TiDB サーバーレスは 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 コネクタは、Change Data Capture (CDC) 機能をサポートしていません。
- TiDB 宛先は、デフォルトの正規化モードで
timestamp
タイプをvarchar
タイプに変換します。これは、Airbyte が送信中にタイムスタンプ タイプを文字列に変換し、TiDB がcast ('2020-07-28 14:50:15+1:00' as timestamp)
をサポートしていないために発生します。 - 一部の大規模な ELT ミッションでは、TiDB のパラメータを取引制限に増やす必要があります。