TiCDC OpenAPI v2
TiCDC は、TiCDC クラスターを照会および操作するための OpenAPI 機能を提供します。 OpenAPI 機能はcdc cliツールのサブセットです。
ノート:
- TiCDC は、v6.5.x リリース シリーズの v6.5.2 から始まる OpenAPI v2 をサポートします。 TiCDC のバージョンが v6.5.0 または v6.5.1 の場合は、代わりにTiCDC OpenAPI v1を使用してください。
- TiCDC OpenAPI v1 は、将来のリリースで削除される予定です。 TiCDC OpenAPI v2 を使用することをお勧めします。
API を使用して、TiCDC クラスターで次のメンテナンス操作を実行できます。
- TiCDC ノードのステータス情報を取得する
- TiCDC クラスターのヘルス ステータスを確認する
- レプリケーション タスクを作成する
- レプリケーション タスクを削除する
- レプリケーション構成を更新する
- レプリケーション タスク リストを照会する
- 特定のレプリケーション タスクを照会する
- レプリケーション タスクを一時停止する
- レプリケーション タスクを再開する
- レプリケーション サブタスク リストを照会する
- 特定のレプリケーション サブタスクを照会する
- TiCDC サービス プロセス リストのクエリ
- 所有者ノードを削除する
- 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.0.0-master-dirty",
"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": true,
"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_id | STRING型。レプリケーション タスクの ID。 (オプション) |
replica_config | レプリケーション タスクのコンフィグレーションパラメーター。 (オプション) |
sink_uri | STRING型。レプリケーション タスクのダウンストリーム アドレス。 (必須) |
start_ts | UINT64型。 changefeed の開始 TSO を指定します。 TiCDC クラスターは、この TSO からデータのプルを開始します。デフォルト値は現在の時刻です。 (オプション) |
target_ts | UINT64型。 changefeed のターゲット TSO を指定します。 TiCDC クラスターは、この TSO に到達するとデータのプルを停止します。デフォルト値は空です。つまり、TiCDC は自動的に停止しません。 (オプション) |
changefeed_id 、 start_ts 、 target_ts 、およびsink_uriの意味と形式は、 cdc cliを使用してレプリケーション タスクを作成するドキュメントで説明されているものと同じです。これらのパラメーターの詳細な説明については、そのドキュメントを参照してください。 sink_uriで証明書パスを指定するときは、対応する証明書を対応する TiCDCサーバーにアップロードしたことを確認してください。
replica_configパラメータの説明は次のとおりです。
| パラメータ名 | 説明 |
|---|---|
bdr_mode | BOOLEAN型。 双方向レプリケーションを有効にするかどうかを決定します。デフォルト値はfalseです。 (オプション) |
case_sensitive | BOOLEAN型。テーブル名をフィルタリングするときに大文字と小文字を区別するかどうかを決定します。デフォルト値はtrueです。 (オプション) |
check_gc_safe_point | BOOLEAN型。レプリケーション タスクの開始時刻が GC 時刻よりも早いことを確認するかどうかを決定します。デフォルト値はtrueです。 (オプション) |
consistent | REDO ログの構成パラメーター。 (オプション) |
enable_old_value | BOOLEAN型。古い値 (つまり、更新前の値) を出力するかどうかを決定します。デフォルト値はtrueです。 (オプション) |
enable_sync_point | BOOLEAN型。 sync pointを有効にするかどうかを決定します。 (オプション) |
filter | filterの構成パラメーター。 (オプション) |
force_replicate | BOOLEAN型。デフォルト値はfalseです。 trueに設定すると、レプリケーション タスクは、一意のインデックスを持たないテーブルを強制的にレプリケートします。 (オプション) |
ignore_ineligible_table | BOOLEAN型。デフォルト値はfalseです。 trueに設定すると、複製タスクは、複製できないテーブルを無視します。 (オプション) |
memory_quota | UINT64型。レプリケーション タスクのメモリクォータ。 (オプション) |
mounter | mounterの構成パラメーター。 (オプション) |
sink | sinkの構成パラメーター。 (オプション) |
sync_point_interval | STRING型。戻り値はUINT64型のナノ秒単位の時間であることに注意してください。 sync point機能が有効な場合、このパラメーターは、同期点が上流と下流のスナップショットを調整する間隔を指定します。デフォルト値は10mで、最小値は30sです。 (オプション) |
sync_point_retention | STRING型。戻り値はUINT64型のナノ秒単位の時間であることに注意してください。 sync pointフィーチャーが使用可能になっている場合、このパラメーターは、データが同期点によってダウンストリーム・テーブルに保持される期間を指定します。この期間を超えると、データはクリーンアップされます。デフォルト値は24hです。 (オプション) |
consistentパラメータは次のように説明されています。
| パラメータ名 | 説明 |
|---|---|
flush_interval | UINT64型。 REDO ログ ファイルをフラッシュする間隔。 (オプション) |
level | STRING型。レプリケートされたデータの整合性レベル。 (オプション) |
max_log_size | UINT64型。 REDO ログの最大値。 (オプション) |
storage | STRING型。storageの宛先アドレス。 (オプション) |
filterパラメータは次のように説明されています。
| パラメータ名 | 説明 |
|---|---|
do_dbs | STRING ARRAY型。レプリケートするデータベース。 (オプション) |
do_tables | レプリケートされるテーブル。 (オプション) |
ignore_dbs | STRING ARRAY型。無視するデータベース。 (オプション) |
ignore_tables | 無視するテーブル。 (オプション) |
event_filters | イベントをフィルタリングするための構成。 (オプション) |
ignore_txn_start_ts | UINT64 ARRAY型。これを指定すると、 [1, 2]などのstart_tsを指定するトランザクションは無視されます。 (オプション) |
rules | STRING ARRAY型。 ['foo*.*', 'bar*.*']などのテーブル スキーマ フィルタリングのルール。詳細については、 テーブル フィルターを参照してください。 (オプション) |
filter.event_filtersパラメータの説明は次のとおりです。詳細については、 Changefeed ログ フィルタを参照してください。
| パラメータ名 | 説明 |
|---|---|
ignore_delete_value_expr | STRING ARRAY型。たとえば、 "name = 'john'" 、 name = 'john'条件を含む DELETE DML ステートメントを除外することを意味します。 (オプション) |
ignore_event | STRING ARRAY型。たとえば、 ["insert"] 、INSERT イベントが除外されることを示します。 (オプション) |
ignore_insert_value_expr | STRING ARRAY型。たとえば、 "id >= 100" 、 id >= 100条件に一致する INSERT DML ステートメントを除外することを意味します。 (オプション) |
ignore_sql | STRING ARRAY型。たとえば、 ["^drop", "add column"] 、 DROPで始まるかADD COLUMNを含む DDL ステートメントを除外することを意味します。 (オプション) |
ignore_update_new_value_expr | STRING ARRAY型。たとえば、 "gender = 'male'" 、新しい値gender = 'male'を持つ UPDATE DML ステートメントを除外することを意味します。 (オプション) |
ignore_update_old_value_expr | STRING ARRAY型。たとえば、 "age < 18" 、古い値age < 18を持つ UPDATE DML ステートメントを除外することを意味します。 (オプション) |
matcher | STRING ARRAY型。許可リストとして機能します。たとえば、 ["test.worker"] 、フィルタ ルールがtestデータベースのworkerテーブルにのみ適用されることを意味します。 (オプション) |
mounterパラメータの説明は次のとおりです。
| パラメータ名 | 説明 |
|---|---|
worker_num | INT型。マウンターのスレッド数。マウンタは、TiKV から出力されたデータをデコードするために使用されます。デフォルト値は16です。 (オプション) |
sinkパラメータは次のように説明されています。
| パラメータ名 | 説明 |
|---|---|
column_selectors | 列セレクターの構成。 (オプション) |
csv | CSV 構成。 (オプション) |
date_separator | STRING型。ファイル ディレクトリの日付区切りの種類を示します。値のオプションはnone 、 year 、 month 、およびdayです。 noneはデフォルト値で、日付が区切られていないことを意味します。 (オプション) |
dispatchers | イベントディスパッチ用の構成配列。 (オプション) |
encoder_concurrency | INT型。 MQ シンク内のエンコーダ スレッドの数。デフォルト値は16です。 (オプション) |
protocol | STRING型。 MQ シンクの場合、メッセージのプロトコル形式を指定できます。現在サポートされているプロトコルは、 canal-json 、 open-protocol 、 canal 、 avro 、およびmaxwellです。 |
schema_registry | STRING型。スキーマ レジストリ アドレス。 (オプション) |
terminator | STRING型。ターミネータは、2 つのデータ変更イベントを区切るために使用されます。デフォルト値は null です。これは、ターミネータとして"\r\n"が使用されることを意味します。 (オプション) |
transaction_atomicity | STRING型。トランザクションの原子性レベル。 (オプション) |
sink.column_selectorsは配列です。パラメータの説明は次のとおりです。
| パラメータ名 | 説明 |
|---|---|
columns | STRING ARRAY型。列配列。 |
matcher | STRING ARRAY型。マッチャー構成。これは、フィルター ルールと同じ一致構文を持ちます。 |
sink.csvパラメータは次のように説明されています。
| パラメータ名 | 説明 |
|---|---|
delimiter | STRING型。 CSV ファイル内のフィールドを区切るために使用される文字。値は ASCII 文字でなければならず、デフォルトは,です。 |
include_commit_ts | BOOLEAN型。 CSV 行に commit-ts を含めるかどうか。デフォルト値はfalseです。 |
null | STRING型。 CSV 列が null の場合に表示される文字。デフォルト値は\Nです。 |
quote | STRING型。 CSV ファイル内のフィールドを囲むために使用される引用符。値が空の場合、引用符は使用されません。デフォルト値は"です。 |
sink.dispatchers : MQ タイプのシンクの場合、このパラメーターを使用してイベント ディスパッチャーを構成できます。次のディスパッチャーがサポートされています: default 、 ts 、 rowid 、およびtable 。ディスパッチャのルールは次のとおりです。
default: 複数の一意のインデックス (主キーを含む) が存在する場合、イベントはテーブル モードでディスパッチされます。一意のインデックス (または主キー) が 1 つだけ存在する場合、イベントは行 ID モードでディスパッチされます。古い値機能が有効になっている場合、イベントはテーブル モードでディスパッチされます。ts: 行変更の commitTs を使用してハッシュ値を作成し、イベントをディスパッチします。rowid: 選択した HandleKey 列の名前と値を使用して、ハッシュ値を作成し、イベントをディスパッチします。table: テーブルのスキーマ名とテーブル名を使用してハッシュ値を作成し、イベントをディスパッチします。
sink.dispatchersは配列です。パラメータの説明は次のとおりです。
| パラメータ名 | 説明 |
|---|---|
matcher | STRING ARRAY型。これは、フィルター ルールと同じ一致構文を持ちます。 |
partition | STRING型。イベントをディスパッチするターゲット パーティション。 |
topic | STRING型。イベントをディスパッチするためのターゲット トピック。 |
例
次のリクエストは、ID がtest5とsink_uri of 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": true,
"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_type | INTEGER型。管理者のジョブ タイプ。 |
checkpoint_time | STRING型。レプリケーション タスクの現在のチェックポイントのフォーマットされた時刻。 |
checkpoint_ts | STRING型。複製タスクの現在のチェックポイントの TSO。 |
config | レプリケーション タスクの構成。構造と意味はレプリケーションタスク作成時のreplica_config構成と同じです。 |
create_time | STRING型。レプリケーション タスクが作成される時刻。 |
creator_version | STRING型。レプリケーション タスクが作成されたときの TiCDC のバージョン。 |
error | レプリケーション タスク エラー。 |
id | STRING型。レプリケーション タスク ID。 |
resolved_ts | UINT64型。複製タスクは ts を解決しました。 |
sink_uri | STRING型。レプリケーション タスク シンク URI。 |
start_ts | UINT64型。レプリケーション タスクが ts で開始されます。 |
state | STRING型。レプリケーション タスクのステータス。 normal 、 stopped 、 error 、 failed 、またはfinishedいずれかです。 |
target_ts | UINT64型。レプリケーション タスクのターゲット ts。 |
task_status | レプリケーション タスクのディスパッチの詳細なステータス。 |
task_statusパラメータは次のように説明されています。
| パラメータ名 | 説明 |
|---|---|
capture_id | STRING型。キャプチャ ID。 |
table_ids | UINT64 ARRAY型。このキャプチャでレプリケートされるテーブルの ID。 |
errorパラメータは次のように説明されています。
| パラメータ名 | 説明 |
|---|---|
addr | STRING型。キャプチャ アドレス。 |
code | STRING型。エラーコード。 |
message | STRING型。エラーの詳細。 |
レプリケーション タスクを削除する
この API は、レプリケーション タスクを削除するためのべき等インターフェイスです (つまり、最初の適用を超えて結果を変更することなく、複数回適用できます)。リクエストが成功した場合、 200 OKが返されます。返された結果は、サーバーがコマンドの実行に同意したことを意味するだけで、コマンドが正常に実行されることを保証するものではありません。
リクエストURI
DELETE /api/v2/changefeeds/{changefeed_id}
パラメータの説明
パス パラメータ
| パラメータ名 | 説明 |
|---|---|
changefeed_id | 削除するレプリケーション タスク (changefeed) の ID。 |
例
次のリクエストは、ID test1のレプリケーション タスクを削除します。
curl -X DELETE http://127.0.0.1:8300/api/v2/changefeeds/test1
リクエストが成功した場合、 200 OKが返されます。リクエストが失敗すると、エラー メッセージとエラー コードが返されます。
レプリケーション構成を更新する
この API は、レプリケーション タスクの更新に使用されます。リクエストが成功した場合、 200 OKが返されます。返された結果は、サーバーがコマンドの実行に同意したことを意味するだけで、コマンドが正常に実行されることを保証するものではありません。
changefeed 構成を変更するには、 pause the replication task -> modify the configuration -> resume the replication taskの手順に従います。
リクエストURI
PUT /api/v2/changefeeds/{changefeed_id}
パラメータの説明
パス パラメータ
| パラメータ名 | 説明 |
|---|---|
changefeed_id | 更新するレプリケーション タスク (changefeed) の ID。 |
リクエスト本文のパラメータ
{
"replica_config": {
"bdr_mode": true,
"case_sensitive": true,
"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_ts | UINT64型。 changefeed のターゲット TSO を指定します。 (オプション) |
sink_uri | STRING型。レプリケーション タスクのダウンストリーム アドレス。 (オプション) |
replica_config | シンクの構成パラメーター。完全でなければなりません。 (オプション) |
上記のパラメータの意味は、セクションレプリケーション タスクを作成すると同じです。詳細については、そのセクションを参照してください。
例
次のリクエストは、レプリケーション タスクのtarget_ts ID test1から32に更新します。
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 クラスター内のすべてのレプリケーション タスク (changefeed) の基本情報が返されます。
リクエストURI
GET /api/v2/changefeeds
パラメータの説明
クエリ パラメータ
| パラメータ名 | 説明 |
|---|---|
state | このパラメーターを指定すると、この指定された状態のレプリケーション タスクの情報が返されます。 (オプション) |
stateの値のオプションはall 、 normal 、 stopped 、 error 、 failed 、およびfinishedです。
このパラメータが指定されていない場合、デフォルトでnormal 、 stopped 、または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 は同期インターフェースです。リクエストが成功すると、指定されたレプリケーション タスク (changefeed) の詳細情報が返されます。
リクエストURI
GET /api/v2/changefeeds/{changefeed_id}
パラメータの説明
パス パラメータ
| パラメータ名 | 説明 |
|---|---|
changefeed_id | 照会する複製タスク (changefeed) の ID。 |
例
次のリクエストは、ID test1のレプリケーション タスクの詳細情報を照会します。
curl -X GET http://127.0.0.1:8300/api/v2/changefeeds/test1
JSON レスポンスボディの意味は、 レプリケーション タスクを作成する節と同じです。詳細については、そのセクションを参照してください。
レプリケーション タスクを一時停止する
この API は、レプリケーション タスクを一時停止します。リクエストが成功した場合、 200 OKが返されます。返された結果は、サーバーがコマンドの実行に同意したことを意味するだけで、コマンドが正常に実行されることを保証するものではありません。
リクエストURI
POST /api/v2/changefeeds/{changefeed_id}/pause
パラメータの説明
パス パラメータ
| パラメータ名 | 説明 |
|---|---|
changefeed_id | 一時停止するレプリケーション タスク (changefeed) の 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 | 再開するレプリケーション タスク (changefeed) の ID。 |
リクエスト本文のパラメータ
{
"overwrite_checkpoint_ts": 0
}
| パラメータ名 | 説明 |
|---|---|
overwrite_checkpoint_ts | UINT64型。レプリケーション タスク (changefeed) を再開するときに、チェックポイント 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_idがtestでcapture_idが561c3784-77f0-4863-ad52-65a3436db6afのサブタスクの詳細情報を照会します。サブタスクはchangefeed_idとcapture_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 zap によって提供されるログ レベルサポートします: "debug"、"info"、"warn"、"error"、"dpanic"、"panic"、および "fatal"。
例
curl -X POST -H "'Content-type':'application/json'" http://127.0.0.1:8300/api/v2/log -d '{"log_level":"debug"}'
リクエストが成功した場合、 200 OKが返されます。リクエストが失敗すると、エラー メッセージとエラー コードが返されます。