Dataplex(Explore)のデータ探索ワークベンチを使用すると、Spark SQL スクリプトと Jupyter ノートブックへワンクリックでアクセスでき、完全に管理されたデータをインタラクティブにクエリできます。Explore を使用すると、コーディング資産を公開、共有、検索する組み込みの機能により、チーム間での共同作業が可能になります。
Explore は、ユーザー認証情報を使用して Spark SQL スクリプトとノートブックを実行するために必要なサーバーレス インフラストラクチャのプロビジョニング、スケーリング、管理を行います。 ワークベンチから、サーバーレス スケジューリングを使用した作業の運用が設定できます。
このドキュメントでは、Dataplex で Explore 機能を使用する方法について説明します。
費用
Dataplex では、プレミアム処理ティアで Explore が提供されます。
用語
このドキュメントでは、次の用語を使用しています。
環境
環境は、Spark SQL クエリとノートブックをレイク内で実行するためのサーバーレス コンピューティング リソースを提供します。環境は Dataplex 管理者が作成して管理します。
管理者は、1 人以上のユーザーに、Dataplex デベロッパー ロールや関連する IAM 権限を付与することで、構成された環境でクエリとノートブックを実行することを承認できます。
セッション
Dataplex は、承認済みユーザーがクエリとノートブックを実行する環境を選択すると、指定された環境構成を使用してユーザー固有のアクティブなセッションを作成します。環境構成によっては、セッションが使用されていない場合に自動的に終了します。
ユーザーごとに新しいセッションを開始するには、数分かかります。セッションが開始されると、同じユーザーに対する後続のクエリとノートブックが実行されます。セッションは、最大で 10 時間アクティブになります。
環境に対して、Dataplex はユーザーごとに 1 つのセッションのみを作成します。これは Spark SQL Spark スクリプトと Jupyter ノートブックの両方で共有されます。
Dataplex は、セッション内のユーザー認証情報を使用して、Cloud Storage や BigQuery からのデータのクエリなどのオペレーションを実行します。
ノード
ノードは、環境構成のコンピューティング容量を指定します。1 ノードは 4 つの Data Compute Unit(DCU)にマッピングされます。これは、4 つの vCPU と 16 GB の RAM に相当します。
デフォルトの環境
デフォルトの環境は、ID を default
としてレイクごとに 1 つ作成できます。デフォルト環境では、デフォルトの構成を使用する必要があります。デフォルトの構成は、次の要素で作られます。
- 1 ノードのコンピューティング容量
- メインディスクのサイズが 100 GB
- アイドル時間 10 分に設定された自動セッション シャットダウン(自動シャットダウン時間)
sessionSpec.enableFastStartup
パラメータ(デフォルトでtrue
に設定されます)。このパラメータがtrue
に設定されている場合、Dataplex は、セッションがすぐに利用できるようにこの環境のセッションを事前プロビジョニングして、セッションの初期起動時間を短縮します。- 高速起動セッションは単一ノード セッションです。Dataplex では通常のセッションと同様に Premium Processing SKUのレートで課金されます。高速起動では、最大で 1 つの常時接続セッションを利用でき、使用していない場合でも料金が発生します。Dataplex はこの事前作成されたセッションを 10 時間維持し、シャットダウンし、それから新しいセッションを作成します。
環境を明示的に選択せず、事前にデフォルトの環境を設定している場合、Dataplex はデフォルトの環境を使用してセッションを作成します。
SQL スクリプト
SQL スクリプトは、Dataplex レイク内のコンテンツとして保存される Spark SQL スクリプトです。スクリプトはレイク内に保存して、他のプリンシパルと共有できます。また、Dataplex でバッチ サーバーレス Spark ジョブとして実行するようにスケジュール設定することも可能です。Dataplex を使用すると、Cloud Storage と BigQuery のデータにマッピングされるテーブルに、Spark SQL ですぐにアクセスできます。
ノートブック
Python 3 ノートブックは、Dataplex レイクにコンテンツとして保存する Jupyter ノートブックです。ノートブックは、コンテンツとしてレイク内に保存して他のプリンシパルと共有することや、Dataplex で Dataproc サーバーレス Spark バッチジョブとして実行するようにスケジュール設定することが可能です。
BigQuery のデータの場合は、%%bigquery
マジック コマンドを使用せずに、Spark を介して BigQuery テーブルに直接アクセスできます。
準備
始める前に、レイクを Dataproc Metastore にリンクし、必要なロールを付与します。
レイクを Dataproc Metastore(DPMS)にリンクさせる
Explore を使用する手順は次のとおりです。
- バージョン 3.1.2 以降の gRPC 対応 Dataproc Metastore(DPMS)インスタンスを Dataplex レイクに関連付けます。
- Dataproc Metastore とレイクにマッピングされた環境があることを確認します。
Dataplex で Dataproc Metastore を設定して、Spark のメタデータにアクセスする方法をご覧ください。
必要なロール
実行するアクションに応じて、次の IAM ロールすべてが必要です。レイク内のすべての環境は、レイクレベルで付与された権限を継承します。
- Dataplex 閲覧者
- Dataplex デベロッパー
- Dataplex メタデータ読み取り
- Dataplex データリーダー
その他のロール:
ロギング
Explore の使用方法については、次のドキュメントをご覧ください。
既知の制限事項
このセクションでは、データ探索ツールの既知の制限事項について説明します。
Explore は、次のリージョンのレイクで利用できます。
asia-northeast1
asia-southeast1
europe-west1
europe-west2
us-central1
us-east1
us-west1
プロジェクト内のリージョンごとに最大 10 個の環境を使用できます。割り当て上限の増加については、割り当ての操作をご覧ください。
最大 150 ノードを使用して環境を作成できます。個々のユーザー セッションのセッションの長さは 10 時間に制限されています。
Spark SQL スクリプトでは、特定のレイク内のデータをクエリできます。別のレイクにあるデータをクエリする場合は、そのレイクに切り替えて、そのレイク内の環境を選択する必要があります。
プロジェクトの削除を取り消しても、SQL スクリプトやノートブックなどのコンテンツ リソースは復元されません。Explore コンテンツ リソースを含むプロジェクトを削除する場合は、注意してください。
ノートブックをスケジュール設定するとき、環境にカスタム パッケージがある場合は、gcloud CLI を使用してのみノートブックをスケジュール設定できます。詳細については、カスタム パッケージを使用してノートブックをスケジュール設定するをご覧ください。
スクリプトやノートブックを削除する前に環境を削除すると、Explore ページにアクセスできなくなります。したがって、Explore で環境を削除する前に、スクリプトとノートブックを削除してください。
Explore セッションは Hadoop 分散ファイル システム(HDFS)をサポートしていません。セッションが終了すると削除されるため、ユーザーデータは Explore セッションに保存しないでください。
ノートブックや SQL スクリプトの最大サイズは 1 MB です。
環境の作成
Google Cloud コンソールで、Dataplex の [レイクの管理] ページに移動します。
環境を作成する Dataplex レイクを選択します。
[Environments] タブをクリックします。
[環境を作成] をクリックします。
[表示名] フィールドに、環境の名前を入力します。
[環境 ID] に一意の ID を入力します。
省略可: 新しい環境の説明を入力します。
[コンピューティングの構成] ペインで、次のように指定します。
- ノードの数: この環境用に作成されたユーザー セッション用にプロビジョニングするノードの数。
- ノードの最大数: この環境に関連付けられたユーザー セッションで Dataplex が自動スケールできるノードの最大数。
- プライマリ ディスクのサイズ: プロビジョニングされた各ノードに関連付けられているディスクサイズの量。
- Auto Shutdown Time: Dataplex がこの環境に関連付けられたユーザー セッションを自動的にシャットダウンするまでのアイドル時間。最小 10 分、最大 60 分に設定できます。
[Software packages (optional)] ペインで、追加の Python パッケージ、JAR ファイル、Spark プロパティを指定して、この環境用にプロビジョニングされたユーザー セッションにインストールできます。
Dataplex で JAR またはパッケージをインストールするために、環境を作成してJava JAR または Python パッケージ用の Cloud Storage のパスを指定する場合は、Cloud Dataplex サービス エージェントに Cloud Storage ファイルへのアクセスに必要な権限が付与されていることを確認してください。
[作成] をクリックします。
注
ノードは 4 つの Data Compute Unit(DCU)にマッピングされます。これは、4 つの vCPU と 16 GB の RAM に相当します。
ノードが 1 つの環境か、ノードが 3 つ以上ある環境を作成できます。
レイク管理者の場合は、環境を事前に設定することで、事前に指定された構成を使用してユーザーがワークロードを実行できるようになります。
環境は複数のユーザーと共有できますが、Dataplex は環境構成を使用してユーザーごとに個別のセッションを作成します。
デフォルトの環境を作成する
デフォルト環境の構成要件をご覧ください。
Console
Google Cloud コンソールで [Dataplex] を開きます。
[管理] ビューに移動します。
Dataplex レイクを選択します。
[Environments] タブをクリックします。
[デフォルト環境を作成] をクリックします。
gcloud
高速起動を有効にしてデフォルト環境を作成するには、次のコマンドを実行します。
gcloud dataplex environments create default --project=PROJECT_ID --lake=LAKE_ID --location=REGION--os-image-version=latest --session-enable-fast-startup
Spark SQL Workbench を使用してデータを探索する
BigQuery と Cloud Storage のデータを探索するには、Spark SQL スクリプトを使用します。
スクリプトを作成して保存する
Google Cloud コンソールで Dataplex の [Explore] ページに移動します。
[Explore] ビューで、探索するデータアセットを含むレイクを選択します。
リソース ブラウザでレイクを開きます。次のフォルダが表示されます。
- データ: Hudi、Iceberg、Delta レイクのテーブルなど、レイクに接続されている DPMS インスタンス内のすべてのデータベースとテーブルが含まれます。
- ノートブック: 選択したレイクに作成されたすべてのノートブックが含まれます。
- Spark SQL スクリプト: 選択したレイクで作成されたすべての Spark SQL スクリプト。
[Data] を開き、必要なデータベースとテーブルを選択します。
サンプルクエリを使用するには、[クエリ] をクリックします。Spark SQL ワークベンチで、サンプルクエリが新しいタブに自動的に入力されます。
新しいスクリプトを作成するには、Spark SQL エディタで [新しいスクリプト] をクリックし、クエリを入力します。
スクリプトを保存するには、[保存] > [スクリプトを保存] を選択します。
スクリプトを実行する
Spark SQL エディタで、実行するクエリのタブをクリックします。
[環境を選択] をクリックします。クエリを実行する環境を選択します。環境を選択しない場合、Dataplex はデフォルトの環境を使用してユーザーごとにセッションを作成します。
同じスクリプトで複数の Spark SQL クエリを実行するには、クエリをセミコロンで区切ります。
[実行] をクリックします。
プルダウン リストを使用して、スクリプト内の各クエリのクエリ履歴の結果を確認します。
スクリプトをスケジュール設定する
スクリプトのスケジュールを設定して Dataplex タスクとして実行できます。詳細については、SQL スクリプトのスケジュールの作成と管理をご覧ください。
スクリプトを共有する
スクリプトは、IAM 権限を使用して組織内の他のユーザーと共有できます。
[Explore] ビューで、共有する Spark SQL スクリプトをクリックします。
[その他] メニューで、[共有] をクリックします。
権限を確認します。共有スクリプトの閲覧者、編集者、管理者の権限を追加または削除します。
スクリプトを共有した後、レイクレベルで表示や編集の権限を持つユーザーは、レイクに移動して共有スクリプトで作業できます。
Spark SQL を使用して BigQuery と Cloud Storage のデータを探索する
ゾーンにアセットとして追加された BigQuery データセットの場合、Dataplex は、そのデータセット内のすべてのテーブルに直接 Spark SQL でアクセスできるようにします。Dataplex のデータを、Spark SQL スクリプトやノートブックを使用してクエリできます。次に例を示します。
select * from ZONE_ID.TABLE_ID
アセットが同じゾーンの Cloud Storage バケットにマッピングされている場合、Dataplex は、Spark を使用してクエリできるテーブルの統合リストを提供します。
ノートブックを使用してデータを探索する
このセクションでは、ノートブックの作成、スケジュール設定、共有、インポート、エクスポートの方法について説明します。
ノートブックを作成して保存する
Google Cloud コンソールで Dataplex の [Explore] ページに移動します。
[Explore] ビューでレイクを選択します。
レイクを開いて、[Notebooks] フォルダをクリックします。
[新しいノートブック] をクリックします。
[ノートブックのパス] フィールドに、ノートブックの名前を入力します。
(省略可)[説明] フィールドに、新しいノートブックの説明を入力します。
(省略可)ラベルを追加します。
[ノートブックを作成] をクリックします。ノートブックが作成されました。
作成したノートブックを開くには、[ノートブックを開く] をクリックします。
ノートブックを作成するときや開くときは、Dataplex によってユーザー セッションが作成される環境を選択します。信頼できるパッケージがある環境を選択してください。
環境を選択しない場合、Dataplex はデフォルトの環境を使用します。環境がない場合は、作成してください。詳細については、環境を作成するをご覧ください。
これで、Python コードを記述し、ノートブック投稿の探索情報を保存して、データを探索できるようになりました。今後は、セッションを作成してコードを実行することなく、作成したノートブックをプレビューし、出力を確認できます。
ノートブックをスケジュール設定する
ノートブックのスケジュールを設定して Dataplex タスクとして実行できます。詳細については、ノートブックのスケジュールを作成、管理するをご覧ください。
ノートブックを共有する
ノートブックは、IAM 権限を使用して組織内の他のユーザーと共有できます。
[Explore] ビューで、[Notebooks] フォルダをクリックします。
共有する Jupyter ノートブックを選択します。
[共有] をクリックします。
権限を確認します。このノートブックの閲覧者、編集者、管理者の権限を追加または削除します。
ノートブックを共有した後、レイクレベルで表示や編集の権限を持つユーザーは、レイクに移動して共有ノートブックで作業できます。
ノートブックをインポートする
ノートブックを Cloud Storage バケットからインポートできます。
[Explore] ビューで、[Notebooks] フォルダをクリックします。
[インポート] をクリックします。
インポートするノートブックを含む Cloud Storage バケットに移動します。
ノートブックを選択して名前を指定し、[インポート] をクリックします。
インポートされたノートブックは [Notebooks] フォルダに作成されます。インポートしたノートブックは、開くこと、編集、共有、スケジュール設定することが可能です。
ノートブックをエクスポートする
ノートブックを Cloud Storage バケットにエクスポートすると、IAM 権限を持つ組織内の他のユーザーが使用できるようになります。
[Explore] ビューで、[Notebooks] フォルダをクリックします。
エクスポートするノートブックに印を付けます。
メニューをクリックし、[エクスポート] をクリックします。
ノートブックをエクスポートする場所の Cloud Storage のパスを入力します。
[ノートブックをエクスポート] をクリックします。