一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种把传统数据库脚本批量转换上云的大数据系统和方法与流程

2021-10-24 11:32:00 来源:中国专利 TAG:
1.本发明涉及大数据产品领域,具体来说,涉及一种把传统数据库脚本批量转换上云的大数据系统和方法。
背景技术
::2.信息技术的飞速发展,推动着it技术的各个方面发生变革。近几年,it领域正加速步入云计算时代。云计算的提出引发了新的计算变革,催生出新的it服务模式,进而使工作方式和商业模式发生了根本性改变。追根溯源,云计算与并行计算、分布式计算和网格计算不无关系,更是虚拟化、效用计算、saas(software‑as‑a‑service,软件即服务)、soa(面向服务的体系结构,是一个组件模型)等技术混合演进的结果。通过与相关技术、商业模式、创新要素形成的有机互动,云计算已经成为信息产业实现跨越式发展的重要驱动力。3.对企业而言,数据中心的各种系统(包括软硬件与基础设施)是一大笔资源投入。一方面,新系统(主要指硬件部分)一般经过3‑5年即面临逐步老化与淘汰,软件则面临不断升级的压力;另一方面,it的投入难以跟上业务发展的步伐,即使利用虚拟化技术,也解决不了不断增加的业务对资源的变化需求,一定时期内扩展性总是有所限制。于是,企业产生了新的需求:it资源能够弹性扩展、按需服务,将服务作为it的核心,提升业务敏捷性,从而大幅降低成本。因此,面向服务的it需求开始演化到云计算架构上。4.另外,现代企业有一个关键的生产资料和要素,那就是数据。数据已经成为企业的核心资产,而对数据的使用和挖掘能力也日益成为企业的核心竞争力。利用云计算技术与服务能够更方便地收集、计算、挖掘数据,使那些不具备大数据基础设施的企业也能享受到大数据带来的红利。5.原来传统的关系型数据库通过存储过程等脚本计算加工数据,实现相关etl(数据仓库技术)功能,数据上云后,相关的计算加工逻辑etl功能需要迁移上云,原有的存储过程等脚本是经过日积月累长期沉淀的业务逻辑结果,如果通过人工方式进行迁移上云,会存在大量的异构数据库语法、函数及关键字等差异造成的人工转换工作量,同时这些工作可能是一些重复低效的工作。6.针对相关技术中的问题,目前尚未提出有效的解决方案。技术实现要素:7.针对相关技术中的问题,本发明提出一种把传统数据库脚本批量转换上云的大数据系统和方法,以克服现有相关技术所存在的上述技术问题。8.为此,本发明采用的具体技术方案如下:根据本发明的一个方面,提供了一种把传统数据库脚本批量转换上云的大数据系统,该系统包括:语法解析器模块、异构数据库之间转换映射模块及脚本转换模块;其中,所述语法解析器模块,用于根据不同的关系型数据库对相关上云转换识别语法及代码规范定义进行配置,且产品根据不同的项目现场通过配置的关键字对相关的关系型数据库转换的结构化查询语言进行识别和提取,同时结合不同目标库转换的语法进行转换重构;所述异构数据库之间转换映射模块,用于根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时通过模板选择实现相关语法的转换;所述脚本转换模块,用于支持不同格式的代码转换输出,并通过模板方式选择,实现不同格式的脚本转换;其中,所述异构数据库之间转换映射模块转换映射时,包括函数、语法及关键字转换映射。9.进一步的,所述语法解析器模块包括加载脚本模块、分析语句单词模块及脚本拆分模块;其中,所述加载脚本模块,用于针对加载的结构化查询语言脚本,通过json进行匹配;所述分析语句单词模块,用于分析结构化查询语言语句中的每一个单词,并对单词所在的位置进行记录;所述脚本拆分模块,用于分析单词的含义,并归类为结构化查询语言中的字句部分。10.进一步的,所述通过模板选择实现相关语法的转换时,语法的转换包括字符串转换、空值函数转换、分区转换、排序转换及字符类型。11.进一步的,所述根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时通过模板选择实现相关语法的转换时,对关系型数据库与hive数据库相关的映射关系进行配置,同时针对拆分后的子句分析器里面包含的函数、语法及关键字进行映射。12.进一步的,所述针对拆分后的子句分析器里面包含的函数、语法及关键字进行映射时,所有的标识符区分大小写,并使用双引号引用对应的数据源表和列名;针对动态参数,通过占位符来进行动态参数语法绑定,且在执行的过程中与占位符进行绑定。13.进一步的,所述针对拆分后的子句分析器里面包含的函数、语法及关键字进行映射时,数据类型支持查询运行时将结构化查询语言类型映射到原生类型,若在具有相同运行时类型的两个结构化查询语言类型之间进行强制转换时,不会产生任何影响,除非表中指出了异常;若在两个具有不同运行时类型的结构化查询语言类型之间进行转换时,将生成一个运行时转换;若一个值不能正确地转换为另一个值,则运行时将替换默认值,且null转换为不可为空类型时将替换为默认值。14.进一步的,所述函数包括聚合函数及扩展函数;其中,所述聚合函数,用于出现在任务查询的select子句中,任何聚合器使用表达式aggexprfilterwherewhereexpr进行过滤;被过滤的聚合器聚合匹配了过滤器的行,且同一个结构化查询语言查询中的两个聚合器可能有不同的过滤器。15.所述扩展函数包括数值函数、字符串函数、时间函数、归约函数、比较操作符及其他扩展函数。16.进一步的,所述脚本转换模块支持的脚本转换包括oracle存储过程、自定义sql脚本及封装调用的存储过程。17.进一步的,所述支持不同格式的代码转换输出,并通过模板方式选择,实现不同格式的脚本转换时,针对拆分后的对应子句转成原生结构化查询语言,并结合对应的不同模板,生成最终的脚本;其中,后台配置若干种模式的转换配置,不同的用户选择不同的转换场景。18.根据本发明的另一方面,提供了一种把传统数据库脚本批量转换上云的大数据方法,该方法包括以下步骤:s1、根据不同的关系型数据库对相关上云转换识别语法及代码规范定义进行配置,且产品根据不同的项目现场通过配置的关键字对相关的关系型数据库转换的结构化查询语言进行识别和提取,同时结合不同目标库转换的语法进行转换重构;s2、根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时通过模板选择实现相关语法的转换;s3、支持不同格式的代码转换输出,并通过模板方式选择,实现不同格式的脚本转换。19.本发明的有益效果为:(1)本发明操作简单便捷,支持单机版部署,导入已有的存储过程点击转换即可实现相关hive脚本的转换。20.(2)本发明规范化的编码检测:针对原有的脚本编码不规范,不标准的情况,支持配置化的编码规范和要求,进行规范化的编码生成。21.(3)本发明支持不同的异构数据库脚本迁移:支持oracle存储过程转换成hivesql存储过程,支持oracle的自定义sql转换成perl/shell封装的脚本,支持perl/shell封装调用的存储过程转换成perl/shell封装的脚本。22.(4)本发明通过配置关键字,快速精准将需要转化的业务sql识别和提取,按照需要上云转化识别的语法,对sql进行语法重构转换,成功率达96.7%以上,语义提取识别和语法转化准确率达85.4%以上;通过配置关键字,支持快速定位存储过程、perl等脚本中的核心业务sql,实现语义精准抓取和识别;支持异构数据库之间的sql语法快速转换,涵盖字符串转换、空值函数转换、分区转换、排序转换、字符类型等语法的转换。附图说明23.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。24.图1是根据本发明实施例的一种把传统数据库脚本批量转换上云的大数据系统的结构框图;图2是根据本发明实施例的一种把传统数据库脚本批量转换上云的大数据方法的流程图;图3是根据本发明脚本批量转换工具转换流程;图4是本发明实施例的一种把传统数据库脚本批量转换上云的大数据系统的语法解析器模块的结构框图。25.图中:1、语法解析器模块;101、加载脚本模块;102、分析语句单词模块;103、脚本拆分模块;2、异构数据库之间转换映射模块;3、脚本转换模块。具体实施方式26.为进一步说明各实施例,本发明提供有附图,这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理,配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点,图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。27.根据本发明的实施例,提供了一种把传统数据库脚本批量转换上云的大数据系统和方法,解决了当前数据上云过程中脚本批量上云带来的迁移工作量巨大的问题,通过批量的方法,提炼相关公共的逻辑,提高脚本批量上云带来效率和质量。28.1、系统支持oracle/mysql存储过程脚本批量转换成hive‑sql文件;(oracle:oracledatabase,又名oraclerdbms,或简称oracle,是甲骨文公司的一款关系数据库管理系统,mysql是一个关系型数据库管理系统,由瑞典mysqlab公司开发,目前属于oracle旗下产品)2、系统支持sql脚本,自定义sql转换成封装hive脚本的perl脚本模式;(hive是基于hadoop构建的一套数据仓库分析系统,它提供了丰富的sql查询方式来分析存储在hadoop分布式文件系统中的数据,perl是一种功能丰富的计算机程序语言)3、系统支持封装oracle/mysql存储过程的perl脚本转换成hiveperl脚本;4、支持本地单机版部署,实现相关脚本的批量快速转换,生成的脚本采用了规范的编码格式(内容左对齐等),为相关计算上云迁移效率有一定的工作量提升,并且减少人员编码的一些低级错误。同时也能发现原有的历史存储过程脚本的一些写法不合理,不规范的地方。29.现结合附图和具体实施方式对本发明进一步说明,如图1和4所示,根据本发明的一个方面,提供了一种把传统数据库脚本批量转换上云的大数据系统和方法,该系统包括:语法解析器模块1、异构数据库之间转换映射模块2及脚本转换模块3;其中,所述语法解析器模块1,用于根据不同的关系型数据库对相关上云转换识别语法及代码规范定义进行配置,且方便产品根据不同的项目现场通过配置的关键字快速精准的对相关的关系型数据库转换的结构化查询语言(sql)进行识别和提取,同时结合不同目标库转换的语法进行转换重构;其中,所述语法解析器模块1包括加载脚本模块101(加载sql脚本)、分析语句单词模块102(分析sql语句单词)及脚本拆分模块103(基于select/from相关的子句进行脚本拆分);sql语句中的select语句用于从数据库中选取数据,sql的关键字from后跟的表名(tablename)决定了从哪一张表格查询数据和返回结果。30.其中,所述加载脚本模块101,用于针对加载的结构化查询语言脚本,通过json进行匹配;所述分析语句单词模块102,用于分析结构化查询语言语句中的每一个单词,并对单词所在的位置进行记录;所述脚本拆分模块103,用于分析单词的含义,并归类为结构化查询语言中的字句部分。31.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表中的列或者子查询;groupby子句分析器引用from表中的列,使用groupby、distinct或任何聚合函数;groupby子句还可以通过三种方式来引用多个分组集;groupby为根据字段进行分组操作操作。[0032]having子句分析器引用在执行groupby之后出现的列,与groupby配合用;orderby子句分析器引用执行groupby之后出现的列,根据分组表达式或聚合值对结果进行排序;limit子句分析器用于限制返回的行数;limit方法获取指定dataset的前n行记录,得到一个新的dataset对象。[0033]unionall操作符分析器可用于将多个查询融合在一起;explainplan分析器开头的语句查询实际不会执行;所述异构数据库之间转换映射模块2,用于根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时可以通过模板选择实现相关语法的快速转换;其中,所述通过模板选择实现相关语法的转换时,语法的转换包括字符串转换、空值函数转换、分区转换、排序转换及字符类型等。[0034]所述根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时通过模板选择实现相关语法的转换时,对关系型数据库与hive数据库相关的映射关系进行配置,同时针对拆分后的子句分析器里面包含的函数、语法及关键字进行映射。[0035]所述针对拆分后的子句分析器里面包含的函数、语法及关键字等进行映射时,所有的标识符区分大小写,并使用双引号引用对应的数据源表和列名;针对动态参数,通过占位符来进行动态参数语法绑定,且在执行的过程中与占位符进行绑定。具体的,上述占位符可以采用英文字母或其他字符进行表示。[0036]所述针对拆分后的子句分析器里面包含的函数、语法及关键字等进行映射时,数据类型支持查询运行时将结构化查询语言类型映射到原生类型,若在具有相同运行时类型的两个结构化查询语言类型之间进行强制转换时,不会产生任何影响,除非表中指出了异常;若在两个具有不同运行时类型的结构化查询语言类型之间进行转换时,将生成一个运行时转换;若一个值不能正确地转换为另一个值,如cast('foo'asbigint),则运行时将替换默认值,且null转换为不可为空类型时将替换为默认值(例如,null转化数字将转换为零)。如表1所示:表1述函数包括聚合函数及扩展函数;其中,所述聚合函数,用于可以出现在任务查询的select(sql数据操纵语言)子句中,任何聚合器都可以使用表达式aggexprfilterwherewhereexpr进行过滤;被过滤的聚合器仅仅聚合那些匹配了过滤器的行,且同一个结构化查询语言查询中的两个聚合器可能有不同的过滤器。只有count聚合支持使用distinct(count及distinct是一种函数)。其中,filter为根据字段进行筛选,aggexpr为聚合操作调用的是agg方法,该方法输入的是对于聚合操作的表达aggexpr,可同时对多个列进行聚合操作aggexprs,一般与groupby方法配合使用;whereexpr满足条件字句,根据条件过滤筛选数据,通过运算符操作判定范围。[0037]所述扩展函数包括数值函数(数学运算)、字符串函数、时间函数、归约函数、比较操作符及其他扩展函数。[0038]其中,所述异构数据库之间转换映射模块2转换映射时,包括函数、语法及关键字转换映射。[0039]所述脚本转换模块3,用于支持不同格式的代码转换输出,并通过模板方式选择,可以实现不同格式的脚本转换,满足差异化灵活的场景支撑;所述脚本转换模块3支持的脚本转换包括oracle存储过程、自定义sql脚本及封装调用的存储过程等。封装调用的存储过程包括perl封装、shell封装。(shell脚本为shellscript,是一种电脑程序与文本文件,内容由一连串的shell命令组成,经由unixshell直译其内容后运作,perl脚本为perl命令集,perl一种功能丰富的计算机程序语言,运行在超过100种计算机平台上)所述支持不同格式的代码转换输出,并通过模板方式选择,实现不同格式的脚本转换时,针对拆分后的对应子句转成原生结构化查询语言,并结合对应的不同模板,生成最终的脚本;其中,后台配置若干种模式的转换配置,不同的用户选择不同的转换场景,如oracle存储过程转成成hive存储过程,自定义sql脚本转换成perl/shell封装的hsql脚本,perl/shell封装的存储过程转换成perl/shell封装的hsql脚本。[0040]根据本发明的另一方面,如图2所示,提供了一种把传统数据库脚本批量转换上云的大数据方法,该方法包括以下步骤:s1、根据不同的关系型数据库对相关上云转换识别语法及代码规范定义进行配置,且产品根据不同的项目现场通过配置的关键字对相关的关系型数据库转换的结构化查询语言进行识别和提取,同时结合不同目标库转换的语法进行转换重构;s2、根据不同的数据库相关的函数,对关键字的区别差异进行梳理并配置成模板,同时通过模板选择实现相关语法的转换;s3、支持不同格式的代码转换输出,并通过模板方式选择,实现不同格式的脚本转换。[0041]术语说明如表2:表2如图3所示,为脚本批量转换工具转换流程图。[0042]使用场景:企业数据上云成为趋势,随着数据上云,原有的大量基于关系型数据库的相关etl脚本也面临上云的要求,原有的数据脚本是多年沉淀积累的结果,需要在短时间内完成上云要求,针对这个背景,跨异构数据库的脚本转换工具通过识别不同脚本语法,对sql语法进行重构转换,为脚本上云提供便捷批量的方式。[0043]本发明提出了一种实现跨异构数据库的批量脚本迁移的系统工具和评估方法,并已经开发完成一套批量转换脚本的系统,在运营商的市场已经有部署实施的案例。[0044]综上所述,本发明操作简单便捷,支持单机版部署,导入已有的存储过程点击转换即可实现相关hive脚本的转换。本发明规范化的编码检测:针对原有的脚本编码不规范,不标准的情况,支持配置化的编码规范和要求,进行规范化的编码生成。本发明支持不同的异构数据库脚本迁移:支持oracle存储过程转换成hivesql存储过程,支持oracle的自定义sql转换成perl/shell封装的脚本,支持perl/shell封装调用的存储过程转换成perl/shell封装的脚本。本发明通过配置关键字,快速精准将需要转化的业务sql识别和提取,按照需要上云转化识别的语法,对sql进行语法重构转换,成功率达96.7%以上,语义提取识别和语法转化准确率达85.4%以上;通过配置关键字,支持快速定位存储过程、perl等脚本中的核心业务sql,实现语义精准抓取和识别;支持异构数据库之间的sql语法快速转换,涵盖字符串转换、空值函数转换、分区转换、排序转换、字符类型等语法的转换。[0045]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