この例では、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