CN113760877A - 一种基于标准sql的流式数据清洗转换方法和系统 - Google Patents

一种基于标准sql的流式数据清洗转换方法和系统 Download PDF

Info

Publication number
CN113760877A
CN113760877A CN202110337239.8A CN202110337239A CN113760877A CN 113760877 A CN113760877 A CN 113760877A CN 202110337239 A CN202110337239 A CN 202110337239A CN 113760877 A CN113760877 A CN 113760877A
Authority
CN
China
Prior art keywords
groovy
function
data
sql
class
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
CN202110337239.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.)
Golaxy Data Technology Co ltd
Original Assignee
Golaxy Data 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 Golaxy Data Technology Co ltd filed Critical Golaxy Data Technology Co ltd
Priority to CN202110337239.8A priority Critical patent/CN113760877A/zh
Publication of CN113760877A publication Critical patent/CN113760877A/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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于标准SQL的流式数据清洗转换方法和系统,根据本发明的一方面包括以下步骤:S1、系统初始化,针对系统库、工作线程、Groovy函数线程、SQL解析引擎进行初始化操作;S2、在上述初始化完成以后,系统开始进行数据清洗转换的工作。根据本发明的另一方面还包括系统初始化模块、内置算子库、SQL解析引擎、提交SQL模块、提交Groovy模块、Groovy类初始化模块、Groovy执行模块、数据重组模块、数据输入和输出模块。本发明的有益效果为:更加高效、便捷、灵活地对流式数据清洗、转换,筛选符合条件的数据,让数据对用户更加有价值。

Description

一种基于标准SQL的流式数据清洗转换方法和系统
技术领域
本发明涉及数据治理领域,具体来说,涉及一种基于标准SQL的流式数据清洗转换方法和系统。
背景技术
随着互联网技术的发展,网络中存在的数据以指数方式增长,但各个网站的数据千差万别,在数据爆发式增长的形势下,数据价值发挥越来越显得紧迫和重要。只有建立完整的数据清洗转换才能保障数据内容的质量,才能真正有效的挖掘数据价值,提升竞争力。
因此,如何高效、快速地将各种异构数据清洗、转换,更好地服务于用户成为亟待解决的问题。本发明结合Java、SQL、Groovy等多种技术提供一种高效、便捷、灵活的数据清洗转换方式,帮助用户更全面、更系统地了解数据。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种基于标准SQL的流式数据清洗转换方法和系统,以克服现有相关技术所存在的上述技术问题。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种基于标准SQL的流式数据清洗转换方法,包括以下步骤:
S1、系统初始化,针对系统库、工作线程、Groovy函数线程、SQL解析引擎进行初始化操作;
S2、在上述初始化完成以后,系统开始进行数据清洗转换的工作。
进一步的,所述步骤S1系统初始化,针对系统库、工作线程、Groovy函数线程、SQL解析引擎进行初始化操作包括以下步骤:
S101,加载配置文件;
S102,初始化系统库;
S103,初始化工作线程;
S104,初始化Groovy函数线程;
S105,初始化SQL解析引擎;
S106,加载内置算子库。
进一步的,所述步骤S2在上述初始化完成以后,系统开始进行数据清洗转换的工作包括以下步骤:
S201输入、输出schema加载,输入数据加载;
S202,提交Groovy类、函数;
S203,初始化Groovy类、函数;
S204,采集SQL语句;
S205,解析SQL语句;
S206,调用Groovy类、函数;
S207,数据重组。
进一步的,所述步骤S101加载配置文件中,所述加载配置文件,是系统加载配置文件中的配置信息;
所述步骤S102初始化系统库中,所述初始化系统库,是系统根据配置文件中配置的数据库信息,使用java cl ient与数据库建立连接;
所述步骤S103初始化工作线程中,所述初始化工作线程,是系统根据配置文件中配置的工作线程数、线程配置信息初始化线程池;
所述步骤S104初始化Groovy函数线程中,所述初始化Groovy函数线程,是系统初始化线程用于实时、定时读取Groovy类、函数;
所述步骤S105初始化SQL解析引擎中,所述初始化SQL解析引擎,是将SQL解析引擎加载到系统中;
所述步骤S106加载内置算子库中,所述加载内置算子库,是系统使用初始化Groovy函数线程读取系统存储库中的内置算子Groovy类、函数信息,加载到系统中。
进一步的,所述步骤S201,输入、输出schema加载,输入数据加载中,所述输入、输出schema加载,输入数据加载,是系统获取用户提交的输入源、输入源信息,用于系统解析数据、重组数据;
所述步骤S202提交Groovy类、函数中,所述采集Groovy类、函数,是系统采集用户创建的数据清洗任务配置的Groovy类、函数;
所述步骤S203初始化Groovy类、函数中,所述初始化Groovy类、函数,是系统调用GroovyClassLoader方法对提交的Groovy类、函数进行初始化得到Groovy类对应的对象并把函数名和对象做映射关系保存在内存中;
所述步骤S204,采集SQL语句中,所述采集SQL语句,是系统采集用户创建的数据清洗任务配置的SQL语句。
所述步骤S205解析SQL语句中,所述解析SQL语句,是使用Anltr4语法分析工具对SQL语句进行解析,分别得到字段映射关系、函数名、函数参数。
所述步骤S206调用Groovy类、函数中,所述调用Groovy类、函数,是指通过上步SQL解析出来的函数名查询对应的已初始化的Groovy类,传入函数参数并调用。
所述步骤S207数据重组中,所述数据重组,是根据输出的schema字段对源数据、计算数据进行筛选并重新组合数据格式。
进一步的,所述步骤S202,提交Groovy类、函数中,Groovy类、函数的编写需符合Groovy语法,设计函数参数、返回值、函数实现逻辑,在函数逻辑中可以实现对字段拆分、脱敏、去重、调用外部接口等清洗转换方法,并将清洗转换后的结果字段组合json作为函数返回值返回。
进一步的,所述步骤S204采集SQL语句中,SQL语句中的字段映射关系包括字段直接映射方式和函数计算方式。
根据本发明的另一方面,提供了一种基于标准SQL的流式数据清洗转换系统,包括系统初始化模块、内置算子库、SQL解析引擎、提交SQL模块、提交Groovy模块、Groovy类初始化模块、Groovy执行模块、数据重组模块、数据输入和输出模块;
其中,所述系统初始化模块主要是系统启动之后对工作线程、采集线程、数据库、流式数据组件等系统配置创建对应的线程、连接数据库、连接流式数据组件等初始化工作;
所述内置算子库主要是对系统中内置的算子库,包括字段拆分、字段填充、字段截取等,初始化加载到系统中,用户可以直接调用,不必再编写Groovy类、函数;
所述SQL解析引擎主要是对提交的SQL语句进行解析,解析出字段映射关系、使用的函数名、函数参数等信息;
所述提交SQL模块主要是用户提交SQL语句,用于后续的SQL解析;
所述提交Groovy模块主要是用户提交Groovy类、函数,存放在系统存储库中,用于后续的Groovy初始化、调用;
所述Groovy类初始化模块在Java程序中初始化内置算子库、用户提交的Groovy类代码;
所述Groovy执行模块主要是根据SQL解析模块中解析出来的函数名、函数参数确定需要调用Groovy类初始化模块中已初始化的类并传入参数调用Groovy函数;
所述数据重组模块主要是根据输出schema将经过Groovy函数返回的数据与原始数据重新组合输出字段结构体;
所述数据输入和输出模块主要是获取待转换的数据及schema数据,输出数据的schema;输出转换后的数据。
可选的,所述SQL解析引擎使用Antlr4作为基础解析库,使用Spark自带的.g4文件,Antlr4根据这个.g4生成对应的词法分析类和语法分析类,同时还使用了访问者模式,用以构建语法树,使用访问者模式分别查找字段对应关系、函数、where条件语句。
本发明的有益效果为:更加高效、便捷、灵活地对流式数据清洗、转换,筛选符合条件的数据,让数据对用户更加有价值。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种基于标准SQL的流式数据清洗转换方法的流程图;
图2是根据本发明实施例的一种基于标准SQL的流式数据清洗转换方法中步骤S1的流程图;
图3是根据本发明实施例的一种基于标准SQL的流式数据清洗转换方法中步骤S2的流程图;
图4是根据本发明实施例的一种基于标准SQL的流式数据清洗转换方法的整体架构图;
图5是根据本发明实施例的一种基于标准SQL的流式数据清洗转换方法的功能流程图;
图6是根据本发明实施例的一种基于标准SQL的流式数据清洗转换方法的Groovy类、函数样例图;
图7是根据本发明实施例的一种基于标准SQL的流式数据清洗转换系统的框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的上述描述中,需要说明的是,术语“一侧”、“另一侧”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
此外,在描述本发明提供的一种基于标准SQL的流式数据清洗转换方法和系统实现之前,先简要对发明中提到的术语进行说明:
1.标准SQL
Structured Query Language,访问关系型数据库的标准语言。
2.Groovy函数
Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,Groovy代码能够与Java代码很好地结合,也能用于扩展现有代码。
3.流式数据
流式数据是一组顺序、大量、快速、连续到达的数据序列,一般情况下,数据流可被视为一个随时间延续而无限增长的动态数据集合。
4.数据清洗转换
数据清洗转换是指对数据进行条件筛选、删除重复数据、数据格式转换、数据计算等。
5.字段映射关系
字段映射关系是指源字段、目的字段之间的映射关系。
如图1-6所示,根据本发明的实施例,提供了一种基于标准SQL的流式数据清洗转换方法,包括以下步骤:
S1、系统初始化,针对系统库、工作线程、Groovy函数线程、SQL解析引擎进行初始化操作;
步骤S101,加载配置文件;
所述加载配置文件,是系统加载配置文件中的配置信息;
步骤S102,初始化系统库;
所述初始化系统库,是系统根据配置文件中配置的数据库信息,使用java client与数据库建立连接;
步骤S103,初始化工作线程;
所述初始化工作线程,是系统根据配置文件中配置的工作线程数、线程配置信息初始化线程池;
步骤S104,初始化Groovy函数线程;
所述初始化Groovy函数线程,是系统初始化线程用于实时、定时读取Groovy类、函数;
步骤S105,初始化SQL解析引擎;
所述初始化SQL解析引擎,是将SQL解析引擎加载到系统中;
步骤S106,加载内置算子库;
所述加载内置算子库,是系统使用初始化Groovy函数线程读取系统存储库中的内置算子Groovy类、函数信息,加载到系统中。
S2、在上述初始化完成以后,系统开始进行数据清洗转换的工作;
步骤S201,输入、输出schema加载,输入数据加载;
所述输入、输出schema加载,输入数据加载,是系统获取用户提交的输入源、输入源信息,用于系统解析数据、重组数据;
步骤S202,提交Groovy类、函数;
所述采集Groovy类、函数,是系统采集用户创建的数据清洗任务配置的Groovy类、函数。Groovy类、函数的编写需符合Groovy语法,设计函数参数、返回值、函数实现逻辑。在函数逻辑中可以实现对字段拆分、脱敏、去重、调用外部接口等清洗转换方法,并将清洗转换后的结果字段组合json作为函数返回值返回;
步骤S203,初始化Groovy类、函数;
所述初始化Groovy类、函数,是系统调用GroovyClassLoader方法对提交的Groovy类、函数进行初始化得到Groovy类对应的对象并把函数名和对象做映射关系保存在内存中;
步骤S204,采集SQL语句;
所述采集SQL语句,是系统采集用户创建的数据清洗任务配置的SQL语句。SQL语句中的字段映射关系分为两个部分:1、字段直接映射方式;2、函数计算方式;
SQL语句模板如下:
Figure BDA0002969741630000081
named_expression:具有指定名称的表达式。一般来说,它表示一个列表达式。
语法:表达式[AS][别名]
from_item:指定查询的输入源。
LATERAL VIEW:LATERAL VIEW子句与诸如burst之类的生成器函数一起使用,它们将生成包含一行或多行的虚拟表。横向视图将应用于每个原始输出行。
WHERE:根据提供的条件筛选FROM子句的结果
以如下SQL语句为例:
Figure BDA0002969741630000082
Figure BDA0002969741630000091
约定select语句中t1._key as_key格式为字段直接映射方式,t2.source assource格式为需要函数计算方式,其中tmp as t1为源数据、lateral view json_tuple(conversion_blog(nrd,nrply,sent),'source','raw_cont')t2为通过计算后返回的数据,conversion_blog为需要调用的Groovy函数名(已初始化成功),nrd、nrply、sent为Groovy函数参数,source、raw_cont为Groovy函数的返回值,where_ch=1为过滤条件;
步骤S205,解析SQL语句;
所述解析SQL语句,是使用Anltr4语法分析工具对SQL语句进行解析,分别得到字段映射关系、函数名、函数参数;
以S203步骤中的SQL为例,经SQL解析之后字段映射关系为t1._key->_key,t1._id->_id,t1._spec->_spec,t1._ch->_ch,t1.gt->gather_time,t2.source->source,t2.raw_cont->raw_cont,函数名为conversion_blog,函数参数为nrd、nrply、sent,过滤条件为_ch=1;
步骤S206,调用Groovy类、函数;
所述调用Groovy类、函数,是指通过上步SQL解析出来的函数名查询对应的已初始化的Groovy类,传入函数参数并调用。
步骤S207,数据重组;
所述数据重组,是根据输出的schema字段对源数据(直接映射部分)、计算数据进行筛选并重新组合数据格式。
如图7所示,根据本发明的另一个方面,提供了一种基于标准SQL的流式数据清洗转换系统,包括系统初始化模块、内置算子库、SQL解析引擎、提交SQL模块、提交Groovy模块、Groovy类初始化模块、Groovy执行模块、数据重组模块、数据输入和输出模块;
其中,所述系统初始化模块主要是系统启动之后对工作线程、采集线程、数据库、流式数据组件等系统配置创建对应的线程、连接数据库、连接流式数据组件等初始化工作;
所述内置算子库主要是对系统中内置的算子库,包括字段拆分、字段填充、字段截取等,初始化加载到系统中,用户可以直接调用,不必再编写Groovy类、函数;
所述SQL解析引擎主要是对提交的SQL语句进行解析,解析出字段映射关系、使用的函数名、函数参数等信息,所述SQL解析引擎使用Antlr4作为基础解析库,使用Spark自带的.g4文件,Antlr4根据这个.g4生成对应的词法分析类和语法分析类,同时还使用了访问者模式,用以构建语法树,使用访问者模式分别查找字段对应关系、函数、where条件语句;
所述提交SQL模块主要是用户提交SQL语句,用于后续的SQL解析;
所述提交Groovy模块主要是用户提交Groovy类、函数,存放在系统存储库中,用于后续的Groovy初始化、调用;
所述Groovy类初始化模块在Java程序中初始化内置算子库、用户提交的Groovy类代码;
所述Groovy执行模块主要是根据SQL解析模块中解析出来的函数名、函数参数确定需要调用Groovy类初始化模块中已初始化的类并传入参数调用Groovy函数;
所述数据重组模块主要是根据输出schema将经过Groovy函数返回的数据与原始数据重新组合输出字段结构体;
所述数据输入和输出模块主要是获取待转换的数据及schema数据,输出数据的schema;输出转换后的数据。
综上所述,借助于本发明的上述技术方案,更加高效、便捷、灵活地对流式数据清洗、转换,筛选符合条件的数据,让数据对用户更加有价值。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (9)

