发明内容
基于此,有必要针对上述技术问题,提供一种能够提高处理合理性的电力量测系统数据处理方法、装置、计算机设备和存储介质。
一种电力量测系统数据处理方法,应用于数据处理设备,所述数据处理设备中设置有分布式文件系统,所述方法包括:
接收到电力量测系统的待处理数据,获取所述待处理数据对应的业务类型;
根据所述业务类型确定所述待处理数据的数据类型,并根据所述数据类型将所述待处理数据存储至对应的第一存储位置,得到第一存储数据;所述第一存储位置设置于分布式文件系统的数据存储区域中;所述数据存储区域包括存储时间不同的多个存储位置;
根据所述第一存储位置对应的计算组件和存储周期,将所述第一存储数据存储至所述分布式文件系统中的第二存储位置,得到第二存储数据;
将所述第二存储数据发送至所述数据处理设备中的数据发布区域,以使所述电力量测系统中的业务应用通过预设接口访问所述数据发布区域中的第二存储数据。
在其中一个实施例中,所述接收到电力量测系统的待处理数据,包括:
获取所述电力量测系统的报文数据,将所述报文数据进行解析,得到原始采集数据;
通过卡夫卡消息队列接收所述原始采集数据,作为所述待处理数据。
在其中一个实施例中,所述业务类型包括非实时业务以及实时业务;
所述根据所述业务类型确定所述待处理数据的数据类型,包括:
获取所述待处理数据在所述电力量测系统中对应的业务类型;
若所述业务类型为非实时业务,确定所述待处理数据的数据类型为非实时数据;
若所述业务类型为实时业务,确定所述待处理数据的数据类型为实时数据。
在其中一个实施例中,所述根据所述数据类型将所述待处理数据存储至对应的第一存储位置,包括:
若所述数据类型为非实时数据,通过Sparkstreaming计算组件读取所述待处理数据,并将所述待处理数据存储至数据准备层;所述数据准备层设置于所述分布式文件系统中;
若所述数据类型为实时数据,通过Sparkstreaming计算组件和sparksql计算组件读取所述待处理数据并对所述待处理数据进行数据清洗,得到清洗数据,将所述清洗数据存储至redis内存数据库;所述redis内存数据库设置于所述分布式文件系统中;
其中,所述数据准备层的数据存储时间小于所述redis内存数据库的数据存储时间。
在其中一个实施例中,所述根据所述第一存储位置对应的计算组件和存储周期,将所述第一存储数据存储至所述分布式文件系统中的第二存储位置,包括:
若所述第一存储位置为数据准备层,通过sparksql计算组件将所述第一存储数据实时存储至所述分布式文件系统中的细节数据层;所述细节数据层用于存储进行数据清洗后的数据和/或永久存储的数据;
若所述第一存储位置为redis内存数据库,通过sparksql计算组件将所述第一存储数据按照预设存储周期定时存储至所述细节数据层。
在其中一个实施例中,所述将所述第二存储数据发送至所述数据处理设备中的数据发布区域之前,还包括:
根据大规模并行分析数据库、CTSDB时序数据库以及redis内存数据库,得到所述数据发布区域。
在其中一个实施例中,所述将所述第二存储数据发送至所述数据处理设备中的数据发布区域,包括:
通过sparksql计算组件从所述第二存储位置读取所述第二存储数据,并根据预设算法以及预设统计规则获取所述第二存储数据对应的统计结果数据和所述第二存储数据对应的报表数据;
将所述第二存储数据、所述统计结果数据以及所述报表数据发送至所述数据发布区域中的大规模并行分析数据库、CTSDB时序数据库以及redis内存数据库中并存储。
一种电力量测系统数据处理装置,应用于数据处理设备,所述数据处理设备中设置有分布式文件系统,所述装置包括:
获取模块,用于接收到电力量测系统的待处理数据,获取所述待处理数据对应的业务类型;
第一存储模块,用于根据所述业务类型确定所述待处理数据的数据类型,并根据所述数据类型将所述待处理数据存储至对应的第一存储位置,得到第一存储数据;所述第一存储位置设置于分布式文件系统的数据存储区域中;所述数据存储区域包括存储时间不同的多个存储位置;
第二存储模块,用于根据所述第一存储位置对应的计算组件和存储周期,将所述第一存储数据存储至所述分布式文件系统中的第二存储位置,得到第二存储数据;
访问模块,用于将所述第二存储数据发送至所述数据处理设备中的数据发布区域,以使所述电力量测系统中的业务应用通过预设接口访问所述数据发布区域中的第二存储数据。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
上述电力量测系统数据处理方法、装置、计算机设备和存储介质,通过在接收到电力量测系统的待处理数据时,根据待处理数据的业务类型确定数据类型,并根据数据类型将待处理数据存储至分布式文件系统的数据存储区域中的第一存储位置,得到第一存储数据,并基于第一存储位置对应的计算组件和存储周期,将第一存储数据存储至分布式文件系统中的第二存储位置,得到第二存储数据,并将第二存储数据发送至设置于电力量测系统的数据发布区域,从而电力量测系统中的业务应用可以访问第二存储数据。相较于传统的通过Oracle架构的方式进行存储和处理的方式,本方案通过将不同类型的数据按照不同的存储策略进行存储,实现了对海量计量数据的精细化处理,提高了电力系统数据的处理合理性。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的电力量测系统数据处理方法,可以应用于如图1所示的应用环境中。其中,数据处理设备102中可以设置有分布式文件系统,数据处理设备102可以接收电力量测系统的待处理数据,并基于待处理数据的数据类型确定待处理数据的存储路径、存储策略和存储位置等,并且数据处理设备102可以在将待处理数据存储后,将其发送至数据发布区域,从而电力量测系统中的业务应用可以通过预设接口访问数据发布区域中的数据。另外,在一些实施例中,还可以包括服务器104,数据处理设备102通过网络与服务器104进行通信,其中,数据处理设备102还可以将对待处理数据的处理结果和处理记录发送至服务器104进行存储。其中,数据处理设备102可以但不限于是各种个人计算机、笔记本电脑、智能手机和平板电脑,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种电力量测系统数据处理方法,以该方法应用于图1中的数据处理设备为例进行说明,包括以下步骤:
步骤S202,接收到电力量测系统的待处理数据,获取待处理数据对应的业务类型。
其中,电力量测系统可以是对电力系统中各个设备进行数据计量的系统,即电力量测系统中可以包含对多个电力设备的计量数据,数据处理设备102可以接收电力量测系统的待处理数据,例如接收电力量测系统中的计量数据,数据处理设备102在获取到上述待处理数据后,可以获取待处理数据对应的业务类型,例如是哪个电力设备产生的计量数据,产生计量数据的电力设备所属的业务类型等。其中,数据处理设备102中可以设置有分布式文件系统,该分布式文件系统可以设置有多个存储层,每个存储层可以存储不同类型的数据,并且每个存储层的数据存储时间可以不同,数据处理设备102中还可以设置有多种组件,包括数据存储组件、数据采集组件、数据服务组件等。
上述数据处理设备102获取到电力量测系统的待处理数据可以是经过解析后的数据。例如,在一个实施例中,接收到电力量测系统的待处理数据,包括:获取电力量测系统的报文数据,将报文数据进行解析,得到原始采集数据;通过卡夫卡消息队列接收原始采集数据,作为待处理数据。本实施例中,数据处理设备102获取到电力量测系统的报文数据后,对报文数据进行前置处理,包括对报文数据进行解析等,从而数据处理设备102可以得到解析后的原始采集数据,数据处理设备102还可以通过卡夫卡队列接收原始采集数据,从而得到待处理数据。例如,数据处理设备102的数据采集前置将报文数据解析后,将解析后的原始采集数据推送至kafka(卡夫卡)消息队列,作为待处理数据等待消费处理。其中,kafka是一个分布式、高吞吐量、高扩展性的消息队列系统。具有稳定性和效率都较高的特点。
步骤S204,根据业务类型确定待处理数据的数据类型,并根据数据类型将待处理数据存储至对应的第一存储位置,得到第一存储数据;第一存储位置设置于分布式文件系统的数据存储区域中;数据存储区域包括存储时间不同的多个存储位置。
其中,业务类型可以是产生上述待处理数据的电力设备所代表的业务的类型。不同业务类型的数据有不同的数据类型。则数据处理设备102可以根据上述待处理数据的业务类型确定待处理数据的数据类型。对于不同的数据类型,数据处理设备102可以将其存储在分布式文件系统中的不同存储位置,例如,数据处理设备102可以根据待处理数据的数据类型将待处理数据存储在分布式文件系统中的数据存储区域的第一存储位置,得到第一存储数据。其中,分布式文件系统可以设置在数据处理设备102中,数据存储区域中可以包括多个存储位置,例如多个存储层,每个存储位置中对于数据在其中存储的时间可以不同,例如部分存储位置中的数据可以存储预设时间,部分存储位置中的数据可以永久存储等。则数据处理设备102可以根据数据类型确定待处理数据的存储时间,并从多个存储位置中确定出一个第一存储位置用于存储上述待处理数据。其中,该第一存储位置可以是暂时存储待处理数据的位置,即可以是数据处理设备102对待处理数据的一种预处理过程。
步骤S206,根据第一存储位置对应的计算组件和存储周期,将第一存储数据存储至分布式文件系统中的第二存储位置,得到第二存储数据。
其中,分布式文件系统中的数据存储区域可以包括多层存储层,第一存储位置可以是数据处理设备102根据待处理数据的数据类型从数据存储区域中确定出一层用于存储该类型的数据的存储层。数据处理设备102将待处理数据存储到第一存储位置后,还可以进一步地对存储到第一存储位置的第一存储数据进行存储位置的转移,对于不同的第一存储位置,数据处理设备102将第一存储数据转移存储的策略可以不同,数据处理设备102可以根据第一存储位置对应的计算组件和存储周期,将第一存储数据存储到分布式文件系统中的第二存储位置,得到第二存储数据。其中,第二存储位置可以是数据存储区域中多层存储层中的特定层,该存储层可以用于存储清洗后的数据并永久存储数据。数据处理设备102可以根据第一存储位置的不同,选定不同的计算组件,并基于选定的计算组件,采用设定的存储周期将第一存储数据存储到上述第二存储位置,从而得到第二存储数据。
步骤S208,将第二存储数据发送至设置于电力量测系统的数据发布区域,以使电力量测系统中的业务应用通过预设接口访问数据发布区域中的第二存储数据。
其中,第二存储数据可以是存储在上述第二存储位置的计量数据。数据处理设备102还可以通过特定的策略对第二存储数据进行处理,从而数据处理设备102可以将第二存储数据进行共享,以使电力量测系统的业务应用对第二存储数据进行访问。例如,数据处理设备102可以设置于电力量测系统中,也可以是与电力量测系统相连接。数据处理设备102可以将第二存储数据发送至数据处理设备102中的数据发布区域,从而电力量测系统中的业务应用可以通过预设接口访问数据发布区域中的第二存储数据。其中,数据发布区域可以是数据处理设备102中的区域,该区域可以由多个不同种类的数据库组成,发布到这个区域的数据可以被其他业务应用通过设定的接口进行调用。例如,数据处理设备102可以将第二存储数据进行相应的统计、汇总后,连同第二存储数据、统计汇总的结果发送至数据发布区域,从而上述业务应用可以通过预设接口访问数据发布区域中的第二存储数据。
上述电力量测系统数据处理方法中,通过在接收到电力量测系统的待处理数据时,根据待处理数据的业务类型确定数据类型,并根据数据类型将待处理数据存储至分布式文件系统的数据存储区域中的第一存储位置,得到第一存储数据,并基于第一存储位置对应的计算组件和存储周期,将第一存储数据存储至分布式文件系统中的第二存储位置,得到第二存储数据,并将第二存储数据发送至设置于电力量测系统的数据发布区域,从而电力量测系统中的业务应用可以访问第二存储数据。相较于传统的通过Oracle架构的方式进行存储和处理的方式,本方案通过将不同类型的数据按照不同的存储策略进行存储,实现了对海量计量数据的精细化处理,提高了电力系统数据的处理合理性。
在一个实施例中,根据业务类型确定待处理数据的数据类型,包括:获取待处理数据在电力量测系统中对应的业务类型;若业务类型为非实时业务,确定待处理数据的数据类型为非实时数据;若业务类型为实时业务,确定待处理数据的数据类型为实时数据。
本实施例中,业务类型可以是待处理数据对应的电力设备处理的业务类型,业务类型包括非实时业务以及实时业务;则数据处理设备102可以根据待处理数据所属的业务类型确定待处理数据的数据类型。例如,数据处理设备102可以获取待处理数据在电力量测系统中对应的业务类型,若业务类型为非实时业务,则数据处理设备102确定待处理数据的数据类型为非实时数据;若业务类型为实时业务,则数据处理设备102可以确定待处理数据的数据类型为实时数据。其中,上述待处理数据可以是电力量测系统中的计量数据,则计量数据可以分为实时业务的计量数据和非实时业务的计量数据。上述数据处理设备102可以基于计量数据的业务类型对计量数据的数据类型进行判断。
通过本实施例,数据处理设备102可以根据待处理数据的业务类型确定待处理数据的数据类型,从而数据处理设备102可以对不同数据类型的待处理数据进行不同的处理方式,提高了电力系统数据的处理合理性。
在一个实施例中,根据数据类型将待处理数据存储至对应的第一存储位置,包括:若数据类型为非实时数据,通过Sparkstreaming计算组件读取待处理数据,并将待处理数据存储至数据准备层;数据准备层设置于分布式文件系统中;若数据类型为实时数据,通过Sparkstreaming计算组件和sparksql计算组件读取待处理数据并对待处理数据进行数据清洗,得到清洗数据,将清洗数据存储至redis内存数据库;redis内存数据库设置于分布式文件系统中;其中,数据准备层的数据存储时间小于redis内存数据库的数据存储时间。
本实施例中,数据处理设备102可以根据数据类型的不同对待处理数据进行相应的存储处理,从而确定待处理数据的第一存储位置。数据处理设备102可以在检测到待处理数据的数据类型为非实时数据时,通过Sparkstreaming计算组件读取待处理数据,并将待处理数据存储至数据准备层;其中,数据准备层可以是设置在数据处理设备102中的分布式文件系统的存储层。数据处理设备102还可以在检测到待处理数据的数据类型为实时数据时,通过Sparkstreaming计算组件和sparksql计算组件读取待处理数据并对待处理数据进行数据清洗,得到清洗数据,从而数据处理设备102可以将清洗数据存储至redis内存数据库;其中redis内存数据库可以是设置在上述分布式文件系统中的一个存储层。其中,数据准备层可以redis内存数据库中数据的存储时间可以不同,而数据准备层中的数据的存储时间小于redis内存数据库的数据存储时间。例如,数据准备层中可以存储原始采集数据,存储数据时间可以是三个月;redis内存数据库可以存储清洗后的数据,存储时间可以是永久存储。具体地,上述待处理数据可以是数据处理设备102对电力量测系统的报文数据解析后得到的原始采集数据,对于支撑非实时业务的原始采集数据,数据处理设备102可以使用Sparkstreaming实时读取消费kafka消息队列的原始采集数据,抽取到数据准备层存储;对于支撑实时业务的原始采集数据,数据处理设备102可以使用SparkStreaming+sparksql实时读取消费kafka消息队列的原始采集数据,并进行数据清洗,清洗数据存储于redis内存数据库存储。其中,SparkStreaming是一套框架,SparkStreaming是Spark核心API的一个扩展,可以实现高吞吐量的,具备容错机制的实时流数据处理。Spark Streaming接收Kafka、Flume、HDFS等各种来源的实时输入数据,进行处理后,处理结构保存在HDFS(HadoopDistributed File System,分布式文件系统)、DataBase等各种地方。SparkSQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。Spark SQL包含了对结构化数据和在其上运算的更多信息,Spark SQL使用这些信息进行了额外的优化,使对结构化数据的操作更加高效和方便。
通过本实施例,数据处理设备102可以根据待处理数据的数据类型采用不同的处理方式确定待处理数据的第一存储位置,从而提高了电力系统数据的处理合理性。
在一个实施例中,根据第一存储位置对应的计算组件和存储周期,将第一存储数据存储至分布式文件系统中的第二存储位置,包括:若第一存储位置为数据准备层,通过sparksql计算组件将第一存储数据实时存储至分布式文件系统中的细节数据层;细节数据层用于存储进行数据清洗后的数据和/或永久存储的数据;若第一存储位置为redis内存数据库,通过sparksql计算组件将第一存储数据按照预设存储周期定时存储至细节数据层。
本实施例中,数据处理设备102将待处理数据存储到第一存储位置,得到第一存储数据后,还可以将第一存储数据进一步存储到分布式文件系统中的第二存储位置。数据处理设备102可以基于第一存储位置的不同,采用不同的计算组件和不同的存储周期将第一存储数据进行存储。若第一存储位置为数据准备层,则数据处理设备102可以通过sparksql计算组件将第一存储数据实时存储到分布式文件系统中的细节存储层中,其中,细节存储层可以存储进行数据清洗后的数据,还可以用于存储永久存储的数据。若数据处理设备102检测到第一存储位置为redis内存数据库,则数据处理设备102可以通过调用sparksql计算组件将第一存储数据按照预设的存储周期定时存储至上述细节数据层。具体地,对于存储于redis内存数据库的采集数据,数据处理设备102可以使用sparksql以定期或者冻结方式存储于细节数据层;对于存储于数据准备层的原始采集数据,数据处理设备102可以通过sparksql实现存储于细节数据层。
通过本实施例,数据处理设备102可以根据第一存储位置的不同,将第一存储数据按照不同的方式存储到细节存储层,从而数据处理设备102可以基于细节存储层中的数据进行数据的共享,提高了电力系统数据的处理合理性。
在一个实施例中,将第二存储数据发送至数据处理设备中的数据发布区域之前,还包括:根据大规模并行分析数据库、CTSDB时序数据库以及redis内存数据库,得到数据发布区域。
本实施例中,数据处理设备102中可以设置有数据发布区域,数据发布区域可以由多个数据库构成。例如,数据处理设备102可以获取MPP(Analytical Massively ParallelProcessing,大规模并行分析)数据库、CTSDB(Cloud Time Series Database,云时序数据库)时序数据库和redis内存数据库,并基于这三个数据库构建数据发布区域,即数据发布区域中包含有上述的数据库。其中,MPP数据库是针对分析工作负载进行了优化的数据库:聚合和处理大型数据集。MPP数据库往往是列式的,因此MPP数据库通常将每一列存储为一个对象,而不是将表中的每一行存储为一个对象。这种体系结构使复杂的计量数据分析查询更快,更有效地处理。CTSDB是一种分布式、高性能、多分片、自均衡的时序数据库,针对时序数据的高并发写入、存在明显的冷热数据、IoT用户场景等做了大量优化,同时也支持对电力量测系统的计量数据的日志解析和存储。数据处理设备102得到上述数据发布区域后,可以将第二存储数据按照特定的处理方式传输至上述数据发布区域的各个数据库中,从而其他业务应用可以对第二存储数据进行访问。
通过本实施例,数据处理设备102可以基于多种数据库构建数据发布区域,从而可以通过数据发布区域共享第二存储数据,提高了电力系统数据的处理合理性。
在一个实施例中,将第二存储数据发送至数据处理设备中的数据发布区域,包括:通过sparksql计算组件从第二存储位置读取第二存储数据,并根据预设算法以及预设统计规则获取第二存储数据对应的统计结果数据和第二存储数据对应的报表数据;将第二存储数据、统计结果数据以及报表数据发送至数据发布区域中的大规模并行分析数据库、CTSDB时序数据库以及redis内存数据库中并存储。
本实施例中,数据处理设备102可以将上述第二存储数据发布至数据处理设备102中的数据发布区域,数据处理设备102还可以通过预设算法和预设统计规则对第二存储数据进行统计和汇总报表,得到相应的统计结果数据和报表数据,并且数据处理设备102还可以将上述第二存储数据、统计结果数据和报表数据发送至上述数据发布区域,例如数据处理设备102可以将上述各个数据发送至上述大规模并行分析数据库、CTSDB时序数据库以及redis内存数据库中进行数据发布。具体地,数据处理设备102的分布式文件系统中可以设置有主题数据层和报表数据层,主题数据层中可以存储加工后的统计结果数据,并永久存储数据;报表数据层可以存储汇总后形成的报表,并可以永久存储数据。数据处理设备102可以通过sparksql计算组件加载细节数据层和主题数据层,经过相应的算法,离线计算成统计结果数据和报表数据,分别存储于主题数据层和报表数据层。从而数据处理设备102可以通过sparksql加载细节数据层、主题数据层和报表数据层到数据发布区域中各数据库进行数据发布;数据处理设备102将数据进行发布后,数据处理设备102可以使用数据服务组件提供访问发布区数据的API、SFTP访问接口;从而电力量测系统的各业务应用可以通过调用API接口和SFTP(Secure File Transfer Protocol,文件加密传输协议)接口,实现对发布区数据的访问。
通过本实施例,数据处理设备102可以基于数据发布区域对第二存储数据进行数据发布,从而电力量测系统中的业务应用可以对第二存储数据进行访问,提高了电力系统数据的处理合理性。
在一个实施例中,如图3所示,图3为另一个实施例中电力量测系统数据处理方法的流程示意图。其中,数据处理设备102中可以设置有多个组件,以实现数据采集、存储和发布等步骤。例如,数据处理设备102中的消息队列组件可以是kafka组件,存储组件选择HDFS、MPP数据库、Redis内存数据库、CTSDB时序库,计算组件选择sparkstreaming计算组件和sparksql计算组件,数据服务组件选择API restful组件和SFTP组件。对于数据存储,数据处理设备102可以将数据存储划分为数据准备层、细节数据层、主题数据层、报表数据层。数据准备层存储原始采集数据,存储数据的时间为3个月;细节数据层存储清洗后的数据,永久存储数据;主题数据层存储加工后的统计结果数据,永久存储数据;报表数据层存储数据汇总后形成的报表,永久存储数据。数据处理设备102可以在数据发布区域使用MPP数据库、redis数据库和CTSDB时序库实现共享数据的存储,MPP数据库存储不需高并发和实时访问的统计结果数据,redis存储需高并发和实时访问的统计结果数据,CTSDB时序存储清洗后的采集明细数据。
具体地,数据处理设备102对电力量测系统的数据进行存储和处理的包括如下步骤:①数据采集前置将报文数据解析后,数据处理设备102将解析后的原始采集数据推送至kafka消息队列,等待消费处理;②对于支撑非实时业务的原始采集数据,数据处理设备102使用Sparkstreaming实时消费kafka消息队列的原始采集数据,抽取到数据准备层存储;对于支撑实时业务的原始采集数据,数据处理设备102使用SparkStreaming+sparksql实时消费kafka消息队列的原始采集数据,并进行数据清洗,清洗数据存储于redis内存数据库存储;③存储于redis内存数据库的采集数据,数据处理设备102使用sparksql以定期或者冻结方式存储于细节数据层;④存储于数据准备层的原始采集数据,数据处理设备102通过sparksql实现存储于细节数据层;⑤数据处理设备102还可以通过sparksql加载细节数据层和主题数据层,经过相应的算法,离线计算成统计结果数据和报表数据,分别存储于主题数据层和报表数据层;⑥数据处理设备102可以通过sparksql加载细节数据层、主题数据层和报表数据层到发布区各数据库进行数据发布;⑦数据处理设备102可以使用数据服务组件提供访问发布区数据的API、SFTP访问接口;⑧各业务应用通过调用API接口和SFTP接口,实现对发布区数据的访问。
通过上述实施例,数据处理设备102可以将不同类型的数据按照不同的存储策略进行存储,实现了对海量计量数据的精细化处理,提高了电力系统数据的处理合理性。并且,数据处理设备102通过对数据按不同区域存储,不同区域的数据设置不同存储时间策略,按业务实时性要求设计不同的数据处理路径,实现了对海量计量数据的精细化存储管理,同时能够支撑智能量测系统主站对不同时效性应用的数据处理需求。
应该理解的是,虽然图2-图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种电力量测系统数据处理装置,包括:获取模块500、第一存储模块502、第二存储模块504和访问模块506,其中:
获取模块500,用于接收到电力量测系统的待处理数据,获取待处理数据对应的业务类型。
第一存储模块502,用于根据业务类型确定待处理数据的数据类型,并根据数据类型将待处理数据存储至对应的第一存储位置,得到第一存储数据;第一存储位置设置于分布式文件系统的数据存储区域中;数据存储区域包括存储时间不同的多个存储位置。
第二存储模块504,用于根据第一存储位置对应的计算组件和存储周期,将第一存储数据存储至分布式文件系统中的第二存储位置,得到第二存储数据。
访问模块506,用于将第二存储数据发送至数据处理设备中的数据发布区域,以使电力量测系统中的业务应用通过预设接口访问数据发布区域中的第二存储数据。
在一个实施例中,上述获取模块500,具体用于获取电力量测系统的报文数据,将报文数据进行解析,得到原始采集数据;通过卡夫卡消息队列接收原始采集数据,作为待处理数据。
在一个实施例中,上述第一存储模块502,具体用于获取待处理数据在电力量测系统中对应的业务类型;若业务类型为非实时业务,确定待处理数据的数据类型为非实时数据;若业务类型为实时业务,确定待处理数据的数据类型为实时数据。
在一个实施例中,上述第一存储模块502,具体用于若数据类型为非实时数据,通过Sparkstreaming计算组件读取待处理数据,并将待处理数据存储至数据准备层;数据准备层设置于分布式文件系统中;若数据类型为实时数据,通过Sparkstreaming计算组件和sparksql计算组件读取待处理数据并对待处理数据进行数据清洗,得到清洗数据,将清洗数据存储至redis内存数据库;redis内存数据库设置于分布式文件系统中;其中,数据准备层的数据存储时间小于redis内存数据库的数据存储时间。
在一个实施例中,上述第二存储模块504,具体用于若第一存储位置为数据准备层,通过sparksql计算组件将第一存储数据实时存储至分布式文件系统中的细节数据层;细节数据层用于存储进行数据清洗后的数据和/或永久存储的数据;若第一存储位置为redis内存数据库,通过sparksql计算组件将第一存储数据按照预设存储周期定时存储至细节数据层。
在一个实施例中,上述装置还包括:构建模块,用于根据大规模并行分析数据库、CTSDB时序数据库以及redis内存数据库,得到数据发布区域。
在一个实施例中,上述访问模块506,具体用于通过sparksql计算组件从第二存储位置读取第二存储数据,并根据预设算法以及预设统计规则获取第二存储数据对应的统计结果数据和第二存储数据对应的报表数据;将第二存储数据、统计结果数据以及报表数据发送至数据发布区域中的大规模并行分析数据库、CTSDB时序数据库以及redis内存数据库中并存储。
关于电力量测系统数据处理装置的具体限定可以参见上文中对于电力量测系统数据处理方法的限定,在此不再赘述。上述电力量测系统数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是数据处理设备,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的数据处理设备进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种电力量测系统数据处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述的电力量测系统数据处理方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的电力量测系统数据处理方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。