我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:老奇人论坛一平特肖 > 单点 >

完整的查询 SQL 如下:

归档日期:08-11       文本归类:单点      文章编辑:爱尚语录

  那么如何开启抽样查询功能呢,其实很简单,比如我们想以 datetime 维度进程抽样展示,只要在您的建表语句中包含 SAMPLE BY intHash64(datetime) ,同时,在您的主键中,也就是 ORDER BY 里面,必须包含抽样的字段。完成的建表语句如下:

  耗时是反馈我们系统性能的一个重要指标。以前我们会通过预聚合的方式来计算一个接口的平均耗时,这种方式会降低对监控指标引擎的查询压力,但是却容易掩盖我们系统的性能问题。

  sumMerge 聚合函数用于合并 sumState 聚合状态,完成聚合并返回聚合结果。

  这里假设您已经拥有了一个高可用的分布式 ClickHouse 集群,下面我将通过三个业务监控需求用例,来为您介绍在微博广告业务百亿流量下,我们如何通过 ClickHouse 的数据抽样和物化视图功能,来快速灵活地可视化我们的监控指标。

  同时,随着微博广告流量的日益增长,微博广告监控指标越来越多,我们的监控指标引擎承载的压力也越来越大。

  聚合表引擎 AggregatingMergeTree 会根据我们指定的时间粒度和维度指标预聚合我们的监控数据,再通过与物化视图的结合,实时的将明细表中的数据聚合到一张物化视图表中,而不是等我们查询时才聚合生成的数据。因此,在查询性能上会带来很大的提升,降低查询对监控数据引擎的压力。

  在上面的例子中,由于 TP999 的特殊要求,我们只能基于明细表来查询,虽然做了抽样,但是查询的数据依然可能很大。那么在多维度查询的场景下,我们可以通过物化视图和聚合表引擎,按照指定的时间粒度和维度指标预聚合我们的查询指标,从而降低查询的压力。

  微博广告SRE团队负责人,《智能运维:从0搭建大规模分布式AIOps系统》作者之一。目前负责微博广告业务可用性的保障与优化、资源利用率的提升、监控报警系统的建设以及自动化体系的推进。

  那么,在多维度查询前,我们需要基于我们指定的时间粒度和维度指标创建一张物化视图聚合表。这里我们创建一张以 host,port,status 三个维度聚合统计每秒钟请求数的物化视图聚合表,以 datetime 作为抽样字段。建表语句如下:

  那么,在这些复杂多变的流量洪峰下,如何更灵活快速地去查看我们的系统指标性能呢?

  此时,我们就可以对该表的数据,以 datetime 字段进行抽样查询,比如,我们要抽样查询 10% 的数据,就可以在 SELECT 查询语句中加上 SAMPLE 0.1。完整的查询 SQL 如下:

  它不仅集成了 Graphite、Druid、ElasticSearch 等时序数据库、分析引擎的优势,同时也扩展了它们的不足,拓展了我们监控系统能力的广度和深度,给我们监控运维带来了极大的便利。

  所以现在我们开始将平均耗时修改成 TP999、TP99 这样的方式来计算我们的接口耗时。我们能更容易地跟踪我们系统的性能,但是却增加了我们监控指标引擎的查询压力。

  我们需要把我们的每一条请求都储存在一张明细表中,好在 ClickHouse 的高性能读写和横向扩展能力,让我们依然可以很快地去查询接口的T

本文链接:http://canfilmi.com/dandian/1002.html