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
日本語 (日本)
通常、パス フィルタでは外部ストレージからアクセスするデータが少なくなるため、クエリーの効率が向上します。

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

  1. NOS関連コマンドを実行するには、必要な権限を持つユーザーとしてデータベースにログオンします。
  2. カスタムのPATHPATTERNを使用して外部テーブルを作成します。AUTHORIZATIONオブジェクトによる外部テーブル アクセスの制御で作成された許可オブジェクトを使用します。
    CREATE FOREIGN TABLE riverflow_json_path
    , EXTERNAL SECURITY DEFINER TRUSTED DefAuth
    (
      Location VARCHAR(2048) CHARACTER SET UNICODE CASESPECIFIC,
      Payload JSON INLINE LENGTH 32000 CHARACTER SET UNICODE
    )
    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 '-ZZZZ9.99') TheFlow
      FROM riverflow_json_path
      WHERE payload.site_no = '09394500';

    結果:

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

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

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

    結果:

    TheGageHeight    TheFlow
    -------------  ---------
             6.40      62.90
             5.04       3.53

    TOPは、実行するたびに同じ結果を返さないことに注意してください。