1.一种基于标准SQL的流式数据清洗转换方法,其特征在于,包括以下步骤:
S1、系统初始化,针对系统库、工作线程、Groovy函数线程、SQL解析引擎进行初始化操作;
S2、在上述初始化完成以后,系统开始进行数据清洗转换的工作。
2.根据权利要求1所述的一种基于标准SQL的流式数据清洗转换方法,其特征在于,所述步骤S1系统初始化,针对系统库、工作线程、Groovy函数线程、SQL解析引擎进行初始化操作包括以下步骤:
S101,加载配置文件;
S102,初始化系统库;
S103,初始化工作线程;
S104,初始化Groovy函数线程;
S105,初始化SQL解析引擎;
S106,加载内置算子库。
3.根据权利要求1述的一种基于标准SQL的流式数据清洗转换方法,其特征在于,所述步骤S2在上述初始化完成以后,系统开始进行数据清洗转换的工作包括以下步骤:
S201输入、输出schema加载,输入数据加载;
S202,提交Groovy类、函数;
S203,初始化Groovy类、函数;
S204,采集SQL语句;
S205,解析SQL语句;
S206,调用Groovy类、函数;
S207,数据重组。
4.根据权利要求2所述的一种基于标准SQL的流式数据清洗转换方法,其特征在于,所述步骤S101加载配置文件中,所述加载配置文件,是系统加载配置文件中的配置信息;
所述步骤S102初始化系统库中,所述初始化系统库,是系统根据配置文件中配置的数据库信息,使用java client与数据库建立连接;
所述步骤S103初始化工作线程中,所述初始化工作线程,是系统根据配置文件中配置的工作线程数、线程配置信息初始化线程池;
所述步骤S104初始化Groovy函数线程中,所述初始化Groovy函数线程,是系统初始化线程用于实时、定时读取Groovy类、函数;
所述步骤S105初始化SQL解析引擎中,所述初始化SQL解析引擎,是将SQL解析引擎加载到系统中;
所述步骤S106加载内置算子库中,所述加载内置算子库,是系统使用初始化Groovy函数线程读取系统存储库中的内置算子Groovy类、函数信息,加载到系统中。
5.根据权利要求3所述的一种基于标准SQL的流式数据清洗转换方法,其特征在于,所述步骤S201,输入、输出schema加载,输入数据加载中,所述输入、输出schema加载,输入数据加载,是系统获取用户提交的输入源、输入源信息,用于系统解析数据、重组数据;
所述步骤S202提交Groovy类、函数中,所述采集Groovy类、函数,是系统采集用户创建的数据清洗任务配置的Groovy类、函数;
所述步骤S203初始化Groovy类、函数中,所述初始化Groovy类、函数,是系统调用GroovyClassLoader方法对提交的Groovy类、函数进行初始化得到Groovy类对应的对象并把函数名和对象做映射关系保存在内存中;
所述步骤S204,采集SQL语句中,所述采集SQL语句,是系统采集用户创建的数据清洗任务配置的SQL语句。
所述步骤S205解析SQL语句中,所述解析SQL语句,是使用Anltr4语法分析工具对SQL语句进行解析,分别得到字段映射关系、函数名、函数参数。
所述步骤S206调用Groovy类、函数中,所述调用Groovy类、函数,是指通过上步SQL解析出来的函数名查询对应的已初始化的Groovy类,传入函数参数并调用。
所述步骤S207数据重组中,所述数据重组,是根据输出的schema字段对源数据、计算数据进行筛选并重新组合数据格式。
6.根据权利要求5所述的一种基于标准SQL的流式数据清洗转换方法,其特征在于,所述步骤S202,提交Groovy类、函数中,Groovy类、函数的编写需符合Groovy语法,设计函数参数、返回值、函数实现逻辑,在函数逻辑中可以实现对字段拆分、脱敏、去重、调用外部接口等清洗转换方法,并将清洗转换后的结果字段组合json作为函数返回值返回。
7.根据权利要求5所述的一种基于标准SQL的流式数据清洗转换方法,其特征在于,所述步骤S204采集SQL语句中,SQL语句中的字段映射关系包括字段直接映射方式和函数计算方式。
8.一种基于标准SQL的流式数据清洗转换系统,其特征在于,用于权利要求1-7任意一项所述的基于标准SQL的流式数据清洗转换方法的使用,包括系统初始化模块、内置算子库、SQL解析引擎、提交SQL模块、提交Groovy模块、Groovy类初始化模块、Groovy执行模块、数据重组模块、数据输入和输出模块;
其中,所述系统初始化模块主要是系统启动之后对工作线程、采集线程、数据库、流式数据组件等系统配置创建对应的线程、连接数据库、连接流式数据组件等初始化工作;
所述内置算子库主要是对系统中内置的算子库,包括字段拆分、字段填充、字段截取等,初始化加载到系统中,用户可以直接调用,不必再编写Groovy类、函数;
所述SQL解析引擎主要是对提交的SQL语句进行解析,解析出字段映射关系、使用的函数名、函数参数等信息;
所述提交SQL模块主要是用户提交SQL语句,用于后续的SQL解析;
所述提交Groovy模块主要是用户提交Groovy类、函数,存放在系统存储库中,用于后续的Groovy初始化、调用;
所述Groovy类初始化模块在Java程序中初始化内置算子库、用户提交的Groovy类代码;
所述Groovy执行模块主要是根据SQL解析模块中解析出来的函数名、函数参数确定需要调用Groovy类初始化模块中已初始化的类并传入参数调用Groovy函数;
所述数据重组模块主要是根据输出schema将经过Groovy函数返回的数据与原始数据重新组合输出字段结构体;
所述数据输入和输出模块主要是获取待转换的数据及schema数据,输出数据的schema;输出转换后的数据。
9.根据权利要求8所述的一种基于标准SQL的流式数据清洗转换系统,其特征在于,所述SQL解析引擎使用Antlr4作为基础解析库,使用Spark自带的.g4文件,Antlr4根据这个.g4生成对应的词法分析类和语法分析类,同时还使用了访问者模式,用以构建语法树,使用访问者模式分别查找字段对应关系、函数、where条件语句。
CN202110337239.8A 2021-03-10 2021-03-10 一种基于标准sql的流式数据清洗转换方法和系统 Pending CN113760877A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110337239.8A CN113760877A (zh) 2021-03-10 2021-03-10 一种基于标准sql的流式数据清洗转换方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110337239.8A CN113760877A (zh) 2021-03-10 2021-03-10 一种基于标准sql的流式数据清洗转换方法和系统

