本发明涉及多系统数据共享,具体涉及一种海量主数据融合方法及装置。
背景技术:
1、主数据(master data)是指在企业或组织中被广泛使用并且需要在多个系统之间共享和一致的数据。主数据通常包括关键业务实体的信息,如客户、产品、供应商、员工、人口和地点等。这些数据在企业的运营、决策和分析中起着至关重要的作用。传统的主数据管理方法是先构建一个主数据管理系统,然后在该系统中维护完整的主数据内容,各业务系统或子单位系统直接引用或同步这些主数据,这是一种自顶向下、提前维护的模式。
2、然而,随着信息技术的发展和数据量的爆炸性增长,各业务系统先于主数据管理系统建设和使用,或者没有建设主数据管理系统,各行各业系统积累了大量的主数据。这些主数据通常分散在不同的数据源中,存在数据格式不统一、数据内容不一致、数据质量参差不齐、数据冗余等问题。将不同来源的数据,按照一定规则融合成一份统一的高质量主数据,称之为自底向上的主数据融合模式。
3、在大数据处理和分析领域,需要从各个数据源中采集数据到数据仓库,并将同一主体的数据融合成一份统一的主数据,以便正确开展数据画像、统计分析、指导决策等应用。因此,如何高效地融合和管理这些主数据,成为了当前大数据处理领域的一个重要课题。
4、业界实现自底向上的主数据融合,主要有以下几种方式:
5、基于数据库存储过程计算方法。各数据源的数据采集到数据仓库后,由数据开发人员根据数据融合规则编写存储过程,定时触发运行该存储过程,以批计算的方式完成数据的融合。该方法存在以下局限和缺点:
6、1)开发成本高。通过sql编写循环、逻辑判断等功能非常复杂,并且随着融合的字段和来源表数量增多,存储过程体量非常大,通常多达几千行的sql脚本,对开发人员能力要求高,并且时间越长越难以维护;2)执行效率低。在数据库中执行循环计算时,占用的内存较高,特别是在数据量大且融合的表和字段数量多的情况下,会占用更多的cpu和内存等计算资源。完成一个主数据表的融合计算可能需要数天时间,并且由于存储过程不能并行执行,进一步降低了效率;3)数据延迟大。数据不能按流式处理,需要数据全部准备好后,再批量执行,不能实现实时数据的实时融合时间要求;4)数据来源单一。只能对已经采集到数据仓库的数据进行融合,存储过程不能跨数据源读取数据,如kafka类型的实时数据、http接口协议的数据。
7、开发专门的数据融合计算程序。各数据源的数据在采集到数据仓库后或采集过程中,数据融合计算程序会将来源表数据和先前已融合的数据读取到程序进程内存中,根据融合规则进行判断和计算。如果满足融合规则,则将来源表数据写入融合表,否则继续进行后续处理。该方法存在以下局限和缺点:
8、执行效率低。已融合的数据需要先读取出来,经过融合规则判断和计算后再写入。其增加了数据的读取和写入步骤,导致网络i/o增加、计算时间延长,并且加大了数据库的压力,从而整体执行效率降低;
9、原子性控制复杂。在计算程序层做规则判断计算再写入,多个来源字段融合到同一个目标字段,在并行执行的时候,会出现被覆盖的情况,导致数据不一致的问题,如果数据融合计算程序加入分布式同步锁,则执行效率非常低。
技术实现思路
1、本发明的目的是提供一种海量主数据融合方法及装置,其能够解决在多来源、多字段的海量主数据融合时执行效率低、开发成本高、数据延迟大、数据来源单一、原子性控制复杂等问题。
2、本发明的另一目的是提供一种实现上述海量主数据融合方法的装置,本发明在处理海量主数据融合方面提供了高效、可靠和经济的方法。
3、本发明所采用的技术方案如下:
4、一种海量主数据融合方法,该方法包括以下步骤:
5、1)首先,通过设计主数据表的结构;
6、2)然后,为属性字段配置一个或多个来源表的取数字段,并设置来源表取数字段的置信度,以及来源表的数据内容更新时间字段;
7、接着,运行数据融合任务,从配置的来源表读取数据,包括主键字段和取数字段的内容,根据取数字段的置信度、数据内容更新时间、数据内容是否为空,综合计算后生成该字段内容的版本号,然后将主键、主数据字段名、字段内容、版本号一同写入hbase表;hbase根据新写入的版本号与该字段内容当前版本号,按数值大小做比较;
8、3)最后,完成主数据融合,查询主数据表,获取融合后的主数据。
9、进一步而言,本发明的海量主数据融合方法,所述海量主数据融合装置主要包括融合规则配置单元、版本号生成单元、融合结果存储单元;所述融合规则配置单元包括以下:
10、1)设计主数据表结构,包括名称、主键和属性字段;通常主数据表设计为宽表,多达几百个字段或更多;
11、2)配置属性字段的融合规则。规则内容主要包括:来源表、取数字段、数据更新时间字段、置信度,其中来源表是一个抽象概念,可以是关系型数据库的表,也可以是kafka消息队列的主题或http数据接口,其代表来源数据的具体位置。取数字段是来源表的一个字段,将用于填充字段内容到主数据表的属性字段中。数据更新时间字段也是来源表的一个字段,用于表示该数据的鲜活性;
12、取数字段的置信度是一个取值范围0%到100%的无小数百分数,其值可以是业务人员的经验判断值,也可以是来自统计分析算法,如根据字段内容的填充率、字段被引用数量、数据更新及时性等综合统计分析计算的置信度,公式为:例如,置信度=α1*字段内容填充率得分+α2*字段被引用数量得分+α3*数据更新及时性得分+α4*数据来源可靠性得分。
13、进一步而言,本发明的海量主数据融合方法,所述取数字段置信度各因数得分规则表,其中:
14、αi是各因素的权重,可以根据实际业务需要和经验进行调整,且所有权重的总和应为1;si是各个因素的得分取值范围归一化为0到1之间,以便统一计算;
15、3)每个主数据的属性字段可以配置1个或多个融合规则;
16、4)完成主数据的所有属性字段融合规则配置。
17、进一步而言,本发明的海量主数据融合方法,所述版本号生成单元包括:
18、1)运行数据融合任务;每个来源表对应一个数据融合任务,可以手动运行、定时运行,也可以是新数据到达后触发运行;
19、2)根据配置的来源表读取数据,包括主键字段、取数字段和数据内容更新时间字段;
20、3)循环读取每条来源数据;
21、4)因为空数据对融合没有意义,所以首先判断取数字段内容是否为空,如果不为空,进入步骤5),否则进入步骤3);
22、5)生成该字段内容的版本号。生成规则为置信度+格式化为13位时间戳的数据内容更新时间,如置信度为75%、数据内容更新时间为2024-07-03 12:23:43,则版本号为“751719980624000”;
23、6)主键值、主数据字段名、字段内容、版本号一同写入hbase表。
24、进一步而言,本发明的海量主数据融合方法,所述融合结果存储单元包括:
25、1)接收发送过来的主键值、主数据字段名、取数字段内容、版本号;
26、2)根据主键值和主数据字段名,找到需要更新的数据记录和字段,准备将取数字段内容和版本号更新该字段;
27、3)新版本号与字段内容当前版本号,按数值大小做比较,如果新版本号大于等于当前版本号,则进入步骤4),否则进入步骤5);
28、4)将新写入的数据设置为当前版本,完成新数据融合;
29、5)作为历史版本写入,不会更新为当前版本,对默认数据查询操作不可见。
30、借由上述技术方案,本发明具有的有益效果如下:
31、1)提升执行效率:通过优化数据融合算法和流程,以巧妙设计的版本号结合hbase的数据更新特性,避免多余的已融合数据读取和写入步骤,有效提高数据处理的速度和效率,解决在多来源、多字段的海量主数据融合时执行效率低的问题;
32、2)降低开发成本:提供标准化的配置功能和友好页面,简化开发流程,大大降低主数据融合开发人员的能力要求,从而降低开发成本;
33、3)减少数据延迟:支持通过流式数据融合和定时批量数据融合的方式,确保数据及时处理和更新,显著减少数据延迟,可以低至秒级延迟;
34、4)多数据来源支持:支持多种数据来源的接入和融合,确保数据来源的多样性,增强数据的全面性和可靠性;
35、5)简化原子性控制:通过统一在hbase数据字段级更新的原子控制,实现事务管理和并发控制,简化原子性控制的复杂性,确保数据操作的可靠性和一致性。
36、6)扩展性强:设计具有良好扩展性的分布式架构,便于系统的扩展和升级,满足不断增长的数据处理需求。
1.一种海量主数据融合方法,其特征在于,该方法包括以下步骤:
2.如权利要求1所述的海量主数据融合方法,其特征在于:所述海量主数据融合装置主要包括融合规则配置单元、版本号生成单元、融合结果存储单元;
3.如权利要求1所述的海量主数据融合方法,其特征在于:所述取数字段置信度各因数得分规则表,其中:
4.如权利要求1所述的海量主数据融合方法,其特征在于:所述版本号生成单元包括:
5.如权利要求1所述的海量主数据融合方法,其特征在于:所述融合结果存储单元包括:
6.一种海量主数据融合装置,其特征在于,包括: