CN115114299A - 基于Flink SQL实现元数据管理的方法 - Google Patents

基于Flink SQL实现元数据管理的方法 Download PDF

Info

Publication number
CN115114299A
CN115114299A CN202210830838.8A CN202210830838A CN115114299A CN 115114299 A CN115114299 A CN 115114299A CN 202210830838 A CN202210830838 A CN 202210830838A CN 115114299 A CN115114299 A CN 115114299A
Authority
CN
China
Prior art keywords
flink
sql
metadata
flink sql
data
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
Application number
CN202210830838.8A
Other languages
English (en)
Inventor
刘旭东
张铁錶
潘自星
王淳
谢作樟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Wangan Xinchuang Electronic Technology Co ltd
Original Assignee
Zhejiang Wangan Xinchuang Electronic Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Wangan Xinchuang Electronic Technology Co ltd filed Critical Zhejiang Wangan Xinchuang Electronic Technology Co ltd
Priority to CN202210830838.8A priority Critical patent/CN115114299A/zh
Publication of CN115114299A publication Critical patent/CN115114299A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了基于Flink SQL实现元数据管理的方法,具体涉及数据处理技术领域,所属方法包括:采集并持久化数据源元数据信息;根据采集的数据源元数据信息配置,生成并校验Flink SQL表结构;持久化Flink SQL表元数据信息;解析Flink SQL作业语法准确性及作业与Flink SQL表对应关系,生成校验结果;将生成的校验结果通过可视化界面展示。本发明简化Flink SQL作业的开发流程,达到一次配置多作业引用的效果;配置Flink SQL表数据源信息为自动采集,用户无需关注敏感信息,如数据源账号及密码等,从而避免敏感信息泄漏,达到信息安全的目的。

Description

