本文档定义了 Lakehouse for Apache Iceberg 的关键术语和概念。
本页并非详尽的功能列表,而是对 Google Cloud 的 Lakehouse 文档中使用的术语和概念的一般参考。
核心概念
以下概念构成了 Google Cloud Lakehouse 架构的基础。
数据湖仓一体
数据湖仓一体兼具数据湖的成本节约和灵活性以及数据仓库的数据管理和性能。它让您能够以开放格式将数据存储在 Cloud Storage 上,并使用 BigQuery 功能,例如精确的安全控制和快速查询。
奖章架构
数据湖仓一体中的常见设计模式是奖章架构,它以逻辑方式将数据整理到具有递进式结构和质量的层中:
- 青铜(原始)层 :提取原始数据并以开放格式(例如 Apache Iceberg)将其存储在 Cloud Storage 上。
- 白银(经过清理)层 :将原始数据清理、过滤和扩充到标准化表中。
- 黄金(经过整理)层 :提供经过全面整理的汇总业务级表。在 Google Cloud Lakehouse 中,BigQuery 通常用于提供黄金层,以实现高性能使用、报告和分析。
开放式互操作性
开放式互操作性是指多个分析和事务处理系统(例如 BigQuery、Apache Spark 和 Apache Flink)能够以开放格式(例如 Apache Iceberg)处理单个数据副本。这样就无需重复数据,并确保在不同的工具中保持一致的数据视图。
Lakehouse 运行时目录
Lakehouse 运行时目录是一种集中式无服务器元数据服务,可作为 Google Cloud Lakehouse 的单一事实来源。它让 Apache Spark、Apache Flink 和 BigQuery 等多个引擎能够同时发现和查询同一表。
目录类型
Lakehouse 运行时目录提供不同类型的目录来管理元数据。
Apache Iceberg REST 目录端点
这是一个基于 Apache Iceberg REST 目录端点的目录。它在开源引擎和 BigQuery 之间提供互操作性,并支持凭据销售和灾难恢复等功能。
适用于 BigQuery 的自定义 Apache Iceberg 目录
这是一种集成,可直接将 BigQuery 目录用作托管式 Apache Iceberg 表的备份元数据服务。
Apache Hive 目录端点
此端点为依赖于 Apache Hive metastore (HMS) 接口的开源工作负载提供兼容性,让您能够在上针对全代管式 metastore 服务运行 Apache Hive 或 Spark 工作负载。Google Cloud
表类型
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 表管理通过自动执行托管表的压缩和垃圾回收等任务,简化了湖仓一体维护。这可确保获得最佳查询性能和存储效率。
互操作性概念
BigQuery 目录联合
借助 BigQuery 目录联合,您可以使用 Lakehouse 运行时目录 Apache Iceberg REST 目录端点将 BigQuery 管理的表(例如 Iceberg 托管表)公开给外部开源 (OSS) 引擎(例如 Apache Spark 和 Trino)。
Apache Iceberg REST 目录端点不会创建专用的 Lakehouse 目录容器来存储元数据,而是纯粹充当代理网关,将目录请求直接路由到 BigQuery 的内部目录。这样,您就可以使用标准 BigQuery DDL 或 API 直接在 BigQuery 中创建和管理表,同时让外部 OSS 引擎通过 REST 目录端点对这些表具有只读权限。
跨云 Lakehouse
跨云 Lakehouse 扩展了 Google Cloud Lakehouse,让您能够连接到远程外部目录(例如 Databricks Unity Catalog 或 AWS Glue)。它会同步来自其他云提供商的元数据,让您能够通过 Apache Iceberg REST 目录端点使用 BigQuery 或外部开源引擎查询数据,而无需迁移数据。
公共数据集
Google Cloud Lakehouse 托管通过 Apache Iceberg REST 目录提供的优质公共数据集,提供只读权限,以便在无需管理基础架构的情况下进行探索和测试。
P.C.N.T. 命名结构
P.C.N.T. 命名结构是用于从 BigQuery 中唯一标识和查询 Lakehouse 运行时目录中的表的四部分惯例。它代表 Project.Catalog.Namespace.Table:
- 项目:项目 ID。 Google Cloud
- 目录:Lakehouse 运行时目录的名称。
- Namespace:表的逻辑分组(类似于数据集)。
- Table:数据表的名称。
安全概念
连接
连接是一种 BigQuery 资源,用于存储访问外部数据的凭据。在 Google Cloud Lakehouse 中,连接通过让连接的服务账号代表您访问存储桶来委托对 Cloud Storage 的访问权限。
认证销售
凭据销售是一种安全机制,有助于在使用 Lakehouse 运行时目录时加强访问权限控制。启用后,该服务会生成短期有效、范围缩小的凭据,旨在仅授予对查询所需的特定文件路径的访问权限。
统一治理
借助统一治理,您可以通过与 Knowledge Catalog集成,集中定义和强制执行安全和数据管理 政策。当您将表注册到 Lakehouse 运行时目录时,系统会自动将相应条目注册到业务元数据目录 (Knowledge Catalog) 中,从而无需移动或复制文件即可实现跨引擎的数据沿袭、语义搜索和集中治理。
查询引擎概念
Google Cloud Lakehouse 将存储与计算分离,让各种分析引擎能够与开放表进行交互。
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 创建和管理会话模板。
可靠性概念
跨区域复制
跨区域复制会在多个区域复制元数据,以确保在区域中断期间目录可用。
故障切换
故障切换是指在区域服务中断期间在主要区域和次要区域之间切换以维护目录操作的过程。