A Hiveナレッジ・モジュール

この付録では、Hiveナレッジ・モジュールについて説明します。

この付録の内容は次のとおりです。

LKM SQL to Hive SQOOP

このKMは、JDBCデータ・ソースからのデータをHiveに統合します。

  1. Hiveステージング表を作成します。

  2. SQOOP構成ファイルを作成します。これにはアップストリーム問合せが格納されます。

  3. SQOOPを実行してソース・データを抽出し、Hiveにインポートします。

  4. Hiveステージング表を削除します。

これはダイレクト・ロードLKMであり、ターゲットIKMはいずれも無視されます。

次の表は、LKM SQL to Hive SQOOPのオプションについて説明します。

表A-1 LKM SQL to Hive SQOOP

オプション 説明

DELETE_TEMPORARY_OBJECTS

マッピングの最後に一時オブジェクトを削除します。

このオプションは、統合後に一時オブジェクト(表、ファイルおよびスクリプト)を維持する場合にNOに設定します。デバッグに便利です。デフォルト: true。

SQOOP_PARALLELISM

SQOOPパラレル・マッパーの数

並列度を指定します。より正確にはマッパーの数です。

抽出に使用されるマッパー・プロセスの数を指定します。

SQOOP_PARALLELISM > 1の場合、SPLIT_BYを定義する必要があります。

SPLIT_BY

ソース・データを分割するためのターゲット列名。

パラレル抽出のためにソース・データをn個のチャンクに分割する際に使用される非修飾のターゲット列名を指定します(nはSQOOP_PARALLELISM)。

データ・チャンクのサイズを均等にするためには、均一に配布された値が分割列に含まれている必要があります。

データ・チャンク境界を計算するためには、SELECT MIN(EMPNO), MAX(EMPNO) from EMPLOYEE EMPのような問合せが使用されます。余分な全表スキャンが行われないように、分割列に索引を付ける必要があります。

BOUNDARY_QUERY

SPLIT_BY列を使用してデータ・チャンクを計算するための最小/最大値を取得する問合せ。

パラレル抽出のためにソース・データをチャンクに分割する際に、分割列の最小値と最大値が取得されます(KMオプションSPLIT-BY)。状況によっては、これが最善の境界値ではなかったり、境界値を取得するうえで最も効率のよい方法ではないこともあります。このような場合は、このKMオプションを、1つの行と2つの列(分割列に使用される最小値と最大値)を返すSQL問合せに設定できます。この範囲は、パラレル実行のためにSQOOP_PARALLELISMチャンクに分割されます。

ハードコードされたOracleソース範囲の例:

SELECT 1000, 2000 FROM DUAL

コンテキストの独立性を保つため、通常の表名はodiRef.getObjectNameコールを介して挿入する必要があります。

次に例を示します。

