为何将 ClickHouse 与开放表格式搭配使用?
就地查询现有数据
ClickHouse 可以直接查询对象存储中的开放表格式,而无需复制数据。对于已采用 Iceberg、Delta Lake、Hudi 或 Paimon 作为标准的组织,ClickHouse 可直接指向现有表,并立即使用其 SQL 方言、分析函数以及高效的原生 Parquet 读取器。同时,clickhouse-local 和 chDB 等工具支持对远程存储中 70 多种文件格式进行探索式临时分析,使用户无需搭建任何基础设施,即可交互式探索数据湖数据集。 用户既可以通过直接读取 (使用表函数和表引擎) 来实现,也可以通过连接到数据目录来实现。为选定查询增加计算资源
按需计算 (On-Demand Compute) 现处于私有预览阶段,可让符合条件的SELECT 查询通过现有服务和端点,在额外的 ClickHouse 工作线程上查询受支持的 Apache Iceberg 和 Delta Lake 数据,无需调整服务规格。该能力以尽力而为方式提供,性能可能有所差异,且不适用 ClickHouse Cloud 的 SLO 与 SLA。有关适用条件和限制,请参阅按需计算文档。
使用 ClickHouse 处理实时分析工作负载
对于需要高并发和低延迟响应的工作负载,用户可以将开放表格式中的数据加载到 ClickHouse 的 MergeTree 引擎中。这会在源自数据湖的数据之上提供一个实时分析层,支持仪表盘、运营报表以及其他对延迟敏感、可受益于 MergeTree 列式存储和索引能力的工作负载。 请参阅使用 MergeTree 加速分析的入门指南。能力
直接读取数据
ClickHouse 提供了可直接读取对象存储上开放表格式的表函数和引擎。iceberg()、deltaLake()、hudi() 和 paimon() 等函数允许用户无需任何预先配置,即可在 SQL 语句中查询开放表格式的表。这些函数针对大多数常见对象存储都提供了对应版本,例如 S3、Azure Blob 存储和 GCS。这些函数也有对应的表引擎,可用于在 ClickHouse 中创建引用底层开放表格式对象存储的表,从而让查询更加便捷。
请参阅我们的入门指南,了解如何直接查询,或如何连接到数据目录。
将目录映射为数据库
使用DataLakeCatalog 数据库引擎,用户可以将 ClickHouse 连接到外部目录,并将其映射为数据库。注册在目录中的表会作为 ClickHouse 中的表呈现,从而能够无缝使用完整的 ClickHouse SQL 语法和分析函数。这意味着,用户可以像操作原生 ClickHouse 表一样,对由目录管理的表执行查询、JOIN 和聚合,并受益于 ClickHouse 的查询优化、并行执行和读取能力。
支持的目录包括:
有关连接到目录的说明,请参阅入门指南。
回写到开放表格式
ClickHouse 支持将数据回写到开放表格式,这在以下场景中尤其适用:- 从实时到长期存储 - 数据经由 ClickHouse 这一实时分析层流转,用户需要将结果转存到 Iceberg 或其他格式中,以实现持久且具成本效益的长期存储。
- 反向 ETL - 用户使用 ClickHouse 中的 materialized views 或定时查询执行转换,并希望将结果持久化到开放表格式中,供数据生态系统中的其他工具使用。