Oracle® Fusion Middleware

Oracle Data Integratorとのビッグ・データの統合

12c (12.2.1.2.0)

E82655-01(原本部品番号:E77144-01)

2016年9月

Oracle Fusion Middleware Oracle Data IntegratorによるBig Dataの統合, 12c (12.2.1.2.0)

E82655-01

Copyright © 2014, 2016, Oracle and/or its affiliates.All rights reserved.

原本著者: Aslam Khan

原本協力著者: Alex Kotopoulis

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

表一覧

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

1 Oracle Data Integratorによるビッグ・データの統合

- 1.1 Hadoopデータ統合の概要

- 1.2 ビッグ・データ・ナレッジ・モジュール・マトリックス

2 Hadoopデータ統合の概念

- 2.1 Oracle Data IntegratorによるHadoopデータの統合

- 2.2 Oracle Data Integratorによる異なる言語のコードの生成

- 2.3 Apache Oozieを利用したOracle Data Integratorプロジェクトの実行

- 2.4 Oozieワークフローの実行モード

3 Hadoopデータを統合する環境の設定

- 3.1 ビッグ・データ構成ウィザードの使用によるビッグ・データ・テクノロジの構成

- 3.1.1 一般設定

- 3.1.2 HBaseデータ・サーバーの定義

- 3.2 Hadoopデータ・サーバーの作成と初期化

- 3.2.1 Hadoopデータ・サーバーの定義

- 3.2.2 Hadoopデータ・サーバー・プロパティ

- 3.3 Hadoop物理スキーマの作成

- 3.4 Hadoopジョブを実行するためのOracle Data Integratorエージェントの構成

- 3.5 Oracle Loader for Hadoopの構成

- 3.6 保護されたクラスタに接続するためのOracle Data Integratorの構成

- 3.7 ローカル・エージェントでHadoopジョブを実行するためのOracle Data Integrator Studioの構成

4 Hadoopデータの統合

- 4.1 Hadoopデータの統合

- 4.2 ファイル・データソースの設定

- 4.3 Hiveデータソースの設定

- 4.4 HBaseデータソースの設定

- 4.5 Hadoopナレッジ・モジュールのインポート

- 4.6 リバースエンジニアリングされたHive、HBaseおよびHDFSモデルからのOracle Data Integratorモデルの作成

- 4.6.1 モデルの作成

- 4.6.2 Hive表のリバース・エンジニアリング

- 4.6.3 HBase表のリバース・エンジニアリング

- 4.6.4 HDFSファイルのリバース・エンジニアリング

- 4.7 ファイルからHiveへのデータのロード

- 4.8 Hiveからファイルへのデータのロード

- 4.9 HBaseからHiveへのデータのロード

- 4.10 HiveからHbaseへのデータのロード

- 4.11 SQOOPの使用によるSQLデータベースからHive、HBaseおよびファイルへのデータのロード

- 4.12 SQOOPの使用によるSQLデータベースからHiveへのデータのロード

- 4.13 SQOOPの使用によるSQLデータベースからファイルへのデータのロード

- 4.14 SQOOPの使用によるSQLデータベースからHBaseへのデータのロード

- 4.15 Hive内のデータの検証と変換

- 4.16 HiveおよびファイルからOracleデータベースへのデータのロード

- 4.17 SQOOPの使用によるHBase、HiveおよびファイルからSQLデータベースへのデータのロード

5 Oozieワークフローの実行

- 5.1 Oracle Data IntegratorによるOozieワークフローの実行

- 5.2 Oozieランタイム・エンジンの設定および初期化

- 5.2.1 Oozieランタイム・エンジン定義

- 5.2.2 Oozieランタイム・エンジンのプロパティ

- 5.3 論理Oozieエンジンの作成

- 5.4 Oozieワークフローの実行またはデプロイ

- 5.5 Hadoopログの監査

- 5.6 ODI Oozieワークフロー実行におけるUserlib jarのサポート

6 問合せ処理エンジンの使用による異なる言語のコードの生成

- 6.1 Oracle Data Integratorでサポートされている問合せ処理エンジン

- 6.2 Hiveデータ・サーバーの設定

- 6.2.1 Hiveデータ・サーバーの定義

- 6.2.2 Hiveデータ・サーバー接続の詳細

- 6.3 Hive物理スキーマの作成

- 6.4 Pigデータ・サーバーの設定

- 6.4.1 Pigデータ・サーバーの定義

- 6.4.2 Pigデータ・サーバー・プロパティ

- 6.5 Pig物理スキーマの作成

- 6.6 Sparkデータ・サーバーの設定

- 6.6.1 Sparkデータ・サーバーの定義

- 6.6.2 Sparkデータ・サーバー・プロパティ

- 6.7 Spark物理スキーマの作成

- 6.8 異なる言語のコードの生成

7 構造化されていないデータおよび複合データの使用

- 7.1 構造化されていないデータの使用

- 7.2 複合データの使用

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

- A.1 LKM SQL to Hive SQOOP

- A.2 LKM SQL to File SQOOP Direct

- A.3 LKM SQL to HBase SQOOP Direct

- A.4 LKM File to SQL SQOOP

- A.5 LKM Hive to SQL SQOOP

- A.6 LKM HBase to SQL SQOOP

- A.7 IKM Hive Append

- A.8 LKM File to Hive LOAD DATA

- A.9 LKM File to Hive LOAD DATA Direct

- A.10 LKM HBase to Hive HBASE-SERDE

- A.11 LKM Hive to HBase Incremental Update HBASE-SERDE Direct

- A.12 LKM Hive to File Direct

- A.13 XKM Hive Sort

- A.14 LKM File to Oracle OLH-OSCH

- A.15 LKM File to Oracle OLH-OSCH Direct

- A.16 LKM Hive to Oracle OLH-OSCH

- A.17 LKM Hive to Oracle OLH-OSCH Direct

- A.18 RKM Hive

- A.19 RKM HBase

- A.20 IKM File to Hive (非推奨)

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

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

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

- A.24 IKM Hive Control Append (非推奨)

- A.25 CKM Hive (非推奨)

- A.26 IKM Hive Transform (非推奨)

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

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

B Pigナレッジ・モジュール

- B.1 LKM File to Pig

- B.2 LKM Pig to File

- B.3 LKM HBase to Pig

- B.4 LKM Pig to HBase

- B.5 LKM Hive to Pig

- B.6 LKM Pig to Hive

- B.7 LKM SQL to Pig SQOOP

- B.8 XKM Pig Aggregate

- B.9 XKM Pig Distinct

- B.10 XKM Pig Expression

- B.11 XKM Pig Filter

- B.12 XKM Pig Flatten

- B.13 XKM Pig Join

- B.14 XKM Pig Lookup

- B.15 XKM Pig Pivot

- B.16 XKM Pig Set

- B.17 XKM Pig Sort

- B.18 XKM Pig Split

- B.19 XKM Pig Subquery Filter

- B.20 XKM Pig Table Function

- B.21 XKM Pig Unpivot

C Sparkナレッジ・モジュール

- C.1 LKM File to Spark

- C.2 LKM Spark to File

- C.3 LKM Hive to Spark

- C.4 LKM Spark to Hive

- C.5 XKM Spark Aggregate

- C.6 XKM Spark Distinct

- C.7 XKM Spark Expression

- C.8 XKM Spark Filter

- C.9 XKM Spark Flatten

- C.10 XKM Spark Join

- C.11 XKM Spark Lookup

- C.12 XKM Spark Pivot

- C.13 XKM Spark Set

- C.14 XKM Spark Sort

- C.15 XKM Spark Split

- C.16 XKM Spark Table Function

- C.17 IKM Spark Table Function

- C.18 XKM Spark Unpivot

D コンポーネント・ナレッジ・モジュール

- D.1 XKM Oracle Flatten

- D.2 XKM Oracle Flatten XML

- D.3 XKM Jagged

E 考慮点、制限および問題

- E.1 考慮点、制限および問題

索引

表一覧

- 1-1 ビッグ・データ・ナレッジ・モジュール

- 3-1 一般設定オプション

- 3-2 HBaseデータ・サーバーの定義

- 3-3 Hadoopデータ・サーバーの定義

- 3-4 Hadoopデータ・サーバー・プロパティ

- 4-1 Hadoopデータの統合

- 4-2 リバースエンジニアリングされたHive表およびビューのフレックス・フィールド

- 4-3 リバースエンジニアリングされたHBase表のフレックス・フィールド

- 4-4 データをOracle Databaseにロードするナレッジ・モジュール

- 4-5 データをSQL Databaseにロードするナレッジ・モジュール

- 5-1 Oozieワークフローの実行

- 5-2 Oozieランタイム・エンジン定義

- 5-3 Oozieランタイム・エンジンのプロパティ

- 6-1 Hiveデータ・サーバーの定義

- 6-2 Hiveデータ・サーバー接続の詳細

- 6-3 Pigデータ・サーバーの定義

- 6-4 Pigデータ・サーバー・プロパティ

- 6-5 Sparkデータ・サーバーの定義

- 6-6 Sparkデータ・サーバー・プロパティ

- A-1 LKM SQL to Hive SQOOP

- A-2 LKM SQL to File SQOOP Direct

- A-3 LKM SQL to HBase SQOOP Direct

- A-4 LKM File to SQL SQOOP

- A-5 LKM Hive to SQL SQOOP

- A-6 LKM HBase to SQL SQOOP

- A-7 IKM Hive Append

- A-8 LKM File to Hive LOAD DATA

- A-9 LKM File to Hive LOAD DATA Direct

- A-10 LKM Hive to HBase Incremental Update HBASE-SERDE Direct

- A-11 LKM Hive to File Direct

- A-12 XKM Hive Sort

- A-13 LKM Hive to Oracle OLH-OSCH

- A-14 LKM File to Oracle OLH-OSCH Direct

- A-15 LKM Hive to Oracle OLH-OSCH

- A-16 LKM Hive to Oracle OLH-OSCH

- A-17 RKM HBaseのオプション

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

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

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

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

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

- A-23 CKM Hiveのオプション

- A-24 IKM Hive Transformのオプション

- A-25 IKM File - Hive to Oracle (OLH-OSCH)

- A-26 IKM File-Hive to SQL (SQOOP)

- B-1 LKM File to Pig

- B-2 LKM Pig to File

- B-3 LKM HBase to Pig

- B-4 LKM Pig to HBase

- B-5 LKM Hive to Pig

- B-6 LKM Pig to Hive

- B-7 LKM File to Pig

- B-8 XKM Pig Aggregate

- B-9 XKM Pig Flatten

- B-10 XKM Pig Join

- B-11 XKM Pig Lookup

- B-12 XKM Pig Table Function

- C-1 LKM File to Spark

- C-2 LKM Spark to File

- C-3 LKM Spark to Hive

- C-4 XKM Spark Aggregate

- C-5 XKM Spark Distinct

- C-6 XKM Spark Filter

- C-7 XKM Spark Flatten

- C-8 XKM Spark Join

- C-9 XKM Spark Join

- C-10 XKM Spark Pivot

- C-11 XKM Spark Sort

- C-12 XKM Spark Split

- C-13 XKM Spark Table Function

- C-14 IKM Spark Table Function

- C-15 XKM Spark Unpivot

- D-1 XKM Oracle Flatten

- D-2 XKM Oracle Flatten XML

- D-3 XKM Jagged

はじめに

このマニュアルでは、Oracle Data Integratorを使用したビッグ・データ統合プロジェクトの開発方法について説明します。

ここでは、次のトピックについて説明します。

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

対象読者

