consumerDemo-avro-java\\src\\main\\resources\\avro-tools-1.8.2.jar:Avroプロトコル関連コードの生成に使用するツールです。consumerDemo-avro-java\\src\\main\\java\\com\\tencent\\subscribe\\avro:Avroツールがコードを生成するディレクトリです。consumerDemo-avro-java\\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 |
フィードバック