Campaign から Impala ベースの Hadoop システムへのデータのエクスポート

IBM® Campaign から Impala ベースの Hadoop ビッグデータ・システムにデータを送信できます。

このタスクについて

Campaign から Impala ベースの Hadoop ビッグデータ・システムにデータを送信するには、1 つ以上のデータ・ソース (DB2® や Oracle のデータベースなど) からユーザー・データを取り出すフローチャートを作成します。そのフローチャートで、データをビッグデータ・インスタンスにエクスポートするためのスナップショット・プロセスを構成します。フローチャートを実行すると、スナップショット・データが Impala データベースにエクスポートされます。

IBM Campaign での Impala データ・ソースの構成設定によって、Campaign から Impala にデータを転送する方法を指定します。

手順

  1. 管理者が Impala データ・ソースを (Campaign | Partitions | Partition[n] | dataSources) で構成して、SCP と SSH の必要なコマンドを指定する必要があります。
    • LoaderPreLoadDataFileCopyCmd の値で SCP を使用して、IBM Campaign から Impala ベースの Hadoop システムにある構成「DataFileStagingFolder」で指定されたロケーションにデータをコピーします。これは、Impala サーバー上の HDFS ロケーションでなければなりません。この値で、SCP コマンドを指定することも、その SCP コマンドを指定したスクリプトを呼び出すこともできます。以下の例を参照してください。
    • LoaderPostLoadDataFileRemoveCmd の値では、Impala へのロード後に一時ファイルを削除する SSH の「rm」コマンドを指定する必要があります。
    この機能をサポートするには、Campaign リスナー・サーバーで SSH を構成する必要があります。詳しくは、「IBM Campaign インストール・ガイド」を参照してください。
  2. フローチャートで、1 つ以上のデータ・ソースから入力データを取得して Impala データベースにデータをエクスポートするためのスナップショット・プロセスを構成します。通常どおり、選択やマージなどのプロセスも含めてフローチャートを設計してください。
  3. フローチャートを実行します。

    データ・セット全体が <Campaign_Home>/partitions/partition[n]/tmp にある一時データ・ファイルにエクスポートされます。LoaderPreLoadDataFileCopyCmd を使用してその一時ファイルが Impala サーバーにコピーされ、データが Impala テーブルにロードされます。一時ファイルは、LoaderPreLoadDataFileCopyCmd を使用して Impala サーバーから削除されます。

例: スクリプトによる Cloudera へのエクスポートの構成: スクリプトを使用すれば、ファイルのアクセス権の問題を回避できて便利な場合があります。ファイルのアクセス権に関連した問題があると、LOAD コマンドでデータ・ファイルにアクセスできず、コマンドが失敗してしまいます。この種の問題を回避するために、SCP によってデータ・ファイルを Hive にコピーしてそのデータ・ファイルのファイル・アクセス権を更新する独自のシェル・スクリプトまたはコマンド・ライン・スクリプトを作成できます。以下に示すのは、IBM Campaign で、スクリプトによる Cloudera へのエクスポートを構成する例です。LoaderPreLoadDataFileCopyCmd で SCP を使用するスクリプトを呼び出して、IBM Campaign を実行するローカル・マシンから、リモート Cloudera マシンの HDFS ディレクトリーにデータ・ファイルをコピーします。LoaderPostLoadDataFileRemoveCmd ではそのファイルを削除します。

Campaign | Partitions | Partition[n] | dataSources | Hive_Cloudera | LoaderPreLoadDataFileCopyCmd = /opt/IBM/CampaignBD/Campaign/bin/copyToHadoop.sh <DATAFILE>

Campaign | Partitions | Partition[n] | dataSources | Impala_Cloudera | LoaderPostLoadDataFileRemoveCmd = ssh cloudera@example.company.com "rm /tmp/<DATAFILE>"

LoaderPreLoadDataFileCopyCmd で呼び出すスクリプトは、以下のとおりです。copyToHadoop.sh: #!/bin/sh scp $1 cloudera@example.company.com:/tmp ssh cloudera@example.company.com "chmod 0666 /tmp/'basename $1'"

このスクリプトは、IBM Campaign リスナー・マシンにあります。そのスクリプトは、ユーザー「cloudera」として宛先サーバー (example.company.com) で SCP コマンドを実行し、ファイルを HDFS ディレクトリーにコピーします。SSH コマンドはその同じユーザーで接続し、その後のロード・プロセスと削除プロセスのために正しいアクセス権を持てるようにします。