一种公共区域卫生平台质控系统及方法
文献发布时间:2023-06-19 10:38:35
技术领域
本发明涉及公共区域卫生平台数据质控领域,尤其涉及一种公共区域卫生平台质控系统及方法。
背景技术
目前区域卫生平台数据质量控制的方式,通过读取源数据的行数据,同时读取事先配置好的质控规则对每一行每一个字段做规则校验。质控规则与源数据目前的处理方式分两类,一类即通过存储过程,把质控规则配置到SQL语句中,在数据的查询过程中完成数据质控,输出质控表结构。该方式,把质控规则写入到SQL语句中,大大增加了质控计算复杂度,因其SQL的复杂度导致对数据库所在环境的硬件IO读写要求比较高。且质控规则杂乱混乱,维护成本大。
另一种方式,读取源数据,把质控规则读取到内存中,通过内存计算完成数据质控规则校验。而该方式,增加了数据的计算性能,但对数据的内存要求比较大,增加了硬件成本和门槛,同时因其只增加了数据的计算性能,对计算结果的写的性能没有科学的方式控制,导致了计算性能结果即使完成,但不能及时写到结果库中做展示。
无论哪种方式,均在数据量庞大,硬件资源有限的情况下难以直观迅速、高效的把质控结果输出到前端页面做展示,在质控场景下硬件成为计算瓶颈,往往面临着几十甚至上百小时的源数据的质控校验,最后再完成质控结果的输出。
发明内容
本发明提供了一种公共区域卫生平台质控系统及方法,以解决现有公共区域卫生平台质控方案在数据量庞大、硬件资源有限的情况下难以直观迅速、高效的把质控结果输出的问题。
第一方面,提供了一种公共区域卫生平台质控系统,包括列式存储数据库、数据读取器、质控计算器、数据存储器及配置器;
所述列式存储数据库用于将输入的源数据转换为列式存储;
所述配置器用于保存质控规则编码与所述质控计算器中质控规则算法的配置信息,以及用于将质控规则与列式存储数据库的数据表中的字段配置起来形成(规则集,数据集)的配置关系;
所述数据读取器用于从所述配置器读取配置,进行质控规则和字段的映射;以及用于分批次读取列式存储数据库中的数据,并传输至所述质控计算器;
所述质控计算器包括若干质控规则算法,其用于接收所述数据读取器输入的数据并进行数据的质控校验,得到质控结果并传输至所述数据存储器;
所述数据存储器接于接收所述质控计算器输出的质控结果数据,并根据质控规则维度和列式存储数据库中的表维度将质控结果数据按质控规则拆分后输出。
进一步地,还包括流控器,其用于根据所述数据读取器、质控计算器、数据存储器三者中每单位时间最小处理数据的能力平衡三者之间的吞吐量。
进一步地,所述配置器包括规则映射配置器和规则-数据集配置器;
所述规则映射配置器用于保存质控规则编码与所述质控计算器中质控规则算法的配置信息;
所述规则-数据集配置器用于将所述规则映射配置器配置的质控规则与列式存储数据库的数据表中的字段配置起来形成(规则集,数据集)的配置关系。
进一步地,所述数据读取器还包括内部寄存器,用于将保存传输至所述质控计算器的数据位置。
进一步地,所述数据读取器用于根据所述流控器的输入决定每批次读取数据的多少。
进一步地,所述质控计算器还保存有质控规则算法编码及质控规则算法的配置信息。
进一步地,所述数据存储器根据质控规则维度和列式存储数据库中的表维度将质控结果数据按质控规则拆分后输出,包括:
所述数据存储器存储质控结果数据;
按批次合并质控结果数据;
按质控规则拆分合并的质控结果数据;
按质控规则合并同一列式存储数据库的数据表中数据集数据。
进一步地,还包括质控结果数据库和显示器,所述质控结果数据库用于接收并保存所述数据存储器输出的质控结果数据,所述显示器用于将所述质控结果数据进行实时展示。
第二方面,提供了一种公共区域卫生平台质控方法,使用如上所述的公共区域卫生平台质控系统进行质控,包括如下步骤:
通过ETL工具,将源数据的结构化数据转换成列式存储列式存储数据库中;
配置器初始化,读取配置信息;
流控器计算数据读取器的最小读取速度、质控计算器的最小计算速度、数据存储器的最小写入速度,取三者的最小值VolumeUnit;
数据读取器根据配置器的配置信息与读取速度VolumeUnit结合读取列式存储数据库中的数据,并将读取的数据传输至质控计算器中;
质控计算器将输入的数据做质控校验,输出质控结果;
数据存储器接收质控结果并根据质控规则维度和列式存储数据库中的表维度将质控结果数据按质控规则拆分后输出。
进一步地,所述质控计算器将输入的数据结合Spark矩阵计算做质控校验。引入Spark的矩阵计算,利用Spark底层的RDD特性,能够把每个计算动态的分解成一个个小的计算,这样充分的利用了大数据系统的分布式特性,能够方便的扩展整个系统的计算能力和速度。
有益效果
本发明提出了一种公共区域卫生平台质控系统及方法,具有如下优点:
(1)引入列式存储,大大增加了读写能力。以往行式存储系统,每读一次数据都要把整行字段读入,而在SQL语法中需要做大量的条件判断,造成SQL维护成本居高不下,为了降低SQL成本,读取整行数据,又造成性能的大大降低(因为质控校验一般只针对单个字段做质控规则算法计算,而整行数据的读取计算,带来了大量不需要计算的字段霸占在内存中,浪费计算资源的同时,降低了计算速度)。
(2)质控处理速度动态可调整,避免数据丢失或系统崩溃。以往质控处理,读取多少数据处理多少数据,而系统内部往往出现读写速度、数据计算速度不一致的情况。导致在某些环节数据一直在积压。在数据量巨大的情况下,往往会造成无法预知的数据丢失与系统崩溃,最终导致质控结果不尽如人意。
(3)交互更加友好,以往的质控计算,只有当所有的数据结果计算完成才能整体加载到前端页面展示,页面加载也需要几分钟,造成展示效果及不友好。本方案能够将计算的质控结果实时的传递到前端页面,页面动态的展示质控结果,交互更加优雅。
(4)解决现有公共区域卫生平台质控方案在数据量庞大、硬件资源有限的情况下难以直观迅速、高效的把质控结果输出的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种公共区域卫生平台质控系统的结构示意图;
图2是本发明实施例提供的将源数据转换为列式存储的示意图;
图3是本发明实施例提供的(规则集,数据集)的配置关系示意图;
图4是本发明实施例提供的数据读取器的读取流程图;
图5是本发明实施例提供的质控计算器存储的数据示意图;
图6是本发明实施例提供的源数据的示意图;
图7是本发明实施例提供的数据存储器的处理过程示例。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
实施例1
如图1所示,本实施例提供了一种公共区域卫生平台质控系统,包括列式存储数据库、数据读取器、质控计算器、数据存储器、流控器及配置器。下面结合附图对本系统做进一步地说明。
列式存储数据库,为基于HBase的存储方式。通过ETL方式,将源数据转换为列式存储。存储结构转换,如图2所示。转换为列式存储数据,提高查询效率。数据质控,最小维度为字段,转换为列式存储方式,能够在数据做联合查询的时候,最大程度的剔除掉无效数据,在数据量庞大的质控场景,大大提升了数据的查询效率。
配置器包括规则映射配置器以及规则-数据集配置器。规则映射配置器,用于保存质控规则编码与质控计算器中的质控规则算法的配置信息。例如,将质控计算器中的字段判空算法NullSegment在规则映射配置器中配Rule1。规则-数据集配置器,用于将规则映射器配置的质控规则与数据表中的字段配置起来,形成(Rules,DataSet)这种(规则集,数据集)的配置关系,需要指出的是,数据质控规则和表字段是多对一的关系,如图3所示。其中,质控规则算法均为现有技术,在此不再赘述。
数据读取器,批量读取列式存储数据库数据。主要完成四个工作,从配置器读取配置,将质控规则集与数据集映射成(规则集,数据集)的关系,做好质控规则和字段的映射;根据流控器的输入,决定每批次读取数据的多少;数据读取器且根据后续节点单元的处理能力,有序的把数据传输到下一步;数据读取器包括内部寄存器,将已经传入到质控计算器的数据位置保存在数据读取器的内部寄存器中。数据读取器的读取流程如图4所示。
质控计算器,其内部由一个个质控规则算法组成。质控计算器本身还需要把以算法单元为单位的不同算法单元组合起来。接收由数据读取器输入的数据,一起完成算法计算,输出质控结果到数据存储器中。质控规则算法编码与质控规则算法的配置信息也保存在质控计算器中,如图5所示。
数据存储器,按质控规则维度和表维度,组织数据并写入到结果数据库中。原始数据假设有三个表分别是表A、表B、表D,表A中有两个字段分别用字段1和字段2表示,对应其数据分别为数据集1和数据集2,同样的表B有数据集1,表D有数据集1,如图6所示。又有三个规则分别是规则1、规则2、规则3。
同时,现在有规则1、规则2、规则3。在配置器中实现配置好规则1、规则2、规则3分别应用在图6中表中数据集。即(R1R2R3,DataSetA1)、(R1R2R3,DataSetA2)、(R1R2R3,DataSetB1)、(R1R2R3,DataSetC1)。数据读取器按上述规则分批次读取数据,经过质控规则计算后,分别按批次传入到数据存储器中。
数据存储器按如下过程拆分数据并存储数据,如图7中示例所示,
步骤一,所述数据存储器存储质控结果数据;
步骤二,按批次合并质控结果数据;数据存储器中可缓存数据量到达预设数量时,触发合并;
步骤三,按质控规则拆分合并的质控结果数据;
步骤四,按质控规则合并同一列式存储数据库的数据表中数据集数据。
完成上述四个步骤后,再写入到质控结果数据库中。
流控器,读取器的最小读取速度、质控计算器的最小计算速度、数据存储器的最小写入速度,根据三者最小处理数据的能力,平衡三者之间的吞吐量,确保整个读计算写过程的数据量不会积压过度,而导致系统超时崩溃。
实施例2
本实施例提供了提供了一种公共区域卫生平台质控方法,使用如实施例1所述的公共区域卫生平台质控系统进行质控,包括如下步骤:
通过ETL工具,将源数据的结构化数据转换成列式存储列式存储数据库中;
配置器初始化,读取配置信息;包括配置一,读取质控计算器中质控算法的映射规则配置;配置二,读取各表、各字段与质控规则集的映射关系;
流控器计算数据读取器的最小读取速度、质控计算器的最小计算速度、数据存储器的最小写入速度,取三者的最小值VolumeUnit;
数据读取器根据配置器的配置信息与读取速度VolumeUnit结合读取列式存储数据库中的数据,并将读取的数据传输至质控计算器中;
质控计算器将输入的数据做质控校验,输出质控结果;
数据存储器接收质控结果并根据质控规则维度和列式存储数据库中的表维度将质控结果数据按质控规则拆分后输出。
优选地,所述质控计算器将输入的数据结合Spark矩阵计算做质控校验。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
上述实施例提供的一种公共区域卫生平台质控系统及方法,具有如下优点:
(1)引入列式存储,大大增加了读写能力。以往行式存储系统,每读一次数据都要把整行字段读入,而在SQL语法中需要做大量的条件判断,造成SQL维护成本居高不下,为了降低SQL成本,读取整行数据,又造成性能的大大降低(因为质控校验一般只针对单个字段做质控规则算法计算,而整行数据的读取计算,带来了大量不需要计算的字段霸占在内存中,浪费计算资源的同时,降低了计算速度)。
(2)质控处理速度动态可调整,避免数据丢失或系统崩溃。以往质控处理,读取多少数据处理多少数据,而系统内部往往出现读写速度、数据计算速度不一致的情况。导致在某些环节数据一直在积压。在数据量巨大的情况下,往往会造成无法预知的数据丢失与系统崩溃,最终导致质控结果不尽如人意。
(3)引入Spark的矩阵计算,利用Spark底层的RDD特性,能够把每个计算动态的分解成一个个小的计算,这样充分的利用了大数据系统的分布式特性,能够方便的扩展整个系统的计算能力和速度。
(4)交互更加友好,以往的质控计算,只有当所有的数据结果计算完成才能整体加载到前端页面展示,页面加载也需要几分钟,造成展示效果及不友好。本方案能够将计算的质控结果实时的传递到前端页面,页面动态的展示质控结果,交互更加优雅。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
- 一种公共区域卫生平台质控系统及方法
- 一种公共卫生服务质控方法及系统