consumerDemo-avro-flink\\src\\main\\resources\\avro-tools-1.8.2.jar:Avroプロトコル関連コードの生成に使用するツールです。consumerDemo-avro-flink\\src\\main\\java\\com\\tencent\\subscribe\\avro:Avroツールがコードを生成するディレクトリです。consumerDemo-avro-flink\\src\\main\\resources\\Record.avsc:プロトコル定義ファイルです。{"namespace": "com.tencent.subscribe.avro", //Record.avsc の最後の1個のschemaで、"name" は "Record" と表示されます"type": "record","name": "Record", //"name" は "Record" と表示され、kafkaから消費するデータ形式を表します"fields": [{"name": "id", //idはグローバルに増加するIDを示し、その他のrecordの値の説明は以下の表の通りです"type": "long","doc": "unique id of this record in the whole stream"},{"name": "version", //versionはプロトコルバージョンを示します"type": "int","doc": "protocol version"},{"name": "messageType", //メッセージタイプ"aliases": ["operation"],"type": {"namespace": "com.tencent.subscribe.avro","name": "MessageType","type": "enum","symbols": ["INSERT","UPDATE","DELETE","DDL","BEGIN","COMMIT","HEARTBEAT","CHECKPOINT","ROLLBACK"]}},{……},}
Recordのフィールド名 | 説明 |
id | グローバルに増加するID。 |
version | プロトコルバージョン。現在のバージョンは1です。 |
messageType | メッセージタイプ。列挙値:「INSERT」、「UPDATE」、「DELETE」、「DDL」、「BEGIN」、「COMMIT」、「HEARTBEAT」、「CHECKPOINT」。 |
fileName | 現在のレコードが存在するbinlogファイル名。 |
position | 現在のレコードのbinlog内での終了オフセット。形式はEnd_log_pos@binlogファイル番号です。例えば、現在のレコードがファイルmysql-bin.000004にあり、終了オフセットが2196の場合、その値は「2196@4」です。 |
safePosition | 現在のトランザクションがbinlog内で開始されるオフセット。形式は上記と同じです。 |
timestamp | binlogに書き込まれる時間。unixタイムスタンプ、秒単位です。 |
gtid | 現在のgtid。例:c7c98333-6006-11ed-bfc9-b8cef6e1a231:9。 |
transactionId | トランザクションID。commitイベントのみがトランザクションIDを生成します。 |
serverId | ソースデータベースのserverId。ソースデータベースのserver_idを確認するには、 SHOW VARIABLES LIKE 'server_id'を参照してください。 |
threadId | 現在のトランザクションをコミットしたセッションID。 SHOW processlist;を参照してください。 |
sourceType | ソースデータベースのデータベースタイプ。現在のバージョンではMySQLのみです。 |
sourceVersion | ソースデータベースのバージョン。ソースデータベースのバージョンを確認するには、 select version();を参照してください。 |
schemaName | データベース名。 |
tableName | テーブル名。 |
objectName | 形式:データベース名.テーブル名。 |
columns | テーブル内の各列の定義。 |
oldColumns | DML実行前の該当行のデータです。insertメッセージの場合、この配列はnullです。配列内の要素には12種類のタイプがあります:Integer、Character、Decimal、Float、Timestamp、DateTime、TimestampWithTimeZone、BinaryGeometry、TextGeometry、BinaryObject、TextObject、EmptyObject。詳細はdemoの定義を参照してください。 |
newColumns | DML実行後の該当行のデータです。deleteメッセージの場合、この配列はnullです。配列内の要素には12種類のタイプがあります:Integer、Character、Decimal、Float、Timestamp、DateTime、TimestampWithTimeZone、BinaryGeometry、TextGeometry、BinaryObject、TextObject、EmptyObject。詳細はdemoの定義を参照してください。 |
sql | DDLのSQL文。 |
executionTime | DDLの実行時間。単位は秒です。 |
heartbeatTimestamp | ハートビートメッセージのタイムスタンプ。秒単位です。このフィールドはheartbeatメッセージにのみ存在します。 |
syncedGtid | DTSが解析済みのGTIDセット。形式は例:c7c98333-6006-11ed-bfc9-b8cef6e1a231:1-13。 |
fakeGtid | 構築された偽のGTIDかどうか。gtid_modeがオフの場合、DTSはGTIDを構築します。 |
pkNames | ソースデータベースのテーブルにPKが設定されている場合、DMLメッセージにこのパラメータが含まれます。設定されていない場合は含まれません。 |
readerTimestamp | DTSがこのデータを処理する時間。unixタイムスタンプ、単位はミリ秒です。 |
tags | |
total | メッセージがシャードされる場合、シャードの総数を記録します。現在のバージョン(version=1)では意味がなく、将来の拡張のために予約されています。 |
index | メッセージがシャードされる場合、現在のシャードのインデックスを記録します。現在のバージョン(version=1)では意味がなく、将来の拡張のために予約されています。 |
MySQL タイプ | Avro における型 |
MYSQL_TYPE_NULL | EmptyObject |
MYSQL_TYPE_INT8 | Integer |
MYSQL_TYPE_INT16 | Integer |
MYSQL_TYPE_INT24 | Integer |
MYSQL_TYPE_INT32 | Integer |
MYSQL_TYPE_INT64 | Integer |
MYSQL_TYPE_BIT | Integer |
MYSQL_TYPE_YEAR | DateTime |
MYSQL_TYPE_FLOAT | Float |
MYSQL_TYPE_DOUBLE | Float |
MYSQL_TYPE_VARCHAR | Character |
MYSQL_TYPE_STRING | Character、元の型がbinaryの場合、BinaryObjectに対応します。 |
MYSQL_TYPE_VAR_STRING | Character、元の型がvarbinaryの場合、BinaryObjectに対応します。 |
MYSQL_TYPE_TIMESTAMP | Timestamp |
MYSQL_TYPE_DATE | DateTime |
MYSQL_TYPE_TIME | DateTime |
MYSQL_TYPE_DATETIME | DateTime |
MYSQL_TYPE_TIMESTAMP_NEW | Timestamp |
MYSQL_TYPE_DATE_NEW | DateTime |
MYSQL_TYPE_TIME_NEW | DateTime |
MYSQL_TYPE_DATETIME_NEW | DateTime |
MYSQL_TYPE_ENUM | TextObject |
MYSQL_TYPE_SET | TextObject |
MYSQL_TYPE_DECIMAL | Decimal |
MYSQL_TYPE_DECIMAL_NEW | Decimal |
MYSQL_TYPE_JSON | TextObject |
MYSQL_TYPE_BLOB | BinaryObject |
MYSQL_TYPE_TINY_BLOB | BinaryObject |
MYSQL_TYPE_MEDIUM_BLOB | BinaryObject |
MYSQL_TYPE_LONG_BLOB | BinaryObject |
MYSQL_TYPE_GEOMETRY | BinaryObject |
フィードバック