使用数据探索工作台

借助 Dataplex 中的数据探索工作台(“探索”),您可以以交互方式查询完全受治理的数据,只需点击一下即可访问 Spark SQL 脚本和 Jupyter 笔记本。借助“探索”功能,您可以使用内置的发布、共享和搜索编码资源功能,跨团队协作。

了解如何使用用户凭据预配、扩缩和管理运行 Spark SQL 脚本和笔记本所需的无服务器基础架构。您可以通过工作台中的无服务器安排功能将您的工作付诸使用。

本文档介绍了如何使用 Dataplex 中的“探索”功能。

费用

Dataplex 在高级处理层级提供 Explore。

术语

本文档使用以下术语:

环境

环境可为您的 Spark SQL 查询和笔记本提供无服务器计算资源,以便在数据湖中运行。Dataplex 管理员创建和管理环境。

管理员可以向一个或多个用户授予 Dataplex 开发者角色或关联的 IAM 权限,以便他们在已配置的环境中运行查询和笔记本。

会话

当已获授权的用户选择环境来运行其查询和笔记本时,Dataplex 会使用指定的环境配置创建特定于用户的有效会话。如果会话未使用,则会自动终止,具体取决于环境配置。

为每位用户启动一个新会话需要几分钟时间。会话启动后,它会为同一用户运行后续查询和笔记本。会话的有效时长上限为 10 小时。

对于一个环境,Dataplex 只会为每位用户创建一个会话,该会话由 Spark SQL 脚本和 Jupyter 笔记本共享。

Dataplex 会使用会话中的用户凭据来运行操作,例如从 Cloud Storage 和 BigQuery 查询数据。

节点

节点用于指定环境配置中的计算容量。一个节点对应于 4 个数据计算单元 (DCU),相当于 4 个 vCPU 和 16 GB RAM。

默认环境

您可以为每个数据湖创建一个 ID 为 default 的默认环境。默认环境必须使用默认配置。默认配置包含以下内容:

  • 一个节点的计算容量
  • 主磁盘大小为 100 GB
  • 将自动会话关闭(自动关闭时间)设置为 10 分钟的空闲时间
  • sessionSpec.enableFastStartup 参数,默认设置为 true。将此参数设置为 true 后,Dataplex 会为此环境预配会话,以便随时可用,从而缩短初始会话启动时间。
  • 快速启动会话是指单节点会话,Dataplex 会按与常规会话类似的 Premium 处理 SKU 费率对其收费。最多只能有一个始终开启的会话可用于快速启动,即使未使用也会产生费用。Dataplex 会让此预创建会话保持活跃状态 10 小时,然后关闭该会话,再创建一个新会话。

如果您未明确选择环境,并且您之前已设置默认环境,则 Dataplex 会使用默认环境创建会话。

SQL 脚本

SQL 脚本是指以内容形式保存在 Dataplex 数据湖中的 Spark SQL 脚本。您可以将脚本保存在数据湖中,并与其他主账号共享。此外,您还可以将其安排为在 Dataplex 中以批量无服务器 Spark 作业的形式运行。借助 Dataplex,您可以使用开箱即用的 Spark SQL 访问与 Cloud Storage 和 BigQuery 中的数据对应的表。

笔记本

Python 3 笔记本是一种 Jupyter 笔记本,您可以将其作为内容保存在 Dataplex 数据湖中。您可以将笔记本保存为数据湖中的内容并与其他主要人员共享,也可以安排笔记本在 Dataplex 中作为 Dataproc Serverless Spark 批处理作业运行。

对于 BigQuery 中的数据,您可以直接通过 Spark 访问 BigQuery 表,而无需使用 %%bigquery 魔法命令。

准备工作

开始之前,请将数据湖关联到 Dataproc Metastore 并授予所需的角色。

将数据湖关联到 Dataproc Metastore (DPMS)

如需使用“探索”功能,请执行以下操作:

了解如何将 Dataproc Metastore 与 Dataplex 搭配使用,以访问 Spark 中的元数据

所需的角色

根据您计划执行的操作,您需要拥有以下所有 IAM 角色。数据湖中的所有环境都会继承在数据湖一级授予的权限。

Dataplex IAM 角色

  • Dataplex Viewer
  • Dataplex 开发者
  • Dataplex Metadata Reader
  • Dataplex Data Reader

其他角色:

日志记录

如需了解“探索”的使用方式,请参阅以下文档:

已知限制

