吳建華
(深圳能源環(huán)保股份有限公司 廣東省深圳市 518048)
電力行業(yè)作為應(yīng)用數(shù)據(jù)中臺(tái)較早的行業(yè),通過成熟互聯(lián)網(wǎng)技術(shù),保障企業(yè)信息管理系統(tǒng)進(jìn)行重構(gòu),并通過中臺(tái)賦能達(dá)到高效穩(wěn)定運(yùn)行目標(biāo)。本文就某電力集團(tuán)A 公司在建設(shè)數(shù)據(jù)中臺(tái)的同時(shí),對(duì)生產(chǎn)信息管理平臺(tái)中的統(tǒng)計(jì)分析系統(tǒng)基于中臺(tái)進(jìn)行重構(gòu)設(shè)計(jì)思路進(jìn)行分析。該集團(tuán)公司現(xiàn)有超過100 多個(gè)下屬生產(chǎn)廠和基建項(xiàng)目,預(yù)計(jì)三年內(nèi)將超過200 家,目前生產(chǎn)信息管理平臺(tái)同時(shí)在線人數(shù)5000 人以上,交接班高峰期TPS 達(dá)到千位/秒,同時(shí)考慮到數(shù)智中心和智慧電廠的應(yīng)用,現(xiàn)有的系統(tǒng)架構(gòu)設(shè)計(jì)計(jì)算性能無法滿足日益發(fā)展需要,建設(shè)數(shù)據(jù)中臺(tái)成為該集團(tuán)公司信息化規(guī)劃的最佳方案,數(shù)據(jù)中臺(tái)建設(shè)的同時(shí),其系統(tǒng)各功能模塊數(shù)據(jù)賦能將由數(shù)據(jù)中臺(tái)提供,特別是統(tǒng)計(jì)分析與精準(zhǔn)分析系統(tǒng)需要進(jìn)行重構(gòu)設(shè)計(jì),同時(shí)對(duì)現(xiàn)有指標(biāo)和歷史數(shù)據(jù)在新架構(gòu)的基礎(chǔ)上進(jìn)行適配。
數(shù)據(jù)中臺(tái)并不是一個(gè)具體的產(chǎn)品或技術(shù)架構(gòu),而是一種綜合解決方案或是一種運(yùn)營理念,在業(yè)界還沒有清晰明確的定義。它是以數(shù)據(jù)資產(chǎn)高效管理為基礎(chǔ),沉淀數(shù)據(jù)通用能力,通過構(gòu)建規(guī)范的、 安全的、智能的、全域化的數(shù)據(jù)處理架構(gòu),提供 數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)萃取、數(shù)據(jù)治理、數(shù)據(jù)服務(wù)、數(shù)據(jù)可視化等全鏈路一體化的服務(wù)。A 公司根據(jù)自身的經(jīng)營特點(diǎn)和應(yīng)用環(huán)境對(duì)數(shù)據(jù)中臺(tái)和系統(tǒng)應(yīng)用架構(gòu)進(jìn)行了規(guī)劃,分為四層:數(shù)據(jù)源層、數(shù)據(jù)能力層、業(yè)務(wù)能力開放層、應(yīng)用支撐層,如圖1 所示。
圖1: 技術(shù)架構(gòu)圖
(1)數(shù)據(jù)源層:包含有生產(chǎn)數(shù)據(jù)SIS、經(jīng)營數(shù)據(jù)WIS、環(huán)衛(wèi)物聯(lián)網(wǎng)數(shù)據(jù)、視頻監(jiān)控?cái)?shù)據(jù)等及其他外部數(shù)據(jù),通過統(tǒng)一數(shù)據(jù)采集到中臺(tái)數(shù)據(jù)倉庫。
(2)數(shù)據(jù)能力層:包含統(tǒng)一標(biāo)準(zhǔn)的數(shù)據(jù)治理、基于模型中心的全鏈路的數(shù)據(jù)生命周期管理、面向分析的計(jì)算調(diào)度中心、基于模型訓(xùn)練和智能挖掘的AI 能力中心以及物聯(lián)網(wǎng)管控中心,通過數(shù)據(jù)能力開放給上層應(yīng)用。
(3)業(yè)務(wù)能力開放層:包含業(yè)務(wù)通過流程引擎快速和可視化配置、數(shù)據(jù)搜索和報(bào)表通過BI 中心賦能、空間信息中心對(duì)GIS、圖譜和3D 等提供服務(wù)、以及用戶中心對(duì)統(tǒng)一認(rèn)證、權(quán)限等管理,通過微服務(wù)功能進(jìn)行管控。
(4)應(yīng)用支撐層:統(tǒng)計(jì)分析、精準(zhǔn)化管控、BI 系統(tǒng)、監(jiān)管大屏、GIS 地圖、物聯(lián)網(wǎng)數(shù)據(jù)分析等作為最終應(yīng)用呈現(xiàn)。
統(tǒng)計(jì)分析系統(tǒng)主要有以下功能:
生產(chǎn)統(tǒng)計(jì):收集生產(chǎn)信息,統(tǒng)計(jì)機(jī)組日、周、月、季、年生產(chǎn)情況及主要指標(biāo)并計(jì)算各項(xiàng)經(jīng)濟(jì)指標(biāo),能手動(dòng)修正各類生產(chǎn)情況中的數(shù)據(jù)項(xiàng);
綜合統(tǒng)計(jì):收集匯總生產(chǎn)、財(cái)務(wù)、安全、燃料、物資等各方面的指標(biāo)信息,加工成直觀的各類圖表,為廠決策提供完整、準(zhǔn)確、及時(shí)的數(shù)據(jù),并能作出月度生產(chǎn)指標(biāo)分析、經(jīng)濟(jì)指標(biāo)分析;
成本分析:系統(tǒng)每天采集的發(fā)電量、垃圾量、物資和檢修成本等數(shù)據(jù),核算出的實(shí)際發(fā)生的和分?jǐn)偟墓潭ǔ杀举M(fèi)用數(shù)據(jù),核算出每天、每月、每季度、每年的成本、單位固定成本、單位發(fā)電成本、噸垃圾成本、售電收入和利潤等。累計(jì)固定成本回收數(shù)額,已經(jīng)完成的發(fā)電量、垃圾處理量和已經(jīng)獲得的利潤;
預(yù)算管理:通過預(yù)算編制、預(yù)算控制、預(yù)算調(diào)整、預(yù)算分析等功能,提供按成本中心(部門、班組) 、設(shè)備、項(xiàng)目等多種預(yù)算編制類型,可編制售電預(yù)算、發(fā)電成本預(yù)算、管理費(fèi)用預(yù)算、大小修費(fèi)用預(yù)算、財(cái)務(wù)費(fèi)用預(yù)算、工程項(xiàng)目預(yù)算、財(cái)務(wù)預(yù)算等全面預(yù)算,用戶可根據(jù)需要調(diào)整預(yù)算,加強(qiáng)對(duì)關(guān)鍵業(yè)務(wù)環(huán)節(jié)的實(shí)時(shí)監(jiān)控,實(shí)現(xiàn)事前預(yù)算、事后監(jiān)督、加強(qiáng)預(yù)算分析、分解、控制、考核的深度和準(zhǔn)確性。
機(jī)組啟動(dòng)和停機(jī)的實(shí)際費(fèi)用:生產(chǎn)技術(shù)和運(yùn)行各有關(guān)部門需要掌握每次機(jī)組啟動(dòng)和停機(jī)的實(shí)際費(fèi)用消耗情況。系統(tǒng)為此提供在啟停結(jié)束后計(jì)算實(shí)際的啟停成本的功能,包括:累計(jì)的啟動(dòng)或停機(jī)期間消耗燃料的成本,以及啟停期間的發(fā)電量和廠用電量等信息;
報(bào)表及臺(tái)帳:生產(chǎn)指標(biāo)分類入帳,經(jīng)營指標(biāo)分類入帳,考核指標(biāo)分類入帳,自動(dòng)生產(chǎn)日?qǐng)?bào)、月報(bào)、年報(bào),生成統(tǒng)計(jì)報(bào)表,生成各種查詢用表;
計(jì)劃與考核:生成年度及月度生產(chǎn)計(jì)劃、機(jī)組檢修計(jì)劃、閱讀工作計(jì)劃,匯總責(zé)任制考核結(jié)果,生成年度及月度資金計(jì)劃,對(duì)各項(xiàng)資金的動(dòng)態(tài)跟蹤管理分析。
統(tǒng)計(jì)分析系統(tǒng)是生產(chǎn)信息管理平臺(tái)中計(jì)算量最大的功能模塊,為了解決計(jì)算效率痛點(diǎn),在與中臺(tái)功能充分調(diào)研的基礎(chǔ)上提出如下設(shè)計(jì)思路:
關(guān)鍵功能:基礎(chǔ)指標(biāo)數(shù)據(jù)采集、指標(biāo)計(jì)算、統(tǒng)計(jì)分析、精準(zhǔn)化統(tǒng)計(jì)分析
關(guān)鍵質(zhì)量:采集數(shù)據(jù)速度(讀寫)、單次數(shù)據(jù)計(jì)算不超過秒級(jí)、數(shù)據(jù)準(zhǔn)確率驗(yàn)證、指標(biāo)修改日志追蹤
設(shè)計(jì)約束:新舊統(tǒng)計(jì)分析切換時(shí)序約束、重構(gòu)基于原有指標(biāo)配置、與原來業(yè)務(wù)系統(tǒng)解耦。
在統(tǒng)計(jì)分析系統(tǒng)重構(gòu)設(shè)計(jì)中將數(shù)據(jù)分為三個(gè)層次:基礎(chǔ)指標(biāo)數(shù)據(jù)(日基礎(chǔ)指標(biāo)數(shù)據(jù)和月基礎(chǔ)指標(biāo)數(shù)據(jù))、計(jì)算指標(biāo)數(shù)據(jù)(日基礎(chǔ)指標(biāo)計(jì)算數(shù)據(jù)和月基礎(chǔ)指標(biāo)計(jì)算數(shù)據(jù))、離線報(bào)表數(shù)據(jù),如圖2 所示。
圖2: 數(shù)據(jù)路徑
其中,基礎(chǔ)指標(biāo)數(shù)據(jù)由數(shù)據(jù)中臺(tái)從各個(gè)子系統(tǒng)采集而來,分為計(jì)劃任務(wù)和非計(jì)劃任務(wù),各個(gè)子系統(tǒng)分開分組提取?;A(chǔ)指標(biāo)數(shù)據(jù)或是從設(shè)備上采集而來,或是用戶錄入,或分為定時(shí)計(jì)劃提取和手動(dòng)非計(jì)劃提取。當(dāng)基礎(chǔ)指標(biāo)數(shù)據(jù)發(fā)生改變時(shí),自動(dòng)記錄變更日志,可進(jìn)行追蹤查詢。
當(dāng)采集到基礎(chǔ)指標(biāo)數(shù)據(jù)后,在數(shù)據(jù)能力層進(jìn)行數(shù)據(jù)治理,通過模型中心和AI 能力中心進(jìn)行賦能,計(jì)算時(shí)間在毫秒級(jí)到秒級(jí)內(nèi)完成。再通過DOP 進(jìn)行發(fā)布或由相關(guān)應(yīng)用訂閱。
離線報(bào)表數(shù)據(jù)來自數(shù)據(jù)中臺(tái)對(duì)基礎(chǔ)指標(biāo)數(shù)據(jù)和計(jì)算指標(biāo)數(shù)據(jù)的計(jì)算,一旦生成,自動(dòng)形成版本,再次重新生成時(shí),保存為新版本,存檔舊版本,形成版本管理。
離線報(bào)表數(shù)據(jù)可能會(huì)和基礎(chǔ)、計(jì)算指標(biāo)數(shù)據(jù)不一致,此時(shí)需要給出消息提醒。
統(tǒng)計(jì)分析底層是通過數(shù)據(jù)中臺(tái)采集各相關(guān)系統(tǒng)數(shù)據(jù)后進(jìn)行計(jì)算和賦能,上層通過離線報(bào)表數(shù)據(jù),以可視化BI 報(bào)表呈現(xiàn),系統(tǒng)架構(gòu)圖中涉及的術(shù)語如表1,統(tǒng)計(jì)分析系統(tǒng)架構(gòu)圖如圖3 所示。
圖3: 系統(tǒng)架構(gòu)圖
表1: 系統(tǒng)架構(gòu)圖中涉及的術(shù)語
3.3.1 數(shù)據(jù)采集
每一個(gè)數(shù)據(jù)來源數(shù)據(jù)中臺(tái)都有對(duì)應(yīng)的數(shù)據(jù)采集適配器,各系統(tǒng)之間互相獨(dú)立、互不干擾。采集適配器可以按計(jì)劃任務(wù)定時(shí)采集,也可以根據(jù)實(shí)際需要人工手動(dòng)發(fā)起采集。
采集方式1:先由數(shù)據(jù)中臺(tái)從各數(shù)據(jù)源采集,經(jīng)數(shù)據(jù)統(tǒng)一標(biāo)準(zhǔn)處理后由系統(tǒng)采用kettle 從中臺(tái)數(shù)據(jù)庫中,拉取需要的數(shù)據(jù)。拉取完成后,立刻觸發(fā)數(shù)據(jù)中臺(tái)進(jìn)行指標(biāo)計(jì)算。
采集方式2:先由數(shù)據(jù)中臺(tái)從各數(shù)據(jù)源采集,經(jīng)數(shù)據(jù)統(tǒng)一標(biāo)準(zhǔn)處理后存入中臺(tái)數(shù)據(jù)庫中,系統(tǒng)采用Flink CDC 監(jiān)控中臺(tái)數(shù)倉的存檔日志,將數(shù)據(jù)變化實(shí)時(shí)同步到統(tǒng)計(jì)分析系統(tǒng)中。將變化數(shù)據(jù)先存入MQ 中,亦可以直接存入ClickHouse數(shù)據(jù)庫中。可以實(shí)時(shí)觸發(fā)中臺(tái)計(jì)算,亦可以等待數(shù)據(jù)累積到一定程度,按計(jì)劃任務(wù)批量計(jì)算。
3.3.2 指標(biāo)數(shù)據(jù)計(jì)算
數(shù)據(jù)采集器將數(shù)據(jù)寫入中臺(tái)DB 后,發(fā)起指標(biāo)計(jì)算指令,通過模型進(jìn)行指標(biāo)計(jì)算,計(jì)算完成后,將結(jié)果建立新標(biāo)簽存入DB 中,以備系統(tǒng)隨時(shí)調(diào)用。
指標(biāo)數(shù)據(jù)計(jì)算采用Flink 來實(shí)現(xiàn)。Flink 是分布式計(jì)算引擎,可以基于Hadoop 部署集群,采用Yarn 進(jìn)行任務(wù)調(diào)度。當(dāng)數(shù)據(jù)量較大時(shí),可以增加集群中主機(jī)數(shù)量。當(dāng)數(shù)據(jù)量較小時(shí),也可以采用單機(jī)(local)部署。Flink 在主機(jī)數(shù)量足夠時(shí),能在毫秒級(jí)至秒級(jí)內(nèi)完成計(jì)算。
3.3.3 報(bào)表數(shù)據(jù)提取
根據(jù)報(bào)表的數(shù)據(jù)要求,從基礎(chǔ)指標(biāo)和計(jì)算指標(biāo)中提取數(shù)據(jù)存放入關(guān)系型結(jié)構(gòu)化的數(shù)據(jù)表中,形成供制作報(bào)表的離線報(bào)表數(shù)據(jù)。離線報(bào)表數(shù)據(jù)多次提取,中臺(tái)進(jìn)行版本管理和日志監(jiān)控,必須保留歷史版本。重新提取離線報(bào)表數(shù)據(jù)根據(jù)制度進(jìn)行流程審批。
離線報(bào)表數(shù)據(jù)提取可以是定時(shí)提取,亦可以手動(dòng)提取。手動(dòng)提取需備注說明。
3.3.4 報(bào)表可視化
中臺(tái)暫不提供表報(bào)功能,先采用Superset 數(shù)據(jù)分析以及可視化的報(bào)表平臺(tái),它通過創(chuàng)建和分享dashboard,為數(shù)據(jù)分析提供了輕量級(jí)的數(shù)據(jù)查詢和可視化方案。它支持連接MariaDB、Hive、Impala、MySql、Oracle、ClickHouse 等 幾乎所有主流的數(shù)據(jù)源;支持和弦圖、事件流圖、熱力圖、視圖表等及其它常規(guī)的可視化展示圖表;支持可控的數(shù)據(jù)展示,能自定義展示字段、數(shù)據(jù)源等此平臺(tái)支持報(bào)表界面的定制(拖拽和SQL 配置)。
3.3.5 對(duì)象畫像分析
設(shè)置數(shù)據(jù)對(duì)象及關(guān)聯(lián)屬性,并可就對(duì)象變化情況進(jìn)行分析。
3.4.1 指標(biāo)設(shè)置盡量沿用原有的重要數(shù)據(jù)設(shè)置、基礎(chǔ)指標(biāo)設(shè)置、統(tǒng)計(jì)指標(biāo)設(shè)置??蛇m當(dāng)改進(jìn)指標(biāo)公式設(shè)置的易用性。
3.4.2 指標(biāo)計(jì)算
將指標(biāo)分為錄入型和計(jì)算型,錄入型包括:每班錄入的重要數(shù)據(jù)、表碼、臺(tái)賬等,這些數(shù)據(jù)在業(yè)務(wù)系統(tǒng)中錄入,由中臺(tái)采集到中臺(tái)數(shù)倉,提供抽取到統(tǒng)計(jì)分析系統(tǒng)中來,作為所有指標(biāo)計(jì)算的基礎(chǔ)數(shù)據(jù)。
計(jì)算型指標(biāo)是基于錄入型指標(biāo)數(shù)據(jù)按照公式計(jì)算而來。所有的計(jì)算型指標(biāo)盡量只用錄入型指標(biāo)計(jì)算,不去用SQL從數(shù)據(jù)庫中再提取。數(shù)據(jù)路徑示意圖如圖4。
圖4: 數(shù)據(jù)路徑示意圖
解析所有的公式,分析出公式中的指標(biāo)之間的關(guān)系,將指標(biāo)對(duì)象與指標(biāo)對(duì)象之間的關(guān)系組成一個(gè)多叉樹的數(shù)據(jù)結(jié)構(gòu),并通過hashcode 來快速定位指標(biāo)對(duì)象,獲取被計(jì)算指標(biāo)所依賴的指標(biāo)。將已計(jì)算或已有值的指標(biāo)做上標(biāo)記,若所依賴的指標(biāo)尚未計(jì)算,則不能計(jì)算當(dāng)前指標(biāo)。計(jì)算關(guān)系如圖5。
圖5: 計(jì)算關(guān)系圖
(1)基礎(chǔ)指標(biāo)數(shù)據(jù)采集:從業(yè)務(wù)系統(tǒng)抽取錄入型數(shù)據(jù)(重要數(shù)據(jù)、臺(tái)賬、表碼),這些數(shù)據(jù)是最基礎(chǔ)的指標(biāo)數(shù)據(jù),需要給這些指標(biāo)編碼。這些數(shù)據(jù)同時(shí)存在于和業(yè)務(wù)系統(tǒng)和統(tǒng)計(jì)分析系統(tǒng)中臺(tái)數(shù)倉中,除此之外的指標(biāo)數(shù)據(jù)只存在統(tǒng)計(jì)分析系統(tǒng)中臺(tái)數(shù)倉中。
(2)基礎(chǔ)衍生指標(biāo)計(jì)算:基礎(chǔ)衍生指標(biāo)是指基礎(chǔ)指標(biāo)的近7 日均值、前一天日統(tǒng)計(jì)數(shù)據(jù)、24 時(shí)值、最大值、昨日值、上次值等。當(dāng)采集到基礎(chǔ)指標(biāo)數(shù)據(jù)后,立刻計(jì)算基礎(chǔ)衍生指標(biāo)。
(3)日基礎(chǔ)指標(biāo)計(jì)算:日基礎(chǔ)指標(biāo)是通過基礎(chǔ)指標(biāo)和基礎(chǔ)衍生指標(biāo)計(jì)算而來,需要在統(tǒng)計(jì)分析中,設(shè)置計(jì)算公式。當(dāng)基礎(chǔ)衍生數(shù)據(jù)計(jì)算完成后,通過計(jì)算公式立刻日基礎(chǔ)指標(biāo)。
(4)日統(tǒng)計(jì)指標(biāo)計(jì)算:日統(tǒng)計(jì)指標(biāo)是基于之前所有的日指標(biāo)數(shù)據(jù),通過公式計(jì)算而來。
(5)月基礎(chǔ)指標(biāo)計(jì)算:月基礎(chǔ)指標(biāo)是基于之前所有的日指標(biāo)數(shù)據(jù),通過公式計(jì)算而來。
(6)月統(tǒng)計(jì)指標(biāo)計(jì)算:月統(tǒng)計(jì)指標(biāo)是基于之前所有的日指標(biāo)數(shù)據(jù),通過公式計(jì)算而來。
3.5.1 中間件選型分析
Flink:Flink 主要用來做批流一體的分布式計(jì)算。同類競品有:Storm、Spark 等,F(xiàn)link 具有如下優(yōu)點(diǎn):
(1)Flink 的流處理引擎只需要很少配置就能實(shí)現(xiàn)高吞吐率和低延遲。
(2)Flink 支持了流處理和 Event Time 語義的窗口機(jī)制。
(3)Flink 的 checkpointing 機(jī)制可以在計(jì)算過程中維護(hù)自定義狀態(tài)。
(4)Flink 支持在時(shí)間窗口,統(tǒng)計(jì)窗口,session 窗口,以及數(shù)據(jù)驅(qū)動(dòng)的窗口。
(5)Batch 和 Streaming 一個(gè)系統(tǒng)流處理和批處理共用一個(gè)引擎。
ClickHouse:分布式數(shù)據(jù)庫有很多,各有優(yōu)缺點(diǎn)。ClickHouse 優(yōu)點(diǎn)是性能強(qiáng)悍,性能是關(guān)系型數(shù)據(jù)庫100~1000倍,缺點(diǎn)是:
(1)不支持事務(wù),不支持真正的刪除/ 更新,ClickHouse 的定位是分析性(OLAP)數(shù)據(jù)庫,而不是嚴(yán)格的關(guān)系型數(shù)據(jù)庫。
(2)不支持標(biāo)準(zhǔn)的SQL 語言,有些BI 系統(tǒng)無法對(duì)接,SQL 的join 性能不好。
(3)幾乎不支持分布式Join,在分析模型上僅支持大寬表模式
另一個(gè)選擇是TiDB,其優(yōu)點(diǎn)是支持OLTP 同時(shí)兼顧OLAP,兼容MySQL 協(xié)議,其弱點(diǎn)是OLAP 性能相對(duì)ClickHouse 或 DorisDB 較弱。
Superset:Superset 相對(duì)同類產(chǎn)品,其優(yōu)點(diǎn)是支持的數(shù)據(jù)源齊全,各種圖表形式豐富。缺點(diǎn)是拖拽功能稍遜,需要掌握SQL。
以上需要進(jìn)一步實(shí)驗(yàn)和測試,并和數(shù)據(jù)中臺(tái)確定最終選擇方案。
越來越來的企業(yè)面臨著建設(shè)數(shù)據(jù)中臺(tái)的同時(shí),要對(duì)現(xiàn)有的應(yīng)用系統(tǒng)進(jìn)行重構(gòu),由于企業(yè)業(yè)務(wù)及應(yīng)用管理系統(tǒng)功能不同,每家企業(yè)通過軟件技術(shù)搭建的數(shù)據(jù)中臺(tái)架構(gòu)也存在差異,本文主要是根據(jù)電力集團(tuán)企業(yè)數(shù)據(jù)中臺(tái)建設(shè)進(jìn)行應(yīng)用管理信息系統(tǒng)適配,針對(duì)統(tǒng)計(jì)分析和精準(zhǔn)管控管理系統(tǒng),利用生產(chǎn)數(shù)據(jù)依托數(shù)據(jù)中臺(tái)賦能進(jìn)行計(jì)算的設(shè)計(jì)思路研究,為企業(yè)在數(shù)據(jù)中臺(tái)和應(yīng)用系統(tǒng)更好地重構(gòu)適配提供參考和借鑒。