一般的な Explore のエラー

このページでは、Dataplex のデータ探索ワークベンチの問題を解決する方法について説明します。

データベースが見つかりません

SQL ワークベンチまたは Jupyter ノートブックから Spark クエリを実行すると、次のエラーが発生します。

Script failed in execution.
org.apache.spark.sql.catalyst.parser.ParseException:
No viable alternative at input `zone-name`(line 1, pos24)

Dataplex ゾーン名は、Hive 互換のデータベース名にマッピングされ、Spark を使用してクエリできます。Dataplex ゾーン名にはハイフン(-)を使用できますが、Hive データベース名には使用できません。そのため、Dataplex ゾーン名の中のハイフンは、Hive データベース名のアンダースコア(_)にマッピングされます。

この問題を解決する方法は次のとおりです。

  1. 使用可能なデータベースのリストを取得します。

    show databases
    
  2. 返されたデータベース名のリストを確認し、正しいデータベース名をクエリしていることを確認してください。

表が見つかりません

SQL ワークベンチまたは Jupyter ノートブックから Spark クエリを実行すると、次のエラーが発生します。

Script failed in execution.
org.apache.spark.sql.AnalysisException: Table or view not found

Dataplex は、BigQuery と Cloud Storage のアセットのメタデータを検出し、Dataproc Metastore(DPMS)を使用してアクセスできるようにします。SQL ワークベンチまたは Jupyter ノートブックでの Spark クエリは、SQL の実行中は DPMS に接続して、テーブル メタデータを取得します。

この問題を解決する方法は次のとおりです。

  1. 使用可能なテーブルのリストを取得します。

    show tables in DATABASE_NAME
    
  2. 正しいテーブル名をクエリしていることを確認します。

  3. テーブル名に大文字が含まれている場合は、環境構成で spark.sql.caseSensitivetrue に設定します。

権限に関するエラー

Spark クエリは権限に関するエラーで失敗します。次に例を示します。

  • HiveException
  • TTransportException

Dataplex で Explore 機能を使用するには、Dataplex リソースと基盤となるアセットで必要なロールと権限を付与される必要があります。

この権限に関する問題を解決するには、次の手順に従います。

  • データ探索ワークベンチの使用に必要なロールと権限が付与されていることを確認します。
  • 基盤となる Cloud Storage と BigQuery のアセットに対する read 権限があることを確認します。
  • カスタム パッケージの場合、Cloud Dataplex サービス エージェントに、環境に構成された Cloud Storage バケットに対する read 権限があることを確認します。

スクリプトまたはノートブックを含むレイクを削除できない

Dataplex Explore に使用されるレイクを削除する際に、レイクにスクリプトまたはノートブックが含まれている場合、次のエラーが発生します。

Failed to delete `projects/locations/region/lakes/lakename` since it has child
resources.

Dataplex Explore では、リソース ブラウザに少なくとも 1 つの環境が存在する必要があります。

この問題を解決するには、次のいずれかのワークアラウンドを使用します。

  • gcloud CLI コマンドを使用して、レイクからスクリプトとノートブックを削除してから、レイクを削除します。
  • リソース ブラウザを有効にする一時環境を作成します。すべてのスクリプトとノートブックを、それから一時環境とレイクを削除します。

ジョブが中断されました

Spark クエリを実行する際は、重大なエラーがあるとジョブが中断されます。

この問題を解決するには、エラー メッセージを参照して問題の根本原因を特定し、修正します。

Iceberg テーブルのクエリ時の TTransportException

幅広い Iceberg テーブルに対してクエリを実行すると、TTransportException が発生します。

Iceberg には、Dataplex Explore で使用される Dataproc 2.0 イメージで利用可能な Spark 3.1 に関する既知の問題があります。

この問題を解決するには、SELECT クエリに更なるプロジェクションを追加します。次に例を示します。

SELECT a,b,c, 1 AS dummy FROM ICEBERG_TABLE

この例では、1 AS dummy が追加のプロジェクションです。詳細については、問題の詳細ページをご覧ください。

レイクが Explore リソース ブラウザに表示されない

Explore は、us-central1europe-west2europe-west1us-east1us-west1asia-southeast1asia-northeast1 のリージョンのレイクでのみ使用できます。それ以外のリージョンに属するレイクは、Explore リソース ブラウザに表示されません。

Dataplex Explore を開始できない

Google Cloud コンソールにて、Dataplexページで、Explore をクリックすると、次のメッセージが表示されます。

In order to use Dataplex Explore to query data in CLoud Storage and BigQuery
using open soure applications (ex: SparkSQL), connect a metastore. Get started
by setting up one. If DPMS is already attached to the lake and you are seeing
this page, please check the DPMS logs for any possible issues.

Explore は、レイクに Dataproc Metastore(DPMS)が構成され、少なくとも 1 つの環境が設定されている場合にのみ機能します。

この問題を解決するには、レイクを Dataproc Metastore にリンクします。

割り当ての制約

環境を作成する際に、割り当て関連のエラーが表示される場合があります。

この問題を解決するには、環境の作成前に次の割り当てを確認します。

  • レイクごとに 10 個の環境を作成できます。
  • 最大 150 個のノードがある環境を作成できます。
  • 個々のユーザー セッションのセッションの長さは 10 時間に制限されています。

セッションの起動時間が長い

ユーザーごとに新しいセッションを開始するには 2.5 ~ 3.5 分かかります。セッションが有効になると、同じユーザーに対する後続のクエリとノートブックの実行に使用されます。

セッションの起動時間を短縮するには、高速起動を有効にしてデフォルト環境を作成します。

カスタム Python パッケージを含むノートブックをスケジューリングできない

Google Cloud コンソールで、カスタム Python パッケージを含むノートブックをスケジューリングすると、次のエラーが発生します。

Selected environment ENVIRONMENT_NAME has additional Python
packages configured. These packages will not be available in the default runtime
for the scheduled notebook when scheduling in the Console. To make the required
additional Python packages available in the runtime, please create Notebook
Schedule using gcloud command instead, referencing a container image with
required additional packages.

環境にカスタム Python パッケージがある場合は、Google Cloud コンソールでノートブックをスケジューリングできません。

この問題を解決するには、gcloud CLI を使用して、カスタム パッケージを含むノートブックをスケジューリングします。