Teradata Database 15.0で導入された外部サーバー オブジェクトを使用すると、HadoopまたはOracleなどの他社製システムのデータをクエリーするための定義を作成することができます。Data Moverでは、それらの外部サーバー オブジェクトの定義をTeradataシステム間でコピーできます。
すべての外部サーバー オブジェクトは、TD_SERVER_DBデータベースに保持されます。このデータベースは、Teradata Database 15.0以降に存在します。
Hadoopシステムの外部サーバー オブジェクトDDLを以下に示します。適切な権限を持つデータベース ユーザーは、システム情報がわかっている他社製システムの外部サーバー オブジェクトを作成できます。外部サーバー オブジェクトを作成、更新、削除、または使用する方法については、Teradata Databaseのマニュアルを参照してください。
要件および制限
- 外部サーバー オブジェクトを作成およびコピーするには、Teradata Databaseシステムに各外部サーバー パッケージがインストールされて正しく構成されている必要があります。サポートが必要な場合は、https://support.teradata.comでGlobal Technical Support Centerにお問い合わせください。
- Data Moverジョブ ユーザーには、外部サーバー オブジェクトに対する権限を付与する必要があります。権限がない場合、ジョブは失敗します。
- Data Moverは、SHOW FOREIGN foreign_server_name SQL文を実行して外部オブジェクトDDLを取得します。
- Teradata Databaseシステム ユーザーには、外部サーバー オブジェクトに対する権限を付与する必要があります。権限がない場合、ジョブは失敗します。
- ソースとターゲットの両方のシステムが、バージョン15.0以上のTeradataシステムであることが必要です。
- Data Moverは、外部サーバー オブジェクトDDLの構文解析は行いません。まったく同じDDLがターゲット システムで実行されます。
- 外部サーバ オブジェクトの定義のみをコピーします。
- 再配置はサポートされていません。外部サーバー オブジェクトはすべてデータベースTD_SERVER_DBになければなりません。
- 部分コピーはサポートされていません。
- 行数の確認はサポートされていません。
- DDLの比較はサポートされていません。
- 外部サーバー オブジェクトの定義を移動するときに、ステージング テーブルとステージング データベースは使用できません。
- 外部サーバー オブジェクトの定義は、ARC、DSA、TPT、またはJDBCを使用してコピーできます。
- コピーするオブジェクトがターゲット データベースに存在しない場合は、ターゲット データベース上に作成されます。オブジェクトがターゲット データベースに存在する場合は、overwrite_existing_objectsプロパティがfalseに設定されていないとオブジェクトは上書きされます。 その場合、作成タイムエラーが生成されます。
例
CREATE FOREIGN SERVER、オブジェクトの名前、およびサーバーの情報を指定して外部サーバー オブジェクトを作成します。
CREATE FOREIGN SERVER MyServer USING server('sdll9119.labs.teradata.com') port('9083') hosttype('hadoop') hiveport ('10000') username('hive') DO IMPORT WITH syslib.load_from_hcatalog_hdp1_3_2 USING transformformatting('true'), DO EXPORT WITH syslib.load_to_hcatalog_hdp1_3_2;
上記の例では、アクセス ポートが9083のリモートhadoopサーバーsdll7680.labs.teradata.comを定義するオブジェクトMyServerを作成しています。
- function load_from_hcatalog_hdp1_3_2を使用して、Teradata Databaseシステム上のMyServerからデータを取得することができます。
- function load_to_hcatalog_hdp1_3_2を使用して、MyServerにデータをエクスポートすることができます。
- オブジェクトMyServerはデータベースTD_SERVER_DBに作成されます。完全修飾名を使用する必要はありません。