17.10 - テスト テーブルの設定 - Advanced SQL Engine - Teradata Database

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

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

WRITE_NOSを使用して、既存のデータベース テーブルからデータをオフロードできます。

または、次の例に示すように、WRITE_NOSを使用して探索するためのテスト テーブルを作成できます。次の例では、Teradataが提供するパブリック外部オブジェクト ストアからテスト テーブルにデータを読み込む方法も示します。

  1. 読み取り元の外部ストレージにアクセスするため、READ_NOSの許可オブジェクトを作成します(まだ実行されていない場合)。例えば、IDやキーを必要としないパブリック オブジェクト ストアに対して許可オブジェクトを作成すると、USERとPASSWORDは空の文字列になります。
    CREATE AUTHORIZATION MyAuthObj
    USER ''
    PASSWORD '';
  2. 外部テーブルを作成するか、外部テーブルの作成をデータベース管理者に依頼します。外部テーブルは、外部ストレージ内のデータにアクセスするために使用されます。
    CREATE FOREIGN TABLE RiverFlow
    ,EXTERNAL SECURITY MyAuthObj
    USING ( LOCATION('/s3/td-usgs-public.s3.amazonaws.com/JSONDATA/') );

    LOCATIONには、USGSの河川流量データを格納している外部オブジェクト ストアのURIが含まれています。例に示す場所は、TeradataのパブリックS3バケットです。

  3. テーブル内の行をカウントして、データにアクセスできることを検証します。
    SELECT COUNT(*) FROM RiverFlow;

    結果:

      Count(*)
    -----------
          36301
  4. JSON_KEYS関数を実行して、外部テーブルがアクセスするJSONオブジェクトのペイロードに含まれるすべての属性の名前を表示します。
    SELECT DISTINCT * FROM JSON_KEYS (ON (SELECT Payload FROM RiverFlow)) AS j;

    結果:

    JSONKeys
    ----------------------
    "Velocity"
    "datetime"
    "Precipitation"
    "Flow"
    "BatteryVoltage"
    "WaterVelocity"
    "Conductance"
    "Temp"
    "GageHeight2"
    "GageHeight"
    "site_no"
  5. データベースに永久テーブルを作成し、READ_NOSを使用して外部データをロードします。
    CREATE TABLE RiverFlowPerm AS (
    SELECT
    CAST(payload.site_no AS INTEGER) SiteNo,
    CAST(payload.datetime AS VARCHAR(20)) DateTime,
    CAST(payload.Flow AS DECIMAL(3,2)) Flow,
    CAST(payload.GageHeight AS DECIMAL(3,2)) GageHeight1,
    CAST(payload.Precipitation AS DECIMAL(3,2)) Precipitation,
    CAST(payload.GageHeight2 AS DECIMAL(3,2)) GageHeight2
    FROM ( LOCATION='/s3/td-usgs-public.s3.amazonaws.com/JSONDATA/' AUTHORIZATION=MyAuthObj ) AS d
    ) WITH DATA;

    LOCATIONには、USGSの河川流量データが格納された外部オブジェクト ストアのURIが含まれています。このクエリーは、外部オブジェクト ストアからデータを読み込むためにREAD_NOSを使用して永久テーブルを作成します。

  6. テーブルがロードされていることを検証します。
    SELECT COUNT(*) FROM RiverFlowPerm;

    結果: このカウントは、以前のカウントと一致します。

       Count(*)
    -----------
          36301
  7. (オプション)他のクエリーを実行してデータを調べます。
    SELECT SiteNo, COUNT(*) FROM RiverFlowPerm GROUP BY 1 ORDER BY 1;
    

    結果:

    SiteNo       Count(*)
    --------  -----------
    09380000         2945
    09394500         2947
    09396100         3086
    09400568         2943
    09400815         3679
    [...]
    SELECT Conductance, COUNT(*) FROM RiverFlowPerm GROUP BY 1 ORDER BY 1;
    

    結果:

               Conductance     Count(*)
    ----------------------  -----------
                         ?        33356
     6.50000000000000E 002            1
     6.51000000000000E 002            1
     6.52000000000000E 002            5
     6.53000000000000E 002            6
     6.54000000000000E 002           18
    [...]
    SELECT TOP 5 DateTime, COUNT(*) FROM RiverFlowPerm GROUP BY 1 ORDER BY 1;
    

    結果:

               DateTime     Count(*)
    -------------------  -----------
    2018-06-27 00:00:00           12
    2018-06-27 00:07:00            1
    2018-06-27 00:15:00           12
    2018-06-27 00:30:00           12
    2018-06-27 00:45:00           12
次のタスクWRITE_NOSの例では、RiverFlowPermというテスト テーブルを使用できます。例: WRITE_NOSとAUTHORIZATIONの使用外部オブジェクト ストアへのすべてのVantageデータの書き込み、および外部オブジェクト ストアへのVantageデータの一部の書き込みを参照してください。