基于数据中台的统计分析系统重构设计思路的研究
2022-07-11吴建华
吴建华
(深圳能源环保股份有限公司 广东省深圳市 518048)
1 设计背景
电力行业作为应用数据中台较早的行业,通过成熟互联网技术,保障企业信息管理系统进行重构,并通过中台赋能达到高效稳定运行目标。本文就某电力集团A 公司在建设数据中台的同时,对生产信息管理平台中的统计分析系统基于中台进行重构设计思路进行分析。该集团公司现有超过100 多个下属生产厂和基建项目,预计三年内将超过200 家,目前生产信息管理平台同时在线人数5000 人以上,交接班高峰期TPS 达到千位/秒,同时考虑到数智中心和智慧电厂的应用,现有的系统架构设计计算性能无法满足日益发展需要,建设数据中台成为该集团公司信息化规划的最佳方案,数据中台建设的同时,其系统各功能模块数据赋能将由数据中台提供,特别是统计分析与精准分析系统需要进行重构设计,同时对现有指标和历史数据在新架构的基础上进行适配。
2 技术架构
数据中台并不是一个具体的产品或技术架构,而是一种综合解决方案或是一种运营理念,在业界还没有清晰明确的定义。它是以数据资产高效管理为基础,沉淀数据通用能力,通过构建规范的、 安全的、智能的、全域化的数据处理架构,提供 数据采集、数据存储、数据萃取、数据治理、数据服务、数据可视化等全链路一体化的服务。A 公司根据自身的经营特点和应用环境对数据中台和系统应用架构进行了规划,分为四层:数据源层、数据能力层、业务能力开放层、应用支撑层,如图1 所示。
图1: 技术架构图
(1)数据源层:包含有生产数据SIS、经营数据WIS、环卫物联网数据、视频监控数据等及其他外部数据,通过统一数据采集到中台数据仓库。
(2)数据能力层:包含统一标准的数据治理、基于模型中心的全链路的数据生命周期管理、面向分析的计算调度中心、基于模型训练和智能挖掘的AI 能力中心以及物联网管控中心,通过数据能力开放给上层应用。
(3)业务能力开放层:包含业务通过流程引擎快速和可视化配置、数据搜索和报表通过BI 中心赋能、空间信息中心对GIS、图谱和3D 等提供服务、以及用户中心对统一认证、权限等管理,通过微服务功能进行管控。
(4)应用支撑层:统计分析、精准化管控、BI 系统、监管大屏、GIS 地图、物联网数据分析等作为最终应用呈现。
3 统计分析重构设计思路
统计分析系统主要有以下功能:
生产统计:收集生产信息,统计机组日、周、月、季、年生产情况及主要指标并计算各项经济指标,能手动修正各类生产情况中的数据项;
综合统计:收集汇总生产、财务、安全、燃料、物资等各方面的指标信息,加工成直观的各类图表,为厂决策提供完整、准确、及时的数据,并能作出月度生产指标分析、经济指标分析;
成本分析:系统每天采集的发电量、垃圾量、物资和检修成本等数据,核算出的实际发生的和分摊的固定成本费用数据,核算出每天、每月、每季度、每年的成本、单位固定成本、单位发电成本、吨垃圾成本、售电收入和利润等。累计固定成本回收数额,已经完成的发电量、垃圾处理量和已经获得的利润;
预算管理:通过预算编制、预算控制、预算调整、预算分析等功能,提供按成本中心(部门、班组) 、设备、项目等多种预算编制类型,可编制售电预算、发电成本预算、管理费用预算、大小修费用预算、财务费用预算、工程项目预算、财务预算等全面预算,用户可根据需要调整预算,加强对关键业务环节的实时监控,实现事前预算、事后监督、加强预算分析、分解、控制、考核的深度和准确性。
机组启动和停机的实际费用:生产技术和运行各有关部门需要掌握每次机组启动和停机的实际费用消耗情况。系统为此提供在启停结束后计算实际的启停成本的功能,包括:累计的启动或停机期间消耗燃料的成本,以及启停期间的发电量和厂用电量等信息;
报表及台帐:生产指标分类入帐,经营指标分类入帐,考核指标分类入帐,自动生产日报、月报、年报,生成统计报表,生成各种查询用表;
计划与考核:生成年度及月度生产计划、机组检修计划、阅读工作计划,汇总责任制考核结果,生成年度及月度资金计划,对各项资金的动态跟踪管理分析。
统计分析系统是生产信息管理平台中计算量最大的功能模块,为了解决计算效率痛点,在与中台功能充分调研的基础上提出如下设计思路:
3.1 设计目标
关键功能:基础指标数据采集、指标计算、统计分析、精准化统计分析
关键质量:采集数据速度(读写)、单次数据计算不超过秒级、数据准确率验证、指标修改日志追踪
设计约束:新旧统计分析切换时序约束、重构基于原有指标配置、与原来业务系统解耦。
3.2 数据设计
在统计分析系统重构设计中将数据分为三个层次:基础指标数据(日基础指标数据和月基础指标数据)、计算指标数据(日基础指标计算数据和月基础指标计算数据)、离线报表数据,如图2 所示。
图2: 数据路径
其中,基础指标数据由数据中台从各个子系统采集而来,分为计划任务和非计划任务,各个子系统分开分组提取。基础指标数据或是从设备上采集而来,或是用户录入,或分为定时计划提取和手动非计划提取。当基础指标数据发生改变时,自动记录变更日志,可进行追踪查询。
当采集到基础指标数据后,在数据能力层进行数据治理,通过模型中心和AI 能力中心进行赋能,计算时间在毫秒级到秒级内完成。再通过DOP 进行发布或由相关应用订阅。
离线报表数据来自数据中台对基础指标数据和计算指标数据的计算,一旦生成,自动形成版本,再次重新生成时,保存为新版本,存档旧版本,形成版本管理。
离线报表数据可能会和基础、计算指标数据不一致,此时需要给出消息提醒。
3.3 系统架构设计
统计分析底层是通过数据中台采集各相关系统数据后进行计算和赋能,上层通过离线报表数据,以可视化BI 报表呈现,系统架构图中涉及的术语如表1,统计分析系统架构图如图3 所示。
图3: 系统架构图
表1: 系统架构图中涉及的术语
3.3.1 数据采集
每一个数据来源数据中台都有对应的数据采集适配器,各系统之间互相独立、互不干扰。采集适配器可以按计划任务定时采集,也可以根据实际需要人工手动发起采集。
采集方式1:先由数据中台从各数据源采集,经数据统一标准处理后由系统采用kettle 从中台数据库中,拉取需要的数据。拉取完成后,立刻触发数据中台进行指标计算。
采集方式2:先由数据中台从各数据源采集,经数据统一标准处理后存入中台数据库中,系统采用Flink CDC 监控中台数仓的存档日志,将数据变化实时同步到统计分析系统中。将变化数据先存入MQ 中,亦可以直接存入ClickHouse数据库中。可以实时触发中台计算,亦可以等待数据累积到一定程度,按计划任务批量计算。
3.3.2 指标数据计算
数据采集器将数据写入中台DB 后,发起指标计算指令,通过模型进行指标计算,计算完成后,将结果建立新标签存入DB 中,以备系统随时调用。
指标数据计算采用Flink 来实现。Flink 是分布式计算引擎,可以基于Hadoop 部署集群,采用Yarn 进行任务调度。当数据量较大时,可以增加集群中主机数量。当数据量较小时,也可以采用单机(local)部署。Flink 在主机数量足够时,能在毫秒级至秒级内完成计算。
3.3.3 报表数据提取
根据报表的数据要求,从基础指标和计算指标中提取数据存放入关系型结构化的数据表中,形成供制作报表的离线报表数据。离线报表数据多次提取,中台进行版本管理和日志监控,必须保留历史版本。重新提取离线报表数据根据制度进行流程审批。
离线报表数据提取可以是定时提取,亦可以手动提取。手动提取需备注说明。
3.3.4 报表可视化
中台暂不提供表报功能,先采用Superset 数据分析以及可视化的报表平台,它通过创建和分享dashboard,为数据分析提供了轻量级的数据查询和可视化方案。它支持连接MariaDB、Hive、Impala、MySql、Oracle、ClickHouse 等 几乎所有主流的数据源;支持和弦图、事件流图、热力图、视图表等及其它常规的可视化展示图表;支持可控的数据展示,能自定义展示字段、数据源等此平台支持报表界面的定制(拖拽和SQL 配置)。
3.3.5 对象画像分析
设置数据对象及关联属性,并可就对象变化情况进行分析。
3.4 功能设计
3.4.1 指标设置尽量沿用原有的重要数据设置、基础指标设置、统计指标设置。可适当改进指标公式设置的易用性。
3.4.2 指标计算
将指标分为录入型和计算型,录入型包括:每班录入的重要数据、表码、台账等,这些数据在业务系统中录入,由中台采集到中台数仓,提供抽取到统计分析系统中来,作为所有指标计算的基础数据。
计算型指标是基于录入型指标数据按照公式计算而来。所有的计算型指标尽量只用录入型指标计算,不去用SQL从数据库中再提取。数据路径示意图如图4。
图4: 数据路径示意图
解析所有的公式,分析出公式中的指标之间的关系,将指标对象与指标对象之间的关系组成一个多叉树的数据结构,并通过hashcode 来快速定位指标对象,获取被计算指标所依赖的指标。将已计算或已有值的指标做上标记,若所依赖的指标尚未计算,则不能计算当前指标。计算关系如图5。
图5: 计算关系图
(1)基础指标数据采集:从业务系统抽取录入型数据(重要数据、台账、表码),这些数据是最基础的指标数据,需要给这些指标编码。这些数据同时存在于和业务系统和统计分析系统中台数仓中,除此之外的指标数据只存在统计分析系统中台数仓中。
(2)基础衍生指标计算:基础衍生指标是指基础指标的近7 日均值、前一天日统计数据、24 时值、最大值、昨日值、上次值等。当采集到基础指标数据后,立刻计算基础衍生指标。
(3)日基础指标计算:日基础指标是通过基础指标和基础衍生指标计算而来,需要在统计分析中,设置计算公式。当基础衍生数据计算完成后,通过计算公式立刻日基础指标。
(4)日统计指标计算:日统计指标是基于之前所有的日指标数据,通过公式计算而来。
(5)月基础指标计算:月基础指标是基于之前所有的日指标数据,通过公式计算而来。
(6)月统计指标计算:月统计指标是基于之前所有的日指标数据,通过公式计算而来。
3.5 难点思考
3.5.1 中间件选型分析
Flink:Flink 主要用来做批流一体的分布式计算。同类竞品有:Storm、Spark 等,Flink 具有如下优点:
(1)Flink 的流处理引擎只需要很少配置就能实现高吞吐率和低延迟。
(2)Flink 支持了流处理和 Event Time 语义的窗口机制。
(3)Flink 的 checkpointing 机制可以在计算过程中维护自定义状态。
(4)Flink 支持在时间窗口,统计窗口,session 窗口,以及数据驱动的窗口。
(5)Batch 和 Streaming 一个系统流处理和批处理共用一个引擎。
ClickHouse:分布式数据库有很多,各有优缺点。ClickHouse 优点是性能强悍,性能是关系型数据库100~1000倍,缺点是:
(1)不支持事务,不支持真正的删除/ 更新,ClickHouse 的定位是分析性(OLAP)数据库,而不是严格的关系型数据库。
(2)不支持标准的SQL 语言,有些BI 系统无法对接,SQL 的join 性能不好。
(3)几乎不支持分布式Join,在分析模型上仅支持大宽表模式
另一个选择是TiDB,其优点是支持OLTP 同时兼顾OLAP,兼容MySQL 协议,其弱点是OLAP 性能相对ClickHouse 或 DorisDB 较弱。
Superset:Superset 相对同类产品,其优点是支持的数据源齐全,各种图表形式丰富。缺点是拖拽功能稍逊,需要掌握SQL。
以上需要进一步实验和测试,并和数据中台确定最终选择方案。
4 参考意义
越来越来的企业面临着建设数据中台的同时,要对现有的应用系统进行重构,由于企业业务及应用管理系统功能不同,每家企业通过软件技术搭建的数据中台架构也存在差异,本文主要是根据电力集团企业数据中台建设进行应用管理信息系统适配,针对统计分析和精准管控管理系统,利用生产数据依托数据中台赋能进行计算的设计思路研究,为企业在数据中台和应用系统更好地重构适配提供参考和借鉴。