4 Hadoopデータの統合

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

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

Hadoopデータの統合

Hadoopデータを統合するには、データ・ソースを設定し、Hadoopナレッジ・モジュールをインポートし、Oracle Data Integratorモジュールおよび設計マッピングを作成して、Hadoopデータをロード、検証および変換します。

次の表に、Hadoopデータを統合するためのステップをまとめます。

表4-1 Hadoopデータの統合

ステップ 説明

データ・ソースの設定

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

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

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

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

「Kafkaデータソースの設定」を参照してください。

「Cassandraデータソースの設定」を参照してください。

「HDFSデータソースの設定」を参照してください。

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

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

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

Oracle Data Integratorモデルの作成

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

「Hive表、HBase表、Cassandra表およびHDFSファイルを表すODIモデルとデータ・ストアの作成」を参照してください。

Hadoop資格証明プロバイダの構成

Hadoop資格証明プロバイダを構成して、パスワードを定義します。

「Hadoopのパスワード処理」を参照してください。

Hadoopデータの統合

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

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

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

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

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

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

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

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

「KafkaからSpark処理エンジンへのデータのロード」を参照してください。

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

「HDFSファイルからSparkへのデータのロード」を参照してください。

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

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

ファイル・データ・ソースを設定するには、アクセス対象の各ディレクトリに対する物理および論理スキーマとともに、ファイル・テクノロジに基づくデータ・サーバー・オブジェクトを作成する必要があります。

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

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

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

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

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

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

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

  6. この時点で、HDFSファイルは「HDFSデータソースの設定」に示すようにHDFSテクノロジを使用して作成されるようになりました。ただし、下位互換性を確保するために、HDFSファイルをサポートする複数のビッグ・データ・ファイル・ナレッジ・モジュールがあります。HDFSファイルを定義するには、「HDFSファイル」を選択して「Hadoopデータサーバー」の参照を定義する必要があります。また、HDFS名のノードの名前を「JDBC URL」フィールドに入力して、「JDBCドライバ」の名前を空のままにしておくことで、ファイル・テクノロジに基づいたデータ・サーバー・オブジェクトを作成できます。次に例を示します。

    hdfs://bda1node01.example.com:8020
    

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

HDFSデータソースの設定

HDFSデータ・ソースを設定するには、アクセス対象の各ディレクトリに対する物理および論理スキーマとともに、HDFSテクノロジに基づくデータ・サーバー・オブジェクトを作成する必要があります。

このトピックでは、HDFSシステムに接続するために必要なOracle Data Integratorでのステップを示します。
  1. HDFSテクノロジに基づくデータ・サーバー・オブジェクトを作成します。

    注意:

    HDFSデータ・サーバーは、既存のHadoopデータ・サーバーを参照する必要があります。
  2. アクセスされるディレクトリごとに物理スキーマ・オブジェクトを作成します。
  3. アクセスされるディレクトリごとに論理スキーマ・オブジェクトを作成します。
  4. 各論理スキーマのモデルを作成します
  5. 様々なファイル・タイプそれぞれについて、1つ以上のデータ・ストアを作成します。
    「定義」タブの「リソース名」フィールドを使用すると、ファイル・タイプが表しているファイルを指定できます。ワイルドカードを使用した場合、ファイルには同じスキーマが必要であり、同じ形式(全部JSONまたは全部Avro)である必要があります。
  6. 該当する記憶域形式およびスキーマ・ファイルを選択します。
    スキーマのコンテンツが表示されます。
  7. 「属性」タブを選択し、属性を入力するか、指定したスキーマから属性をリバースエンジニアリングします。

Hiveデータソースの設定

Hiveデータ・ソースを設定するには、Hiveテクノロジに基づくデータ・サーバー・オブジェクトを作成する必要があります。Oracle Data IntegratorではJDBCを使用してHiveに接続します。

Hiveシステムに接続するために、Oracle Data Integratorで次のステップを行う必要があります。

Oracle Data IntegratorではJDBCを使用して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表から、データ・ストアの「属性」タブおよび「記憶域」タブにデータが移入されます。

Hadoopデータの統合

HBaseデータソースの設定

