一种基于分布存储和并行计算的电网数据质量检测方法
【专利摘要】本发明公开了一种基于分布存储和并行计算的电网数据质量检测方法,包括以下步骤:采用HBase存储原始数据记录;采用HBase对校验规则涉及到的字段建立查询索引;采用HBase对原始数据记录建立时间戳索引,以便支持增量数据质量校验和细时间粒度的数据质量校验;采用HDFS存储数据记录的辅助索引文件和操作日志文件,以便全量历史数据质量校验时能够快速加载校验数据,提升校验性能;采用基于MapReduce的校验规则并行化处理,通过规则并行化处理提升校验性能。本发明解决了现有的基于关系数据库系统的电网数据质量检测方法可扩展性差,校验延时大,系统性价比低的问题。
【专利说明】—种基于分布存储和并行计算的电网数据质量检测方法
【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种基于分布存储和并行计算的电网数据质量检测方法,该方法高效可扩展。
【背景技术】
[0002]传统的关系数据管理系统追求高度的一致性和正确性,在面向海量数据的分析需求时,采用纵向扩展(scale up)的方法,即通过升级硬件(CPU、内存、硬盘等)提升单个节点的能力,使其可扩展性和性能受到了很大的限制。
[0003]随着电网业务数据规模和数据质量监控规则复杂度的不断增大,目前现有的基于传统数据管理和计算平台的数据质量监控系统的处理能力出现严重的瓶颈,难以快速完成数据质量的监控和校验,越来越难以满足日常的生产管理和经营决策的需求。
【发明内容】
[0004]发明目的:针对上述现有技术存在的问题和不足,本发明的目的是提供一种基于分布存储和并行处理的电网数据质量检测方法,解决了现有的基于关系数据库系统方法的计算延时大,难于扩展,系统性价比低的问题。
[0005]技术方案:为实现上述发明目的,本发明米用的技术方案为一种基于分布存储和并行处理的电网数据质量检测方法,包括以下步骤:
(1)采用一种分布存储方法对所有原始数据记录进行存储;
(2)采用基于非主键的索引方法对校验字段进行索引,校验时根据校验规则涉及的校验字段查找索引表,获取对应的原始数据记录主键,再根据获取到的原始数据记录表主键查找原始数据记录表获取原始数据记录,然后提取比对字段进行比对;
(3)采用HBase对原始数据记录建立时间戳索引,在增量数据质量校验或者基于时间窗口的细时间粒度的数据质量校验时,根据时间戳范围查询原始数据记录表,确定需校验的数据范围后进行校验;
(4)采用HDFS存储数据记录的辅助索引文件和操作日志文件,以便全量原始数据质量校验时能够快速加载校验数据,提升校验性能,在全量原始数据质量校验时,将辅助索引文件读入内存,读取操作日志应用到内存索引上,然后基于内存索引进行校验;
(5)采用基于MapReduce的并行化方式完成校验规则的快速执行。
[0006]进一步地,所述分布存储方法为基于HBase的分布存储方法,可支持海量校验数据的存储,并能根据需求方便扩展。进一步地,所述校验规则为基于MapReduce的并行化校验规则。可以根据校验数据量和校验规则数量方便扩展,响应性能可控,性价比高。进一步地,所述步骤(2)中,采用基于非主键索引的方法对校验字段进行索引,以便实现基于非主键字段的校验规则查询处理。
[0007]进一步地,所述步骤(2)中,校验字段是原始数据记录主键或者任意属性列;比对字段是与所述校验字段对应的某一字段,可以是校验字段本身或者其它字段。
[0008]进一步地,所述步骤(3)中,对原始数据记录建立时间戳索引,在增量数据质量校验或者基于时间窗口的细时间粒度数据质量校验时,根据时间戳索引查询时间戳索引表以获取原始数据记录主键,再查询原始数据记录表以获取原始数据记录进行校验。
[0009]进一步地,所述步骤(4)中,为全量原始数据建立HDFS辅助索引文件,为增量数据建立操作日志,在全量历史数据校验时,读取HDFS辅助索引文件到内存,将操作日志应用到内存索引上,然后基于内存索引进行校验。
[0010]进一步地,所述步骤(5)中,对所有的校验规则建立指示文件,指示文件内容包含所有执行校验规则需要的参数,包括规则名称,规则执行逻辑标识,输入数据表,输出数据表等参数,Map任务读取相应的指示文件,获取执行相应校验规则需要的参数,调用相应的处理逻辑进行校验。
[0011 ] 更进一步地,所述步骤(5 )中,每个指示文件对应一条或者多条校验规则,校验规则的执行参数写在指示文件中,所述执行参数包括校验规则名称,规则执行逻辑表示,输入数据表,输出数据表等参数。
[0012]更进一步地,所述步骤(5)中,每个指示文件由一个Map任务处理,
有益效果:
本发明能够高效可扩展地进行电网数据质量的检测:第一,将电网数据进行分布存储,使系统具有良好的可扩展性;第二,通过为校验规则涉及的字段建立辅助查询索引,以支持校验规则执行时进行高效查询处理;第三,设计了一个基于MapReduce的校验规则并行处理方法,使得每条校验规则都可以并行化处理,有效提升了系统响应性能。
【专利附图】
【附图说明】
[0013]图1为本发明的方法总体示意图;
图2为本发明中增量数据存储与索引示意图;
图3为本发明中批量历史数据存储与索引示意图;
图4为本发明中规则并行化处理示意图。
【具体实施方式】
[0014]下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0015]HBase是Hadoop生态环境中的一个分布式存储系统。针对分布式文件系统HDFS缺少结构化半结构化数据存储访问和随机读写能力的缺陷,在HDFS (Hadoop DistributedFile System,即Hadoop分布式文件系统)之上,HBase提供了一个分布式数据管理系统,解决大规模的结构化和半结构化数据存储访问问题。HBase提供基于列存储模式的大数据表管理能力,可存储管理数十亿以上的数据记录,每个记录可包含百万以上的数据列;HBase试图提供随机和实时的数据读写访问能力,并具有高可扩展性、高可用性、容错处理能力、负载平衡能力、以及实时数据查询能力。
[0016]HBase的底层数据是存储在HDFS中的,因而HBase是完全依赖于底层的HDFS工作的。由于HDFS采用了良好了数据多副本存储机制、以及强大的数据节点出错检测和节点失效恢复机制,基于HDFS的HBase在数据存储时自然继承了 HDFS的这种数据存储的高可靠性和容错处理能力。
[0017]Hadoop MapReduce提供了一个庞大但设计精良的分布式数据存储和并行计算软件构架,能自动完成分布式海量数据的存储管理,能自动划分计算数据并调度计算任务,在集群节点上自动分配和执行子任务以及收集计算结果,将数据分布存储、数据通信、容错处理等并行计算中的很多复杂细节交由系统负责处理,大大减少了软件开发人员的负担。
[0018]本发明采用分布数据存储和管理系统HBase存储数据,将原始数据记录存储到HBase中,以便根据主键快速查询访问;为校验规则涉及的校验字段建立查询索引,以便根据校验字段值快速查询访问;为原始数据记录建立基于时间戳的辅助索引,支持基于时间窗口的数据质量校验;对于历史积累的全量数据,同时建立索引文件存储在分布式文件系统HDFS上,以便进行批量数据质量校验时快速加载,避免了对HBase的全表扫描;而对于实时流入的增量数据建立操作日志,解决了数据记录增加、删除、修改时索引文件的维护问题,定时地合并操作日志和索引文件,降低批量数据质量校验时的合并开销;采用校验规则的并行化执行,一个并行任务处理一条至多条校验规则。
[0019]将批量数据进行存储和索引的流程包括以下步骤:
(1)将待校验的CSV格式的基准数据表和比对数据表存入HBase中,原始数据记录主键作为HBase表的主键,原始数据记录的非主键属性作为HBase表的一列,不同的列属于不同的列族,利用HBase的面向列存储(同一列族的数据统一存储)提高查询某列数据时的响应?生倉泛;
(2)将基于校验规则校验字段的查询索引表存入HBase中,校验字段作为HBase查询索引表的主键,原始数据记录主键作为查询索引表的列名,所有主键属于同一个列族,采用这种数据模式方便对查询索引表记录的增加、删除、修改和查询;
(3)将基于数据记录时间戳的查询索引表存入HBase中,数据记录时间戳作为HBase查询索引表的主键,原始数据记录主键作为查询索引表的列值存储。
[0020](4)将基于校验规则校验字段的查询索引表存入HBase中时,同时将查询索引表存入HDFS的索引文件中。
[0021]将增量数据进行存储和索引的流程包括以下步骤:
(1)将增量数据记录插入HBase的原始数据记录表中;
(2)将增量数据记录的基于校验规则校验字段的查询索引插入HBase的查询索引中;
(3)将增量数据记录的基于数据记录时间戳的查询索引表插入HBase的辅助索引中;
(4)将增量数据记录的操作日志追加到HDFS上的操作日志文件中。
[0022]将操作日志合并到索引文件的流程包括以下步骤:
(1)读取HDFS上的索引文件到内存中;
(2)读取HDFS上操作日志文件,逐一将操作应用到内存索引中;
(3)将内存索引重新写入到HDFS上的索引文件中;
(4)删除HDFS上的操作日志文件。
[0023]并行化校验规则处理流程:
(1)将校验类型,校验时间戳范围写入到配置文件中;
(2)启动MapReduce作业开始执行数据质量校验; (3)每个Map任务读取一个指示文件,获取规则名称,规则执行逻辑标识,输入数据表,输出数据表等参数;并且读取配置文件中的校验类型和校验范围时间戳;
(4)对于批量校验,根据批量数据单规则校验流程进行校验;
(5)对于基于时间窗口的校验,根据时间戳范围进行增量数据单规则校验流程进行校验。
[0024]批量数据单规则校验流程:
(1)读取HDFS上的查询索引表到内存,读取操作日志将其应用到内存中的查询索引表,删除操作日志文件;
(2)遍历内存中的查询索引表进行规则校验。
[0025]增量数据单规则校验流程:
(1)根据起始时间戳和终止时间戳,查询时间戳索引表,获取时间增量时间窗口内的所有记录ID ;查询原始数据记录表,获取相应的校验字段集合;
(2)根据校验字段集合内的字段值,查询辅助索引表,获取比对字段值进行校验。
[0026]如图2所示,本发明所涉及到的分布存储和索引方法的实施方式为:为了完成对大量数据记录和大量校验规则的快速处理,除了将原数据表存储到HBase中之外,我们需要针对校验规则所涉及到的字段,设计专门的快速数据索引表并存储到HBase中。例如,在原数据表I和表2中,主键(rowkey字段)为各个记录的ID。如果需要对原数据表I的A字段(记为字段A)和原数据表2的B字段(记为字段B)进行校验,那么我们需要分别建立字段A和字段B的索引表以在校验的时候快速查找。为了实现基于时间窗口的增量数据质量校验和细时间粒度的数据质量校验,为原始数据记录表建立了时间戳查询索引,以便根据时间戳范围界定进行质量校验的数据范围。如图3所示,为了提升全量历史数据的质量校验性能,为数据记录表建立辅助HDFS索引文件和操作日志,以便在全量数据校验时快速加载校验数据到内存中进行校验。
[0027]本发明中针对校验规则的并行化处理的实施方式为:为了完成对大量数据记录和大量校验规则的快速处理,采用基于MapReduce的并行化执行机制。如图4所示:我们首先将各个校验规则的ID和参数等写入到一个个独立的HDFS文件中(称为指示文件),MapReduce作业中包含了所有的这些校验规则的处理模块的实现。根据Hadoop MapReduce的默认运行机制,每个Map任务只会读取一个指示文件并进行处理,这里我们具体的处理模块的选择则由该任务所读取的指示文件决定。
[0028]通过这种方法就能使得集群中所有的Map节点在并发地执行不同的校验规则。如果执行过程中有失效发生,Hadoop MapReduce会自动地在其他节点启动新的Map任务来重新尝试执行这些校验规则。整个并行过程的负载均衡和容错等问题都由Hadoop MapReduce框架一并解决了。
[0029]本发明基于已有的一些开源软件实现了一个原型系统。其中分布存储和索引采用HBase、校验规则并行化处理采用HDFS和MapReduce,这三个软件不属于本发明的内容。通过使用现实电网业务数据和校验规则对本发明实现的原型系统和现有的关系数据管理系统进行测试对比,本发明实现的原型系统在响应性能,可扩展性优于传统关系数据管理系统,证明了本发明的基于分布存储和并行处理的电网数据质量检测方法的有效性。
【权利要求】
1.一种基于分布存储和并行计算的电网数据质量检测方法,包括以下步骤: (1)采用一种分布存储方法对所有原始数据记录进行存储; (2)采用基于非主键的索引方法对校验字段进行索引,校验时根据校验规则涉及的校验字段查找索引表,获取对应的原始数据记录主键,再根据获取到的原始数据记录主键查找原始数据记录表获取原始数据记录,然后提取比对字段进行比对; (3)采用HBase对原始数据记录建立时间戳索引,在增量数据质量校验或者基于时间窗口的细时间粒度的数据质量校验时,根据时间戳范围查询原始数据记录表,确定需校验的数据范围后进行校验; (4)采用HDFS存储数据记录的辅助索引文件和操作日志文件,在全量原始数据质量校验时,将辅助索引文件读入内存,读取操作日志应用到内存索引上,然后基于内存索引进行校验; (5)采用基于MapReduce的并行化方式完成校验规则的快速执行。
2.根据权利要求1所述一种基于分布存储和并行计算的电网数据质量检测方法,其特征在于:所述分布存储方法为基于HBase的分布存储方法。
3.根据权利要求1所述一种基于分布存储和并行计算的电网数据质量检测方法,其特征在于:所述校验规则为基于MapReduce的并行化校验规则。
4.根据权利要求1所述一种基于分布存储和并行计算的电网数据质量检测方法,其特征在于:所述步骤(2)中,采用基于非主键索引的方法对校验字段进行索引。
5.根据权利要求1所述一种基于分布存储和并行计算的电网数据质量检测方法,其特征在于:所述步骤(2)中,校验字段是原始数据记录主键或者任意属性列;比对字段是与所述校验字段对应的某一字段。
6.根据权利要求1所述一种基于分布存储和并行计算的电网数据质量检测方法,其特征在于:所述步骤(3)中,对原始数据记录建立时间戳索引,在增量数据质量校验或者基于时间窗口的细时间粒度数据质量校验时,根据时间戳索引查询时间戳索引表以获取原始数据记录主键,再查询原始数据记录表以获取原始数据记录进行校验。
7.根据权利要求1所述一种基于分布存储和并行计算的电网数据质量检测方法,其特征在于:所述步骤(4)中,为全量原始数据建立HDFS辅助索引文件,为增量数据建立操作日志,在全量历史数据校验时,读取HDFS辅助索引文件到内存,将操作日志应用到内存索引上,然后基于内存索引进行校验。
8.根据权利要求1所述一种基于分布存储和并行计算的电网数据质量检测方法,其特征在于:所述步骤(5)中,对所有的校验规则建立指示文件,Map任务读取相应的指示文件,获取执行相应校验规则需要的参数,调用相应的处理逻辑进行校验。
9.根据权利要求8所述一种基于分布存储和并行计算的电网数据质量检测方法,其特征在于:所述步骤(5)中,每个指示文件对应一条或者多条校验规则,校验规则的执行参数写在指示文件中。
10.根据权利要求8所述一种基于分布存储和并行计算的电网数据质量检测方法,其特征在于:所述步骤(5)中,每个指示文件由一个Map任务处理。
【文档编号】G06F17/30GK104391903SQ201410647792
【公开日】2015年3月4日 申请日期:2014年11月14日 优先权日:2014年11月14日
【发明者】陈承志, 龙庆麟, 梁国辉, 黄宜华, 顾荣, 杨滨诚 申请人:广州科腾信息技术有限公司, 南京大学