Publications (1)

Publication Number Publication Date
CN113760877A true CN113760877A (zh) 2021-12-07

Family

ID=78786805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110337239.8A Pending CN113760877A (zh) 2021-03-10 2021-03-10 一种基于标准sql的流式数据清洗转换方法和系统

Country Status (1)

Country Link
CN (1) CN113760877A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170091234A1 (en) * 2015-09-29 2017-03-30 Zekko Inc. Database cooperating system and database cooperating program
CN110471913A (zh) * 2019-07-31 2019-11-19 北京慧萌信安软件技术有限公司 一种数据清洗方法及装置
CN110909066A (zh) * 2019-12-06 2020-03-24 中科院计算技术研究所大数据研究院 一种基于SparkSQL和RestAPI的流数据处理方法
CN110955722A (zh) * 2019-11-05 2020-04-03 北京天元创新科技有限公司 数据同步方法及装置
CN111259042A (zh) * 2020-01-08 2020-06-09 智业软件股份有限公司 一种动态查询方法及系统
CN111597181A (zh) * 2020-05-19 2020-08-28 众创网(武汉)科技有限公司 一种基于可视化管理的分布式异源数据清洗系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170091234A1 (en) * 2015-09-29 2017-03-30 Zekko Inc. Database cooperating system and database cooperating program
CN110471913A (zh) * 2019-07-31 2019-11-19 北京慧萌信安软件技术有限公司 一种数据清洗方法及装置
CN110955722A (zh) * 2019-11-05 2020-04-03 北京天元创新科技有限公司 数据同步方法及装置
CN110909066A (zh) * 2019-12-06 2020-03-24 中科院计算技术研究所大数据研究院 一种基于SparkSQL和RestAPI的流数据处理方法
CN111259042A (zh) * 2020-01-08 2020-06-09 智业软件股份有限公司 一种动态查询方法及系统
CN111597181A (zh) * 2020-05-19 2020-08-28 众创网(武汉)科技有限公司 一种基于可视化管理的分布式异源数据清洗系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
沈洁等: "一个通用数据清洗服务器的设计与实现", 《微电子学与计算机》 *

