3.2.5.3.3. 10 進数の値

decimal.handling.mode 設定プロパティーがに設定された場合 precise、コネクターはすべての DECIMAL および NUMERIC 列に事前定義された Kafka Connect の org.apache.kafka.connect.data.Decimal 論理タイプを使用します。これがデフォルトのモードです。

PostgreSQL データタイプ

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

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

備考

NUMERIC[(M[,D])]

BYTES

org.apache.kafka.connect.data.Decimal

scaled schema パラメーターには、変更する 10 進数の数字を表す整数が含まれます。

DECIMAL[(M[,D])]

BYTES

org.apache.kafka.connect.data.Decimal

scaled schema パラメーターには、変更する 10 進数の数字を表す整数が含まれます。

このルールには例外があります。NUMERIC または DECIMAL タイプをスケール制約なしで使用すると、データベースから送信される値は値ごとに異なる(バリアント可能な)スケーリングになります。この場合、タイプ io.debezium.data.VariableScaleDecimal が使用され、転送された値の値とスケールの両方が含まれます。

PostgreSQL データタイプ

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

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

備考

NUMERIC

STRUCT

io.debezium.data.VariableScaleDecimal

転送された値 scale のスケールと、スケーリングされていない形式で元の値が INT32 含ま BYTES れるタイプ value の 2 つのフィールドが含まれる構造が含まれています。

DECIMAL

STRUCT

io.debezium.data.VariableScaleDecimal

転送された値 scale のスケールと、スケーリングされていない形式で元の値が INT32 含ま BYTES れるタイプ value の 2 つのフィールドが含まれる構造が含まれています。

しかし、設定プロパティーがに decimal.handling.mode 設定された場合 double、コネクターはすべて DECIMAL および NUMERIC 値をすべて Java の二重値として表し、以下のようにエンコードします。

PostgreSQL データタイプ

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

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

備考

NUMERIC[(M[,D])]

FLOAT64

  

DECIMAL[(M[,D])]

FLOAT64

  

decimal.handling.mode 設定プロパティーの最後のオプションはです string。この場合、コネクターはすべての DECIMAL および NUMERIC 値をフォーマットされた文字列表現として表現し、以下のようにエンコードします。

PostgreSQL データタイプ

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

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

備考

NUMERIC[(M[,D])]

STRING

  

DECIMAL[(M[,D])]

STRING

  

PostgreSQL は、DECIMAL/ の値に格納するための特殊なNUMERICNaN (数字ではありません)に対応します。このような値のみ string および double モードは、それらを Double.NaN または文字列定数としてエンコードでき NANます。