この例では、CSVデータを含む外部テーブルへのクエリーを実行し、外部テーブルのビューを定義する方法を示します。
外部テーブルの定義
以下の文では、DATASETデータ型とCSVのストレージ形式を持つペイロード列を含む外部テーブルを定義します。LOCATIONパラメータは、Amazon S3に保存されるCSVファイルを指定します。
DefAuth許可オブジェクトをまだ作成していない場合は作成します。例: 許可オブジェクトの作成を参照してください。
CREATE FOREIGN TABLE riverflow_csv, EXTERNAL SECURITY DEFINER TRUSTED DefAuth ( LOCATION VARCHAR(2048) CHARACTER SET UNICODE CASESPECIFIC, PAYLOAD DATASET INLINE LENGTH 64000 STORAGE FORMAT CSV ) USING ( LOCATION ('/s3/td-usgs.s3.amazonaws.com/CSVDATA/') );
サンプルの外部テーブル クエリーと結果
このクエリーは、外部テーブルの特定の列を表示します。
SELECT payload..BatteryVoltage , payload..Conductance , payload..Flow , payload..GageHeight , payload..site_no , payload..datetime FROM riverflow_csv WHERE payload..BatteryVoltage > 12;
結果表示は、次のとおりです。
PAYLOAD..Flow 16400 PAYLOAD..Precipitation 0.00 PAYLOAD..Conductance 668 PAYLOAD..datetime 2018-06-27 14:15 PAYLOAD..site_no 09380000 PAYLOAD..Temp 11.8 PAYLOAD..GageHeight 10.01 PAYLOAD..Flow 16400 PAYLOAD..Precipitation 0.00 PAYLOAD..Conductance 670 PAYLOAD..datetime 2018-06-27 14:30 PAYLOAD..site_no 09380000 PAYLOAD..Temp 11.8 PAYLOAD..GageHeight 10.01 PAYLOAD..Flow 16600 PAYLOAD..Precipitation 0.00 PAYLOAD..Conductance 665 PAYLOAD..datetime 2018-06-27 14:45 PAYLOAD..site_no 09380000 PAYLOAD..Temp 11.9 PAYLOAD..GageHeight 10.04 PAYLOAD..Flow 16600 PAYLOAD..Precipitation 0.00 PAYLOAD..Conductance 669 PAYLOAD..datetime 2018-06-27 15:00 PAYLOAD..site_no 09380000 PAYLOAD..Temp 11.9 PAYLOAD..GageHeight 10.05
読みやすいように、出力は縦に表示されます。
ビューの定義
以下の文では、特定の列名をキャストする外部テーブルのビューを定義します。ビューを使用すると、外部テーブルを直接使用する場合よりも以下のような利点があります。
- 列の名前を変更できる。
- 列を適切なデータ型としてキャストできる。
- ビュー列名の参照には、大文字と小文字の区別がない。
CREATE VIEW riverflow_csv_v AS ( SELECT CAST(payload..Conductance AS FLOAT) AS Conductance , CAST(payload..Flow AS FLOAT) AS Flow , CAST(payload..GageHeight AS FLOAT) AS GageHeight , CAST(payload..site_no AS VARCHAR(20)) AS site_no , CAST(payload..datetime AS VARCHAR(10)) AS datetime FROM riverflow_csv WHERE Conductance > 12);
サンプルのクエリーと結果
SELECT * FROM riverflow_csv_v;
結果:
Conductance Flow GageHeight site_no datetime ---------------------- ---------------------- ---------------------- -------------------- ---------- 6.71000000000000E 002 1.77000000000000E 004 1.02500000000000E 001 09380000 2018-07-11 6.70000000000000E 002 1.75000000000000E 004 1.02100000000000E 001 09380000 2018-07-18 6.82000000000000E 002 1.72000000000000E 004 1.01600000000000E 001 09380000 2018-07-19 6.70000000000000E 002 1.77000000000000E 004 1.02500000000000E 001 09380000 2018-07-24 6.71000000000000E 002 1.74000000000000E 004 1.01900000000000E 001 09380000 2018-07-11 6.71000000000000E 002 1.71000000000000E 004 1.01500000000000E 001 09380000 2018-07-18 6.77000000000000E 002 1.69000000000000E 004 1.01100000000000E 001 09380000 2018-07-19 6.71000000000000E 002 1.73000000000000E 004 1.01800000000000E 001 09380000 2018-07-24 6.69000000000000E 002 1.71000000000000E 004 1.01500000000000E 001 09380000 2018-07-11 6.69000000000000E 002 1.68000000000000E 004 1.00900000000000E 001 09380000 2018-07-18