比较表类型

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

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

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

Lakehouse 运行时目录

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

支持的表格格式

支持 Apache Iceberg V2 表(正式版)和 V3 表(预览版)。不支持 Iceberg V1 表。在将现有 V1 表与 Lakehouse for Apache Iceberg 搭配使用之前,您必须将这些表升级到受支持的版本。如需了解详情,请参阅将 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 Catalog 端点。

Key features include:

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

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 之间的表类型。

湖仓一体

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

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

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

BigQuery(只读)
高级操作
使用场景 开放式湖仓一体 查询其他云服务商中的数据,无需迁移文件或构建复杂的 ETL 流水线。 将现有的 Spark 和 Hive 工作负载迁移到全代管式式无服务器 metastore

BigQuery

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) 和多语句事务实现高吞吐量流式传输
使用场景 开放式湖仓一体,具有高性能的企业级存储,适用于高级分析、流式处理和 AI 用于 BigQuery 加载的暂存表、仅限查询的旧版表 适用于高级分析、流式传输和 AI 的企业级存储

后续步骤