2.16 - SELECT構文とTeradataコネクタ - Teradata QueryGrid

Teradata® QueryGrid™ インストールとユーザー ガイド

Product
Teradata QueryGrid
Release Number
2.16
Release Date
2021年6月
Content Type
インストール
ユーザー ガイド
構成
管理
Publication ID
B035-5991-061K-JPN
Language
日本語 (日本)

クエリーのSELECT文に、database_name.table_name@server_nameの形式で外部サーバー文法を使用できます。データベースを指定しない場合、TeradataからTeradataへの現在のデータベースがそのデフォルトになり、それがデフォルトとして、またはコネクタまたはTeradataからPrestoのリンク プロパティで提供されるオーバーライドされたデータベースとして使用されます。この外部サーバー文法は、結合や、通常のテーブル(ビュー、マクロ、ストアド プロシージャを含む)を参照するその他の任意の場所で使用できます。

AND、OR、NOT、>、<などの論理式がサポートされます。最大2048列を返すなど、標準のTeradataの制限が適用されます。行のサイズの制限は、使用しているTeradataシステムのバージョンによって異なります。

サポートされているデータ型の一覧については、Teradata QueryGridコネクタのデータ型マッピングを参照してください。

クエリー処理は、ターゲット システムの機能とローカル システムの最適化に応じてターゲット システムにプッシュダウンされます。例えば、TeradataシステムからターゲットPrestoシステムにクエリーする場合、Teradata最適化ルーチンがプッシュダウンの述語を決定し、ターゲット システムで何がサポートされているかに基づいて最終的なターゲット クエリーのプッシュダウンを評価します。

例: TeradataからPrestoへのSELECT

以下の例では、外部サーバー オブジェクト(presto1)とターゲットPrestoテーブル(cardata)を使用して、Teradataからのリクエストを開始し、ターゲットPrestoシステムのテーブルからデータを選択します。

SELECT CAST(Price AS DECIMAL (8,2))
       , mileage
       , CAST(make AS VARCHAR(20))
       , CAST(model AS VARCHAR(20))
FROM cardata@presto1 WHERE make=’Buick’;

結果:

       price     mileage  make    model
       --------  -------  ------  --------------------
       17314.10  8221     Buick   Century
       17542.04  9135     Buick   Enclave

例: 外部テーブルによるTeradataからPrestoへのSELECT

この例では、外部テーブルのプッシュ ダウン クエリーを使用してTeradataでリクエストを開始し、ターゲットPrestoシステムからデータを取得します。これはパス スルー クエリーであり、Teradata側は解析されません。しかし、例えばテーブル名をカタログ名で修飾するには、ターゲット サーバーでの再生成が必要になる場合があります。

SELECT * FROM FOREIGN TABLE (SELECT make, model FROM default.cardata 
                   where make = 'Buick')@QG_presto1 AS dt;

結果:

make    model
------  --------------------
Buick   Century
Buick   Enclave
外部テーブルから選択するリクエストは、Teradataによってのみ開始できます。

例: EXPORT句を使用した外部テーブルによるTeradataからPrestoへのSELECT

この例は、単一の演算子でエクスポート操作と後続の結合およびインポート操作を組み合わせた追加のエクスポート句を伴う外部テーブル クエリーを示します。この例では、まずターゲット データベースで一時テーブル(temp)を作成し、ローカルのut2.datatypes2テーブルから一時テーブルにデータをエクスポートした後、一時テーブルとターゲットのdatatypes1.bigint1テーブルを結合するために外部テーブルでクエリーを実行して、結果セットをTeradataに戻します。

SELECT * FROM FOREIGN TABLE
  (SELECT datatypes1.bigint1, temp.double1 FROM datatypes1, temp 
   WHERE datatypes1.bigint1 > 1)@test EXPORT((select * from ut2.datatypes2) as temp) 
AS ft;
EXPORT句を使用したSELECT FROM FOREIGN TABLEリクエストは、Teradataによってのみ開始できます。

例: EXPORT句を使用したTeradataからPrestoへのSELECT FROM FOREIGN TABLE (複数の入力ストリーム)

複数のテーブルをターゲット システムにエクスポートできます。最大16個の入力ストリームがサポートされています。制限を超えると、エラーが表示されます。

