17.05 - CREATE TABLE AS...WITH DATAを使用したデータベースへの外部データのロード - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - Native Object Store 入門ガイド

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
2021年1月
Content Type
プログラミング リファレンス
Publication ID
B035-1214-175K-JPN
Language
日本語 (日本)

同じ外部データに頻繁にアクセスする場合は、データベース内のデータをコピーします。これを行なうには、CREATE TABLE AS ...WITH DATAコマンドを使用して、既存の外部テーブルからデータベース内の新しいターゲット テーブルにテーブル定義とデータをコピーします。CREATE TABLE AS ...WITH DATAによって、LocationとPayloadの2つの列を持つテーブルが作成されます。

Teradataでは、ペイロード属性を個別の列として分割することをお勧めします。これにより、DOT表記を使用せずに列を参照でき、フィールドを適切なデータ型にキャストできます。

例では、サンプルの河川流量データ セットを使用します。独自のデータを使用するには、テーブル名、列名、および許可オブジェクトを置き換えます。サンプル データ セットの信頼証明および格納場所の値については、例の変数置換を参照してください。

  1. NOS関連コマンドを実行するには、必要な権限を持つユーザーとしてデータベースにログオンします。
  2. 存在しない場合は、riverflow_jsonという名前の外部テーブルを作成するか、データベース管理者に作成を依頼します。JSONの例を実行するための設定を参照してください。
  3. データベースにテーブルを作成して、分析する外部データの部分集合をロードします。
    CREATE MULTISET TABLE riverflowprecip_json AS (
     SELECT CAST(Payload.site_no AS CHAR(8)) SiteNo,
      CAST(Payload.Flow AS FLOAT) ( FORMAT '-ZZZZ9.99') Flow,
      CAST(Payload.GageHeight AS FLOAT) ( FORMAT '-ZZZ9.99') GageHeight,
      CAST(Payload.datetime AS TIMESTAMP(0) FORMAT 'YYYY-MM-DDBHH:MI') Date_Time
     FROM riverflow_json
     WHERE Payload.Precipitation > 0
    ) WITH DATA
    NO PRIMARY INDEX;
  4. テーブル内の行数を表示します。
    SELECT COUNT(*) FROM riverflowprecip_json;

    結果:

    Count(*)
    -----------
            396