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
日本語 (日本)
この例では、Advanced SQL Engineテーブルから外部オブジェクト ストアにデータを書き込む方法を示します。

    前提条件

  1. まだ実行されていない場合は、許可オブジェクトと関数マッピングを設定します。WRITE_NOSの例に対する許可の設定を参照してください。
  2. まだ実行されていない場合は、データを抽出するデータベース テーブルを設定します。既存のテーブルのいずれかを使用するか、テスト テーブルを設定して例で使用できます。テスト テーブルの設定を参照してください。
  3. データを書き込む外部ストレージへのアクセスを設定または取得します。外部ストレージ ベンダーの指示に従います。
  4. 外部オブジェクト ストアへのデータの書き込み

  5. データベース テーブルから外部オブジェクト ストアにデータの一部を書き込みます。例として、テスト テーブルからRiverFlowPermという名前のJSONデータを読み取り、それを外部ストレージに書き込みます。
    SELECT * FROM WRITE_NOS (
    ON ( SELECT * FROM RiverFlowPerm WHERE DateTime = '2018-06-27 00:00')
    USING
    LOCATION('YOUR-OBJECT-STORE-URI/20180627/')
    AUTHORIZATION(MyAuthObj_Write)
    STOREDAS('PARQUET')
    ) AS d;

    LOCATIONを、データを書き込む外部オブジェクト ストアのURIに置き換えます。

    WRITE_NOSは、データをParquetの形式で格納します。

    結果は次のようになります。

    NodeId AmpId Sequence ObjectName
    ------ ----- -------- -------- --------------------------------------------------------------
        33     0        1 /S3/s3.amazonaws.com/ie-writenos-bucket/20180701/object_33_0_1.parquet
        33     1        1 /S3/s3.amazonaws.com/ie-writenos-bucket/20180701/object_33_1_1.parquet
        33     2        1 /S3/s3.amazonaws.com/ie-writenos-bucket/20180701/object_33_2_1.parquet
  6. 外部オブジェクト ストレージのオフロード データの検証

  7. 書き込んだ外部オブジェクト ストアにアクセスするための外部テーブルを作成します。
    CREATE FOREIGN TABLE ft20180627
    ,EXTERNAL SECURITY MyAuthObj_Write
    USING ( LOCATION('YOUR-OBJECT-STORE-URI/20180627/') );

    LOCATIONを、データを書き込んだ外部オブジェクト ストアのURIに置き換えます。

  8. 外部データの行数をカウントします。
    SELECT COUNT(*) FROM ft20180701;
    結果:
    Count(*)
    --------
    12
  9. 外部データから1行をサンプリングします。
    SELECT * FROM ft20180701 SAMPLE 1;

    結果は次のようになります。

        Location /S3/s3.amazonaws.com/iewritenostest/20180627/object_33_3_1.parquet
           SiteNo     9394500
         DateTime 2018-06-27 00:00
             Flow   .01
      GageHeight1  4.75
    Precipitation   .00
      GageHeight2  4.83

    読みやすいように、出力は縦に表示されます。

  10. データベース テーブルのデータの一部を外部に格納されているデータと比較します。まず、WHERE句で指定した条件に一致するデータベース テーブルの行数をカウントします。
    SELECT COUNT(*) FROM RiverFlowPerm WHERE GageHeight1 > 7.0 AND DateTime = (TIMESTAMP '2018-07-01 00:00:00');
    結果:
    Count(*)
    --------
    2

    次に、同じ基準に一致する外部オブジェクト ストアの行数をカウントします。

    SELECT COUNT(*) FROM RiverFlowPerm s, ft20180627 ft
    WHERE s.SiteNo = ft.SiteNo
    AND s.GageHeight1 > 7.0
    AND s.DateTime = '2018-06-27 00:00';
    結果:
    Count(*)
    --------
    2

    両方のクエリーの結果が一致するはずです。

  11. 外部オブジェクト ストアからオフロードされたデータのParquetスキーマを読み取ります。
    SELECT * FROM (
    LOCATION='/S3/s3.amazonaws.com/iewritenostest/20180627/'
    AUTHORIZATION=MyAuthObj_Write
    FULLSCAN='TRUE'
    RETURNTYPE='NOSREAD_PARQUET_SCHEMA'
    ) as d;

    LOCATIONを、データを書き込んだ外部オブジェクト ストアのURIに置き換えます。

    結果は次のようになります。

     ColPosition      1
            Name SiteNo
    TdatDataType INTEGER
    PhysicalType INT32
     LogicalType NONE
       Precision           0
           Scale           0
       MinLength           0
       MaxLength           0
       NullFound    1
        FileType parquet
        Location /S3/s3.amazonaws.com/iewritenostest/20180627/object_33_0_1.parquet
     ColPosition      1
            Name SiteNo
    TdatDataType INTEGER
    PhysicalType INT32
     LogicalType NONE
       Precision           0
           Scale           0
       MinLength           0
       MaxLength           0
       NullFound    1
        FileType parquet
        Location /S3/s3.amazonaws.com/iewritenostest/20180627/object_33_1_1.parquet
    [...]
    ColPosition      2
            Name DateTime
    TdatDataType VARCHAR
    PhysicalType BYTE_ARRAY
     LogicalType UTF8
       Precision           0
           Scale           0
       MinLength          16
       MaxLength          16
       NullFound    1
        FileType parquet
        Location /S3/s3.amazonaws.com/iewritenostest/20180627/object_33_0_1.parquet
    [...]

    読みやすいように、出力は縦に表示されます。