基于Flink SQL实现元数据管理的方法
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于Flink SQL实现元数据管理的方法。
背景技术
随着越来越多的任务迁入Flink,对于系统流程的安全性及操作复杂度有了更高的要求,目前Flink SQL需要单独在作业中定义Flink SQL表元数据信息,过程繁琐,无法将表持久化,并且会暴露数据源敏感信息,如账号名、密码等。因此,如何能屏蔽敏感信息并实现一次表定义多次引用就显得十分有必要了。
名词解释:
Flink:Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算;
Flink SQL表:Flink SQL表提供对存储在外部系统(例如数据库、键值存储、消息队列或文件系统)中的数据的访问。Flink SQL程序可以通过表连接到其他外部系统,用于读取和写入批处理和流式表。Flink SQL表是随时间变化的。可以像查询静态批处理表一样查询它们。查询Flink SQL表将生成一个不会终止的连续查询,最终将结果生成一个FlinkSQL结果表,查询不断更新结果表,以反映输入表上的变动。本质上,Flink SQL表上的连续查询类似于定义物理视图的查询。
Flink SQL作业:Flink SQL为Flink的顶级API。Flink SQL作业是一种由用户编写SQL开发Flink作业的方式,用户通过SQL可以快速实现业务逻辑。创建Flink SQL作业前,需要创建Flink SQL作业对应的Flink SQL表。在一个Flink SQL作业中可以定义多条标准化SQL语句。
数据源元数据:又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息。
CDC:CDC是一组用于Apache Flink的源连接器,使用变更数据捕获(CDC)从不同数据库获取变更。CDC将Debezium集成为捕获数据更改的引擎。总体来说CDC是用来实时监控数据库数据并将数据发送到Flink程序中,因此只能将CDC表作为输出表无法作为输入表,目前支持CDC的数据库有MySQL、Oracle、Mongo dB、PostgreSQL及SqlServer。
Watermark:watermark是Flink为了处理事件时间窗口计算提出的一种机制,本质上就是一个时间戳,代表着比这个时间早的事件已经全部进入到相应的窗口,后续不会再有比这个时间小的事件出现,基于这个前提我们才有可能将事件时间窗口视为完整并触发窗口的计算。
calcite:Apache calcite是一个动态数据管理框架,提供了标准的SQL语言、多种查询优化和连接各种数据源的能力,将数据存储及管理的能力留给引擎自身实现。
发明内容
发明的目的在于提供一种基于Flink SQL实现元数据安全管理的方法,能够安全、便捷及高效的管理Flink SQL元数据。
一种基于Flink SQL实现元数据管理的方法,其特征在于,包括:
S1、采集并持久化数据源元数据信息;
S2、根据采集到的数据源元数据信息配置,生成并校验Flink SQL表结构;
S3、持久化Flink SQL表元数据信息;
S4、解析并校验Flink SQL作业元数据信息。
作为优选:
上述S1中所述数据源元数据信息为分布式发布订阅消息系统Kafka、MySQL、Oracle、PostgreSQL、KingBase及Gbase8s。
所述数据源KingBase和Gbase8s为自定义数据源,通过Java的服务提供者接口实现Dynamic Table Source Factory和Dynamic Table Sink Factory,用于提供KingBase和Gbase8s连接器逻辑,将元数据转换为Dynamic Table Source和Dynamic Table Sink实例,通过Abstract Dialect接口重写KingBase及Gbase8s的特定方言。
所述的方言包括INSERT、UPDATE、DELETE、SELECT、LIMIT及标识符。
上述S2包括配置映射字段、自定义字段及表参数,其中映射字段为Flink SQL表与数据源元数据字段的映射,包括字段类型的转换与主键的设置;自定义字段为用户通过前端可视化界面自定义Flink SQL表字段及配置watermark信息;表参数分为Flink Table表名和数据源对应连接器参数。
所述S3中持久化Flink SQL元数据到数据库,并维护Flink SQL元数据与作业的对应关系。
上述S4采用Apache calcite解析SQL语句,通过calcite parser将SQL语句转换为抽象语法树SqlNodeList,验证SQL语句元数据及语法正确性;循环遍历SqlNodeList得到对应SqlKind信息,通过枚举SqlKind得到数据输入源及输出源表。
所述通过枚举SqlKind得到数据输入源及输出源表的方法为:循环遍历SqlNodeList,提取SqlKind,将SqlKind为INSERT,EXPLICIT_TABLE及WITH_ITEM类型的数据放入集合中,剔除SqlKind为EXPLICIT_TABLE中表名为WITH_ITEM中的数据,最终得到数据输入源及输出源表。
所述验证Flink SQL元数据及语法正确性操作为:通过创建Apache calcite,在其config中使用Flink SQL语法验证Flink SQL建表语句及SQL Query语法正确性;将FlinkSQL表注册到Flink Stream Table Environment中,通过Stream Table Environment验证SQL Query元数据。
还包括步骤S5:将校验结果发送至可视化界面进行展示。
本技术方案与现有技术相比,包括以下优点:
1、提供了一种简化Flink SQL作业开发流程的方法,通过将Flink SQL表提前定义并持久化,达到一次定义多次引用的效果,避免同一张表在不同Flink SQL作业中重复定义,并且Flink SQL表进行统一维护,避免出现因Flink SQL表变更而大量修改作业的场景,增加系统健壮性;
2、提供了一种安全管理元数据的方法,数据源采集界面与Flink SQL表配置界面由不同用户操作,其中采集数据源界面可以由管理员操作,其中输入的敏感信息如:数据源IP、端口、账号及密码对于配置Flink SQL表界面是不可见的,从而避免敏感信息泄漏;
3、提供了一种元数据校验的方法,通过预配置校验器对Flink SQL作业分别进行语法和元数据校验,并将校验结果返回给可视化界面,避免了作业上线过程中由于FinkSQL语法异常而报错,提高了用户的使用体验。
附图说明
图1为本发明的步骤流程图;
图2为本发明步骤S1中数据源元数据采集的应用流程图;
图3为本发明步骤S2的应用流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。附图及实施例仅用于示例性说明,不能理解为对本专利的限制,以下结合附图和实施例对本发明做进一步的阐述。
实施例
目前,针对Flink SQL元数据无法持久化导致复用性差、Flink SQL元数据敏感信息易泄漏及不能生成Flink SQL表级别血缘关系的技术问题,对此,本实施例提供一种基于Flink SQL实现元数据管理的方法及系统,如图1-3所示,包括以下步骤:
步骤1:采集数据源元数据,以便Flink SQL元数据管理界面选择。
采集数据源元数据的方法流程如图2所示。
步骤1.1:通过配置数据库名称、数据库类型、数据库IP、数据库端口、数据库名、数据库模式、用户名及密码或Kafka集群IP和端口采集数据源元数据。
步骤1.2:采集数据源元数据信息分为数据库和消息队列Kafka,其中数据库的元数据为数据库库名、表名、字段名、字段类型及主键信息,消息队列Kafka元数据为主题名称,可以手动配置其字段名及字段类型。
步骤1.3:采集过程分为手动采集和自动采集,其中手动采集为立即采集数据源信息,自动采集为配置执行周期后,周期性自动采集数据源信息。
步骤1.3.1:配置执行周期具体为:选择调度周期时间粒度,包括每年、每月、每周、每日、每时及自定义,后续可选择调度周期对应具体的执行时间,如月、日、时、分。
步骤1.3.2:自定义时间具体为:输入cron时间表达式,系统会自动解析cron时间表达式并周期执行。
步骤2:根据采集到的数据源元数据信息配置、生成并校验Flink SQL表结构。
配置、生成并校验Flink SQL表结构的方法流程如图3所示。
步骤2.1:配置Flink SQL表的具体操作为:
根据步骤1.2采集到的表名或主题名,程序自动解析表名或主题名对应元数据信息,选择数据库映射字段、主键、自定义字段及表参数已完成配置Flink SQL表目的。
步骤2.1中提到表名或主题名对应元数据信息为步骤1.2中所列元数据信息,其中数据库IP、账号及密码不展示已达到保护敏感信息目的。
对于保护敏感信息如图3所示,配置并采集数据源元数据与配置Flink SQL表结构为两个界面,对于配置Flink SQL表结构用户而言无需知道数据源敏感信息,从而达到保护目的。
步骤2.2:在一个实施例中,程序执行上述请求的Flink SQL表进行校验,得到Flink SQL校验结果时,具体实现以下步骤。
步骤2.2.1:生成Flink SQL表的具体操作为:拼接步骤2.1中配置Flink SQL表信息,根据数据源连接器生成对应语法的建表语句。
步骤2.2.2:校验Flink SQL表的具体操作为:分为业务校验和元数据校验。
其中业务校验为:是否勾选字段、勾选CDC时是否同时勾选主键、Flink SQL表名是否重复、字段名及表名是否包含特殊字符且长度是否在128字节内。
其中元数据校验为:使用Apache calcite解析Flink SQL建表语句,通过创建calcite parser解析Flink SQL语句,通过JavaCC将SQL语句转化为抽象语法树(AST),即SqlNode树。
步骤2.2.3:对SQL语句转换为AST过程做判断,若异常,根据异常分析器对异常信息做解析,生成异常结果,将结果展示在可视化界面。
步骤2.2.3中展示的具体信息为:是否校验成功,校验失败原因,包括异常的字段及对应行数、业务校验中所校验的内容。
在本申请中,修改Flink SQL表结构后,使用此Flink SQL表的作业在下次启动时会自动使用最新的表结构,从而避免因Flink表结构的变动而大量修改Flink SQL作业的场景,增加用户体验感。
步骤3:持久化Flink SQL元数据具体操作为:
步骤3.1:在步骤2.2.2中对Flink SQL校验无误后,将Flink SQL元数据信息持久化到MySQL数据库。
步骤3.2:Flink SQL元数据包括:Flink表名、数据源表名、数据源类型、Flink表配置参数、Flink表类型、建表语句及UUID;
数据源类型包括:MySQL、SqlServer、Oracle、PostgreSQL、KingBase、Gbase8s及分布式消息队列Kafka。
Flink表分为实时表和非实时表。
其中判断Flink表类型依据为:数据源为Kafka或勾选了CDC的数据库表为实时表,其余为非实时表。
Flink表配置参数为表参数。
步骤4:解析并校验Flink SQL作业元数据信息。
步骤4.1:其中解析Flink SQL作业的方法为使用calcite通过预定义规则对FlinkSQL进行解析,将SQL Query转换为抽象语法树SqlNodeList,根据SqlNodeList中每个SqlNode对应SqlKind进行判断,分别提取SqlKind为SET、CREATE及INSERT数据,放入对应List数组中。
其中步骤4.1提到的SQL Query转换为抽象语法树SqlNodeList包括:
使用calcite将SQL Query转换为多个SQL,再对每个SQL进行解析,转换为抽象语法树SqlNode放入SqlNodeList中。
其中步骤4.1提到的预定义规则包括:设置解析器语法为Flink SQL语法、设置SQLQuery标识符为‘`’、设置字段未被标识时大小写策略为小写、设置字段被标识时大小写策略为小写、设置字段最大长度为128。
步骤4.2:解析步骤4.1中的List数组,获取对应元数据信息具体为:
循环遍历步骤4.1中SqlKind为INSERT的数组,对数组中每个SqlNode进行遍历,将SqlKind为INSERT,EXPLICIT_TABLE及WITH_ITEM类型的数据放入HashSet中,剔除SqlKind为EXPLICIT_TABLE的表名中SqlKind为WITH_ITEM中的数据,最终得到数据输入源及输出源表。
在本申请中,通过SqlKind解析出Flink SQL作业表级别血缘关系,其数据输出源为SqlKind是INSERT时对应的Flink SQL表名,数据输入源为SqlKind是EXPLICIT_TABLE且剔除SqlKind是WITH_ITEM的表名,最终得到完整的Flink SQL作业表级别血缘关系。
步骤4.2中提到的HashSet存放的是一个JavaBean对象,具体存放的内容为SqlKind和String类型的表名及异常原因。
步骤4.2中提到的剔除SqlKind为EXPLICIT_TABLE的表名中SqlKind为WITH_ITEM中的数据具体方法为:SqlKind为WITH_ITEM时得到的表实际为SQL Query中定义的临时表表名,而非实际Flink SQL表名,所以需要剔除。
步骤4.3:校验Flink SQL作业元数据信息具体操作分为语法校验和元数据校验。
步骤4.3.1:其中语法校验为对步骤4.1中的List数据进行校验,具体校验方式为:
在一个实施例中,SqlKind为SET类型的数组,采用正则表达式进行校验。
在一个实施例中,SqlKind为INSERT类型的数组,根据预定义calcite校验规则进行语法校验,解析作业中SQL Query的输入源及输出源,维护作业与输入源、输出源的对应关系。calcite校验无误后根据作业定义执行参数进行校验,最终生成校验结果。
在本申请中,校验异常信息存入HashSet中JavaBean对象的异常信息字段,最终返回给可视化界面。
其中步骤4.3.1中,SqlKind为INSERT类型的数据校验规则还包括:CDC表不能作为输出表、配置CDC表的作业必须设置Checkpoint及CDC表必须设置主键。
其中步骤4.3.1中的校验异常结果包括校验失败的SQL Query语句,具体校验失败的描述信息及CDC设置异常原因。
步骤4.3.2:Flink SQL作业元数据校验为:根据Flink SQL作业提取的输入源及输出源元数据信息与抽象语法树进行校验,生成校验结果。具体操作为:通过创建Apachecalcite,在其config中使用Flink SQL语法验证Flink SQL建表语句及SQL Query语法正确性;将Flink SQL建表语句注册到Flink Stream Table Environment中,通过循环遍历的方式向Stream Table Environment的explainSql方法传入SQL Query语句,验证SQL Query元数据准确性,最终将校验信息返回给可视化界面;
其中步骤4.3.2中校验信息可以为,校验是否成功、Flink SQL表是否存在、Flink用户是否有操作对应数据源权限(包括查询及写入权限)、Kafka Topic是否存在、FlinkSQL Query元数据与Flink SQL表是否匹配。
步骤4.4:将步骤4.2中得到的Flink SQL作业与Flink SQL表对应关系维护在MySQL中,具体的维护方式为创建一张MySQL表,存入Flink SQL表UUID与Flink SQL作业ID对应关系;
步骤4.5:执行Flink SQL作业及校验Flink SQL作业元数据时,根据步骤4.4中维护的关系表,关联得到Flink SQL作业对应实际Flink SQL建表语句,最终传入SQL Query及对应Fink SQL建表语句。
步骤4.6:目前Flink程序并不支持国产数据库,如KingBase和Gbase8s等。步骤3.2中提到的KingBase和Gbase8s为Flink自定义数据源,通过本发明,可以通过Flink SQL连接KingBase和Gbase8s进行开发,具体实施方式为:
通过自定义Dialect Factory方法实现Dynamic Table Source Factory和Dynamic Table Sink Factory接口,在其中实现自定义Dynamic Table Sink和DynamicTable Source方法,重写KingBase及Gbase8s对应实例工厂。
通过Abstract Dialect接口重写KingBase及Gbase8s的特定方言。
Abstract Dialect接口重写KingBase及Gbase8s的方言具体为,方言包括INSERT、UPDATE、DELETE、SELECT、LIMIT及标识符。
在本申请中,上述自定义数据源还包括使用Java SPI机制,通过标识符加载表连接器,由于每个Flink Table Connector、Format命名的SPI资源文件都在统一目录下META-INF/services,所以在同路径下分别创建org.Apache.flink.connector.jdbc.dialect.JdbcDialectFactory和org.Apache.flink.table.factories.Factory文件,在JdbcDialectFactory中存入自定义DialectFactory方法,在Factory中存入实现AbstractDialect接口的方法。
在本申请中,另外需要说明的是,自定义数据源还包括打包程序时,构建一个包含声明的连接器和库所需的所有依赖项的应用程序JAR,在插件定义org.Apache.maven.plugins.shade.resource.ServicesResourceTransforme r为append.
步骤5:后端将校验结果发送至可视化界面后,可以通过弹窗的方式进行展示,在弹窗界面显示校验失败的具体原因。
在本申请中,Flink SQL可以实现在上线之前预校验,提高了用户的使用体验,增加开发效率。
在本申请中,提前定义好Flink SQL表之后,方便非专业人员进行Flink SQL程序开发,无需着重关注Flink SQL表的定义,特别是Flink SQL表数据源对应参数的开发,仅需要使用标准的SQL语言,极大的提升了用户的使用体验,这也是本申请的重要发明点。
基于本实施例的方法而生成的系统包括:
采集模块:用于采集数据源元数据信息并持久化到数据库MySQL。
持久化模块:根据采集到的数据源元数据信息创建Flink SQL表,并持久化到MySQL数据库。
校验模块:校验Flink SQL作业,根据Flink SQL表元数据信息,对Flink SQL语法及元数据校验,生成校验结果。
展示模块:将校验结果发送至可视化界面进行展示。
最后,还需要说明的是,本领域的普通技术人员可以理解,实现上述发明方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成的。基于这样的理解,上述申请本质上可以通过软件产品的形式体现出来,该软件产品可以存储在可读介质中,该可读介质可以为:ROM/RAM、磁碟、光盘、存储卡等,包括使用指令使得一台计算机设备或服务器执行本发明中各个实施例或实施例中的部分内容。
以上对一种基于Flink SQL实现元数据管理的方法,进行了详细的说明,应当理解的是,以上实施例仅表达了本申请中的几种实施方式,但并不能因此而理解是对本发明范围的限制。同时对于本领域的一般技术人员来说,凡是在本发明构思之内,根据本申请进行同等替换、修改和改进,都应属于本申请的保护范围之内。

Claims (10)

1.一种基于Flink SQL实现元数据管理的方法,其特征在于,包括:
S1、采集并持久化数据源元数据信息;
S2、根据采集到的数据源元数据信息配置,生成并校验Flink SQL表结构;
S3、持久化Flink SQL表元数据信息;
S4、解析并校验Flink SQL作业元数据信息。
2.根据权利要求1所述的基于Flink SQL实现元数据管理的方法,其特征在于,上述S1中所述数据源元数据信息为分布式发布订阅消息系统Kafka、MySQL、Oracle、PostgreSQL、KingBase及Gbase8s。
3.根据权利要求2所述的基于Flink SQL实现元数据管理的方法,其特征在于,所述数据源KingBase和Gbase8s为自定义数据源,通过Java的服务提供者接口实现Dynamic TableSource Factory和Dynamic Table Sink Factory,用于提供KingBase和Gbase8s连接器逻辑,将元数据转换为Dynamic Table Source和Dynamic Table Sink实例,通过AbstractDialect接口重写KingBase及Gbase8s的特定方言。
4.根据权利要求3所述的基于Flink SQL实现元数据管理的方法,其特征在于,所述的方言包括INSERT、UPDATE、DELETE、SELECT、LIMIT及标识符。
5.根据权利要求1所述的基于Flink SQL实现元数据管理的方法,其特征在于,上述S2包括配置映射字段、自定义字段及表参数,其中映射字段为Flink SQL表与数据源元数据字段的映射,包括字段类型的转换与主键的设置;自定义字段为用户通过前端可视化界面自定义Flink SQL表字段及配置watermark信息;表参数分为Flink Table表名和数据源对应连接器参数。
6.根据权利要求1所述的基于Flink SQL实现元数据管理的方法,其特征在于,所述S3中持久化Flink SQL元数据到数据库,并维护Flink SQL元数据与作业的对应关系。
7.根据权利要求1所述的基于Flink SQL实现元数据管理的方法,其特征在于,上述S4采用Apache calcite解析SQL语句,通过calcite parser将SQL语句转换为抽象语法树SqlNodeList,验证SQL语句元数据及语法正确性;循环遍历SqlNodeList得到对应SqlKind信息,通过枚举SqlKind得到数据输入源及输出源表。
8.根据权利要求7所述的基于Flink SQL实现元数据管理的方法,其特征在于,所述通过枚举SqlKind得到数据输入源及输出源表的方法为:循环遍历SqlNodeList,提取SqlKind,将SqlKind为INSERT,EXPLICIT_TABLE及WITH_ITEM类型的数据放入集合中,剔除SqlKind为EXPLICIT_TABLE中表名为WITH_ITEM中的数据,最终得到数据输入源及输出源表。
9.根据权利要求7所述的基于Flink SQL实现元数据管理的方法,其特征在于,所述验证Flink SQL元数据及语法正确性操作为:通过创建Apache calcite,在其config中使用Flink SQL语法验证Flink SQL建表语句及SQL Query语法正确性;将Flink SQL表注册到Flink Stream Table Environment中,通过Stream Table Environment验证SQL Query元数据。
10.根据权利要求1所述的基于Flink SQL实现元数据管理的方法,其特征在于,还包括步骤S5:将校验结果发送至可视化界面进行展示。
CN202210830838.8A 2022-07-15 2022-07-15 基于Flink SQL实现元数据管理的方法 Pending CN115114299A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210830838.8A CN115114299A (zh) 2022-07-15 2022-07-15 基于Flink SQL实现元数据管理的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210830838.8A CN115114299A (zh) 2022-07-15 2022-07-15 基于Flink SQL实现元数据管理的方法

Publications (1)

Publication Number Publication Date
CN115114299A true CN115114299A (zh) 2022-09-27

Family

ID=83333347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210830838.8A Pending CN115114299A (zh) 2022-07-15 2022-07-15 基于Flink SQL实现元数据管理的方法

Country Status (1)

Country Link
CN (1) CN115114299A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117827684A (zh) * 2024-03-05 2024-04-05 数翊科技(北京)有限公司武汉分公司 数据计算作业的预警方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117827684A (zh) * 2024-03-05 2024-04-05 数翊科技(北京)有限公司武汉分公司 数据计算作业的预警方法、装置、电子设备及存储介质
CN117827684B (zh) * 2024-03-05 2024-05-24 数翊科技(北京)有限公司武汉分公司 数据计算作业的预警方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US11100154B2 (en) Data integration tool
US8752015B2 (en) Metadata merging in agent configuration files
US8271430B2 (en) Methods and systems for metadata driven data capture for a temporal data warehouse
AU2007323689B2 (en) Creating data in a data store using a dynamic ontology
US8321450B2 (en) Standardized database connectivity support for an event processing server in an embedded context
GB2513007A (en) Transformation of data items from data sources using a transformation script
US20130152064A1 (en) Classloader/Instrumentation Approach For Invoking Non-Bound Libraries
US20030192027A1 (en) Software application development
EP1810131A2 (en) Services oriented architecture for data integration services
CN110489310B (zh) 一种记录用户操作的方法、装置、存储介质及计算机设备
US20190042631A1 (en) Data Export Job Engine
US11561886B2 (en) Open data protocol performance test automation intelligence (OPT-AI)
CN115114299A (zh) 基于Flink SQL实现元数据管理的方法
US20100070893A1 (en) Data quality administration framework
CN114238463A (zh) 一种用于分布式指标计算的计算引擎控制方法和装置
CN111277425A (zh) 集中化数据传输管理的装置
CN110377401B (zh) 基于idea的事务请求处理方法、装置、服务器和存储介质
US20080022258A1 (en) Custom database system and method of building and operating the same
US8631393B2 (en) Custom database system and method of building and operating the same
Koyama et al. Log message with JSON item count for root cause analysis in microservices
US20220147568A1 (en) Mapping expression generator
US20240176728A1 (en) Plug and play language acceptance testing
US20230306002A1 (en) Help documentation enabler
CA2566025C (en) Type validation for applications incorporating a weakly-typed language
Suvanto Visualizing a Continuous Delivery Pipeline

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