CN113535758B - 一种把传统数据库脚本批量转换上云的大数据系统和方法 - Google Patents
一种把传统数据库脚本批量转换上云的大数据系统和方法 Download PDFInfo
- Publication number
- CN113535758B CN113535758B CN202111053034.3A CN202111053034A CN113535758B CN 113535758 B CN113535758 B CN 113535758B CN 202111053034 A CN202111053034 A CN 202111053034A CN 113535758 B CN113535758 B CN 113535758B
- Authority
- CN
- China
- Prior art keywords
- conversion
- script
- module
- functions
- different
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种把传统数据库脚本批量转换上云的大数据系统和方法,该系统包括:语法解析器模块、异构数据库之间转换映射模块及脚本转换模块。有益效果:本发明快速精准将需要转化的业务SQL识别和提取,按照需要上云转化识别的语法,对SQL进行语法重构转换,成功率达96.7%以上,语义提取识别和语法转化准确率达85.4%以上。
Description
技术领域
本发明涉及大数据产品领域,具体来说,涉及一种把传统数据库脚本批量转换上云的大数据系统和方法。
背景技术
信息技术的飞速发展,推动着IT技术的各个方面发生变革。近几年,IT领域正加速步入云计算时代。云计算的提出引发了新的计算变革,催生出新的IT服务模式,进而使工作方式和商业模式发生了根本性改变。追根溯源,云计算与并行计算、分布式计算和网格计算不无关系,更是虚拟化、效用计算、SaaS(Software-as-a-Service,软件即服务)、SOA(面向服务的体系结构,是一个组件模型)等技术混合演进的结果。通过与相关技术、商业模式、创新要素形成的有机互动,云计算已经成为信息产业实现跨越式发展的重要驱动力。
对企业而言,数据中心的各种系统(包括软硬件与基础设施)是一大笔资源投入。一方面,新系统(主要指硬件部分)一般经过3-5年即面临逐步老化与淘汰,软件则面临不断升级的压力;另一方面,IT的投入难以跟上业务发展的步伐,即使利用虚拟化技术,也解决不了不断增加的业务对资源的变化需求,一定时期内扩展性总是有所限制。于是,企业产生了新的需求:IT资源能够弹性扩展、按需服务,将服务作为IT的核心,提升业务敏捷性,从而大幅降低成本。因此,面向服务的IT需求开始演化到云计算架构上。
另外,现代企业有一个关键的生产资料和要素,那就是数据。数据已经成为企业的核心资产,而对数据的使用和挖掘能力也日益成为企业的核心竞争力。利用云计算技术与服务能够更方便地收集、计算、挖掘数据,使那些不具备大数据基础设施的企业也能享受到大数据带来的红利。
原来传统的关系型数据库通过存储过程等脚本计算加工数据,实现相关ETL(数据仓库技术)功能,数据上云后,相关的计算加工逻辑ETL功能需要迁移上云,原有的存储过程等脚本是经过日积月累长期沉淀的业务逻辑结果,如果通过人工方式进行迁移上云,会存在大量的异构数据库语法、函数及关键字等差异造成的人工转换工作量,同时这些工作可能是一些重复低效的工作。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种把传统数据库脚本批量转换上云的大数据系统和方法,以克服现有相关技术所存在的上述技术问题。
为此,本发明采用的具体技术方案如下:
根据本发明的一个方面,提供了一种把传统数据库脚本批量转换上云的大数据系统,该系统包括:语法解析器模块、异构数据库之间转换映射模块及脚本转换模块;
其中,所述语法解析器模块,用于根据不同的关系型数据库对相关上云转换识别语法及代码规范定义进行配置,且产品根据不同的项目现场通过配置的关键字对相关的关系型数据库转换的结构化查询语言进行识别和提取,同时结合不同目标库转换的语法进行转换重构;
所述异构数据库之间转换映射模块,用于根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时通过模板选择实现相关语法的转换;
所述脚本转换模块,用于支持不同格式的代码转换输出,并通过模板方式选择,实现不同格式的脚本转换;
其中,所述异构数据库之间转换映射模块转换映射时,包括函数、语法及关键字转换映射。
进一步的,所述语法解析器模块包括加载脚本模块、分析语句单词模块及脚本拆分模块;
其中,所述加载脚本模块,用于针对加载的结构化查询语言脚本,通过JSON进行匹配;
所述分析语句单词模块,用于分析结构化查询语言语句中的每一个单词,并对单词所在的位置进行记录;
所述脚本拆分模块,用于分析单词的含义,并归类为结构化查询语言中的字句部分。
进一步的,所述通过模板选择实现相关语法的转换时,语法的转换包括字符串转换、空值函数转换、分区转换、排序转换及字符类型。
进一步的,所述根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时通过模板选择实现相关语法的转换时,对关系型数据库与HIVE数据库相关的映射关系进行配置,同时针对拆分后的子句分析器里面包含的函数、语法及关键字进行映射。
进一步的,所述针对拆分后的子句分析器里面包含的函数、语法及关键字进行映射时,所有的标识符区分大小写,并使用双引号引用对应的数据源表和列名;
针对动态参数,通过占位符来进行动态参数语法绑定,且在执行的过程中与占位符进行绑定。
进一步的,所述针对拆分后的子句分析器里面包含的函数、语法及关键字进行映射时,数据类型支持查询运行时将结构化查询语言类型映射到原生类型,若在具有相同运行时类型的两个结构化查询语言类型之间进行强制转换时,不会产生任何影响,除非表中指出了异常;
若在两个具有不同运行时类型的结构化查询语言类型之间进行转换时,将生成一个运行时转换;
若一个值不能正确地转换为另一个值,则运行时将替换默认值,且NULL转换为不可为空类型时将替换为默认值。
进一步的,所述函数包括聚合函数及扩展函数;
其中,所述聚合函数,用于出现在任务查询的SELECT子句中,任何聚合器使用表达式AGG expr FILTER WHERE whereExpr进行过滤;被过滤的聚合器聚合匹配了过滤器的行,且同一个结构化查询语言查询中的两个聚合器可能有不同的过滤器。
所述扩展函数包括数值函数、字符串函数、时间函数、归约函数、比较操作符及其他扩展函数。
进一步的,所述脚本转换模块支持的脚本转换包括ORACLE存储过程、自定义SQL脚本及封装调用的存储过程。
进一步的,所述支持不同格式的代码转换输出,并通过模板方式选择,实现不同格式的脚本转换时,针对拆分后的对应子句转成原生结构化查询语言,并结合对应的不同模板,生成最终的脚本;
其中,后台配置若干种模式的转换配置,不同的用户选择不同的转换场景。
根据本发明的另一方面,提供了一种把传统数据库脚本批量转换上云的大数据方法,该方法包括以下步骤:
S1、根据不同的关系型数据库对相关上云转换识别语法及代码规范定义进行配置,且产品根据不同的项目现场通过配置的关键字对相关的关系型数据库转换的结构化查询语言进行识别和提取,同时结合不同目标库转换的语法进行转换重构;
S2、根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时通过模板选择实现相关语法的转换;
S3、支持不同格式的代码转换输出,并通过模板方式选择,实现不同格式的脚本转换。
本发明的有益效果为:
(1)本发明操作简单便捷,支持单机版部署,导入已有的存储过程点击转换即可实现相关HIVE脚本的转换。
(2)本发明规范化的编码检测:针对原有的脚本编码不规范,不标准的情况,支持配置化的编码规范和要求,进行规范化的编码生成。
(3)本发明支持不同的异构数据库脚本迁移:支持ORACLE存储过程转换成HIVESQL存储过程,支持ORACLE的自定义SQL转换成PERL/shell封装的脚本,支持perl/shell封装调用的存储过程转换成perl/shell封装的脚本。
(4)本发明通过配置关键字,快速精准将需要转化的业务SQL识别和提取,按照需要上云转化识别的语法,对SQL进行语法重构转换,成功率达96.7%以上,语义提取识别和语法转化准确率达85.4%以上;通过配置关键字,支持快速定位存储过程、perl等脚本中的核心业务SQL,实现语义精准抓取和识别;支持异构数据库之间的SQL语法快速转换,涵盖字符串转换、空值函数转换、分区转换、排序转换、字符类型等语法的转换。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种把传统数据库脚本批量转换上云的大数据系统的结构框图;
图2是根据本发明实施例的一种把传统数据库脚本批量转换上云的大数据方法的流程图;
图3是根据本发明脚本批量转换工具转换流程;
图4是本发明实施例的一种把传统数据库脚本批量转换上云的大数据系统的语法解析器模块的结构框图。
图中:
1、语法解析器模块;101、加载脚本模块;102、分析语句单词模块;103、脚本拆分模块;2、异构数据库之间转换映射模块;3、脚本转换模块。
具体实施方式
为进一步说明各实施例,本发明提供有附图,这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理,配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点,图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
根据本发明的实施例,提供了一种把传统数据库脚本批量转换上云的大数据系统和方法,解决了当前数据上云过程中脚本批量上云带来的迁移工作量巨大的问题,通过批量的方法,提炼相关公共的逻辑,提高脚本批量上云带来效率和质量。
1、系统支持ORACLE/MYSQL存储过程脚本批量转换成HIVE-SQL文件;(ORACLE:Oracle Database,又名Oracle RDBMS,或简称Oracle,是甲骨文公司的一款关系数据库管理系统,MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于 Oracle旗下产品)
2、系统支持SQL脚本,自定义SQL转换成封装HIVE脚本的perl脚本模式;(HIVE是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据,Perl是一种功能丰富的计算机程序语言)
3、系统支持封装ORACLE/MYSQL存储过程的perl脚本转换成HIVE PERL脚本;
4、支持本地单机版部署,实现相关脚本的批量快速转换,生成的脚本采用了规范的编码格式(内容左对齐等),为相关计算上云迁移效率有一定的工作量提升,并且减少人员编码的一些低级错误。同时也能发现原有的历史存储过程脚本的一些写法不合理,不规范的地方。
现结合附图和具体实施方式对本发明进一步说明,如图1和4所示,根据本发明的一个方面,提供了一种把传统数据库脚本批量转换上云的大数据系统和方法,该系统包括:语法解析器模块1、异构数据库之间转换映射模块2及脚本转换模块3;
其中,所述语法解析器模块1,用于根据不同的关系型数据库对相关上云转换识别语法及代码规范定义进行配置,且方便产品根据不同的项目现场通过配置的关键字快速精准的对相关的关系型数据库转换的结构化查询语言(SQL)进行识别和提取,同时结合不同目标库转换的语法进行转换重构;
其中,所述语法解析器模块1包括加载脚本模块101(加载SQL脚本)、分析语句单词模块102(分析SQL语句单词)及脚本拆分模块103(基于SELECT/FROM相关的子句进行脚本拆分);sql语句中的SELECT 语句用于从数据库中选取数据,SQL的关键字 FROM 后跟的表名(tablename)决定了从哪一张表格查询数据和返回结果。
其中,所述加载脚本模块101,用于针对加载的结构化查询语言脚本,通过JSON进行匹配;
所述分析语句单词模块102,用于分析结构化查询语言语句中的每一个单词,并对单词所在的位置进行记录;
所述脚本拆分模块103,用于分析单词的含义,并归类为结构化查询语言中的字句部分。
SQL解析基于JSON的本地查询语言的替代,支持如下的SELECT查询结构:
[EXPLAINPLANFOR]
[WITHtableName[(column1,column2,...)]AS(query)]
SELECT[ALL|DISTINCT]{*|exprs}
FROM{<table>|(<subquery>)|<o1>[INNER|LEFT]JOIN<o2>ONcondition}
[WHEREexpr]
[GROUPBY[exprs|GROUPINGSETS((exprs),...)|ROLLUP(exprs)|CUBE(exprs)]]
[HAVINGexpr]
[ORDERBYexpr[ASC|DESC],expr[ASC|DESC],...]
[LIMITlimit]
[UNIONALL<anotherquery>]
FROM子句分析器可以引用:SCHEMA的表数据源,SCHEMA的LOOKUPS,以及列表中任何内容之间的JOIN,本地数据源(TABLE、LOOKUP、QUERY);
WHERE子句分析器引用FROM表中的列或者子查询;
GROUP BY子句分析器引用FROM表中的列,使用GROUP BY、DISTINCT或任何聚合函数;GROUP BY子句还可以通过三种方式来引用多个分组集;GROUP BY为根据字段进行分组操作操作。
HAVING子句分析器引用在执行GROUP BY之后出现的列,与GROUP BY配合用;
ORDER BY子句分析器引用执行GROUP BY之后出现的列,根据分组表达式或聚合值对结果进行排序;
LIMIT子句分析器用于限制返回的行数;LIMIT方法获取指定Dataset的前n行记录,得到一个新的Dataset对象。
UNION ALL操作符分析器可用于将多个查询融合在一起;
EXPLAIN PLAN分析器开头的语句查询实际不会执行;
所述异构数据库之间转换映射模块2,用于根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时可以通过模板选择实现相关语法的快速转换;
其中,所述通过模板选择实现相关语法的转换时,语法的转换包括字符串转换、空值函数转换、分区转换、排序转换及字符类型等。
所述根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时通过模板选择实现相关语法的转换时,对关系型数据库与HIVE数据库相关的映射关系进行配置,同时针对拆分后的子句分析器里面包含的函数、语法及关键字进行映射。
所述针对拆分后的子句分析器里面包含的函数、语法及关键字等进行映射时,所有的标识符区分大小写,并使用双引号引用对应的数据源表和列名;
针对动态参数,通过占位符来进行动态参数语法绑定,且在执行的过程中与占位符进行绑定。具体的,上述占位符可以采用英文字母或其他字符进行表示。
所述针对拆分后的子句分析器里面包含的函数、语法及关键字等进行映射时,数据类型支持查询运行时将结构化查询语言类型映射到原生类型,若在具有相同运行时类型的两个结构化查询语言类型之间进行强制转换时,不会产生任何影响,除非表中指出了异常;
若在两个具有不同运行时类型的结构化查询语言类型之间进行转换时,将生成一个运行时转换;
若一个值不能正确地转换为另一个值,如CAST('foo' AS BIGINT),则运行时将替换默认值,且NULL转换为不可为空类型时将替换为默认值(例如,NULL转化数字将转换为零)。如表1所示:
表1
述函数包括聚合函数及扩展函数;
其中,所述聚合函数,用于可以出现在任务查询的SELECT(SQL数据操纵语言)子句中,任何聚合器都可以使用表达式AGG expr FILTER WHERE whereExpr进行过滤;被过滤的聚合器仅仅聚合那些匹配了过滤器的行,且同一个结构化查询语言查询中的两个聚合器可能有不同的过滤器。只有COUNT聚合支持使用DISTINCT(COUNT及DISTINCT是一种函数)。其中,FILTER为根据字段进行筛选,AGG expr 为聚合操作调用的是agg方法,该方法输入的是对于聚合操作的表达 aggExpr ,可同时对多个列进行聚合操作 aggExprs ,一般与GroupBy方法配合使用;where Expr满足条件字句,根据条件过滤筛选数据,通过运算符操作判定范围。
所述扩展函数包括数值函数(数学运算)、字符串函数、时间函数、归约函数、比较操作符及其他扩展函数。
其中,所述异构数据库之间转换映射模块2转换映射时,包括函数、语法及关键字转换映射。
所述脚本转换模块3,用于支持不同格式的代码转换输出,并通过模板方式选择,可以实现不同格式的脚本转换,满足差异化灵活的场景支撑;
所述脚本转换模块3支持的脚本转换包括ORACLE存储过程、自定义SQL脚本及封装调用的存储过程等。封装调用的存储过程包括PERL封装、SHELL封装。(SHELL脚本为Shellscript,是一种电脑程序与文本文件,内容由一连串的shell命令组成,经由Unix Shell直译其内容后运作,PERL脚本为Perl命令集,Perl一种功能丰富的计算机程序语言,运行在超过100种计算机平台上)
所述支持不同格式的代码转换输出,并通过模板方式选择,实现不同格式的脚本转换时,针对拆分后的对应子句转成原生结构化查询语言,并结合对应的不同模板,生成最终的脚本;
其中,后台配置若干种模式的转换配置,不同的用户选择不同的转换场景,如ORACLE存储过程转成成HIVE存储过程,自定义SQL脚本转换成Perl/SHELL封装的HSQL脚本,PERL/SHELL封装的存储过程转换成PERL/SHELL封装的HSQL脚本。
根据本发明的另一方面,如图2所示,提供了一种把传统数据库脚本批量转换上云的大数据方法,该方法包括以下步骤:
S1、根据不同的关系型数据库对相关上云转换识别语法及代码规范定义进行配置,且产品根据不同的项目现场通过配置的关键字对相关的关系型数据库转换的结构化查询语言进行识别和提取,同时结合不同目标库转换的语法进行转换重构;
S2、根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时通过模板选择实现相关语法的转换;
S3、支持不同格式的代码转换输出,并通过模板方式选择,实现不同格式的脚本转换。
术语说明如表2:
表2
如图3所示,为脚本批量转换工具转换流程图。
使用场景:
企业数据上云成为趋势,随着数据上云,原有的大量基于关系型数据库的相关ETL脚本也面临上云的要求,原有的数据脚本是多年沉淀积累的结果,需要在短时间内完成上云要求,针对这个背景,跨异构数据库的脚本转换工具通过识别不同脚本语法,对SQL语法进行重构转换,为脚本上云提供便捷批量的方式。
本发明提出了一种实现跨异构数据库的批量脚本迁移的系统工具和评估方法,并已经开发完成一套批量转换脚本的系统,在运营商的市场已经有部署实施的案例。
综上所述,本发明操作简单便捷,支持单机版部署,导入已有的存储过程点击转换即可实现相关HIVE脚本的转换。本发明规范化的编码检测:针对原有的脚本编码不规范,不标准的情况,支持配置化的编码规范和要求,进行规范化的编码生成。本发明支持不同的异构数据库脚本迁移:支持ORACLE存储过程转换成HIVE SQL存储过程,支持ORACLE的自定义SQL转换成PERL/shell封装的脚本,支持perl/shell封装调用的存储过程转换成perl/shell封装的脚本。本发明通过配置关键字,快速精准将需要转化的业务SQL识别和提取,按照需要上云转化识别的语法,对SQL进行语法重构转换,成功率达96.7%以上,语义提取识别和语法转化准确率达85.4%以上;通过配置关键字,支持快速定位存储过程、perl等脚本中的核心业务SQL,实现语义精准抓取和识别;支持异构数据库之间的SQL语法快速转换,涵盖字符串转换、空值函数转换、分区转换、排序转换、字符类型等语法的转换。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种把传统数据库脚本批量转换上云的大数据系统,其特征在于,该系统包括:语法解析器模块(1)、异构数据库之间转换映射模块(2)及脚本转换模块(3);
其中,所述语法解析器模块(1),用于根据不同的关系型数据库对相关上云转换识别语法及代码规范定义进行配置,且产品根据不同的项目现场通过配置的关键字对相关的关系型数据库转换的结构化查询语言进行识别和提取,同时结合不同目标库转换的语法进行转换重构;
所述异构数据库之间转换映射模块(2),用于根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时通过模板选择实现相关语法的转换;
所述脚本转换模块(3),用于支持不同格式的代码转换输出,并通过模板方式选择,实现不同格式的脚本转换;
其中,所述根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时通过模板选择实现相关语法的转换时,对关系型数据库与HIVE数据库相关的映射关系进行配置,同时针对拆分后的子句分析器里面包含的函数、语法及关键字进行映射。
2.根据权利要求1所述的一种把传统数据库脚本批量转换上云的大数据系统,其特征在于,所述语法解析器模块(1)包括加载脚本模块(101)、分析语句单词模块(102)及脚本拆分模块(103);
其中,所述加载脚本模块(101),用于针对加载的结构化查询语言脚本,通过JSON进行匹配;
所述分析语句单词模块(102),用于分析结构化查询语言语句中的每一个单词,并对单词所在的位置进行记录;
所述脚本拆分模块(103),用于分析单词的含义,并归类为结构化查询语言中的字句部分。
3.根据权利要求1所述的一种把传统数据库脚本批量转换上云的大数据系统,其特征在于,所述通过模板选择实现相关语法的转换时,语法的转换包括字符串转换、空值函数转换、分区转换、排序转换及字符类型。
4.根据权利要求1所述的一种把传统数据库脚本批量转换上云的大数据系统,其特征在于,所述针对拆分后的子句分析器里面包含的函数、语法及关键字进行映射时,所有的标识符区分大小写,并使用双引号引用对应的数据源表和列名;
针对动态参数,通过占位符来进行动态参数语法绑定,且在执行的过程中与占位符进行绑定。
5.根据权利要求1所述的一种把传统数据库脚本批量转换上云的大数据系统,其特征在于,所述针对拆分后的子句分析器里面包含的函数、语法及关键字进行映射时,数据类型支持查询运行时将结构化查询语言类型映射到原生类型,若在具有相同运行时类型的两个结构化查询语言类型之间进行强制转换时,不会产生任何影响,除非表中指出了异常;
若在两个具有不同运行时类型的结构化查询语言类型之间进行转换时,将生成一个运行时转换;
若一个值不能正确地转换为另一个值,则运行时将替换默认值,且NULL转换为不可为空类型时将替换为默认值。
6.根据权利要求5所述的一种把传统数据库脚本批量转换上云的大数据系统,其特征在于,所述函数包括聚合函数及扩展函数;
其中,所述聚合函数,用于出现在任务查询的SELECT子句中,任何聚合器使用表达式AGG expr FILTER WHERE whereExpr进行过滤;被过滤的聚合器聚合匹配了过滤器的行,且同一个结构化查询语言查询中的两个聚合器可能有不同的过滤器;
所述扩展函数包括数值函数、字符串函数、时间函数、归约函数、比较操作符及其他扩展函数。
7.根据权利要求1所述的一种把传统数据库脚本批量转换上云的大数据系统,其特征在于,所述脚本转换模块(3)支持的脚本转换包括ORACLE存储过程、自定义SQL脚本及封装调用的存储过程。
8.根据权利要求7所述的一种把传统数据库脚本批量转换上云的大数据系统,其特征在于,所述支持不同格式的代码转换输出,并通过模板方式选择,实现不同格式的脚本转换时,针对拆分后的对应子句转成原生结构化查询语言,并结合对应的不同模板,生成最终的脚本;
其中,后台配置若干种模式的转换配置,不同的用户选择不同的转换场景。
9.一种把传统数据库脚本批量转换上云的大数据方法,用于权利要求1-8中任一项所述的一种把传统数据库脚本批量转换上云的大数据系统,其特征在于,该方法包括以下步骤:
S1、根据不同的关系型数据库对相关上云转换识别语法及代码规范定义进行配置,且产品根据不同的项目现场通过配置的关键字对相关的关系型数据库转换的结构化查询语言进行识别和提取,同时结合不同目标库转换的语法进行转换重构;
S2、根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时通过模板选择实现相关语法的转换;
S3、支持不同格式的代码转换输出,并通过模板方式选择,实现不同格式的脚本转换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111053034.3A CN113535758B (zh) | 2021-09-09 | 2021-09-09 | 一种把传统数据库脚本批量转换上云的大数据系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111053034.3A CN113535758B (zh) | 2021-09-09 | 2021-09-09 | 一种把传统数据库脚本批量转换上云的大数据系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113535758A CN113535758A (zh) | 2021-10-22 |
CN113535758B true CN113535758B (zh) | 2021-12-24 |
Family
ID=78093116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111053034.3A Active CN113535758B (zh) | 2021-09-09 | 2021-09-09 | 一种把传统数据库脚本批量转换上云的大数据系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113535758B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115223722B (zh) * | 2022-07-28 | 2023-03-24 | 医利捷(上海)信息科技有限公司 | 一种基于医疗的数据分析系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819589A (zh) * | 2012-08-06 | 2012-12-12 | 北京久其软件股份有限公司 | 一种基于etl的数据优化方法及设备 |
CN104932974A (zh) * | 2015-05-28 | 2015-09-23 | 国家计算机网络与信息安全管理中心 | 一种脚本转换方法和装置 |
CN109254989A (zh) * | 2018-08-27 | 2019-01-22 | 北京东软望海科技有限公司 | 一种基于元数据驱动的弹性etl架构设计的方法及装置 |
CN110222110A (zh) * | 2019-06-13 | 2019-09-10 | 中国农业科学院农业信息研究所 | 一种基于etl工具的资源描述框架数据转换存储一体化方法 |
CN110688397A (zh) * | 2019-07-30 | 2020-01-14 | 民生科技有限责任公司 | 一种基于sql的分布式数据统一访问系统及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8825713B2 (en) * | 2007-09-12 | 2014-09-02 | Red Hat, Inc. | BPM system portable across databases |
CN111695002B (zh) * | 2020-06-05 | 2024-01-02 | 苏州瑞云信息技术有限公司 | 一种基于xml语句的数据库无关的查询方法 |
CN113051285B (zh) * | 2021-03-25 | 2024-04-02 | 未鲲(上海)科技服务有限公司 | Sql语句的转换方法、系统、设备及存储介质 |
-
2021
- 2021-09-09 CN CN202111053034.3A patent/CN113535758B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819589A (zh) * | 2012-08-06 | 2012-12-12 | 北京久其软件股份有限公司 | 一种基于etl的数据优化方法及设备 |
CN104932974A (zh) * | 2015-05-28 | 2015-09-23 | 国家计算机网络与信息安全管理中心 | 一种脚本转换方法和装置 |
CN109254989A (zh) * | 2018-08-27 | 2019-01-22 | 北京东软望海科技有限公司 | 一种基于元数据驱动的弹性etl架构设计的方法及装置 |
CN110222110A (zh) * | 2019-06-13 | 2019-09-10 | 中国农业科学院农业信息研究所 | 一种基于etl工具的资源描述框架数据转换存储一体化方法 |
CN110688397A (zh) * | 2019-07-30 | 2020-01-14 | 民生科技有限责任公司 | 一种基于sql的分布式数据统一访问系统及方法 |
Non-Patent Citations (2)
Title |
---|
Generalized Big Data Test Framework for ETL;Kunal Sharma等;《2016 International Conference on Computing, Analytics and Security Trends (CAST)》;20170501;第1-5页 * |
融合多源异构教育大数据的高校科研服务系统设计研究;余鹏等;《图书情报知识》;20190131(第1期);第1-12页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113535758A (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582647B (zh) | 一种面向非结构化证据文件的分析方法及系统 | |
CN110019218B (zh) | 数据存储与查询方法及设备 | |
US11907203B2 (en) | Path encoded tree structures for operations | |
CN111078702B (zh) | 一种sql语句分类管理及统一查询方法和装置 | |
US11693912B2 (en) | Adapting database queries for data virtualization over combined database stores | |
CN106055618B (zh) | 一种基于网络爬虫与结构化存储的数据处理方法 | |
CN104268428A (zh) | 一种用于指标计算的可视化配置方法 | |
CN106341257B (zh) | 一种自定义日志解析规则并自动解析日志的装置 | |
CN108664635B (zh) | 数据库统计信息的获取方法、装置、设备和存储介质 | |
CN106599052A (zh) | 一种基于ApacheKylin的数据查询系统及其方法 | |
KR102345410B1 (ko) | 빅데이터 지능형 수집 방법 및 장치 | |
CN103077192B (zh) | 一种数据处理方法及其系统 | |
CN108108466A (zh) | 一种分布式系统日志查询分析方法及装置 | |
CN102446167B (zh) | 一种基于逻辑模板对复杂字符串逻辑处理的方法和装置 | |
CN113297251A (zh) | 多源数据检索方法、装置、设备及存储介质 | |
CN113535758B (zh) | 一种把传统数据库脚本批量转换上云的大数据系统和方法 | |
CN110968579A (zh) | 执行计划的生成与执行方法、数据库引擎及存储介质 | |
CN115221143A (zh) | 一种跨类型迁移的算子化多源大数据处理方法 | |
CN106484914A (zh) | 一种快速实现数据挖掘分析的模块组件化方法 | |
CN116975116A (zh) | 一种大数据分析系统的数据条件筛选方法 | |
CN115080011B (zh) | 基于抽象语法树的代码生成方法及系统 | |
CN110287241A (zh) | 一种生成告警数据报表的方法及装置 | |
CN115510139A (zh) | 数据查询方法和装置 | |
CN110008448A (zh) | 将SQL代码自动转换为Java代码的方法和装置 | |
CN115391015A (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 |