プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Data IntegratorによるBig Dataの統合
12c (12.2.1.2.0)
E82655-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

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

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

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による異なる言語のコードの生成」