必要に応じて、JSONおよびCSVデータを持つ外部テーブルのペイロード列を指定できます。外部テーブル定義でペイロード列を明示的に指定する場合は、場所列も指定する必要があります。
Parquetデータを持つ外部テーブルのペイロード列を指定することはできません。
外部テーブルを定義しながらペイロード列を明示的に指定しないと、自動的に生成されるペイロード列のデータ型は、場所のパス内にあるファイルの拡張子に応じて異なります。
ファイル拡張子 | ペイロード列のタイプ |
---|---|
.jsonまたは.json.gz | JSON |
.csvまたは.csv.gz | DATASET STORAGE FORMAT CSV |
ファイル拡張子がないかファイル拡張子を認識できません | JSON、サポートされない種類のファイルの警告が表示される |
場所のパスでの.jsonファイルと.csvファイルの混在 | Vantageで検出される最初の有効なファイルの種類に基づきます。その場所で他に別の拡張子を持つファイルがあっても無視されます。 このため、指定したLOCATIONにあるデータ形式が1つだけになるように調整できない場合は、データ形式が混在する場所用のペイロード列を指定することを推奨します。 |
ペイロード列の仕様は、次のいずれかの形式を取ることができます。ここで、データ型はUSING...LOCATIONパスにあるデータの型と一致する必要があります。
- JSONデータの場合:
- Payload JSON(8388096) INLINE LENGTH 32000 CHARACTER SET UNICODE
- Payload JSON(16776192) INLINE LENGTH 64000 CHARACTER SET LATIN
- CSVデータの場合:
- Payload DATASET (2097088000) INLINE LENGTH 64000 STORAGE FORMAT CSV CHARACTER SET UNICODE
- Payload DATASET (2097088000) INLINE LENGTH 64000 STORAGE FORMAT CSV CHARACTER SET LATIN
列名を指定するヘッダー レコードが外部CSVデータ ファイルに含まれていない場合は、CSVフィールド データの列名を指定するスキーマ オブジェクトを定義する必要があります。(CSVファイルにヘッダー レコードがあり、そのレコードをスキーマにも関連付ける場合は、ヘッダーは外部テーブルで通常のデータ行として扱われます)。スキーマ オブジェクトの詳細については、CSVファイル ヘッダーとスキーマを参照してください。
次のような場合は、CSVデータに使用するスキーマを示すペイロード列の仕様を使用します。- Payload DATASET (2097088000) INLINE LENGTH 64000 STORAGE FORMAT CSV CHARACTER SET UNICODE WITH SCHEMA schema_name
- Payload DATASET (2097088000) INLINE LENGTH 64000 STORAGE FORMAT CSV CHARACTER SET LATIN WITH SCHEMA schema_name
ペイロード列をスキーマなしのDATASET … STORAGE FORMAT CSVとして定義し、USING...ROWFORMATパラメータを指定しない場合は、ファイルはデフォルトのCSVファイル形式であると想定されます。
- 最初のレコードはヘッダーとして読み取られます。
- フィールドはカンマで区切られます。
- レコードは、改行(LF)、"\n"または復帰改行(CRLF)、"\r\n"で区切られます。スキーマまたはROWFORMAT句では、改行(LF)、"\n"のみを指定でき、復帰改行(CRLF)、"\r\n"は指定できません。