許可オブジェクトを使用して作成されたFOREIGN TABLEのクエリーと同様に、READ_NOSクエリーで使用する関数マッピングを作成します。関数マッピングを使用すると、ユーザーが設定しなくても、特定の構成設定のデフォルトを設定できます。
関数マッピングを使用して、WRITE_NOSクエリーでのアクセスを制御することもできます。
関数マッピングの詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>と<Teradata Vantage™ - SQLデータ操作言語、B035-1146>を参照してください。
例えば、ユーザーは次のコマンドを実行するために、次の権限が必要です。
- CREATE AUTHORIZATION
- CREATE FUNCTION
- 許可オブジェクトと関数マッピングの作成に必要な権限を持つユーザーとしてログインします。
- DefAuthという許可オブジェクトをまだ作成していない場合は、作成します。
CREATE AUTHORIZATION authorization_object AS DEFINER TRUSTED USER 'YOUR-ACCESS-KEY-ID' PASSWORD 'YOUR-SECRET-ACCESS-KEY';
- 関数マッピングを作成します。
CREATE FUNCTION MAPPING READ_NOS_FM FOR READ_NOS EXTERNAL SECURITY DEFINER TRUSTED authorization_object USING BUFFERSIZE, SAMPLE_PERC, ROWFORMAT, RETURNTYPE, HEADER, MANIFEST, LOCATION, STOREDAS, FULLSCAN, ANY IN TABLE;
- SELECTクエリーで関数マッピングREAD_NOS_FMを使用します。
SELECT TOP 2 LOCATION FROM READ_NOS_FM ( USING LOCATION('YOUR-OBJECT-STORE-URI') RETURNTYPE('NOSREAD_RECORD') ) AS D;
YOUR-OBJECT-STORE-URIは、外部ストレージの場所です(例: /s3/td-usgs.s3.amazonaws.com/JSONDATA/)。
- Teradataが提供するデータを使用してコマンドを実行します。
CREATE AUTHORIZATION nos_usr.DefAuth AS DEFINER TRUSTED USER '' PASSWORD ''; CREATE FUNCTION MAPPING READ_NOS_FM FOR READ_NOS EXTERNAL SECURITY DEFINER TRUSTED DefAuth USING BUFFERSIZE, SAMPLE_PERC, ROWFORMAT, RETURNTYPE, HEADER, MANIFEST, LOCATION, STOREDAS, FULLSCAN, ANY IN TABLE; SELECT TOP 2 * FROM READ_NOS_FM ( USING LOCATION('/s3/td-usgs-public.s3.amazonaws.com/JSONDATA/') RETURNTYPE('NOSREAD_RECORD') ) AS D;
結果は次のようになります。
Location /S3/s3.amazonaws.com/td-usgs-public/JSONDATA/09380000/2018/06/30.json ObjectVersionId ? ObjectTimeStamp ? OffsetIntoObject 0 ObjectLength 151 ExtraField ? Payload { "site_no":"09380000", "datetime":"2018-06-30 00:00", "Flow":"15900", "GageHeight":"9.92", "Temp":"10.4", "Conductance":"685", "Precipitation":"0.00"} Location /S3/s3.amazonaws.com/td-usgs-public/JSONDATA/09380000/2018/06/29.json ObjectVersionId ? ObjectTimeStamp ? OffsetIntoObject 0 ObjectLength 151 ExtraField ? Payload { "site_no":"09380000", "datetime":"2018-06-29 00:00", "Flow":"15700", "GageHeight":"9.87", "Temp":"10.6", "Conductance":"684", "Precipitation":"0.00"}
読みやすいように、出力は縦に表示されます。
関数マッピングの作成
関数マッピングの検証
例