17.10 - NUMBERまたはDECIMAL型のAvro値への公開 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - DATASETデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1198-171K-JPN
Language
日本語 (日本)

NUMBER型またはDECIMAL型をテーブルからAvro値にパブリッシングする場合、スキーマはdouble型ではなく文字列として書き出されます。NUMBERおよびDECIMALはより高い精度を使用するため、doubleまたは他の関連するプリミティブ型を使用すると、精度が損なわれる可能性があります。文字列を使用すると、この情報が失われることを防ぐことができます。

NUMBER型またはDECIMAL型を使用する場合、スキーマは次のようになります。
CREATE TABLE avrotest(a INTEGER, b DECIMAL(38,9), c NUMBER(38,9));
INSERT INTO avrotest(1, 12345678901234567890123456789.012345679, 12345678901234567890123456789.012345679);
SELECT data.tojson(), data.getschema() FROM DATASET_PUBLISH
(
    ON (SELECT * FROM avrotest)
) as L;
*** Query completed. One row found. 2 columns returned.
 *** Total elapsed time was 1 second.

   data.TOJSON() [{"a":{"int":1},"b":
{"string":"12345678901234567890123456789.012345679"},"c":
{"string":"12345678901234567890123456789.012345679"}}]
data.GETSCHEMA() {"type":"array","items":{"type":"record","name":"rec_0","fields":
[{"name":"a","type":["null","int"]},{"name":"b","type":["null","string"]},
{"name":"c","type":["null","string"]}]}}