CN112328260A - 基于大数据平台的sql语句转换方法、装置和计算机设备 - Google Patents
基于大数据平台的sql语句转换方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN112328260A CN112328260A CN202011280867.9A CN202011280867A CN112328260A CN 112328260 A CN112328260 A CN 112328260A CN 202011280867 A CN202011280867 A CN 202011280867A CN 112328260 A CN112328260 A CN 112328260A
- Authority
- CN
- China
- Prior art keywords
- data
- sql
- statement
- data processing
- function
- 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
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 80
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 117
- 238000004806 packaging method and process Methods 0.000 claims abstract description 17
- 230000006870 function Effects 0.000 claims description 103
- 238000003672 processing method Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 20
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请揭示了一种基于大数据平台的SQL语句转换方法、装置和计算机设备,其中方法包括:获取开发人员编写的第一数据处理语句SQL;判断所述第一数据处理语句SQL的数据源类型;根据数据源的类型将所述第一数据处理语句SQL转换成第二数据处理语句HQL;将所述第二数据处理语句HQL封装成可执行的linux程序的脚本。本申请通过预设的规则可以使不熟悉大数据开发语言和规则的开发人员通过开发SQ语句实现HQL的能力,自动地将开发人员开发的SQL语句转换成HQL语句,提高了不熟悉大数据开发语言和规则的开发人员的开发效率,同时也提高了大数据平台的使用率。本申请还涉及区块链技术,在区块链网络中实现一种基于大数据平台的SQL语句转换方法。
Description
技术领域
本申请涉及到大数据领域,特别是涉及到一种基于大数据平台的SQL语句转换方法、装置和计算机设备。
背景技术
目前在IT行业领域,大数据非常流行,在处理批量数据方面,大数据平台拥有不可代替的时效和能力。但是针对传统的数据,要使用大数据的各种工具进行处理存在不少困难。首先就是在开发程序方面,大数据和传统的数据库程序开发语言、开发流程不经相同;其次对于开发者而言,传统的数据库工程师针对大数据的一些开发语言、开发程序都需要重新学习,这限制了一些传统数据库开发工程师在大数据平台上进行数据开发,同时针对一些历史的数据处理过程也难以使用大数据平台进行替代处理。
发明内容
本申请的主要目的为提供一种基于大数据平台的SQL语句转换方法、装置和计算机设备,旨在解决目前传统数据无法应用于大数据平台、传统数据库开发工程师无法快速开发大数据相关程序的技术问题。
为了实现上述发明目的,本申请提出一种基于大数据平台的SQL语句转换方法,包括:
获取开发人员编写的第一数据处理语句SQL;
判断所述第一数据处理语句SQL的数据源类型;
根据数据源的类型将所述第一数据处理语句SQL转换成第二数据处理语句HQL;
将所述第二数据处理语句HQL封装成可执行的linux程序的脚本。
进一步地,根据数据源的类型将所述第一数据处理语句SQL转换成第二数据处理语句HQL的步骤包括:
判断第一数据处理语句SQL中是否存在HQL不支持的操作命令;
若存在所述不支持的操作指令,则按照预设的处理方法对所述不支持操作指令进行转换;以及,
判断第一数据处理语句SQL中是否存在数据仓库工具hive不支持的函数;
若存在所述不支持的函数,则按照预设的处理方法对所述不支持的函数进行转换。
进一步地,所述按照预设的处理方法对所述不支持操作指令进行转换的步骤包括:
判断所述不支持的操作指令的类型,所述不支持的操作指令类型包括更新操作、删除操作和提交操作;
若所述不支持的操作指令为更新操作,则将所述第一数据处理语句SQL中需要更新的数据导入第一中间表,将原表进行备份,将所述第一中间表的数据更新到所述原表中,完成更新操作;
若所述不支持的操作指令为删除操作,则将所述第一数据处理语句SQL中需要保留的数据导入第二中间表,将原表进行备份,将所述第二中间表覆盖到所述原表中,完成更新操作;
若所述不支持的操作指令为提交操作,则将需要的数据导入第三中间表,将原表进行备份,将所述第三中间表覆盖到所述原表中,完成提交操作。
进一步地,所述按照预设的处理方法对所述不支持的函数进行转换的步骤包括:
判断所述不支持的函数类型,所述不支持的函数类型包括日期转换函数to_date、数据转换函数int、字符转换函数to_char;
若所述不支持函数为日期转换函数to_date,则将to_date函数转换HQL对应的日期函数FORM-UNIXTIME(UNIX-TIMESTAMP(BIRTHDAY,‘YYYY-MM-dd’),‘YYYY-MM-dd’);
若所述不支持函数为数据转换函数int,则将int函数转换为转换成cast(columnas int);
若所述不支持函数为字符转换函数to_char,则将to_char函数转换为转换成cast(column as string)。
进一步地,所述将所述第二数据处理语句HQL封装成可执行的linux程序的脚本的步骤包括:
在所述第二处理语句中添加脚本开头标识符;
在所述标识符之后添加自定义参数,所述自定义参数包括日期、时间、udf函数包、主机信息配置;
如果数据源是hive数据,则在所述自定义参数之后添加hive执行语句;
如果数据源是hbase数据,则在所述自定义参数之后添加需要将查找的实时信息转换成get或scan操作的调用语句,其中get操作的调用语句针对单条数据,scan操作的调用语句针对全量数据。
进一步地,所述将所述第二数据处理语句HQL封装成可执行的linux程序的脚本之后的步骤还包括:
创建WEB服务界面,其中所述WEB服务界面设有反馈信息编辑界面,用于编写反馈信息;
接收web服务界面的反馈信息;
将所述反馈信息与所述第一数据处理语句SQL关联形成关联数据,并存储到预设的数据库中;
计算所述关联数据的条数是否大于预设阈值;
若是,则对所述数据库中的反馈信息进行聚类计算,得到多个类别的反馈信息,并将各聚类中心的反馈信息作为其类别的代表信息;
将所述代表信息展示于所述WEB服务界面上。
进一步地,所述获取开发人员编写的第一数据处理语句SQL步骤之前,包括:
获取开发人员的正面图像,以及地址位置坐标;
基于所述地址位置坐标确定所述开发人员的所处的办公场景,并调用带有该办公场景特征的第一背景图片;
基于所述正面图像,提取所述正面图像中的人脸图像;
基于所述人脸图像,反选得到所述正面图像的第二背景图片;
判断所述第一背景图片和第二背景图片中是否存在大于设定阈值数量的相同的特征图像;
若是,则判定开发人员真实存在于所述办公场景;
基于所述人脸图像判断所述开发人员是否为具有在办公场景办公的权限;
若是,则执行所述获取开发人员编写的第一数据处理语句SQL的步骤。
本申请实施例还提供一种基于大数据平台的SQL语句转换装置,包括:
获取模块,用于获取开发人员编写的第一数据处理语句SQL;
判断模块,用于判断所述第一数据处理语句SQL的数据源类型;
转换模块,用于根据数据源的类型将所述第一数据处理语句SQL转换成第二数据处理语句HQL;
封装模块,用于将所述第二数据处理语句HQL封装成可执行的linux程序的脚本。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的基于大数据平台的SQL语句转换方法、装置和计算机设备,提供了一种将SQL语句转换成HQL语句的方法,通过预设的规则可以使不熟悉大数据开发语言和规则的开发人员通过开发SQ语句实现HQL的能力,自动地将开发人员开发的SQL语句转换成HQL语句,提高了不熟悉大数据开发语言和规则的开发人员的开发效率,同时也提高了大数据平台的使用率。
附图说明
图1为本申请一实施例的基于大数据平台的SQL语句转换方法的流程示意图;
图2为本申请一实施例的基于大数据平台的SQL语句转换装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例中提供一种基于大数据平台的SQL语句转换方法,包括步骤:
S1、获取开发人员编写的第一数据处理语句SQL;
S2、判断所述第一数据处理语句SQL的数据源类型;
S3、根据数据源的类型将所述第一数据处理语句SQL转换成第二数据处理语句HQL;
S4、将所述第二数据处理语句HQL封装成可执行的linux程序的脚本。
如上述步骤S1所述,首先要获取开发人员编写的第一数据处理语句SQL,所述第一数据处理语句是基于传统数据库中的数据查询处理的逻辑编写的语句,无法直接应用到大数据的查询处理。
如上述步骤S2所述,上述数据源的类型包括hive数据源和hbase数据源,判断数据源的类型的方法可以是在所述第一数据处理语句SQL中查找数据源的表名,根据表名确定数据源的类型。
如上述步骤S3所述,根据数据源的类型将所述第一数据处理语句SQL转换成第二数据处理语句HQL。具体地,需要查找出第一数据处理语句SQL中不符合HQL语句的区别,然后基于预设的转换规则将区别进行替换。预设的转关规则可以是:
判断第一数据处理语句SQL中是否存在HQL不支持的操作命令;
若存在所述不支持的操作指令,则按照预设的处理方法对所述不支持操作指令进行转换;以及,
判断第一数据处理语句SQL中是否存在数据仓库工具hive不支持的函数;
若存在所述不支持的函数,则按照预设的处理方法对所述不支持的函数进行转换。
如上步骤S4所述,转换完成后,将所述第二数据处理语句HQL封装成可执行的linux程序的脚本。具体地,通过对所述第二处理语句中添加脚本开头、自定义参数等方式来将HQL语句封装成可执行的linux脚本程序。
在一个实施例中,所述根据数据源的类型将所述第一数据处理语句SQL转换成第二数据处理语句HQL的步骤包括:
S31、判断第一数据处理语句SQL中是否存在HQL不支持的操作命令;
S32、若存在所述不支持的操作指令,则按照预设的处理方法对所述不支持操作指令进行转换;以及,
S33、判断第一数据处理语句SQL中是否存在数据仓库工具hive不支持的函数;
S34、若存在所述不支持的函数,则按照预设的处理方法对所述不支持的函数进行转换。
如上步骤所述,在将所述第一数据处理语句SQL转换成所述第二处理语句的过程中,需要查找出第一数据处理语句SQL中不符合HQL语句的区别,然后基于预设的转换规则将区别进行替换。具体地,判断第一数据处理语句SQL中是否存在不支持HQL的操作命令,即更新操作,删除操作和提交操作,然后按照预设的对应操作规则进行转换,然后判断第一数据处理语句SQL中是否存在数据仓库工具hive不支持的函数,如日期转换、数据转换、字符转换等,然后按照预设的转换规则对函数进行转换。
在一个具体的实施例中,所述按照预设的处理方法对所述不支持操作指令进行转换的步骤包括:
S321、判断所述不支持的操作指令的类型,所述不支持的操作指令类型包括更新操作、删除操作和提交操作;
S322、若所述不支持的操作指令为更新操作,则将所述第一数据处理语句SQL中需要更新的数据导入第一中间表,将原表进行备份,将所述第一中间表的数据更新到所述原表中,完成更新操作;
S323、若所述不支持的操作指令为删除操作,则将所述第一数据处理语句SQL中需要保留的数据导入第二中间表,将原表进行备份,将所述第二中间表覆盖到所述原表中,完成更新操作;
S324、若所述不支持的操作指令为提交操作,则将需要的数据导入第三中间表,将原表进行备份,将所述第三中间表覆盖到所述原表中,完成提交操作。
如上所述,大数据平台并不支持更新、删除、提交等操作指令,需要对这些操作指令进行转换,上述步骤中详述了具体的转换方式。
以实际的应用场景为例,在车险客户资料中,客户的年龄需要在客户生日过后进行更新,具体地,当今天的日期和客户的生日相同时,需要将客户的年龄+1,即更新客户的年龄,这是一个是否更新的过程,即根据某些条件更新数据表里面的数据,而难点在于大数据不支持更新操作,所以需要通过转换实现更新操作,即得到上述的脚本,其执行过程如下:
第一步,进行数据备份,将原客户表的年龄信息备份;
第二步,提取出符合当天生日的客户数据,并存储到一个预设的中间表中;
第三步,在所述中间表中,将当天生日客户的数据信息中的年龄加1后,将该中间表更新写入到原表中;
第四步,执行事务提交-回滚操作。其中,需要需要注意的是,本步骤需要检测,如果检测发现没有实现客户年龄加1的操作,执行此步骤时是将客户数据还原回去。
具体代码为:
insert overwrite table table_name_tmp01
select age from table_name;
insert overwrite table table name_tmp02
select age from table_name where table_name.birthday=
from_unixtime(unix_timestamp o),'yyyy-MM-dd');
insert overwrite table table_name
select age+l from table_name02;
insert overwrite table table_name
select age from table name_tmp01;
在一个具体的实施例中,所述按照预设的处理方法对所述不支持的函数进行转换的步骤包括:
S341、判断所述不支持的函数类型,所述不支持的函数类型包括日期转换函数to_date、数据转换函数int、字符转换函数to_char;
S342、若所述不支持函数为日期转换函数to_date,则将to_date函数转换HQL对应的日期函数FORM-UNIXTIME(UNIX-TIMESTAMP(BIRTHDAY,‘YYYY-MM-dd’),‘YYYY-MM-dd’);
S343、若所述不支持函数为数据转换函数int,则将int函数转换为转换成cast(column as int);
S344、若所述不支持函数为字符转换函数to_char,则将to_char函数转换为转换成cast(column as string)。
如上所述,在大数据平台中,一些SQL中的函数在HQL中并不支持,例如日期转换函数to_date、数据转换函数int、字符转换函数to_char,需要将其转换为HQL中支持的函数。上述步骤中给出了具体的转换规则。更具体地,检查是否存在特定的判断函数,车牌检查、车架号检查、保单号检查等函数,不同的函数执行的流程不同,举例地,车牌检测的函数其执行流程如下:
首先判断字符长度是否大于等于8,只有大于等于8的才可能是真实车牌;
然后识别第一位汉字,并判断该汉字是否为省份的简称,如赣、粤、吉等分别是江西、广东、吉林的简称;
最后通过第一位数字判断出车牌的省份信息、车辆的性质(轿车、货车)等。
对于车架号检查函数的执行流程,主要是检测是否都是字母、数字组合成大约17位的字符长度;而保单号检查的函数执行流程,则是检查保单号是否为纯数字且长度大约为10位的字符长度。
在一个实施例中,所述将所述第二数据处理语句HQL封装成可执行的linux程序的脚本的步骤包括:
S41、在所述第二处理语句中添加脚本开头标识符;
S42、在所述标识符之后添加自定义参数,所述自定义参数包括日期、时间、udf函数包、主机信息配置;
S43、如果数据源是hive数据,则在所述自定义参数之后添加hive执行语句;
S44、如果数据源是hbase数据,则在所述自定义参数之后添加需要将查找的实时信息转换成get或scan操作的调用语句,其中get操作的调用语句针对单条数据,scan操作的调用语句针对全量数据。
如上所述,通过上述操作,可以将HQL语句封装成可执行的linux脚本程序,具体的,所述脚本开头标识符为#!/bin/bash,所述hive执行语句为hive-e“hql脚本”。
在一个实施例中,所述将所述第二数据处理语句HQL封装成可执行的linux程序的脚本之后的步骤还包括:
创建WEB服务界面,其中所述WEB服务界面设有反馈信息编辑界面,用于编写反馈信息;
接收web服务界面的反馈信息;
将所述反馈信息与所述第一数据处理语句SQL关联形成关联数据,并存储到预设的数据库中;
计算所述关联数据的条数是否大于预设阈值;
若是,则对所述数据库中的反馈信息进行聚类计算,得到多个类别的反馈信息,并将各聚类中心的反馈信息作为其类别的代表信息;
将所述代表信息展示于所述WEB服务界面上。
如上所述,反馈信息可以是一些开发人员的开发思路、开发感想、错误记录等,通过将反馈信息收集起来,与SQL进行关联,形成关联数据,可以方便后续的开发人员进行查阅,提供筛选出的经验,节约开发人员查看反馈信息的时间,后来的开发人员可以直接到单独存储的地方调阅各代表信息,无需到数据库中查看,大大提高了开发效率。
在一个实施例中,所述获取开发人员编写的第一数据处理语句SQL步骤之前,包括:
S01、获取开发人员的正面图像,以及地址位置坐标;
S02、基于所述地址位置坐标确定所述开发人员的所处的办公场景,并调用带有该办公场景特征的第一背景图片;
S03、基于所述正面图像,提取所述正面图像中的人脸图像;
S04、基于所述人脸图像,反选得到所述正面图像的第二背景图片;
S05、判断所述第一背景图片和第二背景图片中是否存在大于设定阈值数量的相同的特征图像;
S06、若是,则判定开发人员真实存在于所述办公场景;
S07、基于所述人脸图像判断所述开发人员是否为具有在办公场景办公的权限;
S08、若是,则执行所述获取开发人员编写的第一数据处理语句SQL的步骤。
如上所述,为了提高数据处理的安全性,需要对开发人员进行鉴权,现有的鉴权方法都是基于局域网、生理信号(指纹、声纹等)、人脸识别等确定开发人员在指定的区域且是本人操作,在本实施例中,提出一种新的鉴权方法,降低鉴权的难度,在任何一个固定区域均可以使用,无需要考虑局域网的设定等。
在一个实施例中,所述第一数据处理语句、所述第二数据处理语句和所述脚本等数据可以储存在区块链网络的节点中,在区块链网络中实现如上所述的一种基于大数据平台的SQL语句转换方法。
如上所述,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
本申请实施例的基于大数据平台的SQL语句转换方法,提供了一种将SQL语句转换成HQL语句的方法,通过预设的规则可以使不熟悉大数据开发语言和规则的开发人员通过开发SQ语句实现HQL的能力,自动地将开发人员开发的SQL语句转换成HQL语句,提高了不熟悉大数据开发语言和规则的开发人员的开发效率,同时也提高了大数据平台的使用率。
参照图2,本申请实施例中还提供一种基于大数据平台的SQL语句转换装置,包括:
获取模块1,用于获取开发人员编写的第一数据处理语句SQL;
判断模块2,用于判断所述第一数据处理语句SQL的数据源类型;
转换模块3,用于根据数据源的类型将所述第一数据处理语句SQL转换成第二数据处理语句HQL;
封装模块4,用于将所述第二数据处理语句HQL封装成可执行的linux程序的脚本。
在一个实施例中,所述基于大数据平台的SQL语句转换装置还包括:
图像获取模块,用于获取开发人员的正面图像,以及地址位置坐标;
位置确定模块,用于基于所述地址位置坐标确定所述开发人员的所处的办公场景,并调用带有该办公场景特征的第一背景图片;
提取模块,用于基于所述正面图像,提取所述正面图像中的人脸图像;
反选模块,用于基于所述人脸图像,反选得到所述正面图像的第二背景图片;
图像判断模块,用于判断所述第一背景图片和第二背景图片中是否存在大于设定阈值数量的相同的特征图像;
判定模块,用于若是,则判定开发人员真实存在于所述办公场景;
权限判断模块,用于基于所述人脸图像判断所述开发人员是否为具有在办公场景办公的权限;
执行模块,用于若是,则执行所述获取开发人员编写的第一数据处理语句SQL的步骤。
在一个实施例中,所述转换模块3包括:
指令判断模块,用于判断第一数据处理语句SQL中是否存在HQL不支持的操作命令;
指令转换模块,用于若存在所述不支持的操作指令,则按照预设的处理方法对所述不支持操作指令进行转换;
函数判断模块,用于判断第一数据处理语句SQL中是否存在数据仓库工具hive不支持的函数;
函数转换模块,用于则按照预设的处理方法对所述不支持的函数进行转换。
在一个具体的实施例中,所述指令转换模块包括:
指令判断单元,用于判断所述不支持的操作指令的类型,所述不支持的操作指令类型包括更新操作、删除操作和提交操作;
更新操作转换单元,用于若所述不支持的操作指令为更新操作,则将所述第一数据处理语句SQL中需要更新的数据导入第一中间表,将原表进行备份,将所述第一中间表的数据更新到所述原表中,完成更新操作;
删除操作转换单元,用于若所述不支持的操作指令为删除操作,则将所述第一数据处理语句SQL中需要保留的数据导入第二中间表,将原表进行备份,将所述第二中间表覆盖到所述原表中,完成更新操作;
提交操作转换单元,用于若所述不支持的操作指令为提交操作,则将需要的数据导入第三中间表,将原表进行备份,将所述第三中间表覆盖到所述原表中,完成提交操作。
在一个具体的实施例中,所述函数转换模块包括:
函数判断单元,用于判断所述不支持的函数类型,所述不支持的函数类型包括日期转换函数to_date、数据转换函数int、字符转换函数to_char;
日期函数转换单元,用于若所述不支持函数为日期转换函数to_date,则将to_date函数转换HQL对应的日期函数FORM-UNIXTIME(UNIX-TIMESTAMP(BIRTHDAY,‘YYYY-MM-dd’),‘YYYY-MM-dd’);
数据转换函数转换单元,用于若所述不支持函数为数据转换函数int,则将int函数转换为转换成cast(column as int);
字符转换函数转换单元,若所述不支持函数为字符转换函数to_char,则将to_char函数转换为转换成cast(column as string)。
在一个实施例中,所述封装模块4包括:
脚本开头添加单元,用于在所述第二处理语句中添加脚本开头标识符;
自定义参数添加单元,用于在所述标识符之后添加自定义参数,所述自定义参数包括日期、时间、udf函数包、主机信息配置;
第一处理单元,用于如果数据源是hive数据,则在所述自定义参数之后添加hive执行语句;
第二处理单元,用于如果数据源是hbase数据,则在所述自定义参数之后添加需要将查找的实时信息转换成get或scan操作的调用语句,其中get操作的调用语句针对单条数据,scan操作的调用语句针对全量数据。
如上所述,可以理解地,本申请中提出的所述基于大数据平台的SQL语句转换装置的各组成部分可以实现如上所述基于大数据平台的SQL语句转换方法任一项的功能,具体结构不再赘述。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于储存SQL语句、HQL语句等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于大数据平台的SQL语句转换方法。
上述处理器执行上述的基于大数据平台的SQL语句转换方法,包括:
获取开发人员编写的第一数据处理语句SQL;
判断所述第一数据处理语句SQL的数据源类型;
根据数据源的类型将所述第一数据处理语句SQL转换成第二数据处理语句HQL;
将所述第二数据处理语句HQL封装成可执行的linux程序的脚本。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现基于大数据平台的SQL语句转换方法,包括步骤:获取开发人员编写的第一数据处理语句SQL;
判断所述第一数据处理语句SQL的数据源类型;
根据数据源的类型将所述第一数据处理语句SQL转换成第二数据处理语句HQL;
将所述第二数据处理语句HQL封装成可执行的linux程序的脚本。
上述执行的大数据平台的传统数据转换方法,,提供了一种将SQL语句转换成HQL语句的方法,通过预设的规则可以使不熟悉大数据开发语言和规则的开发人员通过开发SQ语句实现HQL的能力,自动地将开发人员开发的SQL语句转换成HQL语句,提高了不熟悉大数据开发语言和规则的开发人员的开发效率,同时也提高了大数据平台的使用率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种基于大数据平台的SQL语句转换方法,其特征在于,包括:
获取开发人员编写的第一数据处理语句SQL;
判断所述第一数据处理语句SQL的数据源类型;
根据数据源的类型将所述第一数据处理语句SQL转换成第二数据处理语句HQL;
将所述第二数据处理语句HQL封装成可执行的linux程序的脚本。
2.根据权利要求1所述的基于大数据平台的SQL语句转换方法,其特征在于,所述根据数据源的类型将所述第一数据处理语句SQL转换成第二数据处理语句HQL的步骤包括:
判断第一数据处理语句SQL中是否存在HQL不支持的操作命令;
若存在所述不支持的操作指令,则按照预设的处理方法对所述不支持操作指令进行转换;以及,
判断第一数据处理语句SQL中是否存在数据仓库工具hive不支持的函数;
若存在所述不支持的函数,则按照预设的处理方法对所述不支持的函数进行转换。
3.根据权利要求2所述的基于大数据平台的SQL语句转换方法,其特征在于,所述按照预设的处理方法对所述不支持操作指令进行转换的步骤包括:
判断所述不支持的操作指令的类型,所述不支持的操作指令类型包括更新操作、删除操作和提交操作;
若所述不支持的操作指令为更新操作,则将所述第一数据处理语句SQL中需要更新的数据导入第一中间表,将原表进行备份,将所述第一中间表的数据更新到所述原表中,完成更新操作;
若所述不支持的操作指令为删除操作,则将所述第一数据处理语句SQL中需要保留的数据导入第二中间表,将原表进行备份,将所述第二中间表覆盖到所述原表中,完成更新操作;
若所述不支持的操作指令为提交操作,则将需要的数据导入第三中间表,将原表进行备份,将所述第三中间表覆盖到所述原表中,完成提交操作。
4.根据权利要求2所述的基于大数据平台的SQL语句转换方法,其特征在于,所述按照预设的处理方法对所述不支持的函数进行转换的步骤包括:
判断所述不支持的函数类型,所述不支持的函数类型包括日期转换函数to_date、数据转换函数int、字符转换函数to_char;
若所述不支持函数为日期转换函数to_date,则将to_date函数转换HQL对应的日期函数FORM-UNIXTIME(UNIX-TIMESTAMP(BIRTHDAY,‘YYYY-MM-dd’),‘YYYY-MM-dd’);
若所述不支持函数为数据转换函数int,则将int函数转换为转换成cast(column asint);
若所述不支持函数为字符转换函数to_char,则将to_char函数转换为转换成cast(column as string)。
5.根据权利要求1所述的基于大数据平台的SQL语句转换方法,其特征在于,所述将所述第二数据处理语句HQL封装成可执行的linux程序的脚本的步骤包括:
在所述第二处理语句中添加脚本开头标识符;
在所述标识符之后添加自定义参数,所述自定义参数包括日期、时间、udf函数包、主机信息配置;
如果数据源是hive数据,则在所述自定义参数之后添加hive执行语句;
如果数据源是hbase数据,则在所述自定义参数之后添加需要将查找的实时信息转换成get或scan操作的调用语句,其中get操作的调用语句针对单条数据,scan操作的调用语句针对全量数据。
6.根据权利要求1所述的基于大数据平台的SQL语句转换方法,其特征在于,所述将所述第二数据处理语句HQL封装成可执行的linux程序的脚本之后的步骤还包括:
创建WEB服务界面,其中所述WEB服务界面设有反馈信息编辑界面,用于编写反馈信息;
接收web服务界面的反馈信息;
将所述反馈信息与所述第一数据处理语句SQL关联形成关联数据,并存储到预设的数据库中;
计算所述关联数据的条数是否大于预设阈值;
若是,则对所述数据库中的反馈信息进行聚类计算,得到多个类别的反馈信息,并将各聚类中心的反馈信息作为其类别的代表信息;
将所述代表信息展示于所述WEB服务界面上。
7.根据权利要求1所述的基于大数据平台的SQL语句转换方法,其特征在于,所述获取开发人员编写的第一数据处理语句SQL步骤之前,包括:
获取开发人员的正面图像,以及地址位置坐标;
基于所述地址位置坐标确定所述开发人员的所处的办公场景,并调用带有该办公场景特征的第一背景图片;
基于所述正面图像,提取所述正面图像中的人脸图像;
基于所述人脸图像,反选得到所述正面图像的第二背景图片;
判断所述第一背景图片和第二背景图片中是否存在大于设定阈值数量的相同的特征图像;
若是,则判定开发人员真实存在于所述办公场景;
基于所述人脸图像判断所述开发人员是否为具有在办公场景办公的权限;
若是,则执行所述获取开发人员编写的第一数据处理语句SQL的步骤。
8.一种基于大数据平台的SQL语句转换装置,其特征在于,包括:
获取模块,用于获取开发人员编写的第一数据处理语句SQL;
判断模块,用于判断所述第一数据处理语句SQL的数据源类型;
转换模块,用于根据数据源的类型将所述第一数据处理语句SQL转换成第二数据处理语句HQL;
封装模块,用于将所述第二数据处理语句HQL封装成可执行的linux程序的脚本。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011280867.9A CN112328260A (zh) | 2020-11-16 | 2020-11-16 | 基于大数据平台的sql语句转换方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011280867.9A CN112328260A (zh) | 2020-11-16 | 2020-11-16 | 基于大数据平台的sql语句转换方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112328260A true CN112328260A (zh) | 2021-02-05 |
Family
ID=74319210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011280867.9A Pending CN112328260A (zh) | 2020-11-16 | 2020-11-16 | 基于大数据平台的sql语句转换方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112328260A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948476A (zh) * | 2021-02-25 | 2021-06-11 | 第四范式(北京)技术有限公司 | 机器学习系统的数据接入方法、装置、系统和存储介质 |
CN117235052A (zh) * | 2023-11-15 | 2023-12-15 | 建信金融科技有限责任公司 | 一种数据库语句处理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868204A (zh) * | 2015-01-21 | 2016-08-17 | 中国移动(深圳)有限公司 | 一种转换Oracle脚本语言SQL的方法及装置 |
WO2018119599A1 (zh) * | 2016-12-26 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 人员查找的方法、装置及通信系统 |
CN108776610A (zh) * | 2018-06-27 | 2018-11-09 | 中国建设银行股份有限公司 | 一种界面配置方法和装置 |
CN109376166A (zh) * | 2018-08-20 | 2019-02-22 | 中国平安财产保险股份有限公司 | 脚本转换方法、装置、计算机设备及存储介质 |
CN110688378A (zh) * | 2019-09-06 | 2020-01-14 | 中国平安财产保险股份有限公司 | 数据库存储过程的迁移方法及系统 |
-
2020
- 2020-11-16 CN CN202011280867.9A patent/CN112328260A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868204A (zh) * | 2015-01-21 | 2016-08-17 | 中国移动(深圳)有限公司 | 一种转换Oracle脚本语言SQL的方法及装置 |
WO2018119599A1 (zh) * | 2016-12-26 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 人员查找的方法、装置及通信系统 |
CN108776610A (zh) * | 2018-06-27 | 2018-11-09 | 中国建设银行股份有限公司 | 一种界面配置方法和装置 |
CN109376166A (zh) * | 2018-08-20 | 2019-02-22 | 中国平安财产保险股份有限公司 | 脚本转换方法、装置、计算机设备及存储介质 |
CN110688378A (zh) * | 2019-09-06 | 2020-01-14 | 中国平安财产保险股份有限公司 | 数据库存储过程的迁移方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948476A (zh) * | 2021-02-25 | 2021-06-11 | 第四范式(北京)技术有限公司 | 机器学习系统的数据接入方法、装置、系统和存储介质 |
CN112948476B (zh) * | 2021-02-25 | 2024-05-31 | 第四范式(北京)技术有限公司 | 机器学习系统的数据接入方法、装置、系统和存储介质 |
CN117235052A (zh) * | 2023-11-15 | 2023-12-15 | 建信金融科技有限责任公司 | 一种数据库语句处理方法和装置 |
CN117235052B (zh) * | 2023-11-15 | 2024-03-08 | 建信金融科技有限责任公司 | 一种数据库语句处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506722B (zh) | 基于深度学习技术的知识图谱问答方法、装置及设备 | |
CN112632575A (zh) | 业务系统的权限管理方法、装置、计算机设备及存储介质 | |
CN112347310A (zh) | 事件处理信息的查询方法、装置、计算机设备和存储介质 | |
CN113326081A (zh) | 静态资源的处理方法、装置、计算机设备和存储介质 | |
CN113177396B (zh) | 报表生成方法、装置、计算机设备和存储介质 | |
CN104240342A (zh) | 一种门禁控制方法及门禁控制装置 | |
CN112328260A (zh) | 基于大数据平台的sql语句转换方法、装置和计算机设备 | |
CN112464117A (zh) | 请求处理方法、装置、计算机设备和存储介质 | |
WO2022041825A1 (zh) | 将图片转换为网页的方法、装置、计算机设备和存储介质 | |
CN112668041A (zh) | 单证文件的生成方法、装置、计算机设备和存储介质 | |
CN111625809A (zh) | 数据授权方法及装置、电子设备、存储介质 | |
CN112036172B (zh) | 基于模型的缩写数据的实体识别方法、装置和计算机设备 | |
CN113127450A (zh) | 数据的维护方法、装置、计算机设备及存储介质 | |
CN113986581A (zh) | 数据聚合处理方法、装置、计算机设备和存储介质 | |
CN113660229A (zh) | 基于rpa的多系统单点登录方法、装置、设备及介质 | |
CN113177109A (zh) | 文本的弱标注方法、装置、设备以及存储介质 | |
CN112434335A (zh) | 业务问题的处理方法、装置、计算机设备及存储介质 | |
CN113204619B (zh) | 基于自然语言处理的语句补全方法、装置、设备及介质 | |
Oktaviandri et al. | Design and development of visitor management system | |
CN113672654B (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
CN114036117A (zh) | 日志查看方法、装置、计算机设备和存储介质 | |
CN112650659A (zh) | 埋点设置方法、装置、计算机设备和存储介质 | |
CN113435990A (zh) | 基于规则引擎的凭证生成方法、装置和计算机设备 | |
CN112686745A (zh) | 金融账户变更处理方法、装置、计算机设备及存储介质 | |
CN110598374A (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 |