17.10 - READ_NOS構文要素 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-171K-JPN
Language
日本語 (日本)
table_name
テーブルの名前
view_name
ビューの名前。
query_expression
テーブル演算子への入力を指定する式。
LOCATION
LOCATION値(外部オブジェクト ストレージ システムを参照するUniform Resource Identifier (URI))を指定する必要があります。LOCATION値には、以下のコンポーネントが含まれます。
  • Amazon S3: /connector/bucket.endpoint/[key_prefix]
  • Azure BlobストレージおよびAzure Data Lake Storage Gen2: /connector/storage-account.endpoint/container/[key_prefix]
  • Google Cloud Storage (GCS): /connector/endpoint/bucket/[key_prefix]
connector
データが置かれている外部ストレージ システムのタイプを識別します。
Teradataでは、すべての外部ストレージの場所について、以下から始まるストレージの場所が必要です。
  • Amazon S3のストレージの場所は、必ず/S3または/s3で始まる
  • Azure BLOBストレージの場所(Blob相互運用モードのAzure Data Lake Storage Gen2を含む)は、/AZまたは/azで始まる必要があります。
  • Google Cloud Storageの場所は、必ず/GSまたは/gsで始まる
storage-account
Azureによって使用されます。Azureストレージ アカウントには、Azureストレージ データ オブジェクトが含まれています。
endpoint
外部オブジェクト ストレージ システムのシステム固有のエントリー ポイントを識別するURL。
bucket (Amazon S3, GCS) or container (Azure Blob storage and Azure Data Lake Storage Gen2)
外部ストレージ システムに格納されているオブジェクトを論理的にグループ化するコンテナ。
key_prefix
バケット データの論理編成内の1つ以上のオブジェクトを識別します。これは実際のディレクトリ パスではなくキー接頭辞なので、このキー接頭辞は外部ストレージ内の1つ以上のオブジェクトと一致する場合があります。例えば、キー接頭辞'/fabrics/cotton/colors/b/'は、/fabrics/cotton/colors/blue、/fabrics/cotton/colors/brown、/fabrics/cotton/colors/blackと一致します。これらより下位の編成レベル(/fabrics/cotton/colors/blue/shirtsなど)がある場合は、同じキー接頭辞もそれらのオブジェクトを収集します。
Vantageは、場所のキー接頭辞から最初に検出されたファイルのみを検証します。

例えば、以下のLOCATION値は、2001年12月のAmazonクラウド ストレージ システム上のすべてのオブジェクトを指定できます。

LOCATION('/S3/YOUR-BUCKET.s3.amazonaws.com/csv/US-Crimes/csv-files/2001/Dec/')
コネクタ バケット Endpoint key_prefixes
S3 YOUR-BUCKET s3.amazonaws.com csv/US-Crimes/csv-files/2001/Dec/

以下のLOCATIONでは、個別のストレージ オブジェクト(またはファイル)、Day1.csvを指定できます。

LOCATION('/S3/YOUR-BUCKET.s3.amazonaws.com/csv/US-Crimes/csv-files/2001/Dec/Day1.csv')
コネクタ バケット Endpoint key_prefixes
S3 YOUR-BUCKET s3.amazonaws.com csv/US-Crimes/csv-files/2001/Dec/Day11.csv

以下のLOCATIONは、Azureの外部オブジェクト ストア(Azure BlobストレージまたはAzure Data Lake Storage Gen2)内のコンテナ全体を指定します。containerには複数のファイル オブジェクトが含まれる場合があります。

LOCATION('/AZ/YOUR-STORAGE-ACCOUNT.blob.core.windows.net/CONTAINER/nos-csv-data')
コネクタ storage-account Endpoint container key_prefixes
AZ YOUR-STORAGE-ACCOUNT blob.core.windows.net CONTAINER nos-csv-data

以下は、Google Cloud Storageの場所の例です。

