Hadoopのサポート - Teradata Data Mover

Teradata® Data Mover ユーザー ガイド

Product
Teradata Data Mover
Release Number
17.00
Published
2021年11月
ft:locale
ja-JP
ft:lastEdition
2021-12-03
dita:mapPath
ja-JP/gmn1574692806523.ditamap
dita:ditavalPath
ja-JP/mpm1591127278842.ditaval
dita:id
B035-4101
Product Category
Analytical Ecosystem

Data Moverは、Teradata DatabaseとHadoopの間でビューによって返されるテーブルとデータのコピーをサポートします。ビュー データをHadoopテーブルにコピーすることはできますが、ビュー定義をHadoopにコピーすることはできません。

Hadoopのコンポーネント

Data Moverには、次の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ジョブを実行する場合に使用されます。

ユーティリティ

Data MoverはTDCHまたはQueryGridのいずれかを使用して、TeradataとHadoop間でデータを移動できます。
ユーティリティ 説明
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コネクタをサポートします。
TDCHとQueryGridを両方とも使用できる場合、Data MoverはQueryGridを使用します。外部サーバーが指定されていない場合、Data Mover は TDCH を使用します。

ビュー データをHadoopテーブルにコピーする場合、Data MoverはQueryGridを使用します。TDCHはビュー データのコピーをサポートしていません。

JSONのサポート

Teradataのターゲット テーブルにJSON列型が存在する場合は、次の条件が満たされている場合にのみ、HadoopからTeradata Databaseにデータをコピーできます。
  • 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の列型のコピーをサポートしません。

セキュリティ

次の設定を使用して、TeradataとHadoop間でテーブルをコピーできます。
  • 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.slotsqlh.max.task.slotのデフォルト値は2です。

既知の問題

  • WebHCATからメタデータを取得できず、 error 143dmDaemon.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プロパティを使用してスロットルできます。