目的
createコマンドは、構文パラメータとオブジェクト リストを使用して、デーモンに対してジョブを作成します。ジョブ定義は、パラメータとオブジェクト リストから構成されます。
Data Moverは、Teradata DatabaseからHadoopへのテーブルの移動、およびHadoopからTeradata DatabaseへのHiveテーブルの移動をサポートします。
構文
パラメータ - Hadoop固有
次のパラメータはHadoopに対して固有です。これらのパラメータは、パラメータを渡すために使用されるメカニズムに応じて異なる形式を取ることがあります。パラメータの順序を参照してください。
- hadoop_options
- これらのパラメータは、TeradataからHadoopにのみ適用できます。.xmlファイルを使用してこの情報を渡す場合は、パラメータにオプションをネストします。
オプション 説明 file_options HadoopoおよびSQL-HのTeradataコネクタでサポートされる値: - Text(デフォルト)
- RC
- ORC
file_options_delimiter (オプション)列の区切り文字を指定します。指定されていない場合、カンマ(',')が区切り文字となります。このオプションが適用されるのは、file_optionsがテキストとして指定されている場合のみです。 number_mappers (オプション)TeradataコネクタがTeradata Databaseからデータを取り込む際に使用するMapperの数を指定します。 - source_hadoop_system | target_hadoop_system
- Hadoopデータのソース サイトまたはターゲット サイト、および信頼証明を定義します。これらのパラメータは、TeradataからHadoop、およびHadoopからTeradataの両方に共通しています。.xmlファイルを使用してこれらを渡す場合は、パラメータにオプションをネストします。
オプション 値 説明 webhcat_url http://webhcat:50111 データベース、テーブル、列などのメタデータを取得します。URLを構成するには、webhcatをWebHCATサーバーが存在するシステム名と置き換えます。ポート50111がWebHCATのデフォルトです。1 oozie_url http://oozie:11000 データ移動のためのHiveクエリーとHadoopのTeradataコネクタ(TDCH)ジョブを実行します。URLを構成するには、oozieをOozieサーバーが存在するシステム名と置き換えます。ポート11000がOozieのデフォルトです。1 file_system_url http://webhdfs:50070またはhttp://httpfs:14000 TDCHジョブを実行するためにHDFSに格納された構成ファイル、およびTDCHジョブによって生成されたログを取得します。WebHDFS REST URLまたはHttpFS REST URLを指定します。WebHDFSのデフォルト ポートは50070、HttpFSのデフォルト ポートは14000です。1 logon_mechanism デフォルトまたはkerberos (オプション)ソースまたはターゲットHadoopファイル システムにログインするためのセキュリティ プロトコル。 hive_user hiveまたはhive_user@hadoop_realm Hadoopファイルシステムのテーブルにアクセスできるユーザーの名前。 ログオン メカニズムがkerberosの場合、Hiveユーザーの値は次の表記規則に従う必要があります。 kerberos_principal@kerberos_realm
hive_password hive_user_password ソースまたはターゲットHadoopファイル システムのテーブルにアクセスできるユーザーのパスワード。2 hive_password_encrypted hive_user_password_encrypted ソースまたはターゲットHadoopファイル システムのテーブルにアクセスできるユーザーの暗号化されたパスワード。hive_passwordが指定されている場合は、このパラメータは無効です。2 1値はhttp://で始まり、その後にシステム名、またはIPアドレス、ポート番号が続く必要があります。ログオン メカニズムがkerberosの場合、ホスト名は完全修飾ドメイン名である必要があります。 2ログオン メカニズムがdefaultの場合、このパラメータはオプションです。ログオン メカニズムがkerberosの場合、このパラメータは必須であり、hive_userのパスワードを指定する必要があります。
パラメータ - 共通
これらのパラメータは、TeradataからHadoop、HadoopからTeradataの両方に共通しています。パラメータの順序を参照してください。
- broker.port
- (オプション)実行時に別のActiveMQサーバーに接続する(その結果別のデーモンに接続する)ために、ブローカー ポートを入力して、commandline.propertiesファイルに指定されているデフォルト値を上書きすることができます。
- broker.url
- (オプション)実行時に別のActiveMQサーバーに接続する(その結果別のデーモンに接続する)ために、ブローカーURLを入力して、commandline.propertiesファイルに指定されているデフォルト値を上書きすることができます。
- compare_ddl
- (オプション) 指定のソース オブジェクトとターゲット オブジェクトのDDLを比較するかどうかを指定します。有効な値
- unspecified (デフォルト) Data Moverデーモン構成ファイルのdaemon.default.compareDDL.enabledパラメータ値が使用されます。パラメータをtrueまたはfalseに指定すると、その値は、Data Moverデーモン構成ファイルのパラメータ値を上書きします。
- true - ジョブ ステップは、ジョブが開始されるたびに再作成されず、ソースとターゲットのDDLが比較されます。
- false - ジョブ ステップは、ジョブが開始されるたびに再作成され、ソースとターゲットのDDLは比較されません。
- db_client_encryption
- (オプション)データ転送中にジョブを暗号化する必要がある場合は、trueに設定します。
- freeze_job_steps
- (オプション)ジョブ ステップを停止して、ジョブが開始されるたびに再作成されないようにします。ジョブが作成された後でソース環境とターゲット環境を変更しない場合にのみtrueに設定してください。有効な値
- true - ジョブが開始されるたびにジョブ ステップが再作成されることはありません
- false - ジョブが開始されるたびにジョブ ステップが再作成されます
- unspecified(デフォルト) - 値はfalseに設定されます
- job_name
- (オプション)このジョブの名前。最大32文字の一意の名前にする必要があります。
- job_priority
- (オプション)ジョブの実行優先順位を指定します。サポートされる値は、HIGH、MEDIUM、LOW、およびUNSPECIFIEDです。値を指定しないと、デフォルト値MEDIUMが実行時に使用されます。
- log_to_event_table
- (オプション) このジョブに使用するイベント テーブルを指定します。 詳細については、イベント テーブルの使用を参照してください。
- overwrite_existing_objects
- (オプション) ジョブは、ターゲットに既に存在するオブジェクトを上書きします。有効な値このパラメータを指定しないと、値はData Moverデーモン構成ファイルのoverwrite_existing_objectsパラメータ値に設定されます。trueまたはfalseに指定すると、値はData Moverデーモン構成ファイルのパラメータ値より優先されます。
値 説明 true 上書きを有効にします False 上書きを無効にします 未指定 デフォルト - この値はData Moverデーモン構成ファイルの値に設定されます - response_timeout
- (オプション) Data Moverデーモンからの応答を待機する時間(秒単位)。
- source_password | target_password
- (オプション)ソースまたはターゲットTeradataログオン パスワード。source_password_encrypted | target_password_encryptedが指定されている場合は、このパラメータは無効です。このパラメータでパスワードを指定しないと、コマンドはパスワードを対話的に入力するように要求します。入力内容は、パスワードの長さにかかわらず一連のアスタリスクで隠されます。
- source_password_encrypted | target_password_encrypted
- (オプション)ソースまたはターゲットTeradataの暗号化されたログオン パスワード。source_password | target_passwordも指定されている場合は、このパラメータは無効です。
- source_tdpid | target_tdpid
- ソースまたはターゲットのTeradata Database。
- source_user | target_user
- (オプション)ソースまたはターゲットTeradataログオンID。このパラメータに対しログオンIDを指定しない場合、コマンドによって対話的に入力が要求されます。
- source_userid_pool | target_userid_pool
- (オプション)ジョブによって、指定の資格情報プールからユーザーが取得されます。Teradataシステムでのみ使用できます。
オプション 説明 source_userid_pool Teradataソース システムからユーザーを取得します。 target_userid_pool Teradataターゲット システムからユーザーを取得します。 - table
-
オプション 説明 name 移動するテーブルの名前。 target_name (オプション)テーブルの名前を変更します。値が指定されていない場合は、元のテーブル名が使用されます。 target_database (オプション)別のデータベースにテーブルを移動します。値が指定されていない場合、元のデータベースがターゲットとして使用されます。
パラメータ - TeradataからHadoop
これらのパラメータは、TeradataからHadoopにしか使用されません。パラメータの順序を参照してください。
- force_utility
- (オプション) Data MoverデーモンでTeradataからHadoopへのジョブに特定のユーティリティを使用することを強制します。Data MoverデーモンではSQL-Hがテーブルの移動に使用されます。SQL-Hを使用できない場合、HadoopのTeradataコネクタがテーブルの移動に使用されます。 有効な値
- デフォルト(Data MoverはSQL-Hをテーブルの移動に使用できるかどうかを決定します。使用できない場合、HadoopのTeradataコネクタが使用されます。)
- Hadoop_Connector
- SQLH
- table_columns
(オプション)データをHadoopに移動する前にテーブル列をカスタマイズします。ターゲット テーブルが存在しない場合、ターゲット側の列の名前を変更できます。ターゲット テーブルがすでに存在する場合、列名およびタイプはターゲットに存在する列と一致する必要があります。テーブル列プロパティによりターゲット テーブルがHadoopに作成されるか、既存テーブルの値が確認されます。
オプション 説明 name 変更列の名前 target_name (オプション)列の名前を変更します。値が指定されていない場合、元の列名がターゲット名として使用されます。 target_type (オプション)デフォルトの列タイプを変更します。値が指定されていない場合、デフォルトのマッピングが使用されます。デフォルトおよび利用可能なマッピングについては、データ型のマッピングを参照してください。 type テーブル列の型。情報のみ。ユーザーは変更できません。 size (オプション)列のサイズのタイプを変更します。CHAR型にのみ適用されます。値が指定されていない場合、デフォルト値の[255]が使用されます。 - transfer_method
- (オプション) TeradataからHadoopにデータを転送するための次のオプションをサポートするHadoopのTeradataコネクタ。
オプション 説明 Default ソースTeradata Databaseが14.10以降の場合、Data MoverによるAMP選択を許可します。 Hash 基礎となるHadoopコネクタはTeradataのソース テーブルから指定されたsplit-by列の特定のハッシュ値範囲の行を取得し、これらのレコードをHDFSのターゲット ファイルに書き込みます。 Value 基礎となるHadoopコネクタはTeradataのソース テーブルから指定されたsplit-by列の特定の値範囲の行を取得し、これらのレコードをHDFSのターゲット ファイルに書き込みます。 Partition 基になるhadoopコネクタは、ソース テーブルがPPIテーブル以外の場合にソース データベースにPPIのステージング テーブルを作成します。 AMP 基礎となるHadoopコネクタはTeradataのソース テーブルから1つ以上のAMPの行を取得し、それらのレコードをHDFSのターゲット ファイルに書き込みます。AmpオプションはTeradata Databaseが14.10以降である場合にのみサポートされます。 - use_foreign_server
T2Hユーティリティの場合、HadoopからTeradataにデータを移動するために以前に作成した外部サーバーを指定できます。この外部サーバーは、特定のジョブのすべてのテーブルの移動に使用されます。
次の例は、TeradataからHadoopへのジョブのジョブ定義でuse_foreign_serverコマンドを使用する方法を示しています。<use_foreign_server> <name>foreign_server</name> </use_foreign_server>
Data MoverでT2Hを使用してTeradata 15.0からHadoopにデータを移動するには、外部サーバーを指定する必要があります。外部サーバーを指定せず、使用するユーティリティがT2Hでない場合は、T2HではなくTDCHが使用されます。
パラメータ - HadoopからTeradata
これらのパラメータは、HadoopからTeradataにしか使用されません。これらのパラメータは、パラメータを渡すために使用されるメカニズムに応じて異なる形式を取ることがあります。パラメータの順序を参照してください。
- force_utility
- (オプション) Data MoverデーモンでHadoopコピー操作に特定のユーティリティを使用することを強制します。Data MoverデーモンではSQL-Hがテーブルの移動に使用されます。SQL-Hを使用できない場合、HadoopのTeradataコネクタがテーブルの移動に使用されます。 有効な値
- デフォルト(Data MoverはSQL-Hをテーブルの移動に使用できるかどうかを決定します。使用できない場合は、HadoopのTeradata Connectorが使用されます。)
- Hadoop_Connector
- SQLH
- size
- ターゲット テーブルが存在しない場合は、すべてのCHAR/VARCHAR列の合計が64000以下であることを確認してください。そうでない場合は、JDBCの制限が原因で、ジョブが実行時に失敗します。UNICODEセッション文字セットを含む列の場合は、すべての列の合計サイズを計算するときに、サイズで指定された値の2倍を値とみなします。例えば、文字セットの列がUNICODEで、サイズが2000の場合は、サイズを4000とみなします。
- table_columns
- (オプション)データをTeradata Databaseに移動する前にテーブル列をカスタマイズします。データ型については、データ型のマッピングを参照してください。ターゲット テーブルが存在しない場合、ターゲット側の列の名前を変更できます。ターゲット テーブルがすでに存在する場合、列名および型はターゲットに存在する列と一致する必要があります。テーブル列プロパティによりターゲット テーブルがTeradata Databaseに作成されるか、既存テーブルの値が確認されます。
オプション 説明 name 変更する列の名前 size (オプション)VARCHARなどの列のサイズを制限します。 target_name (オプション)列の名前を変更します。値が指定されていない場合、元の列名がターゲット名として使用されます。 target_type (オプション)デフォルトの列タイプを変更します。値が指定されていない場合、デフォルトのマッピングが使用されます。デフォルトおよび利用可能なマッピングについては、データ型のマッピングを参照してください。 type テーブル列の型。情報のみ。ユーザーは変更できません。 allowDuplicate (オプション)ターゲット テーブル列で重複値を使用できるかどうかを指定します(trueまたはfalse)。指定しないか、またはisPrimaryIndexがtrueの場合はfalseに設定する必要があります。そうしないと、エラーが発生します。 allowNull (オプション)ヌル値がターゲット テーブル列で使用できるかどうかを指定します(trueまたはfalse)。指定しないか、またはisPrimaryIndexがtrueの場合はfalseに設定する必要があります。そうしないと、エラーが発生します。 isPrimaryIndex (オプション)ターゲット テーブル列でヌル値を使用できるかどうかを指定します(trueまたはfalse)。isPrimaryIndexがfalseで、allowNullがtrueの場合は、allowDuplicateを指定しないか、またはfalseに設定する必要があります。そうしないと、エラーが発生します。 - transfer_method 1
- (オプション)HadoopのTeradataコネクタがHadoopからTeradataへのデータ転送のためにサポートするオプション。
オプション 説明 Default Data Moverはinternal_fastloadを選択します。 batch_insert 基になるHadoopコネクタは、JDBCバッチ実行によってNOPIステージング テーブルに行を挿入します。すべてのMapperがその処理を完了した後、ステージング テーブルの行がInsert-Select SQL操作によってターゲット テーブルに移動されます。 transfer_batch_insert_size 2 転送方法としてbatch_insertを指定した場合は、このパラメータを行数を表わす値(10000、50000など)として指定することもできます。転送方法としてinternal_fastloadを指定した場合は、このプロパティを適用できません。 internal_fastload 基礎となるHadoopコネクタはデータベースfastloadセッションを開始して、行を単一のNOPIステージング テーブルにロードします。すべてのデータベースFastLoadセッションは内部プロトコルによって調整されます。すべてのMapperが実行を完了した後にFastloadジョブが終了すると、NOPIステージング テーブルの行がInsert-Select SQL操作によってターゲット テーブルにコピーされます。 1CLIでは、このパラメータはhadoop_transfer_methodの形式を取ります。 2CLIでは、このパラメータはhadoop_transfer_batch_sizeの形式を取ります。
- use_foreign_server
- Teradata Database 15.0以降では、HadoopからTeradataにデータを移動するために以前に作成した外部サーバーを指定できます。この外部サーバーは、特定のジョブのすべてのテーブルの移動に使用されます。
XMLファイルの例
createコマンドの場合は、datamove create -f parameters.xmlと入力します。
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <dmCreate xmlns="http://schemas.teradata.com/dataMover/v2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.teradata.com/unity/datamover.xsd"> <!-- source td credentials --> <source_tdpid>dm-agent5</source_tdpid> <source_user>ak186010_portlet</source_user> <source_password>qwerty</source_password> <!-- target hadoop credentials --> <target_hadoop_system> <webHCat_url>http://webhcat:50111</webHCat_url> <oozie_url>http://oozie:11000</oozie_url> <file_system_url>http://webhdfs:50070</file_system_url> <hive_user>hive</hive_user> <hive_password>hive</hive_password> </target_hadoop_system> <overwrite_existing_objects>true</overwrite_existing_objects> <freeze_job_steps>false</freeze_job_steps> <target_database><name>ak186010_all</name></target_database> <compare_ddl>false</compare_ddl> <!-- hadoop specific job options --> <hadoop_options> <file_options>ORC</file_options> <file_options_delimiter>#</file_options_delimiter> <transfer_method>hash</transfer_method> <number_mappers>10</number_mappers> </hadoop_options> <!-- object selection. in this case, we are moving ITTest1 from ak186010_portlet (td) to default db in hive (hadoop)--> <database selection="unselected"> <name>ak186010_portlet</name> <table selection="included"> <name>Table1</name> <target_name>NewTable1</target_name> <table_columns> <column> <name>column1</name> <target_name>targetColumn1</target_name> <type>varchar</type> <target_type>string</target_type> </column> </table_columns> </table> </database> </dmCreate>
<dmCreate xmlns="http://schemas.teradata.com/dataMover/v2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.teradata.com/unity/datamover.xsd"> <source_hadoop_system> <webHCat_url>http://webhcat:50111</webHCat_url> <oozie_url>http://oozie:11000</oozie_url> <file_system_url>http://webhdfs:50070</file_system_url> <hive_user>ssuser</hive_user> <hive_password>sspass</hive_password> </source_hadoop_system> <target_tdpid>dm-agent3</target_tdpid> <target_user>"yye"</target_user> <target_password>yye</target_password> <overwrite_existing_objects>true</overwrite_existing_objects> <force_utility>sqlh</force_utility> <freeze_job_steps>false</freeze_job_steps> <compare_ddl>false</compare_ddl> <log_level>0</log_level> <online_archive>UNSPECIFIED</online_archive> <hadoop_options> <file_options>text</file_options> <file_options_delimiter>|</file_options_delimiter> <transfer_method>batch_insert</transfer_method> <transfer_batch_insert_size>10000</transfer_batch_insert_size> <number_mappers>5</number_mappers> </hadoop_options> <database selection="unselected"> <name>yye</name> <table selection="included"> <name>test1</name> <table_columns> <column> <name>c1</name> <target_name>t1</target_name> <type>string</type> <target_type>varchar</target_type> <size>8</size> <charset>UTF8</charset> <allowNull>true</allowNull> <allowDuplicate>false</allowDuplicate> <isPrimaryIndex>true</isPrimaryIndex> </column> </table_columns> </table> </database> </dmCreate>