HBaseデータ・ソースを設定するには、物理および論理スキーマ・オブジェクトとともに、HBaseテクノロジに基づくデータ・サーバー・オブジェクトを作成する必要があります。

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

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

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

    このテクノロジのデータ・サーバーでは、JDBCドライバおよびURLは使用できません。

  2. データ・サーバーの「定義」タブで次の情報を設定します。

    HBase定足数: HBaseインストールの定足数。たとえば、zkhost1.example.com,zkhost2.example.com,zkhost3.example.comにします。

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

    注意:

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

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

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

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

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

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

    注意:

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

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

Hadoopデータの統合

Kafkaデータソースの設定

kafkaデータ・ソースを設定するには、物理および論理スキーマ・オブジェクトとともに、kafkaテクノロジに基づくデータ・サーバー・オブジェクトを作成する必要があります。それぞれ異なるトピックに対する1つまたは複数のデータ・ソースを作成してから、データ・サーバーへの接続をテストします。

ここに示す手順では、Oracle Data IntegratorでKafkaシステムに接続する方法を説明します。
  1. Kafkaテクノロジに基づくデータ・サーバー・オブジェクトを作成します。
    Kafkaデータ・サーバーの作成の詳細は、「Kafkaデータ・サーバーの定義」および「Kafkaデータ・サーバー・プロパティ」を参照してください。
  2. 物理スキーマ・オブジェクトを作成します。
  3. 論理スキーマ・オブジェクトを作成します。
  4. 各論理スキーマのモデルを作成します
  5. 各種トピックごとに、1つ以上のデータ・ストアを作成します。
    データ・ストアの「定義」タブのリソース名はKafkaトピックを表します。Kafkaトピック名はユーザーが入力することも、Kafkaクラスタ内の使用可能なKafkaトピックのリストから選択することもできます。Kafkaトピックからデータをロードするには、受信者ベースと直接の2つのロード方法があり、LKM Kafka to Sparkではいずれの方法もサポートされます。
  6. データ・サーバーへの接続をテストします。
    Kafkaの統合の詳細は、「Oracle Data IntegratorによるHadoopデータの統合」を参照してください。
Kafkaデータ・モデルには、すべてのKafkaトピックおよびその列とデータ型が含まれます。

Cassandraデータソースの設定

Cassandraデータ・ソースを設定するには、Cassandraテクノロジに基づくデータ・サーバー・オブジェクトを作成する必要があります。Oracle Data IntegratorではJDBCを使用してCassandraに接続します。

ここに示す手順では、Oracle Data IntegratorでCassandraシステムに接続する方法を説明します。
  1. Cassandraテクノロジに基づくデータ・サーバー・オブジェクトを作成します。
  2. JDBC下に次の場所を設定します。
    Cassandra JDBCドライバをドライバ・リストに追加します。

    JDBCドライバ: weblogic.jdbc.cassandra.CassandraDriver

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

    たとえば、jdbc:weblogic:cassandra://cassandra.example.com:9042;KeyspaceName=mykeyspaceとします。

    注意:

    最新のドライバではバイナリ・プロトコルを使用しているため、デフォルト・ポート9042を使用します。
  3. Cassandraサーバーが稼働していることを確認します。
  4. データ・サーバーへの接続をテストします。
  5. 物理スキーマ・オブジェクトを作成します。
  6. 論理スキーマ・オブジェクトを作成します。
  7. RKM Cassandraをグローバル・オブジェクトまたはプロジェクトにインポートします。
  8. 各論理スキーマのモデルを作成します
  9. RKM Cassandraを使用して、カスタム・リバースエンジニアリング操作を実行します。

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

他の組込みビッグ・データ・ナレッジ・モジュールとは違い、使用する前に、RKMおよびCKMをプロジェクトにインポートするか、またはグローバル・オブジェクトとする必要があります。

ビッグ・データ・ナレッジ・モジュールのほとんどは、製品に組み込まれています。RKMとCKMはその例外で、使用する前にプロジェクトにまたはグローバル・オブジェクトとしてインポートする必要があります。これらを次に示します。

  • CKM Hive

  • RKM Hive

  • RKM HBase

  • RKM Cassandra

Hadoopデータの統合

Hive表、HBase表、Cassandra表およびHDFSファイルを表すODIモデルとデータ・ストアの作成

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

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

モデルの作成

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

