一种多链路业务数据溯源技术的制作方法

文档序号:30065013发布日期:2022-05-18 00:42阅读:368来源:国知局
一种多链路业务数据溯源技术的制作方法

1.本发明涉及多链路业务数据溯源技术领域,具体涉及一种多链路业务数据溯源技术。


背景技术:

2.随着互联网的高速发展,各类应用服务积累了海量的数据,我们已经进入了一个信息爆炸的时代,当一个业务与多个服务之间产生互相调用,就会形成服务调用链路。而当同一个数据在不同的业务系统中新增、使用、修改之后,会产生多链路的业务数据。这样做的后果势必会加剧数据的增长,在增加数据库存储压力、运维成本的同时,也导致了诸如不同表中数据不一致、无法准确追溯数源等问题。
3.一些同名同义的数据字段,其本身记录的是同根同源的某一种数据,却因为记录在不同的业务系统中,会产生差异。这时候就需要对多链路下同源的业务数据进行溯源工作,目前流行的解决方案,是使用元数据管理(metadata management)、数据血缘(data lineage)等技术手段分析数据字段从数据库到当前表的血缘路径,对于架构统一、建设完善的数据仓库是可以通过该类技术完成全链路的数据血缘梳理的;但现实场景中,存在不同的业务系统分属不同的业务单位,它们服从于不用的业务架构,因此业务数据并不是单纯的数据库调用关系,也有很多是通过数据库之外的方式完成数据的复制调用,比如数据摆渡或者新建库表等,因此不同业务系统下的数据库表血缘关系混乱,难以通过传统方式完成多链路的数据溯源。
4.目前市面上已经有不少数据血缘、数据溯源的产品,知名的有apacheatlas、sqlflow、sparklogicplan、maxcomputeinformationschema等,都是目前比较流行的数据血缘梳理和数据溯源的工具。这些产品基本都提供了元数据管理、数据血缘、数据溯源、ui查询等功能,但这部分产品通常为了尽可能多的满足各种使用场景,在相关深度方面做了一些牺牲,并且不能很好地解决不同业务系统数据汇集后的数据溯源问题。目前的商用产品存在血缘解析模块开发成本高,需要针对各个引擎和工具开发血缘解析模块,且血缘接口需要确认,并不是所有etl工具箱都会给你提供血缘接口,灵活性差、无法适应多业务场景数据汇集后的数据溯源任务的缺陷。


技术实现要素:

5.本发明针对上述问题,提出了一种多链路业务数据溯源技术,解决了现有的数据溯源技术存在血缘解析模块开发成本高,需要针对各个引擎和工具开发血缘解析模块,血缘接口需要确认,并不是所有etl工具箱都会给你提供血缘接口,灵活性差、无法适应多业务场景数据汇集后的数据溯源任务的缺陷。
6.本发明采取的技术方案如下:
7.一种多链路业务数据溯源技术,包括:数据采集模块,所述数据采集模块用于采集元数据和业务表数;
8.自然语言处理模块,所述自然语言处理模块用于将机器无法识别的自然语言文本转化为数值数据;
9.数源标准化模块,所述数源标准化模块用于对数据采集模块和自然语言处理模块的数源单位进行统一标准化,并生成标准数源单位成果库和标准业务场景成果库;
10.深度学习算法模块,所述深度学习算法模块被配置为:基于数源单位聚类结果与场景聚类结果,对业务表数据进行学习训练,完成字段级的数据溯源工作;以及
11.数据存储模块,所述数据存储模块用于存储数源标准化模块和深度学习算法模块产生的数据。
12.本发明通过只需要完成表结构的采集,无需针对各个引擎和工具开发血缘解析模块,就可以完成模型的特征构造与数源建模工作。同时,本发明采用自适应的深度学习模型对不同的引擎、工具产生的业务数据完成字段级的血缘解析,无需针对各个引擎和工具开发血缘解析模块。本发明无需确认数据血缘接口。因为本业务场景下的数据溯源工作的本质并不是数据库血缘的源头,因此,无需确认数据血缘接口。本发明可适应多业务场景数据汇集后的数据溯源任务,灵活性强。本发明同时解决了“数据采集存在漏洞。重放sql时,元数据可能发生改变,比如临时表可能被drop,没有临时自定义函数udf,或者sql解析失败”的缺陷。
13.可选的,所述自然语言处理模块的操作方法为:
14.对文本的预处理;
15.使用开源库jieba库、gensim库,加载预训练语料库,完成对文本的分词及向量化工作;
16.使用lda算法生成文本主题词,使用这些主题词以apriori完成主题词关联度计算,并使用这种关联关系,以dbscan算法完成对原本无需的文本语料的聚类工作,最终生成结果语料。
17.可选的,其预处理包括并不限于去重、去特殊符号、简繁体转换。
18.可选的,其中数源标准化模块的工作方法包括:
19.对接各业务系统的数据;
20.在完成元数据归集后,对数据进行基础的数据清洗、标准化工作;
21.将数据导入自然语言处理模块;
22.最终生成两个成果库,分别为标准数源单位成果库和标准业务场景成果库。
23.可选的,所述深度学习算法模块包括自然语言处理、卷积神经网络、词向量相似度与拓词算法、半监督神经网络标签训练、梯度神经网络和多分类算法的子模块。
24.可选的,所述深度学习算法模块的工作方法包括:
25.利用gensim生成字段的词向量;
26.利用卷积神经网络对这部分词向量进行池化,形成张量数据库;
27.在与标准数源单位成果库和标准业务场景成果库,及外部传入的标签库,一同导入半监督学习的梯度神经网络,基于对分类误差的损失,进行半监督训练;
28.最后,利用softmax层完成对字段数据数源单位的分类工作。
29.可选的,卷积神经网络使用卷积神经网络进行池化工作,池化工作为将输入的张量矩阵划分为若干个矩形区域,对每个子区域输出最大值,从而达到特征压缩的效果。
30.可选的,半监督学习的梯度神经网络采用伪标签算法,所述伪标签算法的操作方法为:
31.第一步:运用训练出的模型给予无标签的数据一个伪标签;其训练方法为用训练中的模型对无标签数据进行预测,以概率最高的类别作为无标签数据的伪标签;
32.第二步:运用熵正则化(entropy regularization)思想,将无监督数据转为目标函数的正则项;将拥有伪标签的无标签数据视为有标签的数据,然后用交叉熵来评估误差大小。
33.可选的,所述半监督梯度神经网络为深度自编码网络和阶梯网络的基础上进行的优化改造;其阶梯网络在自编码网络的基础上,对编码的每一层使用横线连接的方式连接到解码层;阶梯网络同时在每一层引入噪声,阶梯网络的损失函数为每一层损失函数c的加总。
34.可选的,且半监督梯度神经网络被配置为:
35.编码层的最高层接入有监督的损失函数,在训练过程中把无监督和有监督的损失函数相加作为总损失,并进行梯度下降训练。
36.(三)有益效果
37.1、本发明提供了全新的数据溯源解决方案,使数据溯源工作更为简便,有效解决了在多链路数据溯源领域的业务痛点。系统前期开发成本低,无需开发对应的血缘解析接口,只需要导入元数据和字段数据,就可以完成数据溯源工作,能够带来更好的稳定性和可靠性。
38.2、本发明使用基于元数据训练的预训练语料库,对于元数据管理场景适应能力更强,可以快速适应不同的业务系统元数据。
39.3、本发明使用半监督学习网络,仅使用少量的标签值,就可以解决数百倍于标签量的无监督数据集训练工作。该技术大大减少了人工标注工作,节约社会劳动成本。
附图说明:
40.图1是本发明的实施例1的多链路业务数据溯源技术的逻辑结构图;
41.图2是本发明的实施例2的多链路业务数据溯源技术的自然语言处理模块的内部逻辑结构图;
42.图3是本发明的实施例2的多链路业务数据溯源技术的数源标准化模块内部逻辑结构图;
43.图4是本发明的实施例2的多链路业务数据溯源技术的深度学习算法模块内部逻辑结构图;
44.图5是本发明的实施例2的多链路业务数据溯源技术的池化层的结构图;
45.图6是本发明的实施例2的多链路业务数据溯源技术的单层自编码网络的前向传导公式的函数示意图;
46.图7是本发明的实施例2的多链路业务数据溯源技术的阶梯网络的流程示意图;
47.图8是本发明的实施例2的多链路业务数据溯源技术的阶梯网络的逻辑结构图。
具体实施方式:
48.下面结合各附图,对本发明做详细描述。
49.本发明中的lda指隐含狄利克雷分布。
50.本发明的gensim是一款开源的第三方python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。
51.实施例1
52.如图1所示,本发明采取的技术方案如下:
53.一种多链路业务数据溯源技术,包括:数据采集模块,所述数据采集模块用于采集元数据和业务表数;
54.自然语言处理模块,所述自然语言处理模块用于将机器无法识别的自然语言文本转化为数值数据;
55.数源标准化模块,所述数源标准化模块用于对数据采集模块和自然语言处理模块的数源单位进行统一标准化;
56.深度学习算法模块,所述深度学习算法模块被配置为基于数源单位聚类结果与场景聚类结果,对业务表数据进行学习训练,完成字段级的数据溯源工作;以及
57.数据存储模块,所述数据存储模块用于存储数源标准化模块和深度学习算法模块产生的数据。
58.需要说明的是,本实施例中的数据采集模块主要采集两类数据,即元数据和业务表数据。其中,元数据为数源标准化模块提供业务服务,基于对业务系统元数据的计算分析,产生数源单位的聚类逻辑;业务表数据则为深度学习模块服务,为神经网络训练和字段分类匹配提供数据支撑。
59.需要说明的是,自然语言处理模块的主要作用是将机器无法识别的自然语言文本转化为数值数据。其中涵盖了常规的自然语言处理工作,如分词、词向量、词性标注、lda;同时也根据实际的场景需求加入了关联计算apriori、文本聚类dbscan等统计学习算法,用以输出标准化成果。
60.需要说明的是,数源标准化模块是指对多链路业务系统所涵盖的所有业务系统表的数源单位进行统一标准化的流程工作,模块内部主要包括数据归集、数据清洗、数据标准化、自然语言处理(调用)、数源聚类、场景聚类这6个子模块。主要作用有:1)对元数据文本进行数据预处理、2)完成以标准化数源单位为索引的数源聚类、3)完成以标准化数源单位为索引的场景聚类。
61.需要说明的是,深度学习模块是指针对多链路业务数据溯源设计的深度学习网络模块,模块内部主要包括自然语言处理、卷积神经网络(cnn)、词向量相似度与拓词算法(gensim)、半监督神经网络标签训练(pseudo label)、梯度神经网络(laddernetworks)、多分类算法(softmax)这6个子模块。深度学习模块的主要功能是,基于数源单位聚类结果与场景聚类结果,对业务表数据进行学习训练,目的是完成字段级的数据溯源工作。本发明的数源单位聚类结果与场景聚类结果分别存储于标准树源单元成果库和标准业务场景成果库。
62.需要说明的是,数据存储模块是指支撑多链路业务数据数源系统的数据存储模块,包括主流的关系型数据库mysql,用于信号队列的redis,大数据平台odps等。用户可以
根据实际的数据量、使用情况选择不同的数据存储系统。
63.实施例2
64.一种多链路业务数据溯源技术,包括:数据采集模块,所述数据采集模块用于采集元数据和业务表数;
65.自然语言处理模块,所述自然语言处理模块用于将机器无法识别的自然语言文本转化为数值数据;
66.数源标准化模块,所述数源标准化模块用于对数据采集模块和自然语言处理模块的数源单位进行统一标准化;
67.深度学习算法模块,所述深度学习算法模块被配置为基于数源单位聚类结果与场景聚类结果,对业务表数据进行学习训练,完成字段级的数据溯源工作;以及
68.数据存储模块,所述数据存储模块用于存储数源标准化模块和深度学习算法模块产生的数据。
69.所述自然语言处理模块的操作方法为:
70.对文本的预处理;
71.使用开源库jieba库、gensim库,加载预训练语料库,完成对文本的分词及向量化工作;
72.使用lda算法生成文本主题词,使用这些主题词以apriori完成主题词关联度计算,并使用这种关联关系,以dbscan算法完成对原本无需的文本语料的聚类工作,最终生成结果语料。
73.其预处理包括并不限于去重、去特殊符号、简繁体转换。
74.其中数源标准化模块的工作方法包括:
75.对接各业务系统的数据;
76.在完成元数据归集后,对数据进行基础的数据清洗、标准化工作;
77.将数据导入自然语言处理模块;
78.最终生成两个成果库,分别为标准数源单位成果库和标准业务场景成果库。
79.所述深度学习算法模块包括自然语言处理、卷积神经网络、词向量相似度与拓词算法、半监督神经网络标签训练、梯度神经网络和多分类算法的子模块。
80.所述深度学习算法模块的工作方法包括:
81.利用gensim生成字段的词向量;
82.利用卷积神经网络对这部分词向量进行池化,形成张量数据库;
83.在与标准数源单位成果库和标准业务场景成果库,及外部传入的标签库,一同导入半监督学习的梯度神经网络,基于对分类误差的损失,进行半监督训练;
84.最后,利用softmax层完成对字段数据数源单位的分类工作。
85.卷积神经网络使用卷积神经网络进行池化工作,池化工作为将输入的张量矩阵划分为若干个矩形区域,对每个子区域输出最大值,从而达到特征压缩的效果。
86.半监督学习的梯度神经网络采用伪标签算法,所述伪标签算法的操作方法为:
87.第一步:运用训练出的模型给予无标签的数据一个伪标签;其训练方法为用训练中的模型对无标签数据进行预测,以概率最高的类别作为无标签数据的伪标签;
88.第二步:运用熵正则化(entropy regularization)思想,将无监督数据转为目标
函数的正则项;将拥有伪标签的无标签数据视为有标签的数据,然后用交叉熵来评估误差大小。
89.所述半监督梯度神经网络为深度自编码网络和阶梯网络的基础上进行的优化改造;其阶梯网络在自编码网络的基础上,对编码的每一层使用横线连接的方式连接到解码层;阶梯网络同时在每一层引入噪声,阶梯网络的损失函数为每一层损失函数c的加总。
90.且半监督梯度神经网络被配置为:
91.编码层的最高层接入有监督的损失函数,在训练过程中把无监督和有监督的损失函数相加作为总损失,并进行梯度下降训练。
92.自然语言处理模块贯穿了整个数据处理模块,其内部逻辑如附图2所示,在处理元数据或字段数据之前,调用该模块代码,可完成对自然语言的自动化处理,包含对文本的预处理(去重、去特殊符号、简繁体转换);使用开源库jieba库、gensim库,加载预训练语料库,完成对文本的分词及向量化工作;使用lda算法生成文本主题词,使用这些主题词以apriori完成主题词关联度计算,使用这种关联关系,以dbscan算法完成对原本无需的文本语料的聚类工作,最终生成结果语料。
93.整个模块的算法搭配构造基于对元数据的充分理解,算法链路关系明确,前一步计算的结果值可以在后一个算法中被充分利用。同时,整个模块仅dbscan算法使用了无监督学习,需要进行超参数调优,在其余部分的算法逻辑明确,结果唯一且稳定。
94.本实施例中的lda算法,中文名为隐含狄利克雷分布,全称为latent dirichlet allocation,是自然语言处理领域一种经典的词袋模型。其算法原理简要概括为,假设一篇文档是由一组词构成的一个集合,词与词之间没有顺序以及先后的关系。一篇文档可以包含多个主题,文档中每一个词都由其中的一个主题生成。狄利克雷分布是多项式分布的共轭先验概率分布,在模型中一篇文档生成的方式如下:
95.1)从狄利克雷分布α中取样生成文档i的主题分布θi;
96.2)从主题的多项式分布θi中取样生成文档i第j个词的主题z
i,j

