数据分析大数据

ClickHouse在京东能源管理平台的实践

2021-01-08  本文已影响0人  EchelonX

本文首次发表在京东云IoT专栏,原文地址https://developer.jdcloud.com/article/1423?mid=12

前言

    ClickHouse是一款面向大数据场景下的OLAP数据库,相比于传统的基于Hadoop生态圈的OLAP大数据分析系统,ClickHouse具有极致的查询性能、轻量级的架构设计及维护简单等优势。目前社区活跃度高,业界应用实践日趋广泛。

业务介绍

    京东能源管理平台是京东IoT产品部面向政企客户推出的一款利用物联网、大数据和AI技术实现用能企事业单位对能源大数据进行采集、监测、分析和告警的能耗分析产品,旨在帮助客户实现节能减排,降低单位产品能耗。

业务逻辑

    能源指标包括用电量、用水量和用天然气量,维度有时间维度(年、月、周、日、时)、厂家、车间、生产线类型、生产线、设备。针对这些指标和维度,提供了实时的数据多维分析与诊断服务。

技术选型

    对于数据指标的多维度分析场景,上世纪业界就提出了BI(商业智能)的概念。相较于OLTP(联机事务)系统,业界把此类面向BI的系统统称为OLAP(联机分析)系统。伴随着计算机软件技术的发展、从单机工具的少量数据分析(如Excel),到中等规模数据通过分析型关系数据库构建(如微软的SSAS)的OLAP,再到今日的大数据时代,海量数据的实时OLAP分析引擎,技术上的推陈出新,工具系统上百花齐放百家争鸣,各有优势,但大体上可以将它们从架构模式上划分为两大类:

  1. MPP架构。MPP架构特点是服务将接收到的查询请求发送到每个计算节点,待计算节点计算完成后,通过一个节点将最终结果汇总在一起得到最终结果。典型实现如Presto、Impala、SparkSQL、Drill等。MPP架构的特点是支持灵活的数据模型,要达到较高性能对内存开销大。

  2. 预计算系统。预计算的核心思想是利用空间换时间,通过深入业务理解,将需要查询的数据指标和维度组合进行预处理,将计算好的结果存入数据库并建立对应索引,实现查询加速。典型实现如Kylin、Druid。预计算系统特点是性能较高,但灵活性较差,一般对数据模型调整会涉及到历史数据的重跑,维护困难。

    MPP 预计算
    大数据量 支持 支持
    性能 高性能代价是对内存开销大 性能较高
    灵活性 较差

    从上表可知,目前业界还没有一个OLAP引擎能够同时兼顾性能和灵活性的要求,京东能源管理平台在做技术选型的时候,综合考虑了模型的灵活性、部署的难易程度、开发成本、可维护性以及是否适合云端部署等因素,最终决定使用基于MPP架构的ClickHouse作为我们的OLAP引擎。

ClickHouse的应用

系统架构

    京东能源管理平台主要是对各种表计(水表、电表、天然气表等)设备上报的计数进行多维度分析统计、AI诊断和出具能耗报表等。表计的原始数据通常都是累计值,如电量度数就是一个从电表安装以来,所有耗电量的一个累计。因此,我们在数据接入前会引入一个差分器对数据进行预处理,使得进入ClickHouse的指标数据变成可直接累加的指标,方便利用SQL对接ClickHouse实现多维的查询服务。架构图如下:

核心逻辑

说明:

ClickHouse应用

    通过上面的架构图可以看出,能源平台采用ClickHouse作为OLAP引擎提供多维查询服务。下面重点从数据的接入、存储以及通用化接口设计方面谈一谈ClickHouse的应用:

总结

    本文重点介绍了京东综合能源管理平台多维数据分析引擎的架构和设计,从数据接入、存储和多维分析服务设计的角度,阐述了ClickHouse的一种典型应用场景。希望通过本文让读者在应对大数据实时OLAP领域,提供一种思路和方法。当然,限于篇幅和本人水平有限,没有进一步展开阐述更多的可能性方案,随着我们对于业务的深入,系统的迭代升级,适宜于将来更优方案势必会步步推出,也请期待。

上一篇 下一篇

猜你喜欢

热点阅读