このガイドは、Oracle Data Integrator (ODI)の使用によるビッグ・データ統合プロジェクトの開発に関心を持つ読者を対象としています。ODIのビッグ・データ関連の機能に関するコンセプト情報を提供するとともに、ODIグラフィカル・ユーザー・インタフェースを使用して統合プロジェクトを作成する方法についても説明します。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご購入のOracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info) か、聴覚に障害のあるお客様は (http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

詳細は、Oracle Data Integratorライブラリの次のドキュメントを参照してください。

- Oracle Data Integratorリリース・ノート

- Oracle Data Integratorの理解

- 『Oracle Data Integratorでの統合プロジェクトの開発』

- Oracle Data Integratorの管理

- Oracle Data Integratorのインストールと構成

- Oracle Data Integratorのアップグレード

- Oracle Data Integratorアプリケーション・アダプタ・ガイド

- 『Oracle Data Integratorでのナレッジ・モジュールの開発』

- Oracle Data Integrator接続およびナレッジ・モジュール・ガイド

- Oracle Warehouse BuilderからOracle Data Integratorへの移行

- Oracle Data Integratorツール・リファレンス

- Oracle Data Integratorデータ・サービスJava APIリファレンス

- Oracle Data Integratorオープン・ツールJava APIリファレンス

- Oracle Data IntegratorのためのSAP ABAP BWアダプタ・スタート・ガイド

- Oracle Data Integrator Java APIリファレンス

- Oracle Data IntegratorのためのSAP ABAP ERPアダプタ・スタート・ガイド

- Oracle Data Integrator 12cオンライン・ヘルプ([F1]を押すか、「ヘルプ」を選択してから、「検索」または「目次」を選択してメイン・メニューからJDeveloperヘルプ・センターを開いて、ODI Studioで入手可能)

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 Oracle Data Integratorによるビッグ・データの統合

この章では、Oracle Data Integratorの使用によるビッグ・データの統合の概要について説明します。また、サポートされているビッグ・データ・テクノロジの互換性マトリクスも提供します。

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

- 第1.1項「Hadoopデータ統合の概要」

- 第1.2項「ビッグ・データ・ナレッジ・モジュール・マトリックス」

1.1 Hadoopデータ統合の概要

Apache Hadoopは、リレーショナルでないデータソースからのデータや、リレーショナル・データベースで処理できないデータ・ボリュームを処理するように設計されています。

Oracle Data Integratorは統合フローの「要素」を設計し、ナレッジ・モジュールを割り当てて拡張可能メカニズムの範囲におけるフローの「処理」を定義するのに使用できます。この「処理」とはOracle、Teradata、Hive、Spark、Pigなどです。

Oracle Data Integratorでは、使い慣れて使いやすいツールおよびあらかじめ構成されているナレッジ・モジュール(KM)を採用することにより、次のことが可能です。

- ファイルまたはSQLデータベースからHadoopに直接データをロードする。
詳細は、第4.1項「Hadoopデータの統合」を参照してください。

- Hadoop内のデータを検証し、Hive、HBaseまたはHDFSなどの各種形式で利用できるように変換する。
詳細は、第4.15項「Hive内のデータの検証と変換」を参照してください。

- Hadoopから処理済データをOracleデータベースやSQLデータベース、ファイルにロードする。
詳細は、第4.1項「Hadoopデータの統合」を参照してください。

- Hadoopで統合プロジェクトをOozieワークフローとして実行する。
詳細は、第5.1項「Oracle Data IntegratorによるOozieワークフローの実行」

- Oracle Data Integrator内でOozieワークフロー実行ログを監査する。
詳細は、第5.5項「Hadoopログの監査」を参照してください。

- Hadoop用にHiveQLやPig Latin、Spark Pythonといった異なる言語のコードを生成します。
詳細は、第6.8項「異なる言語のコードの生成」を参照してください。

1.2 ビッグ・データ・ナレッジ・モジュール・マトリックス

ソースおよびターゲット・テクノロジに基づき、統合プロジェクトにおいて次の表に示すKMを使用できます。また、これらのKMは組み合せて使用することもできます。たとえば、データをSQLからSparkへと読み込むには、LKM SQL to File Directを使用してデータをまずHDFSにロードし、それからLKM File to Sparkを使用して続行します。

次の表は、様々なソースおよびターゲット・テクノロジ間でデータを統合するための、Oracle Data Integratorによって提供されるビッグ・データKMを示します。

表1-1 ビッグ・データ・ナレッジ・モジュール

ソース

ターゲット

ナレッジ・モジュール

OSファイル

HDFSファイル

-

Hive

LKM File to Hive LOAD DATA Direct

HBase

-

Pig

LKM File to Pig

Spark

LKM File to Spark

汎用SQL

HDFSファイル

LKM SQL to File SQOOP Direct

Hive

LKM SQL to Hive SQOOP

HBase

LKM SQL to HBase SQOOP Direct

Pig

-

Spark

-

HDFSファイル

OSファイル

-

汎用SQL

LKM File to SQL SQOOP

Oracle SQL

LKM File to Oracle OLH-OSCH Direct

HDFSファイル

-

Hive

LKM File to Hive LOAD DATA Direct

HBase

-

Pig

LKM File to Pig

Spark

LKM File to Spark

Hive

OSファイル

LKM Hive to File Direct

汎用SQL

LKM Hive to SQL SQOOP

Oracle SQL

LKM Hive to Oracle OLH-OSCH Direct

HDFSファイル

LKM Hive to File Direct

Hive

IKM Hive Append

HBase

LKM Hive to HBase Incremental Update HBASE-SERDE Direct

Pig

LKM Hive to Pig

Spark

LKM Hive to Spark

HBase

OSファイル

-

汎用SQL

LKM HBase to SQL SQOOP

Oracle SQL

-

HDFSファイル

-

Hive

LKM HBase to Hive HBASE-SERDE

HBase

-

Pig

LKM HBase to Pig

Spark

-

Pig

OSファイル

LKM Pig to File

汎用SQL

LKM SQL to Pig SQOOP

Oracle SQL

-

HDFSファイル

LKM Pig to File

Hive

LKM Pig to Hive

HBase

LKM Pig to HBase

Pig

-

Spark

-

Spark

OSファイル

LKM Spark to File

汎用SQL

-

Oracle SQL

-

HDFSファイル

LKM Spark to File

Hive

LKM Spark to Hive

HBase

-

Pig

-

Spark

-

2 Hadoopデータ統合の概念

この章では、Oracle Data Integratorを使用したHadoopデータ統合の基本概念の概要を示します。

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

- 第2.1項「Oracle Data IntegratorによるHadoopデータの統合」

- 第2.2項「Oracle Data Integratorによる異なる言語のコードの生成」

- 第2.3項「Apache Oozieを利用したOracle Data Integratorプロジェクトの実行」

- 第2.4項「Oozieワークフローの実行モード」

2.1 Oracle Data IntegratorによるHadoopデータの統合

Hadoopでの通常の処理には、MapReduceジョブとしてプログラミングされたデータの検証や変換などがあります。MapReduceジョブの設計と実装には、専門的なプログラミングの知識が必要です。しかしOracle Data Integratorを使用すれば、MapReduceジョブを記述する必要はありません。Oracle Data Integratorは、Apache Hiveと、MapReduceジョブを実装するためのSQLライクな言語であるHive Query Language (HiveQL)を使用します。

ビッグ・データ処理のシナリオを実装する場合の最初の手順は、データをHadoopにロードすることです。データ・ソースは、通常はファイルまたはSQLデータベースです。

データのロード後は、SQLと同様の方法でHiveQLを使用して、データを検証および変換できます。データ検証(NULLや主キーのチェックなど)および変換(フィルタ、集計、設定操作、表の導出など)を実行できます。また、カスタマイズした手続き型のスニペット(スクリプト)をデータの処理に含めることもできます。

データが集計、簡略化または処理されて小さなデータ・セットになったら、追加の処理および分析を行うためにそれをOracleデータベース、他のリレーショナル・データベース、HDFS、HBase、またはHiveにロードできます。Oracleデータベースへのロードを最適に行うには、Oracle Loader for Hadoopが推奨されます。

詳細は、第4章「Hadoopデータの統合」を参照してください。

2.2 Oracle Data Integratorによる異なる言語のコードの生成

デフォルトでは、Oracle Data Integrator (ODI)はHiveQLを使用してマッピングを実装します。しかし、Oracle Data IntegratorではPig LatinおよびSpark Pythonを使用してマッピングを実装することもできます。マッピングを設計したら、それをデフォルトのHiveQLを使用して実装することも、Pig LatinまたはSpark Pythonを使用して実装するよう選択することもできます。

ODIにおけるPig LatinおよびSpark Pythonのサポートは、これらの言語に固有のコンポーネントKMのセットによって実現されています。これらのコンポーネントKMは、Pigデータ・サーバーまたはSparkデータ・サーバーがマッピングのステージング場所として使用される場合にのみ使用されます。

たとえば、ステージング場所としてPigデータ・サーバーを使用する場合、Pig関連のKMがマッピングを実装するのに使用され、Pig Latinコードが生成されます。同様に、Spark Pythonコードを生成するには、Sparkデータ・サーバーをマッピングのステージング場所として使用する必要があります。

異なる言語のコードの生成ならびにPigおよびSparkコンポーネントKMの詳細は、次を参照してください。

- 付録B「Pigナレッジ・モジュール」。

- 付録C「Sparkナレッジ・モジュール」。

- 第6章「問合せ処理エンジンの使用による異なる言語のコードの生成」。

2.3 Apache Oozieを利用したOracle Data Integratorプロジェクトの実行

Apache Oozieは、Hadoopでのアクションをオーケストレートするのに役立つワークフロー・スケジューラ・システムです。Hadoop MapReduceジョブを実行するアクションによるワークフロー・ジョブの実行に特化したサーバーベースのワークフロー・エンジンです。Oozieワークフローの実装と実行には、Oozieについての詳細な知識が必要になります。

しかし、Oracle Data IntegratorがあればOozieのエキスパートになる必要はありません。Oracle Data Integratorを使用すると、Oozieワークフローを簡単に定義および実行できます。

Oracle Data Integratorでは、統合プロジェクト(パッケージ、プロシージャ、マッピング、またはシナリオ)をOozieエンジンで実行することにより、Oozieワークフロー定義を自動的に生成できます。生成されたOozieワークフロー定義はOozieワークフロー・システムに配置されて実行されます。コンテンツの検証のためにOozieワークフローの配置のみを行い、実行は後から行うこともできます。

Oozieログからの情報は取得されてODIリポジトリにOozie UIへのリンクとともに保存されます。この情報はODIオペレータおよびコンソールに表示されます。

詳細は、第5章「Oozieワークフローの実行」を参照してください。

2.4 Oozieワークフローの実行モード

ODIでは、Oozieワークフローの実行のために次の2つのモードが用意されています。

- TASK
タスク・モードではすべてのODIタスクに対してOozieアクションが生成されます。これがデフォルト・モードです。

タスク・モードでは次は処理できません。

- 複数のタスクにまたがるスクリプト・コードがあるKM

- トランザクションがあるKM

- タスクをまたぐファイル・アクセスができないファイル・システム・アクセスが発生するKM

- ループ構成のあるODIパッケージ

- SESSION
セッション・モードではセッション全体に対してOozieアクションが生成されます。

次のいずれかの条件に当てはまる場合は、自動的にこのモードが使用されます。

- いずれかのタスクによりトランザクション接続がオープンされている。

- いずれかのタスクにスクリプトがある。

- パッケージにループが含まれている。
パッケージ内のループはOozieエンジンではサポートされておらず、SESSIONモードで実行されているときであっても、実行やセッション・ログ・コンテンツの取得という点からして正しく動作しない可能性があります。

注意:
ほとんどのユースケースにおいて、このモードの使用をお薦めします。

デフォルトの場合、Oozieランタイム・エンジンではタスク・モードが使用されます。つまり、Oozieランタイム・エンジンのOOZIE_WF_GEN_MAX_DETAILプロパティのデフォルト値はTASKです。

前述の条件が満たされているかどうかに関わりなく、Oozieランタイム・エンジンをセッション・モードを使用するように構成できます。Oozieランタイム・エンジンでセッション・レベルのOozieワークフローが生成されるよう設定するには、Oozieランタイム・エンジンのOOZIE_WF_GEN_MAX_DETAILプロパティをSESSIONに設定します。

詳細は、第5.2.2項「Oozieランタイム・エンジンのプロパティ」を参照してください。

3 Hadoopデータを統合する環境の設定

この章では、Hadoopデータを統合するための環境を設定するために実行する必要がある手順について説明します。

この章の内容は以下のとおりです。

- 第3.1項「ビッグ・データ構成ウィザードの使用によるビッグ・データ・テクノロジの構成」

- 第3.2項「Hadoopデータ・サーバーの作成と初期化」

- 第3.3項「Hadoop物理スキーマの作成」

- 第3.4項「Hadoopジョブを実行するためのOracle Data Integratorエージェントの構成」

- 第3.5項「Oracle Loader for Hadoopの構成」

- 第3.6項「保護されたクラスタに接続するためのOracle Data Integratorの構成」

- 第3.7項「ローカル・エージェントでHadoopジョブを実行するためのOracle Data Integrator Studioの構成」

3.1 ビッグ・データ構成ウィザードの使用によるビッグ・データ・テクノロジの構成

ビッグ・データ構成ウィザードは、複数のHadoopテクノロジを設定するための単一のエントリ・ポイントを提供します。データ・サーバー、物理スキーマ、論理スキーマの作成、およびHadoop、HBase、Oozie、Spark、Hive、Pigといった各種Hadoopテクノロジに対するコンテキストの設定をすばやく実行できます。

様々な配置に対するデフォルトのメタデータ(プロパティやホスト名、ポート名など)、および環境変数のデフォルト値があらかじめ入力されています。これにより、これらのテクノロジに対する詳細な知識がなくても、データ・サーバーを物理および論理スキーマとともに簡単に作成できます。

すべてのテクノロジの構成が終わったら、データ・サーバーに対する設定を検証して接続ステータスをテストできます。

注意:
ビッグ・データ構成ウィザードを使用することを望まない場合、後続の項で言及されている情報を使用して手動でビッグ・データ・テクノロジ用にデータ・サーバーを設定できます。

ビッグ・データ構成ウィザードを実行するには、次の手順を実行します。

1. ODI Studioで、「ファイル」を選択し、「新規...」をクリックします。

2. 新規ギャラリ・ダイアログで、「ビッグ・データ構成」を選択して「OK」をクリックします。
ビッグ・データ構成ウィザードが表示されます。

3. ウィザードの「一般設定」パネルで、必要なオプションを指定します。
詳細は、第3.1.1項「一般設定」を参照してください。

4. 「次」をクリックします。
「一般設定」パネルで選択した各テクノロジに対するデータ・サーバー・パネルが表示されます。

5. ウィザードの「Hadoop」パネルで、次を実行します。

- Hadoopデータ・サーバーを作成するのに必要なオプションを指定します。
詳細は、第3.2.1項「Hadoopデータ・サーバーの定義」を参照してください。

- 「プロパティ」セクションで、「+」アイコンをクリックしてデータ・サーバー・プロパティを追加します。

- 論理スキーマ、物理スキーマ、およびコンテキストを適切なドロップダウン・リストから選択します。

6. 「次」をクリックします。

7. ウィザードの「HBase」パネルで、次を実行します。

- HBaseデータ・サーバーを作成するのに必要なオプションを指定します。
詳細は、第3.1.2項「HBaseデータ・サーバーの定義」を参照してください。

- 「プロパティ」セクションで、「+」アイコンをクリックしてデータ・サーバー・プロパティを追加します。

- 論理スキーマ、物理スキーマ、およびコンテキストを適切なドロップダウン・リストから選択します。

8. ウィザードの「Spark」パネルで、次を実行します。

- Sparkデータ・サーバーを作成するのに必要なオプションを指定します。
詳細は、第6.6.1項「Sparkデータ・サーバーの定義」を参照してください。

- 「プロパティ」セクションで、「+」アイコンをクリックしてデータ・サーバー・プロパティを追加します。

- 論理スキーマ、物理スキーマ、およびコンテキストを適切なドロップダウン・リストから選択します。

9. 「次」をクリックします。

10. ウィザードの「Pig」パネルで、次を実行します。

- Pigデータ・サーバーを作成するのに必要なオプションを指定します。
詳細は、第6.4.1項「Pigデータ・サーバーの定義」を参照してください。

- 「プロパティ」セクションで、「+」アイコンをクリックしてデータ・サーバー・プロパティを追加します。

- 論理スキーマ、物理スキーマ、およびコンテキストを適切なドロップダウン・リストから選択します。

11. 「次」をクリックします。

12. ウィザードの「Hive」パネルで、次を実行します。

- Hiveデータ・サーバーを作成するのに必要なオプションを指定します。
詳細は、第6.2.1項「Hiveデータ・サーバーの定義」を参照してください。

- 「プロパティ」セクションで、「+」アイコンをクリックしてデータ・サーバー・プロパティを追加します。

- 論理スキーマ、物理スキーマ、およびコンテキストを適切なドロップダウン・リストから選択します。

13. 「次」をクリックします。

14. ウィザードの「Oozie」パネルで、次を実行します。

- Oozieランタイム・エンジンを作成するのに必要なオプションを指定します。
詳細は、第5.2.1項「Oozieランタイム・エンジン定義」を参照してください。

- 「プロパティ」セクションで、リストされているデータ・サーバーのプロパティを確認します。
注意: 新しいプロパティを追加したり、リストされているプロパティを削除することはできません。ただし、必要に応じて、リストされているプロパティの値を変更できます。

詳細は、第5.2.2項「Oozieランタイム・エンジンのプロパティ」を参照してください。

- 論理スキーマおよびコンテキストを適切なドロップダウン・リストから選択します。

15. 「次」をクリックします。

16. 「すべての設定を検証」パネルで「すべての設定をテスト」をクリックして、データ・サーバーに対する設定を検証して接続ステータスを確認します。

17. 「終了」をクリックします。

3.1.1 一般設定

次の表では、ビッグ・データ構成ウィザードの「一般設定」パネルで設定する必要があるオプションについて説明します。

表3-1 一般設定オプション

オプション

説明

接頭辞

接頭辞を指定します。この接頭辞はデータ・サーバー名、論理スキーマ名および物理スキーマ名に関連付けられています。

配布

配布を選択します。「手動」またはCDH <version>のいずれかです。

ベース・ディレクトリ

ベース・ディレクトリを指定します。このベース・ディレクトリは、ウィザードの他のすべてのパネルに自動的に移入されます。

注意: このオプションは、配布が「手動」ではない場合にのみ表示されます。

テクノロジ

構成するテクノロジを選択します。

注意: 選択したテクノロジに対するデータ・サーバー作成パネルのみが表示されます。

第3.1項「ビッグ・データ構成ウィザードの使用によるビッグ・データ・テクノロジの構成」。

3.1.2 HBaseデータ・サーバーの定義

次の表では、HBaseデータ・サーバーを作成する際に指定する必要があるオプションについて説明します。

注意: HBaseデータ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。

表3-2 HBaseデータ・サーバーの定義

オプション

説明

名前

データ・サーバーの名前を入力します。この名前はOracle Data Integratorに表示されます。

HBase定数

HBaseインストールの定数。例: localhost:2181。

ユーザー/パスワード

ユーザー名とそのパスワード。

Hadoopデータサーバー

HBaseデータ・サーバーに関連付けるHadoopデータ・サーバー。

追加クラスパス

デフォルトでは、次のクラスパスが追加されます。

- /usr/lib/hbase/*

- usr/lib/hbase/lib/*

必要に応じて、追加のクラスパスを指定します。

第3.1項「ビッグ・データ構成ウィザードの使用によるビッグ・データ・テクノロジの構成」。

3.2 Hadoopデータ・サーバーの作成と初期化

Hadoopデータ・サーバーを作成および初期化するには、次の手順を実行します。

1. 「トポロジ」タブをクリックします。

2. 「物理アーキテクチャ」ツリーの「テクノロジ」で、「Hadoop」を右クリックして「新規データ・サーバー」をクリックします。

3. 「定義」タブで、Hadoopデータ・サーバーの詳細を指定します。
詳細は、第3.2.1項「Hadoopデータ・サーバーの定義」を参照してください。

4. 「プロパティ」タブで、Hadoopデータ・サーバーのプロパティを指定します。
詳細は、第3.2.2項「Hadoopデータ・サーバー・プロパティ」を参照してください。

5. 「初期化」をクリックして、Hadoopデータ・サーバーを初期化します。
Hadoopデータ・サーバーを初期化すると、ODIマスター・リポジトリおよび作業リポジトリの構造がHDFSに作成されます。

6. 「テスト接続」をクリックして、Hadoopデータ・サーバーへの接続をテストします。

3.2.1 Hadoopデータ・サーバーの定義

次の表は、新しいHadoopデータ・サーバーを作成する場合に「定義」タブで指定する必要があるフィールドについて説明しています。

注意: Hadoopデータ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。

表3-3 Hadoopデータ・サーバーの定義

フィールド

説明

名前

Oracle Data Integratorに表示されるデータ・サーバーの名前。

データ・サーバー

データ・サーバーの物理名。

ユーザー/パスワード

Hadoopユーザーとそのパスワード。

パスワードを指定しない場合、HDFSおよびOozieのユーザー名を使用した単純な認証のみが実行されます。

HDFSノード名URI

HDFSノード名のURI。

hdfs://localhost:8020

リソース・マネージャ/ジョブ・トラッカURI

「リソース・マネージャまたはジョブ・トラッカのURI。

localhost:8032

ODI HDFSルート

ODI HDFSのルート・ディレクトリのパス。

/user/<login_username>/odi_home.

追加クラスパス

追加のクラスパスを指定します。

次の追加クラスパスを追加します。

- /usr/lib/hadoop/*

- /usr/lib/hadoop/lib/*

- /usr/lib/hadoop-hdfs/*

- /usr/lib/hadoop-mapreduce/*

- /usr/lib/hadoop-yarn/*

- /usr/lib/oozie/lib/*

- /etc/hadoop/conf/

第3.2項「Hadoopデータ・サーバーの作成と初期化」

第3.1項「ビッグ・データ構成ウィザードの使用によるビッグ・データ・テクノロジの構成」。

3.2.2 Hadoopデータ・サーバー・プロパティ

次の表は、新しいHadoopデータ・サーバーを定義する場合に「プロパティ」タブで構成可能なプロパティについて説明しています。

注意: これらのプロパティは、HiveやHDFSといった他のHadoopテクノロジによる継承が可能です。これらのプロパティを継承するには、他のHadoopテクノロジのデータ・サーバーを作成する際に、この構成済のHadoopデータ・サーバーを選択する必要があります。

表3-4 Hadoopデータ・サーバー・プロパティ

プロパティ

説明/値

HadoopおよびHiveに必須のプロパティ

次のプロパティはHadoopおよびHiveに必須です。

HADOOP_HOME

Hadoopディレクトリの場所。例: /usr/lib/hadoop

HADOOP_CONF

Hadoop構成ファイル(core-default.xml、core-site.xml、hdfs-site.xmlなど)の場所。例: /home/shared/hadoop-conf

HIVE_HOME

Hiveディレクトリの場所。例: /usr/lib/hive

HIVE_CONF

Hive構成ファイル(hive-site.xmlなど)の場所。例: /home/shared/hive-conf

HADOOP_CLASSPATH

$HIVE_HOME/lib/hive-metastore-*.jar:$HIVE_HOME/lib/libthrift-*.jar:$HIVE_HOME/lib/libfb*.jar:$HIVE_HOME/lib/hive-exec-*.jar:$HIVE_CONF

HADOOP_CLIENT_OPTS

-Dlog4j.debug -Dhadoop.root.logger=INFO,console -Dlog4j.configuration=file:/etc/hadoop/conf.cloudera.yarn/log4j.properties

ODI_ADDITIONAL_CLASSPATH

$HIVE_HOME/lib/'*':$HADOOP_HOME/client/*:$HADOOP_CONF

HIVE_SESSION_JARS

$HIVE_HOME/lib/hive-contrib-*.jar:<ODI library directory>/wlhive.jar

- wlhive.jarの実際のパスは、ODIインストールのホームで決定できます。

- 必要に応じて、他のJARファイル(カスタムSerDes JARファイルなど)を含めます。これらのJARファイルは各Hive JDBCセッションに追加され、それによって各Hive MapReduceジョブに追加されます。

- JARのリストは":"で区切られ、ファイル名のワイルドカードを複数のファイルに評価することはできません。

(HadoopおよびHiveの基本環境変数以外の) HBaseに必須のプロパティ

次のプロパティはHBaseに必須です。HadoopおよびHiveの基本プロパティに加えて、これらのプロパティを設定する必要があります。

HBASE_HOME

HBaseディレクトリの場所。例: /usr/lib/hbase

HADOOP_CLASSPATH

$HBASE_HOME/lib/hbase-*.jar:$HIVE_HOME/lib/hive-hbase-handler*.jar:$HBASE_HOME/hbase.jar

ODI_ADDITIONAL_CLASSPATH

$HBASE_HOME/hbase.jar

HIVE_SESSION_JARS

$HBASE_HOME/hbase.jar:$HBASE_HOME/lib/hbase-sep-api-*.jar:$HBASE_HOME/lib/hbase-sep-impl-*hbase*.jar:/$HBASE_HOME/lib/hbase-sep-impl-common-*.jar:/$HBASE_HOME/lib/hbase-sep-tools-*.jar:$HIVE_HOME/lib/hive-hbase-handler-*.jar

(HadoopおよびHiveの基本プロパティ以外の) Oracle Loader for Hadoopに必須のプロパティ

次のプロパティはOracle Loader for Hadoopに必須です。HadoopおよびHiveの基本プロパティに加えて、これらのプロパティを設定する必要があります。

OLH_HOME

OLHインストールの場所。例: /u01/connectors/olh

OLH_FILES

usr/lib/hive/lib/hive-contrib-1.1.0-cdh5.5.1.jar

ODCH_HOME

OSCHインストールの場所。例: /u01/connectors/osch

HADOOP_CLASSPATH

$OLH_HOME/jlib/*:$OSCH_HOME/jlib/*

OLHを使用するには、HADOOP_CLASSPATH内のHadoop jarをワイルドカードなしで手動で解決する必要があります。

OLH_JARS

Oracle Loader for Hadoopで使用されるカスタム入力形式、Hive、Hive SerDesなどに必要なすべてのJARファイルのカンマ区切りリスト。すべてのファイル名をワイルドカードなしで展開する必要があります。

例:

$HIVE_HOME/lib/hive-metastore-0.10.0-cdh4.5.0.jar,$HIVE_HOME/lib/libthrift-0.9.0-cdh4-1.jar,$HIVE_HOME/lib/libfb303-0.9.0.jar

OLH_SHAREDLIBS

$OLH_HOME/lib/libolh12.so,$OLH_HOME/lib/libclntsh.so.12.1,$OLH_HOME/lib/libnnz12.so,$OLH_HOME/lib/libociei.so,$OLH_HOME/lib/libclntshcore.so.12.1,$OLH_HOME/lib/libons.so

ODI_ADDITIONAL_CLASSPATH

$OSCH_HOME/jlib/'*'

(HadoopおよびHiveの基本プロパティ以外の) SQOOPに必須のプロパティ

次のプロパティはSQOOPに必須です。HadoopおよびHiveの基本プロパティに加えて、これらのプロパティを設定する必要があります。

SQOOP_HOME

Sqoopディレクトリの場所。例: /usr/lib/sqoop

SQOOP_LIBJARS

SQOOPライブラリjarの場所。例: usr/lib/hive/lib/hive-contrib-1.1.0-cdh5.5.1.jar

第3.2項「Hadoopデータ・サーバーの作成と初期化」

3.3 Hadoop物理スキーマの作成

『Oracle Data Integratorの管理』の物理スキーマの作成に関する項の説明に従って、標準の手順を使用してHadoop物理スキーマを作成します。

『Oracle Data Integratorの管理』の論理スキーマの作成に関する項の説明に従って、標準の手順を使用してこの物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。

3.4 Hadoopジョブを実行するためのOracle Data Integratorエージェントの構成

Hadoopジョブを実行するには、Oracle Data Integratorエージェントを構成する必要があります。

Oracle Data Integratorエージェントを設定する手順は次のとおりです。

1. HadoopをOracle Data Integratorエージェント・コンピュータにインストールします。
Oracle Big Data Applianceの場合、『Oracle Big Data Applianceソフトウェア・ユーザーズ・ガイド』でリモートHadoopクライアントの設定手順を参照してください。

2. HiveをOracle Data Integratorエージェント・コンピュータにインストールします。

3. SQOOPをOracle Data Integratorエージェント・コンピュータにインストールします。

4. ODIエージェント・コンピュータで、HadoopおよびHiveの基本プロパティを設定します。
これらのプロパティはHadoopデータ・サーバー・プロパティとして追加する必要があります。詳細は、第3.2.2項「Hadoopデータ・サーバー・プロパティ」を参照してください。

5. HBase機能を使用する場合は、ODIエージェント・コンピュータでプロパティを設定します。HadoopおよびHiveの基本プロパティに加えて、これらのプロパティを設定する必要があります。
これらのプロパティはHadoopデータ・サーバー・プロパティとして追加する必要があります。詳細は、第3.2.2項「Hadoopデータ・サーバー・プロパティ」を参照してください。

3.5 Oracle Loader for Hadoopの構成

Oracle Loader for Hadoopを使用するには、Oracle Data Integratorエージェント・コンピュータにOracle Loader for Hadoopをインストールして構成する必要があります。

Oracle Loader for Hadoopをインストールして構成するには、次の手順を実行します。

1. Oracle Loader for HadoopをOracle Data Integratorエージェント・コンピュータにインストールします。
『Oracle Big Data Connectorsユーザーズ・ガイド』のOracle Loader for Hadoopのインストールに関する項を参照してください。

2. Oracle SQL Connector for HDFS (OLH_OUTPUT_MODE=DP_OSCHまたはOSCH)を使用するには、まずこれをインストールする必要があります。
『Oracle Big Data Connectorsユーザーズ・ガイド』のOracle SQL Connector for Hadoop Distributed File Systemの設定に関する項を参照してください。

3. ODIエージェント・コンピュータでOracle Loader for Hadoopのプロパティを設定します。HadoopおよびHiveの基本プロパティに加えて、これらのプロパティを設定する必要があります。
これらのプロパティはHadoopデータ・サーバー・プロパティとして追加する必要があります。詳細は、第3.2.2項「Hadoopデータ・サーバー・プロパティ」を参照してください。

3.6 保護されたクラスタに接続するためのOracle Data Integratorの構成

Kerberos認証で保護されるHadoopクラスタでOracle Data Integratorエージェントを実行するには、Kerberos保護クラスタを構成する必要があります。

Kerberos保護クラスタの使用手順:

1. Oracle Data Integratorエージェントが実行するOracle Big Data Applianceのnode04にログインします。

2. oracleユーザーの新しいKerberosチケットを作成します。次のコマンドを使用して、レルムをKerberosの実際のレルム名に置き換えます。
$ kinit oracle@realm

3. 次のコマンドラインを使用して、環境変数を設定します。使用する製品に合せて適切な値を代入します。
$ export KRB5CCNAME=Kerberos-ticket-cache-directory

$ export KRB5_CONFIG=Kerberos-configuration-file

$ export HADOOP_OPTS="$HADOOP_OPTS -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal. jaxp.DocumentBuilderFactoryImpl-Djava.security.krb5.conf=Kerberos-configuration-file"

この例では、構成ファイルの名前はkrb5*で、/tmp/oracle_krb/にあります。

$ export KRB5CCNAME=/tmp/oracle_krb/krb5cc_1000

$ export KRB5_CONFIG=/tmp/oracle_krb/krb5.conf

$ export HADOOP_OPTS="$HADOOP_OPTS -D javax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal. jaxp.DocumentBuilderFactoryImpl -D java.security.krb5.conf=/tmp/oracle_krb/krb5.conf"

4. 次のような構文を使用して、JDBC接続URLを再定義します。
jdbc:hive2://node1:10000/default;principal=HiveServer2-Kerberos-Principal

例:

jdbc:hive2://bda1node01.example.com:10000/default;principal= hive/HiveServer2Host@EXAMPLE.COM

次のURLの『CDH5 Security Guide』の「HiveServer2 Security Configuration」も参照してください。

http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH5/latest/CDH5-Security-Guide/cdh5sg_hiveserver2_security.html

5. サービスの混乱を防ぐため、Oracleの使用にあわせてKerberosチケットを定期的に更新します。
Oracle Big Data ApplianceでのKerberosの管理の詳細は、『Oracle Big Data Applianceソフトウェア・ユーザーズ・ガイド』を参照してください。

3.7 ローカル・エージェントでHadoopジョブを実行するためのOracle Data Integrator Studioの構成

Oracle Data Integrator Studioインストールのローカル・エージェントでHadoopジョブを実行するには、第3.4項「Hadoopジョブを実行するためのOracle Data Integratorエージェントの構成」の設定手順を実行しますが、Oracle Data IntegratorのuserlibディレクトリにJARファイルをコピーします。

例:

Linux: $USER_HOME/.odi/oracledi/userlibディレクトリ。

Windows: C:\Users\<USERNAME>\AppData\Roaming\odi\oracledi\userlibディレクトリ

4 Hadoopデータの統合

この章では、Hadoopデータを統合するために実行する必要がある手順について説明します。

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

- 第4.1項「Hadoopデータの統合」

- 第4.2項「ファイル・データソースの設定」

- 第4.3項「Hiveデータソースの設定」

- 第4.4項「HBaseデータソースの設定」

- 第4.5項「Hadoopナレッジ・モジュールのインポート」

- 第4.6項「リバースエンジニアリングされたHive、HBaseおよびHDFSモデルからのOracle Data Integratorモデルの作成」

- 第4.7項「ファイルからHiveへのデータのロード」

- 第4.8項「Hiveからファイルへのデータのロード」

- 第4.9項「HBaseからHiveへのデータのロード」

- 第4.10項「HiveからHBaseへのデータのロード」

- 第4.11項「SQOOPの使用によるSQLデータベースからHive、HBaseおよびファイルへのデータのロード」

- 第4.12項「SQOOPの使用によるSQLデータベースからHiveへのデータのロード」

- 第4.13項「SQOOPの使用によるSQLデータベースからファイルへのデータのロード」

- 第4.14項「SQOOPの使用によるSQLデータベースからHBaseへのデータのロード」

- 第4.15項「Hive内のデータの検証と変換」

- 第4.16項「HiveおよびファイルからOracleデータベースへのデータのロード」

- 第4.17項「SQOOPの使用によるHBase、HiveおよびファイルからSQLデータベースへのデータのロード」

4.1 Hadoopデータの統合

次の表に、Hadoopデータを統合するための手順をまとめます。

表4-1 Hadoopデータの統合

手順

説明

データ・ソースの設定

データ・ソースを設定してデータ・ソース・モデルを作成します。ファイル・データ・ソース、HiveおよびHBaseデータ・ソースを設定する必要があります。

第4.2項「ファイル・データソースの設定」を参照してください

第4.3項「Hiveデータソースの設定」を参照してください

第4.4項「HBaseデータソースの設定」を参照してください

Hadoopナレッジ・モジュールのインポート

Hadoop KMをグローバル・オブジェクトまたはプロジェクトにインポートします。

第4.5項「Hadoopナレッジ・モジュールのインポート」を参照してください

Oracle Data Integratorモデルの作成

HiveおよびHBaseモデルをリバースエンジニアリングし、Oracle Data Integratorモデルを作成します。

第4.6項「リバースエンジニアリングされたHive、HBaseおよびHDFSモデルからのOracle Data Integratorモデルの作成」を参照してください

Hadoopデータの統合

Hadoopデータをロード、検証および変換するためのマッピングを設計します。

第4.7項「ファイルからHiveへのデータのロード」を参照してください

第4.9項「HBaseからHiveへのデータのロード」を参照してください

第4.10項「HiveからHBaseへのデータのロード」を参照してください

第4.11項「SQOOPの使用によるSQLデータベースからHive、HBaseおよびファイルへのデータのロード」を参照してください

第4.15項「Hive内のデータの検証と変換」を参照してください

第4.16項「HiveおよびファイルからOracleデータベースへのデータのロード」を参照してください

第4.17項「SQOOPの使用によるHBase、HiveおよびファイルからSQLデータベースへのデータのロード」を参照してください

4.2 ファイル・データソースの設定

Hadoopのコンテキストでは、Hadoop分散ファイルシステム(HDFS)のファイルとローカル・ファイル(HDFS外のファイル)は区別されます。

データソースを定義する手順は次のとおりです。

1. ファイル・テクノロジに基づくデータ・サーバー・オブジェクトを作成します。

2. アクセスされるディレクトリごとに物理スキーマ・オブジェクトを作成します。

3. アクセスされるディレクトリごとに論理スキーマ・オブジェクトを作成します。

4. 各論理スキーマのモデルを作成します。

5. ファイルおよびワイルドカード名のパターンごとに1つ以上のデータストアを作成します。

6. HDFSファイルの場合、「JDBC URL」フィールドにHDFS名のノードを入力して、ファイル・テクノロジに基づくデータ・サーバー・オブジェクトを作成し、「JDBCドライバ名」は空のままにしておきます。例:

hdfs://bda1node01.example.com:8020

このデータ・サーバー構成では、テスト接続はサポートされていません。

注意:
HDFSファイルに専用テクノロジは定義されていません。

第4.1項「Hadoopデータの統合」

4.3 Hiveデータソースの設定

Hiveシステムに接続するために、Oracle Data Integratorで次の手順を行う必要があります。Oracle Data IntegratorではJDBCを使用してHiveに接続します。

前提条件

Hiveテクノロジが標準のOracle Data Integratorテクノロジに含まれている必要があります。そうでない場合は、INSERT_UPDATEモードでxml-referenceディレクトリからテクノロジをインポートします。

Hive固有のフレックス・フィールドをすべて追加する必要があります。

Hiveデータソースを設定する手順は次のとおりです。

1. Hiveテクノロジに基づくデータ・サーバー・オブジェクトを作成します。

2. JDBC下に次の場所を設定します。
JDBCドライバ: weblogic.jdbc.hive.HiveDriver

JDBC URL: jdbc:weblogic:hive://<host>:<port>[; property=value[;...]]

たとえば、次のようになります。jdbc:weblogic:hive://localhost:10000;DatabaseName=default;User=default;Password=default

注意:
通常、ユーザーIDとパスワードは、ODIデータ・サーバーの対応するフィールドに入力されます。Hiveユーザーがパスワードを指定せずに定義される場合、JDBC URLの一部としてpassword=defaultを追加する必要があり、データ・サーバーのパスワード・フィールドは空白のままにします。

3. フレックスフィールド下で次の設定を行います。
HiveメタストアURI: thrift://BDA:10000など

4. Hiveサーバーが稼働していることを確認します。

5. データ・サーバーへの接続をテストします。

6. 物理スキーマを作成します。物理スキーマ定義の両方のスキーマ・フィールドに、Hiveスキーマの名前を入力します。

7. 論理スキーマ・オブジェクトを作成します。

8. RKM Hiveをグローバル・オブジェクトまたはプロジェクトにインポートします。

9. 論理スキーマを指す、Hiveテクノロジ用の新規モデルを作成します。

10. RKM Hiveを使用して、カスタム・リバースエンジニアリング操作を実行します。

このプロセスの終了時に、列、パーティション化およびクラスタ化の詳細がフレックス・フィールド値として格納されたすべてのHive表が、Hiveデータ・モデルに含まれます。

第4.1項「Hadoopデータの統合」

4.4 HBaseデータソースの設定

HBaseシステムに接続するには、Oracle Data Integratorで次の手順を行う必要があります。

前提条件

HBaseテクノロジが標準のOracle Data Integratorテクノロジに含まれている必要があります。そうでない場合は、INSERT_UPDATEモードでxml-referenceディレクトリからテクノロジをインポートします。

HBase固有のフレックス・フィールドをすべて追加する必要があります。

HBaseデータソースを設定する手順は次のとおりです。

1. HBaseテクノロジに基づくデータ・サーバー・オブジェクトを作成します。
このテクノロジのデータ・サーバーでは、JDBCドライバおよびURLは使用できません。

2. フレックスフィールド下で次の設定を行います。
HBase定足数: HBaseインストールの定足数。例: zkhost1.mydomain.com,zkhost2.mydomain.com,zkhost3.mydomain.com

3. HBaseサーバーが稼働していることを確認します。

注意:
HBaseデータ・サーバーへの接続をテストすることはできません。

4. 物理スキーマを作成します。

5. 論理スキーマ・オブジェクトを作成します。

6. RKM HBaseをグローバル・オブジェクトまたはプロジェクトにインポートします。

7. 論理スキーマを指す、HBaseテクノロジ用の新規モデルを作成します。

8. RKM HBaseを使用して、カスタム・リバースエンジニアリング操作を実行します。

注意:
リバースエンジニアリングを実行する前に。HBase表にデータが含まれていることを確認します。HBase表が空の場合、リバースエンジニアリング操作は機能しません。

このプロセスの終了時に、すべてのHBase表およびその列とデータ型がHBaseデータ・モデルに含まれます。

第4.1項「Hadoopデータの統合」

4.5 Hadoopナレッジ・モジュールのインポート

統合プロジェクトで使用するKMをインポートする必要があります。

次のKMをグローバル・オブジェクトまたはプロジェクトにインポートします。

- IKM Hive Control Append

- CKM Hive

- RKM Hive

- RKM HBase

- IKM Hive Transform

- IKM File-Hive to Oracle (OLH-OSCH)

- IKM File-Hive to SQL (SQOOP)

- IKM SQL to Hive-HBase-File (SQOOP)

第4.1項「Hadoopデータの統合」

4.6 リバースエンジニアリングされたHive、HBaseおよびHDFSモデルからのOracle Data Integratorモデルの作成

リバースエンジニアリングされたHive、HBaseおよびHDFSモデルからODIモデルを作成する必要があります。リバース・エンジニアリング・プロセスでは、対応するHiveおよびHBase表に対するHiveおよびHBaseデータ・ストアが作成されます。これらのデータ・ストアをマッピングのソースまたはターゲットとして使用できます。

この項では、次の項目について説明します。

- モデルの作成

- Hive表のリバース・エンジニアリング

- HBase表のリバース・エンジニアリング

- HDFSファイルのリバース・エンジニアリング

4.6.1 モデルの作成

Hive、HBaseまたはHDFSをホストするテクノロジに基づくモデルや、HiveやHBase、HDFSの接続を構成したときに作成された論理スキーマに基づくモデルを作成するには、『Oracle Data Integratorでの統合プロジェクトの開発』で説明されている標準の手順に従います。

第4.6項「リバースエンジニアリングされたHive、HBaseおよびHDFSモデルからのOracle Data Integratorモデルの作成」

4.6.2 Hive表のリバース・エンジニアリング

Hive表およびビューのリバース・エンジニアリングには、RKM Hiveが使用されます。Hive RKMを使用してHive表のカスタマイズされたリバースエンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』の説明に従って、通常の手順を使用します。このトピックでは、Hive表に固有の情報の詳細を示します。

リバースエンジニアリング・プロセスでは、対応するHive表またはビューに対するデータストアが作成されます。データ・ストアをマッピングのソースまたはターゲットとして使用できます。

RKM Hiveの詳細は、第A.18項「RKM Hive」を参照してください。

表4-2に、作成されるフレックス・フィールドを示します。

表4-2 リバースエンジニアリングされたHive表およびビューのフレックス・フィールド

オブジェクト

フレックス・フィールド名

フレックス・フィールド・コード

フレックス・フィールド・タイプ

説明

DataStore

Hiveバケット

HIVE_BUCKETS

文字列

クラスタ化に使用されるバケットの数

Column

Hiveパーティション列

HIVE_PARTITION_COLUMN

数値

パーティション化列はすべて"1"とマークされます。パーティション情報は、次のものから取得されます。

- マップされたソース列

- ターゲット列に指定された定数値

- ファイル名フラグメント

Column

Hiveクラスタ列

HIVE_CLUSTER_COLUMN

数値

クラスタ列はすべて"1"とマークされます。

Column

Hiveソート列

HIVE_SORT_COLUMN

数値

ソート列はすべて"1"とマークされます。

第4.6項「リバースエンジニアリングされたHive、HBaseおよびHDFSモデルからのOracle Data Integratorモデルの作成」

4.6.3 HBase表のリバース・エンジニアリング

HBase表のリバース・エンジニアリングには、RKM HBaseが使用されます。RKM HBaseを使用してHBase表のカスタマイズされたリバースエンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』の説明に従って、通常の手順を使用します。このトピックでは、HBase表に固有の情報の詳細を示します。

リバースエンジニアリング・プロセスでは、対応するHBase表のデータ・ストアが作成されます。データ・ストアをマッピングのソースまたはターゲットとして使用できます。

注意:
リバースエンジニアリングを実行する前に。HBase表にデータが含まれていることを確認します。HBase表が空の場合、リバースエンジニアリング操作は機能しません。

RKM HBaseの詳細は、第A.19項「RKM HBase」を参照してください。

表4-3に、作成されるフレックス・フィールドを示します。

表4-3 リバースエンジニアリングされたHBase表のフレックス・フィールド

オブジェクト

フレックス・フィールド名

フレックス・フィールド・コード

フレックス・フィールド・タイプ

説明

DataStore

HBase定数

HBASE_QUORUM

文字列

Zookeeperノードのカンマ区切りリスト。HBaseクライアントはこれを使用して、HBaseマスター・サーバーおよびHBaseリージョン・サーバーを検出します。

Column

HBase記憶域タイプ

HBASE_STORAGE_TYPE

文字列

データ型が物理的にHBaseに格納される方法を定義します。

指定できる値は、BinaryおよびString (デフォルト)です。

第4.6項「リバースエンジニアリングされたHive、HBaseおよびHDFSモデルからのOracle Data Integratorモデルの作成」

4.6.4 HDFSファイルのリバース・エンジニアリング

HDFSファイルは標準ファイルのようにリバース・エンジニアリングできます。HDFSファイルをリバースエンジニアリングするには、標準ファイルをリバースエンジニアリングするのと同じプロセスに従う必要があります。

詳細は、Oracle Data Integrator接続およびナレッジ・モジュール・ガイドのファイル・モデルのリバースエンジニアリングを参照してください。

第4.6項「リバースエンジニアリングされたHive、HBaseおよびHDFSモデルからのOracle Data Integratorモデルの作成」

4.7 ファイルからHiveへのデータのロード

ローカル・ファイル・システムまたはHDFSファイル・システムからHive表にデータをロードする手順は次のとおりです。

1. ローカル・ファイルおよびHDFSファイルのデータ・ストアを作成します。
ローカル・ファイル・データソースのリバース・エンジニアリングおよび構成の詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

2. ソースとしてファイル・データ・ストアを、ターゲットとして対応するHive表を使用して、マッピングを作成します。

3. マッピングの物理ダイアグラムで指定されているLKM File to Hive LOAD DATAまたはLKM File to Hive LOAD DATA Directナレッジ・モジュールを使用します。
これらの統合ナレッジ・モジュールは、フラット・ファイルからHiveにデータをロードし、既存のデータを置換または追加します。

KMの詳細は、次の項を参照してください。

- 第A.8項「LKM File to Hive LOAD DATA」

- 第A.9項「LKM File to Hive LOAD DATA Direct」

4.8 Hiveからファイルへのデータのロード

Hive表からローカル・ファイル・システムまたはHDFSファイルにデータをロードする手順は、次のとおりです。

1. フラット・ファイルにロードするHive表のデータ・ストアを作成します。
Hiveデータソースのリバース・エンジニアリングおよび構成の詳細は、「Hiveデータソースの設定」を参照してください。

2. ソースとしてHiveデータ・ストアを、ターゲットとして対応するファイル・データ・ソースを使用して、マッピングを作成します。

3. マッピングの物理ダイアグラムで指定されているLKM Hive to File Directナレッジ・モジュールを使用します。
この統合ナレッジ・モジュールは、Hiveからフラット・ファイルにデータをロードします。

LKM Hive to File Directの詳細は、第A.12項「LKM Hive to File Direct」を参照してください。

4.9 HBaseからHiveへのデータのロード

HBase表からHiveにデータをロードする手順は次のとおりです。

1. HiveにロードするHBase表のデータ・ストアを作成します。
HBaseデータソースのリバース・エンジニアリングおよび構成の詳細は、「HBaseデータソースの設定」を参照してください。

2. ソースとしてHBaseデータ・ストアを、ターゲットとして対応するHive表を使用して、マッピングを作成します。

3. マッピングの物理ダイアグラムで指定されているLKM HBase to Hive HBASE-SERDEナレッジ・モジュールを使用します。
このナレッジ・モジュールは、HiveからHBase表への読取りアクセスを提供します。

LKM HBase to Hive HBASE-SERDEの詳細は、第A.10項「LKM HBase to Hive HBASE-SERDE」を参照してください。

4.10 HiveからHbaseへのデータのロード

Hive表からHBaseにデータをロードする手順は次のとおりです。

1. HBaseにロードするHive表のデータ・ストアを作成します。
Hiveデータソースのリバース・エンジニアリングおよび構成の詳細は、「Hiveデータソースの設定」を参照してください。

2. ソースとしてHiveデータ・ストアを、ターゲットとして対応するHBase表を使用して、マッピングを作成します。

3. マッピングの物理ダイアグラムで指定されているLKM Hive to HBase Incremental Update HBASE-SERDE Directナレッジ・モジュールを使用します。
この統合ナレッジ・モジュールは、HiveからHBaseにデータをロードし、新しい行の挿入および既存のデータの更新をサポートしています。

LKM Hive to HBase Incremental Update HBASE-SERDE Directの詳細は、第A.11項「LKM Hive to HBase Incremental Update HBASE-SERDE Direct」を参照してください。

4.11 SQOOPの使用によるSQLデータベースからHive、HBaseおよびファイルへのデータのロード

SQLデータベースからHive、HBaseおよびファイル・ターゲットにデータをロードする手順は次のとおりです。

1. Hive、HBaseまたはファイル・ターゲットにロードするSQLソースのデータ・ストアを作成します。
SQLデータソースのリバース・エンジニアリングおよび構成の詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

2. ソースとしてSQLソース・データ・ストアを、ターゲットとして対応するHBase表、Hive表またはHDFSファイルを使用して、マッピングを作成します。

3. マッピングの物理ダイアグラムで指定されているIKM SQL to Hive-HBase-File (SQOOP)ナレッジ・モジュールを使用します。
この統合ナレッジ・モジュールは、SQLソースからHive、HBaseまたはファイル・ターゲットにデータをロードします。SQOOPを使用して、Hive、HBaseおよびファイル・ターゲットにデータをロードします。SQOOPは、パラレルなJDBC接続を使用してデータをロードします。

IKM SQL to Hive-HBase-File (SQOOP)の詳細は、第A.23項「IKM SQL to Hive-HBase-File (SQOOP) [非推奨]」を参照してください。

4.12 SQOOPの使用によるSQLデータベースからHiveへのデータのロード

SQLデータベースからHiveターゲットにデータをロードする手順は、次のとおりです。

1. HiveターゲットにロードするSQLソースのデータ・ストアを作成します。
SQLデータソースのリバース・エンジニアリングおよび構成の詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

2. ソースとしてSQLソース・データ・ストアを、ターゲットとして対応するHive表を使用して、マッピングを作成します。

3. マッピングの物理ダイアグラムで指定されているLKM SQL to Hive SQOOPナレッジ・モジュールを使用します。
このKMは、データをSQLソースからHiveにロードします。HiveへのデータのロードにはSQOOPが使用されます。SQOOPは、パラレルなJDBC接続を使用してデータをロードします。

LKM SQL to Hive SQOOPの詳細は、第A.1項「LKM SQL to Hive SQOOP」を参照してください。

4.13 SQOOPの使用によるSQLデータベースからファイルへのデータのロード

SQLデータベースからファイル・ターゲットにデータをロードする手順は、次のとおりです。

1. ファイル・ターゲットにロードするSQLソースのデータ・ストアを作成します。
SQLデータソースのリバース・エンジニアリングおよび構成の詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

2. ソースとしてSQLソース・データ・ストアを、ターゲットとして対応するHDFSファイルを使用して、マッピングを作成します。

3. マッピングの物理ダイアグラムで指定されているLKM SQL to File SQOOP Directナレッジ・モジュールを使用します。
この統合ナレッジ・モジュールは、SQLソースからファイル・ターゲットにデータをロードします。ファイル・ターゲットへのデータのロードにはSQOOPが使用されます。SQOOPは、パラレルなJDBC接続を使用してデータをロードします。

IKM SQL to Hive-HBase-File (SQOOP)の詳細は、第A.23項「IKM SQL to Hive-HBase-File (SQOOP) [非推奨]」を参照してください。

4.14 SQOOPの使用によるSQLデータベースからHBaseへのデータのロード

SQLデータベースからHBaseターゲットにデータをロードする手順は、次のとおりです。

1. HBaseターゲットにロードするSQLソースのデータ・ストアを作成します。
SQLデータソースのリバース・エンジニアリングおよび構成の詳細は、『Oracle Data Integrator接続およびナレッジ・モジュール・ガイド』を参照してください。

2. ソースとしてSQLソース・データ・ストアを、ターゲットとして対応するHBase表を使用して、マッピングを作成します。

3. マッピングの物理ダイアグラムで指定されているLKM SQL to HBase SQOOP Directナレッジ・モジュールを使用します。
この統合ナレッジ・モジュールは、SQLソースからHBaseターゲットにデータをロードします。HBaseターゲットへのデータのロードにはSQOOPが使用されます。SQOOPは、パラレルなJDBC接続を使用してデータをロードします。

LKM SQL to HBase SQOOP Directの詳細は、第A.3項「LKM SQL to HBase SQOOP Direct」を参照してください。

4.15 Hive内のデータの検証と変換

データがHiveにロードされた後は、次のナレッジ・モジュールを使用してデータを検証および変換できます。

- IKM Hive Control Append
詳細は、第A.7項「IKM Hive Append」を参照してください。

- IKM Hive Append
詳細は、第A.7項「IKM Hive Append」を参照してください。

- CKM Hive
詳細は、第A.25項「CKM Hive (非推奨)」を参照してください。

- IKM Hive Transform
詳細は、第A.26項「IKM Hive Transform (非推奨)」を参照してください。

4.16 HiveおよびファイルからOracleデータベースへのデータのロード

Oracle Loader for Hadoopを使用してHDFSファイルまたはHiveソースからOracleデータベース・ターゲットにデータをロードするには、次の表にリストされているナレッジ・モジュールを使用します。

表4-4 データをOracle Databaseにロードするナレッジ・モジュール

ナレッジ・モジュール

用途...

IKM File-Hive to Oracle (OLH-OSCH)

Oracle Loader for Hadoopを使用して、HDFSファイルまたはHiveソースからOracleデータベース・ターゲットにデータをロードします。

詳細は、第A.27項「IKM File-Hive to Oracle (OLH-OSCH) [非推奨]」を参照してください。

LKM File to Oracle OLH-OSCH

Oracle Loader for Hadoopを使用して、HDFSファイルからOracleステージング表にデータをロードします。

詳細は、第A.14項「LKM File to Oracle OLH-OSCH」を参照してください。

LKM File to Oracle OLH-OSCH Direct

Oracle Loader for Hadoopを使用して、HDFSファイルからOracleデータベース・ターゲットにデータをロードします。

詳細は、第A.15項「LKM File to Oracle OLH-OSCH Direct」を参照してください。

LKM Hive to Oracle OLH-OSCH

Oracle Loader for Hadoopを使用して、HiveソースからOracleステージング表にデータをロードします。

詳細は、第A.16項「LKM Hive to Oracle OLH-OSCH」を参照してください。

LKM Hive to Oracle OLH-OSCH Direct

Oracle Loader for Hadoopを使用して、HiveソースからOracleデータベース・ターゲットにデータをロードします。

詳細は、第A.17項「LKM Hive to Oracle OLH-OSCH Direct」を参照してください。

4.17 SQOOPの使用によるHBase、HiveおよびファイルからSQLデータベースへのデータのロード

SQOOPを使用してHDFSファイル、HBaseソースまたはHiveソースからSQLデータベース・ターゲットにデータをロードするには、次の表にリストされているナレッジ・モジュールを使用します。

表4-5 データをSQL Databaseにロードするナレッジ・モジュール

ナレッジ・モジュール

用途...

IKM File-Hive to SQL (SQOOP)

SQOOPを使用して、HDFSファイルまたはHiveソースからSQLデータベース・ターゲットにデータをロードします。

詳細は、第A.28項「IKM File-Hive to SQL (SQOOP) [非推奨]」を参照してください。

LKM HBase to SQL SQOOP

SQOOPを使用して、HBaseソースからSQLデータベース・ターゲットにデータをロードします。

詳細は、第A.6項「LKM HBase to SQL SQOOP」を参照してください。

LKM File to SQL SQOOP

SQOOPを使用して、HDFSファイルからSQLデータベース・ターゲットにデータをロードします。

詳細は、第A.4項「LKM File to SQL SQOOP」を参照してください。

LKM Hive to SQL SQOOP

SQOOPを使用して、HiveソースからSQLデータベース・ターゲットにデータをロードします。

詳細は、第A.5項「LKM Hive to SQL SQOOP」を参照してください。

5 Oozieワークフローの実行

この章では、Oozieエンジンを設定する方法およびOracle Data Integratorを使用してOozieワークフローを実行する方法について説明します。また、Hadoopログを監査する方法についても説明します。

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

- 第5.1項「Oracle Data IntegratorによるOozieワークフローの実行」

- 第5.2項「Oozieランタイム・エンジンの設定および初期化」

- 第5.3項「論理Oozieエンジンの作成」

- 第5.4項「Oozieワークフローの実行またはデプロイ」

- 第5.4項「Oozieワークフローの実行またはデプロイ」

- 第5.5項「Hadoopログの監査」

- 第5.6項「ODI Oozieワークフロー実行におけるUserlib jarのサポート」

5.1 Oracle Data IntegratorによるOozieワークフローの実行

Oracle Data IntegratorでOozieワークフローを実行するために必要な手順を次の表にまとめます。

表5-1 Oozieワークフローの実行

手順

説明

Oozieランタイム・エンジンの設定

Oozieランタイム・エンジンを設定してOozieエンジンがインストールされているHadoopデータ・サーバーへの接続を構成します。このOozieランタイム・エンジンは、OozieエンジンでODI設計オブジェクトまたはシナリオをOozieワークフローとして実行するのに使用されます。

第5.2項「Oozieランタイム・エンジンの設定および初期化」を参照してください。

Oozieワークフローの実行またはデプロイ

前の手順で作成されたOozieランタイム・エンジンを使用してODI設計オブジェクトまたはシナリオを実行し、Oozieワークフローを実行またはデプロイします。

第5.4項「Oozieワークフローの実行またはデプロイ」を参照してください。

Hadoopログの監査

Oracle Data Integrator内でのOozieワークフローの実行をモニターするHadoopログを監査します。

第5.5項「Hadoopログの監査」を参照してください。

5.2 Oozieランタイム・エンジンの設定および初期化

Oozieランタイム・エンジンを設定する前に、OozieエンジンがデプロイされているHadoopデータ・サーバーがトポロジで使用可能になっていることを確認してください。OozieエンジンはこのHadoopデータ・サーバーに関連付けられている必要があります。

Oozieランタイム・エンジンを設定する手順は、次のとおりです。

1. トポロジ・ナビゲータで、「物理アーキテクチャ」ナビゲーション・ツリーにある「Oozieランタイム・エンジン」ノードを右クリックして「新規」をクリックします。

2. 「定義」タブで、フィールドの値を指定してOozieランタイム・エンジンを定義します。
フィールドの説明は、第5.2.1項「Oozieランタイム・エンジン定義」を参照してください。

3. 「プロパティ」タブで、Oozieランタイム・エンジンのプロパティを指定します。
プロパティの説明は、第5.2.2項「Oozieランタイム・エンジンのプロパティ」を参照してください。

4. 「テスト」をクリックして、実際のOozieサーバーと関連Hadoopデータ・サーバーの接続と構成をテストします。

5. 「初期化」をクリックして、Oozieランタイム・エンジンを初期化します。
Oozieランタイム・エンジンを初期化するとログ取得ワークフローおよびコーディネータ・ワークフローをHDFSファイル・システムにデプロイし、ログ取得コーディネータおよびワークフローのジョブを実際のOozieサーバー上で開始します。リポジトリおよびoozieエンジンのログ取得フローおよびコーディネータの名前はそれぞれOdiRetrieveLog_<EngineName>_<ReposId>_FおよびOdiLogRetriever_<EngineName>_<ReposId>_Cとなります。

ODIライブラリおよびクラスもデプロイします。

6. 「保存」をクリックします。

第5.1項「Oracle Data IntegratorによるOozieワークフローの実行」

5.2.1 Oozieランタイム・エンジン定義

次の表は、新しいOozieランタイム・エンジンを定義する場合に「定義」タブで指定する必要があるフィールドについて説明しています。Oozieランタイム・エンジンはHadoop環境で実際のOozieサーバーをモデル化します。

表5-2 Oozieランタイム・エンジン定義

フィールド

値

名前

Oracle Data Integratorに表示されるOozieランタイム・エンジンの名前。

ホスト

Oozieランタイム・エージェントが起動されたマシンの名前またはIPアドレス。

ポート

Oozieランタイム・エンジンによって使用されるリスニング・ポート。デフォルトのOozieポート値は11000です。

Webアプリケーション・コンテキスト

Webアプリケーション・コンテキストの名前。このフィールドの値としてoozieと入力します。これはHadoop環境で実行するOozieサービス・プロセスに必要な値です。

プロトコル

接続に使用するプロトコル。使用可能な値は、httpまたはhttpsです。デフォルトはhttpです。

Hadoopサーバー

oozieエンジンがインストールされたHadoopサーバーの名前。このHadoopサーバーはoozieランタイム・エンジンに関連付けられています。

ポーリング頻度

Hadoop監査ログが取得され、ODIリポジトリにセッション・ログとして格納される頻度。

ポーリングの頻度は、秒(s)、分(m)、時間(h)、日(d)および年(y)で指定できます。例: 5mまたは4h。

存続期間

Hadoop監査ログの取得コーディネータが監査ログの取得ワークフローをスケジュールできる期間。

存続期間は、分(m)、時間(h)、日(d)および年(y)で指定できます。例: 4hまたは2d。

スケジュール頻度

Hadoop監査ログの取得ワークフローがOozieコーディネータ・ジョブとしてスケジュールされる頻度。

スケジュール・ワークフローは、分(m)、時間(h)、日(d)および年(y)で指定できます。例: 20mまたは5h。

第5.2項「Oozieランタイム・エンジンの設定および初期化」

第3.1項「ビッグ・データ構成ウィザードの使用によるビッグ・データ・テクノロジの構成」

5.2.2 Oozieランタイム・エンジンのプロパティ

次の表は、新しいOozieランタイム・エンジンを定義する場合に「プロパティ」タブで構成可能なプロパティについて説明しています。

表5-3 Oozieランタイム・エンジンのプロパティ

フィールド

値

OOZIE_WF_GEN_MAX_DETAIL

OozieエンジンのODI Oozieワークフローを生成する際に許可される最大詳細(セッション・レベルまたはきめの細かいタスク・レベル)を制限します。

このプロパティの値をTASKに設定するとすべてのODIタスクに対してOozieアクションが生成され、SESSIONに設定するとセッション全体に対してOozieアクションが生成されます。

第5.2項「Oozieランタイム・エンジンの設定および初期化」

第3.1項「ビッグ・データ構成ウィザードの使用によるビッグ・データ・テクノロジの構成」

5.3 論理Oozieエンジンの作成

論理oozieエージェントを作成する手順は、次のとおりです。

1. トポロジ・ナビゲータで、「論理アーキテクチャ」ナビゲーション・ツリーにある「Oozieランタイム・エンジン」ノードを右クリックします。

2. 「新規論理エージェント」を選択します。

3. 「エージェント名」を入力します。

4. 左側の列の各コンテキストについて、右側の列で既存の物理エージェントを選択します。この物理エージェントはこのコンテキストの論理エージェントと自動的に関連付けられます。

5. 「ファイル」メニューから「保存」を選択します。

第5.2項「Oozieランタイム・エンジンの設定および初期化」

5.4 Oozieワークフローの実行またはデプロイ

Oozieランタイム・エンジンを使用してODIデザイン・オブジェクトまたはシナリオを実行し、OozieエンジンでOozieワークフローを実行できます。ODIデザイン・オブジェクトまたはシナリオを実行する際、Oozieワークフローを実行せず、デプロイだけにとどめておくこともできます。

ODI Oozieワークフローをデプロイまたは実行する手順は、次のとおりです。

1. デザイナ・ナビゲータの「プロジェクト」メニューで、Oozieワークフローとして実行するマッピングを右クリックし、「実行」をクリックします。

2. 使用して実行ドロップダウン・リストから、Oozieランタイム・エンジンを選択します。

3. Oozieワークフローを実行せず、デプロイだけにとどめておくには、「デプロイのみ」チェック・ボックスを選択します。

4. 「OK」をクリックします。
「情報」ダイアログが表示されます。

5. セッションが開始しているかどうか確認し、「情報」ダイアログの「OK」をクリックします。

第5.1項「Oracle Data IntegratorによるOozieワークフローの実行」

5.5 Hadoopログの監査

ODI Oozieワークフローの実行時には、Oozieランタイム・エンジンの頻度プロパティに基づいてログ情報が取得されます。この情報はOozieジョブの状態、進行状況およびパフォーマンスを示します。

アクティブなOozieセッションのログ・データは、「オペレータ」メニューの「ログ・データの取得」をクリックして取得できます。また、oozie WebコンソールまたはMapReduce Webコンソールのoozieセッションに関する情報を、セッション・エディタの「定義」タブに表示されるURLをクリックすることで表示できます。

セッション・エディタ、セッション・ステップ・エディタおよびセッション・タスク・エディタの「詳細」タブには、oozieおよびMapReduceジョブの要約が表示されます。

第5.1項「Oracle Data IntegratorによるOozieワークフローの実行」

5.6 ODI Oozieワークフロー実行におけるUserlib jarのサポート

ODI Oozieワークフローでのuserlib jarのサポートにより、ユーザーはjarファイルをuserlib HDFSディレクトリにコピーできます。このjarファイルはoozie.libpathプロパティにより生成および発行されるODI Oozieワークフローによって参照されます。

これにより、各ワークフロー・アプリケーションのlib HDFSディレクトリにlibs/jarsがレプリケートされるのを防ぐことができます。userlibディレクトリはHDFSの次の場所にあります。

<ODI HDFS Root>/odi_<version>/userlib

第5.1項「Oracle Data IntegratorによるOozieワークフローの実行」

6 問合せ処理エンジンの使用による異なる言語のコードの生成

この章では、Oracle Data Integratorでサポートされている問合せ処理エンジンを設定して異なる言語のコードを生成する方法について説明します。

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

- 第6.1項「Oracle Data Integratorでサポートされている問合せ処理エンジン」

- 第6.2項「Hiveデータ・サーバーの設定」

- 第6.3項「Hive物理スキーマの作成」

- 第6.4項「Pigデータ・サーバーの設定」

- 第6.5項「Pig物理スキーマの作成」

- 第6.6項「Sparkデータ・サーバーの設定」

- 第6.7項「Spark物理スキーマの作成」

- 第6.8項「異なる言語のコードの生成」

6.1 Oracle Data Integratorでサポートされている問合せ処理エンジン

Hadoopは、クラスタによるパラレル・データ処理のためのフレームワークを提供します。ユーザー・フロントエンドを提供する言語はいろいろあります。Oracle Data Integratorでは、異なる言語のコードを生成するための次の問合せ処理エンジンをサポートしています。

- Hive
Apache Hiveウェアハウス・ソフトウェアを使用すると、分散記憶域に常駐している大容量データ・セットの問合せと管理が容易になります。Hiveは構造をこのデータに投影し、HiveQLと呼ばれるSQLに似た言語を使用してデータを問合せできます。

- Pig
PigはHadoopとともに使用されるMapReduceプログラムを作成する上位レベルのプラットフォームです。このプラットフォームの言語はPig Latinと呼ばれます。

- Spark
SparkはHadoopデータと互換性のある高速かつ汎用の処理エンジンです。これはYARNまたはSparkのスタンドアロン・モードを介してHadoopクラスタで実行でき、HDFS、HBase、Cassandra、HiveおよびいずれかのHadoop入力形式のデータを処理できます。

これらの言語のコードを生成するには、Oracle Data IntegratorでHive、PigおよびSparkのデータ・サーバーを設定する必要があります。これらのデータ・サーバーは、マッピングにおいてHiveQL、Pig LatinまたはSparkのコードを生成するためのステージング領域として使用されます。

第2.2項「Oracle Data Integratorによる異なる言語のコードの生成」

6.2 Hiveデータ・サーバーの設定

Hiveデータ・サーバーを設定する手順は、次のとおりです。

1. 「トポロジ」タブをクリックします。

2. 「物理アーキテクチャ」ツリーの「テクノロジ」で、「Hive」を右クリックして「新規データ・サーバー」をクリックします。

3. 「定義」タブで、Hiveデータ・サーバーの詳細を指定します。
詳細は、第6.2.1項「Hiveデータ・サーバーの定義」を参照してください。

4. 「JDBC」タブで、Hiveデータ・サーバーの接続詳細を指定します。
詳細は、第6.2.2項「Hiveデータ・サーバー接続の詳細」を参照してください。

5. 「テスト接続」をクリックして、Hiveデータ・サーバーへの接続をテストします。

6.2.1 Hiveデータ・サーバーの定義

次の表は、新しいHiveデータ・サーバーを作成する場合に「定義」タブで指定する必要があるフィールドについて説明しています。

注意: Hiveデータ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。

表6-1 Hiveデータ・サーバーの定義

フィールド

説明

名前

Oracle Data Integratorに表示されるデータ・サーバーの名前。

データ・サーバー

データ・サーバーの物理名。

ユーザー/パスワード

Hiveユーザーとそのパスワード。

メタストアURI

HiveメタストアURI: thrift://BDA:10000など

Hadoopデータサーバー

Hiveデータ・サーバーに関連付けるHadoopデータ・サーバー。

追加クラスパス

追加のクラスパス。

第6.2項「Hiveデータ・サーバーの設定」

第3.1項「ビッグ・データ構成ウィザードの使用によるビッグ・データ・テクノロジの構成」

6.2.2 Hiveデータ・サーバー接続の詳細

次の表は、新しいHiveデータ・サーバーを作成する場合に「JDBC」タブで指定する必要があるフィールドについて説明しています。

注意: Hiveデータ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。

表6-2 Hiveデータ・サーバー接続の詳細

フィールド

説明

JDBCドライバ

DataDirect Apache Hive JDBC Driver

このJDBCドライバを使用してHiveデータ・サーバーに接続します。次のURLからこのドライバのドキュメントにアクセスできます。

http://media.datadirect.com/download/docs/jdbc/alljdbc/help.html#page/userguide/rfi1369069225784.html#

JDBC URL

jdbc:weblogic:hive://<host>:<port>[; property=value[;...]]

たとえば、次のようになります。jdbc:weblogic:hive://localhost:10000;DatabaseName=default;User=default;Password=default

第6.2項「Hiveデータ・サーバーの設定」

6.3 Hive物理スキーマの作成

『Oracle Data Integratorの管理』の物理スキーマの作成に関する項の説明に従って、標準の手順を使用してHive物理スキーマを作成します。

『Oracle Data Integratorの管理』の論理スキーマの作成に関する項の説明に従って、標準の手順を使用してこの物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。

第6.2項「Hiveデータ・サーバーの設定」

6.4 Pigデータ・サーバーの設定

Pigデータ・サーバーを設定する手順は、次のとおりです。

1. 「トポロジ」タブをクリックします。

2. 「物理アーキテクチャ」ツリーの「テクノロジ」で、「Pig」を右クリックして「新規データ・サーバー」をクリックします。

3. 「定義」タブで、Pigデータ・サーバーの詳細を指定します。
詳細は、第6.4.1項「Pigデータ・サーバーの定義」を参照してください。

4. 「プロパティ」タブで、Pigデータ・サーバーのプロパティを追加します。
詳細は、第6.4.2項「Pigデータ・サーバー・プロパティ」を参照してください。

5. 「テスト接続」をクリックして、Pigデータ・サーバーへの接続をテストします。

6.4.1 Pigデータ・サーバーの定義

次の表は、新しいPigデータ・サーバーを作成する場合に「定義」タブで指定する必要があるフィールドについて説明しています。

注意: Pigデータ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。

表6-3 Pigデータ・サーバーの定義

フィールド

説明

名前

Oracle Data Integratorに表示されるデータ・サーバーの名前。

データ・サーバー

データ・サーバーの物理名。

プロセス・タイプ

次のいずれかを選択します:

- ローカル・モード
ローカル・モードでジョブを実行する場合に選択します。

このモードでは、ローカル・ファイル・システムにあるpigスクリプトが実行されます。MapReduceジョブは作成されません。

- MapReduceモード
MapReduceモードでジョブを実行する場合に選択します。

このモードでは、HDFSにあるpigスクリプトが実行されます。MapReduceジョブが作成されます。

注意: このオプションが選択されている場合、Pigデータ・サーバーをHadoopデータ・サーバーに関連付ける必要があります。

Hadoopデータサーバー

Pigデータ・サーバーに関連付けるHadoopデータ・サーバー。

注意: このフィールドは、「MapReduceモード」オプションが「プロセス・タイプ」に設定されている場合にのみ表示されます。

追加クラスパス

追加のクラスパスを指定します。

次の追加クラスパスを追加します。

- /usr/lib/pig/lib

- /usr/lib/pig/pig-0.12.0-cdh<version>.jar
<version>はご自分のClouderaのバージョンに置き換えてください。例: /usr/lib/pig/pig-0.12.0-cdh5.3.0.jar。

- /usr/lib/hive/lib

- /usr/lib/hive/conf

pig-hcatalog-hiveには、前述のクラスパスに加えて次のクラスパスを追加します。

/usr/lib/hive-hcatalaog/share/hcatalog

ユーザー/パスワード

Pigユーザーとそのパスワード。

第6.4項「Pigデータ・サーバーの設定」

第3.1項「ビッグ・データ構成ウィザードの使用によるビッグ・データ・テクノロジの構成」

6.4.2 Pigデータ・サーバー・プロパティ

次の表は、新しいPigデータ・サーバーを作成する場合に「プロパティ」タブで追加する必要があるPigデータ・サーバー・プロパティについて説明しています。

表6-4 Pigデータ・サーバー・プロパティ

キー

値

hive.metastore.uris

thrift://bigdatalite.localdomain:9083

pig.additional.jars

/usr/lib/hive-hcatalog/share/hcatalog/*.jar:/usr/lib/hive/

第6.4項「Pigデータ・サーバーの設定」

6.5 Pig物理スキーマの作成

『Oracle Data Integratorの管理』の物理スキーマの作成に関する項の説明に従って、標準の手順を使用してPig物理スキーマを作成します。

『Oracle Data Integratorの管理』の論理スキーマの作成に関する項の説明に従って、標準の手順を使用してこの物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。

第6.4項「Pigデータ・サーバーの設定」

6.6 Sparkデータ・サーバーの設定

Sparkデータ・サーバーを設定する手順は、次のとおりです。

1. 「トポロジ」タブをクリックします。

2. 「物理アーキテクチャ」ツリーの「テクノロジ」で、Spark Pythonを右クリックして「新規データ・サーバー」をクリックします。

3. 「定義」タブで、Sparkデータ・サーバーの詳細を指定します。
詳細は、第6.6.1項「Sparkデータ・サーバーの定義」を参照してください。

4. 「プロパティ」タブで、Sparkデータ・サーバーのプロパティを指定します。
詳細は、第6.6.2項「Sparkデータ・サーバー・プロパティ」を参照してください。

5. 「テスト接続」をクリックして、Sparkデータ・サーバーへの接続をテストします。

6.6.1 Sparkデータ・サーバーの定義

次の表は、新しいSpark Pythonデータ・サーバーを作成する場合に「定義」タブで指定する必要があるフィールドについて説明しています。

注意: Spark Pythonデータ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。

表6-5 Sparkデータ・サーバーの定義

フィールド

説明

名前

Oracle Data Integratorに表示されるデータ・サーバーの名前。

マスター・クラスタ(データ・サーバー)

マスター・クラスタまたはデータ・サーバーの物理名。

ユーザー/パスワード

Sparkデータ・サーバーまたはマスター・クラスタのユーザーとそのパスワード。

Hadoop DataServer

Sparkデータ・サーバーに関連付けるHadoopデータ・サーバー。

注意: このフィールドは、ビッグ・データ構成ウィザードを使用してSparkデータ・サーバーを作成する場合にのみ表示されます。

追加クラスパス

次の追加のクラスパスがデフォルトで追加されます。

- /usr/lib/spark/*

- /usr/lib/spark/lib/*

必要に応じて、さらに追加のクラスパスを追加できます。

注意: このフィールドは、ビッグ・データ構成ウィザードを使用してSparkデータ・サーバーを作成する場合にのみ表示されます。

第6.6項「Sparkデータ・サーバーの設定」

第3.1項「ビッグ・データ構成ウィザードの使用によるビッグ・データ・テクノロジの構成」

6.6.2 Sparkデータ・サーバー・プロパティ

次の表は、新しいSparkデータ・サーバーを定義する場合に「プロパティ」タブで構成可能なプロパティについて説明しています。

注意: 次の表にリストされているプロパティ以外にも、「プロパティ」タブでSpark構成プロパティを追加できます。ここで追加する構成プロパティは、マッピングの実行時に適用されます。構成プロパティの詳細は、次のURLで入手可能なSparkのドキュメントを参照してください。

http://spark.apache.org/docs/latest/configuration.html

表6-6 Sparkデータ・サーバー・プロパティ

プロパティ

説明

archives

各エグゼキュータの作業ディレクトリに抽出されるアーカイブのカンマ区切りリスト。

deploy-mode

ドライバ・プログラムをローカルで起動するか(client)、それともクラスタ内のいずれかのワーカー・マシンで起動するか(cluster)。

driver-class-path

ドライバを渡すためのクラスパス・エントリ。--jarsにより追加されたjarは自動的にクラスパスに含められます。

driver-cores

Yarn Clusterモードでドライバにより使用されるコアの数。

driver-java-options

ドライバを渡すための追加のJavaオプション。

driver-library-path

ドライバを渡すための追加のライブラリ・パス・エントリ。

driver-memory

ドライバに対するメモリー(1000M、2Gなど)。デフォルト値は512Mです。

executor-cores

エグゼキュータ当たりのコア数。デフォルト値は、YARNモードの場合は1、スタンドアロン・モードの場合はワーカーで使用可能なすべてのコアです。

executor-memory

エグゼキュータ当たりのメモリー(1000M、2Gなど)。デフォルト値は1Gです。

jars

ドライバおよびエグゼキュータのクラスパスに含めるローカルjarのカンマ区切りリスト。

num-executors

起動するエグゼキュータの数。デフォルト値は2です。

odi-execution-mode

ODI実行モードで、SYNCまたはASYNCのいずれか。

properties-file

その他のプロパティのロード元となるファイルのパス。指定がない場合、conf/spark-defaults.confを検索します。

py-files

実行する追加のpythonファイル。

queue

送信先のYARNキュー。デフォルト値はdefaultです。

spark-home-dir

Sparkインストールのホーム・ディレクトリ。

spark-web-port

Spark UIのWebポート。デフォルト値は1808です。

spark-work-dir

生成されたpythonファイルを格納する、ODI Sparkマッピングの作業ディレクトリ。

supervise

構成されている場合、失敗時にドライバを再開します(Sparkスタンドアロン・モード)。

total-executor-cores

すべてのエグゼキュータの合計コア数(Sparkスタンドアロン・モード)。

yarn-web-port

yarnのWebポートで、デフォルト値は8088です。

第6.6項「Sparkデータ・サーバーの設定」

第3.1項「ビッグ・データ構成ウィザードの使用によるビッグ・データ・テクノロジの構成」

6.7 Spark物理スキーマの作成

『Oracle Data Integratorの管理』の物理スキーマの作成に関する項の説明に従って、標準の手順を使用してSpark物理スキーマを作成します。

『Oracle Data Integratorの管理』の論理スキーマの作成に関する項の説明に従って、標準の手順を使用してこの物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。

第6.6項「Sparkデータ・サーバーの設定」

6.8 異なる言語のコードの生成

デフォルトでは、Oracle Data IntegratorはHiveQLコードを生成します。Pig LatinまたはSparkコードを生成するには、Pigデータ・サーバーまたはSparkデータ・サーバーをマッピングのステージング場所として使用する必要があります。

これらの言語のコードを生成するには、Hive、PigおよびSparkのデータ・サーバーが設定されている必要があります。

詳細は、次の各項を参照してください。

第6.2項「Hiveデータ・サーバーの設定」

第6.4項「Pigデータ・サーバーの設定」

第6.6項「Sparkデータ・サーバーの設定」

異なる言語のコードを生成する手順は、次のとおりです。

1. マッピングを開きます。

2. HiveQLコードを生成するには、デフォルトのステージング場所(Hive)でマッピングを実行します。

3. Pig LatinまたはSparkコードを生成するには、「物理」ダイアグラムに移動し、次のいずれかを実行します。

1. Pig Latinコードを生成するには、「実行ヒント」オプションを設定してPigデータ・サーバーをマッピングのステージング場所として使用します。

2. Sparkコードを生成するには、「実行ヒント」オプションを設定してSparkデータ・サーバーをマッピングのステージング場所として使用します。

4. マッピングを実行します。

第6.1項「Oracle Data Integratorでサポートされている問合せ処理エンジン」

第2.2項「Oracle Data Integratorによる異なる言語のコードの生成」

7 構造化されていないデータおよび複合データの使用

この章では、不規則コンポーネントおよびフラット化コンポーネントの概要を示します。これらのコンポーネントは、構造化されていないデータおよび複合データを処理するのに役立ちます。

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

- 第7.1項「構造化されていないデータの使用」

- 第7.2項「複合データの使用」

7.1 構造化されていないデータの使用

Oracle Data Integratorでは、構造化されていないデータを処理可能な不規則コンポーネントを提供します。ソーシャル・メディアやeコマース・ビジネスなどのソースからのソース・データは、キーと値の自由形式で表されます。不規則コンポーネントを使用して、このデータをデータベース表にロード可能な構造化エンティティに変換できます。

不規則コンポーネントおよびそれに関連するKMの使用の詳細は、次の項を参照してください。

- Oracle Data Integratorでの統合プロジェクトの開発の不規則コンポーネントの作成

- 第D.3項「XKM Jagged」

7.2 複合データの使用

Oracle Data Integratorは、複雑な構造を持つ入力データを処理でき、標準データ型を使用して同じデータのフラット化表現を生成するフラット化コンポーネントを提供します。入力データはデータベースでも、XMLでも、あるいはその他のソースでもかまいません。

フラット化コンポーネントおよびそれに関連するKMの使用の詳細は、次の項を参照してください。

- Oracle Data Integratorでの統合プロジェクトの開発のフラット化コンポーネントの作成

- 第D.1項「XKM Oracle Flatten」

- 第D.3項「XKM Jagged」

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

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

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

- 第A.1項「LKM SQL to Hive SQOOP」

- 第A.2項「LKM SQL to File SQOOP Direct」

- 第A.3項「LKM SQL to HBase SQOOP Direct」

- 第A.4項「LKM File to SQL SQOOP」

- 第A.5項「LKM Hive to SQL SQOOP」

- 第A.6項「LKM HBase to SQL SQOOP」

- 第A.7項「IKM Hive Append」

- 第A.8項「LKM File to Hive LOAD DATA」

- 第A.9項「LKM File to Hive LOAD DATA Direct」

- 第A.10項「LKM HBase to Hive HBASE-SERDE」

- 第A.11項「LKM Hive to HBase Incremental Update HBASE-SERDE Direct」

- 第A.12項「LKM Hive to File Direct」

- 第A.13項「XKM Hive Sort」

- 第A.14項「LKM File to Oracle OLH-OSCH」

- 第A.15項「LKM File to Oracle OLH-OSCH Direct」

- 第A.16項「LKM Hive to Oracle OLH-OSCH」

- 第A.17項「LKM Hive to Oracle OLH-OSCH Direct」

- 第A.18項「RKM Hive」

- 第A.19項「RKM HBase」

- 第A.20項「IKM File to Hive (非推奨)」

- 第A.21項「LKM HBase to Hive (HBase-SerDe) [非推奨]」

- 第A.22項「IKM Hive to HBase Incremental Update (HBase-SerDe) [非推奨]」

- 第A.23項「IKM SQL to Hive-HBase-File (SQOOP) [非推奨]」

- 第A.24項「IKM Hive Control Append (非推奨)」

- 第A.25項「CKM Hive (非推奨)」

- 第A.26項「IKM Hive Transform (非推奨)」

- 第A.27項「IKM File-Hive to Oracle (OLH-OSCH) [非推奨]」

- 第A.28項「IKM File-Hive to SQL (SQOOP) [非推奨]」

A.1 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コネクタ・プロパティの追加のオプション・プロパティ。

A.2 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コネクタ・プロパティの追加のオプション・プロパティ。

A.3 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コネクタ・プロパティの追加のオプション・プロパティ。

A.4 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コネクタ・プロパティの追加のオプション・プロパティ。

A.5 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コネクタ・プロパティの追加のオプション・プロパティ。

A.6 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コネクタ・プロパティの追加のオプション・プロパティ。

A.7 IKM Hive Append

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

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

表A-7 IKM Hive Append

オプション

説明

CREATE_TARG_TABLE

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

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

TRUNCATE

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

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

A.8 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-8 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]*) (\".*?\") (\".*?\") (\".*?\")"

A.9 LKM File to Hive LOAD DATA Direct

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

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

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

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

表A-9 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]*) (\".*?\") (\".*?\") (\".*?\")"

A.10 LKM HBase to Hive HBASE-SERDE

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

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

A.11 LKM Hive to HBase Incremental Update HBASE-SERDE Direct

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

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

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

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

オプション

説明

CREATE_TARG_TABLE

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

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

TRUNCATE

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

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

HBASE_WAL

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

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

DELETE_TEMPORARY_OBJECTS

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

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

A.12 LKM Hive to File Direct

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

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

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

表A-11 LKM Hive to File Direct

オプション

説明

FILE_IS_LOCAL

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

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

STORED_AS

ファイル・フォーマット

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

A.13 XKM Hive Sort

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

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

表A-12 XKM Hive Sort

オプション

説明

SORT_MODE

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

A.14 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-13 LKM Hive 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")?>)"を使用する場合は空白のままにしておきます。

A.15 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-14 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")?>)"を使用する場合は空白のままにしておきます。

A.16 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-15 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")?>)"を使用する場合は空白のままにしておきます。

A.17 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-16 LKM Hive to Oracle OLH-OSCH

オプション

説明

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")?>)"を使用する場合は空白のままにしておきます。

A.18 RKM Hive

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

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

- Oracle Data Integrator属性としてのHive列およびそれらのデータ型。

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

A.19 RKM HBase

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

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

- Oracle Data Integrator属性としてのHBase列およびそれらのデータ型。

- Oracle Data Integrator属性としてのHBase一意行キー(key)。

注意:
このRKMではロギングにoracle.odi.kmロガーを使用します。次に示すように、ODI-logging-config.xmlでoracle.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-17 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ライクなワイルドカードであるパーセント(%)およびアンダースコア(_)を使用できます。デフォルトでは、すべての列ファミリがスキャンされます。

A.20 IKM File to Hive (非推奨)

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

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

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

- ファイル形式:

- 固定長

- デリミタ付き

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

- ロード・オプション:

- 即時または遅延ロード

- 上書きまたは追加

- Hive外部表

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

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

オプション

説明

CREATE_TARG_TABLE

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

TRUNCATE

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

FILE_IS_LOCAL

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

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

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

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

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

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

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' 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_TABLEがfalseに設定されている場合、ターゲット列の数は、SerDeにより返される列の数(前述の例では正規表現のグループの数)と一致している必要があります。ソース列の数は無視されます(少なくとも1列をターゲットにマップする必要があります)。すべてのソース・データは列順序に従ってターゲット表構造にマップされ、SerDeの最初の列は最初のターゲット列にマップされ、SerDeの2番目の列は2番目のターゲット列にマップされます(以降も同様です)。USE_STAGE_TABLEがtrueに設定されている場合、ソース・データストアの列数は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)以上が必要です。

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

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

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

- 単一ソースのHBase表。

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

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

オプション

説明

DELETE_TEMPORARY_OBJECTS

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

A.22 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-20 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を無効にできます。

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

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

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

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

- ステージングでの結合

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

- データセット

- ルックアップ

- 導出表

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

表A-21 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コネクタ・プロパティ。

A.24 IKM Hive Control Append (非推奨)

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

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

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

表A-22 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)以上が必要です。

A.25 CKM Hive (非推奨)

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

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

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

表A-23 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)以上が必要です。

A.26 IKM Hive Transform (非推奨)

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

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

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

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

表A-24 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

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

A.27 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の要件に従う必要があります。

関連項目:

- HadoopおよびHiveの必須バージョンについては、『Oracle Big Data Connectorsユーザーズ・ガイド』のOracle Loader for Hadoopの設定に関する項を参照してください。

- 必要な環境変数の設定については、Hadoopジョブを実行するためのOracle Data Integratorエージェントの構成を参照してください。

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

表A-25 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_STAGINGがfalseに設定されている場合、ターゲット表をパーティション化する必要があります。USE_ORACLE_STAGINGがtrueに設定されている場合、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_TABLEがtrueに設定されている場合(デフォルト)、外部表は一時(I$)表として作成されます。次に、このI$表データがターゲット表に挿入されます。このオプションをfalseに設定できるのは、次のすべての条件に該当する場合のみです。

- OLH_OUTPUT_MODEがJDBCまたは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>

A.28 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-26 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_TABLEがfalseに設定されている場合、ターゲット表に対する変更はアトミックでなくなり、ライタが失敗するとターゲット表が部分的に更新されることがあります。

- 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コネクタ・プロパティ。

B Pigナレッジ・モジュール

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

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

- 第B.1項「LKM File to Pig」

- 第B.2項「LKM Pig to File」

- 第B.3項「LKM HBase to Pig」

- 第B.4項「LKM Pig to HBase」

- 第B.5項「LKM Hive to Pig」

- 第B.6項「LKM Pig to Hive」

- 第B.7項「LKM SQL to Pig SQOOP」

- 第B.8項「XKM Pig Aggregate」

- 第B.9項「XKM Pig Distinct」

- 第B.10項「XKM Pig Expression」

- 第B.11項「XKM Pig Filter」

- 第B.12項「XKM Pig Flatten」

- 第B.13項「XKM Pig Join」

- 第B.14項「XKM Pig Lookup」

- 第B.15「XKM Pig Pivot」

- 第B.16項「XKM Pig Set」

- 第B.17項「XKM Pig Sort」

- 第B.18項「XKM Pig Split」

- 第B.19項「XKM Pig Subquery Filter」

- 第B.20項「XKM Pig Table Function」

- 第B.21項「XKM Pig Unpivot」

B.1 LKM File to Pig

このKMは、データをファイルからPigにロードします。

サポートされているデータ形式は次のとおりです。

- デリミタ付き

- JSON

- Pigバイナリ

- テキスト

- Avro

- Trevni

- カスタム

データはローカル・ファイル・システムまたはHDFSにロードおよび書込みできます。

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

表B-1 LKM File to Pig

オプション

説明

ストレージ関数

データをロードするのに使用されるストレージ関数。

データをロードするのに使用されるストレージ関数を選択します。

複合フィールドのスキーマ

カンマ(,)で区切られた単純/複合フィールドのpigスキーマ。

pigスキーマ形式でフィールドのデータ型を再定義します。このオプションでは主に、データ・ストア属性のデフォルトのデータ型変換を、たとえばPO_NO:int,PO_TOTAL:long MOVIE_RATING:{(RATING:double,INFO:chararray)}のように上書きできます。ここで定義されるフィールドの名前はデータストアの属性名と一致している必要があります。

関数クラス

データをロードするストレージ関数として使用するクラスの完全修飾名。

データをロードするストレージ関数として使用するクラスの完全修飾名を指定します。

関数パラメータ

カスタム関数に必要なパラメータ。

ローダー関数で必要なパラメータを指定します。

たとえば、XMLLoader関数はXMLLoader('MusicStore', 'movie', 'id:double, name:chararray, director:chararry', options)のようになります

ここで、最初の3つの引数はパラメータで、-rootElement MovieStore -tableName movie -schemaのように指定できます。

ここで、

MusicStore - xmlのルート要素

movie - IDや名前といった子要素をラップする要素

3つ目の引数はpigスキーマのデータの表現です。

パラメータの名前は任意であり、パラメータの数はいくつあってもかまいません。

オプション

ストレージ関数に必要な追加のオプション。

ストレージ関数に必要な追加のオプションを指定します。

たとえば、XMLLoader関数はXMLLoader('MusicStore', 'movie', 'id:double, name:chararray, director:chararry', options)のようになります

最後の引数オプションは-namespace com.imdb -encoding utf8のように指定できます

Jar

ストレージ関数クラスおよび依存ライブラリがコロン(:)で区切って格納されたjar。

ストレージ関数クラスおよび依存ライブラリがコロン(:)で区切って格納されたjarを指定します。

ストレージ・コンバータ

バイト配列からPigの各内部タイプにキャストする関数を提供するコンバータ。

バイト配列からPigの各内部タイプにキャストする関数を提供するコンバータを指定します。

サポートされているコンバータはUtf8StorageConverterです。

B.2 LKM Pig to File

このKMはpigからファイルにデータをアンロードします。

サポートされているデータ形式は次のとおりです。

- デリミタ付き

- JSON

- Pigバイナリ

- テキスト

- Avro

- Trevni

- カスタム

データはローカル・ファイル・システムまたはHDFSに保存できます。

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

表B-2 LKM Pig to File

オプション

説明

ストレージ関数

データをロードするのに使用されるストレージ関数。

データをロードするのに使用されるストレージ関数を選択します。

スキーマの保存

選択した場合、隠しJSONファイルを使用して関係のスキーマを保存します。

レコード名

保存する一連のタプルに割り当てられるAvroレコード名。

保存する一連のタプルに割り当てられる名前を指定します。

ネームスペース

データの保存の際にAvro/Trevniレコードに割り当てられるネームスペース。

保存する一連のタプルのネームスペースを指定します。

ターゲット・ファイルの削除

Pigがファイルに書き込む前にターゲット・ファイルを削除します。

選択すると、ターゲット・ファイルはデータを保存する前に削除されます。このオプションにより、ターゲット・ファイルを効率的に上書きできます。

関数クラス

データをロードするストレージ関数として使用するクラスの完全修飾名。

データをロードするストレージ関数として使用するクラスの完全修飾名を指定します。

関数パラメータ

カスタム関数に必要なパラメータ。

ローダー関数で必要なパラメータを指定します。

たとえば、XMLLoader関数はXMLLoader('MusicStore', 'movie', 'id:double, name:chararray, director:chararry', options)のようになります

ここで、最初の3つの引数はパラメータで、-rootElement MovieStore -tableName movie -schemaのように指定できます。

ここで、

MusicStore - xmlのルート要素

movie - IDや名前といった子要素をラップする要素

3つ目の引数はpigスキーマのデータの表現です。

パラメータの名前は任意であり、パラメータの数はいくつあってもかまいません。

オプション

ストレージ関数に必要な追加のオプション。

ストレージ関数に必要な追加のオプションを指定します。

たとえば、XMLLoader関数はXMLLoader('MusicStore', 'movie', 'id:double, name:chararray, director:chararry', options)のようになります

最後の引数オプションは-namespace com.imdb -encoding utf8のように指定できます

Jar

ストレージ関数クラスおよび依存ライブラリがコロン(:)で区切って格納されたjar。

ストレージ関数クラスおよび依存ライブラリがコロン(:)で区切って格納されたjarを指定します。

ストレージ・コンバータ

バイト配列からPigの各内部タイプにキャストする関数を提供するコンバータ。

バイト配列からPigの各内部タイプにキャストする関数を提供するコンバータを指定します。

サポートされているコンバータはUtf8StorageConverterです。

B.3 LKM HBase to Pig

このKMは、HBaseStorage関数を使用してデータをhbase表からPigにロードします。

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

表B-3 LKM HBase to Pig

オプション

説明

ストレージ関数

データをロードするのに使用されるストレージ関数。

hbase表からpigへのロードにはHBaseStorageが使用されます。

行キーのロード

HBaseから返される各タプルの最初の値として行キーをロードします。

選択した場合、HBaseから返される各タプルの最初の値として行キーをロードします。行キーはODIのHBaseデータ・ストアの'key'列にマップされます。

最小キーより大きい

キーがこのオプションで指定されたキーより大きい行をロードします。

キーが指定のキー値より大きい行がロードされるようキー値を指定します。

最小キーより小さい

行キーがこのオプションで指定された値より小さい行をロードします。

キーが指定のキー値より小さい行がロードされるようキー値を指定します。

最小キー以上

キーがこのオプションで指定されたキーと同じかそれより大きい行をロードします。

キーが指定のキー値以上である行がロードされるようキー値を指定します。

最小キー以下

行キーがこのオプションで指定された値と同じかそれより小さい行をロードします。

キーが指定のキー値以下である行がロードされるようキー値を指定します。

行の制限

リージョン当たりの取得する最大行数。

リージョン当たりの取得する最大行数を指定します。

キャッシュされる行

キャッシュする行数。

キャッシュする行の数を指定します。

ストレージ・コンバータ

値を変換するのに使用するキャスタの名前。

値を変換するのに使用するキャスタのクラス名を指定します。サポートされている値は、HBaseBinaryConverterおよびUtf8StorageConverterです。指定しない場合、デフォルト値はUtf8StorageConverterになります。

列のデリミタ

HBaseStorage関数の列リストの列を区切るのに使用されるデリミタ。

HBaseStorage関数の列リストの列を区切るのに使用されるデリミタを指定します。指定しない場合、デフォルト値は空白になります。

タイムスタンプ

作成タイムスタンプがこの値と等しいセル値を返します。

作成タイムスタンプが指定の値と等しいセル値を返すようにタイムスタンプを指定します。

最小タイムスタンプ

作成タイムスタンプがこの値より小さいセル値を返します。

作成タイムスタンプが指定の値より小さいセル値を返すようタイムスタンプを指定します。

最大タイムスタンプ

作成タイムスタンプがこの値より小さいセル値を返します。

作成タイムスタンプが指定の値と同じかそれより大きいセル値を返すようタイムスタンプを指定します。

B.4 LKM Pig to HBase

このKMは、HBaseStorage関数を使用してデータをhbase表に保存します。

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

表B-4 LKM Pig to HBase

オプション

説明

ストレージ関数

データを保存するのに使用されるストレージ関数。これは読取り専用のオプションで、変更できません。

hbase表へのデータのロードにはHBaseStore関数が使用されます。

ストレージ・コンバータ

値を変換するのに使用するキャスタの名前。

値を変換するのに使用するキャスタのクラス名を指定します。サポートされている値は、HBaseBinaryConverterおよびUtf8StorageConverterです。指定しない場合、デフォルト値はUtf8StorageConverterになります。

列のデリミタ

HBaseStorage関数の列リストの列を区切るのに使用されるデリミタ。

HBaseStorage関数の列リストの列を区切るのに使用されるデリミタを指定します。指定しない場合、デフォルト値は空白になります。

先行書込みログの無効化

trueの場合、HBaseへのロードの速度を上げるために先行書込みログがfalseに設定されます。

選択された場合、HBaseへのロードの速度を上げるために先行書込みログがfalseに設定されます。この設定はデータ損失を招くおそれがあるため、十分注意して使用する必要があります。デフォルト値はfalseです。

B.5 LKM Hive to Pig

このKMは、HCatalogを使用してデータをhive表からPigにロードします。

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

表B-5 LKM Hive to Pig

オプション

説明

ストレージ関数

データをロードするのに使用されるストレージ関数。これは読取り専用のオプションで、変更できません。

hive表からのデータのロードにはHCatLoaderが使用されます。

B.6 LKM Pig to Hive

このKMは、HCatalogを使用してデータをhive表に保存します。

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

Table B-6 LKM Pig to Hive

オプション

説明

ストレージ関数

データをロードするのに使用されるストレージ関数。これは読取り専用のオプションで、変更できません。

hive表へのデータの保存にはHCatStorerが使用されます。

パーティション

作成する新規パーティション。

パーティションのキー/値のペアを表します。パーティション化された表に書き込む際、パーティション列が出力列にない場合、これは必須引数です。パーティション・キーの値は引用符で囲まないでください。

B.7 LKM SQL to Pig SQOOP

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

次の手順が実行されます。

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

2. SQOOPを実行してソース・データを抽出し、csv形式のステージング・ファイルにインポートします。

3. LKM File To Pig KMを実行して、ステージング・ファイルをPIGにロードします。

4. ステージング・ファイルを削除します。

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

表B-7 LKM File to Pig

オプション

説明

STAGING_FILE_DELIMITER

Sqoopはこのデリミタを使用して一時ファイルを作成します。指定しない場合は、\\tが使用されます。

ストレージ関数

データをロードするのに使用されるストレージ関数。

データをロードするのに使用されるストレージ関数を選択します。

複合フィールドのスキーマ

カンマ(,)で区切られた単純/複合フィールドのpigスキーマ。

pigスキーマ形式でフィールドのデータ型を再定義します。このオプションでは主に、データ・ストア属性のデフォルトのデータ型変換を、たとえばPO_NO:int,PO_TOTAL:long MOVIE_RATING:{(RATING:double,INFO:chararray)}のように上書きできます。ここで定義されるフィールドの名前はデータストアの属性名と一致している必要があります。

関数クラス

データをロードするストレージ関数として使用するクラスの完全修飾名。

データをロードするストレージ関数として使用するクラスの完全修飾名を指定します。

関数パラメータ

カスタム関数に必要なパラメータ。

ローダー関数で必要なパラメータを指定します。

たとえば、XMLLoader関数はXMLLoader('MusicStore', 'movie', 'id:double, name:chararray, director:chararry', options)のようになります

ここで、最初の3つの引数はパラメータで、-rootElement MovieStore -tableName movie -schemaのように指定できます。

ここで、

MusicStore - xmlのルート要素

movie - IDや名前といった子要素をラップする要素

3つ目の引数はpigスキーマのデータの表現です。

パラメータの名前は任意であり、パラメータの数はいくつあってもかまいません。

オプション

ストレージ関数に必要な追加のオプション。

ストレージ関数に必要な追加のオプションを指定します。

たとえば、XMLLoader関数はXMLLoader('MusicStore', 'movie', 'id:double, name:chararray, director:chararry', options)のようになります

最後の引数オプションは-namespace com.imdb -encoding utf8のように指定できます

Jar

ストレージ関数クラスおよび依存ライブラリがコロン(:)で区切って格納されたjar。

ストレージ関数クラスおよび依存ライブラリがコロン(:)で区切って格納されたjarを指定します。

ストレージ・コンバータ

バイト配列からPigの各内部タイプにキャストする関数を提供するコンバータ。

バイト配列からPigの各内部タイプにキャストする関数を提供するコンバータを指定します。

サポートされているコンバータはUtf8StorageConverterです。

B.8 XKM Pig Aggregate

SUMやGROUP BYなどを使用して行を集約します。

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

表B-8 XKM Pig Aggregate

オプション

説明

USING_ALGORITHM

集計タイプで、collectedまたはmergeです。

PARTITION_BY

Hadoopパーティショナを指定します。

PARTITIONER_JAR

このジョブの並列度を高めます。

PARALLEL_NUMBER

このジョブの並列度を高めます。

B.9 XKM Pig Distinct

データの重複を排除します。

B.10 XKM Pig Expression

単一のマッピングにおいて再使用される式を定義します。

B.11 XKM Pig Filter

フィルタ条件に基づいてデータのサブセットを生成します。

B.12 XKM Pig Flatten

指定のオプションに基づいて複合データをネスト解除します。

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

表B-9 XKM Pig Flatten

オプション

説明

デフォルト式

nullのネストされた表オブジェクトのデフォルト式。例: rating_table(obj_rating('-1', 'Unknown'))

nullの各ネストされた表オブジェクトに対するデフォルト値が設定された行を返すのに使用されます。

B.13 XKM Pig Join

結合条件に基づいて複数の入力ソースを結合します。

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

表B-10 XKM Pig Join

オプション

説明

USING_ALGORITHM

結合タイプで、replicated、skewedまたはmergeです。

PARTITION_BY

Hadoopパーティショナを指定します。

PARTITIONER_JAR

このジョブの並列度を高めます。

PARALLEL_NUMBER

このジョブの並列度を高めます。

B.14 XKM Pig Lookup

派生データ・ソースのデータをルックアップします。

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

表B-11 XKM Pig Lookup

オプション

説明

Jar

使用されている定義済関数クラスおよび依存ライブラリがコロン(:)で区切って格納されたjar。

B.15 XKM Pig Pivot

別々の行のデータを取得して集計し、列に変換します。

B.16 XKM Pig Set

UNION、MINUSまたはその他の集合演算を実行します。

B.17 XKM Pig Sort

式を使用してデータをソートします。

B.18 XKM Pig Split

データを複数の条件により複数のパスに分割します。

B.19 XKM Pig Subquery Filter

副問合せの結果に基づいて行をフィルタします。

B.20 XKM Pig Table Function

Pig表関数アクセス。

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

表B-12 XKM Pig Table Function

オプション

説明

PIG_SCRIPT_CONTENT

ユーザー指定のpigスクリプト・コンテンツ。

B.21 XKM Pig Unpivot

複数の属性の単一行を複数の行に効率的に変換します。

C Sparkナレッジ・モジュール

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

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

- 第C.1項「LKM File to Spark」

- 第C.2項「LKM Spark to File」

- 第C.3項「LKM Hive to Spark」

- 第C.4項「LKM Spark to Hive」

- 第C.5項「XKM Spark Aggregate」

- 第C.6項「XKM Spark Distinct」

- 第C.7項「XKM Spark Expression」

- 第C.8項「XKM Spark Filter」

- 第C.9項「XKM Spark Flatten」

- 第C.10項「XKM Spark Join」

- 第C.11項「XKM Spark Lookup」

- 第C.12項「XKM Spark Pivot」

- 第C.13項「XKM Spark Set」

- 第C.14項「XKM Spark Sort」

- 第C.15項「XKM Spark Split」

- 第C.16項「XKM Spark Table Function」

- 第C.17項「IKM Spark Table Function」

- 第C.18「XKM Spark Unpivot」

C.1 LKM File to Spark

このKMはデータをファイルからSpark Python変数にロードし、実行ユニット、ソース・テクノロジであるファイル、ターゲット・テクノロジであるSpark Pythonの間のAPで定義できます。

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

表C-1 LKM File to Spark

オプション

説明

ストレージ関数

データをロード/保存するのに使用されるストレージ関数。

CACHE_DATA

デフォルト・ストレージ・レベルを使用してデータを永続化します。

InputFormatClass

Hadoop InputFormatのクラス名。

例: org.apache.hadoop.mapreduce.lib.input.TextInputFormat。

KeyClass

キーWritableクラスの完全修飾クラス名。

例: org.apache.hadoop.io.Text。

ValueClass

値Writableクラスの完全修飾クラス名。

例: org.apache.hadoop.io.LongWritable。

KeyConverter

キー・コンバータ・クラスの完全修飾クラス名。

ValueConverter

値コンバータ・クラスの完全修飾クラス名。

ジョブ構成

Hadoop構成。

例: {'hbase.zookeeper.quorum': 'HOST', 'hbase.mapreduce.inputtable': 'TAB'}

C.2 LKM Spark to File

このKMはデータをSpark Python変数からファイルに保存し、実行ユニット、ソース・テクノロジであるSpark Python、ターゲット・テクノロジであるファイルの間のAPで定義できます。

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

表C-2 LKM Spark to File

オプション

説明

ストレージ関数

データをロード/保存するのに使用されるストレージ関数。

InputFormatClass

Hadoop InputFormatのクラス名。

例: org.apache.hadoop.mapreduce.lib.input.TextInputFormat。

KeyClass

キーWritableクラスの完全修飾クラス名。

例: org.apache.hadoop.io.Text。

ValueClass

値Writableクラスの完全修飾クラス名。

例: org.apache.hadoop.io.LongWritable。

KeyConverter

キー・コンバータ・クラスの完全修飾クラス名。

ValueConverter

値コンバータ・クラスの完全修飾クラス名。

ジョブ構成

Hadoop構成。

例: {'hbase.zookeeper.quorum': 'HOST', 'hbase.mapreduce.inputtable': 'TAB'}

C.3 LKM Hive to Spark

このKMはデータをHive表からSpark Python変数にロードし、実行ユニット、ソース・テクノロジであるHive、ターゲット・テクノロジであるSpark Pythonの間のAPで定義できます。

C.4 LKM Spark to Hive

このKMはデータをSpark Python変数からHive表に保存し、実行ユニット、ソース・テクノロジであるSpark Python、ターゲット・テクノロジであるHiveの間のAPで定義できます。

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

表C-3 LKM Spark to Hive

オプション

説明

CREATE_TARGET_TABLE

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

OVERWRITE_TARGET_TABLE

ターゲット表を上書きします。

C.5 XKM Spark Aggregate

SUMやGROUP BYなどを使用して行を集約します。

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

表C-4 XKM Spark Aggregate

オプション

説明

CACHE_DATA

デフォルト・ストレージ・レベルを使用してデータを永続化します。

NUMBER_OF_TASKS

タスク番号。

C.6 XKM Spark Distinct

データの重複を排除します。

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

表C-5 XKM Spark Distinct

オプション

説明

CACHE_DATA

デフォルト・ストレージ・レベルを使用してデータを永続化します。

C.7 XKM Spark Expression

単一のマッピングにおいて再使用される式を定義します。

C.8 XKM Spark Filter

フィルタ条件に基づいてデータのサブセットを生成します。

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

表C-6 XKM Spark Filter

オプション

説明

CACHE_DATA

デフォルト・ストレージ・レベルを使用してデータを永続化します。

C.9 XKM Spark Flatten

指定のオプションに基づいて複合データをネスト解除します。

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

表C-7 XKM Spark Flatten

オプション

説明

デフォルト式

nullのネストされた表オブジェクトのデフォルト式。例: rating_table(obj_rating('-1', 'Unknown'))。

nullの各ネストされた表オブジェクトに対するデフォルト値が設定された行を返すのに使用されます。

CACHE_DATA

TRUEに設定すると、Sparkのデフォルト・ストレージ・レベルを使用して結果を永続化します。

デフォルトはFALSEです。

C.10 XKM Spark Join

結合条件に基づいて複数の入力ソースを結合します。

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

表C-8 XKM Spark Join

オプション

説明

CACHE_DATA

デフォルト・ストレージ・レベルを使用してデータを永続化します。

NUMBER_OF_TASKS

タスク番号。

C.11 XKM Spark Lookup

派生データ・ソースのデータをルックアップします。

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

表C-9 XKM Spark Join

オプション

説明

CACHE_DATA

デフォルト・ストレージ・レベルを使用してデータを永続化します。

NUMBER_OF_TASKS

タスク番号。

C.12 XKM Spark Pivot

別々の行のデータを取得して集計し、列に変換します。

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

表C-10 XKM Spark Pivot

オプション

説明

CACHE_DATA

デフォルト・ストレージ・レベルを使用してデータを永続化します。

C.13 XKM Spark Set

UNION、MINUSまたはその他の集合演算を実行します。

C.14 XKM Spark Sort

式を使用してデータをソートします。

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

表C-11 XKM Spark Sort

オプション

説明

CACHE_DATA

デフォルト・ストレージ・レベルを使用してデータを永続化します。

NUMBER_OF_TASKS

タスク番号。

C.15 XKM Spark Split

データを複数の条件により複数のパスに分割します。

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

表C-12 XKM Spark Split

オプション

説明

CACHE_DATA

デフォルト・ストレージ・レベルを使用してデータを永続化します。

C.16 XKM Spark Table Function

Spark表関数アクセス。

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

表C-13 XKM Spark Table Function

オプション

説明

SPARK_SCRIPT_FILE

ユーザーがsparkスクリプト・ファイルのパスを指定します。

CACHE_DATA

デフォルト・ストレージ・レベルを使用してデータを永続化します。

C.17 IKM Spark Table Function

ターゲットとしてのSpark表関数。

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

表C-14 IKM Spark Table Function

オプション

説明

SPARK_SCRIPT_FILE

ユーザーがsparkスクリプト・ファイルのパスを指定します。

CACHE_DATA

デフォルト・ストレージ・レベルを使用してデータを永続化します。

C.18 XKM Spark Unpivot

複数の属性の単一行を複数の行に効率的に変換します。

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

表C-15 XKM Spark Unpivot

オプション

説明

CACHE_DATA

デフォルト・ストレージ・レベルを使用してデータを永続化します。

D コンポーネント・ナレッジ・モジュール

この付録では、フラット化および不規則コンポーネント用のナレッジ・モジュールについて説明します。

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

- 第D.1項「XKM Oracle Flatten」

- 第D.2項「XKM Oracle Flatten XML」

- 第D.3項「XKM Jagged」

D.1 XKM Oracle Flatten

指定のオプションに基づいて複合データをネスト解除します。

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

表D-1 XKM Oracle Flatten

オプション

説明

NESTED_TABLE_ALIAS

ネストされた表の式に対して使用される別名。

デフォルトはNSTです。

DEFAULT_EXPRESSION

nullのネストされた表オブジェクトのデフォルト式。例: rating_table(obj_rating('-1', 'Unknown'))。

D.2 XKM Oracle Flatten XML

指定のオプションに基づいてXMLファイル内の複合データをネスト解除します。

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

表D-2 XKM Oracle Flatten XML

オプション

説明

XML_XPATH

XMLTABLE関数のXMLパスを指定します。例: '/ratings/rating'。

XML_IS_ATTRIBUTE

データがレコード・タグの属性値として保存される場合はTrueに設定します。例: <row attribute1=..." /> "

XML_TABLE_ALIAS

XMLTABLE式で使用される別名。

デフォルトはXMLTです。

DEFAULT_EXPRESSION

nullのXMLTYPEオブジェクトのデフォルト式。例: <row> < attribute1/><row/>

nullの各XMLTYPEオブジェクトに対してデフォルト値が設定された行を返すのに使用されます。

D.3 XKM Jagged

不規則コンポーネントKMは、メタ・ピボットを使用して非構造化データを処理します。key-valueではない形式で表されるソース・データは、データベース表やファイル構造にロードするためにより構造化されたエンティティに変換されます。不規則コンポーネントには、コンポーネントの構成に基づいて1つの入力グループと1つまたは複数の出力グループがあります。入力グループは、key-valueまたはid-key-value構造を持つソース・コンポーネントに関連付けられます。出力グループは、データがより構造的に保存されるターゲット・コンポーネントに関連付けられます。つまり、キーが列名になり、値が表の行として保存されます。Jagged KMはソース・データを解析し、出力グループ属性に一致するキー・データを検索します。関連キーが識別されると、対応するデータが行に保存されます。key-valueソースの場合、データ・インジケータの終わりとしてマークされたキーによって各受信レコードが区切られます。id-key-valueソースの場合、受信レコードはIDとして定義されたそのシーケンスの新しい値によって区切られます。「一意索引」属性プロパティに基づいて重複を削除することにより、ターゲット・レコードを統合できます。属性によっては必須としてラベル付けでき、その場合は必須キーのいずれかがない場合には新規レコードは保存されません。一部の欠落キーに対してはデフォルト値を定義できます。

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

表D-3 XKM Jagged

オプション

説明

TMP_DIR

一時ファイルのディレクトリ。

FIELD_DELIMITER

一時ファイルのフィールド・デリミタ。

DELETE_TEMPORARY_OBJECTS

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

E 考慮点、制限および問題

この付録では、ODIでのビッグ・データ統合プロジェクトの作業の際に注意する必要がある考慮点、制限および問題のリストを提供します。

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

- 第E項「考慮点、制限および問題」

E.1 考慮点、制限および問題

ビッグ・データ統合プロジェクトの作業の際は、次の点に注意してください。

- ODI 12c (12.2.1.1)より前は、ODIプロシージャ/カスタムKMのGroovy、Jython、Beanshellコードは、ODIクラス・パスにこれらのJARが追加されていないかぎり、Hadoop/Pigクラスにアクセスできませんでした。
ODI 12c (12.2.1.1)からは、Hadoop/Pigデータ・サーバーで構成されたパスにHadoop/Pigクラスが存在していれば、ODIプロシージャ/カスタムKMがそのHadoop/Pigクラスにアクセスできます。

- Hiveデータ・サーバー、そしてHadoopおよびPigデータ・サーバーにおいて、新しいプロパティoracle.odi.prefer.dataserver.packagesが使用できるようになりました。このプロパティでは、どのパッケージが親優先ではなく子優先でロードされるかを指定できます。
注意: アップグレードされたリポジトリでは、アップグレードされたHadoop/Pigデータ・サーバーにこのプロパティは表示されません。このプロパティが表示されるのは新規データ・サーバーにおいてのみです。

- JEE環境において、エージェント・アプリケーションは再デプロイできます。しかし、Pigのシャットダウン・フック、ロギング・リークおよびその他の未検出のリークにより、作成された実行クラスローダはガベージ・コレクションされません。そのため、ODI 12c (12.2.1)では、ビッグ・データ機能を使用している場合、JEEエージェント・アプリケーションは再デプロイできず、サーバーの再起動が必要になります。

- データ・サーバーに割り当てられるパッケージ・フィルタはできるだけ明確である必要があります。安易に範囲の最も広いフィルタを指定しないようにしてください。たとえば、フィルタ要素としてorg.apacheを指定すると、BeanshellのClassCastExceptionやXMLパーサーのインスタンス化などが発生します。これが発生するのは、Java言語仕様により、2つのクラス・インスタンスがキャスト可能なのは、両者が同じタイプ宣言であり、かつ同じクラスローダによってロードされる場合のみであるためです。この例では、インタフェースはorg.apache.util.IMyInterfaceなどの、org.apacheのサブパッケージの下になります。Studioクラスローダ/Webアプリケーション・クラスローダによりロードされるインタフェース・クラスがキャストのターゲットです。実装クラスがリフレクションによりインスタンス化される際、インスタンス・クラスのインタフェース・クラスも実行クラスローダによりロードされます。JNIEnvコードでキャスト元とキャスト先で同じタイプ宣言を共有しているかのチェックが行われている場合、LHSにはStudio/Webアプリケーション・クラスローダが、RHSには実行クラスローダがあるため、そのチェックはfalseになります。

- 実行クラスローダ・インスタンスはキャッシュされます。データ・サーバー・パッケージ・フィルタまたはデータ・サーバー・クラスパスを変更すると、新規クラスローダ・インスタンスが作成されます。古いクラスローダはすぐには(あるいはその後もずっと)ガベージ・コレクションされない可能性があります。これはヒープ・スペースの不足につながる可能性があります。唯一のソリューションはJVMの再起動です。

- パッケージ・フィルタリング・プロパティが設定されたPig、Hadoopまたはその他のデータ・サーバーをSDKを使用して作成する場合、さらにデータ・サーバー・プロパティを追加するには、1つの点に注意する必要があります。現在のプロパティのセットを取得し、それに対して自分のプロパティを追加して、それからそれをデータ・サーバーで設定する必要があります。そのようにしない場合、フィルタリング・プロパティは失われます。

索引
C  D  E  F  H  I  J  L  M  O  P  R  S  T  U  W  X

C

CREATE_TARG_TABLEオプション, A.20, A.21, A.24, A.26, A.27, A.28

D

データ整合性チェック, A.25

データ変換, A.26

Oracle Data Integratorでのデータ検証, A.26

データサーバー・オブジェクト

Oracle Data Integrator用に作成, 4.2

DEFER_TARGET_LOADオプション, A.20 DELETE_ALLオプション, A.27 DELETE_TEMPORARY_OBJECTSオプション, A.20, A.23, A.24, A.26, A.27, A.28 ディレクトリ

Oracle Data Integratorによりアクセス可能, 4.2

Oracle Loader for Hadoop出力用, A.28

ドライバ

JDBC, 4.3

DROP_ERROR_TABLEオプション, A.25

E

EXT_TAB_DIR_LOCATIONオプション, A.27

EXTERNAL_TABLEオプション, A.20

EXTRA_OLH_CONF_PROPERTIESオプション, A.27

F

Oracle Data Integratorのファイル形式, A.20

FILE_IS_LOCALオプション, A.20

フレックス・フィールド, 4.3, 4.4, 4.6.2, 4.6.3

FLOW_CONTROLオプション, A.24

FLOW_TABLE_OPTIONSオプション, A.23, A.27, A.28

H

Oracle Data IntegratorのHiveデータソース, 4.3, 4.4

Hiveフレックス・フィールド, 4.6.2, 4.6.3

Hive表

データのロード(Oracle Data Integrator), 4.10

リバース・エンジニアリング, 4.6.2, 4.6.3

Oracle Data Integratorでのリバース・エンジニアリング, 4.6.2, 4.6.3

I

IKM Hive Control Append, A.24, A.26

IKM Hive Transform, A.24

INSERT_UPDATEモード, 4.3, 4.4

J

JDBCドライバ, 4.3

L

Hiveへのデータ・ファイルのロード, 4.10

Oracle Data Integratorのロード・オプション, A.20

LOG_FILE_NAMEオプション, A.19, A.19, A.19

M

MAPRED_OUTPUT_BASE_DIRオプション, A.27, A.28

O

OLH_OUTPUT_MODEオプション, A.27

Oracle Data Integrator Application Adapter for Hadoop

モデルの作成, 4.6.1

フレックス・フィールド, 4.6.2, 4.6.3

ロード・オプション, A.20

OVERRIDE_INPUTFORMATオプション, A.27, A.28 OVERRIDE_ROW_FORMATオプション, A.20

P

POST_TRANSFORM_DISTRIBUTEオプション, A.26

POST_TRANSFORM_SORTオプション, A.26

PRE_TRANSFORM_DISTRIBUTEオプション, A.26

PRE_TRANSFORM_SORTオプション, A.26

R

RECYCLE_ERRORSオプション, A.24

Hiveでのリバース・エンジニアリング, 4.6.2, 4.6.3

Hive表のリバースエンジニアリング, 4.6.3

RKM Hive, 4.6.2, 4.6.3

S

STATIC_CONTROLオプション, A.24

STOP_ON_FILE_NOT_FOUNDオプション, A.20

T

TEMP_DIRオプション, A.27, A.28

TRANSFORM_SCRIPTオプション, A.26

TRANSFORM_SCRIPT_NAMEオプション, A.26

TRUNCATEオプション, A.20, A.24, A.27

U

USE_HIVE_STAGING_TABLEオプション, A.27, A.28, A.28

USE_LOGオプション, A.19

USE_ORACLE_STAGING_TABLEオプション, A.27, A.28

USE_STAGING_TABLEオプション, A.20

W

ワイルドカード文字

リソース名, A.20

ODIでのデータソースの設定, 4.2

X

xml-referenceディレクトリ, 4.3, 4.4