比较表类型

选择合适的表架构对于最大限度地提高性能、降低费用以及确保在分析工具之间进行数据访问权限至关重要。本页介绍了 Lakehouse for Apache Iceberg 中提供的不同表类型和服务端点,可帮助您根据写入引擎、读取要求和管理控制需求选择最佳选项。

按目录或引擎划分的表格式

选择一个目录或引擎,了解其支持的表格式、metastore 配置、存储优化功能和引擎互操作性。

Lakehouse 运行时目录

Lakehouse 运行时目录通过 Iceberg REST 目录端点管理 Apache Iceberg 表,并在 Iceberg 兼容引擎(Spark、Flink、Trino)和 BigQuery 之间提供无缝读写 互操作性,同时由行业标准的 Iceberg REST 目录 接口提供支持。

支持的表格式

支持 Apache Iceberg V2 表(正式版)和 V3 表(预览版)。不支持 Iceberg V1 表。在 Lakehouse for Apache Iceberg 中使用现有 V1 表之前,您必须将其升级到受支持的版本。如需了解更多 信息,请参阅将 Iceberg V1 表升级到 V2

Key features include:

  • Metastore:Lakehouse 运行时目录。
  • 存储:Cloud Storage。
  • 存储优化:由您管理,或选择由 Google 管理(预览版)。
  • 读写权限
    • 开源引擎:读写(正式版)
    • BigQuery:读/写(预览版)
  • 用例:开放式湖仓一体,具有高性能企业级 存储,适用于高级分析、流式处理和 AI。

Hive Metastore

Lakehouse 运行时目录 通过针对 Apache Spark ExternalCatalog 兼容性优化的 Apache Hive metastore (HMS) 端点管理 Apache Hive 表,让您可以在 Apache Spark、Apache Hive 和 BigQuery 之间无缝共享数据。您可以通过开源引擎创建这些表,并将其存储在 Cloud Storage 中。如果您希望 ETL 工作流由开源引擎管理,而无需单独的自托管 Hive metastore,并且只需要 BigQuery 的读取权限,则此选项是最佳选择。

由 Hive metastore 端点管理的表是标准的 Apache Hive 和 Spark 表(使用 Hive SerDes 或 Spark 数据源),而不是 Apache Iceberg 表。如需在 Lakehouse 运行时目录中创建和管理 Apache Iceberg 表,请改用 Iceberg REST 目录端点。

Key features include:

  • Metastore:Lakehouse 运行时目录(通过自定义 IMetastoreClient)。
  • 存储:Cloud Storage(支持 Parquet、 ORC 和 Avro 等格式)。
  • 存储优化:由您或第三方管理。
  • 读写权限
    • 开源引擎(Spark 和 Hive):读写。
    • BigQuery:只读。
  • 用例:将现有的 Spark 和 Hive 工作负载迁移到 上全托管式无服务器 metastore Google Cloud。

BigQuery

BigQuery 支持 Apache Iceberg 托管表、原生表和外部表。

  • Apache Iceberg 托管表:这些表是您通过 BigQuery 创建和管理并存储在 Cloud Storage 中的 Apache Iceberg 表。虽然开源引擎可以读取这些表,但 BigQuery 是管理元数据并向其写入数据的引擎。如果您希望工作流由 BigQuery 全代管式,则此选项是最佳选择。

  • 原生表:这些是原生 BigQuery 表。它们由 BigQuery 全代管式,并提供最先进的分析和管理功能。此选项最适合非 Iceberg 工作负载。

  • 外部表:这些表是 BigQuery 专用的 结构,用于存储在 Cloud Storage、Amazon S3 或 Azure Blob Storage 中的数据。数据和元数据由您自行管理,BigQuery 仅具有读取权限。如果您想在第三方目录或存储空间中直接管理数据,请选择此选项。

按产品划分的表格式

使用下表比较 Lakehouse 运行时目录和 BigQuery 之间的表类型。

Lakehouse

Apache Iceberg(正式版) Borderless Lakehouse(预览版) Apache Hive(预览版)
Metastore Lakehouse 运行时目录 Lakehouse 运行时目录 Lakehouse 运行时目录
存储 Cloud Storage Cloud Storage / Amazon S3 Cloud Storage
存储优化 客户、第三方管理或 Google 管理(预览版) 客户或第三方管理 客户或第三方管理
读/写 开源引擎(读/写)

BigQuery(读/写 [预览版])
开源引擎(读取)

BigQuery(读取)
开源引擎(读/写)

BigQuery(只读)
高级操作
访问权限控制 使用 IAM 的表级安全性 使用 IAM 的表级安全性 使用 IAM 的表级安全性
用例 开放式湖仓一体 查询其他云提供商中的数据,而无需迁移文件或 构建复杂的 ETL 流水线。 将现有的 Spark 和 Hive 工作负载迁移到全代管式式 无服务器 metastore

BigQuery

Apache Iceberg 托管表 Apache Iceberg 外部表 标准表
Metastore BigQuery 外部或自托管 metastore BigQuery
存储 Cloud Storage Cloud Storage / Amazon S3 / Azure BigQuery
存储优化 Google 管理 客户或第三方管理 Google 管理
读/写 开源引擎(通过 Iceberg 库实现只读操作,通过 BigQuery Storage API 实现读/写互操作性)

BigQuery(读/写)

开源引擎(读/写)

BigQuery(只读)
开源引擎(通过 BigQuery Storage API 实现读/写互操作性)

BigQuery(读/写)

高级操作 通过 BigQuery Storage Write API (gRPC)、变更数据 捕获 (CDC) 和多语句事务实现高吞吐量流式处理 通过 BigQuery Storage Write API (gRPC)、变更数据 捕获 (CDC) 和多语句事务实现高吞吐量流式处理
访问权限控制 使用 IAM 的表级安全性、列级安全性和数据 遮盖 使用 IAM 的表级安全性、列级安全性、行级 安全性、和数据遮盖 使用 IAM 的表级安全性、列级安全性、行级 安全性、和数据遮盖
用例 开放式湖仓一体,具有高性能企业级存储,适用于 高级分析、流式处理和 AI 用于 BigQuery 加载的暂存表、旧版只查询表 适用于高级分析、流式处理和 AI 的企业级存储

后续步骤