17.05 - 例: 外部テーブルの外部データを永久テーブルにインポートする - 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-1144-175K-JPN
Language
日本語 (日本)

以下の文は、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                       ?