本文档定义了无边界 Lakehouse 的关键术语和概念。
本页并非详尽的功能列表,而是对 Google Cloud 的 Lakehouse 文档中使用的术语和概念的一般参考。
核心概念
以下概念构成了 Google Cloud Lakehouse 架构的基础。
数据湖仓
数据湖仓一体兼具数据湖的成本节省和灵活性,以及数据仓库的数据管理和性能优势。借助数据湖仓,您可以将数据以开放格式存储在 Cloud Storage 中,并使用 BigQuery 功能,例如精确的安全控制和快速查询。
奖章架构
数据湖仓一体中的一种常见设计模式是奖章架构,它按逻辑方式将数据整理成具有递进式结构和质量的层:
- 青铜(原始)层:以 Apache Iceberg 等开放格式在 Cloud Storage 上提取和存储原始数据。
- 白银(清理)层:将原始数据清理、过滤和丰富为标准化表格。
- 黄金(精选)层:提供经过全面精选的汇总业务级表。在 Google Cloud 的湖仓一体中,BigQuery 通常用于提供黄金层,以实现高性能的数据使用、报告和分析。
开放式互操作性
开放式互操作性是指 BigQuery、Apache Spark 和 Apache Flink 等多个分析和事务处理系统能够以 Apache Iceberg 等开放格式处理同一份数据。这样一来,您无需再重复数据,并可确保在不同工具中获得一致的数据视图。
Lakehouse 运行时目录
Lakehouse 运行时目录是一种集中式无服务器元数据服务,可作为 Google Cloud Lakehouse 的单一事实来源。它让多个引擎(例如 Apache Spark、Apache Flink 和 BigQuery)能够同时发现和查询相同的表。
目录类型
Lakehouse 运行时目录提供不同类型的目录来管理元数据。
Apache Iceberg REST Catalog 端点
此目录基于 Apache Iceberg REST 目录端点。它可在开源引擎和 BigQuery 之间实现互操作性,并支持凭据自动售卖和灾难恢复等功能。
目录存储配置
创建 Apache Iceberg REST Catalog 端点时,您可以选择以下两种存储模式:
- 多存储桶目录(推荐):可让您独立命名目录,并配置最多 15 个 Cloud Storage 存储桶(
default_location和restricted_locations)。配置客户端查询引擎(例如 Spark 或 Trino)时,请将数据仓库路径设置为bl://projects/PROJECT_ID/catalogs/CATALOG_ID。 - 单存储桶目录:一种旧版配置,其中目录锁定到单个 Cloud Storage 存储桶并继承该存储桶的名称。配置客户端查询引擎时,请将数据仓库路径设置为
gs://CLOUD_STORAGE_BUCKET_NAME。
适用于 BigQuery 的自定义 Apache Iceberg 目录
此集成直接使用 BigQuery 目录作为受管理的 Apache Iceberg 表的后端元数据服务。
Apache Hive 目录端点
此端点可为依赖于 Apache Hive metastore (HMS) 接口的开源工作负载提供兼容性,让您可以在Google Cloud上针对全代管式 metastore 服务运行 Apache Hive 或 Spark 工作负载。
表类型
Google Cloud 的 Lakehouse 支持多种表格式,具体取决于用于管理数据的引擎和您使用的目录端点。
Apache Iceberg 表
这些表是您通过开源引擎创建并存储在 Cloud Storage 中的 Apache Iceberg 表。Lakehouse 运行时目录通过 Apache Iceberg REST 目录端点管理这些表。开源引擎对这些表具有读取和写入权限,而 BigQuery 具有只读权限。如果您希望 ETL 工作流由开源引擎管理,最好选择此选项。
BigQuery 表
这些表由 BigQuery 管理。
Apache Iceberg 表
这些表是您通过 BigQuery 创建并存储在 Cloud Storage 中的 Apache Iceberg 表。BigQuery 会处理所有数据布局和优化。虽然多个引擎都可以读取这些表,但只有 BigQuery 引擎可以直接写入这些表。
原生表
这些表由 BigQuery 管理,并将数据存储在 BigQuery 存储空间中。您可以将这些表连接到 Lakehouse 运行时目录。
外部表
外部表位于 Lakehouse 运行时目录之外。数据和元数据在第三方目录(例如 Cloud Storage、S3 或 Azure Blob Storage)中自行管理。BigQuery 只能读取这些表中的数据。
表格功能
表格演变
Google Cloud 的 Lakehouse 支持 Apache Iceberg 表演进,让您可以随时更改表的架构或分区规范,而无需重写表数据或重新创建表。
时间旅行
借助“时间旅行”,您可以查询表在特定时间点或快照 ID 时的现有数据。这对于审核、重现实验或在意外删除后恢复数据非常有用。
元数据缓存
元数据缓存是一项可提升外部表查询性能的功能。它会在 BigQuery 存储空间中存储表元数据的副本,从而减少在查询执行期间从 Cloud Storage 读取元数据文件的需求。
Google Cloud 的 Lakehouse 表管理
Google Cloud 的 Lakehouse 表管理功能可自动执行压缩和垃圾回收等任务,从而简化对受管理表的 Lakehouse 维护。这可确保获得最佳查询性能和存储效率。
互操作性概念
无边界 Lakehouse
无边界 Lakehouse 扩展了 Google Cloud 的 Lakehouse,让您可以连接到远程外部目录(例如 Databricks Unity Catalog、AWS Glue、Snowflake Horizon Catalog 或 SAP BDC)。它可同步来自其他云提供商的元数据,让您通过 Apache Iceberg REST 目录端点使用 BigQuery 或外部开源引擎查询数据,而无需迁移数据。
公共数据集
Google Cloud 的 Lakehouse 通过 Apache Iceberg REST 目录托管高质量的公开数据集,提供只读访问权限,以便用户在无需管理基础设施的情况下进行探索和测试。
P.C.N.T. 命名结构
P.C.N.T. 命名结构是一种四部分命名惯例,用于从 BigQuery 中唯一标识和查询 Lakehouse 运行时目录中的表。它表示 Project.Catalog.Namespace.Table:
- 项目: Google Cloud 项目 ID。
- 目录:Lakehouse 运行时目录的名称。
- 命名空间:表的逻辑分组(类似于数据集)。
- 表:数据表的名称。
安全概念
连接
连接是一种 BigQuery 资源,用于存储访问外部数据的凭据。在 Google Cloud 的 Lakehouse 中,连接通过允许连接的服务账号代表您访问存储桶来委托对 Cloud Storage 的访问权限。
凭证分发
凭据销售是一种安全机制,可帮助在使用 Lakehouse 运行时目录时加强访问权限控制。启用后,该服务会生成短期有效的范围缩减凭据,旨在仅授予对查询所需特定文件路径的访问权限。
统一治理
通过与 Knowledge Catalog 集成,您可以集中定义和强制执行安全和数据管理政策,从而实现统一治理。将表注册到 Lakehouse 运行时目录后,系统会自动将相应条目注册到业务元数据目录 (Knowledge Catalog) 中,从而无需移动或复制文件即可在各个引擎之间实现数据沿袭、语义搜索和集中治理。
查询引擎概念
Google Cloud 的湖仓一体架构将存储与计算分离,使各种分析引擎能够与开放式表进行交互。
Managed Service for Apache Spark
Managed Service for Apache Spark(以前称为 Managed Service for Apache Spark)提供全代管式运行时,用于处理 Apache Iceberg 等开放表格式。它支持两种主要的执行模式:
- 无服务器批处理:专为自动化、非交互式数据处理流水线和 ETL 工作负载而设计。这种按执行次数付费的模式无需进行集群管理,消除了作业之间的资源争用,并实现了基础设施维护自动化。
- 无服务器交互式会话:专为探索性数据分析、数据工程和数据科学实验而设计。互动式会话在后台使用 Spark Connect 或远程 Spark 内核为 Apache Spark 笔记本提供支持,从而提供无需设置基础架构的自动扩缩环境。
服务层级
针对 Lakehouse 运行时目录执行 Apache Spark 工作负载时,您可以选择不同的服务层级:
- 标准层级:默认执行层级,适用于标准批处理工作负载。
- 高级层级:提供高级功能,包括支持无服务器交互式笔记本会话和 Lightning Engine 等可加速性能的功能。
会话模板
会话模板可简化无服务器交互式会话的配置。借助它们,管理员可以定义并保留通用环境设置(例如目录属性、网络配置和运行时版本)。这有助于提高一致性,并通过最大限度地减少重复设置来提高开发者的工作效率。您可以使用 Google Cloud 控制台、gcloud CLI、REST API 或 Terraform 创建和管理会话模板。
可靠性概念
跨区域复制
跨区域复制功能可跨多个区域复制元数据,以确保在区域中断期间目录可用。
故障切换
故障切换是指在区域性服务中断期间,在主要区域和次要区域之间切换以维持目录运营的过程。