CN113360576A - 一种基于Flink Streaming的电网海量数据实时处理方法及装置 - Google Patents
一种基于Flink Streaming的电网海量数据实时处理方法及装置 Download PDFInfo
- Publication number
- CN113360576A CN113360576A CN202110665644.2A CN202110665644A CN113360576A CN 113360576 A CN113360576 A CN 113360576A CN 202110665644 A CN202110665644 A CN 202110665644A CN 113360576 A CN113360576 A CN 113360576A
- Authority
- CN
- China
- Prior art keywords
- power grid
- data
- processing
- flink
- grid data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Flink Streaming的海量电网数据实时处理方法及装置,该方法包括,从消息中间件中订阅海量电网数据,并采用ProtoBuf反序列化方法对其进行解析,形成Flink数据流;为每一条数据设计有效的键值,并根据键值,将数据划分成多个数据分布均匀的分组,基于Flink Streaming进行并行处理,实现海量数据处理的负载均衡;采用分布式内存型数据库redis进行存储。本发明采用Kafka作为消息接收的中间件,实现海量电网数据高并发接收;海量数据进行分组处理,提高了数据处理速率。
Description
技术领域
本发明涉及电网数据交换处理技术领域,尤其涉及一种基于Flink Streaming的电网海量数据实时处理方法及装置。
背景技术
随着电力能源产业现代化发展,国家推动电网向能源互联网转型升级,以数字技术综合利用电力***各环节能源数据,提升电网感知能力、开放水平和运行效率,在融合发展泛在电力物联网和智能电网的技术创新背景下,数据快速处理的必要性、紧迫性不言而喻,不断被推至信息化战略规划首要位置。
随着电网设备规模的不断扩大,其产生的电网数据量与日俱增。传统电力数据计算平台,基于主备机部署模式而非分布式,在海量电网数据的交换、处理、存储及应用中,都存在较大的性能瓶颈。不仅如此,在海量数据的规模下,电网***对数据处理速度的要求越来越高,已经超出传统电力数据平台的处理能力范围。通过简单的设备更新和软件升级,无法满足海量电网数据下的实时处理。
发明内容
本发明的目的在于提供一种基于Flink Streaming的电网海量数据实时处理方法及装置,对海量数据进行分组处理,使得Flink Streaming进行并行处理。
为达到上述目的,本发明采用的技术方案如下:
本发明提供一种基于Flink Streaming的电网海量数据实时处理方法,包括:
从消息中间件订阅电网数据,并进行反序列化解析;
为解析后的每条电网数据设计键值,根据键值将电网数据分组;
基于Flink Streaming对电网数据按照分组进行并行处理。
进一步的,采用Protobuf方法进行反序列化解析,形成Flink数据流。
进一步的,采用Kafka作为消息中间件。
进一步的,所述为解析后的每条电网数据设计键值,根据键值将电网数据分组,包括:
为每条电网数据设计一个长整型数字序列,作为唯一识别id号,将该id号对FlinkStreaming并行度求余数,其结果作为该条电网数据的键值;
将键值相同的电网数据分在同一组。
进一步的,所述Flink Streaming部署于服务器,通过部署多个服务器,每个服务器上部署一个Flink Streaming服务,构成集群,采用集群对电网数据进行并行处理。
进一步的,采用广播变量方式,在集群中各节点定时读取最新配置信息,多节点同步更新配置信息,同一节点上的所有task共享一份配置信息;所述节点指Flink Streaming服务。
进一步的,还包括:
数据处理后,批量读取前一次处理的电网数据,通过电网数据id号与当前电网数据进行逐一关联以及比较,同时获取配置信息中的告警阈值,若比较后的差值超过阈值,则进行告警。
进一步的,还包括:
采用log4j远程日志重定向方法,将所有节点上的同一应用程序产生的日志,汇集到指定节点的指定日志文件中;
采用滚动日志配置,当日志量到达一定程度时,新建日志文件继续保存日志,并自动删除最先创建的日志文件。
进一步的,还包括:
采用分布式内存型数据库redis对处理后的电网数据进行存储。
本发明还提供一种基于Flink Streaming的电网海量数据实时处理装置,包括:
解析模块,用于从消息中间件订阅电网数据,并进行反序列化解析;
分组模块,用于为解析后的每条电网数据设计键值,根据键值将电网数据分组;
以及,
处理模块,用于基于Flink Streaming对电网数据按照分组进行并行处理。
本发明的有益效果是:
本发明提供一种基于Flink Streaming的电网海量数据实时处理方法,采用Kafka作为消息接收的中间件,实现海量电网数据高并发接收;海量数据进行分组处理,使得Flink Streaming得以充分发挥其并行处理的优势,提高了数据处理速率;采用广播变量周期性地更新配置,实现配置信息共享,提升配置读取效率;实时告警发送,有助于更加快速地定位电网问题;采用分布式内存数据库redis,实现在海量数据情况下,依旧可以保持快速读写电网数据;采用运行日志重定向方法,使日志查询更加便捷,方便快速定位程序运行问题。
附图说明
图1为本发明的基于Flink Streaming的电网海量数据实时处理方法流程示意图;
图2为本发明中配置信息定时更新示意图;
图3为本发明中电网数据异常告警发送示意图;
图4为本发明中集群节点日志重定向收集示意图。
具体实施方式
下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
流式计算将计算任务抽象为数据流模型,具有实时性、易失性、突发性、无序性和无限性的特征,能够提供大规模数据的分布式实时处理,已经分别得到学术界和产业界的广泛关注。其中,Apache Flink是目前应用最广泛的新兴流式计算平台,因为其实时计算特性以及海量数据的处理能力,非常适合在电网数据处理中应用。
基于此,本发明提供一种基于Flink Streaming的电网海量数据实时处理方法,参见图1,包括:
从消息中间件订阅电网数据,并采用Protobuf方法进行反序列化解析;
为解析后的每条电网数据设计键值,根据键值将电网数据分组;
基于Flink Streaming对电网数据按照分组进行并行处理;
采用分布式内存型数据库redis对处理后的电网数据进行存储。
本发明的一个实施例中,消息中间件采用Kafka组件,可支持电网数据的高并发接收。
本发明实施例中,使用Protobuf方法,可支持多编程语言格式下的电网消息反序列化,并解析成可处理的电网数据格式。
本发明实施例中,为每条电网数据设计一个长整型数字序列,作为唯一识别id号,将该id号对Flink Streaming程序并行度求余数,其结果作为该条电网数据的键值,根据键值对所有数据进行分组,键值相同的数据分在同一组。这样可以保证分组数和并行度保持一致。
在海量数据的情况下,电网数据在Flink Streaming处理中按组呈现近似均匀分布,从而实现并行处理。分组处理数据采用了化整为零的思想,将“一整块”数据合理划分成“各小块”数据,各组数据同时处理,充分发挥了Flink Streaming程序并行处理数据的能力。
进一步的,并行度是一项配置,可在程序中设置,表示程序运行时的并发能力。
Flink Streaming的逻辑处理单元是task,由于task与task之间无法通信,因此无法相互传递配置信息。读取配置信息需要与数据库交互,若每个task独立更新配置文件,则会过多占用Flink Streaming的处理时间。而配置信息无需做到实时更新,周期性地更新即可满足要求。所以,作为一种优选的实施方式,本发明采用广播变量方式,在集群中实现单节点定时读取最新配置信息,多节点分发同步更新,每个节点只需保留一份配置。同一节点上的所有task共享一份配置信息,可有效提升配置信息的读取效率,具体实施过程参见图2。其中,通过部署多个服务器,每个服务器上部署一个Flink Streaming服务,每个服务就是一个节点,部署N个服务器,处理业务的能力就提升大约N倍,这些节点的集合就叫做集群。
作为一种优选的实施方式,数据处理后,批量读取前一次处理的电网数据,通过电网数据id号与当前电网数据进行逐一关联以及比较,同时获取配置信息中的告警阈值,若比较后的差值超过阈值,则判定为需要发送告警。实时告警发送有助于电网问题快速定位,及时解决。具体参见图3。
本发明实施例中,采用分布式内存型数据库redis存储处理完成的电网数据,Flink Streaming最显著的特点是海量数据实时处理,这就意味着需要频繁地与数据库交互,若交互过程涉及到数据的持久化,则读写磁盘会耗费大量时间,严重影响实时处理性能。因此,使用分布式内存数据库redis替代传统的关系型数据库,可实现海量数据下的实时读写。
作为一种优选的实施方式,使用log4j远程日志重定向方法和滚动日志配置,实现海量日志定量且按业务保存。
Flink Streaming默认的日志服务策略是应用程序日志本地化统一保存,即同一个节点上的所有应用程序产生的日志,统一保存在该节点上的同一日志文件中。该策略的弊端为:各应用程序日志混合在一起,不易区分,且日志量大,日志刷新时间长,大大增加了查询的时间成本;各节点日志本地化保存,需要切换节点才能查询各节点日志,使查询过程变得更加复杂。参见图4,本发明中,采用log4j远程日志重定向方法和滚动日志配置,可以将所有节点上的同一应用程序产生的日志,汇集到指定节点的指定日志文件中。采用滚动配置,日志量到达一定程度时,则新建日志文件继续保存日志。自动删除最先创建的日志文件,以达到控制日志文件总数的目的。采用该方法,集群中各节点的日志汇聚到同一文件,且日志大小可控,大大提高了日志查询的效率。
本发明实施例还提供一种基于Flink Streaming的电网海量数据实时处理装置,包括:
解析模块,用于从消息中间件订阅电网数据,并进行反序列化解析;
分组模块,用于为解析后的每条电网数据设计键值,根据键值将电网数据分组;
以及,
处理模块,用于基于Flink Streaming对电网数据按照分组进行并行处理。
值得指出的是,该装置实施例是与上述方法实施例对应的,上述方法实施例的实现方式均适用于该装置实施例中,并能达到相同或相似的技术效果,故不在此赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/ 或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (10)
1.一种基于Flink Streaming的电网海量数据实时处理方法,其特征在于,包括:
从消息中间件订阅电网数据,并进行反序列化解析;
为解析后的每条电网数据设计键值,根据键值将电网数据分组;
基于Flink Streaming对电网数据按照分组进行并行处理。
2.根据权利要求1所述的一种基于Flink Streaming的电网海量数据实时处理方法,其特征在于,采用Protobuf方法进行反序列化解析,形成Flink数据流。
3.根据权利要求1所述的一种基于Flink Streaming的电网海量数据实时处理方法,其特征在于,采用Kafka作为消息中间件。
4.根据权利要求1所述的一种基于Flink Streaming的电网海量数据实时处理方法,其特征在于,所述为解析后的每条电网数据设计键值,根据键值将电网数据分组,包括:
为每条电网数据设计一个长整型数字序列,作为唯一识别id号,将该id号对FlinkStreaming并行度求余数,其结果作为该条电网数据的键值;
将键值相同的电网数据分在同一组。
5.根据权利要求1所述的一种基于Flink Streaming的电网海量数据实时处理方法,其特征在于,所述Flink Streaming部署于服务器,通过部署多个服务器,每个服务器上部署一个Flink Streaming服务,构成集群,采用集群对电网数据进行并行处理。
6.根据权利要求5所述的一种基于Flink Streaming的电网海量数据实时处理方法,其特征在于,采用广播变量方式,在集群中各节点定时读取最新配置信息,多节点同步更新配置信息,同一节点上的所有task共享一份配置信息;所述节点指Flink Streaming服务。
7.根据权利要求1所述的一种基于Flink Streaming的电网海量数据实时处理方法,其特征在于,还包括:数据处理后,批量读取前一次处理的电网数据,通过电网数据id号与当前电网数据进行逐一关联以及比较,同时获取配置信息中的告警阈值,若比较后的差值超过阈值,则进行告警。
8.根据权利要求5所述的一种基于Flink Streaming的电网海量数据实时处理方法,其特征在于,还包括:采用log4j远程日志重定向方法,将所有节点上的同一应用程序产生的日志,汇集到指定节点的指定日志文件中;
采用滚动日志配置,当日志量到达一定程度时,新建日志文件继续保存日志,并自动删除最先创建的日志文件。
9.根据权利要求1所述的一种基于Flink Streaming的电网海量数据实时处理方法,其特征在于,还包括:
采用分布式内存型数据库redis对处理后的电网数据进行存储。
10.一种基于Flink Streaming的电网海量数据实时处理装置,其特征在于,包括:
解析模块,用于从消息中间件订阅电网数据,并进行反序列化解析;
分组模块,用于为解析后的每条电网数据设计键值,根据键值将电网数据分组;
以及,
处理模块,用于基于Flink Streaming对电网数据按照分组进行并行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110665644.2A CN113360576A (zh) | 2021-06-16 | 2021-06-16 | 一种基于Flink Streaming的电网海量数据实时处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110665644.2A CN113360576A (zh) | 2021-06-16 | 2021-06-16 | 一种基于Flink Streaming的电网海量数据实时处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113360576A true CN113360576A (zh) | 2021-09-07 |
Family
ID=77534577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110665644.2A Pending CN113360576A (zh) | 2021-06-16 | 2021-06-16 | 一种基于Flink Streaming的电网海量数据实时处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113360576A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821361A (zh) * | 2021-11-24 | 2021-12-21 | 中节能晶和智慧城市科技(浙江)有限公司 | 一种基于流式处理的物联网平台消息处理方法和*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871502A (zh) * | 2019-01-18 | 2019-06-11 | 北京赛思信安技术股份有限公司 | 一种基于Storm的流数据正则匹配方法 |
CN111367953A (zh) * | 2020-03-30 | 2020-07-03 | 中国建设银行股份有限公司 | 一种资讯数据的流式处理方法及装置 |
-
2021
- 2021-06-16 CN CN202110665644.2A patent/CN113360576A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109871502A (zh) * | 2019-01-18 | 2019-06-11 | 北京赛思信安技术股份有限公司 | 一种基于Storm的流数据正则匹配方法 |
CN111367953A (zh) * | 2020-03-30 | 2020-07-03 | 中国建设银行股份有限公司 | 一种资讯数据的流式处理方法及装置 |
Non-Patent Citations (2)
Title |
---|
李宁辉: "基于分布式的监控视频数据并行处理平台研究与实现", 《中国优秀硕士学位论文全文数据库》 * |
陈敏: "北斗监测接收机海量处理与存储架构研究与实现", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821361A (zh) * | 2021-11-24 | 2021-12-21 | 中节能晶和智慧城市科技(浙江)有限公司 | 一种基于流式处理的物联网平台消息处理方法和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109918349B (zh) | 日志处理方法、装置、存储介质和电子装置 | |
CN108564470B (zh) | 一种区块链中并行建块的交易分发方法 | |
CN109933631A (zh) | 基于Infiniband网络的分布式并行数据库***及数据处理方法 | |
CN104407879B (zh) | 一种电网时序大数据并行加载方法 | |
CN105303456A (zh) | 电力传输设备监控数据处理方法 | |
CN103595805A (zh) | 一种基于分布式集群的数据放置方法 | |
CN111258978B (zh) | 一种数据存储的方法 | |
CN104166589A (zh) | 一种心跳包的处理方法和装置 | |
CN106815254A (zh) | 一种数据处理方法和装置 | |
CN103581332A (zh) | HDFS架构及HDFS架构中NameNode节点的压力分解方法 | |
US10241828B2 (en) | Method and system for scheduling transactions in a data system | |
CN105975345A (zh) | 一种基于分布式内存的视频帧数据动态均衡存储管理方法 | |
CN105205154A (zh) | 数据迁移方法以及装置 | |
CN105491117A (zh) | 面向实时数据分析的流式图数据处理***及方法 | |
CN111523004B (zh) | 一种边缘计算网关数据的存储方法及*** | |
CN116501783A (zh) | 一种分布式数据库数据导入方法及*** | |
CN107506381A (zh) | 一种大数据分布式调度分析方法、***装置及存储介质 | |
Liu et al. | Optimizing shuffle in wide-area data analytics | |
CN108875035A (zh) | 分布式文件***的数据存储方法及相关设备 | |
CN115292414A (zh) | 一种业务数据同步到数仓的方法 | |
CN113360576A (zh) | 一种基于Flink Streaming的电网海量数据实时处理方法及装置 | |
CN105069029A (zh) | 一种实时etl***及方法 | |
CN112182031B (zh) | 数据查询方法及装置、存储介质、电子装置 | |
Ding et al. | Commapreduce: An improvement of mapreduce with lightweight communication mechanisms | |
CN117056303A (zh) | 适用于军事行动大数据的数据存储方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210907 |