跳转到主内容
跳转到主内容

数据湖仓

ClickHouse 可与开放的 lakehouse 表格式集成,包括 Apache IcebergDelta LakeApache HudiApache Paimon。这使用户能够将 ClickHouse 连接到对象存储中已以这些格式存储的数据,将 ClickHouse 的分析能力与其现有的数据湖基础设施相结合。

为什么要将 ClickHouse 与开放表格式结合使用?

就地查询现有数据

ClickHouse 可以直接在对象存储中查询 open table formats,而无需复制数据。已经将 Iceberg、Delta Lake、Hudi 或 Paimon 作为标准表格式的组织,可以将 ClickHouse 指向现有表,并立即使用其 SQL 方言、分析函数以及高效的原生 Parquet 读取器。同时,像 clickhouse-localchDB 这样的工具,使得在远程存储中针对 70 多种文件格式进行探索式、临时性分析成为可能,允许用户在无需搭建任何基础设施的情况下,以交互方式探索湖仓(lakehouse)数据集。

用户可以通过两种方式实现这一点:要么使用表函数和表引擎进行直接读取,要么连接到数据目录

使用 ClickHouse 处理实时分析型工作负载

对于需要高并发和低延迟响应的工作负载,用户可以将开放表格式的数据加载到 ClickHouse 的 MergeTree 引擎中。这样可以在源自数据湖的数据之上提供实时分析层,以支持仪表盘、运维报表,以及其他对延迟敏感并能够利用 MergeTree 列式存储和索引能力的工作负载。

参阅入门指南:使用 MergeTree 加速分析

功能

直接读取数据

ClickHouse 提供了表函数引擎,用于在对象存储上直接读取开放表格式。例如 iceberg()deltaLake()hudi()paimon() 等函数,允许用户在无需任何预先配置的情况下,在 SQL 语句中对数据湖格式的表进行查询。这些函数针对大多数常见的对象存储服务(如 S3、Azure Blob Storage 和 GCS)都提供了对应版本。它们还拥有等价的表引擎,可用于在 ClickHouse 中创建引用底层数据湖格式对象存储的表,从而使查询更加便捷。

请参阅我们的入门指南,了解如何通过直接查询连接到数据目录的方式进行使用。

将 catalog 暴露为数据库

使用 DataLakeCatalog 数据库引擎,用户可以将 ClickHouse 连接到外部 catalog,并将其暴露为一个数据库。注册在 catalog 中的表会在 ClickHouse 中显示为表,从而可以透明地使用 ClickHouse 完整的 SQL 语法和分析函数。也就是说,用户可以像操作原生 ClickHouse 表一样,对由 catalog 管理的表进行查询、关联和聚合,并受益于 ClickHouse 的查询优化、并行执行和读取能力。

当前支持的 catalog 包括:

Catalog指南
AWS GlueGlue Catalog 指南
Databricks Unity CatalogUnity Catalog 指南
Iceberg REST CatalogREST Catalog 指南
LakekeeperLakekeeper Catalog 指南
Project NessieNessie Catalog 指南
Microsoft OneLakeOneLake Catalog 指南

请参阅连接到 catalog的入门指南。

写回开放表格式

ClickHouse 支持将数据写回开放表格式,这在以下场景中非常重要:

  • 从实时到长期存储 - 数据先进入 ClickHouse,作为实时分析层进行处理,用户需要将结果导出到 Iceberg 或其他格式中,以实现持久且具成本效益的长期存储。
  • 反向 ETL - 用户在 ClickHouse 中使用 materialized view 或定时查询执行数据转换,并希望将结果持久化为开放表格式,供数据生态系统中的其他工具使用。

请参阅 写入数据湖 入门指南。

后续步骤

准备好试用了吗?入门指南 将逐步演示如何直接查询开放表格式、连接到 catalog、将数据加载到 MergeTree 以实现快速分析,以及将结果写回——这一切都在一个端到端的工作流中完成。