CN117633126A - 基于Flink数据目录的表和函数元数据的分类管理业务平台 - Google Patents
基于Flink数据目录的表和函数元数据的分类管理业务平台 Download PDFInfo
- Publication number
- CN117633126A CN117633126A CN202311740900.5A CN202311740900A CN117633126A CN 117633126 A CN117633126 A CN 117633126A CN 202311740900 A CN202311740900 A CN 202311740900A CN 117633126 A CN117633126 A CN 117633126A
- Authority
- CN
- China
- Prior art keywords
- metadata
- module
- data
- function
- hive
- 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.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 claims abstract description 23
- 230000001360 synchronised effect Effects 0.000 claims abstract description 21
- 238000010224 classification analysis Methods 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 161
- 238000000034 method Methods 0.000 claims description 45
- 230000008569 process Effects 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 11
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 238000007726 management method Methods 0.000 abstract description 24
- 230000007246 mechanism Effects 0.000 abstract description 8
- 238000013070 change management Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 7
- 239000003054 catalyst Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000007792 addition Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Flink数据目录的表和函数元数据的分类管理业务平台,该平台包括连接第三方数据源模块、创建数据目录模块、创建Flink SQL任务模块、运行Flink SQL任务模块、获取元数据模块、元数据分类解析模块、元数据同步存储模块、分类查询和历史版本查询模块;所述获取元数据模块用于进行全量元数据和增量元数据的获取;所述元数据分类解析模块用于对获取的全量元数据和增量元数据进行解析和分类;所述元数据同步存储模块用于将解析分类后的元数据同步存储到本地存储数据库中;本发明提高了数据目录元数据分类与可视性,增强了数据目录的安全性和个性化管理,提升了查询功能并增强了数据历史追踪能力,创新性地引入了一套自动化的元数据变更管理机制。
Description
技术领域
本发明属于数据处理和管理技术领域,特别涉及一种基于Flink数据目录的表和函数元数据的分类管理业务平台。
背景技术
在现代数据处理和分析领域,数据工程师和分析师通常需要同时处理流数据和批处理数据。这就引入了流批一体(stream-batch unification)的概念,即将流数据和批处理数据整合到一个统一的平台或系统中。在流批一体的处理环境中,Flink Hive Catalog变得尤为重要,因为它充当了一个关键的元数据管理工具,使Flink应用程序可以访问Hive数据库中的表与函数的元数据。随着流批一体处理的广泛应用,用户希望能够将不同的Flink表和Flink自定义函数的元数据信息通过创建数据目录,使用Flink Hive Catalog注册到Hive数据库中,以便在一个统一Hive数据库中管理和访问这些表与函数的元数据信息。
然而,现有的技术在这方面存在一定的限制:①在Hive数据库中,不仅仅存储了Hive表元数据信息,Hive自定义函数元数据信息,还存储了用户通过Flink Hive Catalog注册到Hive数据库中Flink表元数据信息,Flink函数元数据信息。而Flink表又根据不同数据源的类型有不同的表类型,导致Hive数据库中存储的表和函数的元数据杂乱无章,用户无法清晰在数据目录对应的Hive数据库中查看和区分不同类型的表和函数的元数据信息;②用户不能对数据目录所对应Hive数据库中的表和函数的元数据信息可见性进行定制化设置、不能对各自元数据进行删除;③用户无法访问表和函数的元数据信息的历史版本、无法为用户提供了更全面的数据视角④用户无法及时了解到任何表和函数的元数据信息的更改或删除情况,从而快速响应并采取相应措施。
发明内容
本发明针对现有技术存在的问题,提出一种基于Flink数据目录的表和函数元数据的分类管理业务平台,第一目的在于解决用户无法清晰在数据目录对应的Hive数据库中查看和区分不同类型的表和函数的元数据信息的问题;第二目的在于解决用户不能对数据目录所对应Hive数据库中的表和函数的元数据信息可见性进行定制化设置、不能对各自元数据进行删除;第三目的在于解决用户无法访问表和函数的元数据信息的历史版本、无法为用户提供了更全面的数据视角的问题;第四目的在于解决用户无法及时了解到任何表和函数的元数据信息的更改或删除情况,从而快速响应并采取相应措施的问题。
本发明为解决其技术问题采用以下技术方案:
一种基于Flink数据目录的表和函数元数据的分类管理业务平台,该业务平台包括连接第三方数据源模块、创建数据目录模块、创建Flink SQL任务模块、运行Flink SQL任务模块、获取元数据模块、元数据分类解析模块、元数据同步存储模块、分类查询和历史版本查询模块;所述连接第三方数据源模块用于在业务平台中连接第三方数据源并保存连接信息;所述创建数据目录模块用于在业务平台中创建目录类型为Hive的数据目录,该数据目录与Hive数据库一一对应;所述创建Flink SQL任务模块用于在业务平台中使用Hive类型的数据目录,并在业务平台中创建Flink SQL任务,通过用户创建SQL定义表的元数据信息、函数的元数据信息;所述运行Flink SQL任务模块用于在Flink运行环境中运行业务平台定义的Flink SQL任务,在运行过程中Flink会通过Flink Hive Catalog API将表与函数的元数据存储到数据目录对应中的Hive数据库中;
其特点是:所述获取元数据模块用于在业务平台中对Hive数据库进行全量元数据和增量元数据的获取;所述元数据分类解析模块用于在业务平台中对获取的全量元数据和增量元数据进行解析和分类;所述元数据同步存储模块用于在业务平台中将解析分类后的元数据同步存储到本地存储数据库中;所述分类查询和历史版本查询模块用于在业务平台中对本地存储数据库中的元数据进行分类查询和历史数据查询。
进一步地,所述获取元数据模块包括:针对Hive数据库进行元数据的全量获取模块、针对Hive数据库进行元数据的增量获取模块;所述针对Hive数据库进行元数据的全量获取只能获取一次,所述针对Hive数据库进行元数据的增量获取是在全量获取的基础上仅仅获取增加的数据和删除后变化的数据。
进一步地,所述针对Hive数据库进行元数据的全量获取模块,包括获取所有Hive数据库名称模块、建立连接器模块、获取Hive数据库所有表的全量元数据模块、获取Hive数据库所有函数的全量元数据模块。
进一步地,所述针对Hive数据库进行元数据的增量获取模块,包括监听相关事件模块、捕捉事件变化模块、触发元数据的分类与元数据同步模块;所述监听相关事件模块用于监听创建表、删除表、创建函数、删除函数的事件;所述触发元数据的分类与元数据同步模块,用于在捕获的新增加的元数据的同时,对其进行解析和分类,并将解析分类的后的元数据保存到本地存储数据库。
进一步地,所述元数据分类解析模块包括全量获取表的元数据时的解析分类子模块、全量获取函数的元数据时的解析分类子模块、增量获取表的元数据时的解析分类子模块、增量获取函数的元数据时的解析分类子模块;当全量获取表的元数据时,解析出表元数据中的连接参数connector属性值,根据connector属性值完成表的分类;当全量获取函数的元数据时,解析出函数元数据中的Hive存储地址字段信息,根据Hive存储地址字段值判断完成分类,如果存在值则该函数的分类为Hive函数,反之该函数的分类为Flink函数;当增量获取数据时,表的新增会调用
onCreateTable(CreateTableEvent tableEvent)方法,在该方法中,解析出方法传入对象tableEvent中的table对象中的Map<String,String>parameters对象;根据parameters对象值或parameters对象中的flink.connector属性值完成分类;如果不存在parameters对象,则该表的分类为Hive表,如果存在,则获取parameters对象里的flink.connector属性值,根据flink.connector属性值完成分类;如果无法获取flink.connector属性值,则该表的分类为Hive表;当增量获取数据时,函数的新增会调用onCreateFunction(CreateFunctionEvent funcEvent)方法,在该方法中,解析出方法传入对象funcEvent中的function对象中的属性,根据function对象中的Hive的存储地址字段值判断完成分类,如果存在值则该函数的分类为Hive函数,反之该函数的分类为Flink函数。
进一步地,所述元数据同步存储模块,包括全量获取元数据同步模块、增量获取元数据同步模块,所述全量获取元数据同步模块标识元数据为新增加数据;所述增量获取元数据同步模块,当新增加数据时,标识元数据为新增加数据,当删除数据时,标识元数据为删除数据。
进一步地,所述元数据分类查询和历史版本查询模块,包括分类查询新增数据模块、分类查询历史数据模块,所述分类查询新增数据模块按照该元数据标识为新增数据标识、以及该元数据被分配的类别显示查询结果;所述分类查询历史数据模块按照该元数据标识为删除数据标识、以及该元数据被分配的类别显示查询结果。
本发明的优点效果
1、提高了数据目录元数据分类与可视性:本发明提供了一种针对Flink数据目录的表和函数的元数据在Hive中的注册和分类机制,该机制能够对不同类型的表和函数进行精细化管理。解决了用户在现有技术中无法清晰查看和区分不同类型的表和函数的问题。通过本发明,用户可以轻松辨识和访问特定类型的元数据,从而大幅提升了用户对元数据管理的控制精度和操作便捷性。
2、增强了数据目录的安全性和个性化管理:本发明创新地引入了一种数据目录的权限控制机制,该机制不仅允许对数据目录的表和函数的元数据可见性进行定制化设置,而且还赋予了不同用户和组织对各自元数据的注销权限。这一特征针对性地解决了现有技术中数据目录管理灵活性不足的问题,显著增强了数据目录的安全性和个性化管理能力。通过允许用户和组织对于不同类型表和函数元数据执行注销操作,本发明有效减少了数据目录元数据泄露的风险,确保了数据管理的合规性和数据环境的安全性。
3、提升了查询功能并增强了数据历史追踪能力:本发明通过对数据目录的表和函数的元数据进行高级分类和本地化存储,实现了高级查询功能,如模糊搜索和多条件过滤,并引入了对元数据历史版本的查看能力。显著提高了用户在进行数据分析时的查询灵活性和准确性。同时,能够访问元数据的历史版本为用户提供了更全面的数据视角,使得数据分析不仅依赖于当前状态,还能够考虑到数据的变更历史,从而实现了更深入和全面的数据洞察。
4、自动化元数据变更管理和通知机制本发明创新性地引入了一套自动化的元数据变更管理机制,其中包括对元数据的新增或删除时进行自动化处理,并配备了相应的通知系统。这一机制直接解决了现有技术在元数据管理中缺乏自动化处理和及时通知的问题。通过自动化的变更管理和实时通知,用户和管理员能够及时了解到任何元数据的新增或删除情况,从而快速响应并采取相应措施。
附图说明
图1为本发明基于Flink数据目录的表和函数元数据分类管理业务平台框图;
图2为本发明针对Hive数据库进行元数据的全量获取功能框图;
图3为本发明针对Hive数据库增量获取元数据功能框图;
图4为本发明元数据解析分类功能框图;
图5为本发明元数据同步存储功能框图;
图6为本发明元数据查询功能框图。
具体实施方式
本发明设计原理
1、本发明设计难点:①精确分类管理的实现。在现有的Flink数据目录中,实现对不同类型的表和函数进行精细化的分类管理是一个挑战,尤其是在处理复杂且多变的元数据时。元数据举例1:假设是一个EXCEL表格,表头是元数据信息、EXCEL里面的sheet页也是元数据信息,表格里面的内容是数据不是元数据;元数据举例2:假设是一个数据库二维表,数据库里面表的字段名称、字段的类型、长度、表名称、表描述、数据库名称、库名称描述都是元数据;而数据库表里面各个字段存储的内容都是数据。这种元数据的分类管理不仅需要精确,还要足够适应不断变化的新的数据环境。②实时元数据捕获和分析分类:元数据的捕获和分析分类分为全量和增量捕获和分析,全量捕获可开发特定程序一次性读取所有元数据,但关键难点在于实现对用户提交任务时实时产生的元数据的实时监听、捕获和分析分类。这需要精确地捕捉到任何元数据的细微变化,并且实时更新元数据信息,这在技术上是具有挑战性的。
2、解决方案思路:针对难点之一的解决方案思路:本发明引入了动态的分类逻辑,能够根据元数据的实时变化进行调整。这种策略的设计考虑到了数据的多样性和动态性,从而实现了既精确又灵活的分类管理;针对难点之二的解决方案思路:针对这一难题,本发明创新性地开发了一种特定的Hive Hook程序。该程序专门设计用来监听Hive数据库中用户注册的表和函数。通过这种方式,一旦发生变更行为,Hive Hook能立即捕获这一变化,并触发元数据的实时更新和分析分类流程。这种设计不仅确保了元数据信息的时效性和准确性,而且提高了整个系统对变化的响应速度和灵活性。
通过以上创新性的设计和实现,本发明有效地解决了实时元数据捕获和分析分类的技术难题,显著提升了Flink数据目录中表和函数元数据管理的实时性和准确性。这一解决方案体现了本发明在处理元数据管理中的高效同步和实时分析分类方面的创新思维和技术能力。
3、名词解释:
Flink:Flink(Apache Flink)是一个开源的流处理和批处理框架,用于处理大规模的数据流和批量数据。它是一个分布式数据处理引擎,设计用于实时流式数据处理、事件驱动应用程序和批处理作业
Flink Hive Catalog:Flink Hive Catalog(也称为Hive Catalog)是ApacheFlink中的一种用于集成Apache Hive的组件;用于管理和访问在Hive数据库中存储的Hive表,Hive函数以及Flink表,Flink自定义函数相关的元数据信息;它也允许Flink用户在其流处理和批处理应用程序中轻松地访问和操作在Hive数据库中存储的Hive表,Hive函数以及Flink表,Flink自定义函数相关的元数据信息。
Flink Hive Catalog API:Flink Hive Catalog API是Flink Hive Catalog提供的交互的编程接口。通过这个API,开发人员可以在应用程序中查询数据目录对应Hive数据库的元数据信息,包括表的元数据信息,函数的元数据信息,
Flink SQL:Flink SQL是Apache Flink中的一种查询语言和编程接口,用于在Flink流处理和批处理应用程序中执行SQL查询和数据操作。它允许用户使用标准的SQL语法来查询、转换和处理实时数据流和批处理数据,而无需深入了解底层的Flink编程模型
基于以上发明原理,本发明设计了一种基于Flink数据目录的表和函数元数据的分类管理业务平台,如图1-6所示,该业务平台包括连接第三方数据源模块、创建数据目录模块、创建Flink SQL任务模块、运行Flink SQL任务模块、获取元数据模块、元数据分类解析模块、元数据同步存储模块、分类查询和历史版本查询模块;所述连接第三方数据源模块用于在业务平台中连接第三方数据源并保存连接信息;所述创建数据目录模块用于在业务平台中创建目录类型为Hive的数据目录,该数据目录与Hive数据库一一对应;所述创建Flink SQL任务模块用于在业务平台中使用Hive类型的数据目录,并在业务平台中创建Flink SQL任务,通过用户创建SQL定义表的元数据信息、函数的元数据信息;所述运行Flink SQL任务模块用于在Flink运行环境中运行业务平台定义的Flink SQL任务,在运行过程中Flink会通过Flink Hive Catalog API将表与函数的元数据存储到数据目录对应中的Hive数据库中;
其特点是:所述获取元数据模块用于在业务平台中对Hive数据库进行全量元数据和增量元数据的获取;所述元数据分类解析模块用于在业务平台中对获取的全量元数据和增量元数据进行解析和分类;所述元数据同步存储模块用于在业务平台中将解析分类后的元数据同步存储到本地存储数据库中;所述分类查询和历史版本查询模块用于在业务平台中对本地存储数据库中的元数据进行分类查询和历史数据查询。
进一步地,所述获取元数据模块包括:针对Hive数据库进行元数据的全量获取模块、针对Hive数据库进行元数据的增量获取模块;所述针对Hive数据库进行元数据的全量获取只能获取一次,所述针对Hive数据库进行元数据的增量获取是在全量获取的基础上仅仅获取增加的数据和删除后变化的数据。
进一步地,所述针对Hive数据库进行元数据的全量获取模块,包括获取所有Hive数据库名称模块、建立连接器模块、获取Hive数据库所有表的全量元数据模块、获取Hive数据库所有函数的全量元数据模块。
进一步地,所述针对Hive数据库进行元数据的增量获取模块,包括监听相关事件模块、捕捉事件变化模块、触发元数据的分类与元数据同步模块;所述监听相关事件模块用于监听创建表、删除表、创建函数、删除函数的事件;所述触发元数据的分类与元数据同步模块,用于在捕获的新增加的元数据的同时,对其进行解析和分类,并将解析分类的后的元数据保存到本地存储数据库。
进一步地,所述元数据分类解析模块包括全量获取表的元数据时的解析分类子模块、全量获取函数的元数据时的解析分类子模块、增量获取表的元数据时的解析分类子模块、增量获取函数的元数据时的解析分类子模块;当全量获取表的元数据时,解析出表元数据中的连接参数connector属性值,根据connector属性值完成表的分类;当全量获取函数的元数据时,解析出函数元数据中的Hive存储地址字段信息,根据Hive存储地址字段值判断完成分类,如果存在值则该函数的分类为Hive函数,反之该函数的分类为Flink函数;当增量获取数据时,表的新增会调用
onCreateTable(CreateTableEvent tableEvent)方法,在该方法中,解析出方法传入对象tableEvent中的table对象中的Map<String,String>parameters对象;根据parameters对象值或parameters对象中的flink.connector属性值完成分类;如果不存在parameters对象,则该表的分类为Hive表,如果存在,则获取parameters对象里的flink.connector属性值,根据flink.connector属性值完成分类;如果无法获取flink.connector属性值,则该表的分类为Hive表;当增量获取数据时,函数的新增会调用onCreateFunction(CreateFunctionEvent funcEvent)方法,在该方法中,解析出方法传入对象funcEvent中的function对象中的属性,根据function对象中的Hive的存储地址字段值判断完成分类,如果存在值则该函数的分类为Hive函数,反之该函数的分类为Flink函数。
进一步地,所述元数据同步存储模块,包括全量获取元数据同步模块、增量获取元数据同步模块,所述全量获取元数据同步模块标识元数据为新增加数据;所述增量获取元数据同步模块,当新增加数据时,标识元数据为新增加数据,当删除数据时,标识元数据为删除数据。
进一步地,所述元数据分类查询和历史版本查询模块,包括分类查询新增数据模块、分类查询历史数据模块,所述分类查询新增数据模块按照该元数据标识为新增数据标识、以及该元数据被分配的类别显示查询结果;所述分类查询历史数据模块按照该元数据标识为删除数据标识、以及该元数据被分配的类别显示查询结果。
实施例一
基于以上发明原理和业务平台,本发明设计了一种基于Flink数据目录的表和函数元数据分类管理方法,其特点是:包括以下步骤;
步骤一、连接第三方数据源;
步骤二、创建数据目录,该目录类型为Hive,与Hive库一一对应;
补充说明1
①上述创建目录时,系统会记录数据目录的创建人,用于后续的元数据变更时的消息通知;
②创建数据目录需要与Hive库进行关联,具体SQL语法为
解释说明如下:
create catalog hive_catalog:这部分指示正在创建一个名为
hive_catalog的Flink Catalog。
with:这是一个配置语句的开始。
'type'='hive':这指定了这个Catalog的类型是Hive。这表示将要创建的Catalog是一个连接到Hive的Catalog,允许Flink使用Hive中的数据和元数据。
'default-database'='default':这个参数指定了默认数据库,即当没有指定数据库时,Flink将在名为default的数据库中查找或注册表和函数等元数据对象。
'hive-conf-dir'='/etc/hive/conf':这个参数定义了Hive的配置目录,指定了Hive配置文件的路径。这对于Flink Hive Catalog来连接和访问Hive元数据存储是很重要的,因为它可以从指定的目录中加载Hive配置信息,以确保Flink能够正确地与Hive进行交互。
③通过创建和配置数据目录,Flink可以定义表、函数等数据结构,使得这些结构化的数据可以像本地表一样被Flink作业直接查询、读取和写入。这种统一的接口降低了与外部系统集成的复杂性,让开发者能够更轻松地在Flink作业中操作和处理来自不同数据源的数据。
④数据目录还可以提供元数据管理的功能,允许开发者在Flink中注册、查询和操作数据源的元数据信息,比如表的结构、数据位置等,从而更好地管理和使用外部数据。
步骤三、创建Flink SQL任务,并使用该数据目录,在任务中通过用户创建SQL,定义Flink表,Flink函数信息;
步骤四、运行Flink SQL任务,将表与函数元数据存储至数据目录对应的Hive库;
补充说明2
①上述“运行Flink SQL任务”就是任务在Flink运行环境中运行,在运行过程中Flink会通过Flink Hive Catalog API将表与函数的元数据存储至数据目录对应的Hive库。
②上述“在任务中定义Flink表,Flink函数信息”就是用户通过SQL定义表或者函数的元数据信息。表信息的元数据包括表的名称、列名、数据类型、分区信息、存储格式、表的连接信息;函数信息的元数据包括函数名称,函数类名,函数在Hive中的注册路径、函数类别。
步骤五、针对Hive数据库进行元数据的全量获取、增量获取;
步骤六、针对Hive数据库进行元数据的解析分类;
步骤七、将解析分类后的元数据保存到存储数据库;
步骤八、提供元数据的分类查询、元数据的历史版本查询。
进一步地,所述步骤五的针对Hive数据库进行元数据的全量获取、增量获取,具体过程如下:
1)引入数据目录的权限控制机制,该机制不仅允许对数据目录的表和函数的可见性进行定制化设置,而且还赋予了不同用户和组织对各自元数据的增加和注销权限;
2)元数据获取:通过Flink Hive Catalog API获取所有数据目录对应的数据库下的表和函数的全量元数据;通过自定义Hive Hook程序获取所有数据目录对应的数据库下的表和函数的增量元数据。
进一步地,所述步骤五过程2)的通过Flink Hive Catalog API获取所有数据目录对应的数据库下的表和函数的全量元数据,具体如下:
i、获取所有已在系统创建的数据目录对应的Hive数据库名称;
ii、建立连接到Flink Hive Catalog的连接器:通过该数据目录的数据库名称、配置文件地址来实现连接;
iii、获取元数据信息:一旦建立了连接,Flink可以通过Flink Hive Catalog API向Hive发送请求,以获取表、函数的元数据信息。
进一步地,所述步骤五过程2)的通过自定义Hive Hook程序获取所有数据目录对应的数据库下的表和函数的增量元数据,具体如下:
i、监听Hive Catalog中表和函数相关的事件;所述事件包括:创建表、删除表、创建函数、删除函数的事件;
ii、当发生变更行为时,Hive Hook能立即捕获这一变化;并触发元数据的分类与元数据同步的流程。
补充说明3
①上述触发创建表、删除表、创建函数、删除函数事件,具体如下:
onCreateTable(CreateTableEvent tableEvent):当创建表时触发。
onDropTable(DropTableEvent tableEvent):当删除表时触发。
onCreateFunction(CreateFunctionEvent funcEvent):当创建函数时触发。
onDropFunction(DropFunctionEvent funcEvent):当删除函数时触发。
②所述Flink Hive Catalog是Apache Flink中的一种用于集成Apache Hive的组件,允许在Flink作业中直接使用Hive中的数据和元数据。
③通过Flink Hive Catalog,Flink可以连接到Hive元数据存储,并使用其中定义的表、函数相关的元数据对象。
进一步地,具体过程如下:
所述步骤五过程2)的对全量元数据和增量元数据的获取,具体环节如下:
A、所述全量获取就是基于Flink Hive Catalog API获取当前数据目录对应Hive数据库名称的所有数据,包括表和函数的所有元数据;
B、所述增量获取数据就是仅仅获取自上次全量数据获取后的新增数据,删除发生变化的部分数据;
在Flink中,Catalog是一个用于管理外部数据源的接口,而Flink Hive Catalog则是连接到Apache Hive的特定实现;通过Flink Hive Catalog,Flink可以连接到Hive元数据存储,查询Hive中的表、函数元数据信息,并允许Flink作业直接访问和操作这些数据;
补充说明4
①上述增量数据是指在一段时间内新添加或删除的数据;相对于全量数据,增量数据是指在元数据中仅包含最新添加或删除的部分,而不包括整个元数据的全部内容;
②上述全量数据指的是数据集中的全部数据,即包括所有的记录、信息或内容;与增量数据相对应,全量数据涵盖了整个元数据的内容,包括所有历史和当前的元数据;全量元数据为一次性获取的数据,增量数据为根据元数据新增或删除的变化多次获取的数据;
③元数据包括字段名称、字段的类型、长度、表名称、表描述、数据库名称、库名称描述,假设其中一个字段名称需要修改,则修改的方法是删除整个表而不是只修改其中一个字段。具体方法为:先删除一个表,再新建一个表;删除表时,该表的is_delete字段值设置为true,标识该元数据已被删除;新建表时,在元数据基本信息中,添加is_delete字段,is_delete字段值设置为false,标识该元数据为新增数据;
进一步地,所述步骤五过程2)的环节A的全量获取所有元数据只发生一次,以后均为增量获取元数据;所述步骤五过程2)的环节A)和环节B)的全量、增量获取元数据,包括表信息的元数据和函数信息的元数据;表信息的元数据包括表的名称、列名、数据类型、分区信息、存储格式、表的连接信息;函数信息的元数据包括函数名称,函数类名,函数在Hive中的注册路径、函数类别。
进一步地,所述步骤六的针对Hive数据库进行元数据的解析分类,具体过程如下:
1)当全量获取表的元数据时,解析出表元数据中的连接参数connector属性值,根据connector属性值完成表的分类;
2)当全量获取函数的元数据时,解析出函数元数据中的Hive存储地址字段信息,根据Hive存储地址字段值判断完成分类,如果存在值则该函数的分类为Hive函数,反之该函数的分类为Flink函数;
3)当增量获取数据时,表的新增会调用onCreateTable(CreateTableEventtableEvent)方法,在该方法中,解析出方法传入对象tableEvent中的table对象中的Map<String,String>parameters对象;根据parameters对象值或parameters对象中的flink.connector属性值完成分类;如果不存在parameters对象,则该表的分类为Hive表,如果存在,则获取parameters对象里的flink.connector属性值,根据flink.connector属性值完成分类;如果无法获取flink.connector属性值,则该表的分类为Hive表。
4)当增量获取数据时,函数的新增会调用
onCreateFunction(CreateFunctionEvent funcEvent)方法,在该方法中,解析出方法传入对象funcEvent中的function对象中的属性,根据function对象中的Hive的存储地址字段值判断完成分类,如果存在值则该函数的分类为Hive函数,反之该函数的分类为Flink函数。
进一步地,所述步骤七的将解析分类后的元数据保存到存储数据库;
,具体过程如下:
当全量获取元数据时
①获取所有表的元数据基本信息,并将数据存储至存储数据库中;并在元数据基本信息中,并在元数据基本信息中,添加is_delete字段,is_delete字段值设置为false,标识该元数据为新增数据;
②获取所有函数元数据基本信息,并将数据存储至存储数据库中,并在元数据基本信息中,并在元数据基本信息中,添加is_delete字段,is_delete字段值设置为false,标识该元数据为新增数据;
进一步地,所述步骤七的将解析分类后的元数据保存到存储数据库;
,具体过程如下:
当增量获取元数据时
①当发生新增表时,触发自定义Hive Hook程序新增表的方法,获取表元数据基本信息,并将数据存储至存储数据库中,并推送消息给数据目录的创建人;并在元数据基本信息中,添加is_delete字段,is_delete字段值设置为false,标识该元数据为新增数据;
②当发生新增函数时,触发自定义Hive Hook程序新增函数的方法,获取函数元数据基本信息,并将数据存储至存储数据库中;并推送消息给数据目录的创建人;并在元数据基本信息中,添加is_delete字段,is_delete字段值设置为false,标识该元数据为新增数据;
③当发生删除表时,触发自定义Hive Hook程序删除表的方法,获取表元数据基本信息,在元数据基本信息中,添加is_delete字段,is_delete字段值设置为true,标识该元数据已被删除,通过数据库名称,表名称检索数据库,更新该条记录,并将历史数据存储至存储数据库中,并推送消息给数据目录的创建人;
④当发生删除函数时,触发自定义Hive Hook程序删除函数的方法,获取函数元数据基本信息,在元数据基本信息中,添加is_delete字段,is_delete字段值设置为true,标识该元数据已被删除,通过数据库名称,函数名称检索数据库,更新该条记录,并将历史数据存储至存储数据库中,并推送消息给数据目录的创建人。
进一步地,所述步骤八的提供元数据的分类查询,即是在存储数据库中按照类别查询元数据,所述步骤八的提供元数据的历史版本查询,即是在存储数据库中对标识该元数据已被删除的数据进行查询。
以上内容仅仅是对本发明的构思所作的举例和说明,所属本技术领域的技术人员对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离发明的构思或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
Claims (7)
1.一种基于Flink数据目录的表和函数元数据的分类管理业务平台,该业务平台包括连接第三方数据源模块、创建数据目录模块、创建Flink SQL任务模块、运行Flink SQL任务模块、获取元数据模块、元数据分类解析模块、元数据同步存储模块、分类查询和历史版本查询模块;所述连接第三方数据源模块用于在业务平台中连接第三方数据源并保存连接信息;所述创建数据目录模块用于在业务平台中创建目录类型为Hive的数据目录,该数据目录与Hive数据库一一对应;所述创建Flink SQL任务模块用于在业务平台中使用Hive类型的数据目录,并在业务平台中创建Flink SQL任务,通过用户创建SQL定义表的元数据信息、函数的元数据信息;所述运行Flink SQL任务模块用于在Flink运行环境中运行业务平台定义的Flink SQL任务,在运行过程中Flink会通过Flink Hive Catalog API将表与函数的元数据存储到数据目录对应中的Hive数据库中;
其特征在于:所述获取元数据模块用于在业务平台中对Hive数据库进行全量元数据和增量元数据的获取;所述元数据分类解析模块用于在业务平台中对获取的全量元数据和增量元数据进行解析和分类;所述元数据同步存储模块用于在业务平台中将解析分类后的元数据同步存储到本地存储数据库中;所述分类查询和历史版本查询模块用于在业务平台中对本地存储数据库中的元数据进行分类查询和历史数据查询。
2.根据权利要求1所述一种基于Flink数据目录的表和函数元数据的分类管理业务平台,其特征在于:所述获取元数据模块包括:针对Hive数据库进行元数据的全量获取模块、针对Hive数据库进行元数据的增量获取模块;所述针对Hive数据库进行元数据的全量获取只能获取一次,所述针对Hive数据库进行元数据的增量获取是在全量获取的基础上仅仅获取增加的数据和删除后变化的数据。
3.根据权利要求2所述一种基于Flink数据目录的表和函数元数据的分类管理业务平台,其特征在于:所述针对Hive数据库进行元数据的全量获取模块,包括获取所有Hive数据库名称模块、建立连接器模块、获取Hive数据库所有表的全量元数据模块、获取Hive数据库所有函数的全量元数据模块。
4.根据权利要求2所述一种基于Flink数据目录的表和函数元数据的分类管理业务平台,其特征在于:所述针对Hive数据库进行元数据的增量获取模块,包括监听相关事件模块、捕捉事件变化模块、触发元数据的分类与元数据同步模块;所述监听相关事件模块用于监听创建表、删除表、创建函数、删除函数的事件;所述触发元数据的分类与元数据同步模块,用于在捕获的新增加的元数据的同时,对其进行解析和分类,并将解析分类的后的元数据保存到本地存储数据库。
5.根据权利要求1所述一种基于Flink数据目录的表和函数元数据的分类管理业务平台,其特征在于:所述元数据分类解析模块包括全量获取表的元数据时的解析分类子模块、全量获取函数的元数据时的解析分类子模块、增量获取表的元数据时的解析分类子模块、增量获取函数的元数据时的解析分类子模块;当全量获取表的元数据时,解析出表元数据中的连接参数connector属性值,根据connector属性值完成表的分类;当全量获取函数的元数据时,解析出函数元数据中的Hive存储地址字段信息,根据Hive存储地址字段值判断完成分类,如果存在值则该函数的分类为Hive函数,反之该函数的分类为Flink函数;当增量获取数据时,表的新增会调用
onCreateTable(CreateTableEvent tableEvent)方法,在该方法中,解析出方法传入对象tableEvent中的table对象中的Map<String,String>parameters对象;根据parameters对象值或parameters对象中的flink.connector属性值完成分类;如果不存在parameters对象,则该表的分类为Hive表,如果存在,则获取parameters对象里的flink.connector属性值,根据flink.connector属性值完成分类;如果无法获取flink.connector属性值,则该表的分类为Hive表;当增量获取数据时,函数的新增会调用onCreateFunction(CreateFunctionEvent funcEvent)方法,在该方法中,解析出方法传入对象funcEvent中的function对象中的属性,根据function对象中的Hive的存储地址字段值判断完成分类,如果存在值则该函数的分类为Hive函数,反之该函数的分类为Flink函数。
6.根据权利要求1所述一种基于Flink数据目录的表和函数元数据的分类管理业务平台,其特征在于:所述元数据同步存储模块,包括全量获取元数据同步模块、增量获取元数据同步模块,所述全量获取元数据同步模块标识元数据为新增加数据;所述增量获取元数据同步模块,当新增加数据时,标识元数据为新增加数据,当删除数据时,标识元数据为删除数据。
7.根据权利要求1所述一种基于Flink数据目录的表和函数元数据的分类管理业务平台,其特征在于:所述元数据分类查询和历史版本查询模块,包括分类查询新增数据模块、分类查询历史数据模块,所述分类查询新增数据模块按照该元数据标识为新增数据标识、以及该元数据被分配的类别显示查询结果;所述分类查询历史数据模块按照该元数据标识为删除数据标识、以及该元数据被分配的类别显示查询结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311740900.5A CN117633126A (zh) | 2023-12-16 | 2023-12-16 | 基于Flink数据目录的表和函数元数据的分类管理业务平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311740900.5A CN117633126A (zh) | 2023-12-16 | 2023-12-16 | 基于Flink数据目录的表和函数元数据的分类管理业务平台 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117633126A true CN117633126A (zh) | 2024-03-01 |
Family
ID=90028782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311740900.5A Pending CN117633126A (zh) | 2023-12-16 | 2023-12-16 | 基于Flink数据目录的表和函数元数据的分类管理业务平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117633126A (zh) |
-
2023
- 2023-12-16 CN CN202311740900.5A patent/CN117633126A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20030105745A1 (en) | Text-file based relational database | |
US5721911A (en) | Mechanism for metadata for an information catalog system | |
US8356029B2 (en) | Method and system for reconstruction of object model data in a relational database | |
US20180349184A1 (en) | Processing data sets in a big data repository | |
JP4222947B2 (ja) | マルチメディア・コンテンツ管理オブジェクトを表現するための方法、プログラム、及びシステム | |
US6453321B1 (en) | Structured cache for persistent objects | |
US6233729B1 (en) | Method and apparatus for identifying dynamic structure and indirect messaging relationships between processes | |
US20160078114A1 (en) | Virtual repository management | |
US6317749B1 (en) | Method and apparatus for providing relationship objects and various features to relationship and other objects | |
KR100529661B1 (ko) | 오브젝트 통합 관리 시스템 | |
US7069263B1 (en) | Automatic trend analysis data capture | |
US7630959B2 (en) | System and method for processing database queries | |
US20030204522A1 (en) | Autofoldering process in content management | |
US7475088B2 (en) | Systems and methods of providing data from a data source to a data sink | |
EP1383055A2 (en) | Map and data location provider | |
US8903846B2 (en) | Method and apparatus for integrating data from external sources into a database system | |
Wittenburg et al. | An adaptive document management system for shared multimedia data | |
US6768989B2 (en) | Collection recognizer | |
CN117633126A (zh) | 基于Flink数据目录的表和函数元数据的分类管理业务平台 | |
CN117591611A (zh) | 一种基于Flink数据目录的表和函数元数据的分类管理方法 | |
CN113221528B (zh) | 基于openEHR模型的临床数据质量评估规则的自动生成与执行方法 | |
US20050160101A1 (en) | Method and apparatus using dynamic SQL for item create, retrieve, update delete operations in a content management application | |
GB2536921A (en) | Apparatus, program, and method for updating cache memory | |
US7769750B2 (en) | Metadata based hypermedia management system | |
US11372843B2 (en) | Function-based indexes in database systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |