TiCDC OpenAPI v2

TiCDC は、TiCDC クラスターのクエリと操作のための OpenAPI 機能を提供します。 OpenAPI 機能はcdc cliツールのサブセットです。

注記:

TiCDC OpenAPI v1 は将来削除される予定です。 TiCDC OpenAPI v2 を使用することをお勧めします。

API を使用して、TiCDC クラスター上で次のメンテナンス操作を実行できます。

すべての API のリクエスト本文と戻り値は JSON 形式です。リクエストが成功すると、 200 OKメッセージが返されます。次のセクションでは、API の具体的な使用法について説明します。

次の例では、TiCDCサーバーのリスニング IP アドレスは127.0.0.1 、ポートは8300です。 TiCDCサーバーを起動するときに、 --addr=ip:port介して TiCDC にバインドされる IP アドレスとポートを指定できます。

APIエラーメッセージテンプレート

API リクエストの送信後にエラーが発生した場合、返されるエラー メッセージの形式は次のとおりです。

{ "error_msg": "", "error_code": "" }

上記の JSON 出力では、 error_msgエラー メッセージを示し、 error_codeは対応するエラー コードを示します。

APIリストインターフェースの戻り形式

API リクエストがリソースのリスト (たとえば、すべてCapturesのリスト) を返す場合、TiCDC の戻り形式は次のとおりです。

{ "total": 2, "items": [ { "id": "d2912e63-3349-447c-90ba-wwww", "is_owner": true, "address": "127.0.0.1:8300" }, { "id": "d2912e63-3349-447c-90ba-xxxx", "is_owner": false, "address": "127.0.0.1:8302" } ] }

上の例では:

  • total : リソースの総数を示します。
  • items : このリクエストによって返されたすべてのリソースを含む配列。配列のすべての要素は同じリソースに属します。

TiCDC ノードのステータス情報を取得する

この API は同期インターフェイスです。リクエストが成功すると、該当ノードのステータス情報が返されます。

リクエストURI

GET /api/v2/status

次のリクエストは、IP アドレスが127.0.0.1でポート番号が8300 TiCDC ノードのステータス情報を取得します。

curl -X GET http://127.0.0.1:8300/api/v2/status
{ "version": "v7.5.1", "git_hash": "10413bded1bdb2850aa6d7b94eb375102e9c44dc", "id": "d2912e63-3349-447c-90ba-72a4e04b5e9e", "pid": 1447, "is_owner": true, "liveness": 0 }

上記の出力のパラメータは次のように説明されます。

  • version : TiCDC の現在のバージョン番号。
  • git_hash : Git ハッシュ値。
  • id : ノードのキャプチャ ID。
  • pid : ノードのキャプチャ プロセス ID (PID)。
  • is_owner : ノードが所有者であるかどうかを示します。
  • liveness : このノードがライブであるかどうか。 0通常を意味します。 1ノードがgraceful shutdown状態にあることを意味します。

TiCDC クラスターの健全性ステータスを確認する

この API は同期インターフェイスです。クラスターが正常な場合は200 OKが返されます。

リクエストURI

GET /api/v2/health

curl -X GET http://127.0.0.1:8300/api/v2/health

クラスターが正常な場合、応答は200 OKで空の JSON オブジェクトになります。

{}

クラスターが正常でない場合、応答はエラー メッセージを含む JSON オブジェクトです。

レプリケーションタスクを作成する

このインターフェイスは、レプリケーション タスクを TiCDC に送信するために使用されます。リクエストが成功すると200 OKが返されます。返された結果は、サーバーがコマンドの実行に同意したことを意味するだけで、コマンドが正常に実行されることを保証するものではありません。

リクエストURI

POST /api/v2/changefeeds

パラメータの説明

{ "changefeed_id": "string", "replica_config": { "bdr_mode": true, "case_sensitive": false, "check_gc_safe_point": true, "consistent": { "flush_interval": 0, "level": "string", "max_log_size": 0, "storage": "string" }, "enable_old_value": true, "enable_sync_point": true, "filter": { "do_dbs": [ "string" ], "do_tables": [ { "database_name": "string", "table_name": "string" } ], "event_filters": [ { "ignore_delete_value_expr": "string", "ignore_event": [ "string" ], "ignore_insert_value_expr": "string", "ignore_sql": [ "string" ], "ignore_update_new_value_expr": "string", "ignore_update_old_value_expr": "string", "matcher": [ "string" ] } ], "ignore_dbs": [ "string" ], "ignore_tables": [ { "database_name": "string", "table_name": "string" } ], "ignore_txn_start_ts": [ 0 ], "rules": [ "string" ] }, "force_replicate": true, "ignore_ineligible_table": true, "memory_quota": 0, "mounter": { "worker_num": 0 }, "sink": { "column_selectors": [ { "columns": [ "string" ], "matcher": [ "string" ] } ], "csv": { "delimiter": "string", "include_commit_ts": true, "null": "string", "quote": "string" }, "date_separator": "string", "dispatchers": [ { "matcher": [ "string" ], "partition": "string", "topic": "string" } ], "enable_partition_separator": true, "encoder_concurrency": 0, "protocol": "string", "schema_registry": "string", "terminator": "string", "transaction_atomicity": "string" }, "sync_point_interval": "string", "sync_point_retention": "string" }, "sink_uri": "string", "start_ts": 0, "target_ts": 0 }

パラメータは次のように説明されます。

パラメータ名説明
changefeed_idSTRINGタイプ。レプリケーションタスクのID。 (オプション)
replica_configレプリケーションタスクのコンフィグレーションパラメータ。 (オプション)
sink_uriSTRINGタイプ。レプリケーションタスクの下流アドレス。 (必須
start_tsUINT64タイプ。変更フィードの開始 TSO を指定します。 TiCDC クラスターは、この TSO からのデータのプルを開始します。デフォルト値は現在時刻です。 (オプション)
target_tsUINT64タイプ。変更フィードのターゲット TSO を指定します。 TiCDC クラスターは、この TSO に到達するとデータのプルを停止します。デフォルト値は空です。これは、TiCDC が自動的に停止しないことを意味します。 (オプション)

changefeed_idstart_tstarget_tssink_uriの意味と形式は、ドキュメントcdc cliを使用してレプリケーション タスクを作成するに記載されているものと同じです。これらのパラメータの詳細については、そのドキュメントを参照してください。 sink_uriで証明書のパスを指定する場合は、対応する証明書を対応する TiCDCサーバーにアップロードしていることを確認してください。

replica_configパラメータの説明は次のとおりです。

パラメータ名説明
bdr_modeBOOLEANタイプ。 双方向レプリケーションを有効にするかどうかを決定します。デフォルト値はfalseです。 (オプション)
case_sensitiveBOOLEANタイプ。テーブル名をフィルタリングするときに大文字と小文字を区別するかどうかを決定します。 v7.5.0 以降、デフォルト値はtrueからfalseに変更されます。 (オプション)
check_gc_safe_pointBOOLEANタイプ。レプリケーション タスクの開始時刻が GC 時刻よりも前であることを確認するかどうかを決定します。デフォルト値はtrueです。 (オプション)
consistentREDO ログの構成パラメータ。 (オプション)
enable_sync_pointBOOLEANタイプ。 sync pointを有効にするかどうかを決定します。 (オプション)
filterfilterの構成パラメータ。 (オプション)
force_replicateBOOLEANタイプ。デフォルト値はfalseです。これをtrueに設定すると、レプリケーション タスクは一意のインデックスのないテーブルを強制的にレプリケートします。 (オプション)
ignore_ineligible_tableBOOLEANタイプ。デフォルト値はfalseです。これをtrueに設定すると、レプリケーション タスクはレプリケートできないテーブルを無視します。 (オプション)
memory_quotaUINT64タイプ。レプリケーション タスクのメモリクォータ。 (オプション)
mountermounterの構成パラメータ。 (オプション)
sinksinkの構成パラメータ。 (オプション)
sync_point_intervalSTRINGタイプ。戻り値はUINT64種類のナノ秒単位の時間であることに注意してください。 sync point機能が有効な場合、このパラメータは、Syncpoint がアップストリームとダウンストリームのスナップショットを調整する間隔を指定します。デフォルト値は10mで、最小値は30sです。 (オプション)
sync_point_retentionSTRINGタイプ。戻り値はUINT64種類のナノ秒単位の時間であることに注意してください。 sync point機能が有効な場合、このパラメータは、同期ポイントによってダウンストリーム テーブルにデータが保持される期間を指定します。この期間を超えると、データはクリーンアップされます。デフォルト値は24hです。 (オプション)

consistentパラメータは次のように説明されます。

パラメータ名説明
flush_intervalUINT64タイプ。 REDO ログ ファイルをフラッシュする間隔。 (オプション)
levelSTRINGタイプ。レプリケートされたデータの整合性レベル。 (オプション)
max_log_sizeUINT64タイプ。 REDOログの最大値。 (オプション)
storageSTRINGタイプ。storageの宛先アドレス。 (オプション)
use_file_backendBOOLタイプ。 REDO ログをローカル ファイルに保存するかどうかを指定します。 (オプション)
encoding_worker_numINTタイプ。 REDO モジュール内のエンコードおよびデコード ワーカーの数。 (オプション)
flush_worker_numINTタイプ。 REDO モジュール内のフラッシュ ワーカーの数。 (オプション)
compressionSTRINGタイプ。 REDO ログ ファイルを圧縮する動作。利用可能なオプションは"""lz4"です。デフォルト値は""で、圧縮しないことを意味します。 (オプション)
flush_concurrencyINTタイプ。単一ファイルをアップロードする際の同時実行数。デフォルト値は1で、同時実行が無効であることを意味します。 (オプション)

filterパラメータは次のように説明されます。

パラメータ名説明
do_dbsSTRING ARRAYタイプ。レプリケートされるデータベース。 (オプション)
do_tablesレプリケートされるテーブル。 (オプション)
ignore_dbsSTRING ARRAYタイプ。無視されるデータベース。 (オプション)
ignore_tables無視されるテーブル。 (オプション)
event_filtersイベントをフィルタリングするための構成。 (オプション)
ignore_txn_start_tsUINT64 ARRAYタイプ。これを指定すると、 [1, 2]などのstart_tsを指定したトランザクションは無視されます。 (オプション)
rulesSTRING ARRAYタイプ。テーブル スキーマ フィルタリングのルール ( ['foo*.*', 'bar*.*']など)。詳細については、 テーブルフィルターを参照してください。 (オプション)

filter.event_filtersパラメータは次のように説明されます。詳細については、 変更フィードログフィルターを参照してください。

パラメータ名説明
ignore_delete_value_exprSTRING ARRAYタイプ。たとえば、 "name = 'john'"name = 'john'条件を含む DELETE DML ステートメントをフィルターで除外することを意味します。 (オプション)
ignore_eventSTRING ARRAYタイプ。たとえば、 ["insert"] INSERT イベントがフィルターで除外されることを示します。 (オプション)
ignore_insert_value_exprSTRING ARRAYタイプ。たとえば、 "id >= 100" 、条件id >= 100に一致する INSERT DML ステートメントを除外することを意味します。 (オプション)
ignore_sqlSTRING ARRAYタイプ。たとえば、 ["^drop", "add column"]DROPで始まるか、 ADD COLUMNを含む DDL ステートメントをフィルタリングして除外することを意味します。 (オプション)
ignore_update_new_value_exprSTRING ARRAYタイプ。たとえば、 "gender = 'male'" 、新しい値gender = 'male'を持つ UPDATE DML ステートメントをフィルターで除外することを意味します。 (オプション)
ignore_update_old_value_exprSTRING ARRAYタイプ。たとえば、 "age < 18" 、古い値age < 18を持つ UPDATE DML ステートメントをフィルタリングして除外することを意味します。 (オプション)
matcherSTRING ARRAYタイプ。ホワイトリストとして機能します。たとえば、 ["test.worker"] 、フィルタ ルールがtestデータベース内のworkerテーブルにのみ適用されることを意味します。 (オプション)

mounterパラメータは次のように説明されます。

パラメータ名説明
worker_numINTタイプ。マウンタのスレッド数。マウンタは、TiKV から出力されたデータをデコードするために使用されます。デフォルト値は16です。 (オプション)

sinkパラメータは次のように説明されます。

パラメータ名説明
column_selectors列セレクターの構成。 (オプション)
csvCSV 構成。 (オプション)
date_separatorSTRINGタイプ。ファイルディレクトリの日付区切り文字のタイプを示します。値のオプションはnoneyearmonth 、およびdayです。 noneはデフォルト値で、日付が区切られていないことを意味します。 (オプション)
dispatchersイベントディスパッチ用の構成配列。 (オプション)
encoder_concurrencyINTタイプ。 MQ シンク内のエンコーダー スレッドの数。デフォルト値は16です。 (オプション)
protocolSTRINGタイプ。 MQ シンクの場合、メッセージのプロトコル形式を指定できます。現在、プロトコルcanal-jsonopen-protocolavro 、およびmaxwellがサポートされています。
schema_registrySTRINGタイプ。スキーマ レジストリ アドレス。 (オプション)
terminatorSTRINGタイプ。ターミネータは、2 つのデータ変更イベントを区切るために使用されます。デフォルト値は null です。これは、 "\r\n"がターミネータとして使用されることを意味します。 (オプション)
transaction_atomicitySTRINGタイプ。トランザクションのアトミックレベル。 (オプション)
only_output_updated_columnsBOOLEANタイプ。 canal-jsonまたはopen-protocolプロトコルを使用する MQ シンクの場合、変更された列のみを出力するかどうかを指定できます。デフォルト値はfalseです。 (オプション)
cloud_storage_configstorageシンクの構成。 (オプション)

sink.column_selectorsは配列です。パラメータは次のように説明されます。

パラメータ名説明
columnsSTRING ARRAYタイプ。列配列。
matcherSTRING ARRAYタイプ。マッチャーの構成。フィルター ルールと同じ一致構文を持ちます。

sink.csvパラメータは次のように説明されます。

パラメータ名説明
delimiterSTRINGタイプ。 CSV ファイル内のフィールドを区切るために使用される文字。値は ASCII 文字である必要があり、デフォルトは,です。
include_commit_tsBOOLEANタイプ。 CSV 行に commit-t を含めるかどうか。デフォルト値はfalseです。
nullSTRINGタイプ。 CSV 列が null の場合に表示される文字。デフォルト値は\Nです。
quoteSTRINGタイプ。 CSV ファイル内のフィールドを囲むために使用される引用符。値が空の場合、引用符は使用されません。デフォルト値は"です。
binary_encoding_methodSTRINGタイプ。バイナリ データのエンコード方式。 "base64"または"hex"です。デフォルト値は"base64"です。

sink.dispatchers : MQ タイプのシンクの場合、このパラメーターを使用してイベント ディスパッチャーを構成できます。次のディスパッチャーがサポートされています: defaulttsrowid 、およびtable 。ディスパッチャのルールは次のとおりです。

  • default : tableモードでイベントをディスパッチします。
  • ts : 行変更の commitT を使用してハッシュ値を作成し、イベントをディスパッチします。
  • rowid : 選択した HandleKey 列の名前と値を使用して、ハッシュ値を作成し、イベントをディスパッチします。
  • table : テーブルのスキーマ名とテーブル名を使用してハッシュ値を作成し、イベントをディスパッチします。

sink.dispatchersは配列です。パラメータは次のように説明されます。

パラメータ名説明
matcherSTRING ARRAYタイプ。フィルター ルールと同じ一致構文を持ちます。
partitionSTRINGタイプ。イベントをディスパッチするためのターゲット パーティション。
topicSTRINGタイプ。イベントをディスパッチする対象のトピック。

sink.cloud_storage_configパラメータは次のように説明されます。

パラメータ名説明
worker_countINTタイプ。データをダウンストリームのクラウドstorageに保存するための同時実行性が変わります。
flush_intervalSTRINGタイプ。ダウンストリームのクラウドstorageにデータを保存する間隔が変わります。
file_sizeINTタイプ。データ変更ファイルのバイト数がこのパラメータの値を超えると、データ変更ファイルがクラウドstorageに保存されます。
file_expiration_daysINTタイプ。ファイルを保持する期間。 date-separatordayとして構成されている場合にのみ有効になります。
file_cleanup_cron_specSTRINGタイプ。スケジュールされたクリーンアップ タスクの実行サイクル。crontab 構成と互換性があり、形式は<Second> <Minute> <Hour> <Day of the month> <Month> <Day of the week (Optional)>です。
flush_concurrencyINTタイプ。単一ファイルをアップロードする際の同時実行数。

次のリクエストは、ID がtest5およびsink_uri blackhome://レプリケーション タスクを作成します。

curl -X POST -H "'Content-type':'application/json'" http://127.0.0.1:8300/api/v2/changefeeds -d '{"changefeed_id":"test5","sink_uri":"blackhole://"}'

リクエストが成功すると200 OKが返されます。リクエストが失敗した場合は、エラー メッセージとエラー コードが返されます。

レスポンスボディの形式

{ "admin_job_type": 0, "checkpoint_time": "string", "checkpoint_ts": 0, "config": { "bdr_mode": true, "case_sensitive": false, "check_gc_safe_point": true, "consistent": { "flush_interval": 0, "level": "string", "max_log_size": 0, "storage": "string" }, "enable_old_value": true, "enable_sync_point": true, "filter": { "do_dbs": [ "string" ], "do_tables": [ { "database_name": "string", "table_name": "string" } ], "event_filters": [ { "ignore_delete_value_expr": "string", "ignore_event": [ "string" ], "ignore_insert_value_expr": "string", "ignore_sql": [ "string" ], "ignore_update_new_value_expr": "string", "ignore_update_old_value_expr": "string", "matcher": [ "string" ] } ], "ignore_dbs": [ "string" ], "ignore_tables": [ { "database_name": "string", "table_name": "string" } ], "ignore_txn_start_ts": [ 0 ], "rules": [ "string" ] }, "force_replicate": true, "ignore_ineligible_table": true, "memory_quota": 0, "mounter": { "worker_num": 0 }, "sink": { "column_selectors": [ { "columns": [ "string" ], "matcher": [ "string" ] } ], "csv": { "delimiter": "string", "include_commit_ts": true, "null": "string", "quote": "string" }, "date_separator": "string", "dispatchers": [ { "matcher": [ "string" ], "partition": "string", "topic": "string" } ], "enable_partition_separator": true, "encoder_concurrency": 0, "protocol": "string", "schema_registry": "string", "terminator": "string", "transaction_atomicity": "string" }, "sync_point_interval": "string", "sync_point_retention": "string" }, "create_time": "string", "creator_version": "string", "error": { "addr": "string", "code": "string", "message": "string" }, "id": "string", "resolved_ts": 0, "sink_uri": "string", "start_ts": 0, "state": "string", "target_ts": 0, "task_status": [ { "capture_id": "string", "table_ids": [ 0 ] } ] }

パラメータは次のように説明されます。

パラメータ名説明
admin_job_typeINTEGERタイプ。管理者のジョブタイプ。
checkpoint_timeSTRINGタイプ。レプリケーション タスクの現在のチェックポイントの形式化された時刻。
checkpoint_tsSTRINGタイプ。レプリケーション タスクの現在のチェックポイントの TSO。
configレプリケーションタスクの構成。構造と意味はレプリケーションタスク作成時の構成replica_configと同じです。
create_timeSTRINGタイプ。レプリケーションタスクが作成された時刻。
creator_versionSTRINGタイプ。レプリケーション タスクが作成されたときの TiCDC バージョン。
errorレプリケーションタスクのエラー。
idSTRINGタイプ。レプリケーションタスクID。
resolved_tsUINT64タイプ。レプリケーション タスクにより ts が解決されました。
sink_uriSTRINGタイプ。レプリケーション タスクのシンク URI。
start_tsUINT64タイプ。レプリケーション タスクが ts を開始します。
stateSTRINGタイプ。レプリケーションタスクのステータス。 normal 、またはfinished failed stopped errorなります。
target_tsUINT64タイプ。レプリケーションタスクのターゲット ts。
task_statusレプリケーションタスクのディスパッチの詳細なステータス。

task_statusパラメータは次のように説明されます。

パラメータ名説明
capture_idSTRINGタイプ。キャプチャID。
table_idsUINT64 ARRAYタイプ。このキャプチャでレプリケートされるテーブルの ID。

errorパラメータは次のように記述されます。

パラメータ名説明
addrSTRINGタイプ。キャプチャアドレス。
codeSTRINGタイプ。エラーコード。
messageSTRINGタイプ。エラーの詳細。

レプリケーションタスクを削除する

この API は、レプリケーション タスクを削除するための冪等インターフェイス (つまり、最初の適用を超えて結果を変更することなく複数回適用できます) です。リクエストが成功すると200 OKが返されます。返された結果は、サーバーがコマンドの実行に同意したことを意味するだけで、コマンドが正常に実行されることを保証するものではありません。

リクエストURI

DELETE /api/v2/changefeeds/{changefeed_id}

パラメータの説明

パスパラメータ

パラメータ名説明
changefeed_id削除するレプリケーション タスク (変更フィード) の ID。

次のリクエストは、ID test1のレプリケーション タスクを削除します。

curl -X DELETE http://127.0.0.1:8300/api/v2/changefeeds/test1

リクエストが成功すると200 OKが返されます。リクエストが失敗した場合は、エラー メッセージとエラー コードが返されます。

レプリケーション構成を更新する

この API は、レプリケーション タスクを更新するために使用されます。リクエストが成功すると200 OKが返されます。返された結果は、サーバーがコマンドの実行に同意したことを意味するだけで、コマンドが正常に実行されることを保証するものではありません。

チェンジフィード構成を変更するには、 pause the replication task -> modify the configuration -> resume the replication taskの手順に従います。

リクエストURI

PUT /api/v2/changefeeds/{changefeed_id}

パラメータの説明

パスパラメータ

パラメータ名説明
changefeed_id更新するレプリケーション タスク (変更フィード) の ID。

リクエストボディのパラメータ

{ "replica_config": { "bdr_mode": true, "case_sensitive": false, "check_gc_safe_point": true, "consistent": { "flush_interval": 0, "level": "string", "max_log_size": 0, "storage": "string" }, "enable_old_value": true, "enable_sync_point": true, "filter": { "do_dbs": [ "string" ], "do_tables": [ { "database_name": "string", "table_name": "string" } ], "event_filters": [ { "ignore_delete_value_expr": "string", "ignore_event": [ "string" ], "ignore_insert_value_expr": "string", "ignore_sql": [ "string" ], "ignore_update_new_value_expr": "string", "ignore_update_old_value_expr": "string", "matcher": [ "string" ] } ], "ignore_dbs": [ "string" ], "ignore_tables": [ { "database_name": "string", "table_name": "string" } ], "ignore_txn_start_ts": [ 0 ], "rules": [ "string" ] }, "force_replicate": true, "ignore_ineligible_table": true, "memory_quota": 0, "mounter": { "worker_num": 0 }, "sink": { "column_selectors": [ { "columns": [ "string" ], "matcher": [ "string" ] } ], "csv": { "delimiter": "string", "include_commit_ts": true, "null": "string", "quote": "string" }, "date_separator": "string", "dispatchers": [ { "matcher": [ "string" ], "partition": "string", "topic": "string" } ], "enable_partition_separator": true, "encoder_concurrency": 0, "protocol": "string", "schema_registry": "string", "terminator": "string", "transaction_atomicity": "string" }, "sync_point_interval": "string", "sync_point_retention": "string" }, "sink_uri": "string", "target_ts": 0 }

現在、API 経由で変更できるのは次の構成のみです。

パラメータ名説明
target_tsUINT64タイプ。変更フィードのターゲット TSO を指定します。 (オプション)
sink_uriSTRINGタイプ。レプリケーションタスクの下流アドレス。 (オプション)
replica_configシンクの構成パラメータ。それは完全でなければなりません。 (オプション)

上記パラメータの意味はレプリケーションタスクを作成する項と同様です。詳細については、そのセクションを参照してください。

次のリクエストは、ID がtest1レプリケーション タスクのtarget_ts32に更新します。

curl -X PUT -H "'Content-type':'application/json'" http://127.0.0.1:8300/api/v2/changefeeds/test1 -d '{"target_ts":32}'

リクエストが成功すると200 OKが返されます。リクエストが失敗した場合は、エラー メッセージとエラー コードが返されます。 JSON レスポンスボディの意味はレプリケーションタスクを作成するセクションと同じです。詳細については、そのセクションを参照してください。

レプリケーションタスクリストのクエリ

この API は同期インターフェイスです。リクエストが成功すると、TiCDC クラスター内のすべてのレプリケーション タスク (変更フィード) の基本情報が返されます。

リクエストURI

GET /api/v2/changefeeds

パラメータの説明

クエリパラメータ

パラメータ名説明
stateこのパラメータを指定すると、その指定された状態のレプリケーションタスクの情報が返されます。 (オプション)

stateの値のオプションはallnormalstoppederrorfailed 、およびfinishedです。

このパラメータが指定されていない場合、デフォルトでは、 normalstopped 、またはfailed状態のレプリケーション タスクの基本情報が返されます。

次のリクエストは、 normal状態のすべてのレプリケーション タスクの基本情報をクエリします。

curl -X GET http://127.0.0.1:8300/api/v2/changefeeds?state=normal
{ "total": 2, "items": [ { "id": "test", "state": "normal", "checkpoint_tso": 439749918821711874, "checkpoint_time": "2023-02-27 23:46:52.888", "error": null }, { "id": "test2", "state": "normal", "checkpoint_tso": 439749918821711874, "checkpoint_time": "2023-02-27 23:46:52.888", "error": null } ] }

上記で返された結果のパラメータは次のように説明されます。

  • id : レプリケーション タスクの ID。
  • state : レプリケーションタスクの現在の
  • checkpoint_tso : レプリケーション タスクの現在のチェックポイントの TSO。
  • checkpoint_time : レプリケーション タスクの現在のチェックポイントのフォーマットされた時刻。
  • error : レプリケーションタスクのエラー情報。

特定のレプリケーションタスクをクエリする

この API は同期インターフェイスです。リクエストが成功すると、指定したレプリケーションタスクの詳細情報(変更フィード)が返されます。

リクエストURI

GET /api/v2/changefeeds/{changefeed_id}

パラメータの説明

パスパラメータ

パラメータ名説明
changefeed_idクエリ対象のレプリケーション タスク (変更フィード) の ID。

次のリクエストは、ID test1のレプリケーション タスクの詳細情報をクエリします。

curl -X GET http://127.0.0.1:8300/api/v2/changefeeds/test1

JSON レスポンスボディの意味はレプリケーションタスクを作成するセクションと同じです。詳細については、そのセクションを参照してください。

特定のレプリケーションタスクが完了したかどうかをクエリします

この API は同期インターフェイスです。リクエストが成功すると、タスクが完了したかどうかや追加の詳細を含む、指定されたレプリケーション タスク (変更フィード) の同期ステータスが返されます。

リクエストURI

GET /api/v2/changefeed/{changefeed_id}/synced

パラメータの説明

パスパラメータ

パラメータ名説明
changefeed_idクエリ対象のレプリケーション タスク (変更フィード) の ID。

次のリクエストは、ID test1のレプリケーション タスクの同期ステータスをクエリします。

curl -X GET http://127.0.0.1:8300/api/v2/changefeed/test1/synced

例1: 同期が完了しました

{ "synced": true, "sink_checkpoint_ts": "2023-11-30 15:14:11.015", "puller_resolved_ts": "2023-11-30 15:14:12.215", "last_synced_ts": "2023-11-30 15:08:35.510", "now_ts": "2023-11-30 15:14:11.511", "info": "Data syncing is finished" }

応答には次のフィールドが含まれます。

  • synced : このレプリケーションタスクが完了したかどうか。 trueタスクが完了したことを意味し、 false不完全な可能性があることを意味します。 falseの場合は、 infoフィールドと他のフィールドの両方で特定のステータスを確認する必要があります。
  • sink_checkpoint_ts : PD 時間におけるシンク モジュールのチェックポイント TS 値。
  • puller_resolved_ts : PD 時間での、プラー モジュールのresolved-ts値。
  • last_synced_ts : PD 時間における、TiCDC によって処理された最新データの commit-ts 値。
  • now_ts : 現在の PD 時間。
  • info : 特にsyncedfalseの場合、同期ステータスの決定を支援する補足情報。

例 2: 同期が完了していない

{ "synced": false, "sink_checkpoint_ts": "2023-11-30 15:26:31.519", "puller_resolved_ts": "2023-11-30 15:26:23.525", "last_synced_ts": "2023-11-30 15:24:30.115", "now_ts": "2023-11-30 15:26:31.511", "info": "The data syncing is not finished, please wait" }

この例は、進行中のレプリケーション タスクの応答を示しています。 syncedinfoフィールドの両方をチェックすると、レプリケーション タスクがまだ完了しておらず、さらに待機することが予想されることがわかります。

例 3: 同期ステータスをさらに確認する必要がある

{ "synced":false, "sink_checkpoint_ts":"2023-12-13 11:45:13.515", "puller_resolved_ts":"2023-12-13 11:45:13.525", "last_synced_ts":"2023-12-13 11:45:07.575", "now_ts":"2023-12-13 11:50:24.875", "info":"Please check whether PD is online and TiKV Regions are all available. If PD is offline or some TiKV regions are not available, it means that the data syncing process is complete. To check whether TiKV regions are all available, you can view 'TiKV-Details' > 'Resolved-Ts' > 'Max Leader Resolved TS gap' on Grafana. If the gap is large, such as a few minutes, it means that some regions in TiKV are unavailable. Otherwise, if the gap is small and PD is online, it means the data syncing is incomplete, so please wait" }

この API を使用すると、アップストリーム クラスターで障害が発生した場合でも、同期ステータスをクエリできます。状況によっては、TiCDC の現在のデータ複製タスクが完了したかどうかを直接判断できない場合があります。このような場合は、この API をリクエストし、応答のinfoフィールドと上流クラスターの現在のステータスの両方をチェックして、特定のステータスを判断できます。

この例では、TiCDC がまだデータ レプリケーションに追いついているか、PD または TiKV に障害が発生しているため、時間的にsink_checkpoint_tsnow_tsより遅れています。これが TiCDC がまだデータ レプリケーションに追いついていないことが原因である場合は、レプリケーション タスクがまだ完了していないことを意味します。これが PD または TiKV の障害によるものである場合は、レプリケーション タスクが完了したことを意味します。したがって、クラスターのステータスを判断するには、 infoフィールドを確認する必要があります。

例 4: クエリエラー

{ "error_msg": "[CDC:ErrPDEtcdAPIError]etcd api call error: context deadline exceeded", "error_code": "CDC:ErrPDEtcdAPIError" }

アップストリーム クラスターの PD が長期間にわたって失敗する場合、この API をクエリすると、前述のエラーと同様のエラーが返される可能性があります。このエラーでは、さらに確認するための情報が提供されません。 PD 障害は TiCDC データ レプリケーションに直接影響するため、このようなエラーが発生した場合は、TiCDC がデータ レプリケーションを可能な限り完了していると想定できますが、PD 障害によりダウンストリーム クラスターでデータ損失が依然として発生する可能性があります。

レプリケーションタスクを一時停止する

この API はレプリケーション タスクを一時停止します。リクエストが成功すると200 OKが返されます。返された結果は、サーバーがコマンドの実行に同意したことを意味するだけで、コマンドが正常に実行されることを保証するものではありません。

リクエストURI

POST /api/v2/changefeeds/{changefeed_id}/pause

パラメータの説明

パスパラメータ

パラメータ名説明
changefeed_id一時停止するレプリケーション タスク (変更フィード) の ID。

次のリクエストは、ID test1のレプリケーション タスクを一時停止します。

curl -X POST http://127.0.0.1:8300/api/v2/changefeeds/test1/pause

リクエストが成功すると200 OKが返されます。リクエストが失敗した場合は、エラー メッセージとエラー コードが返されます。

レプリケーションタスクを再開する

この API はレプリケーション タスクを再開します。リクエストが成功すると200 OKが返されます。返された結果は、サーバーがコマンドの実行に同意したことを意味するだけで、コマンドが正常に実行されることを保証するものではありません。

リクエストURI

POST /api/v2/changefeeds/{changefeed_id}/resume

パラメータの説明

パスパラメータ

パラメータ名説明
changefeed_id再開するレプリケーション タスク (変更フィード) の ID。

リクエストボディのパラメータ

{ "overwrite_checkpoint_ts": 0 }
パラメータ名説明
overwrite_checkpoint_tsUINT64タイプ。レプリケーション タスク (変更フィード) を再開するときに、チェックポイント TSO を再割り当てします。

次のリクエストは、ID test1のレプリケーション タスクを再開します。

curl -X POST http://127.0.0.1:8300/api/v2/changefeeds/test1/resume -d '{}'

リクエストが成功すると200 OKが返されます。リクエストが失敗した場合は、エラー メッセージとエラー コードが返されます。

レプリケーションサブタスクリストのクエリ

このAPIは同期インターフェースです。リクエストが成功すると、すべてのレプリケーションサブタスク( processor )の基本情報が返されます。

リクエストURI

GET /api/v2/processors

curl -X GET http://127.0.0.1:8300/api/v2/processors
{ "total": 3, "items": [ { "changefeed_id": "test2", "capture_id": "d2912e63-3349-447c-90ba-72a4e04b5e9e" }, { "changefeed_id": "test1", "capture_id": "d2912e63-3349-447c-90ba-72a4e04b5e9e" }, { "changefeed_id": "test", "capture_id": "d2912e63-3349-447c-90ba-72a4e04b5e9e" } ] }

パラメータは次のように説明されます。

  • changefeed_id : チェンジフィード ID。
  • capture_id : キャプチャID。

特定のレプリケーションサブタスクをクエリする

この API は同期インターフェイスです。リクエストが成功すると、指定されたレプリケーションサブタスク ( processor ) の詳細情報が返されます。

リクエストURI

GET /api/v2/processors/{changefeed_id}/{capture_id}

パラメータの説明

パスパラメータ

パラメータ名説明
changefeed_idクエリ対象のレプリケーション サブタスクの変更フィード ID。
capture_idクエリ対象のレプリケーション サブタスクのキャプチャ ID。

次のリクエストは、 changefeed_idtestcapture_id561c3784-77f0-4863-ad52-65a3436db6afであるサブタスクの詳細情報をクエリします。サブタスクはchangefeed_idcapture_idで識別できます。

curl -X GET http://127.0.0.1:8300/api/v2/processors/test/561c3784-77f0-4863-ad52-65a3436db6af
{ "table_ids": [ 80 ] }

パラメータは次のように説明されます。

  • table_ids : このキャプチャでレプリケートされるテーブル ID。

TiCDC サービス プロセス リストのクエリ

この API は同期インターフェイスです。リクエストが成功すると、すべてのレプリケーション プロセスの基本情報 ( capture ) が返されます。

リクエストURI

GET /api/v2/captures

curl -X GET http://127.0.0.1:8300/api/v2/captures
{ "total": 1, "items": [ { "id": "d2912e63-3349-447c-90ba-72a4e04b5e9e", "is_owner": true, "address": "127.0.0.1:8300" } ] }

パラメータは次のように説明されます。

  • id : キャプチャID。
  • is_owner : キャプチャが所有者であるかどうか。
  • address : キャプチャのアドレス。

所有者ノードを削除する

この API は非同期インターフェイスです。リクエストが成功すると200 OKが返されます。返された結果は、サーバーがコマンドの実行に同意したことを意味するだけで、コマンドが正常に実行されることを保証するものではありません。

リクエストURI

POST /api/v2/owner/resign

次のリクエストは、TiCDC の現在の所有者ノードを削除し、新しいラウンドの選挙をトリガーして新しい所有者ノードを生成します。

curl -X POST http://127.0.0.1:8300/api/v2/owner/resign

リクエストが成功すると200 OKが返されます。リクエストが失敗した場合は、エラー メッセージとエラー コードが返されます。

TiCDCサーバーのログ レベルを動的に調整する

この API は同期インターフェイスです。リクエストが成功すると200 OKが返されます。

リクエストURI

POST /api/v2/log

リクエストパラメータ

リクエストボディのパラメータ

パラメータ名説明
log_level設定するログレベル。

log_level 「debug」、「info」、「warn」、「error」、「dpanic」、「panic」、および「fatal」のzap によって提供されるログ レベルをサポートします。

curl -X POST -H "'Content-type':'application/json'" http://127.0.0.1:8300/api/v2/log -d '{"log_level":"debug"}'

リクエストが成功すると200 OKが返されます。リクエストが失敗した場合は、エラー メッセージとエラー コードが返されます。

このページは役に立ちましたか?

Playground
新規
登録なしで TiDB の機能をワンストップでインタラクティブに体験できます。
製品
TiDB Cloud
TiDB
価格
PoC お問い合わせ
エコシステム
TiKV
TiFlash
OSS Insight
© 2024 PingCAP. All Rights Reserved.
Privacy Policy.