NUMBERまたはDECIMAL型のAvro値への公開 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ DATASETデータ型

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/pgs1512082344257.ditamap
dita:ditavalPath
ja-JP/pgs1512082344257.ditaval
dita:id
B035-1198
Product Category
Software
Teradata Vantage

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"]}]}}