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

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

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

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

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

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

料金

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

始める前に

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

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

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

    API を有効にする

必要なロール

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

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

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

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

クラスタで Hive データリネージを有効にするには、Managed Service for Apache Spark クラスタを作成するときに 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 データリネージを有効にして作成された Managed Service for Apache Spark クラスタに Hive ジョブを送信すると、Managed Service for Apache Spark はデータリネージ情報をキャプチャして Knowledge 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 フラグに置き換えて、クエリを含むファイルのロケーションを指定できます。

Knowledge Catalog でリネージを表示する

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

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

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

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

Managed Service for Apache Spark クラスタを作成する

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

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. 先ほど作成した Managed Service for Apache Spark クラスタに 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 でリネージを表示するをご覧ください。グラフの詳細については、データリネージ情報モデルをご覧ください。

次のステップ