Similar Documents

Publication Publication Date Title
Fruhwirth et al. Logic programs as types for logic programs
Kazman et al. View extraction and view fusion in architectural understanding
US8612939B2 (en) Multi trace parser
Kienle et al. Rigi—An environment for software reverse engineering, exploration, visualization, and redocumentation
CN109189469B (zh) 基于反射的安卓应用微服务化方法及系统
CN109189374B (zh) 基于对象引用链的对象构造代码生成方法及系统
Biswas et al. Boa meets python: A boa dataset of data science software in python language
WO2011101206A1 (en) A method and a system for searching for parts of a computer program which affects a given symbol
CN111324628A (zh) 一种基于Spark SQL的统一SQL查询方法
CN113672628A (zh) 数据血缘分析方法、终端设备及介质
CN113760877A (zh) 一种基于标准sql的流式数据清洗转换方法和系统
CN115080011B (zh) 基于抽象语法树的代码生成方法及系统
US20040010780A1 (en) Method and apparatus for approximate generation of source code cross-reference information
CN114385145A (zh) 一种Web系统后端架构设计方法及计算机设备
CN114547083A (zh) 数据处理方法、装置及电子设备
Linton Queries and views of programs using a relational database system
CN112685435A (zh) 一种基于Vue和Mybatis的表格查询方法及系统
CN112764829A (zh) 一种用于Linux系统的指标监控方法
JPH07182179A (ja) オブジェクト指向データベース管理装置
CN116756184B (zh) 数据库实例处理方法、装置、设备、存储介质及程序产品
Yang et al. Acquisition of ERA models from data intensive code
Shao et al. Querying data-intensive programs for data design
CN115203016A (zh) 一种matlab语言代码质量检测系统及其检测方法
Börstler Feature-oriented classification and reuse in IPSEN
Daly et al. PADS: An end-to-end system for processing ad hoc data

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20211207