17.05 - 例: CSVデータを含む外部テーブルのクエリー - 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
日本語 (日本)

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