Data Moverは、Teradata DatabaseとHadoopの間でビューによって返されるテーブルとデータのコピーをサポートします。ビュー データをHadoopテーブルにコピーすることはできますが、ビュー定義をHadoopにコピーすることはできません。
Hadoopのコンポーネント
サービス | 説明 |
---|---|
Hive | SQLのような言語を使用してデータにアクセスするサービス。Apache Hiveはデータ概要、アドホック クエリーを提供します。Data MoverはHiveserver2を使用してクエリーを実行することにより、TeradataからHiveへ、およびHiveからTeradataへのテーブルの移動をサポートします。 hive.server2.transport.modeプロパティのbinary値のみがサポートされています。
|
HttpFSとWebHDFS | すべてのHDFSファイル システム操作をサポートするためのHTTPゲートウェイを提供するRESTサービス。 |
WebHCAT | HCatalogで有効にする必要があるREST APIデータ統合サービス。HiveテーブルDDLを収集するために使用されます。 |
Oozie | Hadoopジョブを管理、実行、および監視するワークフロー スケジューラ システム。このサービスは、TDCHジョブを実行する場合に使用されます。 |
ユーティリティ
ユーティリティ | 説明 |
---|---|
TDCH | 製品のTeradataシステムとHadoopエコシステムの間の高パフォーマンスの並列双方向データ移動をサポートする一連のAPIとツールを提供するコマンドライン コネクタ。詳細については、Teradata Developer ExchangeのHadoopのTeradataコネクタを参照してください。 |
QueryGrid | QueryGridは、TeradataとHadoop間のデータのインポートとエクスポートを可能にするTeradataソフトウェアです。Data Moverでは、QueryGrid T2Hを、使用可能と見なされる外部サーバーとして指定する必要があります。 Data Moverでは、T2HはQueryGrid 2.xのTeradata Hadoopコネクタをサポートします。
|
ビュー データをHadoopテーブルにコピーする場合、Data MoverはQueryGridを使用します。TDCHはビュー データのコピーをサポートしていません。
JSONのサポート
- T2Hが、HadoopからTeradataへデータをコピーするために使用されている。
- 外部サーバーがジョブ定義で指定されている。
Data Moverは、Teradata Databaseバージョン15.10以降の間で移動するときに、JSON列を持つテーブルの移動に対してBSONまたはUBJSONストレージ形式をサポートします。Teradata Database 15.0からTeradata Database 15.10以降に移動する場合、JSON列に対してデフォルトのテキスト ストレージ形式が使用されます。
- TDCHを使用してJSONの列型にデータをコピーすることはできない。
- Data Moverは、Teradata DatabaseからHadoopへのJSONの列型のコピーをサポートしません。
セキュリティ
- Data Moverジョブで指定されたHiveユーザーにHDFSのHiveテーブルの基礎となるファイルとフォルダに対する読み取り/書き込み/実行の権限がある必要があります。
- Oozieは、TDCHジョブを実行するHiveユーザーを偽装できる必要があります。
HadoopのTeradataコネクタには、Teradata Databaseと、Kerberosで保護されたサポート対象のHadoopシステムとの間でデータを移動する機能もあります。詳細については、Teradataカスタマー サービスにお問い合わせください。
オブジェクトのサポート制限事項
- Data MoverはTeradataとHadoopの間で、ビューによって返されるテーブルおよびデータのみをコピーできます。TeradataとHadoopの間で、ビュー、インデックスなどのその他のオブジェクトまたはデータベース全体をコピーすることはできません。
- ユーザーがテーブルに対し名前またはタイプなどの列情報を指定し、ターゲット テーブルがすでに存在する場合、列情報はソース テーブルとターゲット テーブルのDDLの比較に使用されます。ターゲト テーブルが存在しない場合、Data Moverではターゲット テーブルの作成に列情報が使用されます。列情報を指定しない場合、ソース テーブル メタデータが列名またはタイプに使用されます。Data MoverではHadoopサポートのためのターゲット テーブルは削除されません。詳細については、データベース間で移動時にサポートされるオブジェクトを参照してください。
- サポートまたは制限されているデータ型に関する情報については、データ型のマッピングを参照してください。
スロットリング
Data Moverを使用すると、同時に実行するHadoopコネクタとT2Hタスクの数を制限することができます。HadoopコネクタまたはT2Hを使って移動されたすべてのテーブルはそれぞれ、1つのタスクとしてカプセル化されます。
save_configurationコマンドを使ってhadoop.connector.max.task.slotプロパティの値を設定することによって、同時に実行するHadoopコネクタ タスクの数を制限できます。また、save_configurationコマンドを使ってsqlh.max.task.slotプロパティの値を設定することで、同時に実行するT2Hタスクの数を制限することもできます。
hadoop.connector.max.task.slotとsqlh.max.task.slotのデフォルト値は2です。
既知の問題
- WebHCATからメタデータを取得できず、 error 143がdmDaemon.logに表示される場合、webhcatパラメータtempleton.exec.timeoutに対しタイムアウト値を増やすことができます。
- 同時に起動されるOozieジョブの数がHadoopクラスタ内のMapper数より大きい場合は、Oozieジョブのデッドロックが発生します。回避策は、各Oozieジョブ間に待ち時間を追加して、Oozieジョブが同時に起動しないようにすることです。agent.propertiesに記述されているプロパティhadoop.task.throttleは、2つのジョブ間に待ち時間を追加します(秒単位)。Oozieに関するデッドロックの問題が発生している場合は、このプロパティを使用します。
- 同時に実行されるT2Hクエリーを適切に処理できるようにTeradata DatabaseのT2Hを調整します。同時に実行されるT2Hクエリーの数がTeradata Databaseで構成されている数より大きい場合、T2Hは不安定になり、PermGenの例外やT2Hクエリーの中止などのエラーが発生することがあり、その場合はUDFサーバー プロセスの再起動が必要になります。Data Moverが同時に実行するT2Hクエリーの最大数は、Data Moverの構成のsqlh.max.task.slotプロパティを使用してスロットルできます。