使用数据探索工作台

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

探索使用用户凭据运行 Spark SQL 脚本和笔记本所需的无服务器基础架构的预配、扩缩和管理。您可以在 Workbench 中利用无服务器调度功能将工作付诸实践。

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

费用

Dataplex 提供高级处理层级的“探索”功能。

术语

本文档使用以下术语:

环境

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

管理员可以向一个或多个用户授予 Developer 角色或关联的 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 按与常规会话类似的高级处理 SKU 费率收费。对于快速启动,最多可以有一个始终开启的会话,即使未在使用中也会产生费用。Dataplex 会将这个预先创建的会话保持活跃状态 10 小时,将其关闭,然后创建新会话。

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

SQL 脚本

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

笔记本

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

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

准备工作

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

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

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

了解如何使用 Dataplex 设置 Dataproc Metastore 以访问 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 安排笔记本。如需了解详情,请参阅使用自定义软件包调度笔记本

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

  • 探索不支持 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 Service Agent 具有访问 Cloud Storage 文件所需的权限。

  10. 点击创建

Notes

  • 一个节点映射到 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 数据湖表。
    • 笔记本:包含在所选数据湖中创建的所有笔记本。
    • 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. 展开数据湖,然后点击 Notebooks 文件夹。

  4. 点击新建笔记本

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

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

  7. 可选:添加标签。

  8. 点击创建笔记本。现在,系统会创建一个笔记本。

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

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

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

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

安排笔记本

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

共享笔记本

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

  1. 探索视图中,点击笔记本文件夹。

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

  3. 点击分享

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

    共享笔记本后,具有数据湖级查看或修改权限的用户可以导航到数据湖并处理共享的笔记本。

导入笔记本

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

  1. 探索视图中,点击笔记本文件夹。

  2. 点击导入

  3. 导航到包含要导入的笔记本的 Cloud Storage 存储桶。

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

    系统会在 Notebooks 文件夹中创建导入的笔记本。您可以打开、修改、共享导入的笔记本以及安排其运行。

导出笔记本

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

  1. 探索视图中,点击笔记本文件夹。

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

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

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

  5. 点击导出笔记本

后续步骤