ルールと制限 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - DATASETデータ型

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/des1556232910526.ditamap
dita:ditavalPath
ja-JP/des1556232910526.ditaval
dita:id
B035-1198
Product Category
Software
Teradata Vantage

この関数に渡される2つの値は、有効なスキーマでなければなりません。

以下の情報はApache Avro仕様に基づくものであり、Teradata固有の情報ではありません。Teradataでは、一致するスキーマに関するApacheの定義を実装しています。

この関数では、最初に渡される値はwriter'sスキーマと見なされ、2番目に渡される値はreader'sスキーマと見なされます。両方とも有効なAvroスキーマであり、値はCHAR/VARCHAR/CLOB/JSON型にする必要があります。

一致させるには、次のいずれかの条件を満たす必要があります。
  • どちらのスキーマも、項目型が一致している配列型である。
  • どちらのスキーマも、値型が一致しているマップである。
  • どちらのスキーマも、名前が一致している列挙型である。
  • どちらのスキーマも、サイズと名前が固定で一致している。
  • 両方のスキーマが同じ名前を持つレコードである。
  • いずれかのスキーマがUNIONである。
  • 両方のスキーマが同じプリミティブ型を持っている。
  • 次の場合、ライターのスキーマがリーダーのスキーマに昇格されることがあります。
    • INTは、LONG、FLOAT、またはDOUBLEに昇格できます。
    • LONGは、FLOATまたはDOUBLEに昇格できます。
    • FLOATはDOUBLEに昇格できます。
    • フィールドの順序は異なる場合があります。フィールドは名前で照合されます。
    • 両方のレコードに同じ名前のフィールドがある場合、スキーマは再帰的に解決されます。
    • リーダーのレコード内に存在しない名前のフィールドがライターのレコードに含まれている場合、そのフィールドについてライターの値は無視されます。
    • リーダーのレコード スキーマに、デフォルト値を含むフィールドがあり、ライターのスキーマに同じ名前のフィールドがない場合、リーダーのスキーマ フィールドのデフォルト値を使用します。
    • リーダーのレコード スキーマに、デフォルト値のないフィールドがあり、ライターのスキーマに同じ名前のフィールドがない場合、スキーマは一致しません。
  • 両方が列挙型でライターのシンボルがリーダーの列挙型に存在しない場合、スキーマは一致しません。
  • 両方が配列の場合: 解決アルゴリズムは、リーダーとライターの配列項目スキーマに再帰的に適用されます。
  • 両方がマップの場合: 解決アルゴリズムは、リーダーとライターの値スキーマに再帰的に適用されます。
  • 両方ともUNIONである場合:選択したライターのUNIONスキーマに一致するリーダーのUNIONの最初のスキーマがライターのスキーマに対して再帰的に解決される。何も一致しない場合、スキーマは一致しません。
  • リーダーのスキーマはUNIONであるが、ライターのスキーマがUNIONではない場合、ライターのスキーマに一致するリーダーのUNIONの最初のスキーマがライターのスキーマに対して再帰的に解決されます。何も一致しない場合、スキーマは一致しません。
  • ライターのスキーマはUNIONであるが、リーダーのスキーマがUNIONではない場合:
    • リーダーのスキーマは、選択したライターのスキーマに一致する場合、それに対して再帰的に解決されます。
    • 一致しない場合、スキーマは一致しません。
  • スキーマの「doc」フィールドは、スキーマ解決の目的では無視されます。