基于数据湖的自助式数据分析方法、装置和电子设备与流程
未命名
07-22
阅读:75
评论:0

1.本发明涉及数据处理技术领域,特别是一种基于数据湖的自助式数据分析方法、装置和电子设备。
背景技术:
2.数据湖是一个集中式的存储库,用于存储任意规模的多个来源的结构化、半结构化和非结构化数据,为各类数字化应用提供数据服务。然而,现有的数据湖技术的元数据模型设计简单,存储位置分散,缺少相关工具,无法实现对数据的快速检索,相关的数据分析工作高度依赖于it参与,用户无法快速了解湖中数据分布情况、数据样貌,不能直接分析得到相应数据价值。
3.因此,有必要开发一种基于数据湖的自助式数据分析方法、装置和电子设备,以实现快速准确地对数据湖中数据的数据定位与分析。
技术实现要素:
4.鉴于上述问题,本发明实施例提供了一种基于数据湖的自助式数据分析方法、装置和电子设备,以便克服上述问题或者至少部分地解决上述问题。
5.本发明实施例第一方面提供了一种基于数据湖的自助式数据分析方法,所述方法包括:对数据湖的元数据信息进行管理,创建元数据图数据库,所述元数据图数据库以图结构的方式对所述元数据信息进行存储;对所述数据湖的数据进行分区分类,生成数据资产地图,所述数据资产地图以图形化的方式展示存储数据资产的分布情况和各个数据资产之间的关系;根据所述元数据图数据库和所述数据资产地图,定位待分析数据;对所述待分析数据进行etl作业,收集etl作业过程中的sql语句信息;根据所述sql语句信息,生成血缘图谱;根据所述血缘图谱,生成对所述待分析数据的分析结果。
6.本实施例第二方面还提出了一种数据分析装置,所述装置包括:元数据图数据库生成模块,用于对数据湖的元数据信息进行管理,创建元数据图数据库,所述元数据图数据库以图结构的方式对所述元数据信息进行存储;数据资产地图生成模块,用于对所述数据湖的数据进行分区分类,生成数据资产地图,所述数据资产地图以图形化的方式展示数据资产的分布情况和各个数据资产之间的关系;定位模块,用于根据所述元数据图数据库和所述数据资产地图,定位待分析数据;作业模块,用于对所述待分析数据进行etl作业,得到etl作业过程中的sql语句信息;血缘图谱生成模块,用于根据所述sql语句信息,生成血缘图谱;
分析模块,用于根据所述血缘图谱,生成对所述待分析数据的分析结果。
7.本实施例第三方面还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如本发明实施例第一方面任一所述的基于数据湖的自助式数据分析方法中的步骤。
8.本发明实施例第四方面还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现本发明实施例第一方面任一所述的基于数据湖的自助式数据分析方法中的步骤。
9.本技术实施例第五方面提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现第一方面中任一所述的基于数据湖的自助式数据分析方法中的步骤。
10.本发明实施例提供的一种基于数据湖的自助式数据分析方法、装置和电子设备,该方法包括:对数据湖的元数据信息进行管理,创建元数据图数据库,所述元数据图数据库以图结构的方式对所述元数据信息进行存储;对所述数据湖的数据进行分区分类,生成数据资产地图,所述数据资产地图以图形化的方式展示数据资产的分布情况和各个数据资产之间的关系;根据所述元数据图数据库和所述数据资产地图,定位待分析数据;对所述待分析数据进行etl作业,收集etl作业过程中的sql语句信息;根据所述sql语句信息,生成血缘图谱;根据所述血缘图谱,生成对所述待分析数据的分析结果。本技术实施例一方面通过创建元数据图数据库,以对数据湖的元数据信息进行统一管理,通过生成数据资产地图,理清数据资产的分布和关系,从而基于元数据图数据库和数据资产地图实现对数据的快速检索和定位。另一方面,在通过采集sql语句信息,生成数据血缘图谱,根据血缘图谱,进行自动的数据分析,实现了快速准确的数据分析。
附图说明
11.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
12.图1是本发明实施例提供的一种基于数据湖的自助式数据分析方法的步骤流程图;图2是本发明实施例提供的一种元数据图数据库的创建步骤流程图;图3是本发明实施例提供的一种数据资产地图的生成过程示意图;图4是本发明实施例提供的一种基于血缘图谱的数据分析过程示意图;图5是本发明实施例提供的一种自助式数据分析装置的结构示意图;图6是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
13.下面将结合本发明实施例中的附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能
够将本发明的范围完整的传达给本领域的技术人员。
14.本实施例提出了一种基于数据湖的自助式数据分析方法,参照图1,图1示出了一种基于数据湖的自助式数据分析方法的步骤流程图,如图1所示,该方法包括:步骤s101,对数据湖的元数据信息进行管理,创建元数据图数据库,所述元数据图数据库以图结构的方式对所述元数据信息进行存储。
15.元数据(metadata),又称中介数据、中继数据,是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据也是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。本实施例中的元数据信息表示元数据在内的相关信息。需要注意的是,本实施例以及后续所有实施例中所提到的数据湖均表示基于delta lake技术构建的数据湖。
16.在相关技术中,delta lake数据湖中对元数据信息的管理主要依靠元数据模型执行。然而,现有的元数据模型设计简单,存储信息较少,一般将元数据信息存储在log文件中,基于文件的存储较为分散,在进行数据检索时,需要对文件一个一个进行遍历,从而导致检索效率较低,无法实现快速检索。
17.为了解决上述问题,本技术实施例对delta lake数据湖中的数据的元数据信息进行管理,对已入湖业务数据的分散元数据信息进行提取,根据自身业务流程设计的元数据模型进行封装,封装成一致的元数据模型对象,统一存储至元数据图数据库中,以图结构的方式对元数据信息进行存储,进行集中式管理,利用图数据库自身的快速数据检索功能,实现对数据的快速定位。
18.在一种可能的实施方式中,所述步骤s101,对数据湖的元数据信息进行管理,创建元数据图数据库,包括:步骤s1011,设计符合业务流程的元数据模型。
19.元数据模型是用于定义元数据属性和关系的模型。在设计元数据模型时,要符合业务的数据现状。具体的,数据湖中的数据很有可能来源于不同的数据中心,存储多个数据源,具有不同的数据结构。不同的业务,产生的数据之间差异较大,需要由不同的元数据模型进行处理。所以,在本实施例中,在设计元数据模型时,需要根据数据湖所涉及的业务,设计符合对应的业务流程的模型。
20.在具体实施时,元数据模型为用于描述数据的模型,用于确定数据的定义、属性、关系和约束等信息,元数据模型是基类,数据的元数据信息是该元数据模型的实体对象。不同具体的,根据元数据的属性可以至少将元数据分为技术元数据、业务元数据、操作元数据三类。其中,技术元数据是描述系统中技术领域中的相关概念信息,包括数据结构、数据处理方式、特征描述、数据处理环节等信息,进一步的,其中包括了数据库表名称、列名称、字段长度、字段类型、数据存储位置、数据血缘关系等信息。业务元数据是描述数据的业务含义、业务规则的信息,包括:业务定义、术语、业务规则、业务指标等信息。操作元数据是描述数据操作属性的信息,包括数据所有者、数据使用者、数据访问方式、访问时间、访问权限等信息。
21.步骤s1012,对所述数据湖的已入湖业务数据进行文件目录遍历,解析所述文件目录中的log信息,得到基础元数据信息;所述基础元数据信息至少包括:数据修改行为信息,schema信息和数据存储位置信息。
22.在具体实施时,对已入湖的业务数据进行文件目录遍历,解析其中的delta _log文件(即文件目录中的log信息)。具体的,该log信息中包含协议信息(protocol)、元数据信息(metadata)、指令信息(commitinfo)和属性信息(settransction)四种元数据信息。其中,commitinfo记录当前数据的修改行为,包含创建时间、修改时间、操作模式等行为信息;metadata中包含当前数据的逻辑结构集合信息(schema信息),该schema信息是指数据所在的列信息。在本实施例中,通过解析log信息,对解析得到的内容进行信息提取,修改行为信息、schema信息和数据存储位置信息,构成了该数据的基础元数据信息。
23.步骤s1013,利用设计的所述元数据模型,对所述基础元数据信息进行数据融合,得到元模型对象。
24.本实施例利用步骤s1011得到的元数据模型,对数据的基础元数据信息进行数据融合,进一步完善该数据的元数据信息,生成对应的元模型对象。在数据融合过程中,不仅为其添加对应的属性信息,还添加有数据与数据之间的关系信息。本实施例中,一个数据库,可以是一个元模型对象,该数据库中的一列数据,也可以是一个元模型对象,所以,元模型对象与元模型对象之间可能存在包含、平行等多种关系。这些元模型对象之间的关系,即,数据与数据之间的关系,同样可以由元数据模型基于基础元数据信息得到。例如,用于分析关系的元数据模型,根据基础元数据信息中的schema信息,分析生成元数据对象与元数据对象之间的关系。所以,在数据融合过程中,元数据模型,为该数据的元数据信息添加属性信息、关系信息等,得到信息更加完善的元数据对象。
25.在一种可能的实施方式中,所述步骤s1013对所述基础元数据信息进行数据融合,得到元模型对象,包括:步骤s1013a,利用所述元数据模型,将所述基础元数据信息映射到元模型相应属性。
26.在具体实施时,利用元数据模型为该数据的元数据信息添加相关的属性标签。技术元数据、业务元数据、操作元数据分别为属性集合,每个属性集合中的每一种属性都是key和value的键值对的形式,元数据模型将基础元数据信息映射到相应的key上,从而根据key的取值,确定对应的value,进而确定该基础元数据信息所对应的属性。
27.步骤s1013b,根据用户输入的信息,为所述基础元数据信息添加其他元数据信息。
28.需要知道的是,数据中存在无法直接从log信息中提取得到的元数据信息,例如数据归属部门,数据管理员,数据访问权限等信息,是需要人为指定或确定的数据。此类无法自动提取的信息,需要由用户手动输入,然后转化为其他元数据信息,添加到基础元数据信息中。由此,本技术通过手动添加无法直接提取得到的其他元数据信息,实现了对基础元数据信息的进一步完善。
29.步骤s1013c,将所述基础元数据信息封装为格式一致的元模型对象。
30.在具体实施时,通过元数据模型对提取得到的基础元数据信息,添加对应的属性,将提取的基础元数据信息映射到元模型相应属性,并且,对于无法自动提取的元数据信息,通过手动的方式进行添加,最后,将完整的元数据封装形成一致的元模型对象。所述元模型对象中含有元数据模型所有的属性信息,即,一个元模型对象,表示一个数据的所有属性的集合,对于一个数据来说,其具有多个属性,通过元数据模型分析可以得到,每个基础元数据信息中包含了多个key值,从而根据key值,可以找到该基础元数据信息对应的多个属性。
31.步骤s1014,将所述元模型对象转化为图对象,存储在所述元数据图数据库中。
32.在本实施例中,每个元模型对象会被转化为图对象的形式,元数据图数据库以图结构的方式进行存储。具体的,以一个元模型对象的名称为图中的一个节点,该元模型对象的每个属性为节点,其中的边为属性对应的key值。由此,以图结构的方式进行元数据信息集中存储与管理,存储有元数据的属性信息和元数据之间的关系信息,有效解决面向多跳的关联关系查询低效或者不支持的问题。此外,元数据图数据库属于用于存储元数据信息的图数据库,所以具备图数据库一般具备的快速检索功能,能够数据检索基于统一存储的元数据图数据库,在图数据库上执行数据检索任务,实现数据的快速检索。
33.参照图2,图2示出了一种元数据图数据库的创建步骤流程图,如图2所示,多源异构数据中至少包括整合数据、第三方数据和系统数据,数据通过数据接入接口或数据接入系统进入delta lake数据湖。同步的,按照步骤s1011进行元数据模型设计,得到业务流程元模型,即,符合对应的业务流程的元数据模型。对于已入湖的数据,按照步骤s1012进行文件目录遍历,解析delta log日志中的log信息,得到基础元数据信息。接着,执行步骤s1013,利用设计的元数据模型,对基础元数据信息进行数据融合,构建元模型对象。最后执行步骤s1014将元模型对象存入图数据库,形成图对象,以图结构的形式对元数据信息进行存储,得到元数据图数据库。利用图数据库自身的快速检索功能,能够实现基于图对象的数据的快速定位。
34.步骤s102,对所述数据湖的数据进行分区分类,生成数据资产地图,所述数据资产地图以图形化的方式展示数据资产的分布情况和各个数据资产之间的关系。
35.在具体实施时,多源异构数据通过数据接入接口或数据接入系统接入数据湖时,通过携带的数据类型标进行数据分区推荐,分区粒度以数据类型和存储位置的组合进行推荐。在完成分区推荐之后,进行数据汇聚,对非结构化数据中的文本信息通过分类模型进行分类后与已分类文本信息进行数据汇聚。分区、分类后的数据根据分区和分类情况在元数据信息上添加相应的分区分类标签,通过元数据信息的分区分类标签生成数据资产地图。元数据信息中的分类属性是生成资产地图中数据分类的打标的前置条件。通过步骤s101,实现对元数据信息的进一步完善,为其添加属性信息,从而在步骤s102中,根据完善后的元数据信息,尤其是该元数据信息中的属性相关的信息,实现对该数据的分区分类,进而根据分区分类信息,生成数据资产地图。数据资产地图以图形化的方式展示数据资产的分布情况和各个数据资产之间的关系,该数据资产地图支持查询关键字、组合条件的功能,以实现数据资产的快速检索,能够帮助数据使用者理清数据资产的存储分布和关系,方便数据使用者做进一步的数据分析工作。
36.在一种可能的实施方式中,所述步骤s102,对所述数据湖的数据进行分区分类,生成数据资产地图,包括:步骤s1021,对所述数据湖的数据进行类型识别,确定每个所述数据湖的数据的数据类型,所述数据类型包括:结构化数据类型、半结构化数据类型和非结构化数据类型。
37.在本实施例中,新入湖的数据或待入湖的数据属于多源异构数据,在通过数据接入接口或数据接入系统接入数据湖时,需要先进行数据类型识别,将数据区分为结构化数据、半结构化数据和非结构化数据。此外,可以按照数据库种类来区分数据来源。具体的,结构化数据表示可以通过固有键值获取的相应信息,一般以关系型数据库来表示和存储,数
据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的,数据的存储和排列具有规律。半结构化数据表示可以通过灵活的键值调整得到的信息,半结构化数据的数据格式不固定,同一键值下存储的信息可能是数值型的,可能是文本型的,也可能是字典或者列表。非结构化数据没有固定的数据格式,包含全部格式的办公文档、文本、图片、报表、图像或音频等,一般直接整体进行存储。
38.步骤s1022,根据所述数据类型,对每个所述数据湖的数据进行数据湖落位推荐,对每个数据的元数据信息添加分区标签,得到落位后的数据。
39.在具体实施时,根据识别得到的数据类型,对每个数据进行数据湖落位推荐,即,对数据进行分区,例如,将数据类型为结构化数据类型的数据落位至mysql数据区,将数据类型为非结构化数据类型的数据落位至文本数据区。在完成数据落位后,根据落位区域,即根据分区结果在每个数据的元数据信息中生成相应的分区标签。
40.步骤s1023,对所述落位后的数据进行分类汇聚,得到已分类数据,为所述已分类数据的元数据信息添加分类标签。
41.数据汇聚(etl),是指将不同的业务系统的数据加载到数据仓库中,按照类别进行统一存储,例如,两份属于同一类别的文件,本身意义相同或内容相同,但文件名称不同,字段不同,通过数据汇聚,可以将这两份文件分作同一类别,来进行统一存储。本实施例可以按照分区结果,分别对结构化数据、半结构化数据和非结构化数据进行分类,并按照分类结果,通过对应的算法自动地为数据的元数据信息添加对应的分类标签。该分类标签用于表示该数据所属的类别信息。
42.在一种可能的实施方式中,在所述落位后的数据为结构化数据或半结构化数据的情况下,所述步骤s1023,对落位后的数据进行分类汇聚,得到已分类数据,包括:步骤s1023a,对所述结构化数据或所述半结构化数据进行抽取、转换、加载,将所述结构化数据或所述半结构化数据汇聚到已分类存储的结构化数据中,得到所述已分类数据。
43.在具体实施时,数据汇聚(etl)主要分为了数据的抽取(extract)、转换(transform)和加载(load),主要是把数据从各种各样的数据源中抽取出来,进行必要的转换和整理,在存放到对应的数据湖位置中,目的是将不同业务中的分散、零乱、标准不统一的数据整合到一起,为后续决策提供分析依据。
44.在所述落位后的数据为非结构化数据的情况下,所述步骤s1023,对所述落位后的数据进行分类汇聚,得到已分类数据,包括:步骤s1023b,利用文本主题分类模型对文本信息中无分类标记的所述非结构化数据进行数据主题分类。
45.步骤s1023c,利用文本主题分类规则,对文本信息中携带有分类标记的所述非结构化数据进行数据主题分类。
46.在具体实施时,落位的非结构化数据主要为文本数据,其中分为携带有分类标记的数据和未携带分类标记的数据。对于文本信息中携带有分类标记的非结构化数据,可以利用文本主题分类规则来进行数据主题分类,通过预设规则确定该分类标记所属的类别。对于文本信息中无分类标记的非结构化数据,可以利用文本主题分类模型来进行数据主题分类,例如利用bert模型(一种预训练的语言表征模型)来执行分类操作,从文本中归纳得
到该文本对应的类别信息。分类标记为文本信息中固定格式所携带的用于表示文本所属类别的信息,例如,部分文本具有固定格式,包含有“信息类别”这一字段,则可以从文本信息汇中提取得到该字段,将其作为该文本或该非结构化数据的分类标记。
47.步骤s1023d,将分类后的所述非结构化数据汇聚到已分类存储的非结构化数据中,得到所述已分类数据。
48.在一种可能的实施方式中,在将分类后的数据与原有分类存储的数据进行汇聚之前,待汇聚数据自身需要进行去重操作。具体的,将其中重复的数据去除,并且,在去重完毕后的数据汇聚前,再次检查其与已分类存储的数据是否存在重合,汇聚不重合数据,丢弃重合数据。
49.步骤s1024,根据所述分区标签和所述分类标签,生成所述数据资产地图。
50.参照图3,图3示出了一种数据资产地图的生成过程示意图,如图3所示,多源异构数据(整合数据、第三方数据和系统数据等)通过数据接入接口或系统进入数据湖时,执行步骤s1021,进行数据识别分区,确定每个数据湖的数据的数据类型为结构化数据、半结构化数据或非结构化数据。根据确定出的数据类型,执行步骤s1022,进行数据湖落位推荐,为每个数据的元数据信息添加分区标签。完成数据分区后执行步骤s1023,根据数据类型分别进行数据汇聚,对于结构化数据和半结构化数据,执行etl完成分类信息汇聚;对于非结构化数据(即文本数据)进行分类识别,根据分类识别结果进行非结构化分类文本信息汇聚。根据数据汇聚结果,为每个数据的元数据信息添加分类标签。最后,执行步骤s1024,根据分区标签和分类标签,生成数据资产地图。本实施例通过对数据进行分区、数据汇聚,实现数据的进一步分类存储,并根据分类结果,在数据的元数据信息中添加对应的分区标签和分类标签,从而基于分区标签和分类标签生成数据资产地图,以帮助数据使用者理清数据资产的分布和关系,方便数据使用者做进一步的数据分析工作。
51.步骤s103,根据所述元数据图数据库和所述数据资产地图,定位待分析数据。
52.在需要对某一特定的数据进行分析时,需要先从数据湖中查找定位该数据。在本实施例中,利用预先生成的元数据图数据库和数据资产地图,进行数据查询定位。具体的,利用元数据图数据库,可以查询得到与关键词相关的所有元数据信息,利用数据资产地图的关键词组合查询功能,能够查询得到更为精准的数据。此外,数据资产地图提供可视化功能,能够在查询过程中,以地图的形式显示查询数据的分类分区情况,例如,按照数据资产地图中的分类:a类区域、b类区域和c类区域,a类、b类和c类表示不同的数据类型,根据查询的关键词“对象a”,可以通过可视化界面直接得到数据在各个区域的分布情况,“对象a”在a类区域存在2条相关数据信息,在b类区域未查询到相关信息,在c类区域存在1条相关数据信息。通过综合元数据图数据库和数据资产地图的定位结果,可以快速准确地实现数据定位。
53.步骤s104,对所述待分析数据进行etl作业,收集etl作业过程中的结构化查询语句信息(structured query language,sql)。
54.在本实施例中,所述etl作业,表示由对应的服务器进行对应数据的etl作业的过程,在本实施例中,不对其具体的数据作业类型和方法进行限制。
55.步骤s105,根据所述sql语句信息,生成血缘图谱。
56.sql语句信息表示对数据进行etl作业的过程的完整信息,其中包括每一步对数据
的处理的操作信息,以及数据所在位置信息等。根据该sql语句信息,可以生成血缘图谱。血缘图谱用于描述数据血缘关系,将数据的来龙去脉以图形的形式进行表现,主要包含数据的来源、数据的加工方式、映射关系以及数据出口,其表现为数据存储在什么数据库的什么表,对应的字段是什么以及字段的属性,数据所属的系统以及与数据有关的应用程序。数据与数据之间的血缘关系信息属于元数据信息的一部分,清晰的数据血缘是数据平台维持稳定的基础,更有利于数据变更影响分析以及数据问题排查。
57.所述步骤s105,根据所述sql语句信息,生成血缘图谱,包括:步骤s1051,将所述etl作业中的所述sql语句信息,通过应用程序编程接口(application programming interface, api)发送至消息队列,所述sql语句信息为一个或多个数据处理引擎执行的etl作业中的sql语句信息。
58.在具体实施时,各种分析平台利用各自的数据处理引擎进行etl sql作业时,通过api接口将产生的sql语句信息统一发送到消息队列中进行。对于在步骤s103中定位得到的待分析数据,可以由单个用户利用单个数据分析引擎进行处理,得到该数据分析引擎的sql语句信息,也可以由多个用户利用不同的数据分析引擎,同时对该数据进行处理,从而得到多个不同的数据分析引擎的sql语句信息。
59.步骤s1052,监听所述消息队列中的sql语句信息,对所述消息队列中的sql语句信息进行消费,构建统一的sql语法格式。
60.由于sql语句信息可能来源于不同的数据分析引擎,本实施例通过构建统一的sql语法格式,消除差异性,对sql语句信息进行统一化处理,由此,屏蔽掉了各个数据分析平台的差异性,避免了适配不同数据分析工具的问题,减少数据血缘采集工具与数据分析引擎的适配性开发工作。
61.步骤s1053,对消费的所述sql语句信息进行语法树分析,得到数据关联关系,所述数据关联关系表示源表与目的表、字段与字段之间的指向信息。
62.在具体实施时,可以利用现有的程序执行语法树分析,本实施例不对获取数据关联关系的分析方法进行限制。利用对应的程序,以一个数据加工的完整流程为例,每个数据加工的流程都通过一个唯一的标识进行标记,流程中的每一个环节都记录其前后依赖关系,程序将每一个环节的逻辑解析以后,根据依赖关系和流程便可以生成全流程的数据关联关系,源表为数据来源所属数据表,目的表为数据流出所属数据表,该数据关联关系中包含源表与目的表、字段与字段之间的指向信息。
63.步骤s1054,根据所述sql语句信息中得到的过程节点、流出节点和流入节点,将所述数据关联关系转化为数据血缘关系;所述数据血缘关系,表示所述源表、过程节点与所述目的表之间的指向关系,和,所述字段与所述过程节点之间的指向关系。
64.在具体实施时,将etl sql作业封装为过程节点对象,根据所述sql语句信息得到的过程节点、流出节点和流入节点,将过程节点等添加到该数据关联关系中,生成数据血缘关系,并进行存储。从原有的源表-目的表之间的指向关系,转变为源表-过程节点-目的表的指向关系,从原有的字段-字段之间的指向关系,转变为字段-过程节点-字段的指向关系,从而清楚的展示出了数据从源表,通过一系列的etl sql作业,流转至目的表的过程,其中,每一个过程节点,表示对数据进行了一次处理,例如对数据进行一次提取,则对应地产生一个提取的过程节点。
65.步骤s1055,根据所述数据血缘关系,生成所述血缘图谱。
66.在本实施例中,当使用不同数据分析工具对湖中进行数据清洗、集成时,对待分析数据进行etl作业,使用统一的api接口将etl过程中的sql语句信息发送至消息队列,收集来自不同数据分析引擎的etl作业中的sql语句信息,对该sql语句信息执行统一化处理,通过语法树解析,获得数据表间的数据关联关系,通过对其进行分析,汇总,根据汇总后的数据关联关系生成数据血缘关系,根据数据血缘关系生成数据血缘图谱,从而根据血缘图谱进行下一步的价值分析。
67.在相关技术中,不同的数据分析平台在进行数据分析时,需要依赖于对应的数据分析工具,对于每一套数据分析工具,需要开发一套对应的适配器来获取etl作业的过程信息。为了提高数据分析的效率,本实施例中的数据血缘的采集方法提供了一致采集形式,通过统一的api接口,将信息发送至消息队列,统一进行数据分析,屏蔽掉了各个数据分析平台的差异性,避免了适配不同数据分析工具的问题,减少数据血缘采集工具与数据分析引擎的适配性开发工作。
68.在一种可能的实施方式中,所述步骤s1055,根据所述数据血缘关系生成所述血缘图谱,包括:步骤s1055a,以所述待分析数据作为所述血缘图谱的主节点。
69.具体的,主节点为该血缘图谱的核心,一般来说一份血缘图谱只会有一个主节点,整个血缘图谱呈现的是该主节点的数据血缘关系,所以在本实施例中,以待分析数据作为该血缘图谱的主节点。
70.步骤s1055b,以所述待分析数据的数据来源作为所述血缘图谱的数据流入节点,所述数据流入节点为所述主节点的父节点。
71.具体的,待分析数据的数据来源可以为多个数据来源,从而使得该主节点存在多个父节点,并且,数据来源是多层级的结构的情况下,主节点的父节点可以对应为多层级的父节点。
72.步骤s1055c,以所述待分析数据的数据去向作为所述血缘图谱的数据流出节点,所述数据流出节点为所述主节点的子节点;其中,所述数据流出节点包括一个终端节点,数据在到达所述终端节点后,停止数据流转。
73.具体的,数据流出节点标记主节点的数据去向,当待分析数据向多个方向流出时,则存在多个数据流出节点,并且,当数据的流出需要经过多个节点时,对应的,数据流出节点可以为多层级的子节点,从而根据层级结构,表现数据流出的方向和路径。在数据流出节点中有一个特殊的终端节点,数据到达终端节点后,将不再向别处流转。
74.步骤s1055d,标记数据的流转路径,所述流转路径表示数据从所述数据流入节点汇聚到所述主节点,再从所述主节点扩散到所述数据流出节点的路径。
75.步骤s1055e,将对所述待分析数据的etl作业步骤,作为所述血缘图谱的过程节点。具体的,标记数据的处理方式和处理规则(etl sql作业)作为过程节点,使得多个过程节点按照实际作业顺序,位于数据流转路线中。
76.步骤s106,根据所述血缘图谱,生成对所述待分析数据的分析结果。
77.在一种可能的实施方式中,所述根据所述血缘图谱,生成对所述待分析数据的分析结果,包括:
根据所述血缘图谱中的所述流转路径,进行数据溯源;具体的,根据流转路径的流转方向,可以分析确定出数据来源所表示的节点,从而得到数据来源的位置信息。根据所述血缘图谱中的所述数据流出节点的数量判断所述待分析数据的数据价值;具体的,数据流出节点的数量越多,表示该待分析数据的数据价值越大,数据流出节点的数量越少,表示该待分析数据的数据价值越小。根据所述流转路径的线条粗细,判断所述待分析数据的数据量级;具体的,流转路径的线条越粗,表示该路径上流转的数据越多,待分析数据的数据量级越大,流转路径的线条越细,表示该路径上流转的数据越少,待分析数据的数据量级越小。根据所述流转路径的线条长短,判断所述待分析数据的数据更新频率。具体的,流转路径上的线条越长,涉及的过程节点越多,表示待分析数据的数据更新频率越高,流转路径上的线条越短,涉及的过程节点越少,表示待分析数据的数据更新频率越低。
78.参照图4,图4示出了一种基于血缘图谱的数据分析过程示意图,如图4所示,在定位待分析数据后,对该数据进行etl sql作业,将产生的sql语句信息,通过api发送至消息队列,该sql语句信息为不同数据处理引擎执行的sql语句信息。接着,监听消息队列中的sql语句信息,对消息队列中的sql语句信息进行消费,构建统一的sql作业格式。对消费的sql语句信息进行语法解析,根据解析得到的信息,创建过程节点,并建立数据关联关系,得到待分析数据的数据关联关系。然后,通过数据汇总和整理,将过程节点添加到该数据关联关系中,进行存储,得到数据血缘关系,并根据数据血缘关系,生成对应的血缘图谱,实现数据血缘关系可视化。最后,根据得到的血缘图谱,可以实现数据溯源和数据价值分析。数据分析工作伴随着数据血缘的产生,本实施例基于元数据图数据库和数据资产地图,可以快速定位待分析数据,通过采集数据分析过程产生的数据血缘关系,进一步生成血缘图谱,通过对血缘图谱的分析进行数据溯源和价值分析的工作。由此,基于生成的元数据图数据库,解决了克服delta lake 数据湖因元模型设计简单,无法洞悉数据和元数据信息分散存储,无法实现快速检索的问题,基于创建的数据资产地图,解决了因汇聚数据不能自动分类无法自动实现的数据资产统计问题;本实施例通过统一的api接口,将sql语句信息发送至消息队列,对sql语句信息进行统一化处理,进而根据sql语句信息生成血缘图谱,解决了因多种数据处理引擎处理数据无法使用统一形式,进而无法获取完整、准确的数据血缘关系的问题;最后,本实施例基于生成的血缘图谱对待分析数据进行分析,能够快速且准确地获取分析结果,克服了因缺少可视化工具无法直观评估数据价值的缺陷。
79.在相关技术中,数据湖是一个集中式的存储库,允许存储任意规模的多个来源、所有结构化、半结构化和非结构化数据。delta lake技术能够快速帮助企业快速构建数据湖,但因其元数据模型设计简单,存储位置分散,缺少相关工具,用户无法快速了解湖中数据分布情况、数据样貌,无法快速检索数据,无法快速评估数据价值,数据分析工作高度依赖it参与,从而无法实现数据湖的自助式服务。
80.鉴于上述问题,本技术实施例提供了基于delta lake 数据湖的自助式数据分析方法。本技术实施例所提出的方法使数据使用者能够快速了解数据湖中拥有什么数据,数据在哪里、由谁负责,数据中值意味着什么,以及谁使用了数据,用于什么业务等等,使数据使用者可以在不依赖it部门的情况下找到和使用想要使用的数据集,实现数据的自助式服务。
81.本技术实施例第二方面提供了一种自助式数据分析装置,参照图5,图5示出了一
种自助式数据分析装置的结构示意图,如图5所示,所述装置包括:元数据图数据库生成模块,用于对数据湖的元数据信息进行管理,创建元数据图数据库,所述元数据图数据库以图结构的方式对所述元数据信息进行存储;数据资产地图生成模块,用于对所述数据湖的数据进行分区分类,生成数据资产地图,所述数据资产地图以图形化的方式展示数据资产的分布情况和各个数据资产之间的关系;定位模块,用于根据所述元数据图数据库和所述数据资产地图,定位待分析数据;作业模块,用于对所述待分析数据进行sql作业,得到sql语句信息;血缘图谱生成模块,用于根据所述sql语句信息,生成血缘图谱;分析模块,用于根据所述血缘图谱,生成对所述待分析数据的分析结果。
82.在一种可能的实施方式中,所述元数据图数据库生成模块,包括:元数据模型设计子模块,用于设计符合业务流程的元数据模型;基础元数据信息获取子模块,用于对所述数据湖的已入湖业务数据进行文件目录遍历,解析所述文件目录中的log信息,得到基础元数据信息;所述基础元数据信息至少包括:数据修改行为信息,schema信息和数据存储位置信息;数据融合子模块,用于利用设计的所述元数据模型,对所述基础元数据信息进行数据融合,得到元模型对象;存储子模块,用于将所述元模型对象转化为图对象,存储在所述元数据图数据库中。
83.在一种可能的实施方式中,所述数据融合子模块,包括:属性映射单元,用于利用所述元数据模型,将所述基础元数据信息映射到元模型相应属性;添加单元,用于根据用户输入的信息,为所述基础元数据信息添加其他元数据信息;封装单元,用于将所述基础元数据信息封装为格式一致的元模型对象。
84.在一种可能的实施方式中,所述数据资产地图生成模块,包括:类型识别子模块,没用于对所述数据湖的数据进行类型识别,确定每个所述数据湖的数据的数据类型,所述数据类型包括:结构化数据类型、半结构化数据类型和非结构化数据类型;落位子模块,用于根据所述数据类型,对每个所述数据湖的数据进行数据湖落位推荐,对每个数据的元数据信息添加分区标签,得到落位后的数据;分类汇聚子模块,用于对所述落位后的数据进行分类汇聚,得到已分类数据,为所述已分类数据的元数据信息添加分类标签;生成子模块,用于根据所述分区标签和所述分类标签,生成所述数据资产地图。
85.在一种可能的实施方式中,分类汇聚子模块,包括:第一数据汇聚单元,用于对所述结构化数据或所述半结构化数据进行抽取、转换、加载,将所述结构化数据或所述半结构化数据汇聚到已分类存储的结构化数据中,得到所述已分类数据;第二数据汇聚单元,包括:
模型分类子单元,用于利用文本主题分类模型对文本信息中无分类标记的所述非结构化数据进行数据主题分类;规则分类子单元,用于利用文本主题分类规则,对文本信息中携带有分类标记的所述非结构化数据进行数据主题分类;汇聚子单元,用于将分类后的所述非结构化数据汇聚到已分类存储的非结构化数据中,得到所述已分类数据。
86.在一种可能的实施方式中,所述血缘图谱生成模块,包括:信息发送子模块,用于将所述etl作业中的所述sql语句信息,通过api发送至消息队列,所述sql语句信息为一个或多个数据处理引擎执行的etl作业中的sql语句信息;监听子模块,用于监听所述消息队列中的sql语句信息,对所述消息队列中的sql语句信息进行消费,构建统一的sql作业格式;分析子模块,用于对消费的所述sql语句信息进行语法树分析,得到数据关联关系,所述数据关联关系表示源表与目的表、字段与字段之间的指向信息;封装子模块,用于根据所述sql语句信息得到的过程节点、流出节点和流入节点,将所述数据关联关系转化为数据血缘关系;所述包含过程节点的血缘关系,表示所述源表、所述过程节点与所述目的表之间的指向关系,和,所述字段与所述过程节点之间的指向关系;血缘图谱生成子模块,用于根据所述数据血缘关系,生成所述血缘图谱。
87.在一种可能的实施方式中,所述血缘图谱生成子模块,包括:主节点确定单元,用于以所述待分析数据作为所述血缘图谱的主节点;数据流入节点确定单元,用于以所述待分析数据的数据来源作为所述血缘图谱的数据流入节点,所述数据流入节点为所述主节点的父节点;数据流出节点确定单元,用于以所述待分析数据的数据去向作为所述血缘图谱的数据流出节点,所述数据流出节点为所述主节点的子节点;其中,所述数据流出节点包括一个终端节点,数据在到达所述终端节点后,停止数据流转;流转路径确定单元,用于标记数据的流转路径,所述流转路径表示数据从所述数据流入节点汇聚到所述主节点,再从所述主节点扩散到所述数据流出节点的路径;过程节点确定单元,用于将对所述待分析数据的etl作业步骤,作为所述血缘图谱的过程节点。
88.在一种可能的实施方式中,所述分析模块,包括:数据溯源子模块,用于根据所述血缘图谱中的所述流转路径,进行数据溯源;数据价值判断子模块,用于根据所述血缘图谱中的所述数据流出节点的数量判断所述待分析数据的数据价值;数据量级判断子模块,用于根据所述流转路径的线条粗细,判断所述待分析数据的数据量级;更新频率判断子模块,用于根据所述流转路径的线条长短,判断所述待分析数据的数据更新频率。
89.本发明实施例还提供了一种电子设备,参照图6,图6是本发明实施例提出的电子设备的结构示意图。如图6所示,电子设备100包括:存储器110和处理器120,存储器110与处
理器120之间通过总线通信连接,存储器110中存储有计算机程序,该计算机程序可在处理器120上运行,进而实现本发明实施例公开的一种基于数据湖的自助式数据分析方法中的步骤。
90.本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现本发明实施例公开的一种基于数据湖的自助式数据分析方法中的步骤。
91.本发明实施例还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本发明实施例公开的一种基于数据湖的自助式数据分析方法中的步骤。
92.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
93.本发明实施例是参照根据本发明实施例的方法、装置、电子设备和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
94.尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
95.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
96.以上对本发明所提供的一种基于数据湖的自助式数据分析方法、装置和电子设备,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
技术特征:
1.一种基于数据湖的自助式数据分析方法,其特征在于,所述方法包括:对数据湖的元数据信息进行管理,创建元数据图数据库,所述元数据图数据库以图结构的方式对所述元数据信息进行存储;对所述数据湖的数据进行分区分类,生成数据资产地图,所述数据资产地图以图形化的方式展示数据资产的分布情况和各个数据资产之间的关系;根据所述元数据图数据库和所述数据资产地图,定位待分析数据;对所述待分析数据进行etl作业,收集etl作业过程中的sql语句信息;根据所述sql语句信息,生成血缘图谱;根据所述血缘图谱,生成对所述待分析数据的分析结果。2.根据权利要求1所述的基于数据湖的自助式数据分析方法,其特征在于,所述对数据湖的元数据信息进行管理,创建元数据图数据库,包括:设计符合业务流程的元数据模型;对所述数据湖的已入湖业务数据进行文件目录遍历,解析所述文件目录中的log信息,得到基础元数据信息;所述基础元数据信息至少包括:数据修改行为信息,schema信息和数据存储位置信息;利用设计的所述元数据模型,对所述基础元数据信息进行数据融合,得到元模型对象;将所述元模型对象转化为图对象,存储在所述元数据图数据库中。3.根据权利要求2所述的基于数据湖的自助式数据分析方法,其特征在于,所述对所述基础元数据信息进行数据融合,得到元模型对象,包括:利用所述元数据模型,将所述基础元数据信息映射到元模型相应属性;根据用户输入的信息,为所述基础元数据信息添加其他元数据信息;将所述基础元数据信息封装为格式一致的元模型对象。4.根据权利要求1所述的基于数据湖的自助式数据分析方法,其特征在于,所述对所述数据湖的数据进行分区分类,生成数据资产地图,包括:对所述数据湖的数据进行类型识别,确定每个所述数据湖的数据的数据类型,所述数据类型包括:结构化数据类型、半结构化数据类型和非结构化数据类型;根据所述数据类型,对每个所述数据湖的数据进行数据湖落位推荐,对每个数据的元数据信息添加分区标签,得到落位后的数据;对所述落位后的数据进行分类汇聚,得到已分类数据,为所述已分类数据的元数据信息添加分类标签;根据所述分区标签和所述分类标签,生成所述数据资产地图。5.根据权利要求4所述的基于数据湖的自助式数据分析方法,其特征在于,在所述落位后的数据为结构化数据或半结构化数据的情况下,所述对落位后的数据进行分类汇聚,得到已分类数据,包括:对所述结构化数据或所述半结构化数据进行抽取、转换、加载,将所述结构化数据或所述半结构化数据汇聚到已分类存储的结构化数据中,得到所述已分类数据;在所述落位后的数据为非结构化数据的情况下,所述对落位后的数据进行分类汇聚,得到已分类数据,包括:利用文本主题分类模型对文本信息中无分类标记的所述非结构化数据进行数据主题
分类;利用文本主题分类规则,对文本信息中携带有分类标记的所述非结构化数据进行数据主题分类;将分类后的所述非结构化数据汇聚到已分类存储的非结构化数据中,得到所述已分类数据。6.根据权利要求1所述的基于数据湖的自助式数据分析方法,其特征在于,所述根据所述sql语句信息,生成血缘图谱,包括:将所述etl作业中的所述sql语句信息,通过应用程序编程接口发送至消息队列;所述sql语句信息为一个或多个数据处理引擎执行的etl作业中的sql语句信息;监听所述消息队列中的sql信息,对所述消息队列中的sql信息进行消费,构建统一的sql语法格式;对消费的所述sql语句信息进行语法树分析,得到数据关联关系,所述数据关联关系表示源表与目的表、字段与字段之间的指向信息;根据所述sql语句信息中得到的过程节点、流出节点和流入节点,将所述数据关联关系转化为数据血缘关系;所述数据血缘关系,表示所述源表、所述过程节点与所述目的表之间的指向关系,和,所述字段与所述过程节点之间的指向关系;根据所述数据血缘关系,生成所述血缘图谱。7.根据权利要求6所述的基于数据湖的自助式数据分析方法,其特征在于,所述根据所述数据血缘关系生成所述血缘图谱,包括:以所述待分析数据作为所述血缘图谱的主节点;以所述待分析数据的数据来源作为所述血缘图谱的数据流入节点,所述数据流入节点为所述主节点的父节点;以所述待分析数据的数据去向作为所述血缘图谱的数据流出节点,所述数据流出节点为所述主节点的子节点;其中,所述数据流出节点包括一个终端节点,数据在到达所述终端节点后,停止数据流转;标记数据的流转路径,所述流转路径表示数据从所述数据流入节点汇聚到所述主节点,再从所述主节点扩散到所述数据流出节点的路径;将所述待分析数据的etl作业步骤,作为所述血缘图谱的过程节点。8.根据权利要求7所述的基于数据湖的自助式数据分析方法,其特征在于,所述根据所述血缘图谱,生成对所述待分析数据的分析结果,包括:根据所述血缘图谱中的所述流转路径,进行数据溯源;根据所述血缘图谱中的所述数据流出节点的数量判断所述待分析数据的数据价值;根据所述流转路径的线条粗细,判断所述待分析数据的数据量级;根据所述流转路径的线条长短,判断所述待分析数据的数据更新频率。9.一种自助式数据分析装置,其特征在于,所述装置包括:元数据图数据库生成模块,用于对数据湖的元数据信息进行管理,创建元数据图数据库,所述元数据图数据库以图结构的方式对所述元数据信息进行存储;数据资产地图生成模块,用于对所述数据湖的数据进行分区分类,生成数据资产地图,所述数据资产地图以图形化的方式展示数据资产的分布情况和各个数据资产之间的关系;
定位模块,用于根据所述元数据图数据库和所述数据资产地图,定位待分析数据;作业模块,用于对所述待分析数据进行etl作业,收集etl作业过程中的sql语句信息;血缘图谱生成模块,用于根据所述sql语句信息,生成血缘图谱;分析模块,用于根据所述血缘图谱,生成对所述待分析数据的分析结果。10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1至8任一所述的基于数据湖的自助式数据分析方法的步骤。
技术总结
本发明提供了一种基于数据湖的自助式数据分析方法、装置和电子设备,该方法应用于数据处理技术领域,该方法包括:对数据湖的元数据信息进行管理,创建元数据图数据库,所述元数据图数据库以图结构的方式对所述元数据信息进行存储;对所述数据湖的数据进行分区分类,生成数据资产地图,所述数据资产地图以图形化的方式展示数据资产的分布情况和各个数据资产之间的关系;根据所述元数据图数据库和所述数据资产地图,定位待分析数据;对所述待分析数据进行ETL作业,收集作业过程中的SQL语句信息;根据所述SQL语句信息,生成血缘图谱;根据所述血缘图谱,生成对所述待分析数据的分析结果。析结果。析结果。
技术研发人员:杨国利 韩宏伟 秦伟 李翔 刘坤 王强
受保护的技术使用者:北京大数据先进技术研究院
技术研发日:2023.06.19
技术公布日:2023/7/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/