CN108846039A - 数据流向确定方法及装置 - Google Patents
数据流向确定方法及装置 Download PDFInfo
- Publication number
- CN108846039A CN108846039A CN201810533185.0A CN201810533185A CN108846039A CN 108846039 A CN108846039 A CN 108846039A CN 201810533185 A CN201810533185 A CN 201810533185A CN 108846039 A CN108846039 A CN 108846039A
- Authority
- CN
- China
- Prior art keywords
- data
- data flow
- character string
- tables
- string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据流向确定方法及装置。该方法包括:将数据表和对应的来源表的关联关系记录在关系表中,将不存在来源表的数据表作为初始数据表;将初始数据表的标识作为初始数据表的第一数据流向字符串记录在关系表中;从关系表中确定第N个数据表对应的来源表的标识;从关系表中获取与第N个数据表对应的来源表的标识相同的数据表的第二数据流向字符串;将第N个数据表的标识添加在第二数据流向字符串中最后一个标识之后,得到第N个数据表的数据流向字符串,由此能够通过关系表中每个数据表的数据流向字符串确定数据流向,简化确定数据流向的过程,提高确定数据流向的效率,缩短确定数据流向的时间,从而提高用户的使用体验。
Description
技术领域
本公开涉及大数据技术领域,尤其涉及一种数据流向确定方法及装置。
背景技术
相关技术中,ETL(Extract-Transform-Load,抽取-转换-加载)是指将业务系统中的数据经过抽取、清洗转换之后加载到数据仓库的过程。ETL处理的目的是将业务系统中分散、零乱、标准不统一的数据整合到一起,为业务系统的决策提供分析依据。
ETL处理包括以下阶段:数据的抽取、数据的清洗转换和数据的加载。其中,数据的抽取是指从各个不同的数据源抽取到ODS(Operational Data Store,操作型数据存储)中。在数据的抽取过程中,将数据从数据库中的一张数据表抽取到另外一张数据表中,或者从一张数据表抽取到多张数据表中的操作相对频繁。通过数据表之间的数据流向,能够建立数据表之间的流向关系。通过数据表之间的流向关系,能够展示数据表之间的数据流向。
例如,如果将表1中的数据抽取到表2中,则根据表1和表2之间的数据流向,形成表1指向表2的数据流向关系。如果将表2中的数据抽取到表3和表4中,则根据表2和表3、表4之间的数据流向,形成表2分别指向表3、表4的数据流向关系。在实际应用中,通过分析数据表之间的流向关系,能够清楚地知道数据表之间的数据流向,从而实现及时定位和追溯根源。
图1a示出相关技术中的数据流向图。如果将表1中的数据抽取到表2中,将表2中的数据抽取到表3和表4中,将表3中的数据抽取到表5中,将表4中的数据抽取到表6中。如图1a所示,根据表1、表2、表3、表4、表5和表6之间的数据流向,形成表1指向表2,表2分别指向表3、表4,表3指向表5,表4指向表6的数据流向关系。
发明内容
有鉴于此,本公开提出了一种数据流向确定方法及装置,以解决相关技术中确定数据流向的过程繁琐、效率较低且耗时较长的问题。
根据本公开的一方面,提供了一种数据流向确定方法,所述方法包括:
将数据表和对应的来源表的关联关系记录在关系表中,将不存在来源表的数据表作为初始数据表;
将所述初始数据表的标识作为所述初始数据表的第一数据流向字符串记录在所述关系表中;
从所述关系表中确定第N个数据表对应的来源表的标识;其中,N为大于或等于1的整数,在N等于1时,第1个表为所述初始数据表;
从所述关系表中获取与所述第N个数据表对应的来源表的标识相同的数据表的第二数据流向字符串;
将所述第N个数据表的标识添加在所述第二数据流向字符串中最后一个标识之后,得到所述第N个数据表的数据流向字符串。
根据本公开的另一方面,提供了一种数据流向确定装置,所述装置包括:
第一记录模块,用于将数据表和对应的来源表的关联关系记录在关系表中,将不存在来源表的数据表作为初始数据表;
第二记录模块,用于将所述初始数据表的标识作为所述初始数据表的第一数据流向字符串记录在所述关系表中;
确定模块,用于从所述关系表中确定第N个数据表对应的来源表的标识;其中,N为大于或等于1的整数,在N等于1时,第1个表为所述初始数据表;
第一获取模块,用于从所述关系表中获取与所述第N个数据表对应的来源表的标识相同的数据表的第二数据流向字符串;
添加模块,用于将所述第N个数据表的标识添加在所述第二数据流向字符串中最后一个标识之后,得到所述第N个数据表的数据流向字符串。
根据本公开的另一方面,提供了一种数据流向确定装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
本公开的数据流向确定方法及装置,通过将数据表和对应的来源表的关联关系记录在关系表中,将不存在来源表的数据表作为初始数据表,将初始数据表的标识作为初始数据表的第一数据流向字符串记录在关系表中,从关系表中确定第N个数据表对应的来源表的标识,从关系表中获取与第N个数据表对应的来源表的标识相同的数据表的第二数据流向字符串,并将第N个数据表的标识添加在第二数据流向字符串中最后一个标识之后,得到第N个数据表的数据流向字符串,由此能够得到关系表中每个数据表的数据流向字符串,并通过关系表中每个数据表的数据流向字符串确定数据流向,简化确定数据流向的过程,提高确定数据流向的效率,缩短确定数据流向的时间,从而提高用户的使用体验。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1a示出相关技术中的数据流向图。
图1b示出相关技术中图1a中的表3的血缘关系的示意图。
图1c示出相关技术中图1a中的表3的影响关系的示意图。
图1d示出相关技术中图1a中的表3的全链关系的示意图。
图2示出根据本公开一实施例的数据流向确定方法的流程图。
图3a示出本公开一实施例的关系表二中表2的血缘关系的示意图。
图3b示出本公开一实施例的关系表二中表6的血缘关系的示意图。
图3c示出本公开一实施例的关系表二中表2的影响关系的示意图。
图3d示出本公开一实施例的关系表二中表2的全链关系的示意图。
图3e示出本公开一实施例的关系表二对应的数据地图的示意图。
图4示出根据本公开一实施例的数据流向确定方法的流程图。
图5示出根据本公开一实施例的数据流向确定方法的流程图。
图6示出根据本公开一实施例的数据流向确定方法的流程图。
图7示出根据本公开一实施例的数据流向确定方法的流程图。
图8示出根据本公开一实施例的数据流向确定装置的框图。
图9示出根据本公开一实施例的数据流向确定装置的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,下面先对本发明实施例中涉及的部分技术术语进行简单说明。
来源表:是指当前表(即数据表)中的数据直接来源的表。
初始数据表:若数据表中的数据不存在来源表,则该数据表为初始数据表。初始数据表可以作为其他数据表的来源表。
最终数据表:若数据表中的数据不去向任何数据表,则该数据表为最终数据表。最终数据表不是任何数据表的来源表。
例如,将表1中的数据抽取到表2中,将表2中的数据抽取到表3和表4中,将表3中的数据抽取到表5中,将表4中的数据抽取到表6中。由此,表1为初始数据表,表1没有来源表,表2对应的来源表为表1,表3和表4对应的来源表为表2,表5对应的来源表为表3,表6对应的来源表为表4,表5和表6为最终数据表。
数据表的血缘关系:是指以数据表中的数据来源的初始数据表作为起点,以数据表自身作为终点,按照数据表之间的数据流向进行的逐层扩展。数据表的血缘关系是为展示数据表之间的数据流向而进行的以数据表自身为终点的往前分析。
以图1a中的表3作为示例。如图1a所示,将表1中的数据抽取到表2中,将表2中的数据抽取到表3中,数据流向为表1→表2→表3。图1b示出相关技术中图1a中的表3的血缘关系的示意图。即以表1作为起始点,以表3作为终点,按照数据流向(表1→表2→表3)逐层扩展,形成如图1b所示的表3的血缘关系。
数据表的影响关系:是指以数据表自身作为起点,以数据表中的数据去往的最终数据表作为终点,按照数据表之间的数据流向进行的逐层扩展。数据表的影响关系是为展示数据表之间的数据流向而进行的以数据表自身为起点的往后分析。
以图1a中的表3作为示例。如图1a所示,将表3中的数据抽取到表5中,数据流向为表3→表5。图1c示出相关技术中图1a中的表3的影响关系的示意图。即以表3作为起始点,以表5作为终点,按照数据流向(表3→表5),形成如图1c所示的表3的影响关系。
数据表的全链关系:是指以数据表中的数据来源的初始数据表作为起点,以数据表中的数据去往的最终数据表作为终点,按照数据表之间的数据流向进行的逐层扩展。数据表的全链关系是为展示数据表之间的数据流向而进行的以目标为中间点的往前和往后分析。
以图1a中的表3作为示例。如图1a所示,将表1中的数据抽取到表2中,将表2中的数据抽取到表3中,将表3中的数据抽取到表5中,数据流向为表1→表2→表3→表5。图1d示出相关技术中图1a中的表3的全链关系的示意图。即以表1作为起始点,以表5作为终点,按照数据流向(表1→表2→表3→表5),形成如图1d所示的表3的全链关系。
相关技术中,关系表以数据表和数据表对应的来源表的方式存储ETL处理过程中数据表之间的关联关系。关系表可以指存储ETL处理过程中数据表之间的关系的数据存储结构。表一示出相关技术中的关系表。如表一所示,相关技术中的关系表可以包括数据表的标识和数据表对应的来源表的标识。数据表的标识可以指唯一标识数据表的信息。其中,表1为初始数据表,表1没有来源表,表2对应的来源表为表1,表3和表4对应的来源表为表2,表5对应的来源表为表3,表6对应的来源表为表4。
表一
当前表 | 来源表的标识 |
表1 | |
表2 | 1 |
表3 | 2 |
表4 | 2 |
表5 | 3 |
表6 | 4 |
由此,通过表一只能知道直接抽取数据的数据表之间的关系,即数据表和数据表对应的来源表之间的流向关系。相关技术中,为了将部分或全部数据表之间的流向关系都展示出来,例如,获取数据表的血缘关系、影响关系或全链关系,则需要对数据流向图进行拼接。
以表一中的表3作为示例,如果要得到表3的血缘关系,则先查询获取表3对应的来源表,即表2。然后再查询获取表2对应的来源表,即表1。表1没有来源表,结束查询,从而得到表3的血缘关系。同理,可以得到表3的影响关系。在得到表3的血缘关系和影响关系之后,即能够得到表3的全链关系。但是,这种方法查询处理速度较慢,当涉及到的数据表数量较多时,查询处理速度会急剧下降,造成用户的使用体验较差。
针对上述相关技术中所存在的技术问题,图2示出根据本公开一实施例的数据流向确定方法的流程图。该方法应用于ETL处理系统中。如图2所示,该方法包括步骤S21至步骤S25。
在步骤S21中,将数据表和对应的来源表的关联关系记录在关系表中,将不存在来源表的数据表作为初始数据表。
在步骤S22中,将初始数据表的标识作为初始数据表的第一数据流向字符串记录在关系表中。
在步骤S23中,从关系表中确定第N个数据表对应的来源表的标识;其中,N为大于或等于1的整数,在N等于1时,第1个表为初始数据表。
在步骤S24中,从关系表中获取与第N个数据表对应的来源表的标识相同的数据表的第二数据流向字符串。
在步骤S25中,将第N个数据表的标识添加在第二数据流向字符串中最后一个标识之后,得到第N个数据表的数据流向字符串。
在一种实现方式中,在关系表中设置数据流向列,该数据流向列用于存储数据表的数据流向字符串。其中,每个数据表的数据流向字符串可以表示数据表的血缘关系,按照该数据表的血缘关系,数据流向字符串依次记录了该血缘关系经过的数据表的标识。
以表一作为示例。如表一所示,表1为初始数据表,表1没有来源表,则得到表1对应的数据流向字符串/1。表2对应的来源表为表1,表1对应的数据流向字符串/1,则将表2的标识2拼接在表1对应的数据流向字符串/1的尾部,得到表2对应的数据流向字符串/1/2。以此类推,得到表3对应的数据流向字符串/1/2/3、表4对应的数据流向字符串/1/2/4、表5对应的数据流向字符串/1/2/3/5以及表6对应的数据流向字符串/1/2/4/6,如此得到如表二所示的关系表。
其中,/为分隔符,本公开不限制分隔符的类型,只要能够实现将表的标识分隔的作用即可。例如,分隔符还可以为&或*等。
表二
当前表 | 来源表的标识 | 数据流向列 |
表1 | /1 | |
表2 | 1 | /1/2 |
表3 | 2 | /1/2/3 |
表4 | 2 | /1/2/4 |
表5 | 3 | /1/2/3/5 |
表6 | 4 | /1/2/4/6 |
以表二中的表2作为示例。如表二所示,表2对应的数据流向字符串为/1/2。根据表2对应的数据流向字符串/1/2,可以画出如图3a所示的表2的血缘关系的示意图。
以表二中的表6作为示例。如表二所示,表6对应的数据流向字符串为/1/2/4/6。根据表6对应的数据流向字符串/1/2/4/6,可以画出如图3b所示的表6的血缘关系的示意图。
本公开的数据流向确定方法,能够得到关系表中每个数据表的数据流向字符串,数据表的数据流向字符串可以表示数据表的血缘关系,由此能够通过关系表中每个数据表的数据流向字符串确定数据流向,简化确定数据流向的过程,提高确定数据流向的效率,缩短确定数据流向的时间,从而提高用户的使用体验。
本公开的数据流向确定方法,数据表的数据流向字符串可以表示数据表的血缘关系,由此对于任一数据表,能够根据关系表中该数据表的数据流向字符串制作该数据表的血缘关系的示意图,一方面够够加快制作数据表的血缘关系的示意图,另一方面能够提高数据表数量较大时数据表的血缘关系的示意图的制作效率,从而提高用户的使用体验。
图4示出根据本公开一实施例的数据流向确定方法的流程图。该方法应用于ETL处理系统中。如图4所示,该方法包括步骤S41至步骤S43。
在步骤S41中,从关系表中获取除第N个数据表的数据流向字符串以外的其他包括第N个数据表的标识的数据流向字符串,得到第一字符串集。
在步骤S42中,对第一字符串集中的任一数据流向字符串,若该数据流向字符串包括第N个数据表的数据流向字符串,则将第一字符串集中的该数据流向字符串中包含的第N个数据表的数据流向字符串替换为第N个数据表的标识之后添加到第二字符串集。
以表二中的表2作为示例。如表二所示,表2的标识为2,表2对应的数据流向字符串为/1/2。从表二中获取除表2对应的数据流向字符串以外的其他包括表2的标识的数据流向字符串,即获取除/1/2以外的其他包括2的数据流向字符串,得到第一字符串集为{/1/2/3,/1/2/4,/1/2/3/5,/1/2/4/6}。分别将/1/2/3、/1/2/4、/1/2/3/5和/1/2/4/6包括的表2对应的数据流向字符串替换为表2的标识,即将/1/2替换为2,得到第二字符串集{2/3,2/4,2/3/5,2/4/6}。
在步骤S43中,将第二字符串集中的任意两个数据流向字符串进行比较,如果一个数据流向字符串包括另一个数据流向字符串,则将被包括的数据流向字符串删除,得到第三字符串集。
承接上述步骤S42的例子,对于第二字符串集{2/3,2/4,2/3/5,2/4/6},将其中的任意两个数据流向字符串进行比较。具体地,将2/3和2/4进行比较,2/3和2/4不存在包括关系。则将2/3和2/3/5进行比较,由于2/3/5包括2/3,则将2/3从第二字符串集中删除。将2/4和2/3/5进行比较,2/4和2/3/5不存在包括关系。则将2/4和2/4/6进行比较,由于2/4/6包括2/4,则将2/4从第二字符串集中删除。将2/3/5和2/4/6进行比较,2/3/5和2/4/6不存在包括关系。由此,得到第三字符串集{2/3/5,2/4/6}。
在一种实现方式中,第三字符串集包括的数据流向字符串可以表示数据表的影响关系,按照该数据表的影响关系,数据流向字符串依次记录了该影响关系经过的数据表的标识。第三字符串集包括了表示该数据表的所有影响关系的数据流向字符串。
承接上述步骤S43的例子,对于第三字符串集{2/3/5,2/4/6},即表示表2的影响关系。根据第三字符串集{2/3/5,2/4/6},可以画出如图3c所示的表2的影响关系的示意图。
在一种实现方式中,从关系表中获取除第N个数据表的数据流向字符串以外的其他包括第N个数据表的标识的数据流向字符串,得到第一字符串集。如果第一字符串集为{Null}(空集合),则说明不存在从该数据表中抽取数据形成的数据表,该数据表为最终数据表,即该数据表不存在影响关系。
以表二中的表6作为示例。如表二所示,表6的标识为6,表6对应的数据流向字符串为/1/2/4/6。从表二中获取除表6对应的数据流向字符串以外的其他包括表6的标识的数据流向字符串,即除/1/2/4/6以外的其他包括6的数据流向字符串,得到第一字符串集为{Null}。由此,可以确定不存在从表6中抽取数据形成的数据表,表6为最终数据表,即表6不存在影响关系。
本公开的数据流向确定方法,数据表的数据流向字符串可以表示数据表的血缘关系,由此对于任一数据表,能够根据关系表中包含该数据表的标识的所有数据流向字符串制作该数据表的影响关系的示意图,一方面够够加快制作数据表的影响关系的示意图,另一方面能够提高数据表数量较大时数据表的影响关系的示意图的制作效率,从而提高用户的使用体验。
图5示出根据本公开一实施例的数据流向确定方法的流程图。该方法应用于ETL处理系统中。如图5所示,该方法包括步骤S41至步骤S44。
在步骤S41中,从关系表中获取除第N个数据表的数据流向字符串以外的其他包括第N个数据表的标识的数据流向字符串,得到第一字符串集。
在步骤S42中,对第一字符串集中的任一数据流向字符串,若该数据流向字符串包括第N个数据表的数据流向字符串,则将第一字符串集中的该数据流向字符串中包含的第N个数据表的数据流向字符串替换为第N个数据表的标识之后添加到第二字符串集。
在步骤S43中,将第二字符串集中的任意两个数据流向字符串进行比较,如果一个数据流向字符串包括另一个数据流向字符串,则将被包括的数据流向字符串删除,得到第三字符串集。
在步骤S44中,对第三字符串集中的每个数据流向字符串,将数据流向字符串包括的第N个数据表的标识替换为第N个数据表的数据流向字符串,得到第四字符串集。
承接上述步骤S43的例子,对于第三字符串集{2/3/5,2/4/6},分别将2/3/5、2/4/6包括的表2的标识替换为表2对应的数据流向字符串,即将2替换为/1/2,得到第四字符串集{/1/2/3/5,/1/2/4/6}。
在一种实现方式中,第四字符串集包括的数据流向字符串可以表示数据表的全链关系,按照该数据表的全链关系,数据流向字符串依次记录了该全链关系经过的数据表的标识。第四字符串集包括了表示该数据表的所有全链关系的数据流向字符串。
承接上述步骤S44的例子,对于第四字符串集{/1/2/3/5,/1/2/4/6},即表示表2的全链关系。根据第四字符串集{/1/2/3/5,/1/2/4/6},可以画出如图3d所示的表2的全链关系的示意图。
本公开的数据流向确定方法,数据表的数据流向字符串可以表示数据表的血缘关系,由此对于任一数据表,能够根据关系表中包含该数据表的标识的所有数据流向字符串制作该数据表的全链关系的示意图,一方面够够加快制作数据表的全链关系的示意图,另一方面能够提高数据表数量较大时数据表的全链关系的示意图的制作效率,从而提高用户的使用体验。
图6示出根据本公开一实施例的数据流向确定方法的流程图。该方法应用于ETL处理系统中。如图6所示,该方法包括步骤S61至步骤S63。
在步骤S61中,对关系表中每个数据表的数据流向字符串,将数据流向字符串按照相邻关系拆分为字符对。
在步骤S62中,将字符对进行去重处理,得到字符对集。
在步骤S63中,根据字符对集包括的字符对,得到关系表对应的数据地图。
其中,关系表对应的数据地图可以指用于展示关系表包括的每个数据表的数据流向的示意图。
以表二作为示例。如表二所示,关系表中的数据流向字符串有/1、/1/2、/1/2/3、/1/2/4、/1/2/3/5和/1/2/4/6。将每个数据流向字符串按照相邻关系拆分为表示数据流向关系的字符对,例如,/1不包含相邻关系,无法拆分;对于/1/2,拆分得到(1,2);对于/1/2/3,拆分得到(1,2)(2,3);对于/1/2/4,拆分得到(1,2)(2,4);对于/1/2/3/5,拆分得到(1,2)(2,3)(3,5);对于/1/2/4/6,拆分得到(1,2)(2,4)(4,6)。其中,(1,2)表示表1的数据流向表2,即表1指向表2的数据流向关系。
将字符对进行分割。具体地,将(1,2)(2,3)按照空格分割得到(1,2),(2,3);将(1,2)(2,4)按照空格分割得到(1,2),(2,4);将(1,2)(2,3)(3,5)按照空格分割得到(1,2),(2,3),(3,5);将(1,2)(2,4)(4,6)按照空格分割得到(1,2),(2,4),(4,6)。合并分割以后的字符对,并将字符对进行去重处理,得到字符对集{(1,2),(2,3),(2,4),(3,5),(4,6)}。根据字符对集{(1,2),(2,3),(2,4),(3,5),(4,6)},可以画出如图3e所示的表二对应的数据地图。
本公开的数据流向确定方法,数据表的数据流向字符串可以表示数据表的血缘关系,能够根据关系表中每个数据表的数据流向字符串制作关系表对应的数据地图,一方面够够加快制作关系表对应的数据地图,另一方面能够提高数据表数量较大时关系表对应的数据地图的制作效率,从而提高用户的使用体验。
图7示出根据本公开一实施例的数据流向确定方法的流程图。该方法应用于ETL处理系统中。如图7所示,该方法包括步骤S71至步骤S76。
在步骤S71中,设置字符串变量集,字符串变量集初始包括关系表中每个数据表的数据流向字符串。
在步骤S72中,从字符串变量集中获取字符串长度最长的第三数据流向字符串。
在步骤S73中,将第三数据流向字符串从字符串变量集中删除,并将第三数据流向字符串添加至第五字符串集。
在步骤S74中,将字符串变量集中剩余的每个数据流向字符串分别与第三数据流向字符串进行比较,将被第三数据流向字符串包含的数据流向字符串从字符串变量集中删除。
在步骤S75中,在字符串变量集不为空集时,返回执行步骤S72至步骤S74,在字符串变量集为空集时,执行步骤S76。
在步骤S76中,根据第五字符串集包括的数据流向字符串,得到关系表对应的数据地图。
以表二作为示例。如表二所示,关系表中的数据流向字符串有/1、/1/2、/1/2/3、/1/2/4、/1/2/3/5和/1/2/4/6。设置字符串变量集,初始时的字符串变量集为{/1,/1/2,/1/2/3,/1/2/4,/1/2/3/5,/1/2/4/6}。
获取字符串变量集中字符串长度最长的任一数据流向字符串,例如/1/2/4/6。将字符串变量集中的/1/2/4/6删除,则字符串变量集变为{/1,/1/2,/1/2/3,/1/2/4,/1/2/3/5}。将字符串变量集{/1,/1/2,/1/2/3,/1/2/4,/1/2/3/5}中的每个数据流向字符串分别与/1/2/4/6进行比较。具体地,将/1和/1/2/4/6进行比较,/1/2/4/6包括/1,则将字符串变量集中的/1删除;将/1/2和/1/2/4/6进行比较,/1/2/4/6包括/1/2,则将字符串变量集中的/1/2删除。最终,字符串变量集变为{/1/2/3,/1/2/3/5}。将/1/2/4/6添加至第五字符串集。
获取字符串变量集中字符串长度最长的任一数据流向字符串/1/2/3/5。将字符串变量集中的/1/2/3/5删除,则字符串变量集变为{/1/2/3}。将字符串变量集{/1/2/3}中的每个数据流向字符串分别与/1/2/3/5进行比较。具体地,将/1/2/3和/1/2/3/5进行比较,/1/2/3/5包括/1/2/3,则将字符串变量集中的/1/2/3删除。最终,字符串变量集变为{Null}。将/1/2/3/5添加至第五字符串集。根据第五字符串集{/1/2/4/6,/1/2/3/5},可以画出如图3e所示的表二对应的数据地图。
本公开的数据流向确定方法,数据表的数据流向字符串可以表示数据表的血缘关系,能够根据关系表中每个数据表的数据流向字符串制作关系表对应的数据地图,一方面够够加快制作关系表对应的数据地图,另一方面能够提高数据表数量较大时关系表对应的数据地图的制作效率,从而提高用户的使用体验。
需要说明的是,本领域技术人员能够理解,虽然以图4、图5、图6和图7作为示例,介绍了通过关系表中数据表的数据流向字符串制作数据表的影响关系、全链关系和关系表对应的数据地图的示意图,但本公开不限于此。但凡通过关系表中数据表的数据流向字符串制作数据表的影响关系、全链关系和关系表对应的数据地图的示意图的方法都属于本公开保护的范围。
图8示出根据本公开一实施例的数据流向确定装置的框图。该装置应用于ETL处理系统中。如图8所示,该装置包括:
第一记录模块11,用于将数据表和对应的来源表的关联关系记录在关系表中,将不存在来源表的数据表作为初始数据表;第二记录模块12,用于将所述初始数据表的标识作为所述初始数据表的第一数据流向字符串记录在所述关系表中;确定模块13,用于从所述关系表中确定第N个数据表对应的来源表的标识;其中,N为大于或等于1的整数,在N等于1时,第1个表为所述初始数据表;第一获取模块14,用于从所述关系表中获取与所述第N个数据表对应的来源表的标识相同的数据表的第二数据流向字符串;添加模块15,用于将所述第N个数据表的标识添加在所述第二数据流向字符串中最后一个标识之后,得到所述第N个数据表的数据流向字符串。
在一种实现方式中,所述装置还包括:第二获取模块,用于从所述关系表中获取除第N个数据表的数据流向字符串以外的其他包括所述第N个数据表的标识的数据流向字符串,得到第一字符串集;第一处理模块,用于对所述第一字符串集中的任一数据流向字符串,若该数据流向字符串包括所述第N个数据表的数据流向字符串,则将第一字符串集中的该数据流向字符串中包含的所述第N个数据表的数据流向字符串替换为所述第N个数据表的标识之后添加到第二字符串集;第二处理模块,用于将所述第二字符串集中的任意两个数据流向字符串进行比较,如果一个数据流向字符串包括另一个数据流向字符串,则将被包括的数据流向字符串删除,得到第三字符串集。
在一种实现方式中,所述装置还包括:第三处理模块,用于对所述第三字符串集中的每个数据流向字符串,将数据流向字符串包括的所述第N个数据表的标识替换为所述第N个数据表的数据流向字符串,得到第四字符串集。
在一种实现方式中,所述装置还包括:拆分模块,用于对所述关系表中每个数据表的数据流向字符串,将数据流向字符串按照相邻关系拆分为字符对;去重模块,用于将所述字符对进行去重处理,得到字符对集;制图模块,用于根据所述字符对集包括的字符对,得到所述关系表对应的数据地图。
在一种实现方式中,所述装置还包括:设置模块,用于设置字符串变量集,所述字符串变量集初始包括所述关系表中每个数据表的数据流向字符串;第三获取模块,用于从所述字符串变量集中获取字符串长度最长的第三数据流向字符串;第四处理模块,用于将所述第三数据流向字符串从所述字符串变量集中删除,并将所述第三数据流向字符串添加至第五字符串集;第五处理模块,用于将所述字符串变量集中剩余的每个数据流向字符串分别与所述第三数据流向字符串进行比较,将被所述第三数据流向字符串包含的数据流向字符串从所述字符串变量集中删除;返回模块,用于在所述字符串变量集不为空集时,返回执行所述从所述字符串变量集中获取字符串长度最长的第三数据流向字符串的操作;制图模块,用于在所述字符串变量集为空集时,根据所述第五字符串集包括的数据流向字符串,得到所述关系表对应的数据地图。
本公开的数据流向确定装置,能够得到关系表中每个数据表的数据流向字符串,数据表的数据流向字符串可以表示数据表的血缘关系,由此能够通过关系表中每个数据表的数据流向字符串确定数据流向,简化确定数据流向的过程,提高确定数据流向的效率,缩短确定数据流向的时间,从而提高用户的使用体验。
图9示出根据本公开一实施例的数据流向确定装置的框图。参照图9,该装置900可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,处理器901通过读取机器可读存储介质902中与数据流向确定逻辑对应的机器可执行指令以执行上文所述的数据流向确定方法。
本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种数据流向确定方法,其特征在于,所述方法包括:
将数据表和对应的来源表的关联关系记录在关系表中,将不存在来源表的数据表作为初始数据表;
将所述初始数据表的标识作为所述初始数据表的第一数据流向字符串记录在所述关系表中;
从所述关系表中确定第N个数据表对应的来源表的标识;其中,N为大于或等于1的整数,在N等于1时,第1个表为所述初始数据表;
从所述关系表中获取与所述第N个数据表对应的来源表的标识相同的数据表的第二数据流向字符串;
将所述第N个数据表的标识添加在所述第二数据流向字符串中最后一个标识之后,得到所述第N个数据表的数据流向字符串。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从所述关系表中获取除第N个数据表的数据流向字符串以外的其他包括所述第N个数据表的标识的数据流向字符串,得到第一字符串集;
对所述第一字符串集中的任一数据流向字符串,若该数据流向字符串包括所述第N个数据表的数据流向字符串,则将第一字符串集中的该数据流向字符串中包含的所述第N个数据表的数据流向字符串替换为所述第N个数据表的标识之后添加到第二字符串集;
将所述第二字符串集中的任意两个数据流向字符串进行比较,如果一个数据流向字符串包括另一个数据流向字符串,则将被包括的数据流向字符串删除,得到第三字符串集。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
对所述第三字符串集中的每个数据流向字符串,将数据流向字符串包括的所述第N个数据表的标识替换为所述第N个数据表的数据流向字符串,得到第四字符串集。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述关系表中每个数据表的数据流向字符串,将数据流向字符串按照相邻关系拆分为字符对;
将所述字符对进行去重处理,得到字符对集;
根据所述字符对集包括的字符对,得到所述关系表对应的数据地图。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
设置字符串变量集,所述字符串变量集初始包括所述关系表中每个数据表的数据流向字符串;
从所述字符串变量集中获取字符串长度最长的第三数据流向字符串;
将所述第三数据流向字符串从所述字符串变量集中删除,并将所述第三数据流向字符串添加至第五字符串集;
将所述字符串变量集中剩余的每个数据流向字符串分别与所述第三数据流向字符串进行比较,将被所述第三数据流向字符串包含的数据流向字符串从所述字符串变量集中删除;
在所述字符串变量集不为空集时,返回执行所述从所述字符串变量集中获取字符串长度最长的第三数据流向字符串的操作;
在所述字符串变量集为空集时,根据所述第五字符串集包括的数据流向字符串,得到所述关系表对应的数据地图。
6.一种数据流向确定装置,其特征在于,所述装置包括:
第一记录模块,用于将数据表和对应的来源表的关联关系记录在关系表中,将不存在来源表的数据表作为初始数据表;
第二记录模块,用于将所述初始数据表的标识作为所述初始数据表的第一数据流向字符串记录在所述关系表中;
确定模块,用于从所述关系表中确定第N个数据表对应的来源表的标识;其中,N为大于或等于1的整数,在N等于1时,第1个表为所述初始数据表;
第一获取模块,用于从所述关系表中获取与所述第N个数据表对应的来源表的标识相同的数据表的第二数据流向字符串;
添加模块,用于将所述第N个数据表的标识添加在所述第二数据流向字符串中最后一个标识之后,得到所述第N个数据表的数据流向字符串。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于从所述关系表中获取除第N个数据表的数据流向字符串以外的其他包括所述第N个数据表的标识的数据流向字符串,得到第一字符串集;
第一处理模块,用于对所述第一字符串集中的任一数据流向字符串,若该数据流向字符串包括所述第N个数据表的数据流向字符串,则将第一字符串集中的该数据流向字符串中包含的所述第N个数据表的数据流向字符串替换为所述第N个数据表的标识之后添加到第二字符串集;
第二处理模块,用于将所述第二字符串集中的任意两个数据流向字符串进行比较,如果一个数据流向字符串包括另一个数据流向字符串,则将被包括的数据流向字符串删除,得到第三字符串集。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第三处理模块,用于对所述第三字符串集中的每个数据流向字符串,将数据流向字符串包括的所述第N个数据表的标识替换为所述第N个数据表的数据流向字符串,得到第四字符串集。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
拆分模块,用于对所述关系表中每个数据表的数据流向字符串,将数据流向字符串按照相邻关系拆分为字符对;
去重模块,用于将所述字符对进行去重处理,得到字符对集;
制图模块,用于根据所述字符对集包括的字符对,得到所述关系表对应的数据地图。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
设置模块,用于设置字符串变量集,所述字符串变量集初始包括所述关系表中每个数据表的数据流向字符串;
第三获取模块,用于从所述字符串变量集中获取字符串长度最长的第三数据流向字符串;
第四处理模块,用于将所述第三数据流向字符串从所述字符串变量集中删除,并将所述第三数据流向字符串添加至第五字符串集;
第五处理模块,用于将所述字符串变量集中剩余的每个数据流向字符串分别与所述第三数据流向字符串进行比较,将被所述第三数据流向字符串包含的数据流向字符串从所述字符串变量集中删除;
返回模块,用于在所述字符串变量集不为空集时,返回执行所述从所述字符串变量集中获取字符串长度最长的第三数据流向字符串的操作;
制图模块,用于在所述字符串变量集为空集时,根据所述第五字符串集包括的数据流向字符串,得到所述关系表对应的数据地图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810533185.0A CN108846039B (zh) | 2018-05-29 | 2018-05-29 | 数据流向确定方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810533185.0A CN108846039B (zh) | 2018-05-29 | 2018-05-29 | 数据流向确定方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108846039A true CN108846039A (zh) | 2018-11-20 |
CN108846039B CN108846039B (zh) | 2020-12-01 |
Family
ID=64209969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810533185.0A Active CN108846039B (zh) | 2018-05-29 | 2018-05-29 | 数据流向确定方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108846039B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125229A (zh) * | 2019-12-24 | 2020-05-08 | 杭州数梦工场科技有限公司 | 数据血缘生成方法、装置、电子设备 |
CN111723087A (zh) * | 2019-03-19 | 2020-09-29 | 北京沃东天骏信息技术有限公司 | 数据血缘关系的挖掘方法、装置、存储介质和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090248620A1 (en) * | 2008-03-31 | 2009-10-01 | Oracle International Corporation | Interacting methods of data extraction |
CN103955526A (zh) * | 2014-05-09 | 2014-07-30 | 中国联合网络通信集团有限公司 | 数据存储方法和装置 |
CN104881427A (zh) * | 2015-04-01 | 2015-09-02 | 北京科东电力控制系统有限责任公司 | 一种面向电网调控运行的数据血统分析方法 |
CN106251198A (zh) * | 2016-07-27 | 2016-12-21 | 潘志焱 | 一种可追溯来源的供货单处理方法及系统 |
CN107169023A (zh) * | 2017-04-07 | 2017-09-15 | 广东精点数据科技股份有限公司 | 基于sql语义自动解析的数据血统分析系统及方法 |
-
2018
- 2018-05-29 CN CN201810533185.0A patent/CN108846039B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090248620A1 (en) * | 2008-03-31 | 2009-10-01 | Oracle International Corporation | Interacting methods of data extraction |
CN103955526A (zh) * | 2014-05-09 | 2014-07-30 | 中国联合网络通信集团有限公司 | 数据存储方法和装置 |
CN104881427A (zh) * | 2015-04-01 | 2015-09-02 | 北京科东电力控制系统有限责任公司 | 一种面向电网调控运行的数据血统分析方法 |
CN106251198A (zh) * | 2016-07-27 | 2016-12-21 | 潘志焱 | 一种可追溯来源的供货单处理方法及系统 |
CN107169023A (zh) * | 2017-04-07 | 2017-09-15 | 广东精点数据科技股份有限公司 | 基于sql语义自动解析的数据血统分析系统及方法 |
Non-Patent Citations (1)
Title |
---|
陈进: "关于数据仓库元数据管理系统的研究与建立", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111723087A (zh) * | 2019-03-19 | 2020-09-29 | 北京沃东天骏信息技术有限公司 | 数据血缘关系的挖掘方法、装置、存储介质和电子设备 |
CN111723087B (zh) * | 2019-03-19 | 2023-11-10 | 北京沃东天骏信息技术有限公司 | 数据血缘关系的挖掘方法、装置、存储介质和电子设备 |
CN111125229A (zh) * | 2019-12-24 | 2020-05-08 | 杭州数梦工场科技有限公司 | 数据血缘生成方法、装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108846039B (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100880531B1 (ko) | 단일 데이터 검색을 위한 파일 생성 방법 및 단일 데이터파일의 검색방법 그리고 단일 파일 검색을 위한 rat파일이 저장된 기록매체 | |
CN104298736B (zh) | 数据集合连接方法、装置及数据库系统 | |
CN105045528B (zh) | 一种快速的fat32磁盘分区遍历及文件查找方法 | |
RU2016123091A (ru) | Способ и система для обработки данных | |
CN106611044A (zh) | 一种sql优化方法及设备 | |
CN106649627A (zh) | 一种日志查找的方法和装置 | |
CN103150359B (zh) | 微博信息显示方法和装置 | |
CN108846039A (zh) | 数据流向确定方法及装置 | |
CN103870588A (zh) | 一种在数据库中使用的方法及装置 | |
CN106844431A (zh) | 文件存储方法、装置及其电子设备 | |
CN104407991A (zh) | 一种数据存储方法及装置 | |
CN103257971B (zh) | 终端和文件管理方法 | |
JP2017532690A (ja) | 重複ウェブページを除去する方法および装置 | |
US9454550B2 (en) | Database method for B+ tree based on PRAM | |
CN109254971A (zh) | 资源编目方法及装置 | |
CN102169491A (zh) | 一种多数据集中重复记录动态检测方法 | |
CN104408128B (zh) | 一种基于b+树异步更新索引的读优化方法 | |
CN107402982A (zh) | 数据写入、数据匹配方法、装置及计算设备 | |
CN106599122A (zh) | 一种基于垂直分解的并行频繁闭序列挖掘方法 | |
CN109947705A (zh) | 一种石油工程数据的存取系统与方法 | |
CN108241620A (zh) | 查询脚本的生成方法及装置 | |
CN105426676A (zh) | 一种钻井数据处理方法和系统 | |
CN106934033A (zh) | 一种弯板机器人数据索引方法及装置 | |
CN110032664A (zh) | 一种快速建立比特币区块链全节点地址索引的方法 | |
CN109255011A (zh) | 一种基于人工智能的搜索提示方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |