以下の文は、DefAuth_S3(例: 外部テーブルに対するDEFINER許可の指定で作成された)と呼ばれる許可オブジェクトを使用して外部テーブルを定義します。外部テーブルは、Amazon S3バケットに保存されたCSV形式の河川流量データ用です。
CREATE FOREIGN TABLE riverflow_csv, EXTERNAL SECURITY DEFINER TRUSTED DefAuth_S3 ( LOCATION VARCHAR(2048) CHARACTER SET UNICODE CASESPECIFIC, PAYLOAD DATASET INLINE LENGTH 64000 STORAGE FORMAT CSV ) USING( LOCATION ('/S3/td-usgs.s3.amazonaws.com/CSVDATA/') );
以下の文は、適切なデータ型にキャストされた列の選択された列を含むビューを定義します。
CREATE VIEW riverflow_csv_v AS ( SELECT CAST(payload..datetime AS VARCHAR(20)) datetime, CAST(payload..site_no AS CHAR(8)) Site_no, CAST(payload..Flow AS FLOAT) Flow, CAST(payload..GageHeight AS FLOAT) GageHeight1, CAST(payload..Precipitation AS FLOAT) Precipitation, CAST(payload..Temp AS FLOAT) Temperature, CAST(payload..Velocity AS FLOAT) Velocity FROM riverflow_csv );
以下の文は、datetime列にプライマリ インデックスを含んでいるテーブルを定義します。
CREATE MULTISET TABLE riverflow_csv_t ( datetime VARCHAR(20), site_no CHAR(8), Flow Float, GageHeight1 Float, Precipitation Float, Temperature Float, Velocity Float ) PRIMARY INDEX (datetime) ;
以下の文は、指定された列の行を、ビューriverflow_csv_vからテーブルriverflow_csv_tに挿入します。
INSERT INTO riverflow_csv_t( datetime, Site_no, Flow, GageHeight1, Precipitation, Temperature, Velocity ) SELECT datetime, Site_no, Flow, GageHeight1, Precipitation, Temperature, Velocity FROM riverflow_csv_v;
以下の文は、テーブルriverflow_csv_tにクエリーを行ないます。
SELECT * FROM riverflow_csv_t;
サンプルの結果を以下に示します。
datetime site_no Flow GageHeight1 Precipitation Temperature Velocity -------------------- -------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- 2018-07-05 08:15 09474000 1.39000000000000E 000 3.65000000000000E 000 0.00000000000000E 000 ? ? 2018-06-28 10:15 09497700 5.75000000000000E 000 6.80000000000000E-001 0.00000000000000E 000 ? ? 2018-07-03 16:30 09513780 0.00000000000000E 000 -1.44000000000000E 000 0.00000000000000E 000 ? ? 2018-07-11 21:45 09400815 0.00000000000000E 000 -1.00000000000000E-002 0.00000000000000E 000 ? ? 2018-07-05 08:15 09380000 1.08000000000000E 004 8.84000000000000E 000 0.00000000000000E 000 1.07000000000000E 001 ? 2018-06-28 10:15 09380000 1.31000000000000E 004 9.36000000000000E 000 0.00000000000000E 000 1.08000000000000E 001 ?