LOCATION('/gs/storage.googleapis.com/YOUR-BUCKET/CSVDATA/RIVERS/rivers.csv')
コネクタ Endpoint バケット key_prefixes
GS storage.googleapis.com YOUR-BUCKET CSVDATA/RIVERS/rivers.csv
AUTHORIZATION
[オプション]外部ストレージにアクセスするための許可。
どのプラットフォームでも、許可オブジェクト([DatabaseName.]AuthorizationObjectName)を指定できます。AuthorizationObjectNameに対するEXECUTE権限が必要です。
Amazon S3、Azure BLOBストレージおよびAzure Data Lake Storage Gen2では、許可オブジェクトまたはJSON形式の文字列のいずれかを指定することができます。この文字列は、外部ストレージにアクセスするためのUSER (identification)とPASSWORD (secret_key)を指定します。次の表は、USERおよびPASSWORD (CREATE AUTHORIZATIONコマンドで使用)でサポートされる信頼証明を示します。
システム/スキーマ USER PASSWORD
AWS アクセス キーID アクセス キー シークレット
Azure/共有キー ストレージ アカウント名 ストレージ アカウント キー
Azure共有アクセス署名(SAS) ストレージ アカウント名 アカウントSASトークン
Google Cloud (S3相互運用モード) アクセス キーID アクセス キー シークレット
Google Cloud (ネイティブ) クライアントの電子メール 秘密鍵
オンプレミス オブジェクト ストア アクセス キーID アクセス キー シークレット
パブリック アクセス オブジェクト ストア <空の文字列>

空の文字列を左右の区別がない一重引用符で囲む: USER ''

<空の文字列>

空の文字列を左右の区別がない一重引用符で囲む: PASSWORD ''

関数マッピングを使用してREAD_NOSのラッパーを定義する場合は、関数マッピングでは、[ INVOKER | DEFINER ] TRUSTEDを使用する必要があります。
AWS IAM信頼証明を使用している場合は、AUTHORIZATION句を省略できます。
GCSにアクセスするとき、ユーザーの信頼証明に応じて、Advanced SQL EngineはS3互換コネクタまたはネイティブのGoogleコネクタのいずれかを使用します。
BUFFERSIZE
外部ストレージ リポジトリからデータを取得するときに割り当てるネットワーク バッファのサイズ。
デフォルト値は最大値の16MBです。
NOSREAD_RECORD
[デフォルト]外部レコードごとに1行をメタデータとともに返します。
以下のいずれかを指定して外部レコードにアクセスします。
  • 入力テーブルとLOCATIONおよび空のテーブル。
  • 各外部ファイルの行を持つ入力テーブル。
空の単一列入力テーブルの場合は、以下を行ないます。
  • 適切なデータ型を使用して、単一列、Payloadを含む入力テーブルを定義します。
    • JSON
    • CSV

    この列は、出力ペイロード列の戻りタイプを決定します。

    <例: NOSREAD_RECORD戻りタイプを含むREAD_NOSの使用>を参照してください。

  • LOCATIONにはファイルパスを指定します。
複数列の入力テーブルの場合は、次の列を含む入力テーブルを定義します。
  • Location VARCHAR(2048) CHARACTER SET UNICODE
  • ObjectVersionID VARCHAR(1024) CHARACTER SET UNICODE
  • ObjectTimeStamp TIMESTAMP(6)
  • OffsetIntoObject BIGINT
  • ObjectLength BIGINT
  • ペイロードJSON

このテーブルには、NOSREAD_KEYS戻り型の出力を使用して入力できます。

NOSREAD_KEYS
LOCATION USING句に指定したパスからファイルのリストを取得します。
スキーマ定義は必要ありません。
戻り値:
  • Location
  • ObjectVersionID
  • ObjectTimeStamp
  • ObjectLength、外部ファイルのサイズ。

<例: NOSREAD_KEYS戻りタイプを含むREAD_NOSの使用>を参照してください。

NOSREAD_PARQUET_SCHEMA
Parquetデータ スキーマに関する情報を返します。FULLSCANオプションを使用している場合は、NOSREAD_PARQUET_SCHEMAを使用します。それ以外の場合は、NOSREAD_SCHEMAを使用してParquetスキーマに関する情報を取得できます。Parquetデータ型とTeradataデータ型同士のマッピングの詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>のParquet外部ファイルを参照してください。
NOSREAD_SCHEMA
external_file_pathで指定されたファイルの各列の名前とデータ型を返します。スキーマ形式は、JSON、CSV、またはParquetです。
SAMPLE_PERC
RETURNTYPEがNOSREAD_RECORDのとき、外部ストレージ リポジトリから取得する行数のパーセンテージを指定します。値の有効範囲は’0.0’から’1.0’で、’1.0’は100%の行数を表わします。
デフォルト値は1.0です。
STOREDAS
外部データのフォーマット スタイルを指定します。
  • PARQUETは、外部データがParquetとしてフォーマットされていることを意味します。これは、Parquetデータに必要なパラメータです。
  • TEXTFILEは、外部データがCSVやJSONなどのテキストベースの形式を使用していることを意味します。
