このドキュメントでは、Dataproc Hive ジョブでデータリネージを有効にして使用する方法について説明します。
Dataproc Hive ジョブのデータリネージを有効にするには、クラスタを作成するときに初期化アクションを使用します。
クラスタで Hive データリネージを有効にすると、クラスタに送信する Hive ジョブはデータリネージ イベントをキャプチャし、Dataplex Universal Catalog にパブリッシュします。
リネージ情報を可視化する
データ リネージ グラフには、プロジェクト リソースとそれらを作成したプロセスの関係が表示されます。リネージグラフには、 Google Cloud コンソールの Dataplex Universal Catalog、BigQuery Studio、Vertex AI を使用してアクセスできます。
料金
Dataproc Hive データリネージは、プレビュー期間中は追加料金なしで提供されます。標準の Dataproc の料金が適用されます。
始める前に
Google Cloud コンソールの [プロジェクト セレクタ] ページで、リネージを追跡する Dataproc クラスタを含むプロジェクトを選択します。
Data Lineage API と Dataplex Universal Catalog API を有効にします。
必要なロール
Dataproc でデータリネージを使用するために必要な権限を取得するには、管理者に Dataproc クラスタ VM サービス アカウントに対して次の IAM ロールを付与するよう依頼してください。
-
Dataplex Universal Catalog でデータリネージを表示するか、Data Lineage API を使用する: データリネージ閲覧者(
roles/datalineage.viewer
) - API を使用してデータリネージを手動で生成する: データ リネージ イベント プロデューサー(
roles/datalineage.producer
) -
API を使用してデータリネージを編集する: データリネージ編集者(
roles/datalineage.editor
) -
データリネージに対してすべてのオペレーションを実行する: データリネージ管理者(
roles/datalineage.admin
)
ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
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 データリネージの例
このセクションの例は次の手順で構成されています。
- Hive データリネージが有効で、Hive-BigQuery コネクタがクラスタにインストールされている Dataproc クラスタを作成します。
- クラスタで Hive クエリを実行して、Hive テーブル間でデータをコピーします。
- 生成されたデータリネージ グラフを 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
注:
- CLUSTER_NAME: クラスタの名前。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。 プロジェクト ID は、 Google Cloud コンソールのダッシュボードの [プロジェクト情報] セクションに表示されます。
- REGION: クラスタを配置する Compute Engine のリージョン。
- IMAGE_VERSION クラスタの対象のイメージ バージョン。
--initialization-actions
: Cloud Storage に配置されたこれらのインストール アクションでは、Hive-BigQuery コネクタをインストールし、Hive データリネージを有効にします。- HIVE_BQ_VERSION: Hive-BigQuery コネクタのバージョンを指定します。
--metadata
フラグは、バージョンをconnectors.sh
初期化アクションに渡して、クラスタに Hive-BigQuery コネクタをインストールします。
Hive クエリを実行する
Hive クエリを実行して、次の操作を行います。
gs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout
からサンプルデータ入力を使用してus_states
外部テーブルを作成します。- 指定した BigQuery データセットに
us_states_copy
マネージド テーブルを作成します。 - データをすべて
us_states
からus_states_copy
にコピーします。
クエリを実行するには:
- ローカル ターミナル ウィンドウまたは Cloud Shell で、
vi
やnano
などのテキスト エディタを使用して、次の Hive クエリ ステートメントをhive-example.sql
ファイルにコピーし、ファイルを現在のディレクトリに保存します。 - 先ほど作成した 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] でデータリネージを確認します。
BigQuery Studio でグラフを表示する方法については、BigQuery でリネージを表示するをご覧ください。グラフの詳細については、データリネージ情報モデルをご覧ください。
次のステップ
- データリネージの詳細を学習する。