SELECT MIN(EMPNO), MAX(EMPNO) FROM <%=odiRef.getObjectName(EMP")%>"

TEMP_DIR

一時ファイルのローカル・ディレクトリ。

一時ファイルの格納に使用するディレクトリ(squoopスクリプト、stdout、stderrリダイレクトなど)です。

システムのデフォルトの一時ディレクトリ(<?=System.getProperty(java.io.tmp")?>)"を使用する場合は空白のままにしておきます。

MAPRED_OUTPUT_BASE_DIR

MapReduce出力ディレクトリ。

このオプションは、SQOOPにより一時ファイル用のサブディレクトリが作成される先のhdfsディレクトリを指定します。作業表に似た名前のサブディレクトリが、一時データを格納するためにここに作成されます。

USE_GENERIC_JDBC_CONNECTOR

SQOOPの汎用JDBCコネクタを使用するかどうか。

SQOOPには、特定のテクノロジに対する固有のコネクタが用意されています。これらのコネクタによってSQL方言が処理され、パフォーマンスが最適化されます。各ターゲット・テクノロジ用のコネクタが存在する場合は、このコネクタを使用する必要があります。そうでない場合、汎用JDBCコネクタが解決策となる場合があります。

EXTRA_HADOOP_CONF_PROPERTIES

オプションの汎用Hadoopプロパティ。

SQOOP file:セクションのHadoopプロパティの追加のオプション・プロパティ。

EXTRA_SQOOP_CONF_PROPERTIES

オプションのSQOOPプロパティ。

SQOOP file:セクションのSQOOPプロパティの追加のオプション・プロパティ。

EXTRA_SQOOP_CONNECTOR_CONF_PROPERTIES

オプションのSQOOPコネクタ・プロパティ。

SQOOP file:セクションのSQOOPコネクタ・プロパティの追加のオプション・プロパティ。

LKM SQL to File SQOOP Direct

このKMは、JDBCデータ・ソースからのデータをHDFSファイルに抽出します。

次のステップが実行されます。

  1. SQOOP構成ファイルを作成します。これにはアップストリーム問合せが格納されます。

  2. SQOOPを実行してソース・データを抽出し、HDFSファイルとして保存します。

これはダイレクト・ロードLKMであり、IKMなしで使用する必要があります。

注意:

抽出前にターゲット・ディレクトリ全体が削除されます。

次の表は、LKM SQL to File SQOOP Directのオプションについて説明します。

表A-2 LKM SQL to File SQOOP Direct

オプション 説明

DELETE_TEMPORARY_OBJECTS

マッピングの最後に一時オブジェクトを削除します。

このオプションは、統合後に一時オブジェクト(表、ファイルおよびスクリプト)を維持する場合にNOに設定します。デバッグに便利です。デフォルト: true。

SQOOP_PARALLELISM

SQOOPパラレル・マッパーの数

並列度を指定します。より正確にはマッパーの数です。

抽出に使用されるマッパー・プロセスの数を指定します。

SQOOP_PARALLELISM > 1の場合、SPLIT_BYを定義する必要があります。

SPLIT_BY

ソース・データを分割するためのターゲット列名。

パラレル抽出のためにソース・データをn個のチャンクに分割する際に使用される非修飾のターゲット列名を指定します(nはSQOOP_PARALLELISM)。

データ・チャンクのサイズを均等にするためには、均一に配布された値が分割列に含まれている必要があります。

データ・チャンク境界を計算するためには、SELECT MIN(EMPNO), MAX(EMPNO) from EMPLOYEE EMPのような問合せが使用されます。余分な全表スキャンが行われないように、分割列に索引を付ける必要があります。

BOUNDARY_QUERY

SPLIT_BY列を使用してデータ・チャンクを計算するための最小/最大値を取得する問合せ。

パラレル抽出のためにソース・データをチャンクに分割する際に、分割列の最小値と最大値が取得されます(KMオプションSPLIT-BY)。状況によっては、これが最善の境界値ではなかったり、境界値を取得するうえで最も効率のよい方法ではないこともあります。このような場合は、このKMオプションを、1つの行と2つの列(分割列に使用される最小値と最大値)を返すSQL問合せに設定できます。この範囲は、パラレル実行のためにSQOOP_PARALLELISMチャンクに分割されます。

ハードコードされたOracleソース範囲の例:

SELECT 1000, 2000 FROM DUAL

コンテキストの独立性を保つため、通常の表名はodiRef.getObjectNameコールを介して挿入する必要があります。

次に例を示します。

SELECT MIN(EMPNO), MAX(EMPNO) FROM <%=odiRef.getObjectName(EMP")%>"

TEMP_DIR

一時ファイルのローカル・ディレクトリ。

一時ファイルの格納に使用するディレクトリ(squoopスクリプト、stdout、stderrリダイレクトなど)です。

システムのデフォルトの一時ディレクトリ(<?=System.getProperty(java.io.tmp")?>)"を使用する場合は空白のままにしておきます。

MAPRED_OUTPUT_BASE_DIR

MapReduce出力ディレクトリ。

このオプションは、SQOOPにより一時ファイル用のサブディレクトリが作成される先のhdfsディレクトリを指定します。作業表に似た名前のサブディレクトリが、一時データを格納するためにここに作成されます。

USE_GENERIC_JDBC_CONNECTOR

SQOOPの汎用JDBCコネクタを使用するかどうか。

SQOOPには、特定のテクノロジに対する固有のコネクタが用意されています。これらのコネクタによってSQL方言が処理され、パフォーマンスが最適化されます。各ターゲット・テクノロジ用のコネクタが存在する場合は、このコネクタを使用する必要があります。そうでない場合、汎用JDBCコネクタが解決策となる場合があります。

EXTRA_HADOOP_CONF_PROPERTIES

オプションの汎用Hadoopプロパティ。

SQOOP file:セクションのHadoopプロパティの追加のオプション・プロパティ。

EXTRA_SQOOP_CONF_PROPERTIES

オプションのSQOOPプロパティ。

SQOOP file:セクションのSQOOPプロパティの追加のオプション・プロパティ。

EXTRA_SQOOP_CONNECTOR_CONF_PROPERTIES

オプションのSQOOPコネクタ・プロパティ。

SQOOP file:セクションのSQOOPコネクタ・プロパティの追加のオプション・プロパティ。

LKM SQL to HBase SQOOP Direct

このKMは、JDBCデータ・ソースからデータを抽出し、データをHBaseにインポートします。

次のステップが実行されます。

  1. SQOOP構成ファイルを作成します。これにはアップストリーム問合せが格納されます。

  2. SQOOPを実行してソース・データを抽出し、HBaseにインポートします。

これはダイレクト・ロードLKMであり、IKMなしで使用する必要があります。

次の表は、LKM SQL to HBase SQOOP Directのオプションについて説明します。

表A-3 LKM SQL to HBase SQOOP Direct

オプション 説明

CREATE_TARG_TABLE

ターゲット表を作成するかどうか

このオプションは、ターゲット表を作成する場合に選択します。

TRUNCATE

既存のターゲット・データを置き換えるかどうか

このオプションは、既存のターゲット表の内容を新しいデータで置き換える場合にtrueに設定します。

DELETE_TEMPORARY_OBJECTS

マッピングの最後に一時オブジェクトを削除します。

このオプションは、統合後に一時オブジェクト(表、ファイルおよびスクリプト)を維持する場合にNOに設定します。デバッグに便利です。デフォルト: true。

SQOOP_PARALLELISM

SQOOPパラレル・マッパーの数

並列度を指定します。より正確にはマッパーの数です。

抽出に使用されるマッパー・プロセスの数を指定します。

SQOOP_PARALLELISM > 1の場合、SPLIT_BYを定義する必要があります。

SPLIT_BY

ソース・データを分割するためのターゲット列名。

パラレル抽出のためにソース・データをn個のチャンクに分割する際に使用される非修飾のターゲット列名を指定します(nはSQOOP_PARALLELISM)。

データ・チャンクのサイズを均等にするためには、均一に配布された値が分割列に含まれている必要があります。

データ・チャンク境界を計算するためには、SELECT MIN(EMPNO), MAX(EMPNO) from EMPLOYEE EMPのような問合せが使用されます。余分な全表スキャンが行われないように、分割列に索引を付ける必要があります。

BOUNDARY_QUERY

SPLIT_BY列を使用してデータ・チャンクを計算するための最小/最大値を取得する問合せ。

パラレル抽出のためにソース・データをチャンクに分割する際に、分割列の最小値と最大値が取得されます(KMオプションSPLIT-BY)。状況によっては、これが最善の境界値ではなかったり、境界値を取得するうえで最も効率のよい方法ではないこともあります。このような場合は、このKMオプションを、1つの行と2つの列(分割列に使用される最小値と最大値)を返すSQL問合せに設定できます。この範囲は、パラレル実行のためにSQOOP_PARALLELISMチャンクに分割されます。

ハードコードされたOracleソース範囲の例:

SELECT 1000, 2000 FROM DUAL

コンテキストの独立性を保つため、通常の表名はodiRef.getObjectNameコールを介して挿入する必要があります。

次に例を示します。

SELECT MIN(EMPNO), MAX(EMPNO) FROM <%=odiRef.getObjectName(EMP")%>"

TEMP_DIR

一時ファイルのローカル・ディレクトリ。

一時ファイルの格納に使用するディレクトリ(squoopスクリプト、stdout、stderrリダイレクトなど)です。

システムのデフォルトの一時ディレクトリ(<?=System.getProperty(java.io.tmp")?>)"を使用する場合は空白のままにしておきます。

MAPRED_OUTPUT_BASE_DIR

MapReduce出力ディレクトリ。

このオプションは、SQOOPにより一時ファイル用のサブディレクトリが作成される先のhdfsディレクトリを指定します。作業表に似た名前のサブディレクトリが、一時データを格納するためにここに作成されます。

USE_GENERIC_JDBC_CONNECTOR

SQOOPの汎用JDBCコネクタを使用するかどうか。

SQOOPには、特定のテクノロジに対する固有のコネクタが用意されています。これらのコネクタによってSQL方言が処理され、パフォーマンスが最適化されます。各ターゲット・テクノロジ用のコネクタが存在する場合は、このコネクタを使用する必要があります。そうでない場合、汎用JDBCコネクタが解決策となる場合があります。

EXTRA_HADOOP_CONF_PROPERTIES

オプションの汎用Hadoopプロパティ。

SQOOP file:セクションのHadoopプロパティの追加のオプション・プロパティ。

EXTRA_SQOOP_CONF_PROPERTIES

オプションのSQOOPプロパティ。

SQOOP file:セクションのSQOOPプロパティの追加のオプション・プロパティ。

EXTRA_SQOOP_CONNECTOR_CONF_PROPERTIES

オプションのSQOOPコネクタ・プロパティ。

SQOOP file:セクションのSQOOPコネクタ・プロパティの追加のオプション・プロパティ。

LKM File to SQL SQOOP

このKMは、HDFSファイルからのデータをJDBCターゲットに統合します。

次のステップが実行されます。

  1. SQOOP構成ファイルを作成します。

  2. SQOOPを使用してRDBMSの作業表にデータをロードします。

  3. 作業表を削除します。

次の表は、LKM File to SQL SQOOPのオプションについて説明します。

表A-4 LKM File to SQL SQOOP

オプション 説明

SQOOP_PARALLELISM

SQOOPパラレル・マッパーの数。

並列度を指定します。より正確にはマッパーの数です。

抽出に使用されるマッパー・プロセスの数を指定します。

SQOOP_PARALLELISM > 1の場合、SPLIT_BYを定義する必要があります。

WORK_TABLE_OPTIONS

作業表オプション。

このオプションは、標準のテクノロジ固有の作業表オプションを上書きする場合に使用します。空白のままにすると、次のオプション値が使用されます。

Oracle: NOLOGGING

DB2 UDB: NOT LOGGED INITIALLY

Teradata: no fallback、no before journal、no after journal

TERADATA_WORK_TABLE_TYPE

Teradata作業表タイプ。

作業表についてSETまたはMULTISET表を使用します。

TERADATA_OUTPUT_METHOD

Teradataのロード方法。

Teradataコネクタがデータをロードする方法を指定します。有効な値は次のとおりです。

  • batch.insert: バッチ処理されたプリペアド文を使用する複数のJDBC接続(最初は最も簡単)

  • multiple.fastload: 複数のFastLoad接続

  • internal.fastload: 単一の調整済FastLoad接続(パフォーマンスは最も高い)

詳細は、ClouderaのTeradata Connectors User Guideを参照してください。

TEMP_DIR

一時ファイルのローカル・ディレクトリ。

一時ファイルの格納に使用するディレクトリ(squoopスクリプト、stdout、stderrリダイレクトなど)です。

システムのデフォルトの一時ディレクトリ(<?=System.getProperty(java.io.tmp")?>)"を使用する場合は空白のままにしておきます。

MAPRED_OUTPUT_BASE_DIR

MapReduce出力ディレクトリ。

このオプションは、SQOOPにより一時ファイル用のサブディレクトリが作成される先のhdfsディレクトリを指定します。作業表に似た名前のサブディレクトリが、一時データを格納するためにここに作成されます。

USE_GENERIC_JDBC_CONNECTOR

SQOOPの汎用JDBCコネクタを使用するかどうか。

SQOOPには、特定のテクノロジに対する固有のコネクタが用意されています。これらのコネクタによってSQL方言が処理され、パフォーマンスが最適化されます。各ターゲット・テクノロジ用のコネクタが存在する場合は、このコネクタを使用する必要があります。そうでない場合、汎用JDBCコネクタが解決策となる場合があります。

EXTRA_HADOOP_CONF_PROPERTIES

オプションの汎用Hadoopプロパティ。

SQOOP file:セクションのHadoopプロパティの追加のオプション・プロパティ。

EXTRA_SQOOP_CONF_PROPERTIES

オプションのSQOOPプロパティ。

SQOOP file:セクションのSQOOPプロパティの追加のオプション・プロパティ。

EXTRA_SQOOP_CONNECTOR_CONF_PROPERTIES

オプションのSQOOPコネクタ・プロパティ。

SQOOP file:セクションのSQOOPコネクタ・プロパティの追加のオプション・プロパティ。

LKM Hive to SQL SQOOP

このKMは、HiveからのデータをJDBCターゲットに統合します。

次のステップが実行されます。

  1. HDFSにデータをアンロードします。

  2. SQOOP構成ファイルを作成します。

  3. SQOOPを使用してRDBMSの作業表にデータをロードします。

  4. 作業表を削除します

次の表は、LKM Hive to SQL SQOOPのオプションについて説明します。

表A-5 LKM Hive to SQL SQOOP

オプション 説明

DELETE_TEMPORARY_OBJECTS

マッピングの最後に一時オブジェクトを削除します。

このオプションは、統合後に一時オブジェクト(表、ファイルおよびスクリプト)を維持する場合にNOに設定します。デバッグに便利です。

SQOOP_PARALLELISM

SQOOPパラレル・マッパーの数。

並列度を指定します。より正確にはマッパーの数です。

抽出に使用されるマッパー・プロセスの数を指定します。

SQOOP_PARALLELISM > 1の場合、SPLIT_BYを定義する必要があります。

WORK_TABLE_OPTIONS

作業表オプション。

このオプションは、標準のテクノロジ固有の作業表オプションを上書きする場合に使用します。空白のままにすると、次のオプション値が使用されます。

Oracle: NOLOGGING

DB2 UDB: NOT LOGGED INITIALLY

Teradata: no fallback、no before journal、no after journal

TERADATA_WORK_TABLE_TYPE

Teradata作業表タイプ。

作業表についてSETまたはMULTISET表を使用します。

TERADATA_OUTPUT_METHOD

Teradataのロード方法。

Teradataコネクタがデータをロードする方法を指定します。有効な値は次のとおりです。

  • batch.insert: バッチ処理されたプリペアド文を使用する複数のJDBC接続(最初は最も簡単)

  • multiple.fastload: 複数のFastLoad接続

  • internal.fastload: 単一の調整済FastLoad接続(パフォーマンスは最も高い)

詳細は、ClouderaのTeradata Connectors User Guideを参照してください。

TEMP_DIR

一時ファイルのローカル・ディレクトリ。

一時ファイルの格納に使用するディレクトリ(squoopスクリプト、stdout、stderrリダイレクトなど)です。

システムのデフォルトの一時ディレクトリ(<?=System.getProperty(java.io.tmp")?>)"を使用する場合は空白のままにしておきます。

MAPRED_OUTPUT_BASE_DIR

MapReduce出力ディレクトリ。

このオプションは、SQOOPにより一時ファイル用のサブディレクトリが作成される先のhdfsディレクトリを指定します。作業表に似た名前のサブディレクトリが、一時データを格納するためにここに作成されます。

USE_GENERIC_JDBC_CONNECTOR

SQOOPの汎用JDBCコネクタを使用するかどうか。

SQOOPには、特定のテクノロジに対する固有のコネクタが用意されています。これらのコネクタによってSQL方言が処理され、パフォーマンスが最適化されます。各ターゲット・テクノロジ用のコネクタが存在する場合は、このコネクタを使用する必要があります。そうでない場合、汎用JDBCコネクタが解決策となる場合があります。

EXTRA_HADOOP_CONF_PROPERTIES

オプションの汎用Hadoopプロパティ。

SQOOP file:セクションのHadoopプロパティの追加のオプション・プロパティ。

EXTRA_SQOOP_CONF_PROPERTIES

オプションのSQOOPプロパティ。

SQOOP file:セクションのSQOOPプロパティの追加のオプション・プロパティ。

EXTRA_SQOOP_CONNECTOR_CONF_PROPERTIES

オプションのSQOOPコネクタ・プロパティ。

SQOOP file:セクションのSQOOPコネクタ・プロパティの追加のオプション・プロパティ。

LKM HBase to SQL SQOOP

このKMは、HBaseからのデータをJDBCターゲットに統合します。

次のステップが実行されます。

  1. SQOOP構成ファイルを作成します。

  2. HBase表に対するHive表定義を作成します。

  3. SQOOPを使用してHive (HBase)からRDBMSの作業表にデータをアンロードします。

  4. 作業表を削除します。

次の表は、LKM HBase to SQL SQOOPのオプションについて説明します。

表A-6 LKM HBase to SQL SQOOP

オプション 説明

DELETE_TEMPORARY_OBJECTS

マッピングの最後に一時オブジェクトを削除します。

このオプションは、統合後に一時オブジェクト(表、ファイルおよびスクリプト)を維持する場合にNOに設定します。デバッグに便利です。デフォルト: true。

HIVE_STAGING_LSCHEMA

Hive-HBase-SerDe表の論理スキーマ名。

HBaseデータからのアンロードはHive経由で行われます。このKMオプションではHiveデータベースが定義され、これはHBaseデータのアンロードのためのHive HBase-SerDe表を作成するのに使用されます。

SQOOP_PARALLELISM

SQOOPパラレル・マッパーの数。

並列度を指定します。より正確にはマッパーの数です。

抽出に使用されるマッパー・プロセスの数を指定します。

SQOOP_PARALLELISM > 1の場合、SPLIT_BYを定義する必要があります。

WORK_TABLE_OPTIONS

作業表オプション。

このオプションは、標準のテクノロジ固有の作業表オプションを上書きする場合に使用します。空白のままにすると、次のオプション値が使用されます。

Oracle: NOLOGGING

DB2 UDB: NOT LOGGED INITIALLY

Teradata: no fallback、no before journal、no after journal

TERADATA_WORK_TABLE_TYPE

Teradata作業表タイプ。

作業表についてSETまたはMULTISET表を使用します。

TERADATA_OUTPUT_METHOD

Teradataのロード方法。

Teradataコネクタがデータをロードする方法を指定します。有効な値は次のとおりです。

  • batch.insert: バッチ処理されたプリペアド文を使用する複数のJDBC接続(最初は最も簡単)

  • multiple.fastload: 複数のFastLoad接続

  • internal.fastload: 単一の調整済FastLoad接続(パフォーマンスは最も高い)

詳細は、ClouderaのTeradata Connectors User Guideを参照してください。

TEMP_DIR

一時ファイルのローカル・ディレクトリ。

一時ファイルの格納に使用するディレクトリ(squoopスクリプト、stdout、stderrリダイレクトなど)です。

システムのデフォルトの一時ディレクトリ(<?=System.getProperty(java.io.tmp")?>)"を使用する場合は空白のままにしておきます。

MAPRED_OUTPUT_BASE_DIR

MapReduce出力ディレクトリ。

このオプションは、SQOOPにより一時ファイル用のサブディレクトリが作成される先のhdfsディレクトリを指定します。作業表に似た名前のサブディレクトリが、一時データを格納するためにここに作成されます。

USE_GENERIC_JDBC_CONNECTOR

SQOOPの汎用JDBCコネクタを使用するかどうか。

SQOOPには、特定のテクノロジに対する固有のコネクタが用意されています。これらのコネクタによってSQL方言が処理され、パフォーマンスが最適化されます。各ターゲット・テクノロジ用のコネクタが存在する場合は、このコネクタを使用する必要があります。そうでない場合、汎用JDBCコネクタが解決策となる場合があります。

EXTRA_HADOOP_CONF_PROPERTIES

オプションの汎用Hadoopプロパティ。

SQOOP file:セクションのHadoopプロパティの追加のオプション・プロパティ。

EXTRA_SQOOP_CONF_PROPERTIES

オプションのSQOOPプロパティ。

SQOOP file:セクションのSQOOPプロパティの追加のオプション・プロパティ。

EXTRA_SQOOP_CONNECTOR_CONF_PROPERTIES

オプションのSQOOPコネクタ・プロパティ。

SQOOP file:セクションのSQOOPコネクタ・プロパティの追加のオプション・プロパティ。

LKM HDFS File to Hive Load Data

このKMは、データをHDFSファイルのみからHiveにロードします。ファイルの形式は複合データを伴うJSON、Avro、Parquet、デリミタ付きのいずれかです。

表A-7 LKM HDFS File to Hive Load Data

オプション 説明

STOP_ON_FILE_NOT_FOUND

このチェック・ボックス・オプションは、入力ファイルが見つからない場合にKMを停止するかどうかを定義します。

OVERRIDE_ROW_FORMAT

このオプションを使用すると、ステージング表またはターゲット表のHive行形式定義全体をオーバーライドできます。

DELETE_TEMPORARY_OBJECTS

このオプションは、統合後に一時オブジェクト(表、ファイルおよびスクリプト)を維持する場合にNoに設定します。

LKM HDFS File to Hive Load Data (Direct)

このKMは、データをHDFSファイルのみから、パフォーマンスを向上させるためにステージング表をバイパスして、直接Hive Data Direct (Hiveターゲット表)にロードします。

表A-8 LKM HDFS to Hive Load Data (Direct)

オプション 説明

STOP_ON_FILE_NOT_FOUND

このチェック・ボックス・オプションは、入力ファイルが見つからない場合にKMを停止するかどうかを定義します。

OVERRIDE_ROW_FORMAT

このオプションを使用すると、ステージング表またはターゲット表のHive行形式定義全体をオーバーライドできます。

DELETE_TEMPORARY_OBJECTS

このオプションは、統合後に一時オブジェクト(表、ファイルおよびスクリプト)を維持する場合にNoに設定します。

CREATE_TARG_TABLE

ターゲット表を作成するかどうか

このオプションは、ターゲット表を作成する場合に選択します。

TRUNCATE

既存のターゲット・データを置き換えるかどうか

このオプションは、既存のターゲット表の内容を新しいデータで置き換える場合にtrueに設定します。

IKM Hive Append

このKMは、追加または置換(切捨て)モードでHiveターゲット表にデータを統合します。

次の表は、IKM Hive Appendのオプションについて説明します。

表A-9 IKM Hive Append

オプション 説明

CREATE_TARG_TABLE

ターゲット表を作成します。

ターゲット表を作成する場合、このオプションを選択します。

TRUNCATE

すべてのターゲット表データを置き換えます。

ターゲット表の内容を新しいデータで置き換える場合は、このオプションをtrueに設定します。

HIVE_SESSION_PROPERTIES

設定はオプションです。このプロパティは上級ユーザー向けです。

注意:

ターゲットHive表に複合型が含まれる列がある場合、その列をマップする必要があります。Hiveでは、複合列にnull値を設定できません。

IKM Hive Incremental Update

このIKMは、増分でデータをHiveターゲット表に統合します。KMをHiveターゲット・ノードに割り当てる必要があります。

割当てに使用可能なKMのリストでこのKMを取得するには、ターゲット・データ・ストア統合タイプを「増分更新」として定義する必要があります。

表A-10 IKM Hive Incremental Update

オプション 説明

CREATE_TARG_TABLE

ターゲット表を作成します。

このオプションは、ターゲット表を作成する場合に選択します。

TRUNCATE

すべてのターゲット表データを置き換えます。

このオプションは、ターゲット表の内容を新しいデータで置き換える場合にtrueに設定します。

LKM File to Hive LOAD DATA

HiveのLOAD DATAコマンドを使用した、フラット・ファイル・ステージング領域からHiveへの統合です。

このKMで実行されるステップは次のとおりです。

  1. Hiveでフロー表を作成します。

  2. データ・ファイルをHiveに対して宣言します(LOAD DATAコマンド)。

  3. データをHiveステージング表からターゲット表にロードします。

このKMではファイル名のワイルドカード(*、?)を処理できます。

次の表は、LKM File to Hive LOAD DATAのオプションについて説明します。

表A-11 LKM File to Hive LOAD DATA

オプション 説明

DELETE_TEMPORARY_OBJECTS

マッピングの最後に一時オブジェクトを削除します。

一時オブジェクト(表、ファイルおよびスクリプト)を統合後保持する場合、このオプションをNO,に設定します。デバッグに便利です。

EXTERNAL_TABLE

ファイルを元の場所に保持するかどうか。

ターゲット/ステージング表を外部で管理する表として宣言するかどうかを定義します。

デフォルト: false

外部表でない場合、Hiveがすべてのデータ・ファイルを管理します。つまり、すべてのデータ・ファイルが<hive.metastore.warehouse.dir>/<table_name>に移動されます。外部表の場合、Hiveはいずれのファイルの移動も削除も行いません。ODIスキーマで指定されている場所からデータがロードされます。

EXTERNAL_TABLEがtrueに設定されている場合:

物理データ・スキーマで指定されているディレクトリ内のすべてのファイルがロードされます。このため、ソース・データ・ストアのリソース名から得られるファイル名またはワイルドカード情報は無視されます。

ディレクトリ構造およびファイル名は、表のHivesディレクトリ編成(パーティション化やクラスタ化など)に従っている必要があります。

ディレクトリおよびそのファイルはHDFSに存在する必要があります。

Hive LOAD-DATA文は発行されないため、(ターゲット側の式を使用して)ファイルを特定のパーティションにロードすることはできません。

FILE_IS_LOCAL

ローカル・ファイルかどうか

ソース・ファイルをローカル(=現在のHadoopクラスタの外側)とみなすかどうかを定義します。

デフォルト: true

FILE_IS_LOCALをtrueに設定した場合、データ・ファイルは最初にHadoopクラスタにコピーされます。

FILE_IS_LOCALをfalseに設定した場合、データ・ファイルはHadoopクラスタに移動され、ソースの場所では使用できなくなります。ソース・ファイルがすでにHDFSに存在する場合、FILE_IS_LOCAL=falseに設定すると、ファイル名の変更が行われるのみなので、操作は非常に高速で行われます。このオプションは、EXTERNAL_TABLEがfalseに設定されている場合にのみ適用されます。

STOP_ON_FILE_NOT_FOUND

入力ファイルが見つからなかった場合に停止するかどうか。

このチェック・ボックス・オプションは、入力ファイルが見つからない場合にKMを停止するかどうかを定義します。

OVERRIDE_ROW_FORMAT

カスタムの行形式句です。

このオプションでは、ステージング表(USE_STAGE_TABLEがtrueに設定されている場合)またはターゲット表(USE_STAGE_TABLEがfalseに設定されている場合)のHive行形式定義全体のオーバーライドを許可します。行形式を定義するのに使用されるテキストが含まれます。

Apache Combined WebLogファイルを読み取る例を次に示します。

ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' <EOL>WITH SERDEPROPERTIES ( <EOL> input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) (-|\\[[^\\]]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*) (\".*?\") (\".*?\") (\".*?\")"

LKM File to Hive LOAD DATA Direct

HiveのLOAD DATAコマンドを使用した、ステージングなしでのフラット・ファイルからHiveへの直接統合です。

これはダイレクト・ロードLKMであり、IKMなしで使用する必要があります。

このKMではファイル名のワイルドカード(*、?)を処理できます。

次の表は、LKM File to Hive LOAD DATA Directのオプションについて説明します。

表A-12 LKM File to Hive LOAD DATA Direct

オプション 説明

CREATE_TARG_TABLE

ターゲット表を作成します。

ターゲット表を作成する場合、このオプションを選択します。

TRUNCATE

すべてのターゲット表データを置き換えます。

ターゲット表の内容を新しいデータで置き換える場合は、このオプションをtrueに設定します。

DELETE_TEMPORARY_OBJECTS

マッピングの最後に一時オブジェクトを削除します。

一時オブジェクト(表、ファイルおよびスクリプト)を統合後保持する場合、このオプションをNO,に設定します。デバッグに便利です。

EXTERNAL_TABLE

ファイルを元の場所に保持するかどうか。

ターゲット/ステージング表を外部で管理する表として宣言するかどうかを定義します。

デフォルト: false

外部表でない場合、Hiveがすべてのデータ・ファイルを管理します。つまり、すべてのデータ・ファイルが<hive.metastore.warehouse.dir>/<table_name>に移動されます。外部表の場合、Hiveはいずれのファイルの移動も削除も行いません。ODIスキーマで指定されている場所からデータがロードされます。

EXTERNAL_TABLEがtrueに設定されている場合:

物理データ・スキーマで指定されているディレクトリ内のすべてのファイルがロードされます。このため、ソース・データ・ストアのリソース名から得られるファイル名またはワイルドカード情報は無視されます。

ディレクトリ構造およびファイル名は、表のHivesディレクトリ編成(パーティション化やクラスタ化など)に従っている必要があります。

ディレクトリおよびそのファイルはHDFSに存在する必要があります。

Hive LOAD-DATA文は発行されないため、(ターゲット側の式を使用して)ファイルを特定のパーティションにロードすることはできません。

FILE_IS_LOCAL

ローカル・ファイルかどうか

ソース・ファイルをローカル(=現在のHadoopクラスタの外側)とみなすかどうかを定義します。

デフォルト: true

FILE_IS_LOCALをtrueに設定した場合、データ・ファイルは最初にHadoopクラスタにコピーされます。

FILE_IS_LOCALをfalseに設定した場合、データ・ファイルはHadoopクラスタに移動され、ソースの場所では使用できなくなります。ソース・ファイルがすでにHDFSに存在する場合、FILE_IS_LOCAL=falseに設定すると、ファイル名の変更が行われるのみなので、操作は非常に高速で行われます。このオプションは、EXTERNAL_TABLEがfalseに設定されている場合にのみ適用されます。

STOP_ON_FILE_NOT_FOUND

入力ファイルが見つからなかった場合に停止するかどうか。

このチェック・ボックス・オプションは、入力ファイルが見つからない場合にKMを停止するかどうかを定義します。

OVERRIDE_ROW_FORMAT

カスタムの行形式句です。

このオプションでは、ステージング表(USE_STAGE_TABLEがtrueに設定されている場合)またはターゲット表(USE_STAGE_TABLEがfalseに設定されている場合)のHive行形式定義全体のオーバーライドを許可します。行形式を定義するのに使用されるテキストが含まれます。

Apache Combined WebLogファイルを読み取る例を次に示します。

ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' <EOL>WITH SERDEPROPERTIES ( <EOL> input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) (-|\\[[^\\]]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*) (\".*?\") (\".*?\") (\".*?\")"

LKM HBase to Hive HBASE-SERDE

このLKMは、HiveからHBase表への読取りアクセスを提供します。

これは、HBaseソース表の関連するすべての列を表す、Hiveに関する一時ロード表定義を定義することによって実現されます。

LKM Hive to HBase Incremental Update HBASE-SERDE Direct

このLKMは、HiveからHBaseにデータをロードし、新しい行の挿入と既存のデータの更新もサポートしています。

これはダイレクト・ロードLKMであり、IKMなしで使用する必要があります。

次の表は、LKM Hive to HBase Incremental Update HBASE-SERDE Directのオプションについて説明します。

表A-13 LKM Hive to HBase Incremental Update HBASE-SERDE Direct

オプション 説明

CREATE_TARG_TABLE

ターゲット表を作成します。

このオプションは、ターゲット表を作成する場合に選択します。

TRUNCATE

すべてのターゲット表データを置き換えます。

このオプションは、ターゲット表の内容を新しいデータで置き換える場合にtrueに設定します。

HBASE_WAL

ログ先行書込みを無効化します。

HBaseではデータ損失を防ぐためにログ先行書込みを使用します。パフォーマンスを向上させるためには、WALを無効にできます。この設定は、このセッションで、その後に実行されるすべてのHiveコマンドに適用されます。

DELETE_TEMPORARY_OBJECTS

マッピングの最後に一時オブジェクトを削除します。

このオプションは、統合後に一時オブジェクト(表、ファイルおよびスクリプト)を維持する場合にNOに設定します。デバッグに便利です。

LKM Hive to File Direct

このLKMは、Hiveからフラット・ファイルにデータをアンロードします。

これはダイレクト・ロードLKMであり、IKMなしで使用する必要があります。

次の表は、LKM Hive to File Directのオプションについて説明します。

表A-14 LKM Hive to File Direct

オプション 説明

FILE_IS_LOCAL

ローカル・ファイルかどうか

ターゲット・ファイルをローカル(現在のHadoopクラスタの外側)とみなすかどうかを定義します。

STORED_AS

ファイル形式。

ターゲット・ファイルをプレーン・テキスト・ファイル(TEXTFILE)として保存するかそれとも圧縮するか(SEQUENCEFILE)を定義します。

XKM Hive Sort

このXKMは式を使用してデータをソートします。

次の表は、XKM Hive Sortのオプションについて説明します。

表A-15 XKM Hive Sort

オプション 説明

SORT_MODE

SORT演算子がコードを生成するモードを選択します。

LKM File to Oracle OLH-OSCH

このKMは、Oracle Loader for Hadoop (OLH)やOracle SQL Connector for Hadoop (OSCH)を使用して、HDFSファイルからOracleステージング表にデータを統合します。

このKMではファイル名のワイルドカード(*、?)を処理できます。

次の表は、LKM File to Oracle OLH-OSCHのオプションについて説明します。

表A-16 LKM File to Oracle OLH-OSCH

オプション 説明

DELETE_TEMPORARY_OBJECTS

マッピングの最後に一時オブジェクトを削除します。

このオプションは、統合後に一時オブジェクト(表、ファイルおよびスクリプト)を維持する場合にNOに設定します。デバッグに便利です。

OLH_OUTPUT_MODE

データをOracleにどのように転送するか。

このオプションは、HadoopデータをOracleにロードする方法を指定します。指定できる値は、JDBC、OCI、DP_COPY|DP_OSCHおよびOSCHです。

  • JDBC出力モード: 複数のダイレクト・インサートJDBC接続を使用してデータが挿入されます。

    まれに、JDBCモードでは、Hadoopでタスクの再開が試行されるためにターゲット表でレコードが重複することがあります。

  • OCI出力モード: ダイレクト・パス・モードで複数のダイレクト・インサートOCI接続を使用してデータが挿入されます。

    ダイレクト・ロードの場合(C$表なし)、ターゲット表はパーティション化されている必要があります。標準ロードの場合は、FLOW_TABLE_OPTIONSで明示的にパーティション化を指定する必要があります(例: PARTITION BY HASH(COL1) PARTITIONS 4)。

    まれに、OCIモードでは、Hadoopでタスクの再開が試行されるためにターゲット表でレコードが重複することがあります。

  • DP_COPY出力モード: OLHによって複数のDataPumpエクスポート・ファイルが作成されます。これらのファイルは"Hadoop fs -copyToLocal"コマンドによって、EXT_TAB_DIR_LOCATIONで指定されたローカル・パスに転送されます。このパスはOracle Databaseエンジンでアクセス可能である必要がある点に注意してください。コピー・ジョブの完了後。

REJECT_LIMIT

OLH/EXTTABのエラーの最大数。

ファイルに記録されるエラーの最大許容数を入力します。たとえば、UNLIMITEDを指定すると、すべてのエラーを除外します。整数です(10と指定すると10件の拒否が許容されます)。

この値は、OLHジョブ定義に加えて外部表定義でも使用されます。

EXT_TAB_DIR_LOCATION

外部表データ・ファイルのディレクトリ。

外部表のファイル・システム・パスです。

注意:

  • OLH_OUTPUT_MODE = DP_*またはOSCHの場合にのみ適用されます。

  • OLH_OUTPUT_MODE = DP_*の場合: このパスには、ODIエージェントとターゲット・データベース・エンジンの両方からアクセスできる必要があります。

  • OLH_OUTPUT_MODE = DP_*の場合: 外部ディレクトリ・オブジェクトの名前はI$表の名前です。

  • OLH_OUTPUT_MODE = DP_COPYの場合: ODIエージェントはhadoop-fsコマンドを使用して、dpファイルをこのディレクトリにコピーします。

  • OLH_OUTPUT_MODE = DP_*|OSCHの場合: このパスには外部表のlog/bad/dscファイルが含まれます。

  • ODIエージェントは、クリーンアップ時にこのディレクトリからすべてのファイルを削除してから、OLH/OSCHを起動します。

WORK_TABLE_OPTIONS

フロー表作成用のオプション。

このオプションは作成時に統合表の属性を指定するもので、パフォーマンス向上のために使用します。

このオプションは、デフォルトでNOLOGGINGに設定されます。

このオプションは空のままにしておくこともできます。

OVERRIDE_INPUTFORMAT

InputFormatのクラス名。

デフォルトでは、InputFormatクラスはソースのデータ・ストア/テクノロジ(DelimitedTextInputFormatまたはHiveToAvroInputFormat)から導出されます。このオプションを使用すると、ユーザーはカスタムInputFormatのクラス名を指定できます。

デフォルト: <empty>。

OLH_OUTPUT_MODE=OSCHと一緒に使用することはできません。

たとえば、Webログ・ファイルのようなカスタム・ファイル形式を読み取る場合、値oracle.hadoop.loader.lib.input.RegexInputFormatを割り当てることによりOLH RegexInputFormatを使用できます。

正規表現の指定方法の詳細は、KMオプションの「EXTRA_OLH_CONF_PROPERTIES」を参照してください。

EXTRA_OLH_CONF_PROPERTIES

オプションの追加OLHプロパティ。

OLHへの追加パラメータの追加を許可します。次に、デフォルトのOLH日付形式の変更例を示します。

<property>

<name>oracle.hadoop.loader.defaultDateFormat</name>

<value>yyyy-MM-dd HH:mm:ss</value>

</property>

特に、カスタムInputFormatを使用する場合(詳細はKMオプション「OVERRIDE_INPUTFORMAT」を参照)、InputFormatに追加の構成パラメータが必要となることがあります。これらは、OLH構成ファイル内に提供されています。このKMオプションを使用すると、追加のプロパティをOLH構成ファイルに追加できます。デフォルト: <empty>

OLH_OUTPUT_MODE=OSCHと一緒に使用することはできません

例(Apache Weblogファイル形式のロード):

カスタム・ファイル形式の読取りにOLH RegexInputFormatを使用する場合、このKMオプションにより正規表現およびその他の解析詳細を指定します。

<property>

<name>oracle.hadoop.loader.input.regexPattern</name>

<value>([^ ]*) ([^ ]*) ([^ ]*) (-|\[[^\]]*\]) ([^ \]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*) (\".*?\") (\".*?\") (\".*?\")</value>

<description>RegEx for Apache WebLog format</description>

</property>"

MAPRED_OUTPUT_BASE_DIR

MapReduce出力ディレクトリ。

このオプションは、SQOOPにより一時ファイル用のサブディレクトリが作成される先のhdfsディレクトリを指定します。作業表に似た名前のサブディレクトリが、一時データを格納するためにここに作成されます。

TEMP_DIR

一時ファイルのローカル・ディレクトリ。

一時ファイルの格納に使用するディレクトリ(squoopスクリプト、stdout、stderrリダイレクトなど)です。

システムのデフォルトの一時ディレクトリ(<?=System.getProperty(java.io.tmp")?>)"を使用する場合は空白のままにしておきます。

LKM File to Oracle OLH-OSCH Direct

このKMは、Oracle Loader for Hadoop (OLH)やOracle SQL Connector for Hadoop (OSCH)を使用して、HDFSファイルからOracleターゲットにデータを統合します。

このKMではファイル名のワイルドカード(*、?)を処理できます。

これは(ステージングなしの)ダイレクト・ロードLKMであり、IKMなしで使用する必要があります。

次の表は、LKM File to Oracle OLH-OSCH Directのオプションについて説明します。

表A-17 LKM File to Oracle OLH-OSCH Direct

オプション 説明

CREATE_TARG_TABLE

ターゲット表を作成します。

このオプションは、ターゲット表を作成する場合に選択します。

TRUNCATE

すべてのターゲット表データを置き換えます。

このオプションは、ターゲット表の内容を新しいデータで置き換える場合にtrueに設定します。

DELETE_ALL

すべての行を削除します。

このオプションは、ターゲット表の内容を新しいデータで置き換える場合にtrueに設定します。

DELETE_TEMPORARY_OBJECTS

マッピングの最後に一時オブジェクトを削除します。

このオプションは、統合後に一時オブジェクト(表、ファイルおよびスクリプト)を維持する場合にNOに設定します。デバッグに便利です。

OLH_OUTPUT_MODE

データをOracleにどのように転送するか。

このオプションは、HadoopデータをOracleにロードする方法を指定します。指定できる値は、JDBC、OCI、DP_COPY|DP_OSCHおよびOSCHです。

  • JDBC出力モード: 複数のダイレクト・インサートJDBC接続を使用してデータが挿入されます。

    まれに、JDBCモードでは、Hadoopでタスクの再開が試行されるためにターゲット表でレコードが重複することがあります。

  • OCI出力モード: ダイレクト・パス・モードで複数のダイレクト・インサートOCI接続を使用してデータが挿入されます。

    ダイレクト・ロードの場合(C$表なし)、ターゲット表はパーティション化されている必要があります。標準ロードの場合は、FLOW_TABLE_OPTIONSで明示的にパーティション化を指定する必要があります(例: PARTITION BY HASH(COL1) PARTITIONS 4)。

    まれに、OCIモードでは、Hadoopでタスクの再開が試行されるためにターゲット表でレコードが重複することがあります。

  • DP_COPY出力モード: OLHによって複数のDataPumpエクスポート・ファイルが作成されます。これらのファイルは"Hadoop fs -copyToLocal"コマンドによって、EXT_TAB_DIR_LOCATIONで指定されたローカル・パスに転送されます。このパスはOracle Databaseエンジンでアクセス可能である必要がある点に注意してください。コピー・ジョブの完了後。

REJECT_LIMIT

OLH/EXTTABのエラーの最大数。

ファイルに記録されるエラーの最大許容数を入力します。たとえば、UNLIMITEDを指定すると、すべてのエラーを除外します。整数です(10と指定すると10件の拒否が許容されます)。

この値は、OLHジョブ定義に加えて外部表定義でも使用されます。

EXT_TAB_DIR_LOCATION

外部表データ・ファイルのディレクトリ。

外部表のファイル・システム・パスです。

注意:

  • OLH_OUTPUT_MODE = DP_*またはOSCHの場合にのみ適用されます。

  • OLH_OUTPUT_MODE = DP_*の場合: このパスには、ODIエージェントとターゲット・データベース・エンジンの両方からアクセスできる必要があります。

  • OLH_OUTPUT_MODE = DP_*の場合: 外部ディレクトリ・オブジェクトの名前はI$表の名前です。

  • OLH_OUTPUT_MODE = DP_COPYの場合: ODIエージェントはhadoop-fsコマンドを使用して、dpファイルをこのディレクトリにコピーします。

  • OLH_OUTPUT_MODE = DP_*|OSCHの場合: このパスには外部表のlog/bad/dscファイルが含まれます。

  • ODIエージェントは、クリーンアップ時にこのディレクトリからすべてのファイルを削除してから、OLH/OSCHを起動します。

WORK_TABLE_OPTIONS

フロー表作成用のオプション。

このオプションは作成時に統合表の属性を指定するもので、パフォーマンス向上のために使用します。

このオプションは、デフォルトでNOLOGGINGに設定されます。

このオプションは空のままにしておくこともできます。

OVERRIDE_INPUTFORMAT

InputFormatのクラス名。

デフォルトでは、InputFormatクラスはソースのデータ・ストア/テクノロジ(DelimitedTextInputFormatまたはHiveToAvroInputFormat)から導出されます。このオプションを使用すると、ユーザーはカスタムInputFormatのクラス名を指定できます。

デフォルト: <empty>。

OLH_OUTPUT_MODE=OSCHと一緒に使用することはできません。

たとえば、Webログ・ファイルのようなカスタム・ファイル形式を読み取る場合、値oracle.hadoop.loader.lib.input.RegexInputFormatを割り当てることによりOLH RegexInputFormatを使用できます。

正規表現の指定方法の詳細は、KMオプションの「EXTRA_OLH_CONF_PROPERTIES」を参照してください。

EXTRA_OLH_CONF_PROPERTIES

オプションの追加OLHプロパティ。

OLHへの追加パラメータの追加を許可します。次に、デフォルトのOLH日付形式の変更例を示します。

<property>

<name>oracle.hadoop.loader.defaultDateFormat</name>

<value>yyyy-MM-dd HH:mm:ss</value>

</property>

特に、カスタムInputFormatを使用する場合(詳細はKMオプション「OVERRIDE_INPUTFORMAT」を参照)、InputFormatに追加の構成パラメータが必要となることがあります。これらは、OLH構成ファイル内に提供されています。このKMオプションを使用すると、追加のプロパティをOLH構成ファイルに追加できます。デフォルト: <empty>

OLH_OUTPUT_MODE=OSCHと一緒に使用することはできません

例(Apache Weblogファイル形式のロード):

カスタム・ファイル形式の読取りにOLH RegexInputFormatを使用する場合、このKMオプションにより正規表現およびその他の解析詳細を指定します。

<property>

<name>oracle.hadoop.loader.input.regexPattern</name>

<value>([^ ]*) ([^ ]*) ([^ ]*) (-|\[[^\]]*\]) ([^ \]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*) (\".*?\") (\".*?\") (\".*?\")</value>

<description>RegEx for Apache WebLog format</description>

</property>"

MAPRED_OUTPUT_BASE_DIR

MapReduce出力ディレクトリ。

このオプションは、SQOOPにより一時ファイル用のサブディレクトリが作成される先のhdfsディレクトリを指定します。作業表に似た名前のサブディレクトリが、一時データを格納するためにここに作成されます。

TEMP_DIR

一時ファイルのローカル・ディレクトリ。

一時ファイルの格納に使用するディレクトリ(squoopスクリプト、stdout、stderrリダイレクトなど)です。

システムのデフォルトの一時ディレクトリ(<?=System.getProperty(java.io.tmp")?>)"を使用する場合は空白のままにしておきます。

LKM Hive to Oracle OLH-OSCH

このKMは、Oracle Loader for Hadoop (OLH)やOracle SQL Connector for Hadoop (OSCH)を使用して、Hive問合せからOracleステージング表にデータを統合します。

次の表は、LKM Hive to Oracle OLH-OSCHのオプションについて説明します。

表A-18 LKM Hive to Oracle OLH-OSCH

オプション 説明

USE_HIVE_STAGING_TABLE

中間Hiveステージング表を使用するかどうか。

デフォルトでは、Hiveソース・データはOLHによる抽出の前にHiveステージング表にマテリアライズされます。USE_HIVE_STAGING_TABLEをfalseに設定した場合、OLHは直接Hiveソース・データにアクセスします。

USE_HIVE_STAGING_TABLE=0に設定できるのは、次のすべての条件に該当する場合のみです。

  • 単一ソース表のみ

  • 変換、フィルタ、結合なし

  • データセットなし

  • USE_HIVE_STAGING_TABLE=0に設定すると、余分なデータ転送ステップがなくなるために、パフォーマンスが向上します。

DELETE_TEMPORARY_OBJECTS

マッピングの最後に一時オブジェクトを削除します。

このオプションは、統合後に一時オブジェクト(表、ファイルおよびスクリプト)を維持する場合にNOに設定します。デバッグに便利です。

OLH_OUTPUT_MODE

データをOracleにどのように転送するか。

このオプションは、HadoopデータをOracleにロードする方法を指定します。指定できる値は、JDBC、OCI、DP_COPY|DP_OSCHおよびOSCHです。

  • JDBC出力モード: 複数のダイレクト・インサートJDBC接続を使用してデータが挿入されます。

    まれに、JDBCモードでは、Hadoopでタスクの再開が試行されるためにターゲット表でレコードが重複することがあります。

  • OCI出力モード: ダイレクト・パス・モードで複数のダイレクト・インサートOCI接続を使用してデータが挿入されます。

    ダイレクト・ロードの場合(C$表なし)、ターゲット表はパーティション化されている必要があります。標準ロードの場合は、FLOW_TABLE_OPTIONSで明示的にパーティション化を指定する必要があります(例: PARTITION BY HASH(COL1) PARTITIONS 4)。

    まれに、OCIモードでは、Hadoopでタスクの再開が試行されるためにターゲット表でレコードが重複することがあります。

  • DP_COPY出力モード: OLHによって複数のDataPumpエクスポート・ファイルが作成されます。これらのファイルは"Hadoop fs -copyToLocal"コマンドによって、EXT_TAB_DIR_LOCATIONで指定されたローカル・パスに転送されます。このパスに、Oracle Databaseエンジンがアクセスできる必要があります。コピー・ジョブの完了後。

REJECT_LIMIT

OLH/EXTTABのエラーの最大数。

ファイルに記録されるエラーの最大許容数を入力します。たとえば、UNLIMITEDを指定すると、すべてのエラーを除外します。整数です(10と指定すると10件の拒否が許容されます)。

この値は、OLHジョブ定義に加えて外部表定義でも使用されます。

EXT_TAB_DIR_LOCATION

外部表データ・ファイルのディレクトリ。

外部表のファイル・システム・パスです。

注意:

  • OLH_OUTPUT_MODE = DP_*またはOSCHの場合にのみ適用されます。

  • OLH_OUTPUT_MODE = DP_*の場合: このパスには、ODIエージェントとターゲット・データベース・エンジンの両方からアクセスできる必要があります。

  • OLH_OUTPUT_MODE = DP_*の場合: 外部ディレクトリ・オブジェクトの名前はI$表の名前です。

  • OLH_OUTPUT_MODE = DP_COPYの場合: ODIエージェントはhadoop-fsコマンドを使用して、dpファイルをこのディレクトリにコピーします。

  • OLH_OUTPUT_MODE = DP_*|OSCHの場合: このパスには外部表のlog/bad/dscファイルが含まれます。

  • ODIエージェントは、クリーンアップ時にこのディレクトリからすべてのファイルを削除してから、OLH/OSCHを起動します。

WORK_TABLE_OPTIONS

フロー表作成用のオプション。

このオプションは作成時に統合表の属性を指定するもので、パフォーマンス向上のために使用します。

このオプションは、デフォルトでNOLOGGINGに設定されます。

このオプションは空のままにしておくこともできます。

OVERRIDE_INPUTFORMAT

InputFormatのクラス名。

デフォルトでは、InputFormatクラスはソースのデータ・ストア/テクノロジ(DelimitedTextInputFormatまたはHiveToAvroInputFormat)から導出されます。このオプションを使用すると、ユーザーはカスタムInputFormatのクラス名を指定できます。

デフォルト: <empty>。

OLH_OUTPUT_MODE=OSCHと一緒に使用することはできません。

たとえば、Webログ・ファイルのようなカスタム・ファイル形式を読み取る場合、値oracle.hadoop.loader.lib.input.RegexInputFormatを割り当てることによりOLH RegexInputFormatを使用できます。

正規表現の指定方法の詳細は、KMオプションの「EXTRA_OLH_CONF_PROPERTIES」を参照してください。

EXTRA_OLH_CONF_PROPERTIES

オプションの追加OLHプロパティ。

OLHへの追加パラメータの追加を許可します。次に、デフォルトのOLH日付形式の変更例を示します。

<property>

<name>oracle.hadoop.loader.defaultDateFormat</name>

<value>yyyy-MM-dd HH:mm:ss</value>

</property>

特に、カスタムInputFormatを使用する場合(詳細はKMオプション「OVERRIDE_INPUTFORMAT」を参照)、InputFormatに追加の構成パラメータが必要となることがあります。これらは、OLH構成ファイル内に提供されています。このKMオプションを使用すると、追加のプロパティをOLH構成ファイルに追加できます。デフォルト: <empty>

OLH_OUTPUT_MODE=OSCHと一緒に使用することはできません

例(Apache Weblogファイル形式のロード):

カスタム・ファイル形式の読取りにOLH RegexInputFormatを使用する場合、このKMオプションにより正規表現およびその他の解析詳細を指定します。

<property>

<name>oracle.hadoop.loader.input.regexPattern</name>

<value>([^ ]*) ([^ ]*) ([^ ]*) (-|\[[^\]]*\]) ([^ \]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*) (\".*?\") (\".*?\") (\".*?\")</value>

<description>RegEx for Apache WebLog format</description>

</property>"

MAPRED_OUTPUT_BASE_DIR

MapReduce出力ディレクトリ。

このオプションは、SQOOPにより一時ファイル用のサブディレクトリが作成される先のhdfsディレクトリを指定します。作業表に似た名前のサブディレクトリが、一時データを格納するためにここに作成されます。

TEMP_DIR

一時ファイルのローカル・ディレクトリ。

一時ファイルの格納に使用するディレクトリ(squoopスクリプト、stdout、stderrリダイレクトなど)です。

システムのデフォルトの一時ディレクトリ(<?=System.getProperty(java.io.tmp")?>)"を使用する場合は空白のままにしておきます。

LKM Hive to Oracle OLH-OSCH Direct

このKMは、Oracle Loader for Hadoop (OLH)やOracle SQL Connector for Hadoop (OSCH)を使用して、Hive問合せからOracleターゲットにデータを統合します。

これはダイレクト・ロードLKMであり、IKMなしで使用する必要があります。

次の表は、LKM Hive to Oracle OLH-OSCHのオプションについて説明します。

表A-19 LKM Hive to Oracle OLH-OSCH Direct

オプション 説明

CREATE_TARG_TABLE

ターゲット表を作成します。

このオプションは、ターゲット表を作成する場合に選択します。

TRUNCATE

すべてのターゲット表データを置き換えます。

このオプションは、ターゲット表の内容を新しいデータで置き換える場合にtrueに設定します。

DELETE_ALL

すべての行を削除します。

このオプションは、ターゲット表の内容を新しいデータで置き換える場合にtrueに設定します。

USE_HIVE_STAGING_TABLE

中間Hiveステージング表を使用するかどうか。

デフォルトでは、Hiveソース・データはOLHによる抽出の前にHiveステージング表にマテリアライズされます。USE_HIVE_STAGING_TABLEをfalseに設定した場合、OLHは直接Hiveソース・データにアクセスします。

USE_HIVE_STAGING_TABLE=0に設定できるのは、次のすべての条件に該当する場合のみです。

  • 単一ソース表のみ

  • 変換、フィルタ、結合なし

  • データセットなし

  • USE_HIVE_STAGING_TABLE=0に設定すると、余分なデータ転送ステップがなくなるために、パフォーマンスが向上します。

DELETE_TEMPORARY_OBJECTS

マッピングの最後に一時オブジェクトを削除します。

このオプションは、統合後に一時オブジェクト(表、ファイルおよびスクリプト)を維持する場合にNOに設定します。デバッグに便利です。

OLH_OUTPUT_MODE

データをOracleにどのように転送するか。

このオプションは、HadoopデータをOracleにロードする方法を指定します。指定できる値は、JDBC、OCI、DP_COPY|DP_OSCHおよびOSCHです。

  • JDBC出力モード: 複数のダイレクト・インサートJDBC接続を使用してデータが挿入されます。

    まれに、JDBCモードでは、Hadoopでタスクの再開が試行されるためにターゲット表でレコードが重複することがあります。

  • OCI出力モード: ダイレクト・パス・モードで複数のダイレクト・インサートOCI接続を使用してデータが挿入されます。

    ダイレクト・ロードの場合(C$表なし)、ターゲット表はパーティション化されている必要があります。標準ロードの場合は、FLOW_TABLE_OPTIONSで明示的にパーティション化を指定する必要があります(例: PARTITION BY HASH(COL1) PARTITIONS 4)。

    まれに、OCIモードでは、Hadoopでタスクの再開が試行されるためにターゲット表でレコードが重複することがあります。

  • DP_COPY出力モード: OLHによって複数のDataPumpエクスポート・ファイルが作成されます。これらのファイルは"Hadoop fs -copyToLocal"コマンドによって、EXT_TAB_DIR_LOCATIONで指定されたローカル・パスに転送されます。このパスはOracle Databaseエンジンでアクセス可能である必要がある点に注意してください。コピー・ジョブの完了後。

REJECT_LIMIT

OLH/EXTTABのエラーの最大数。

ファイルに記録されるエラーの最大許容数を入力します。たとえば、UNLIMITEDを指定すると、すべてのエラーを除外します。整数です(10と指定すると10件の拒否が許容されます)。

この値は、OLHジョブ定義に加えて外部表定義でも使用されます。

EXT_TAB_DIR_LOCATION

外部表データ・ファイルのディレクトリ。

外部表のファイル・システム・パスです。

注意:

  • OLH_OUTPUT_MODE = DP_*またはOSCHの場合にのみ適用されます。

  • OLH_OUTPUT_MODE = DP_*の場合: このパスには、ODIエージェントとターゲット・データベース・エンジンの両方からアクセスできる必要があります。

  • OLH_OUTPUT_MODE = DP_*の場合: 外部ディレクトリ・オブジェクトの名前はI$表の名前です。

  • OLH_OUTPUT_MODE = DP_COPYの場合: ODIエージェントはhadoop-fsコマンドを使用して、dpファイルをこのディレクトリにコピーします。

  • OLH_OUTPUT_MODE = DP_*|OSCHの場合: このパスには外部表のlog/bad/dscファイルが含まれます。

  • ODIエージェントは、クリーンアップ時にこのディレクトリからすべてのファイルを削除してから、OLH/OSCHを起動します。

WORK_TABLE_OPTIONS

フロー表作成用のオプション。

このオプションは作成時に統合表の属性を指定するもので、パフォーマンス向上のために使用します。

このオプションは、デフォルトでNOLOGGINGに設定されます。

このオプションは空のままにしておくこともできます。

OVERRIDE_INPUTFORMAT

InputFormatのクラス名。

デフォルトでは、InputFormatクラスはソースのデータ・ストア/テクノロジ(DelimitedTextInputFormatまたはHiveToAvroInputFormat)から導出されます。このオプションを使用すると、ユーザーはカスタムInputFormatのクラス名を指定できます。

デフォルト: <empty>。

OLH_OUTPUT_MODE=OSCHと一緒に使用することはできません。

たとえば、Webログ・ファイルのようなカスタム・ファイル形式を読み取る場合、値oracle.hadoop.loader.lib.input.RegexInputFormatを割り当てることによりOLH RegexInputFormatを使用できます。

正規表現の指定方法の詳細は、KMオプションの「EXTRA_OLH_CONF_PROPERTIES」を参照してください。

EXTRA_OLH_CONF_PROPERTIES

オプションの追加OLHプロパティ。

OLHへの追加パラメータの追加を許可します。次に、デフォルトのOLH日付形式の変更例を示します。

<property>

<name>oracle.hadoop.loader.defaultDateFormat</name>

<value>yyyy-MM-dd HH:mm:ss</value>

</property>

特に、カスタムInputFormatを使用する場合(詳細はKMオプション「OVERRIDE_INPUTFORMAT」を参照)、InputFormatに追加の構成パラメータが必要となることがあります。これらは、OLH構成ファイル内に提供されています。このKMオプションを使用すると、追加のプロパティをOLH構成ファイルに追加できます。デフォルト: <empty>

OLH_OUTPUT_MODE=OSCHと一緒に使用することはできません

例(Apache Weblogファイル形式のロード):

カスタム・ファイル形式の読取りにOLH RegexInputFormatを使用する場合、このKMオプションにより正規表現およびその他の解析詳細を指定します。

<property>

<name>oracle.hadoop.loader.input.regexPattern</name>

<value>([^ ]*) ([^ ]*) ([^ ]*) (-|\[[^\]]*\]) ([^ \]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*) (\".*?\") (\".*?\") (\".*?\")</value>

<description>RegEx for Apache WebLog format</description>

</property>"

MAPRED_OUTPUT_BASE_DIR

MapReduce出力ディレクトリ。

このオプションは、SQOOPにより一時ファイル用のサブディレクトリが作成される先のhdfsディレクトリを指定します。作業表に似た名前のサブディレクトリが、一時データを格納するためにここに作成されます。

TEMP_DIR

一時ファイルのローカル・ディレクトリ。

一時ファイルの格納に使用するディレクトリ(squoopスクリプト、stdout、stderrリダイレクトなど)です。

システムのデフォルトの一時ディレクトリ(<?=System.getProperty(java.io.tmp")?>)"を使用する場合は空白のままにしておきます。

RKM Hive

RKM Hiveでは、次のメタデータ要素がリバースされます。

  • データストアとしてのHive表およびビュー。

    「マスク」フィールドでリバース・マスクを指定し、リバースする表とビューを選択します。「リバース・エンジニアリング」タブの「マスク」フィールドで、リバースエンジニアリングされるオブジェクトが名前に基づいてフィルタ処理されます。「マスク」フィールドは空にできず、少なくともパーセント記号(%)を含める必要があります。

  • 属性としてのHive列およびそのデータ型。

  • バケット、パーティション化、クラスタおよびソート列に関する情報は、データ・ストアの各フレックス・フィールドまたは列メタデータで設定されます。

RKM HBase

RKM HBaseでは、次のメタデータ要素がリバースされます。

  • データストアとしてのHBase表。

    「マスク」フィールドでリバース・マスクを指定し、リバースする表を選択します。「リバース・エンジニアリング」タブの「マスク」フィールドで、リバースエンジニアリングされるオブジェクトが名前に基づいてフィルタ処理されます。「マスク」フィールドは空にできず、少なくともパーセント記号(%)を含める必要があります。

  • 属性としてのHBase列およびそのデータ型。

  • 属性としてのHBase一意行キー(key)。

注意:

このRKMではロギングにoracle.odi.kmロガーを使用します。次に示すように、ODI-logging-config.xmloracle.odi.kmロガーのログ・レベルをTRACE:16に変更することによりロギングを有効化できます。

<logger name="oracle.odi.km" level="TRACE:16" useParentHandlers="true"/>
<logger name="oracle.odi.studio.message.logger.proxy" level="TRACE:16" useParentHandlers="false"/>

ODIのロギング構成の詳細は、『Oracle Data Integratorの管理』ODIコンポーネントのランタイム・ロギングに関する項を参照してください。

次の表に、RKM HBaseのオプションを示します。

表A-20 RKM HBaseのオプション

オプション 説明

SCAN_MAX_ROWS

表のリバース中にスキャンされる行の最大数を指定します。デフォルト値は10000です。

SCAN_START_ROW

スキャンを開始する行のキーを指定します。デフォルトでは、スキャンは1行目から開始されます。行キーは、org.apache.hadoop.hbase.util.Bytesのインスタンスを返すJava式として指定されます。例: Bytes.toBytes(?EMP000001?)

SCAN_STOP_ROW

スキャンを終了する行のキーを指定します。デフォルトでは、スキャンは表の最後の行まで、またはSCAN_MAX_ROWSに達するまで実行されます。行キーは、org.apache.hadoop.hbase.util.Bytesのインスタンスを返すJava式として指定されます。例: Bytes.toBytes(?EMP000999?)

SCAN_START_ROWが指定されている場合にのみ適用されます。

SCAN_ONLY_FAMILY

スキャンを、名前がこのパターンと一致する列ファミリに制限します。SQLライクなワイルドカードであるパーセント(%)およびアンダースコア(_)を使用できます。デフォルトでは、すべての列ファミリがスキャンされます。

IKM File to Hive (非推奨)

注意: このKMは非推奨であり、下位互換性のみを目的として使用されます。

IKM File to Hive (Load Data)では、次のものがサポートされます。

  • 1つ以上の入力ファイル。複数のソース・ファイルをロードするには、ファイル・データ・ストアのリソース名にワイルドカード文字としてアスタリスクまたは疑問符を入力します(例: webshop_*.log)。

  • ファイル形式:

    • 固定長

    • 区切り

    • カスタマイズされた形式

  • ロード・オプション:

    • 即時または遅延ロード

    • 上書きまたは追加

    • Hive外部表

次の表は、IKM File to Hive (Load Data)のオプションについて説明します。詳細は、ナレッジ・モジュールを参照してください。

表A-21 IKM File to Hiveのオプション

オプション 説明

CREATE_TARG_TABLE

ターゲット表を作成する場合は、このオプションを選択します。USE_STAGING_TABLEfalseに設定されている場合は、ターゲット表定義(特に行形式とファイル形式の詳細)が正しい場合にのみデータが正しく読み取られます。

TRUNCATE

ターゲット表/パーティションの内容を新しいデータで置き換える場合は、このオプションをtrueに設定します。そうしない場合、新しいデータはターゲット表に追加されます。TRUNCATEおよびUSE_STAGING_TABLEfalseに設定した場合、すべてのソース・ファイル名が一意である必要があり、すでにターゲット表にロードされているデータ・ファイルと競合することは許されません。

FILE_IS_LOCAL

ソース・ファイルをローカル(現在のHadoopクラスタの外側)とみなすかどうかを定義します。このオプションをtrueに設定した場合、データ・ファイルは最初にHadoopクラスタにコピーされます。Hiveサーバーがローカルまたは共有のファイル・システムを介してこのファイルにアクセスできる必要があります。このオプションをfalseに設定した場合、データ・ファイルはHadoopクラスタに移動され、ソースの場所では使用できなくなります。ソース・ファイルがすでにHDFSに存在する場合、このオプションをfalseに設定すると、ファイル名の変更が行われるのみなので、操作は非常に高速で行われます。

このオプションは、EXTERNAL_TABLEfalseに設定されている場合にのみ適用されます。

EXTERNAL_TABLE

ターゲット/ステージング表を外部で管理する表として宣言するかどうかを定義します。外部表でない場合、Hiveがすべてのデータ・ファイルを管理します。つまり、すべてのデータ・ファイルが<hive.metastore.warehouse.dir>/<table_name>に移動されます。外部表の場合、Hiveはいずれのファイルの移動も削除も行いません。ODIスキーマで指定されている場所からデータがロードされます。

このオプションをtrueに設定した場合、次のようになります。

  • 物理データ・スキーマで指定されているディレクトリ内のすべてのファイルがロードされます。このため、ソース・データ・ストアのリソース名から得られるファイル名またはワイルドカード情報は無視されます。

  • ディレクトリ構造とファイル名は、複数の表のHivesディレクトリ編成(パーティション化やクラスタ化など)に従っている必要があります。

  • ディレクトリおよびそのファイルはHDFSに存在する必要があります。

  • Hive LOAD-DATA文は発行されないため、(ターゲット側の式を使用して)ファイルを特定のパーティションにロードすることはできません。

USE_STAGING_TABLE

中間ステージング表を作成するかどうかを定義します。

次の場合は、Hiveステージング表が必要です。

  • ターゲット表がパーティション化されているが、データが複数のパーティションに分散されている

  • ターゲット表がクラスタ化されている

  • ターゲット表(パーティション)がソートされているが、入力ファイルはソートされていない

  • ターゲット表がすでに定義されているが、ターゲット表定義がKMで必要な定義と一致していない

  • ターゲット列順序がソース・ファイル列順序と一致していない

  • マップされていないソース列が存在する

  • マップされていない非パーティション・ターゲット列が存在する

  • ソースが固定長ファイルであり、ターゲットに文字列以外の列が存在する

前述のいずれにも該当しない場合は、パフォーマンスを向上させるためにこのオプションをオフにできます。

DELETE_TEMPORARY_OBJECTS

統合後に表、ファイル、スクリプトなどの一時オブジェクトを削除します。デバッグなどに使用できるよう一時ファイルを保持する場合は、このオプションをNoに設定します。

DEFER_TARGET_LOAD

ステージング表として宣言されているファイルを今すぐターゲット表にロードするか、後で実行時にロードするかを定義します。指定できる値は、STARTNEXTENDまたは<empty>です。

このオプションは、USE_STAGE_TABLEtrueに設定されている場合にのみ適用されます。

このオプションの代表的な使用例は、複数のファイルが存在し、それぞれのファイルでデータの再配布/ソートが必要であり、インタフェースを何度もコールしてファイルを収集する場合です。たとえば、1つのパッケージでインタフェースを使用して別々の場所から(多数の小さな)ファイルを取得し、Oracle Data Integrator変数に保存されている場所をターゲット・パーティション列で使用するとします。この場合、最初のインタフェース実行でDEFER_TARGET_LOADSTARTに設定され、その次のインタフェース実行でDEFER_TARGET_LOADNEXTに設定され、最後のインタフェースでENDに設定されます。DEFER_ TARGET _LOADSTART/NEXTに設定されたインタフェースはデータ・ファイルを(ターゲット表にはまだロードせずに) HDFSにロードするだけであり、クラスタへのファイル・アップロードを高速で行うためにこれらのインタフェースをパラレルで実行できます。

OVERRIDE_ROW_FORMAT

ステージング表(USE_STAGE_TABLEtrueに設定されている場合)またはターゲット表(USE_STAGE_TABLEfalseに設定されている場合)のHive行形式定義全体のオーバーライドを許可します。これには、行形式定義に使用されるテキストも含まれます。Apache Combined WebLogファイルの読取り例を次に示します。

ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) (-|\\[[^\\]]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*) (\".*?\") (\".*?\") (\".*?\")", "output.format.string" = "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s %10$s" ) STORED AS TEXTFILE

ソース・データ・ストアの列のリストは、正規表現の入力グループのリストと一致している(列の数が同じであり、データ型が適切である)必要があります。USE_STAGE_TABLEfalseに設定されている場合、ターゲット列の数は、SerDeにより返される列の数(前述の例では正規表現のグループの数)と一致している必要があります。ソース列の数は無視されます(少なくとも1列をターゲットにマップする必要があります)。すべてのソース・データは列順序に従ってターゲット表構造にマップされ、SerDeの最初の列は最初のターゲット列にマップされ、SerDeの2番目の列は2番目のターゲット列にマップされます(以降も同様です)。USE_STAGE_TABLEtrueに設定されている場合、ソース・データ・ストアの列数はSerDeとして返されるものと同じ列数にする必要があります。マップされた列のデータのみが転送されます。

STOP_ON_FILE_NOT_FOUND

入力ファイルが見つからない場合にKMを停止するかどうかを定義します。

HIVE_COMPATIBILE

Hiveバージョンの互換性を指定します。このオプションで指定できる値は、0.7および0.8です。

  • 0.7: 追加動作をシミュレートします。Hive 0.7 (CDH3)の場合はこれを使用する必要があります。

  • 0.8: Hiveの追加機能を使用します(このほうがパフォーマンスがよくなります)。Hive 0.8 (CDH4)以上が必要です。

LKM HBase to Hive (HBase-SerDe) [非推奨]

注意: このKMは非推奨であり、下位互換性のみを目的として使用されます。

LKM HBase to Hive (HBase-SerDe)では、次のものがサポートされます。

  • 単一ソースのHBase表。

次の表は、LKM HBase to Hive (HBase-SerDe)のオプションについて説明します。詳細は、ナレッジ・モジュールを参照してください。

表A-22 LKM HBase to Hive (HBase-SerDe)のオプション

オプション 説明

DELETE_TEMPORARY_OBJECTS

データ統合後に表、ファイル、スクリプトなどの一時オブジェクトを削除します。デバッグに役立つことがある一時オブジェクトを保持する場合は、このオプションをNOに設定します。

IKM Hive to HBase Incremental Update (HBase-SerDe) [非推奨]

注意: このKMは非推奨であり、下位互換性のみを目的として使用されます。

IKM Hive to HBase Incremental Update (HBase-SerDe)では、次のものがサポートされます。

  • Hiveのフィルタ、結合、データセット、変換および集計

  • IKM Hive Transformにより生成されたインライン・ビュー

  • IKM Hive Control Appendにより生成されたインライン・ビュー

次の表は、IKM Hive to HBase Incremental Update (HBase-SerDe)のオプションについて説明します。詳細は、ナレッジ・モジュールを参照してください。

表A-23 IKM Hive to HBase Incremental Update (HBase-SerDe)のオプション

オプション 説明

CREATE_TARG_TABLE

HBaseターゲット表を作成します。

TRUNCATE

ターゲット表の内容を新しいデータで置換します。このオプションをfalseに設定した場合、新しいデータはターゲット表に追加されます。

DELETE_TEMPORARY_OBJECTS

データ統合後に表、ファイル、スクリプトなどの一時オブジェクトを削除します。デバッグに役立つことがある一時オブジェクトを保持する場合は、このオプションをNOに設定します。

HBASE_WAL

HBaseがデータ損失を回避するために使用するWrite-Ahead-Log (WAL)を有効または無効にします。パフォーマンスを向上させるためには、WALを無効にできます。

IKM SQL to Hive-HBase-File (SQOOP) [非推奨]

注意: このKMは非推奨であり、下位互換性のみを目的として使用されます。

IKM SQL to Hive-HBase-File (SQOOP)では、次のものがサポートされます。

  • ステージングでのマッピング

  • ステージングでの結合

  • ステージングでのフィルタ式

  • データセット

  • ルックアップ

  • 導出表

次の表は、IKM SQL to Hive-HBase-File (SQOOP)のオプションについて説明します。詳細は、ナレッジ・モジュールを参照してください。

表A-24 IKM SQL to Hive-HBase-File (SQOOP)のオプション

オプション 説明

CREATE_TARG_TABLE

ターゲット表を作成します。このオプションは、ターゲットがHiveまたはHBaseである場合にのみ適用されます。

TRUNCATE

既存のターゲット表の内容を新しいデータで置換します。HiveおよびHBaseターゲットの場合、ターゲット・データが切り捨てられます。ファイル・ターゲットの場合、ターゲット・ディレクトリが削除されます。ファイル・ターゲットの場合は、このオプションをtrueに設定する必要があります。

SQOOP_PARALLELISM

並列度を指定します。より正確には、抽出に使用されるマッパー・プロセスの数を指定します。

SQOOP_PARALLELISMオプションを1より大きい値に設定した場合、SPLIT_BYオプションを定義する必要があります。

SPLIT_BY

パラレル抽出のためにソース・データをn個のチャンクに分割する際に使用されるターゲット列を指定します(nはSQOOP_PARALLELISM)。データ・チャンクのサイズを均等にするためには、均一に配布された値が分割列に含まれている必要があります。データ・チャンク境界を計算するためには、SELECT MIN(EMP.EMPNO), MAX(EMP.EMPNO) from EMPLOYEE EMPのような問合せが使用されます。余分な全表スキャンが行われないように、分割列に索引を付ける必要があります。

BOUNDARY_QUERY

パラレル抽出のためにソース・データをチャンクに分割する際に、分割列の最小値と最大値が取得されます(KMオプションSPLIT-BY)。状況によっては、これが最善の境界値ではなかったり、境界値を取得する最適な方法ではないこともあります。このような場合は、このKMオプションを、1つの行と2つの列(分割列に使用される最小値と最大値)を返すSQL問合せに設定できます。この範囲は、パラレル実行のためにSQOOP_PARALLELISMチャンクに分割されます。ハードコードされたOracleソース範囲の例:

SELECT 1000, 2000 FROM DUAL

コンテキストの独立性を保つため、通常の表名はodiRef.getObjectNameコールを介して挿入する必要があります。次に例を示します。

SELECT MIN(EMPNO), MAX(EMPNO) FROM <%=odiRef.getObjectName("EMP")%>

TEMP_DIR

一時ファイルの格納に使用するディレクトリ(sqoopスクリプト、stdout、stderrリダイレクトなど)を指定します。このオプションを空白のままにした場合、次に示すシステムのデフォルトの一時ディレクトリが使用されます。

<?=System.getProperty("java.io.tmp")?>

MAPRED_OUTPUT_BASE_DIR

SQOOPにより一時ファイル用のサブディレクトリが作成される先のhdfsディレクトリを指定します。作業表に似た名前のサブディレクトリが、一時データを格納するためにここに作成されます。

DELETE_TEMPORARY_OBJECTS

データ統合後に表、ファイル、スクリプトなどの一時オブジェクトを削除します。デバッグに役立つことがある一時オブジェクトを保持する場合は、このオプションをNOに設定します。

USE_HIVE_STAGING_TABLE

データをHiveターゲット表にロードする前にHive作業表にロードします。このオプションをfalseに設定した場合、データはターゲット表に直接ロードされます。

このオプションをfalseに設定できるのは、次のすべての条件に該当する場合のみです。

  • すべてのターゲット列がマップされている場合

  • 既存のHive表で標準のHive行セパレータ(\n)および列デリミタ(\01)が使用されている場合

このオプションをfalseに設定すると、余分なデータ転送ステップがなくなるために、パフォーマンスが向上します。

このオプションは、ターゲット・テクノロジがHiveである場合にのみ適用されます。

USE_GENERIC_JDBC_CONNECTOR

ターゲット・テクノロジ用のコネクタが使用できない場合に汎用JDBCコネクタを使用するかどうかを指定します。

SQOOPには、特定のテクノロジに対する固有のコネクタが用意されています。これらのコネクタによってSQL方言が処理され、パフォーマンスが最適化されます。各ターゲット・テクノロジ用のコネクタが存在する場合は、このコネクタを使用する必要があります。存在しない場合は、汎用JDBCコネクタを使用できます。

EXTRA_HADOOP_CONF_PROPERTIES

オプションの汎用Hadoopプロパティ。

EXTRA_SQOOP_CONF_PROPERTIES

オプションのSQOOPプロパティ。

EXTRA_SQOOP_CONNECTOR_CONF_PROPERTIES

オプションのSQOOPコネクタ・プロパティ。

IKM Hive Control Append (非推奨)

注意: このKMは非推奨であり、下位互換性のみを目的として使用されます。

このナレッジ・モジュールは、データを検証および制御し、切捨て/挿入(追加)モードでHiveターゲット表に統合します。無効なデータはエラー表に分離され、再利用できます。IKM Hive Control Appendでは、このナレッジ・モジュールまたはIKM Hive Transformを使用するインライン・ビュー・マッピングがサポートされています。

次の表は、IKM Hive Control Appendのオプションについて説明します。

表A-25 IKM Hive Control Appendのオプション

オプション 説明

FLOW_CONTROL

フロー制御をアクティブにします。

RECYCLE_ERRORS

以前の制御から拒否されたデータをリサイクルします。

STATIC_CONTROL

ターゲット・データの挿入または更新後にターゲット表を制御します。

CREATE_TARG_TABLE

ターゲット表を作成します。

TRUNCATE

ターゲット表の内容を新しいデータで置換します。このオプションをtrueに設定すると、パフォーマンスが向上します。

DELETE_TEMPORARY_OBJECTS

データ統合後に表、ファイル、スクリプトなどの一時オブジェクトを削除します。デバッグに役立つことがある一時オブジェクトを保持する場合は、このオプションをNOに設定します。

HIVE_COMPATIBILE

Hiveバージョンの互換性を指定します。このオプションで指定できる値は、0.7および0.8です。

  • 0.7: 追加動作をシミュレートします。Hive 0.7 (CDH3)の場合はこれを使用する必要があります。

  • 0.8: Hiveの追加機能を使用します(このほうがパフォーマンスがよくなります)。Hive 0.8 (CDH4)以上が必要です。

CKM Hive

このナレッジ・モジュールは、Hive表のデータ整合性をチェックします。Hiveデータ・ストアの制約の妥当性を検証し、無効なレコードをエラー表に転送します。CKM Hiveは、静的制御およびフロー制御に使用できます。格納されるデータに対するこれらの制約を定義する必要もあります。

次の表は、このチェック・ナレッジ・モジュールのオプションについて説明します。

表A-26 CKM Hiveのオプション

オプション 説明

DROP_ERROR_TABLE

実行前にエラー表を削除します。このオプションをYESに設定した場合、ターゲット表に対する制御が実行されるたびに、エラー表が削除されます。つまり、以前の制御操作中に拒否、特定および格納されたレコードはすべて失われます。それ以外の場合、以前の拒否は保持されます。エラー表の他に、<error table>_tmpという名前の表も削除されます。

HIVE_COMPATIBILE

Hiveバージョンの互換性を指定します。このオプションで指定できる値は、0.7および0.8です。

  • 0.7: 追加動作をシミュレートします。Hive 0.7 (CDH3)の場合はこれを使用する必要があります。

  • 0.8: Hiveの追加機能を使用します(このほうがパフォーマンスがよくなります)。Hive 0.8 (CDH4)以上が必要です。

IKM Hive Transform (非推奨)

注意: このKMは非推奨であり、下位互換性のみを目的として使用されます。

このナレッジ・モジュールは変換を実行します。シェル・スクリプトを使用してデータを変換してから、置換モードを使用してそれをHiveターゲット表に統合します。ナレッジ・モジュールはインライン・ビュー・マッピングをサポートしており、IKM Hive Control Appendのインライン・ビューとして使用できます。

変換スクリプトでは、ソース・データ・ストアで定義されている順序で入力列を読み取る必要があります。マップされたソース列のみが変換に送られます。変換スクリプトで、ターゲット・データストアで定義されている順に出力列を提供する必要があります。

次の表は、この統合ナレッジ・モジュールのオプションについて説明します。

表A-27 IKM Hive Transformのオプション

オプション 説明

CREATE_TARG_TABLE

ターゲット表を作成します。

DELETE_TEMPORARY_OBJECTS

データ統合後に表、ファイル、スクリプトなどの一時オブジェクトを削除します。デバッグに役立つことがある一時オブジェクトを保持する場合は、このオプションをNOに設定します。

TRANSFORM_SCRIPT_NAME

変換スクリプトのファイル名を定義します。この変換スクリプトを使用して、入力データが出力構造に変換されます。次のようなローカル・パスとHDFSパスの両方がサポートされています。

ローカル・スクリプトの場所: file:///tmp/odi/script1.pl

HDFSスクリプトの場所: hdfs://namenode:nnPort/tmp/odi/script1.pl

次の要件が満たされていることを確認してください。

  • パス/ファイルには、ODIエージェントとHiveサーバーの両方からアクセスできる必要があります。スクリプトを起動する結果のMRジョブを実行するのはHiveサーバーなので、Hiveサーバーに読取りアクセスが必要です。

  • TRANSFORM_SCRIPTが設定されている(ODIでマッピング実行時にスクリプト・ファイルが作成される)場合、HDFS Java APIを使用してスクリプト・ファイルを記述するのはODIエージェントなので、ODIエージェントでパス/ファイルが書込み可能になっている必要があります。

KMオプションTRANSFORM_SCRIPTが設定されている場合、次の記述を構成の際の参考にしてください。

  • HDFSスクリプトの場所の場合:

    作成されたスクリプト・ファイルはODIエージェント・ユーザーにより所有され、所有側ディレクトリのグループを受け取ります。詳細は、『Hadoop Hdfs Permissions Guide』を参照してください。HDFSスクリプトに対する前述の2つの要件を満たすための標準構成の場合は、HDFSスクリプト・ディレクトリのグループにODIエージェント・ユーザー(たとえば、oracle)とHiveサーバー・ユーザー(たとえば、hive)が含まれていることを確認してください。グループhadoopにoracleおよびhiveが含まれている場合、次に示すサンプル・コマンドでは、HDFSスクリプト・ディレクトリの所有権が調整されます。

    logon as hdfs user hdfs dfs -chown oracle:hadoop /tmp/odi/myscriptdir

  • ローカル・スクリプトの場所の場合:

    作成されたスクリプト・ファイルはODIエージェント・ユーザーにより所有され、ODIエージェント・ユーザーのデフォルト・グループを受け取ります(スクリプト・ディレクトリに対してSGIDが設定されていない場合)。スティッキー・グループ・ビットが設定されている場合、ファイルはかわりにスクリプト・ディレクトリのグループにより所有されます。ローカル・スクリプトに対する前述の2つの要件を満たすための標準構成は、SGIDを使用するHDFS構成と同様です。

    chown oracle:hadoop /tmp/odi/myscriptdir chmod g+s /tmp/odi/myscriptdir

TRANSFORM_SCRIPT

変換スクリプトの内容を定義します。この変換スクリプトを使用して、入力データが出力構造に変換されます。空白のままにした場合、TRANSFORM_SCRIPT_NAMEで指定されたファイルがすでに存在している必要があります。空白にしない場合、スクリプト・ファイルが作成されます。

スクリプトの例(1対1の変換): #! /usr/bin/csh -f cat

マップされたすべてのソース列は、stdinから、このスクリプトにタブ区切りデータとしてスプールされます。続いて、このunixスクリプトによってデータが変換され、データがstdoutにタブ区切りデータとして書き出されます。このスクリプトでは、ターゲット列と同じ数の出力列を提供する必要があります。

TRANSFORM_SCRIPT_MODE

8進表記で先頭にゼロが付く、スクリプト・ファイルに対するUnix/HDFSファイル権限。たとえば、所有者およびグループに対する完全な権限は、0770です。

警告: 0777のような広範囲の権限を使用すると、セキュリティ・リスクが発生します。

ディレクトリ権限の詳細は、TRANSFORM_SCRIPT_NAMEのKMオプションの説明も参照してください。

PRE_TRANSFORM_DISTRIBUTE

ナレッジ・モジュールによる変換スクリプト適用前のデータの分散を可能にするソース列名のカンマ区切りリスト(オプション)を提供します。

PRE_TRANSFORM_SORT

ナレッジ・モジュールによる変換スクリプト適用前のデータのソートを可能にするソース列名のカンマ区切りリスト(オプション)を提供します。

POST_TRANSFORM_DISTRIBUTE

ナレッジ・モジュールによる変換スクリプト適用後のデータの分散を可能にするターゲット列名のカンマ区切りリスト(オプション)を提供します。

POST_TRANSFORM_SORT

ナレッジ・モジュールによる変換スクリプト適用後のデータのソートを可能にするターゲット列名のカンマ区切りリスト(オプション)を提供します。

IKM File-Hive to Oracle (OLH-OSCH) [非推奨]

注意: このKMは非推奨であり、下位互換性のみを目的として使用されます。

IKM File-Hive to Oracle (OLH-OSCH)は、Oracle Loader for Hadoopを使用してHDFSファイルまたはHiveソースからOracleデータベース・ターゲットにデータを統合します。ナレッジ・モジュールは、マッピング構成および選択されたオプションを使用して、適切なOracle Databaseターゲット・インスタンスを生成します。HiveとHadoopのバージョンは、Oracle Loader for Hadoopの要件に従う必要があります。

関連項目:

次の表は、この統合ナレッジ・モジュールのオプションについて説明します。

表A-28 IKM File - Hive to Oracle (OLH-OSCH)

オプション 説明

OLH_OUTPUT_MODE

HadoopデータをOracleにロードする方法を指定します。指定できる値は、JDBC、OCI、DP_COPY、DP_OSCHおよびOSCHです。

  • JDBC出力モード: 複数のダイレクト・インサートJDBC接続を使用してデータが挿入されます。まれに、JDBCモードでは、Hadoopでタスクの再開が試行されるためにターゲット表でレコードが重複することがあります。

  • OCI出力モード: ダイレクト・パス・モードで複数のダイレクト・インサートOCI接続を使用してデータが挿入されます。USE_ORACLE_STAGINGfalseに設定されている場合、ターゲット表をパーティション化する必要があります。USE_ORACLE_STAGINGtrueに設定されている場合、FLOW_TABLE_OPTIONSで明示的にパーティション化を指定する必要があります(例: "PARTITION BY HASH(COL1) PARTITIONS 4")。まれに、OCIモードでは、Hadoopでタスクの再開が試行されるためにターゲット表でレコードが重複することがあります。

  • DP_COPY出力モード: OLHによって複数のDataPumpエクスポート・ファイルが作成されます。これらのファイルは"Hadoop fs -copyToLocal"コマンドによって、EXT_TAB_DIR_LOCATIONで指定されたローカル・パスに転送されます。このパスに、Oracle Databaseエンジンがアクセスできる必要があります。コピー・ジョブが完了すると、ターゲット・データベースで外部表が定義され、それによりEXT_TAB_DIR_LOCATIONからファイルへのアクセスが行われます。

  • DP_OSCH出力モード: OLHによって複数のDataPumpエクスポート・ファイルが作成されます。エクスポート・フェーズ後、ターゲット・データベースに外部表が作成されます。この表によって、これらのファイへのOSCHを通じた直接アクセスが行われます。このパスに、Oracle Databaseエンジンがアクセスできる必要があります。コピー・ジョブが完了すると、ターゲット・データベースで外部表が定義され、それによりEXT_TAB_DIR_LOCATIONからファイルへのアクセスが行われます。

  • OSCH出力モード: OSCHモードのロードでは、OLHは使用されません。ODIによって、ターゲット・データベースに外部表が作成され、これによりOSCHを介した入力ファイルへのアクセスが行われます。読取りできるのはデリミタ付きファイルおよび固定長ファイルのみです。OLHの前処理は行われないため、Hiveまたはカスタム入力形式(RegexInputFormatなど)からのロードはサポートされません。

REJECT_LIMIT

Oracle Loader for Hadoopおよび外部表のエラーの最大数を指定します。たとえば、UNLIMITEDを指定すると、すべてのエラーを除外します。整数値(10を指定すると10件の拒否を許可): この値は、Oracle Loader for Hadoopのジョブ定義に加えて外部表定義でも使用されます。

CREATE_TARG_TABLE

ターゲット表を作成します。

TRUNCATE

ターゲット表の内容を新しいデータで置換します。

DELETE_ALL

ターゲット表内のすべてのデータを削除します。

USE_HIVE_STAGING_TABLE

Oracle Loader for Hadoopで抽出が実行される前に、Hiveソース・データをマテリアライズします。このオプションをfalseに設定した場合、Oracle Loader for Hadoopは直接Hiveソース・データにアクセスします。このオプションをfalseに設定できるのは、次のすべての条件に該当する場合のみです。

  • 単一ソース表のみ

  • 変換、フィルタ、結合なし

  • データセットなし

このオプションをfalseに設定すると、余分なデータ転送ステップがなくなるために、パフォーマンスが向上します。

このオプションは、ソース・テクノロジがHiveである場合にのみ適用されます。

USE_ORACLE_STAGING_TABLE

中間Oracleデータベース・ステージング表を使用します。

抽出されたデータは、外部表によってOracleで使用可能になります。USE_ORACLE_STAGING_TABLEtrueに設定されている場合(デフォルト)、外部表は一時(I$)表として作成されます。次に、このI$表データがターゲット表に挿入されます。このオプションをfalseに設定できるのは、次のすべての条件に該当する場合のみです。

  • OLH_OUTPUT_MODEJDBCまたはOCIに設定されている場合

  • すべてのソース列がマップされている場合

  • すべてのターゲット列がマップされている場合

  • ターゲット側のマッピング式がない場合

このオプションをfalseに設定すると、余分なデータ転送ステップがなくなるためにパフォーマンスが向上しますが、Oracle Loader for Hadoopによって複数のトランザクションでデータがロードされるため、部分データがターゲット表にロードされる可能性があります。

EXT_TAB_DIR_LOCATION

外部表のファイル・システム・パスを指定します。以下の点に注意する必要があります。

  • OLH_OUTPUT_MODE = DP_*|OSCHの場合にのみ適用されます。

  • OLH_OUTPUT_MODE = DP_*の場合: このパスには、ODIエージェントとターゲット・データベース・エンジンの両方からアクセスできる必要があります。

  • OLH_OUTPUT_MODE = DP_*の場合: 外部ディレクトリ・オブジェクトの名前はI$表の名前です。

  • OLH_OUTPUT_MODE = DP_COPYの場合: ODIエージェントはhadoop-fsコマンドを使用して、dpファイルをこのディレクトリにコピーします。

  • OLH_OUTPUT_MODE = DP_*|OSCHの場合: このパスには外部表のlog/bad/dscファイルが含まれます。

  • ODIエージェントは、クリーンアップ時にこのディレクトリからすべてのファイルを削除してから、OLH/OSCHを起動します。

TEMP_DIR

一時ファイルの格納に使用するディレクトリ(sqoopスクリプト、stdout、stderrリダイレクトなど)を指定します。このオプションを空白のままにした場合、次に示すシステムのデフォルトの一時ディレクトリが使用されます。

<?=System.getProperty("java.io.tmp")?>

MAPRED_OUTPUT_BASE_DIR

Oracle Loader for Hadoopジョブで一時ファイル/datapump出力ファイル用のサブディレクトリが作成される先のHDFSディレクトリを指定します。

FLOW_TABLE_OPTIONS

作成時に統合表の属性を指定するもので、パフォーマンス向上のために使用します。このオプションは、デフォルトでNOLOGGINGに設定されます。このオプションは空のままにしておくこともできます。

DELETE_TEMPORARY_OBJECTS

データ統合後に表、ファイル、スクリプトなどの一時オブジェクトを削除します。デバッグに役立つことがある一時オブジェクトを保持する場合は、このオプションをNOに設定します。

OVERRIDE_INPUTFORMAT

デフォルトでは、InputFormatクラスはソースのデータ・ストア/テクノロジ(DelimitedTextInputFormatまたはHiveToAvroInputFormat)から導出されます。このオプションを使用すると、ユーザーはカスタムInputFormatのクラス名を指定できます。OLH_OUTPUT_MODE=OSCHと一緒に使用することはできません。

たとえば、Webログ・ファイルのようなカスタム・ファイル形式を読み取る場合、値oracle.hadoop.loader.lib.input.RegexInputFormatを割り当てることによりOLH RegexInputFormatを使用できます。

正規表現の指定方法の詳細は、KMオプションの「EXTRA_OLH_CONF_PROPERTIES」を参照してください。

EXTRA_OLH_CONF_PROPERTIES

特に、カスタムInputFormatを使用する場合(詳細はKMオプション「OVERRIDE_INPUTFORMAT」を参照)、InputFormatに追加の構成パラメータが必要となることがあります。これらは、OLH構成ファイル内に提供されています。このKMオプションを使用すると、追加のプロパティをOLH構成ファイルに追加できます。OLH_OUTPUT_MODE=OSCHと一緒に使用することはできません。

たとえば、apache Webログ・ファイル形式のロードで、カスタム・ファイル形式の読取りにOLH RegexInputFormatを使用する場合、このKMオプションにより正規表現およびその他の解析詳細を指定します。

<property> <name>oracle.hadoop.loader.input.regexPattern</name> <value>([^ ]*) ([^ ]*) ([^ ]*) (-|\[[^\]]*\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*) (\".*?\") (\".*?\") (\".*?\")</value> <description>RegEx for Apache WebLog format</description> </property>

IKM File-Hive to SQL (SQOOP) [非推奨]

注意: このKMは非推奨であり、下位互換性のみを目的として使用されます。

IKM File-Hive to SQL (SQOOP)では、次のものがサポートされます。

  • Hiveのフィルタ、結合、データセット、変換および集計

  • IKM Hive Control Appendにより生成されたインライン・ビュー

  • IKM Hive Transformにより生成されたインライン・ビュー

  • LKM HBase to Hive (HBase SerDe)を使用するHive-HBaseソース表

  • ファイル・ソース・データ(デリミタ付きファイル形式のみ)

次の表は、この統合ナレッジ・モジュールのオプションについて説明します。

表A-29 IKM File-Hive to SQL (SQOOP)

オプション 説明

CREATE_TARG_TABLE

ターゲット表を作成します。

TRUNCATE

ターゲット・データ・ストアの内容を新しいデータで置換します。このオプションをfalseに設定した場合、新しいデータはターゲット・データ・ストアに追加されます。

DELETE_ALL

ターゲット・データ・ストア内のすべての行を削除します。

SQOOP_PARALLELISM

並列度を指定します。より正確には、SQOOPエクスポート時に使用されるマッパーの数と、パラレルJDBC接続の数を指定します。

USE_TARGET_STAGING_TABLE

デフォルトでは、ソース・データはターゲット側のステージング表にステージングされてから、ターゲット表に移動されます。このオプションをfalseに設定した場合、SQOOPによってソース・データが直接ターゲット表にロードされるため、追加のデータ転送ステップがなくなることでパフォーマンスは向上し、ターゲットRDBM内の表領域の必要性が少なくなります。

ファイル・ソースの設定でこのオプションをfalseに設定できるのは、次のすべての条件に該当する場合のみです。

  • すべてのソース列をマップする必要がある場合

  • ソース列とターゲット列の順序が同じである場合

  • 最初のファイル列を最初のターゲット列にマップする必要がある場合

  • マッピングの差分がない場合

  • 1対1のマッピングのみの場合(式がない)

以下の点に注意する必要があります。

  • SQOOPは複数のライタを使用し、それぞれがターゲットに対する独自のJDBC接続を持ちます。各ライタは、複数のトランザクションを使用してデータを挿入します。つまり、USE_TARGET_STAGING_TABLEfalseに設定されている場合、ターゲット表に対する変更はアトミックでなくなり、ライタが失敗するとターゲット表が部分的に更新されることがあります。

  • SQOOP用のTeradataコネクタは常に、ロード中に追加のステージング表を作成します。このコネクタ・ステージング表は、KMオプションとは無関係です。

USE_GENERIC_JDBC_CONNECTOR

ターゲット・テクノロジ用のコネクタが使用できない場合に汎用JDBCコネクタを使用するかどうかを指定します。

SQOOPには、特定のテクノロジに対する固有のコネクタが用意されています。これらのコネクタによってSQL方言が処理され、パフォーマンスが最適化されます。各ターゲット・テクノロジ用のコネクタが存在する場合は、このコネクタを使用する必要があります。存在しない場合は、汎用JDBCコネクタを使用できます。

FLOW_TABLE_OPTIONS

ターゲット側の作業表を作成する際に、RDBMS固有の表オプションを使用すると、パフォーマンスを向上させることができます。デフォルトでは、このオプションは空であり、ナレッジ・モジュールは次の表オプションを使用します。

  • Oracleの場合: NOLOGGING

  • DB2の場合: NOT LOGGED INITIALLY

  • Teradataの場合: no fallback, no before journal, no after journal

明示的な値を指定すると、これらのデフォルトがオーバーライドされます。

TEMP_DIR

一時ファイルの格納に使用するディレクトリ(sqoopスクリプト、stdout、stderrリダイレクトなど)を指定します。このオプションを空白のままにした場合、次に示すシステムのデフォルトの一時ディレクトリが使用されます。

<?=System.getProperty("java.io.tmp")?>

MAPRED_OUTPUT_BASE_DIR

SQOOPにより一時ファイル用のサブディレクトリが作成される先のHDFSディレクトリを指定します。作業表に似た名前のサブディレクトリが、一時データを格納するためにここに作成されます。

DELETE_TEMPORARY_OBJECTS

データ統合後に表、ファイル、スクリプトなどの一時オブジェクトを削除します。デバッグに役立つことがある一時オブジェクトを保持する場合は、このオプションをNOに設定します。

TERADATA_PRIMARY_INDEX

ターゲット表の主索引。Teradataは主索引を使用して、データを複数のAMPに分散します。データを均等に分散して処理パフォーマンスを最大にするには、カーディナリティが高い(個別値が多数存在する)主索引を選択することが重要です。主索引を選択する際は、Teradataの推奨事項に従ってください。

このオプションは、Teradataターゲットにのみ適用されます。

TERADATA_FLOW_TABLE_TYPE

Teradataフロー表のタイプ(SETまたはMULTISET)。

このオプションは、Teradataターゲットにのみ適用されます。

TERADATA_OUTPUT_METHOD

Teradataコネクタがデータをロードする方法を指定します。有効な値は次のとおりです。

  • batch.insert: バッチ処理されたプリペアド文を使用する複数のJDBC接続(最初は最も簡単)

  • multiple.fastload: 複数のFastLoad接続

  • internal.fastload: 単一の調整済FastLoad接続(パフォーマンスは最も高い)

このオプションは、Teradataターゲットにのみ適用されます。

EXTRA_HADOOP_CONF_PROPERTIES

オプションの汎用Hadoopプロパティ。

EXTRA_SQOOP_CONF_PROPERTIES

オプションのSQOOPプロパティ。

EXTRA_SQOOP_CONNECTOR_CONF_PROPERTIES

オプションのSQOOPコネクタ・プロパティ。