ClickHouse使用Azure Blob Storage作为冷盘的性能及免S3Proxy方案确认
ClickHouse与Azure Blob Storage相关性能及配置问题解答
问题1:ClickHouse采用azure_blob_storage类型配置Azure Blob Storage时,性能是否仍不及AWS使用s3类型的配置?
实测数据显示,ClickHouse原生的azure_blob_storage驱动在吞吐量、查询延迟以及并发处理能力上,确实不如AWS环境下原生s3驱动的表现。这也是很多生产场景会选择通过S3Proxy兼容S3协议,让ClickHouse以s3驱动方式对接Azure Blob Storage的原因,以此缩小性能差距。
问题2:Azure提供的Blob Storage CSI插件可在AKS中将Blob Storage挂载到Pod,这种配置能否达到AWS使用s3类型的性能?
无法达到。CSI插件是将Blob Storage作为文件系统挂载到Pod中,ClickHouse访问时需要经过文件系统的额外抽象层,带来了额外的IO开销;而AWS的s3驱动是ClickHouse针对对象存储直接做的优化适配,支持分段读取、并行数据处理等特性。在大数据量查询、高并发场景下,这种机制差异带来的性能差距会非常明显。
问题3:当前计划采用S3Proxy在Azure上实现Blob Storage作为数据分层磁盘,是否存在无需使用S3Proxy的可行方案?
有两种可行的替代方案:
- 直接使用ClickHouse原生
azure_blob_storage驱动:如果业务对性能要求并非极端苛刻,或者数据规模、并发量较小,这种方案无需额外组件维护,配置简单直接,可满足基础的分层存储需求。 - 使用Azure Data Lake Storage Gen2(ADLS Gen2):ADLS Gen2基于Blob Storage构建,同时兼容S3协议,ClickHouse可以直接通过原生
s3驱动对接,无需依赖S3Proxy。ADLS Gen2本身提供了更优的分层存储策略和性能优化,更适合作为ClickHouse的分层存储介质。
内容的提问来源于stack exchange,提问作者Narasimha Reddy
相关产品推荐
相关产品推荐

