17.05 - 外部テーブルのペイロード列でのフィルタリング - 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
日本語 (日本)

外部テーブルのペイロード列にはデータが含まれます。クエリーがペイロード値でフィルタ処理する場合、データベースは外部テーブル内のすべてのオブジェクトを読み取り、変換し、WHERE句の条件を適用するために個々の行を調べます。

例と結果は、河川流量のサンプル データ セットを示しています。独自のデータを使用するには、テーブル名、列名、および許可オブジェクトを置き換えます。

  1. NOS関連コマンドを実行するには、必要な権限を持つユーザーとしてデータベースにログオンします。
  2. カスタムのPATHPATTERNを使用した外部テーブルを作成するか、データベース管理者に作成を依頼します。AUTHORIZATIONオブジェクトによる外部テーブル アクセスの制御で作成した許可オブジェクトを使用します。
    CREATE FOREIGN TABLE riverflow_csv_path
    , EXTERNAL SECURITY DEFINER TRUSTED DefAuth (
    Location VARCHAR(2048) CHARACTER SET UNICODE CASESPECIFIC,
    Payload DATASET INLINE LENGTH 64000 STORAGE FORMAT CSV
    )
    USING
    (
        LOCATION  ('YOUR-STORAGE-ACCOUNT')
    PATHPATTERN('$data/$siteno/$year/$month/$day') );

    サンプルの河川流量データ セットの信頼証明と場所の値については、例の変数置換を参照してください。

  3. ペイロード フィルタのみを使用してクエリーを実行します。
    SELECT TOP 2
    CAST(payload..GageHeight AS FLOAT)( FORMAT '-ZZZ9.99')
    TheGageHeight,
    CAST (payload..Flow AS FLOAT)(FORMAT '-ZZZ9999.99') TheFlow
    FROM riverflow_csv_path
    WHERE payload..site_no = '09380000';

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

    TheGageHeight      TheFlow
    -------------  -----------
            10.21     17500.00
            10.20     17400.00
  4. site_no属性もパスの一部として表示されるため、ペイロード フィルタリングの代わりにパス フィルタリングを使用することが、このクエリーの記述にはより適しています。
    SELECT TOP 2
    CAST(payload..GageHeight AS FLOAT)( FORMAT '-ZZZ9.99')
    TheGageHeight,
    CAST (payload..Flow AS FLOAT)(FORMAT '-ZZZ9999.99') TheFlow
    FROM riverflow_csv_path
    WHERE $path.$siteno = '09380000';

    パス フィルタリングの方がより効率的です。パス フィルタリングでは、読み込まれる外部オブジェクトの数が少なくなります。有効な場合はクエリー ログを表示できます。ここから、2番目のクエリーではアクセスされる外部オブジェクトの数が少なく、転送されるデータが少ないことを確認できます。

    NOS関連のDBQLフィールドの詳細については、オレンジ ブック、<Native Object Store: Teradata Vantage™ Advanced SQL Engine, TDN0009800>、および<Teradata Vantage™ - データ ディクショナリ、B035-1092>を参照してください。

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

    TheGageHeight      TheFlow
    -------------  -----------
            10.16     17200.00
            10.22     17500.00