97.3)从狄利克雷分布β中取样生成主题x
i,j
的词语分布
98.4)从词语的多项式分布中采样最终生成词语ω
i,j

99.因此整个模型中所有可见变量以及隐藏变量的联合分布是
[0100][0101]
最终一篇文档的单词分布的最大似然估计可以通过将上式的以及进行积分α和对进行求和得到
[0102][0103]
根据p(ωi|α,β)的最大似然估计,得到文档的主题词。
[0104]
本实施例中的apriori是一种关联规则学习算法,使用的是广度有限搜索和哈系数结构来有效地计算候选项目集。apriori算法使用支持度来作为判断频繁项集的标准,算
法的目标是找到最大的k项频繁集,即找到符合支持度标准的频繁集,或找到最大个数的频繁集。
[0105]
apriori算法采用了迭代的方法,先搜索出候选1项集及对应的支持度,剪枝去掉低于支持度的1项集,得到频繁1项集。然后对剩下的频繁1项集进行连接,得到候选的频繁2项集,筛选去掉低于支持度的候选频繁2项集,得到真正的频繁二项集,以此类推,迭代下去,直到无法找到频繁k+1项集为止,对应的频繁k项集的集合即为算法的输出结果。
[0106]
其算法流程如下展示:
[0107]
输入:数据集合d,支持度阈值α;
[0108]
输出:最大的频繁k项集;
[0109]
1)扫描整个数据集,得到所有出现过的数据,作为候选频繁1项集。
[0110]
k=1,频繁0项集为空集;
[0111]
2)挖掘频繁k项集:
[0112]
a)扫描数据计算候选频繁k项集的支持度;
[0113]
b)去除候选频繁k项集中支持度低于阈值的数据集,得到频繁k项集。如果得到的频繁k项集为空,则直接返回频繁k-1项集的集合作为算法结果,算法结束。如果得到的频繁k项集只有一项,则直接返回频繁k项集的集合作为算法结果,算法结束;
[0114]
c)基于频繁k项集,连接生成候选频繁k+1项集;
[0115]
3)令k=k+1,转入步骤2)。
[0116]
本实施例中的dbscan算法,全称为density-based spatialclustering of applications with noise,是一种基于密度的聚类分析算法。其算法原理为将样本空间里需要被聚类的点分为核心点,密度可达点和局外点,这不同的三类点,并进行聚类:
[0117]
1)dbscan模型需要两个基本参数:最大邻域ε(eps)和形成高密度区域所需要的最少点数minpts;
[0118]
2)如果一个点p在距离范围ε内有minpts个点,则p点被称为核心点;
[0119]
3)核心点ε(eps)范围内的点被称为由p直接可达的,即密度可达点;
[0120]
4)如果存在一条道路p1,p2,p3,...pn,有p1=p和pn=q,且每个p
i+1
都是由pi直接可达的(道路上除了q以外所有点都一定是核心点),则称是q由p可达的;
[0121]
5)所有不由任何点可达的点都被称为局外点;
[0122]
如果p是核心点,则它与所有由它可达的点(包括核心点和非核心点)形成一个聚类,每个聚类拥有最少一个核心点,非核心点也可以是聚类的一部分,但它是在聚类的“边缘”位置,因为它不能达至更多的点。
[0123]
在dbscan算法模型中的每个聚类都符合两个性质:
[0124]
6)同一个聚类里的每两个点都是互相连结的;
[0125]
7)如果点p可由聚类里的点q可达,那么p在q所属的聚类里。
[0126]
本实施例中的数源标准化模块区别于传统的数据溯源系统,多链路业务数据溯源需要明确标准数源,确保相同业务属性的数源单位唯一且规范。因此在进行数据溯源之前,需要使用数源标准化模块对数源进行标准化工作。如附图3所示,数源标准化模块首先对接各业务系统的数据,在完成元数据归集后,对数据进行基础的数据清洗、标准化工作,之后将数据导入自然语言处理模块。最终生成两个成果库,分别为标准数源单位成果库和标准
业务场景成果库。
[0127]
本实施例中的深度学习网络结构如图4所示,使用各业务系统的字段数据,即需要溯源的字段数据。与数源标准化一样,需要做预处理和自然语言处理,但本模块的词向量处理与数源标准化模块不同,gensim生成字段的词向量后,由于字段词向量为高维度的稀疏张量,因此设计了卷积神经网络对这部分词向量进行池化,形成张量数据库;在与标准数源单位成果库和标准业务场景成果库,及外部传入的标签库(pseudo label),一同导入半监督学习的梯度神经网络,基于对分类误差的损失,进行半监督训练。最后利用一个softmax层完成对字段数据数源单位的分类工作。
[0128]
文本主要使用卷积神经网络进行池化工作,因此在这里具体介绍池化层在高维稀疏张量中的重要作用。池化(pooling)实际上是一种非线性形式的降采样,文本选择“最大池化(maxpooling)”作为降采样的方案。具体算法是将输入的张量矩阵划分为若干个矩形区域,对每个子区域输出最大值,从而达到特征压缩的效果。
[0129]
池化操作提供了另一种形式的平移不变性。因为卷积核是一种特征发现器,通过卷积层可以很容易地发现张量矩阵中的局部特征,但是卷积层发现的特征往往过于精确,而通过池化层我们可以在降低维度的同事,降低卷积层对局部特征的敏感性。
[0130]
池化层每次在一个池化窗口上计算输出,然后根据步幅移动池化窗口。图5是常用池化层,步幅为2,池化窗口为(2x2)的二维最大池化层。每隔2个元素从矩阵中划分出(2x2)的区块,然后对每个区块中的4个数取最大值。
[0131]
pesudo label直译为伪标签算法,是一种简单有效的深度神经网络半监督学习方法。该网络采用带标签和无标签数据同时训练的监督方式。对于未标记的数据,选取具有最大预测概率的类作为伪标;l签,像真实的标签一样使用。
[0132]
pseudo-labels的步骤:
[0133]
第一步:运用训练出的模型给予无标签的数据一个伪标签。方法很直接:用训练中的模型对无标签数据进行预测,以概率最高的类别作为无标签数据的伪标签;
[0134]
第二步:运用熵正则化(entropy regularization)思想,将无监督数据转为目标函数的正则项。实际中,就是将拥有伪标签的无标签数据视为有标签的数据,然后用交叉熵来评估误差大小。
[0135]
本实施例中半监督梯度神经网络(semi-supervised ladder networks),是在深度自编码网络和阶梯网络的基础上进行的优化改造。
[0136]
单层自编码网络的前向传导公式为:
[0137]
h(t)=f(x(t);ξf)
[0138][0139]
x(t)表示输入数据,h(t)表示隐藏层神经元。f函数为编码映射函数,g函数表示解码映射函数,示意图如图6所示。
[0140]
阶梯网络在自编码网络的基础上,对编码的每一层使用横线连接的方式连接到解码层。阶梯网络同时在每一层引入噪声,阶梯网络的损失函数为每一层损失函数c的加总。其示意图如图7所示。
[0141]
半监督梯度神经网络与阶梯网络的最大区别,是在编码层的最高层接入有监督的
损失函数,在训练过程中把无监督和有监督的损失函数相加作为总损失,并进行梯度下降训练。
[0142]
给定n个有标签的样本数据,以及m个无标签的样本数据,有标签的样本数据个数远小于无标签数据。模型目标是学习出一个函数用来判别数据标签的概率分别p(y|x)。如图8所示,在阶梯网络中,这个函数是一个深度降噪自编码器,噪声加入所有的隐藏层,然后最后的损失函数是有标签样本数据的交叉熵损失函数与无标签样本数据各层噪声解码器重构后的欧式误差损失函数的加总:
[0143][0144]
本实施例的softmax算法是对逻辑回归算法的一种推广演绎,其本质是有限项离散概率分布的梯度对数归一化。因此,softmax算法在包括多项逻辑回归、多项线性判别分析、朴素贝叶斯分类器和人工神经网络等的多种基于概率的多分类问题方法中都有着广泛应用。特别地,在多项逻辑回归和线性判别分析中,函数的输入是从k个不同的线性函数得到的结果,而样本向量x属于第j个分类的概率为:
[0145][0146]
以上所述仅为本发明的优选实施例,并非因此即限制本发明的专利保护范围,凡是运用本发明说明书及附图内容所作的等效结构变换,直接或间接运用在其他相关的技术领域,均同理包括在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1