3.2.5.3. データタイプ

上記のように、PostgreSQL コネクターは、行が存在するテーブルのように構造化されたイベントがある行への変更を表します。イベントには各列値のフィールドが含まれ、イベントでどのように表示されるかは、列の PostgreSQL データ型によって異なります。このセクションでは、このマッピングについて説明します。

以下の表は、コネクターが各 PostgreSQL データタイプをイベントのフィールド リテラルタイプ およびセマンティクスタイプにマッピングする方法について説明しています。

literal タイプは、Kafka Connect のスキーマタイプ(、、、、、、、、、、、、、、、、、、、、INT8、、INT16 INT32 INT64 FLOAT32 FLOAT64 BOOLEANSTRING BYTES ARRAY MAPおよび)を使用して値が文字的に表される方法を記述STRUCTます。

セマンティクスタイプは、Kafka Connect スキーマがフィールドの Kafka Connect スキーマの名前を使用してフィールドの 意味 をキャプチャーする方法について説明しています。

PostgreSQL データタイプ

リテラルタイプ(スキーマタイプ)

セマンティクスタイプ(スキーマ名)

備考

BOOLEAN

BOOLEAN

該当なし

 

BIT(1)

BOOLEAN

該当なし

 

BIT( > 1), BIT VARYING[(M)]

BYTES

io.debezium.data.Bits

length schema パラメーターには、ビット数を表す整数が含まれます。結果的にはリトルエンディアン形式でビットが byte[] 含まれ、指定されたビット数を含めるようにサイズが指定されます(例: numBytes = n/8 + (n%8== 0 ? 0 : 1) n はビット数)。

SMALLINT, SMALLSERIAL

INT16

該当なし

 

INTEGER, SERIAL

INT32

該当なし

 

BIGINT, BIGSERIAL

INT64

該当なし

 

REAL

FLOAT32

該当なし

 

DOUBLE PRECISION

FLOAT64

該当なし

 

CHAR[(M)]

STRING

該当なし

 

VARCHAR[(M)]

STRING

該当なし

 

CHARACTER[(M)]

STRING

該当なし

 

CHARACTER VARYING[(M)]

STRING

該当なし

 

TIMESTAMPTZ, TIMESTAMP WITH TIME ZONE

STRING

io.debezium.time.ZonedTimestamp

タイムゾーン情報が GMT であるタイムスタンプを表す文字列

TIMETZ, TIME WITH TIME ZONE

STRING

io.debezium.time.ZonedTime

タイムゾーン情報が GMT であるタイムゾーン情報が含まれる文字列表現

INTERVAL [P]

INT64

io.debezium.time.MicroDuration
(デフォルト)

365.25 / 12.0 計算式(月 1 日)を使用した時間間隔のマイクロ秒単位の概算値。

INTERVAL [P]

String

