CSVファイルには通常、ファイルの最初の行としてヘッダー行が含まれます。ヘッダー行は、ファイルの後続行ごとの対応するデータ フィールドで定義される列の名前を定義します。デフォルトでは、レコード内の各フィールドをカンマ(,)で区切り、各レコードを改行(CRLF復帰改行/改行)で区切ります。以下に例を示します。
First Name,Last Name,City John,Smith,Los Angeles Mary,Jones,New York
外部データのCSVファイルにヘッダー行がない場合は、データベースでスキーマオブジェクトを作成する必要があります。スキーマ オブジェクトは、CSVファイル内のフィールドに対応する列名を指定します。Vantageは、CSVデータの外部テーブルを作成するときに、これらの列名を使用します。(ヘッダー行を含むCSVファイルのスキーマを作成しないでください。作成すると、ヘッダーが外部テーブルの最初の行になります。)
CSVファイルのスキーマを作成するには、SQL文CREATE storage_formatSCHEMAを使用します。詳しい説明は、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。
スキーマは、CSVデータに対してスキーマが定義されている場合でも、フィールドおよび区切り記号の指定にJSONスタイルの構文を使用します。
CSVファイルにヘッダー行がないながら特定の列名を手動で割り当てたくない場合、例えば列数が非常に多い場合などは、Vantageで列名を自動的に割り当てられるようにできます。CSVファイルのスキーマを作成し、スキーマ仕様に"field_names":[]オプションを含め、角括弧の内容を空のままにします。Vantageでは、csvfldn形式の列名が自動的に生成されます。
スキーマは、CSVファイルで使用されるフィールド区切り記号を示すこともできます。区切り記号が標準のカンマ文字ではない場合(タブ区切り記号のTSVファイルなど)では、"field_delimiter"パラメータを使用します。USING...ROWFORMATオプションがフィールド区切り記号も指定する場合、スキーマの指定が優先されます。
READ_NOS USING...HEADERオプションを使用して、CSVデータにヘッダー行があるか、または関連付けられたスキーマをCSVデータが使用するかを指定します。