この章では、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のコードを生成するためのステージング領域として使用されます。
Hiveデータ・サーバーを設定する手順は、次のとおりです。
「トポロジ」タブをクリックします。
「物理アーキテクチャ」ツリーの「テクノロジ」で、「Hive」を右クリックして「新規データ・サーバー」をクリックします。
「定義」タブで、Hiveデータ・サーバーの詳細を指定します。
詳細は、第6.2.1項「Hiveデータ・サーバーの定義」を参照してください。
「JDBC」タブで、Hiveデータ・サーバーの接続詳細を指定します。
詳細は、第6.2.2項「Hiveデータ・サーバー接続の詳細」を参照してください。
「テスト接続」をクリックして、Hiveデータ・サーバーへの接続をテストします。
次の表は、新しいHiveデータ・サーバーを作成する場合に「定義」タブで指定する必要があるフィールドについて説明しています。
注意: Hiveデータ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。
次の表は、新しいHiveデータ・サーバーを作成する場合に「JDBC」タブで指定する必要があるフィールドについて説明しています。
注意: Hiveデータ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。
表6-2 Hiveデータ・サーバー接続の詳細
フィールド | 説明 |
---|---|
JDBCドライバ |
このJDBCドライバを使用してHiveデータ・サーバーに接続します。次のURLからこのドライバのドキュメントにアクセスできます。 |
JDBC URL |
たとえば、次のようになります。 |
『Oracle Data Integratorの管理』の物理スキーマの作成に関する項の説明に従って、標準の手順を使用してHive物理スキーマを作成します。
『Oracle Data Integratorの管理』の論理スキーマの作成に関する項の説明に従って、標準の手順を使用してこの物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。
Pigデータ・サーバーを設定する手順は、次のとおりです。
「トポロジ」タブをクリックします。
「物理アーキテクチャ」ツリーの「テクノロジ」で、「Pig」を右クリックして「新規データ・サーバー」をクリックします。
「定義」タブで、Pigデータ・サーバーの詳細を指定します。
詳細は、第6.4.1項「Pigデータ・サーバーの定義」を参照してください。
「プロパティ」タブで、Pigデータ・サーバーのプロパティを追加します。
詳細は、第6.4.2項「Pigデータ・サーバー・プロパティ」を参照してください。
「テスト接続」をクリックして、Pigデータ・サーバーへの接続をテストします。
次の表は、新しいPigデータ・サーバーを作成する場合に「定義」タブで指定する必要があるフィールドについて説明しています。
注意: Pigデータ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。
表6-3 Pigデータ・サーバーの定義
フィールド | 説明 |
---|---|
名前 |
Oracle Data Integratorに表示されるデータ・サーバーの名前。 |
データ・サーバー |
データ・サーバーの物理名。 |
プロセス・タイプ |
次のいずれかを選択します:
|
Hadoopデータサーバー |
Pigデータ・サーバーに関連付けるHadoopデータ・サーバー。 注意: このフィールドは、「MapReduceモード」オプションが「プロセス・タイプ」に設定されている場合にのみ表示されます。 |
追加クラスパス |
追加のクラスパスを指定します。 次の追加クラスパスを追加します。
pig-hcatalog-hiveには、前述のクラスパスに加えて次のクラスパスを追加します。
|
ユーザー/パスワード |
Pigユーザーとそのパスワード。 |
『Oracle Data Integratorの管理』の物理スキーマの作成に関する項の説明に従って、標準の手順を使用してPig物理スキーマを作成します。
『Oracle Data Integratorの管理』の論理スキーマの作成に関する項の説明に従って、標準の手順を使用してこの物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。
Sparkデータ・サーバーを設定する手順は、次のとおりです。
「トポロジ」タブをクリックします。
「物理アーキテクチャ」ツリーの「テクノロジ」で、Spark Pythonを右クリックして「新規データ・サーバー」をクリックします。
「定義」タブで、Sparkデータ・サーバーの詳細を指定します。
詳細は、第6.6.1項「Sparkデータ・サーバーの定義」を参照してください。
「プロパティ」タブで、Sparkデータ・サーバーのプロパティを指定します。
詳細は、第6.6.2項「Sparkデータ・サーバー・プロパティ」を参照してください。
「テスト接続」をクリックして、Sparkデータ・サーバーへの接続をテストします。
次の表は、新しいSpark Pythonデータ・サーバーを作成する場合に「定義」タブで指定する必要があるフィールドについて説明しています。
注意: Spark Pythonデータ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。
表6-5 Sparkデータ・サーバーの定義
フィールド | 説明 |
---|---|
名前 |
Oracle Data Integratorに表示されるデータ・サーバーの名前。 |
マスター・クラスタ(データ・サーバー) |
マスター・クラスタまたはデータ・サーバーの物理名。 |
ユーザー/パスワード |
Sparkデータ・サーバーまたはマスター・クラスタのユーザーとそのパスワード。 |
Hadoop DataServer |
Sparkデータ・サーバーに関連付けるHadoopデータ・サーバー。 注意: このフィールドは、ビッグ・データ構成ウィザードを使用してSparkデータ・サーバーを作成する場合にのみ表示されます。 |
追加クラスパス |
次の追加のクラスパスがデフォルトで追加されます。
必要に応じて、さらに追加のクラスパスを追加できます。 注意: このフィールドは、ビッグ・データ構成ウィザードを使用して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 |
その他のプロパティのロード元となるファイルのパス。指定がない場合、 |
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です。 |
『Oracle Data Integratorの管理』の物理スキーマの作成に関する項の説明に従って、標準の手順を使用してSpark物理スキーマを作成します。
『Oracle Data Integratorの管理』の論理スキーマの作成に関する項の説明に従って、標準の手順を使用してこの物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。
デフォルトでは、Oracle Data IntegratorはHiveQLコードを生成します。Pig LatinまたはSparkコードを生成するには、Pigデータ・サーバーまたはSparkデータ・サーバーをマッピングのステージング場所として使用する必要があります。
これらの言語のコードを生成するには、Hive、PigおよびSparkのデータ・サーバーが設定されている必要があります。
詳細は、次の各項を参照してください。
異なる言語のコードを生成する手順は、次のとおりです。
マッピングを開きます。
HiveQLコードを生成するには、デフォルトのステージング場所(Hive)でマッピングを実行します。
Pig LatinまたはSparkコードを生成するには、「物理」ダイアグラムに移動し、次のいずれかを実行します。
Pig Latinコードを生成するには、「実行ヒント」オプションを設定してPigデータ・サーバーをマッピングのステージング場所として使用します。
Sparkコードを生成するには、「実行ヒント」オプションを設定してSparkデータ・サーバーをマッピングのステージング場所として使用します。
マッピングを実行します。