外部データとデータベース テーブルの結合 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/gmv1596851589343.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1214
Product Category
Software
Teradata Vantage

次の例では、データベース テーブルを作成してデータを入れて、外部テーブルを作成し、2つのテーブルを結合します。

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

    前提条件

  1. NOS関連コマンドを実行するには、必要な権限を持つユーザーとしてデータベースにログオンします。
  2. rivernamesテーブルがすでに存在する場合は、前提条件セクションの残りの手順をスキップします。
  3. データベース テーブルを作成します。
    オブジェクト ストアからデータベースへの結合のデータベース側を表わすローカル データベース テーブルがない場合は、シミュレーションが必要です。通常は、環境内にすでに存在する既存のテーブルに結合することで、これらのシミュレーション手順は必要なくなります。
    ソリューションとして、次の目的のために外部オブジェクト ストアに小さなディメンション テーブルが配置されています。
    • 結合を実用できるようにする
    • この例を試すすべてのユーザーが同じバージョンのテーブル データを持っていることを確認する
    CREATE SET TABLE rivernames (
     site_no INT,
     name CHAR(90) CHARACTER SET LATIN NOT CASESPECIFIC )
    UNIQUE PRIMARY INDEX ( site_no ); 
    
  4. ディメンション テーブルへのデータの入力に使用する外部テーブルを作成するか、データベース管理者に作成を依頼します。
    CREATE FOREIGN TABLE nos_rivernames
    , EXTERNAL SECURITY authorization_object
    USING ( LOCATION('/s3/td-usgs-public.s3.amazonaws.com/RIVERS/rivers.csv') );

    LOCATIONをRIVERS/rivers.csvへのパスに置き換えます。

  5. ディメンション テーブルにデータを入力します。
    INSERT INTO rivernames
    SELECT site_no, name
    FROM nos_rivernames;
  6. ディメンション テーブルと外部データの結合

  7. 存在しない場合は、riverflow_csvという名前の外部テーブルを作成するか、データベース管理者に作成を依頼します。CSVの例を実行するための設定を参照してください。
  8. ディメンション テーブルと外部テーブルを結合します。
    SELECT DISTINCT name(CHAR(100))
    FROM riverflow_csv rf, rivernames rn
    WHERE rf.site_no = rn.site_no
    AND rf.Precipitation > 0.1
    ORDER BY 1;

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

    name
    ----------------------------------
    CIBECUE CREEK NEAR OVERGAARD
    CRIR LWR MAIN DRAIN BLW TYSON WW
    GILA RIVER AT KELVIN
    LITTLE COLORADO RIVER AT WOODRUFF
    NEW RIVER NEAR ROCK SPRINGS
    NEWMAN CANYON ABOVE UPPER LAKE MARY
    POLACCA WASH NEAR SECOND MESA