Dataproc で Hive データリネージを有効にする

このドキュメントでは、Dataproc Hive ジョブでデータリネージを有効にして使用する方法について説明します。

Dataproc Hive ジョブのデータリネージを有効にするには、クラスタを作成するときに初期化アクションを使用します。

クラスタで Hive データリネージを有効にすると、クラスタに送信する Hive ジョブはデータリネージ イベントをキャプチャし、Dataplex Universal Catalog にパブリッシュします。

リネージ情報を可視化する

データ リネージ グラフには、プロジェクト リソースとそれらを作成したプロセスの関係が表示されます。リネージグラフには、 Google Cloud コンソールの Dataplex Universal CatalogBigQuery StudioVertex AI を使用してアクセスできます。

料金

Dataproc Hive データリネージは、プレビュー期間中は追加料金なしで提供されます。標準の Dataproc の料金が適用されます。

始める前に

  1. Google Cloud コンソールの [プロジェクト セレクタ] ページで、リネージを追跡する Dataproc クラスタを含むプロジェクトを選択します。

    プロジェクト セレクタに移動

  2. Data Lineage API と Dataplex Universal Catalog API を有効にします。

    API を有効にする

必要なロール

Dataproc でデータリネージを使用するために必要な権限を取得するには、管理者に Dataproc クラスタ VM サービス アカウントに対して次の IAM ロールを付与するよう依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

Hive データリネージを有効にする

クラスタで Hive データリネージを有効にするには、Dataproc クラスタを作成するときに hive-lineage.sh 初期化アクションを指定します。この初期化アクションは、Cloud Storage のリージョン バケットに保存されます。

gcloud CLI クラスタの作成の例:

gcloud dataproc clusters create CLUSTER_NAME \
    --project PROJECT_ID \
    --region REGION \
    --image-version IMAGE_VERSION \
    --initialization-actions gs://goog-dataproc-initialization-actions-REGION/hive-lineage/hive-lineage.sh

次のように置き換えます。

  • CLUSTER_NAME: クラスタの名前。
  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。 プロジェクト ID は、 Google Cloud コンソールのダッシュボードの [プロジェクト情報] セクションに表示されます。
  • REGION: クラスタを配置する Compute Engine のリージョン
  • IMAGE_VERSION クラスタの対象のイメージ バージョン
  • --initialization-actions: Hive データリネージを有効にする、Cloud Storage リージョン ロケーションにあるインストール アクションを指定します。
    • 必要に応じて、Hive-BigQuery コネクタの初期化アクションを追加します。BigQuery テーブルを Hive ワークロードと統合する場合は、クラスタに Hive-BigQuery コネクタをインストールする必要があります。BigQuery を使用した Hive データリネージの例をご覧ください。この例では、コネクタの初期化アクションを実行して、クラスタに Hive-BigQuery コネクタをインストールします。

Hive ジョブを送信する

Hive データリネージを有効にして作成された Dataproc クラスタに Hive ジョブを送信すると、Dataproc はデータリネージ情報をキャプチャして Dataplex Universal Catalog に報告します。

gcloud CLI Hive ジョブの送信例:

gcloud dataproc jobs submit hive \
    --cluster=CLUSTER_NAME \
    --project PROJECT_ID \
    --region REGION \
    --properties=hive.openlineage.namespace=CUSTOM_NAMESPACE \
    --execute HIVE_QUERY

次のように置き換えます。

  • CLUSTER_NAME: クラスタの名前。
  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。 プロジェクト ID は、 Google Cloud コンソールのダッシュボードの [プロジェクト情報] セクションに表示されます。
  • REGION: クラスタが配置されている Compute Engine リージョン
  • CUSTOM_NAMESPACE: Hive ジョブを識別するために指定できるオプションのカスタム Hive 名前空間。
  • HIVE_QUERY: クラスタに送信する Hive クエリ。クエリを指定する代わりに、--execute HIVE_QUERY フラグを --file SQL_FILE フラグに置き換えて、クエリを含むファイルのロケーションを指定できます。

Dataplex Universal Catalog でリネージを表示する

リネージグラフには、プロジェクト リソースとそれらを作成したプロセスの関係が表示されます。 Google Cloud コンソールでデータリネージ情報を表示するか、Data Lineage API から JSON データの形式で取得できます。

BigQuery を使用した Hive データリネージの例

このセクションの例は次の手順で構成されています。

  1. Hive データリネージが有効で、Hive-BigQuery コネクタがクラスタにインストールされている Dataproc クラスタを作成します。
  2. クラスタで Hive クエリを実行して、Hive テーブル間でデータをコピーします。
  3. 生成されたデータリネージ グラフを BigQuery Studio で表示します。

Dataproc クラスタを作成する

ローカルのターミナル ウィンドウまたは Cloud Shell で次のコマンドを実行して、Dataproc クラスタを作成します。

gcloud dataproc clusters create CLUSTER_NAME \
    --project PROJECT_ID \
    --region REGION \
    --image-version IMAGE_VERSION \
    --initialization-actions gs://goog-dataproc-initialization-actions-REGION/connectors/connectors.sh, gs://goog-dataproc-initialization-actions-REGION/hive-lineage/hive-lineage.sh \
    --metadata hive-bigquery-connector-version=HIVE_BQ_VERSION

注:

Hive クエリを実行する

Hive クエリを実行して、次の操作を行います。

  • gs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout からサンプルデータ入力を使用して us_states 外部テーブルを作成します。
  • 指定した BigQuery データセットに us_states_copy マネージド テーブルを作成します。
  • データをすべて us_states から us_states_copy にコピーします。

クエリを実行するには:

  1. ローカル ターミナル ウィンドウまたは Cloud Shell で、vinano などのテキスト エディタを使用して、次の Hive クエリ ステートメントを hive-example.sql ファイルにコピーし、ファイルを現在のディレクトリに保存します。
  2. 先ほど作成した Dataproc クラスタに hive-example.sql ファイルを送信します。--execute HIVE_QUERY フラグを --file SQL_FILE フラグに置き換えて、保存した hive-example.sql ファイルのロケーションを指定します。PROJECT 変数と BQ_DATASET 変数に値を設定する必要があります。

Hive BigQueryStorageHandler

CREATE EXTERNAL TABLE us_states (
    name STRING,
    post_abbr STRING
)
STORED AS PARQUET
LOCATION 'gs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout';

CREATE TABLE us_states_copy (
    name STRING,
    post_abbr STRING
)
STORED BY 'com.google.cloud.hive.bigquery.connector.BigQueryStorageHandler'
TBLPROPERTIES (
  'bq.table'='PROJECT.BQ_DATASET.us_states_copy'
);

INSERT INTO us_states_copy SELECT * FROM us_states;

データリネージ グラフを表示する

Hive ジョブが正常に完了したら、 Google Cloud コンソールの [BigQuery Studio] でデータリネージを確認します。

Hive リネージグラフ

BigQuery Studio でグラフを表示する方法については、BigQuery でリネージを表示するをご覧ください。グラフの詳細については、データリネージ情報モデルをご覧ください。

次のステップ