Data Refinery の Impala に保管されているデータの詳細化
Hadoop クラスタ上の Impala のテーブルに格納されているデータを絞り込みます。
前提条件
Hadoop クラスターへの接続を作成します。 「 Impala via Execution Engine for Hadoop 」の接続については、こちらをご覧ください。
制約事項
Data Refinery フローのソースとターゲット、および Hadoop 環境 は、同じ Hadoop ・システムを参照する必要があります。
Hadoop クラスター上で Data Refinery ジョブを実行するには、 Hadoop 環境を使用する必要があります。
Impala では、 Data Refinery は、Parquet 形式のファイルを含むテーブルに書き込みを行うジョブのみをサポートしています。
ターゲット・データ・セットを上書きまたは再作成する場合は、 Impala 表の HDFS ・データ・ディレクトリーに対する
write権限 (具体的にはdelete権限) が必要です。例えば、 Impala 表の HDFS ・データ・ディレクトリーが
/user/hive/warehouse/table_nameで、そのディレクトリー内のデータ・ファイルに対するdelete権限がない場合は、次のコマンドを実行して所有者を変更します。hdfs dfs -chown -Rnew_owner:hive /user/hive/warehouse/table_nameターゲットとして外部表で「表の置換」アクションを使用する場合は、外部表が空でなければなりません。
手順
ソース (精査したいデータ)に対して、関連付けられたデータアセットを作成します:
- プロジェクト・ページに移動します。
- 資産資産 をクリックします。
- 「ソースを選択」 をクリックします。
- 「 Impala via Execution Engine for Hadoop 」接続を選択してください。 目的のデータに移動し、 「選択」 をクリックします。
- 名前と説明を入力してください。
- 「Create」をクリックします。 そのアセットは、プロジェクトの「 アセット 」ページに表示されます。
手順 1 を繰り返して、「 Data Refinery 」フロー の出力先となるターゲットファイル用の接続済みデータアセットを作成します。
「 Data Refinery 」フローを作成します:
- 手順 1 で作成したソースの、関連付けられたデータアセットをクリックします。
- データの準備 をクリックして、 Data Refinery を開きます。
- データを精査するために操作を適用します。
出力ファイルの保存先を変更します:
- ツールバーの フロー設定 アイコン
をクリックします。 ターゲット・データ・セット タブに移動し、 ターゲットの選択 をクリックします。 - データ資産 をクリックし、 ターゲット出力 ・ファイルの接続済み データ資産 を選択して、 次へ(N) をクリックします。
- ターゲットと書き込み形式のプロパティーの選択 ウィンドウで、 書き込みモード と 表のアクション を選択します。
- 「保存」 をクリックしてから、 「適用」 をクリックします。
- ツールバーの フロー設定 アイコン
Hadoop 環境で Data Refinery ・フローを実行する ジョブ を作成します。
- Data Refinery ツールバーから、 ジョブ アイコン
をクリックし、 ジョブ の保存と作成 を選択します。 - 名前と説明を入力してください。 Hadoop 環境を選択します。
- オプション:1回限りのスケジュールまたは定期的なスケジュールを追加します。
- ジョブを作成してすぐに実行するか、ジョブを作成して後で実行します。
- Data Refinery ツールバーから、 ジョブ アイコン
ジョブが完了したら、 Impala のメタデータを再同期してください。 Hadoop クラスタ上で、データベースの impala-shell に接続し、次のコマンドを実行します:
REFRESHtable_name