デフォルトはTEXTFILEです。
FULLSCAN
READ_NOSが可変長型(CHAR、VARCHAR、BYTE、VARBYTE、JSON、BSON)の列をスキャンして、最大長を検出するかどうかを決定します。
  • TRUEは、可変長データのサイズがParquetデータから判定されることを意味します。
    この値を選択するとパフォーマンスに影響を与える可能性があります。その理由は、その場所にあるParquetファイルごとの可変長データ型列すべてをスキャンして、最大の長さを持つ値を評価する必要があるからです。
  • FALSEは、可変長フィールドのサイズに、特定データ型のVantage最大値が割り当てられることを意味します。
デフォルトはFALSEです。
FULLSCANは、RETURNTYPEがNOSREAD_PARQUET_SCHEMAの場合にのみ使用されます。
MANIFEST
LOCATION値がマニフェスト ファイル(読み取るファイルの一覧を含むファイル)またはオブジェクト名を指すかどうかを指定します。オブジェクト名には、完全パスまたは部分パスを含めることができます。その名前からマニフェストを含む単一ファイルが特定される必要があります。
マニフェスト ファイル内の個々のエントリには、完全なパスが示されている必要があります。
以下に、場所に対するエントリのリストを含むJSON形式のマニフェスト ファイルの例を示します。
{
  "entries": [
     {"url":"s3://nos-core-us-east-1/UNICODE/JSON/mln-key/data-10/data-8_9_02-10.json"},
     {"url":"s3://nos-core-us-east-1/UNICODE/JSON/mln-key/data-10/data-8_9_02-101.json"},
     {"url":"s3://nos-core-us-east-1/UNICODE/JSON/mln-key/data-10/data-10-01/data-8_9_02-102.json"},
     {"url":"s3://nos-core-us-east-1/UNICODE/JSON/mln-key/data-10/data-10-01/data-8_9_02-103.json"}
  ]
}
ROWFORMAT
外部行のエンコーディング形式を次のように指定します。
ROWFORMAT('{"field_delimiter":",", "record_delimiter":"\n", "character_set":"LATIN"}')
JSON形式を使用してROWFORMATを指定します。上記に示された3つのキーのみを含めることができます。キーの名前と値は、大文字小文字の組み合わせを使用できる"character_set"の値を除いて、大文字と小文字が区別されます。
ROWFORMAT文字セット仕様は、ペイロード列のデータ型と互換性がなければなりません。
Parquet形式のデータにROWFORMATを指定しないでください。
JSON列の場合、以下がデフォルト値になります。
ペイロード文字セット デフォルトの定義
UNICODE
ROWFORMAT('{"record_delimiter":"\n", "character_set":"UTF8"}')
LATIN
ROWFORMAT('{"record_delimiter":"\n", "character_set":"LATIN"}')
CSV列の場合、以下がデフォルト値になります。
ペイロード文字セット デフォルトの定義
UNICODE

ROWFORMAT('{"character_set":"UTF8"}')

これは、READ_NOSの入力テーブルを指定しない場合のデフォルトです。

LATIN ROWFORMAT('{"character_set":"LATIN"}')
次のオプションを指定できます。
field_delimiter
デフォルトは","(カンマ)です。カスタムのフィールド区切り記号(タブ"\t"など)を指定することもできます。
record_delimiter
改行記号: "\n"。改行(\n)は、唯一受け入れられるレコード区切り記号です。
character_set
"UTF8"または"LATIN"
ROWFORMAT列またはペイロード列を指定しない場合、VantageはUTF8ユニコードを前提とします。
HEADER
入力されるCSVファイルの最初のデータ行が、後続のデータ行の列見出しとして解釈されるかどうかを指定します。
このパラメータを使用するのは、CSVデータの列を定義する別のスキーマ オブジェクトにCSV入力ファイルが関連付けられていない場合に限られます。
HEADERの値は'TRUE'または'FALSE'のどちらも可能です。デフォルトは'TRUE'です。