TiCDC OpenAPI v2
TiCDC は、TiCDC クラスターのクエリと操作のための OpenAPI 機能を提供します。 OpenAPI 機能はcdc cliツールのサブセットです。
注記:
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.1.3",
  "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_id | STRINGタイプ。レプリケーションタスクのID。 (オプション) | 
replica_config | レプリケーションタスクのコンフィグレーションパラメータ。 (オプション) | 
sink_uri | STRINGタイプ。レプリケーションタスクの下流アドレス。 (必須) | 
start_ts | UINT64タイプ。変更フィードの開始 TSO を指定します。 TiCDC クラスターは、この TSO からのデータのプルを開始します。デフォルト値は現在時刻です。 (オプション) | 
target_ts | UINT64タイプ。変更フィードのターゲット 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タイプ。テーブル名をフィルタリングするときに大文字と小文字を区別するかどうかを決定します。 v6.5.6 および v7.1.3 以降、デフォルト値はtrueからfalseに変更されます。 (オプション) | 
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機能が有効な場合、このパラメータは、Syncpoint がアップストリームとダウンストリームのスナップショットを調整する間隔を指定します。デフォルト値は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の宛先アドレス。 (オプション) | 
use_file_backend | BOOLタイプ。 REDO ログをローカル ファイルに保存するかどうかを指定します。 (オプション) | 
encoding_worker_num | INTタイプ。 REDO モジュール内のエンコードおよびデコード ワーカーの数。 (オプション) | 
flush_worker_num | INTタイプ。 REDO モジュール内のフラッシュ ワーカーの数。 (オプション) | 
compression | STRINGタイプ。 REDO ログ ファイルを圧縮する動作。利用可能なオプションは""と"lz4"です。デフォルト値は""で、圧縮しないことを意味します。 (オプション) | 
flush_concurrency | INTタイプ。単一ファイルをアップロードする際の同時実行数。デフォルト値は1で、同時実行が無効であることを意味します。 (オプション) | 
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パラメータは次のように説明されます。詳細については、 変更フィードログフィルターを参照してください。
| パラメータ名 | 説明 | 
|---|---|
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タイプ。トランザクションのアトミックレベル。 (オプション) | 
only_output_updated_columns | BOOLEANタイプ。 canal-jsonまたはopen-protocolプロトコルを使用する MQ シンクの場合、変更された列のみを出力するかどうかを指定できます。デフォルト値はfalseです。 (オプション) | 
cloud_storage_config | storageシンクの構成。 (オプション) | 
sink.column_selectorsは配列です。パラメータは次のように説明されます。
| パラメータ名 | 説明 | 
|---|---|
columns | STRING ARRAYタイプ。列配列。 | 
matcher | STRING ARRAYタイプ。マッチャーの構成。フィルター ルールと同じ一致構文を持ちます。 | 
sink.csvパラメータは次のように説明されます。
| パラメータ名 | 説明 | 
|---|---|
delimiter | STRINGタイプ。 CSV ファイル内のフィールドを区切るために使用される文字。値は ASCII 文字である必要があり、デフォルトは,です。 | 
include_commit_ts | BOOLEANタイプ。 CSV 行に commit-t を含めるかどうか。デフォルト値はfalseです。 | 
null | STRINGタイプ。 CSV 列が null の場合に表示される文字。デフォルト値は\Nです。 | 
quote | STRINGタイプ。 CSV ファイル内のフィールドを囲むために使用される引用符。値が空の場合、引用符は使用されません。デフォルト値は"です。 | 
binary_encoding_method | STRINGタイプ。バイナリ データのエンコード方式。 "base64"または"hex"です。デフォルト値は"base64"です。 | 
sink.dispatchers : MQ タイプのシンクの場合、このパラメーターを使用してイベント ディスパッチャーを構成できます。次のディスパッチャーがサポートされています: default 、 ts 、 rowid 、およびtable 。ディスパッチャのルールは次のとおりです。
default: 複数の一意のインデックス (主キーを含む) が存在する場合、イベントはテーブル モードで送出されます。一意のインデックス (または主キー) が 1 つだけ存在する場合、イベントは ROWID モードで送出されます。 Old Value 機能が有効になっている場合、イベントはテーブル モードでディスパッチされます。ts: 行変更の commitT を使用してハッシュ値を作成し、イベントをディスパッチします。rowid: 選択した HandleKey 列の名前と値を使用してハッシュ値を作成し、イベントをディスパッチします。table: テーブルのスキーマ名とテーブル名を使用してハッシュ値を作成し、イベントをディスパッチします。
sink.dispatchersは配列です。パラメータは次のように説明されます。
| パラメータ名 | 説明 | 
|---|---|
matcher | STRING ARRAYタイプ。フィルター ルールと同じ一致構文を持ちます。 | 
partition | STRINGタイプ。イベントをディスパッチするためのターゲット パーティション。 | 
topic | STRINGタイプ。イベントをディスパッチする対象のトピック。 | 
sink.cloud_storage_configパラメータは次のように説明されます。
| パラメータ名 | 説明 | 
|---|---|
worker_count | INTタイプ。データをダウンストリームのクラウドstorageに保存するための同時実行性が変わります。 | 
flush_interval | STRINGタイプ。ダウンストリームのクラウドstorageにデータを保存する間隔が変わります。 | 
file_size | INTタイプ。データ変更ファイルのバイト数がこのパラメータの値を超えると、データ変更ファイルがクラウドstorageに保存されます。 | 
file_expiration_days | INTタイプ。ファイルを保持する期間。 date-separatorがdayとして構成されている場合にのみ有効になります。 | 
file_cleanup_cron_spec | STRINGタイプ。スケジュールされたクリーンアップ タスクの実行サイクル。crontab 構成と互換性があり、形式は<Second> <Minute> <Hour> <Day of the month> <Month> <Day of the week (Optional)>です。 | 
flush_concurrency | INTタイプ。単一ファイルをアップロードする際の同時実行数。 | 
例
次のリクエストは、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_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 、またはfinished failed stopped errorなります。 | 
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 | 削除するレプリケーション タスク (変更フィード) の 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_ts | UINT64タイプ。変更フィードのターゲット TSO を指定します。 (オプション) | 
sink_uri | STRINGタイプ。レプリケーションタスクの下流アドレス。 (オプション) | 
replica_config | シンクの構成パラメータ。それは完全でなければなりません。 (オプション) | 
上記パラメータの意味はレプリケーションタスクを作成する項と同様です。詳細については、そのセクションを参照してください。
例
次のリクエストは、ID がtest1レプリケーション タスクのtarget_tsを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 クラスター内のすべてのレプリケーション タスク (変更フィード) の基本情報が返されます。
リクエスト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 は同期インターフェイスです。リクエストが成功すると、指定したレプリケーションタスクの詳細情報(変更フィード)が返されます。
リクエスト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 はレプリケーション タスクを一時停止します。リクエストが成功すると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_ts | UINT64タイプ。レプリケーション タスク (変更フィード) を再開するときに、チェックポイント 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 「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が返されます。リクエストが失敗した場合は、エラー メッセージとエラー コードが返されます。