下位互換性のため、ビッグ・データのLKMによるファイルからの読取り(LKM File to Hive LOAD DATA)では、HDFSからの読取りもサポートされていますが、ソース・データ・ストアはファイル・モデルに基づく必要があります。HDFSから読み取る場合は、LKM HDFS to File LOAD DATAなどのKMを使用する方が望ましいです。その場合、ソース・データ・ストアは、HDFSモデルに基づく必要があります。

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

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

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

RKM Hiveの詳細は、「RKM Hive」を参照してください。

Hiveデータ・ストアには、Hiveでのデータの保存と書式設定の方法を確認できる「記憶域」タブが含まれています。Hive表のリバースエンジニアリングが済んでいる場合、これらのフィールドにはデータが自動的に移入されます。マッピングの実行時にテーブルが(create target tableを使用して)作成されるようにするために、このデータ・ストアを最初から作成した場合は、これらのフィールドを編集することでデータの書式設定の方法を選択できます。

ターゲットHive表は、Hiveデータ・ストアの「記憶域」パネルと「属性」パネルで指定されたデータに基づいて作成されます。表4-2表4-3を参照してください。

表4-2 Hiveデータ・ストアの「記憶域」パネルのプロパティ

プロパティ 説明

表タイプ

作成するHive表のタイプとして、次のいずれかを選択します。

  • 管理対象

  • 外部

  • <未定義>

記憶域タイプ

データ記憶域のタイプとして、次のいずれかを選択します。

  • ネイティブ

  • 非ネイティブ

  • <未定義>

行形式

このプロパティは、「記憶域タイプ」として「ネイティブ」が選択されているときに表示されます。

行形式として、次のいずれかを選択します。

  • 組込み

  • 区切り

  • SerDe

  • <未定義>

レコード・セパレータ

このプロパティは、「行形式」として「区切り」が選択されているときに表示されます。

次の各フィールドに値を入力します。

  • フィールドの終了元

  • フィールドのエスケープ元

  • コレクション・アイテムの終了元

  • マップ・キーの終了元

  • 行の終了元

  • ファイルのNull値

SerDe

このプロパティは、「行形式」として「SerDe」が選択されているときに表示されます。

「SerDeクラス」フィールドに入力します。

記憶域形式

この長いほうの「記憶域形式」セクションは、「記憶域タイプ」として「ネイティブ」が選択されているときに表示されます。

次のプロパティが含まれています。

  • 事前定義されたファイル形式

  • 入力書式 (「事前定義されたファイル形式」として「INPUTFORMAT」が選択されているときに表示されます)。

  • 出力形式 (「事前定義されたファイル形式」として「INPUTFORMAT」が選択されているときに表示されます)。

  • 場所 (「表タイプ」として「外部」が選択されているときに表示されます)。

事前定義されたファイル形式として、次のいずれかを選択します。

  • INPUTFORMAT

  • SEQUENCEFILE

  • PARQUET

  • TEXTFILE

  • ORC

  • JSON

  • RCFILE

  • AVRO

  • <未定義>

記憶域ハンドラ

このプロパティは、「記憶域タイプ」として「非ネイティブ」が選択されているときに表示されます。

「記憶域ハンドラ・クラス」フィールドに入力します。

記憶域形式

この短いほうの「記憶域形式」セクションは、「記憶域タイプ」として「非ネイティブ」が選択されているときに表示されます。

「場所」フィールドに入力します。

表4-3 Hiveデータ・ストアの「属性」パネルのプロパティ

プロパティ 説明

順序

属性の並び順序。

名前

属性の名前。

タイプ

属性のデータ型。

データ形式

属性のデータ形式。

注意:

このフィールドは、データ型が「複合」の属性にのみ使用します。この内容は、リバースエンジニアリング時に移入され、複合型の定義が含まれます。

長さ

属性の物理長。

スケール

数値属性のスケール。

NOT NULL

属性をNULLにできるかどうかを指定します。

SCDの動作

Hiveデータ・ストアには使用しません。

パーティション基準

パーティション列の場合に選択します。

クラスタ基準

バケット化された列の場合に選択します。

ソート基準

バケット内のこの列でデータをソートする場合に選択します。

注意:

SORTED BY句で、この列の位置を設定する必要があります。「ソート基準」値が小さい列の優先度が高くなります。たとえば、C1 (「ソート基準」が5)、C2 (「ソート基準」が2)、C3 (「ソート基準」が8)という3つの列があるとします。このSORTED BY句は、SORTED BY (C2, C1, C3)になります。