本部分介绍了“探索”的已知限制。

  • 探索功能适用于以下区域中的数据湖:

    • asia-northeast1
    • asia-southeast1
    • europe-west1
    • europe-west2
    • us-central1
    • us-east1
    • us-west1
  • 在一个项目中,每个区域最多可以使用 10 个环境。如需了解如何提高配额上限,请参阅使用配额

  • 您最多可以创建 150 个节点的环境。单个用户会话的会话时长限制为 10 小时。

  • Spark SQL 脚本只能查询给定数据湖中的数据。如果您想查询其他数据湖中的数据,则必须切换到该数据湖,然后选择该数据湖中的环境。

  • 取消删除项目后,Dataplex 不会恢复内容资源,例如 SQL 脚本或笔记本。删除包含“探索”内容资源的项目时,请务必谨慎操作。

  • 安排笔记本作业时,如果环境中有自定义软件包,则您只能使用 gcloud CLI 安排笔记本作业。如需了解详情,请参阅使用自定义软件包安排运行程序

  • 如果您在删除脚本和笔记本之前删除环境,则无法访问“探索”页面。因此,请务必先删除脚本和笔记本,然后再在“探索”中删除环境。

  • Explore 会话不支持 Hadoop 分布式文件系统 (HDFS)。 请勿在探索会话中存储任何用户数据,因为这些数据会在会话结束时被删除。

  • 记事或 SQL 脚本的大小上限为 1 MB。

创建环境

  1. 在 Google Cloud 控制台中,前往 Dataplex 的管理数据湖页面。

    进入 Dataplex

  2. 选择要为其创建环境的 Dataplex 数据湖。

  3. 点击环境 (Environments) 标签页。

  4. 点击创建环境

  5. 显示名称字段中,为环境输入名称。

  6. 环境 ID 中,输入一个唯一 ID。

  7. 可选:为新环境输入说明。

  8. 配置计算窗格中,指定以下内容:

    1. 节点数量:为此环境创建的用户会话预配的节点数量。
    2. 节点数上限:Dataplex 可在与此环境关联的用户会话中自动扩缩的节点数上限。
    3. 主磁盘大小:与每个预配的节点关联的磁盘大小。
    4. 自动关闭时间:在达到此空闲时间后,Dataplex 会自动关闭与此环境关联的用户会话。您可以设置的最小值为 10 分钟,最大值为 60 分钟。
  9. 软件包(可选)窗格中,您可以指定要在此环境中为用户会话预配的其他 Python 软件包、JAR 文件和 Spark 属性。

    创建环境并为 Java JAR 或 Python 软件包提供 Cloud Storage 路径后,为了让 Dataplex 安装 JAR 或软件包,请确保 Cloud Dataplex 服务代理具有访问 Cloud Storage 文件所需的权限。

  10. 点击创建

备注

  • 一个节点对应于 4 个数据计算单元 (DCU),相当于 4 个 vCPU 和 16 GB RAM。

  • 您可以创建包含一个节点的环境,也可以创建包含三个或更多节点的环境。

  • 如果您是数据湖管理员,则可以提前设置环境,以便用户使用预指定的配置运行其工作负载。

  • 虽然环境可以与多位用户共享,但 Dataplex 会使用环境配置为每位用户创建单独的会话。

创建默认环境

请参阅默认环境的配置要求

控制台

  1. 在 Google Cloud 控制台中打开 Dataplex。

    进入 Dataplex

  2. 前往管理视图。

  3. 选择一个 Dataplex 数据湖。

  4. 点击环境 (Environments) 标签页。

  5. 点击创建默认环境

gcloud

如需创建启用了快速启动的默认环境,请运行以下命令:

gcloud dataplex environments create default --project=PROJECT_ID --lake=LAKE_ID --location=REGION--os-image-version=latest --session-enable-fast-startup

使用 Spark SQL 工作台探索数据

如需探索 BigQuery 和 Cloud Storage 数据,请使用 Spark SQL 脚本。

创建并保存脚本

  1. 在 Google Cloud 控制台中,前往 Dataplex 的探索页面。

  2. 探索视图中,选择包含您要探索的数据资产的数据湖。

  3. 在资源浏览器中,展开相应数据湖。系统会显示以下文件夹:

    • 数据:包含与数据湖关联的 DPMS 实例中的所有数据库和表,包括 Hudi、Iceberg 和 Delta Lake 表。
    • Notebook:包含在所选数据湖中创建的所有 Notebook。
    • Spark SQL 脚本:包含在所选数据湖中创建的所有 Spark SQL 脚本。
  4. 展开数据,然后选择所需的数据库和表。

  5. 如需使用示例查询,请点击查询。Spark SQL 工作台会自动使用示例查询填充新标签页。

  6. 如需创建新脚本,请在 Spark SQL 编辑器中点击新脚本,然后输入查询。

  7. 如需保存脚本,请依次选择保存 > 保存脚本

