TiDB Cloud Lake へのシンク
TiDB Cloud では、サードパーティの ETL ツールを使わずに、Data Pipeline を使用して TiDB Cloud Premium インスタンスから TiDB Cloud Lake に完全データと増分変更をレプリケートできます。まず、選択したソースデータの完全スナップショットをエクスポートし、その後は行の変更を継続的にレプリケートできるため、TiDB Cloud Lake 内のデータを最新の状態に保てます。
制限事項
- TiDB Cloud Lake の Warehouse は、TiDB Cloud インスタンスと同じリージョンに存在する必要があります。
- 増分レプリケーションを行えるのは、主キーを持つテーブルのみです。主キーのないテーブルは、パイプライン作成時の Filter results パネルに表示されます。同期対象に含めた場合でも、それらの増分レプリケーションはスキップされます。
- TiDB Cloud Premium インスタンスごとに、最大 100 個の changefeed を作成できます。増分レプリケーションを含む各データパイプラインは、1 つの changefeed スロットを消費します。
- データパイプラインを削除しても、TiDB Cloud Lake にすでに書き込まれたデータや、Warehouse 内のターゲットデータベースおよびテーブルは削除されません。
前提条件
開始する前に、以下を用意してください。
- TiDB Cloud Premium インスタンス。デプロイされているリージョンを確認しておいてください。
- インスタンスと同じリージョンにある TiDB Cloud Lake の Warehouse。まだない場合は、まず TiDB Cloud Lake コンソール で作成してください。データパイプライン作成時に選択できるのは、インスタンスと同じリージョンの Warehouse のみです。
- 外部 stage バケット: Amazon S3 バケットまたは Alibaba Cloud OSS バケット。インスタンスと同じリージョンに作成してください。
- ソーステーブルを読み取れる TiDB データベースユーザーのユーザー名とパスワード。
データパイプラインを作成する
データパイプラインを作成するには、送信先、外部 stage、およびレプリケーションを設定する必要があります。
ステップ 1. 送信先を設定する
TiDB Cloud コンソール で、対象の TiDB Cloud Premium インスタンスの概要ページに移動し、左側のナビゲーションペインで Data > Data Pipeline をクリックして、右上の Create Data Pipeline をクリックします。
Destination エリアで、以下のフィールドを設定します。
- Destination: TiDB Cloud Lake を選択します。
- Warehouse: ターゲットの Warehouse を選択します。表示されるのは、インスタンスと同じリージョンにある Warehouse のみです。利用可能な Warehouse がない場合は、まず TiDB Cloud Lake で作成し、その後リストを更新してください。
(任意)Database Prefix、Database Suffix、Table Prefix、Table Suffix フィールドでターゲットの命名規則を設定します。デフォルトでは 4 つのフィールドはすべて空であり、この場合 TiDB Cloud Lake に作成されるデータベース名とテーブル名はソースと同じ名前になります。
- データベース名:
<database prefix><source database name><database suffix> - テーブル名:
<table prefix><source table name><table suffix>
- データベース名:
ステップ 2. 外部 stage を設定する
外部 stage は、データパイプラインの両側をつなぐオブジェクトストレージです。TiDB Cloud はエクスポートしたスナップショットとキャプチャした行変更を stage に書き込み、TiDB Cloud Lake は stage からデータをロード (load) してターゲット Warehouse に取り込みます。詳細は、データパイプラインで外部 stage が必要なのはなぜですか? を参照してください。
TiDB Cloud Data Pipeline は、外部 stage として Amazon S3 および Alibaba Cloud OSS をサポートしています。バケットは TiDB Cloud Premium インスタンスと同じリージョンに作成し、先にクラウドプロバイダー側の設定を完了してください。設定手順はクラウドプロバイダーによって異なります。
External Stage エリアで、S3 バケットの Bucket URI を
s3://<bucket-name>/<path-to-data>/形式で入力します。それ以外のフィールドは、いったん空のままにしてください。後続のセクションで説明するいずれかの方法でバケットアクセスを設定した後に入力します。
TiDB Cloud が外部 stage にデータを書き込み、TiDB Cloud Lake がそこからデータを読み取れるようにするには、Bucket Access エリアでバケットアクセスを設定します。以下のいずれかの方法を選択し、それに応じて認可を完了してください。
方法 1: AWS Role ARN を使用する(推奨)
1 つの IAM ロールを TiDB Cloud(stage への書き込み)と TiDB Cloud Lake(stage からの読み取り)で共有するため、認可設定は 1 回で済み、長期有効なアクセスキーを保存する必要もありません。TiDB Cloud が提供する CloudFormation テンプレートを使ってロールを作成することも、AWS で手動設定することもできます。
AWS 側の完全な設定については、TiDB Cloud Data Pipeline 用の外部 stage を設定する (AWS) を参照してください。ロールを作成したら、TiDB Cloud コンソールで
RoleARNの出力値を Role ARN フィールドに貼り付け、SQS キューも作成した場合は、そのキュー URL を SQS Queue URL フィールドに貼り付けます。方法 2: AWS アクセスキーを使用する
IAM ユーザー、その権限、および任意の SQS キューを含む AWS 側の完全な設定については、アクセスキーによるバケットアクセス を参照してください。その後、TiDB Cloud コンソールで AWS Access Key を選択し、Access Key ID と Secret Access Key を入力します。
選択した方法に必要な情報を入力したら、Test Connection をクリックして TiDB Cloud がバケットにアクセスできることを確認します。チェックに失敗した場合は、バケットのリージョンと、ロールまたはアクセスキーに付与した権限を確認してから、再度接続をテストしてください。
RAM ユーザー、その権限、およびアクセスキーを含む OSS 側の完全な設定については、TiDB Cloud Data Pipeline 用の外部 stage を設定する (Alibaba Cloud) を参照してください。
External Stage エリアで、OSS バケットの Bucket URI を
oss://<bucket-name>/<path-to-data>/形式で入力します。以下のフィールドを入力します。
- Access Key ID: RAM ユーザーの AccessKey ID。
- Access Key Secret: RAM ユーザーの AccessKey Secret。
Test Connection をクリックして、TiDB Cloud がバケットにアクセスできることを確認します。チェックに失敗した場合は、バケットのリージョンと、RAM ユーザーに付与した権限を確認してから、再度接続をテストしてください。
ステップ 3. レプリケーションを設定する
Replication Data エリアで、データのレプリケーション方法を設定します。
Sync Mode: 同期モードを選択します。
- Full Data + Incremental Data(デフォルト): 選択したソースデータの完全スナップショットをエクスポートし、その後、行変更を継続的にレプリケートします。継続的な同期にはこのモードを推奨します。
- Full Data: 選択したソースデータの完全スナップショットを 1 回だけエクスポートします。増分データはレプリケートされず、スナップショット取得後にソースで行われた変更は無視されます。
Sync Interval: データパイプラインのエンドツーエンドのレイテンシー目標です。changefeed のフラッシュサイクルと TiDB Cloud Lake のポーリングサイクルの両方が、エンドツーエンドのレイテンシーに影響します。間隔を短くするとデータレイテンシーは減少しますが、クラウドストレージへの API 呼び出し回数は増加します。デフォルト値はコンソールに表示されます。
Changefeed Capacity Units: 増分レプリケーションに割り当てる処理能力で、サポートされる最大レプリケーションスループットとともに表示されます。たとえば、
2 CCUs (the maximum replication throughput is 5,000 rows/s)のように表示されます。TiDB Username と TiDB Password: TiDB データベースユーザーのユーザー名とパスワードを入力します。データパイプラインはこのアカウントを使用して完全スナップショットをエクスポートするため、このアカウントにはソーステーブルへの読み取り権限が必要です。増分の行変更は、changefeed によって別途キャプチャされます。
Sync Objects: レプリケートするオブジェクトを選択します。
- Customize(デフォルト): Table Filter Rules で明示的なルールを指定します。ルール構文は TiCDC のテーブルフィルタールール と同じです。デフォルトでは、1 つの
*.*ルールですべての非システムテーブルをレプリケートします。Filter results パネルには、ルールに一致するデータベースとテーブルが表示されます。 - All: すべてのデータベースのすべてのテーブルをレプリケートします。テーブルフィルタールールの設定は非表示になります。
必要に応じて Case-sensitive を選択すると、フィルタールール内のデータベース名とテーブル名の一致判定で大文字と小文字を区別します。デフォルトでは、大文字と小文字は区別されません。
- Customize(デフォルト): Table Filter Rules で明示的なルールを指定します。ルール構文は TiCDC のテーブルフィルタールール と同じです。デフォルトでは、1 つの
Pipeline Name: データパイプラインの名前を入力します。
Create をクリックします。
完全スナップショットのエクスポート中、パイプラインは Creating 状態になります。Full Data + Incremental Data の場合、増分レプリケーションが開始されるとステータスは Running に変わります。
データパイプラインを管理する
データパイプラインを編集する
データパイプラインを編集するには、対象の TiDB Cloud Premium インスタンスの Data Pipeline に移動し、対象パイプラインの行にある ... をクリックして、Edit をクリックします。
データパイプラインが Running の間は編集できません。まずパイプラインを一時停止し、その後編集して、変更を適用するために再開してください。
送信先タイプと同期モードは、パイプライン作成後に変更できません。
データパイプラインを一時停止および再開する
- Pause: データレプリケーションを停止し、パイプラインを
Pausedとしてマークします。データが失われることはなく、レプリケーションの進行状況も保持されます。パイプラインの作成中または完全スナップショットのエクスポート中は、一時停止できません。 - Resume: 一時停止した位置からレプリケーションを再開します。これには TiDB Cloud Lake への取り込みも含まれます。
データパイプラインを一時停止または再開するには、対象の TiDB Cloud Premium インスタンスの Data Pipeline に移動し、対象パイプラインの行にある ... をクリックして、Pause または Resume をクリックします。
データパイプラインを削除する
データパイプラインを削除するには、次の手順を実行します。
対象の TiDB Cloud Premium インスタンスの Data Pipeline に移動し、対象パイプラインの行にある ... をクリックして、Delete をクリックします。
警告を読み、操作を確認します。データパイプラインを削除すると、次のようになります。
- すべてのデータレプリケーションが即座に停止します。
- パイプラインに関連付けられた TiDB Cloud Lake のデータソースと統合タスクの削除を試みます。削除に失敗した場合、これらのリソースが残り、手動でのクリーンアップが必要になることがあります。
- TiDB Cloud Lake にすでに書き込まれたデータは削除されません。
- Warehouse 内のターゲットデータベースまたはテーブルは削除されません。
この操作は元に戻せません。
関連情報
- Data Pipeline に関するよくある質問については、Data Pipeline FAQ を参照してください。
- DDL、DML、およびカラム型のサポートの詳細については、TiDB Cloud Lake 向け Data Pipeline SQL 互換性 を参照してください。