借助 Dataplex (Explore) 中的数据探索工作台,您可以一键访问 Spark SQL 脚本和 Jupyter 笔记本,从而以交互方式查询完全治理的数据。借助“探索”功能,您可以通过内置的发布、共享和搜索编码资源跨团队进行协作。
探索预配、扩缩和管理使用用户凭据运行 Spark SQL 脚本和笔记本所需的无服务器基础架构。在工作台上,您可以通过无服务器调度实现工作。
本文档介绍如何使用 Dataplex 中的“探索”功能。
费用
Dataplex 提供高级处理层级的“探索”。
术语
本文档使用以下术语:
环境
环境提供无服务器计算资源,供您的 Spark SQL 查询和笔记本在数据湖内运行。Dataplex 管理员会创建和管理环境。
管理员可向一个或多个用户授予 Developer role 或关联的 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 中作为批处理无服务器作业运行。Dataplex 支持对映射到 Cloud Storage 和 BigQuery 中的数据的表进行开箱即用的 Spark SQL。
笔记本
Python 3 笔记本是一种 Jupyter 笔记本,保存在 Dataplex 数据湖中。您可以将笔记本另存为数据湖中的内容并与其他主帐号共享,或者安排笔记本在 Dataplex 中作为 Dataproc Serverless Spark 批量作业运行。
对于 BigQuery 中的数据,您可以直接通过 Spark 访问 BigQuery 表,而无需使用 %%bigquery
魔法命令。
须知事项
将数据湖连接到 Dataproc Metastore (DPMS)
如要使用“探索”,请执行以下操作:
- 将 3.1.2 或更高版本中已启用 gRPC 的 Dataproc Metastore (DPMS) 实例与 Dataplex 数据湖关联。
- 确保您有一个 Dataproc Metastore 和一个映射到数据湖的环境。
了解如何使用 Dataplex 设置 Dataproc Metastore 访问 Spark 中的元数据。
所需的角色
根据您计划执行的操作,您需要以下所有 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。
创建环境
在 Google Cloud 控制台中,转到 Dataplex 管理数据湖页面。
选择您想要为其创建环境的 Dataplex 数据湖。
点击环境 (Environments) 标签页。
点击创建环境。
在显示名称字段中,为环境输入名称。
在环境 ID 中,输入一个唯一 ID。
可选:为新环境输入说明。
在配置计算窗格中,指定以下内容:
- 节点数:要为为此环境创建的用户会话预配的节点数。
- 节点数上限:Dataplex 可以在与此环境关联的用户会话中自动扩缩的节点数上限。
- 主磁盘大小:与每个预配节点关联的磁盘大小。
- 自动关停时间:Dataplex 在该时间后自动关闭与此环境关联的用户会话。最短可设置 10 分钟,最长可设置 60 分钟。
在软件包(可选)窗格中,您可以指定要在为此环境预配的用户会话上安装的其他 Python 软件包、JAR 文件和 Spark 属性。
创建环境并为 Java JAR 或 Python 软件包提供 Cloud Storage 路径时,为了让 Dataplex 安装 JAR 或软件包,请确保 Cloud Dataplex Service Agent 具有访问 Cloud Storage 文件所需的权限。
点击创建。
备注
一个节点对应 4 个数据计算单元 (DCU),相当于 4 个 vCPU 和 16 GB RAM。
您可以创建只包含一个节点的环境,也可以创建包含三个或更多节点的环境。
如果您是数据湖管理员,则可以提前设置环境,以便用户可以使用预先指定的配置运行工作负载。
虽然可以与多个用户共享环境,但 Dataplex 使用环境配置为每个用户创建单独的会话。
创建默认环境
请参阅默认环境的配置要求。
控制台
在 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 工作台探索数据
如需探索 BigQuery 和 Cloud Storage 数据,请使用 Spark SQL 脚本。
创建并保存脚本
在 Google Cloud 控制台中,转到 Dataplex 探索页面。
在探索视图中,选择包含待探索的数据资源的数据湖。
在资源浏览器中,展开数据湖。此时系统会显示以下文件夹:
- 数据:包含连接到数据湖的 DPMS 实例中的所有数据库和表,包括 Hudi、Iceberg 和 Delta 数据湖表。
- Notebooks:其中包含在所选数据湖中创建的所有笔记本。
- Spark SQL 脚本:包含在所选数据湖中创建的所有 Spark SQL 脚本。
展开数据,然后选择所需的数据库和表。
如需使用示例查询,请点击查询。Spark SQL 工作台会使用示例查询自动填充新标签页。
如需创建新脚本,请在 Spark SQL 编辑器中点击新建脚本,然后输入您的查询。
如需保存脚本,请依次选择保存 > 保存脚本。
运行脚本
在 Spark SQL 编辑器中,点击要运行的查询对应的标签页。
点击选择环境。选择您要运行查询的环境。如果您未选择环境,Dataplex 会使用默认环境为每个用户创建会话。
您可以在同一个脚本中运行多个 Spark SQL 查询,只需使用英文分号分隔这些查询即可。
点击运行。
使用下拉列表查看脚本中每个查询的查询记录结果。
安排脚本运行时间
您可以将脚本安排为 Dataplex 任务运行。 如需了解详情,请参阅为 SQL 脚本创建和管理时间表。
分享脚本
您可以使用 IAM 权限与组织中的其他人共享脚本:
在探索视图中,点击要共享的 Spark SQL 脚本。
在更多菜单中,点击分享。
查看权限。添加或移除共享脚本的查看者、编辑者和管理员权限。
共享脚本后,在湖级拥有查看或修改权限的用户可以导航到数据湖并处理共享脚本。
使用 Spark SQL 探索 BigQuery 和 Cloud Storage 数据
对于任何作为资源添加到区域的 BigQuery 数据集,Dataplex 支持直接访问该数据集中的所有表。您可以使用 Spark SQL 脚本或笔记本在 Dataplex 中查询数据。例如:
select * from ZONE_ID.TABLE_ID
如果您的资产映射到同一可用区中的 Cloud Storage 存储分区,Dataplex 提供了一个您可以使用 Spark 进行查询的统一表列表。
使用笔记本探索数据
创建并保存笔记本
在 Google Cloud 控制台中,转到 Dataplex 探索页面。
在探索视图中,选择一个数据湖。
展开数据湖,然后点击 Notebooks 文件夹。
点击新建笔记本。
在笔记本路径字段中,提供笔记本的名称。
可选:在说明字段中,为新笔记本提供说明。
可选:添加标签。
点击创建笔记本。现在已创建笔记本。
如需打开已创建的笔记本,请点击打开笔记本。
创建或打开笔记本时,选择您希望 Dataplex 创建用户会话的环境。请确保您选择的环境包含您信任的软件包。
如果您未选择环境,Dataplex 会使用默认环境。 如果您没有环境,请创建一个。如需了解详情,请参阅创建环境。
您现在可以通过编写 Python 代码并保存笔记本探索后来探索数据。之后,您可以预览创建的笔记本并检查其输出,而无需创建会话并运行代码。
安排笔记本
您可以安排笔记本作为 Dataplex 任务运行。如需了解详情,请参阅创建和管理笔记本的时间表。
共享笔记本
您可以使用 IAM 权限与组织中的其他人共享笔记本:
在探索视图中,点击笔记本文件夹。
选择您要共享的 Jupyter 笔记本。
点击分享。
查看权限。添加或移除此笔记本的查看者、编辑者和管理员权限。
共享笔记本后,在数据湖级拥有查看或修改权限的用户可以导航到数据湖并处理共享笔记本。
导入笔记本
您可以从 Cloud Storage 存储桶导入笔记本:
在探索视图中,点击笔记本文件夹。
点击导入。
导航到包含要导入的笔记本的 Cloud Storage 存储桶。
选择笔记本,提供名称,然后点击导入。
导入的笔记本将在 Notebooks 文件夹中创建。您可以打开、修改、共享和安排导入的笔记本。
导出笔记本
您可以将笔记本导出到 Cloud Storage 存储桶,以供组织中具有 IAM 权限的其他用户使用。
在探索视图中,点击笔记本文件夹。
标记您要导出的笔记本。
点击
菜单,然后点击导出。输入要将笔记本导出到的 Cloud Storage 路径。
点击导出笔记本。