io.debezium.time.Interval
(がに設定 interval.handling.mode されているタイミング string

パターンに続く間隔の値の文字列表現( P<years>Y<months>M<days>DT<hours>H<minutes>M<seconds>S例:)。 P1Y2M3DT4H5M6.78S

BYTEA

BYTES

該当なし

 

JSON, JSONB

STRING

io.debezium.data.Json

JSON ドキュメント、配列、またはスケーラーの文字列表現が含まれます。

XML

STRING

io.debezium.data.Xml

XML ドキュメントの文字列表現を含みます。

UUID

STRING

io.debezium.data.Uuid

PostgreSQL UUID 値の文字列表現が含まれます。

POINT

STRUCT

io.debezium.data.geometry.Point

2 つの FLOAT64 フィールドを持つ構造が含まれています (x,y)。それぞれはジオメトリックポイントの座標を表します。

LTREE

STRING

io.debezium.data.Ltree

PostgreSQL LTREE 値の文字列表現が含まれます。

CITEXT

STRING

該当なし

 

INET

STRING

該当なし

 

INT4RANGE

STRING

該当なし

整数の範囲

INT8RANGE

STRING

該当なし

bigint の範囲

NUMRANGE

STRING

該当なし

数値の範囲

TSRANGE

STRING

該当なし

タイムゾーンなしのタイムスタンプ範囲の文字列表現が含まれます。

TSTZRANGE

STRING

該当なし

(ローカルシステム)タイムゾーンを含むタイムスタンプ範囲の文字列表現が含まれます。

DATERANGE

STRING

該当なし

日付範囲の文字列表現が含まれます。これは常に排他的な上限を持ちます。

ENUM

STRING

io.debezium.data.Enum

PostgreSQL ENUM 値の文字列表現が含まれます。許可される値のセットは、という名前のスキーマパラメーターに保持され allowedます。

その他のデータタイプのマッピングについては、以下のセクションで説明します。

3.2.5.3.1. 一時的な値

PostgreSQL の TIMESTAMPTZ および TIMETZ データタイプ(タイムゾーン情報が含まれる)以外では、他の一時タイプは time.precision.mode 設定プロパティーの値によって異なります。time.precision.mode 設定プロパティーが adaptive (デフォルト)に設定されると、コネクターはコラムのデータタイプ定義に基づいて一時タイプのリテラルタイプおよびセマンティクスタイプを判断し、イベントがデータベースの値を 正確 に表します。

PostgreSQL データタイプ

リテラルタイプ(スキーマタイプ)

セマンティクスタイプ(スキーマ名)

備考

DATE

INT32

io.debezium.time.Date

エポックからの日数を表します。

TIME(1), TIME(2), TIME(3)

INT32

io.debezium.time.Time

タイムゾーン情報が含まれ、午前 1 時を経過したミリ秒数を表します。

TIME(4), TIME(5), TIME(6)

INT64

io.debezium.time.MicroTime

タイムゾーン情報が含まれ、午前 1 時以内に経過したマイクロ秒数を表します。

TIMESTAMP(1), TIMESTAMP(2), TIMESTAMP(3)

INT64

io.debezium.time.Timestamp

エポックからの経過時間(ミリ秒単位)を表し、タイムゾーン情報が含まれません。

TIMESTAMP(4), TIMESTAMP(5), TIMESTAMP(6), TIMESTAMP

INT64

io.debezium.time.MicroTimestamp

過去のエポックに対するマイクロ秒数を表し、タイムゾーン情報が含まれません。

設定プロパティーがに time.precision.mode 設定されていると adaptive_time_microseconds、コネクターはコラムのデータタイプ定義に基づいてリテラルタイプとセマンティクスタイプを判断します。これにより、イベントがデータベースの値を 正確 に表します。ただし、すべての TIME フィールドがマイクロ秒としてキャプチャーされます。

PostgreSQL データタイプ

リテラルタイプ(スキーマタイプ)

セマンティクスタイプ(スキーマ名)

備考

DATE

INT32

io.debezium.time.Date

エポックからの日数を表します。

TIME([P])

INT64

io.debezium.time.MicroTime

タイムゾーン情報が含まれ、時間値をマイクロ秒単位で表します。PostgreSQL では、精度 0 - 6 の範囲 P で、マイクロ秒の精度を最大で保存できます。

TIMESTAMP(1) , TIMESTAMP(2), TIMESTAMP(3)

INT64

io.debezium.time.Timestamp

エポックからの経過時間(ミリ秒単位)を表し、タイムゾーン情報が含まれません。

TIMESTAMP(4) , TIMESTAMP(5), TIMESTAMP(6), TIMESTAMP

INT64

io.debezium.time.MicroTimestamp

過去のエポックに対するマイクロ秒数を表し、タイムゾーン情報が含まれません。

設定プロパティーがに time.precision.mode 設定された場合 connect、コネクターは事前定義された Kafka Connect の論理タイプを使用します。これは、コンシューマーがビルトインの Kafka Connect の論理タイプのみを認識し、可変精度の値を処理することができない場合に便利です。一方、PostgreSQL はマイクロ秒の精度をサポートするため、connect 時間精度モードのコネクターによって生成されたイベント により、データベースの列に 分数次の精度の値が 3 よりも大きいと、精度 が失わ れてしまいます。

PostgreSQL データタイプ

リテラルタイプ(スキーマタイプ)

セマンティクスタイプ(スキーマ名)

備考

DATE

INT32

org.apache.kafka.connect.data.Date

エポックからの日数を表します。

TIME([P])

INT64

org.apache.kafka.connect.data.Time

毎時からのミリ秒数を表し、タイムゾーン情報が含まれません。PostgreSQL では 0 - 6 の範囲で最大マイクロ秒の精度を保存 P できますが、P> 3 ではこのモードの精度が失われます。

TIMESTAMP([P])

INT64

org.apache.kafka.connect.data.Timestamp

エポックからの経過時間(ミリ秒単位)を表し、タイムゾーン情報が含まれません。PostgreSQL では 0 - 6 の範囲で最大マイクロ秒の精度を保存 P できますが、P> 3 ではこのモードの精度が失われます。