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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-31
dita:mapPath
ja-JP/xwv1596137968859.ditamap
dita:ditavalPath
ja-JP/xwv1596137968859.ditaval
dita:id
B035-1210
Product Category
Software
Teradata Vantage

この例では、READ_NOSを使用して、拡張子(.JSON)なしのJSONファイルをクエリーする方法を示します。

ファイル名の検証

このクエリーでは、関数マッピングREAD_NOS_json_fmを使用して、NOSREAD_KEYSの戻りタイプを使用し場所列にクエリーを実行することで、ファイル拡張子をチェックします。

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

READ_NOSを実行します。

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

結果には、ファイル28に拡張子がないことが示されています。

Location                                              
 ----------------------------------------------------- 
 /S3/td-usgs.s3.amazonaws.com/DATA/09380000/2018/06/28

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

以下の文には、ファイル28をJSONファイルとして定義するON句が含まれています。

関数マッピングREAD_NOS_json_fmをまだ作成していなければ作成します。例: JSONデータ ファイルにANY IN TABLEを使用した関数マッピング定義を参照してください。

SELECT payload.Flow, payload.Precipitation, payload.Conductance,   
  payload.datetime, payload.site_no, payload.Temp, payload.GageHeight
FROM READ_NOS_json_intable_fm (
  ON (SELECT CAST (NULL AS JSON(8388096)))
  USING
  LOCATION('/S3/td-usgs.s3.amazonaws.com/DATA/09380000/2018/06/28')
) 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                  673                 2018-06-28 13:30 09380000        11.3         10.01             
 16400        0.00                  673                 2018-06-28 13:45 09380000        11.4         10.01             
 16400        0.00                  675                 2018-06-28 14:00 09380000        11.4         10.01             
 16600        0.00                  678                 2018-06-28 14:15 09380000        11.4         10.05             
 16600        0.00                  671                 2018-06-28 14:30 09380000        11.5         10.04             
 16700        0.00                  677                 2018-06-28 14:45 09380000        11.5         10.06             
 16800        0.00                  680                 2018-06-28 15:00 09380000        11.5         10.08             
 16700        0.00                  680                 2018-06-28 15:15 09380000        11.6         10.07             
 16800        0.00                  675                 2018-06-28 15:30 09380000        11.6         10.09             
 16800        0.00                  675                 2018-06-28 15:45 09380000        11.6         10.08             
 16800        0.00                  682                 2018-06-28 16:00 09380000        11.6         10.09