TiCDC CSV プロトコル

クラウドstorageサービスをダウンストリーム シンクとして使用する場合、DML イベントを CSV 形式でクラウドstorageサービスに送信できます。

CSVを使用する

以下は、CSV プロトコルを使用する場合の構成の例です。

cdc cli changefeed create --server=http://127.0.0.1:8300 --changefeed-id="csv-test" --sink-uri="s3://bucket/prefix" --config changefeed.toml

changefeed.tomlファイルの構成は次のとおりです。

[sink] protocol = "csv" terminator = "\n" [sink.csv] delimiter = ',' quote = '"' null = '\N' include-commit-ts = true

トランザクションの制約

  • 単一の CSV ファイルでは、行のcommit-ts次の行の 1 以下になります。
  • 1 つのテーブルの同じトランザクションが同じ CSV ファイルに保存されます。
  • 同じトランザクションの複数のテーブルを異なる CSV ファイルに保存できます。

データstorageパス構造

データのstorageパス構造の詳細については、 ストレージパス構造を参照してください。

データフォーマットの定義

CSV ファイルでは、各列は次のように定義されます。

  • カラム1: 操作タイプのインジケーター ( IU 、およびDを含む)。 I INSERTを意味し、 U UPDATEを意味し、 D DELETEを意味します。
  • カラム2: テーブル名。
  • カラム3: スキーマ名。
  • カラム4: ソース トランザクションのcommit-ts 。この列はオプションです。
  • カラム5 から最後の列まで: 変更されるデータを表す 1 つ以上の列。

テーブルhr.employeeが次のように定義されていると仮定します。

CREATE TABLE `employee` ( `Id` int NOT NULL, `LastName` varchar(20) DEFAULT NULL, `FirstName` varchar(30) DEFAULT NULL, `HireDate` date DEFAULT NULL, `OfficeLocation` varchar(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

このテーブルの DML イベントは、次のように CSV 形式で保存されます。

"I","employee","hr",433305438660591626,101,"Smith","Bob","2014-06-04","New York" "U","employee","hr",433305438660591627,101,"Smith","Bob","2015-10-08","Los Angeles" "D","employee","hr",433305438660591629,101,"Smith","Bob","2017-03-13","Dallas" "I","employee","hr",433305438660591630,102,"Alex","Alice","2017-03-14","Shanghai" "U","employee","hr",433305438660591630,102,"Alex","Alice","2018-06-15","Beijing"

データ型マッピング

MySQLの種類CSVタイプ説明
BOOLEAN / TINYINT / SMALLINT / INT / MEDIUMINT / BIGINT整数123
  • FLOAT / DOUBLE浮く153.123
  • NULLヌル\N
  • TIMESTAMP / DATETIME"1973-12-30 15:30:00.123456"形式: yyyy-MM-dd HH:mm:ss.%06d
    DATE"2000-01-01"形式: yyyy-MM-dd
    TIME"23:59:59"形式: yyyy-MM-dd
    YEAR整数1970
  • VARCHAR / JSON / TINYTEXT / MEDIUMTEXT / LONGTEXT / TEXT / CHAR"test"UTF-8エンコード
    VARBINARY / TINYBLOB / MEDIUMBLOB / LONGBLOB / BLOB / BINARY"6Zi/5pav"または"e998bfe696af"Base64 または 16 進エンコード
    BIT整数81
  • DECIMAL"129012.1230000"
  • ENUM"a"
  • SET"a,b"
  • このページは役に立ちましたか?