ソート方向

データを昇順(ASC)でソートするか、降順(DESC)でソートするかを選択します。

ここで指定したデータは、LKMとIKMでCREATE_TARG_TABLEオプションが選択されているときに、Hive DDLの作成に使用することもできます。

Hiveの書式設定情報と記憶域情報を完全に使用するには、次に示すKMを1つ以上使用する必要があります。

  • IKM Hive Append

  • IKM Hive Incremental Update

  • LKM File to Hive LOAD DATA Direct

  • LKM HDFS File to Hive LOAD DATA Direct

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

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

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

注意:

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

RKM HBaseの詳細は、「RKM HBase」を参照してください。

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

HDFSファイルは、HDFSテクノロジに基づいたデータ・ストアを使用して表されます。HDFSデータ・ストアには、記憶域形式(JSONや区切りなど)、属性、データ型およびデータ型プロパティが含まれています。

以前のバージョンのODIでは、HDFSファイルを表すためにファイル・テクノロジが使用されていましたが、記憶域形式の情報はマッピングで指定されていました。LKM File to HiveやLKM File to Sparkなどのナレッジ・モジュールを使用する既存のマッピングがある場合は、これまでどおりにファイル・テクノロジでHDFSを表す必要があります。

注意:

HDFSテクノロジを使用してHDFSファイルを表す方法をお薦めします。

HDFSファイルのHDFSデータ・ストアへのリバースエンジニアリング

HDFSファイルをリバースエンジニアリングするには、次のステップを実行します。

  1. HDFSデータ・ストアを作成します。

  2. 「記憶域」タブで、「記憶域形式」ドロップダウン・リストから記憶域形式を選択して、「スキーマ・ファイル」フィールドでスキーマ・ファイルの完全パスを指定します。

    スキーマ・ファイルは、ローカル・ファイル・システムに配置されている必要があります。

  3. HDFSデータ・ストアの「属性」タブで「リバース・エンジニアリング」操作をクリックします。

注意:

  • RKMをプロジェクトにインポートする必要はありません。

  • HDFSのリバースエンジニアリングには、スキーマ(JSON、ParquetまたはAvro)が必要になるため、「区切り」形式のHDFSファイルはリバースエンジニアリングできません。

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

Hive表、HBase表、Cassandra表およびHDFSファイルを表すODIモデルとデータ・ストアの作成

ファイル・データ・ストア内のHDFSファイルのリバースエンジニアリング

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

注意:

ファイルがローカル・ファイル・システムに対して大きい場合、HDFSから最初のNレコードを取得して、ローカル・ファイルに格納します。

Cassandra表のリバースエンジニアリング

Cassandra表のリバースエンジニアリングには、RKM Cassandraを使用します。RKM Cassandraを使用してカスタマイズされたCassandra表のリバースエンジニアリングを実行するには、『Oracle Data Integratorでの統合プロジェクトの開発』で説明するように通常の手順を実行します。

リバースエンジニアリング・プロセスでは、対応するCassandra表に対するデータ・ストアが作成されます。RKM Cassandraの詳細は、「RKM Cassandra」を参照してください。

Kafkaのリバースエンジニアリングのサポート

Kafkaのリバースエンジニアリングは、HDFSファイルのリバースエンジニアリングとほとんど同じです。

モデルは、Kafkaテクノロジに基づいて作成します。データ・ストアは、そのモデルで次に示すように作成します。

  1. 「定義」パネルに移動して、「名前」「リソース名」を入力します。
  2. 「記憶域」パネルに移動して、「記憶域形式」を選択して、「スキーマ・ファイル」のパスを指定します。
    スキーマ・ファイルは、ローカルにアクセスできる必要があります。

    注意:

    「記憶域形式」は、AVRO、JSONまたはPARQUETになります。DELIMITED記憶域形式のリバースエンジニアリングはサポートされていません。データ・ストア・エディタを使用して、DELIMITED記憶域形式のKafkaデータ・ストアを作成します。
  3. 「属性」パネルに移動して、「リバース・エンジニアリング」をクリックします。
    ここには、「スキーマ・ファイル」で指定した属性のすべてがリストされます。

Hadoopのパスワード処理