运行脚本

  1. Spark SQL 编辑器中,点击包含要运行的查询的标签页。

  2. 点击选择环境。选择要运行查询的环境。如果您未选择环境,Dataplex 会使用默认环境为每位用户创建一个会话。

    您可以在同一脚本中运行多个 Spark SQL 查询,只需使用分号将查询分隔开即可。

  3. 点击运行

  4. 使用下拉菜单查看脚本中每个查询的查询历史记录结果。

安排脚本

您可以安排脚本以 Dataplex 任务的形式运行。如需了解详情,请参阅为 SQL 脚本创建和管理时间表

分享脚本

您可以使用 IAM 权限与组织中的其他人共享脚本:

  1. 探索视图中,点击要共享的 Spark SQL 脚本。

  2. 更多菜单中,点击分享

  3. 查看权限。为共享脚本添加或移除查看者、编辑者和管理员权限。

共享脚本后,拥有数据湖级别查看或修改权限的用户可以前往数据湖并处理共享脚本。

使用 Spark SQL 探索 BigQuery 和 Cloud Storage 数据

对于作为资产添加到某个区域的任何 BigQuery 数据集,Dataplex 都支持 Spark SQL 直接访问该数据集中的所有表。您可以使用 Spark SQL 脚本或笔记本查询 Dataplex 中的数据。例如:

 select * from ZONE_ID.TABLE_ID

如果您的资产映射到同一可用区中的 Cloud Storage 存储分区,Dataplex 会提供一个统一的表列表,您可以使用 Spark 对其进行查询。

使用笔记本探索数据

本部分介绍了如何创建、安排、共享、导入和导出笔记本。

创建并保存笔记本

  1. 在 Google Cloud 控制台中,前往 Dataplex 的探索页面。

  2. 探索视图中,选择一个湖泊。

  3. 展开相应 Lake,然后点击 Notebooks 文件夹。

  4. 点击新建笔记本

  5. 笔记本路径字段中,提供笔记本的名称。

  6. 可选:在说明字段中,为新记事提供说明。

  7. 可选:添加标签。

  8. 点击创建笔记本。笔记本现已创建。

  9. 如需打开创建的笔记本,请点击打开笔记本

  10. 创建或打开笔记本时,选择您希望 Dataplex 在其中创建用户会话的环境。请务必选择包含您信任的软件包的环境。

    如果您未选择环境,Dataplex 会使用默认环境。如果您还没有环境,请创建一个。如需了解详情,请参阅创建环境

    现在,您可以编写 Python 代码并保存探索后的记事本,以探索数据。之后,您无需创建会话并运行代码,即可预览创建的笔记本并检查其输出。

安排笔记本

您可以安排笔记本以 Dataplex 任务的形式运行。如需了解详情,请参阅为记事本创建和管理时间表

分享笔记本

您可以使用 IAM 权限与组织中的其他人共享笔记本:

  1. 探索视图中,点击 Notebooks 文件夹。

  2. 选择要共享的 Jupyter 笔记本。

  3. 点击分享

  4. 查看权限。为此记事本添加或移除查看者、编辑者和管理员权限。

    共享笔记本后,拥有数据湖级别查看或修改权限的用户可以前往数据湖并处理共享笔记本。

导入笔记本

您可以从 Cloud Storage 存储分区导入笔记本:

  1. 探索视图中,点击 Notebooks 文件夹。

  2. 点击导入

  3. 前往包含要导入的记事的 Cloud Storage 存储分区。

  4. 选择笔记本,提供名称,然后点击导入

    导入的笔记本会在 Notebooks 文件夹中创建。您可以打开、修改、共享和安排导入的记事本。

导出笔记本

您可以将笔记本导出到 Cloud Storage 存储分区,以便组织中拥有 IAM 权限的其他用户使用。

  1. 探索视图中,点击 Notebooks 文件夹。

  2. 标记要导出的笔记本。

  3. 点击 菜单,然后点击导出

  4. 输入要将该记事本导出到的 Cloud Storage 路径。

  5. 点击导出笔记本

后续步骤