17.05 - 例: READ_NOSを使用した外部JSONファイルのクエリー - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL演算子およびユーザー定義関数

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
2021年1月
Content Type
プログラミング リファレンス
管理
Publication ID
B035-1210-175K-JPN
Language
日本語 (日本)

この例では、READ_NOSテーブル演算子を使用して、拡張子.JSONを含む外部CSVファイルにアクセスする方法を示します。

ファイル名クエリー

このクエリーでは、READ_NOSテーブル演算子の関数マッピングREAD_NOS_json_fmを使用して、指定した場所にあるファイルに対して、NOSREAD_KEYSの戻りタイプとともにクエリーを実行します。LOCATIONパラメータは、Amazon S3に格納されているJSONファイルを指定します。

関数マッピングREAD_NOS_json_fmをまだ作成していない場合は作成します。例: JSONデータ ファイルに対するEXTERNAL SECURITY句を使用した関数マッピング定義を参照してください。

READ_NOSを実行します。

SELECT location
  FROM READ_NOS_json_fm (
  USING
   LOCATION('/S3/td-usgs.s3.amazonaws.com/JSONDATA/09380000/2018/06/27')
   RETURNTYPE('NOSREAD_KEYS')
) AS derived_table;

出力結果は、ファイルに拡張子.JSONが含まれていることを示しています。

 Location                                                       
 -------------------------------------------------------------- 
 /S3/td-usgs.s3.amazonaws.com/JSONDATA/09380000/2018/06/27.json

サンプルのクエリーと結果

このクエリーは、READ_NOS_json_fm関数マッピングを使用して特定の列を返し、温度が11より大きく高さが10.00より大きいエントリを、日付と時刻の順に検索します。

関数マッピングREAD_NOS_json_fmをまだ作成していない場合は作成します。例: JSONデータ ファイルに対するEXTERNAL SECURITY句を使用した関数マッピング定義を参照してください。

READ_NOSを実行します。

SELECT payload.Flow, payload.Precipitation, payload.Conductance, payload.datetime, payload.site_no, payload.Temp, payload.GageHeight
  FROM READ_NOS_json_fm (
  USING
    LOCATION('/S3/td-usgs.s3.amazonaws.com/JSONDATA/09380000/2018/06/27')
    RETURNTYPE('NOSREAD_RECORD')
) AS derived_table  
  WHERE payload.Temp>11.0 AND payload.GageHeight>10.00 
  ORDER BY payload.datetime;

出力のサンプルを次に示します。

 Payload.Flow Payload.Precipitation Payload.Conductance Payload.datetime Payload.site_no Payload.Temp Payload.GageHeight 
 ------------ --------------------- ------------------- ---------------- --------------- ------------ ------------------ 
 16400        0.00                  668                 2018-06-27 14:15 09380000        11.8         10.01             
 16400        0.00                  670                 2018-06-27 14:30 09380000        11.8         10.01             
 16600        0.00                  665                 2018-06-27 14:45 09380000        11.9         10.04             
 16600        0.00                  669                 2018-06-27 15:00 09380000        11.9         10.05             
 16700        0.00                  668                 2018-06-27 15:15 09380000        12.0         10.07             
 16700        0.00                  667                 2018-06-27 15:30 09380000        12.0         10.07             
 16700        0.00                  663                 2018-06-27 15:45 09380000        12.0         10.07             
 16800        0.00                  666                 2018-06-27 16:00 09380000        12.0         10.09             
 16800        0.00                  667                 2018-06-27 16:15 09380000        12.0         10.08             
 16800        0.00                  667                 2018-06-27 16:30 09380000        12.0         10.08             
 16800        0.00                  668                 2018-06-27 16:45 09380000        12.0         10.09             
 16900        0.00                  670                 2018-06-27 17:00 09380000        12.0         10.10             
 16800        0.00                  670                 2018-06-27 17:15 09380000        12.0         10.09