LKM SQL to Spark、LKM Spark to SQLおよびLKM Spark to Cassandraを使用する前に、Hadoop証明書プロバイダを構成して、パスワードを定義する必要があります。

これらのKMを使用するには、次の手順を実行する必要があります。

  1. Hadoop証明書プロバイダを構成します

    JDBC接続パスワードは、Hadoop証明書APIを使用して保存します。このためには、少なくとも1つの証明書プロバイダでHadoopクラスタを構成する必要があります。

    次に、例を示します。

    <property>

    <name>hadoop.security.credential.provider.path</name>

    <value>user:///,jceks://file/tmp/test.jceks,jceks://hdfs@cluster1-ns/my/path/test.jceks</value>

    </property>

    注意:

    前述の例に示したプロパティは、core-site.xmlまたはそれと同等のもので定義する必要があります。
    目的のシステムとセキュリティ構成/ニーズにあわせて適切に構成するために、「CredentialProvider API Guide」を参照してください。
  2. Hadoop証明書プロバイダのパスワード別名を作成します

    Hadoopクラスタを構成したら、SQLソースまたはターゲットへの接続にSparkで使用するパスワードごとに証明書を作成する必要があります。ODIは、証明書の別名が次の形式に従っていることを前提としています。

    odi.<user_name>.<dataserver_name>.password

    user_namedataserver_nameは、ODIトポロジの「データサーバー・プロパティ」から取得されます。

    次の例は、Hadoop証明書プロバイダのパスワード別名の作成方法を示しています(ユーザー名がoracleで、データ・サーバーがHadoop_CDH5_5の場合)。

    hadoop credential create odi.oracle.Hadoop_CDH5_5.password

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

データをファイルからHiveにロードするには、ローカルおよびHDFSファイルのデータ・ストアを作成し、マッピングを作成します。その後で、LKMファイルからHiveロード・データへのオプションを選択でき、フラット・ファイルからHiveへデータをロードします。

LKM File to Hive KMは、HDFSファイルに加えてローカル・ファイルからのデータのロードもサポートしています。ただし、ファイルを使用している場合は、HDFS KMを使用する方法をお薦めします。詳細については、「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の詳細は、次の項を参照してください。

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

データをHive表からローカル・ファイル・システムまたはHDFSファイルにロードするには、Hive表のデータ・ストアを作成し、Hiveからフラット・ファイルへデータをロードするためのマッピングを作成します。その後で、LKM Hiveからファイル・ダイレクト・ナレッジ・モジュールへのオプションを選択できます。

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

  1. フラット・ファイルにロードするHive表のデータ・ストアを作成します。

    Hiveデータソースのリバースエンジニアリングおよび構成の詳細は、「Hiveデータ・ソースの設定」を参照してください。

  2. ソースとしてHiveデータ・ストアを、ターゲットとして対応するファイル・データ・ソースを使用して、マッピングを作成します。
  3. マッピングの物理ダイアグラムで指定されているLKM Hive to File Directナレッジ・モジュールを使用します。

    この統合ナレッジ・モジュールは、Hiveからフラット・ファイルにデータをロードします。

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

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

データをHBase表からHiveにロードするには、HBase表のデータ・ストアを作成し、HBase表からHiveへデータをロードするためのマッピングを作成します。その後で、LKM HBaseからHive HBASE-SERDEナレッジ・モジュールへのオプションを選択できます。

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の詳細は、「LKM HBase to Hive HBASE-SERDE」を参照してください。

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

データをHiveからHBase表にロードするには、Hive表のデータ・ストアを作成し、Hive表からHBaseへデータをロードするためのマッピングを作成します。その後で、LKM HiveからHBase Incremental Update HBASE-SERDEダイレクト・ナレッジ・モジュールへのオプションを選択できます。

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の詳細は、「LKM Hive to HBase Incremental Update HBASE-SERDE Direct」を参照してください。

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

データをSQLデータベースからHive、HBase、SQOOPを使用するファイルにロードするには、SQLソースのデータ・ストアを作成し、SQLソースからHive、HBase、SQOOPを使用するファイル・ターゲットへデータをロードするためのマッピングを作成します。その後で、IKM SQLからHive-HBase-File (SQOOP)ナレッジ・モジュールへのオプションを選択できます。

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

  1. Hive、HBaseまたはファイル・ターゲットにロードするSQLソースのデータ・ストアを作成します。

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

  2. ソースとしてSQLソース・データ・ストアを、ターゲットとして対応するHBase表、Hive表またはHDFSファイルを使用して、マッピングを作成します。
  3. マッピングの物理ダイアグラムで指定されているIKM SQL to Hive-HBase-File (SQOOP)ナレッジ・モジュールを使用します。

    注意:

    IKM SQL to Hive-HBase-File (SQOOP)はシードされません。手動でインポートする必要があります。

    この統合ナレッジ・モジュールは、SQLソースからHive、HBaseまたはファイル・ターゲットにデータをロードします。SQOOPを使用して、Hive、HBaseおよびファイル・ターゲットにデータをロードします。SQOOPは、パラレルなJDBC接続を使用してデータをロードします。

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

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

データをSQLデータベースからSQOOPを使用するHiveにロードするには、SQLソースのデータ・ストアを作成し、SQLソースからSQOOPを使用するHiveへデータをロードするためのマッピングを作成します。その後で、LKM SQLからHive SQOOPナレッジ・モジュールへのオプションを選択できます。

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の詳細は、「LKM SQL to Hive SQOOP」を参照してください。

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

SQLデータベースからHDFSファイル・ターゲットにデータをロードするには:

  1. HDFSファイル・ターゲットにロードするSQLソースのデータ・ストアを作成します。

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

  2. ソースとしてSQLソース・データ・ストアを、ターゲットとして対応するHDFSファイルを使用して、マッピングを作成します。
  3. マッピングの物理ダイアグラムで指定されているLKM SQL to File SQOOP Directナレッジ・モジュールを使用します。

    この統合ナレッジ・モジュールは、SQLソースからHDFSファイル・ターゲットにデータをロードします。ファイル・ターゲットへのデータのロードにはSQOOPが使用されます。SQOOPは、パラレルなJDBC接続を使用してデータをロードします。

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

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の詳細は、「LKM SQL to HBase SQOOP Direct」を参照してください。

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

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

注意:

IKM Hive Control Append、CKM HiveおよびIKM Hive Transformのインポートが必要になります。

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データベース・ターゲットにデータをロードします。

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

注意:

このKMはインポートする必要があります。

LKM File to Oracle OLH-OSCH

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

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

LKM File to Oracle OLH-OSCH Direct

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

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

LKM Hive to Oracle OLH-OSCH

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

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

LKM Hive to Oracle OLH-OSCH Direct

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

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

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

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

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

ナレッジ・モジュール 用途

IKM File-Hive to SQL (SQOOP)

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

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

注意:

このKMはインポートする必要があります。

LKM HBase to SQL SQOOP

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

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

LKM File to SQL SQOOP

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

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

LKM Hive to SQL SQOOP

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

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

KafkaからSpark処理エンジンへのデータのロード

KafkaからSparkにデータをロードします。

  1. SparkにロードするKafka表のデータ・ストアを作成します。

    Kafkaデータソースの構成の詳細は、「Kafkaデータソースの設定」を参照してください。

  2. ソースとしてKafkaデータ・ストアを使用し、ターゲットとしてFile/HDFS/SQL/Hive/Kafkaデータ・ストアを使用するマッピングを作成します。ステージングの場所として、Spark Pythonの物理スキーマを使用します。

    詳細は、「Spark物理スキーマの作成」を参照してください。

  3. マッピングの物理ダイアグラムに示されているように、レシーバベース接続の場合は値createStream、直接接続の場合は値createDirectStreamのストレージ関数KMオプションを使用します。

    該当する接続用のKafkaデータ・サーバーのプロパティzookeeper.connectmetadata.broker.listを設定します。

    このナレッジ・モジュールは、KafkaからSpark処理エンジンにデータをロードします。その他のナレッジ・モジュールを使用すると、SparkからFile/HDFS/SQL/Hive/Kafkaにデータをロードできます。

    注意:

    ODIマッピング内の各Kafkaソースにより、Sparkエグゼキュータが割り当てられます。使用可能なエグゼキュータの数が少ないと、Spark Kafkaマッピングがハングします。エグゼキュータの数は、少なくともn+1にする必要があります(nは、マッピング内のKafkaソースの数です)。詳細は、Sparkのドキュメントを参照してください。
LKM Kafka to Sparkの詳細は、「LKM Kafka to Spark」を参照してください。