17.05 - 例: 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-1146-175K-JPN
Language
日本語 (日本)

テーブル定義

この例のテーブル定義は、次のとおりです。この文は、LOCATIONパラメータが、Amazon S3に保存されているJSONファイルを指定する外部テーブルriverflowを定義します。

DefAuth許可オブジェクトをまだ作成していない場合は作成します。例: 許可オブジェクトの作成を参照してください。

CREATE FOREIGN TABLE riverflow
, EXTERNAL SECURITY DEFINER TRUSTED DefAuth
USING
(
     LOCATION ('/s3/td-usgs.s3.amazonaws.com/DATA/09380000/2018/06/27')
);

JSONファイルでのキーの表示

このクエリーでは、JSON_KEYS関数を使用して、外部テーブルriverflowで指定されたJSONファイル内のキーを表示します。

SELECT DISTINCT * FROM JSON_KEYS (ON (SELECT payload FROM riverflow)) AS j;

結果表示は、次のとおりです。

 JSONKeys        
 --------------- 
 "Flow"         
 "Precipitation"
 "Conductance"  
 "datetime"     
 "site_no"      
 "Temp"         
 "GageHeight"

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

このクエリーは、温度が11.0を超えゲージの高さが10.00を超える外部テーブルriverflowから、行を日付と時刻の順に返します。

SELECT 
  payload.Flow, 
  payload.Precipitation, 
  payload.Conductance, 
  payload.datetime, 
  payload.site_no, 
  payload.Temp, 
  payload.GageHeight
FROM riverflow 
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