常见的探索错误

本页介绍了如何解决 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 查询时,系统会连接到 DPMS 以获取表元数据。

如需解决此问题,请按以下步骤操作:

  1. 获取可用表的列表:

    show tables in DATABASE_NAME
    
  2. 请确保您查询的表名称正确无误。

  3. 如果表名称包含大写字母,请在环境配置中将 spark.sql.caseSensitive 设置为 true

权限错误

Spark 查询失败并显示权限错误。例如:

  • HiveException
  • TTransportException

如需使用 Dataplex 中的“探索”功能,您必须获得对 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 要求资源浏览器中至少有一个环境。

为了解决这一问题,请使用以下解决方法之一:

  • 使用 gcloud CLI 命令从数据湖中删除脚本和笔记本,然后删除数据湖。
  • 创建一个启用资源浏览器的临时环境。删除所有脚本和笔记本,然后删除临时环境和数据湖。

作业已终止

当您运行 Spark 查询时,如果出现严重错误,作业会中止。

如需解决此问题,请参阅错误消息以确定问题的根本原因,然后加以解决。

查询 Iceberg 表时出现 TTransportException

当您查询宽 Iceberg 表时,会发生 TTransportException

Iceberg 在 Spark 3.1 上存在一个已知问题,该问题存在于 Dataplex Explore 使用的 Dataproc 2.0 映像中。

如需解决此问题,请在 SELECT 查询中添加额外的投影。例如:

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

在此示例中,1 AS dummy 是额外的投影。如需了解详情,请参阅问题详情页面

数据湖未显示在“探索”资源浏览器中

“探索”功能仅适用于 us-central1europe-west2europe-west1us-east1us-west1asia-southeast1asia-northeast1 地区的湖泊。属于任何其他区域的湖泊不会显示在“探索”资源浏览器中。

无法开始使用 Dataplex Explore

在 Google Cloud 控制台中,点击 Dataplex 页面上的探索后,系统会显示以下消息:

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.

只有当数据湖已配置 Dataproc Metastore (DPMS) 且至少设置了一个环境时,探索功能才可用。

如需解决此问题,请将数据湖关联到 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 安排包含自定义软件包的笔记本