例: Parquetデータを含む外部テーブルのクエリー - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/vnq1596660420420.ditamap
dita:ditavalPath
ja-JP/vnq1596660420420.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

この例では、Parquetデータを含む外部テーブルにクエリーを行なう方法を示します。

テーブル定義

次の文では、外部テーブルmaps_ctg_alltypes_01_tableを作成し、許可DefAuthを指定します。このテーブル定義では、各Parquet論理データ型に対応するTeradataデータ型を使用して列を定義します。列の定義は、Parquetファイル内のデータ形式と位置に一致する必要があります。Parquet外部テーブルは、列によってのみパーティション化できます。

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

CREATE MULTISET FOREIGN TABLE maps_ctg_alltypes_01_table,FALLBACK
,EXTERNAL SECURITY DEFINER TRUSTED DefAuth
(
          Location VARCHAR(2048) CHARACTER SET UNICODE CASESPECIFIC,
          id_col BIGINT NOT NULL,
          simple_boolean_col BYTEINT,
          simple_int32_col INT,
          decimal_int32_col DECIMAL(9,3),
          date_int32_col DATE,
          time_millis_int32_col TIME,
          uint8_int32_col SMALLINT,
          uint16_int32_col INTEGER,
          int8_int32_col BYTEINT,
          int16_int32_col SMALLINT,
          uint32_int32_col BIGINT,
          simple_int64_col BIGINT,
          uint64_int64_col DECIMAL(20,0),
          decimal_int64_col DECIMAL(18,4),
          time_micros_int64_col TIME,
          timestamp_millis_int64_col TIMESTAMP,
          timestamp_micros_int64_col TIMESTAMP,
          timestamp_int96_col TIMESTAMP,
          simple_float_col FLOAT,
          simple_double_col DOUBLE PRECISION,
          utf8_bytearray_col VARCHAR(1024) CHARACTER SET UNICODE,
          decimal_bytearray_col DECIMAL(32,6),
          json_bytearray_col JSON(32000) INLINE LENGTH 32000 CHARACTER SET UNICODE,
          bson_bytearray_col JSON(64000) INLINE LENGTH 64000 STORAGE FORMAT BSON,
          enum_col VARCHAR(1024) CHARACTER SET UNICODE,
          decimal_fl_bytearray_col DECIMAL(38,8),
          interval_fl_bytearray_col VARCHAR(50) CHARACTER SET UNICODE,
          uuid_col BYTE(16)
)
USING(
  LOCATION  ('external_file_path')
  PATHPATTERN  ('$Var1/$Var2/$var3/$Var4')
  STOREDAS  ('PARQUET')
  MANIFEST  ('FALSE')
  )
NO PRIMARY INDEX
PARTITION BY COLUMN;

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

次の文では、行数、最大値、最小値をtime_millis_int32_col列から取得します。

SELECT COUNT(time_millis_int32_col) AS count_col
,MAX(time_millis_int32_col) AS max_col
,MIN(time_millis_int32_col) AS min_col
FROM maps_ctg_alltypes_01_table;

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

  count_col          max_col          min_col
-----------  ---------------  ---------------
        996  16:42:15.916000  16:34:24.938000