where别名clickhouse

where别名clickhouse,第1张

ClickHouse是一个完全面向列式的分布式数据库。数据通过列存储,在查询过程中,数据通过数组来处理(向量或者列Chunk)。当进行查询时, *** 作被转发到数组上,而不是在特定的值上。因此被称为”向量化查询执行”,相对于实际的数据处理成本,向量化处理具有更低的转发成本。

这个设计思路并不是新的思路理念。历史可以追溯到``APL``编程语言时代:``A+``, ``J``, ``K``, and ``Q``。数组编程广泛用于科学数据处理领域。而在关系型数据库中:也应用了``向量化``系统。

在加速查询处理上,有两种的方法:向量化查询执行和运行时代码生成。为每种查询类型都进行代码生成,去除所有的间接和动态转发处理。这些方法并不比其他方法好,当多个 *** 作一起执行时,运行时代码生成会更好,可以充分累用CPU执行单元和Pipeline管道。

向量化查询执行实用性并不那么高,因为它涉及到临时向量,必须写到缓存中,并读取回来。如果临时数据并不适合L2缓存,它可能是一个问题。但是向量化查询执行更容易利用CPU的SIMD能力。一个研究论文显示将两个方法结合到一起效果会更好。ClickHouse主要使用向量化查询执行和有限的运行时代码生成支持(仅GROUP BY内部循环第一阶段被编译)。

列式数据库是以列相关存储架构进行数据存储的数据库,主要适合与批量数据处理和即席查询。

GBase 8a 分析型数据库的独特列存储格式,对每列数据再细分为“数据包”。这样可以达到很高的可扩展性:无论一个表有多大,数据库只 *** 作相关的数据包,性能不会随着数据量的增加而下降。通过以数据包为单位进行 I/O *** 作提升数据吞吐量,从而进一步提高I/O效率。

由于采用列存储技术,还可以实现高效的透明压缩。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9461711.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存