年ClickHouse最王炸功能来袭,性能轻松提升倍.docx

年ClickHouse最王炸功能来袭,性能轻松提升倍.docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2021年ClickHouse最王炸功能来袭,功能轻松提升40倍 Python爬虫与数据挖掘 1970-01-01 以下文章来源于ClickHouse的隐秘基地 ,作者凯朱 HYPERLINK ClickHouse的隐秘基地 . 这里是ClickHouse的隐秘基地,会定期共享ClickHouse的最新资讯、趣闻杂谈、使用阅历和原理剖析。 点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 胡未灭,鬓先秋。泪空流。 各位,今年 ClickHouse 最王炸的功能来啦,没错,就是期盼已久的 Projection (投影)?功能。ClickHouse 现在的功能已经格外丰富强大了,但是社区用现实告知我们,还可以进一步做的更好:) 不晓得你有没有遇到过这些情况: 1)MergeTree 只支持一种排序规章 建表的时候,Order By 同时打算了主键稀疏索引和数据的排序,假设 : Order BY A,B,C 那么通常过滤查询 Where A 会很快,但是 Where C 会慢一些。 2)物化视图不够智能 针对固定的查询主题,我们会基于一张底表构建很多物化视图,以挂念更进一步提升查询功能、提升QPS、降低资源开销。 物化视图虽然效果显著,但是却不够智能。物化视图本质上一张独立的表,通过原表的触发器,实时的向视图表写入数据。 既然物化视图也是独立的表,那么自然就会存在与原表数据全都性的问题。假如物化视图很多,维护起来也是一个问题。 Projection 功能的消灭,完善处理了上述的问题。Projection 的概念出自?《C-Store: A Column-oriented DBMS》这篇论文,作者是2021年图灵奖获得者、Vertica 之父,Mike Stonebraker。 Projection 意指一组列的组合,可以依据与原表不同的排序存储,并且支持聚合函数的查询。 来自快手的 Amos Bird(郑天祺) 自创了这个思想,在 ClickHouse 中实现了 Projection 的功能,并贡献到社区。 ClickHouse?Projection 可以看做是一种愈加智能的物化视图,它有如下特点: part-level 存储 相比一般物化视图是一张独立的表,Projection 物化的数据就保存在原表的分区名目中,支持明细数据的一般Projection 和 预聚合Projection 无感使用,自动命中 可以对一张 MergeTree 创建多个 Projection ,当执行 Select 语句的时候,能依据查询范围,自动婚配最优的 Projection 供应查询加速。假如没有命中 Projection , 就直接查询底表。 ???? 数据同源、同生共死 ????????由于物化的数据保存在原表的分区,所以数据的更新、合并都是同源的,也就不会消灭不全都的情况了 这么干讲可能还比较笼统,直接来看用例吧,这里直接使用官方的测试数据集?hits_100m_obfuscated,这张表有?1亿 数据: SELECT count(*) FROM hits_100m_obfuscated Query id: 813ba930-d299-47d8-9ac3-6d7dbde075b1 ┌───count()─┐ │ 100000000 │ └───────────┘ 1 rows in set. Elapsed: 0.004 sec. Order By 是: ENGINE = MergeTree PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID), EventTime) 在没有?Projection 的时候,查询非主键?WatchID: SELECT WatchID FROM hits_100m_obfuscated WHERE WatchID = 5814563137538961516 Query id: 20210b52-cac0-43b7-baf6-1931b94864a6 ┌─────────────WatchID─┐ │ 5814563137538961516 │ └─────────────────────┘ 1 rows in set. Elapsed: 0.262 sec. Processed 100.00 million rows, 800.00 MB (380.95 million rows/s., 3.05 GB/s.) 结果全表扫描了 800MB 共 1亿行数据。 现在创建一个?Projection?,为特定的 Where

文档评论(0)

liuxiyuliuxingyu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档