SELECT * FROM 
FOREIGN TABLE(SELECT types_numeric.bigint1,temp1.integer1 , temp2.byteint2
FROM types_numeric, temp1,temp2
WHERE types_numeric.bigint1 > 1
AND temp2.bigint2 = types_numeric.bigint1)@td1
EXPORT(
(SELECT 127 as byteint1, 32767 as smallint1, 2147483647 as integer1, 9223372036854775807 as bigint1) as temp1, 
localdb.table1 as temp2) 
AS ft;
EXPORT句を使用したSELECT FROM FOREIGN TABLEリクエストは、Teradataによってのみ開始できます。

例: RETURNS句を使用したSELECT

SELECTは、期待される出力を定義するためにRETURNS句の使用をサポートします。RETURNS句は、列リストまたはテーブル定義をサポートし、通常は特定の型、文字セットの長さ、および文字列形式を持つ列を返すために使用されます。RETURNS句で使用される配列は、Teradata配列型に基づいて列を返します。無制限または制限のある文字列型を取得する場合、RETURNS句はこれらの型を特定の長さまたは文字セットを持つCHAR、VARCHAR、またはCLOBにマップするのに役立ちます。BYTEとVARBYTEは、特定の長さにマップすることもできます。

HiveまたはPrestoターゲット コネクタから配列型を取り込む場合、任意のJSONベースのHadoop配列形式は暗黙的にTeradata VARCHAR配列形式に変換されます。
CREATE TYPE SUSUDTLIB.STRARRAY AS VARCHAR(2) CHARACTER SET UNICODE ARRACY [3];
SELECT * FROM datatypes1@fs1 RETURNS (varchar1 STRARRAY)
SELECT * FROM datatypes1@fs1 RETURNS (varchar1 VARCHAR(5) CHARACTER SET LATIN) WHERE bigint1 >10000 AND double1 < 10000;

例: 外部関数のSELECT

外部関数を実行すると、ターゲット システムで定義された関数が、開始システムの表を入力として使用できます。外部機能機能を実行すると、テーブルが開始システムからターゲット システムにエクスポートされます。ターゲット システム上のリモート関数は、ターゲット システムによって開始されます。また結果が開始システムにインポートされます。

SELECT clicktime, custname(char(10)), productname, pagetype, productprice, sessionid
FROM SESSIONIZE@remoteTD
(
ON sess_data 
PARTITION BY partition_id
ORDER BY clicktime
USING
TIMECOLUMN('clicktime')
TIMEOUT(60)
RAPIDFIRE(0.2)
) AS S, cust_data where S.userid = custid  ORDER BY S.partition_id, S.clicktime;
 
 *** Query completed. 19 rows found. 6 columns returned.
 *** Total elapsed time was 3 seconds.
 
                 CLICKTIME  custname  PRODUCTNAME  PAGETYPE  PRODUCTPRICE SESSIONID
--------------------------  -------- ------------  --------- ------------ ---------
2013-12-03 22:03:02.540000  Sri      ?             Home                 ?         0
2013-12-03 22:03:32.190000  Sri      mytablet      checkout      45000.00         0
2013-12-03 22:03:46.210000  Sri      myphone 3     checkout      46000.00         0
2013-12-03 22:04:13.820000  Sri      B LED TV      checkout      86000.00         0
2013-12-03 22:04:25.520000  Sri      Z LED TV      checkout      91000.00         0
2013-12-18 22:08:07.800000  Walkar   ?             Home                 ?         1
2013-12-18 22:08:38.890000  Walkar   A Laptop      checkout      58500.00         1
2013-12-19 22:09:26.930000  Walkar   ?             Home                 ?         2
2013-12-19 22:10:09.180000  Walkar   XYZ Laptop    checkout      56500.00         2
2013-12-19 22:10:41.860000  Walkar   Solar A4      checkout      36500.00         2
2013-12-19 22:11:00.040000  Walkar   ABC Tru       checkout      41500.00         2
2013-12-24 22:15:13.600000  Pam      ?             Home                 ?         3
2013-12-24 22:15:42.170000  Pam      home theater  checkout        800.00         3
2013-12-24 22:16:03.520000  Pam      TV 52inch     checkout        700.00         3
2013-12-25 22:12:20.890000  Julia    ?             Home                 ?         4
2013-12-25 22:12:52.820000  Julia    ABC Tru       checkout      41000.00         4
2013-12-25 22:13:11.720000  Julia    myphone 3     checkout      47000.00         4
2013-12-26 22:13:54.150000  Doug     ?             Home                 ?         5
2013-12-26 22:14:13.000000  Doug     myphone 3     checkout        250.00         5