CN111008021A - 一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统 - Google Patents

一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统 Download PDF

Info

Publication number
CN111008021A
CN111008021A CN201911350170.1A CN201911350170A CN111008021A CN 111008021 A CN111008021 A CN 111008021A CN 201911350170 A CN201911350170 A CN 201911350170A CN 111008021 A CN111008021 A CN 111008021A
Authority
CN
China
Prior art keywords
python
variable
sql
data
query
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
CN201911350170.1A
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.)
Xiangji Zhiyuan Wuhan Technology Co ltd
Original Assignee
Xiangji Zhiyuan Wuhan 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 Xiangji Zhiyuan Wuhan Technology Co ltd filed Critical Xiangji Zhiyuan Wuhan Technology Co ltd
Priority to CN201911350170.1A priority Critical patent/CN111008021A/zh
Publication of CN111008021A publication Critical patent/CN111008021A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统,该方法及系统具体分为数据源管理、语法编辑器、语法解析器和脚本执行器;首先基于Presto构建多数据源查询平台,实现数据源动态添加删除以及使用同一套SQL语法查询不同数据源的数据;之后定义一套可混合执行SQL和python代码的语法规则;语法规则如下:整个脚本由命令行代码块及python代码块两部分组成,其中命令行代码块包含SQL语句;命令行语句以';'作为结束符,python代码块需要以'%python'包裹,即以'%python'开头,并以'%python'结尾。本发明提供的方法简化了多数据源查询的过程,消除了SQL和python代码的跨语言隔阂,数据分析人员无需再处理python和SQL查询的连接问题,只关注数据分析的部分,大大提高数据分析的效率。

Description

一种基于Presto的支持多数据源的混合执行SQL和python脚 本的方法及系统
技术领域
本发明涉及数据分析技术领域,具体为一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统。
背景技术
目前,在数据分析领域,分析师使用python对多个类SQL系统的数据进行查询分析时,需要执行以下步骤:
步骤一,针对不同的类SQL系统编写查询SQL;步骤二,针对不同类SQL系统编写链接执行代码执行编写好的SQL进行数据查询;步骤三,编写数据转换代码将查询结果转换为DataFrame;步骤四,编写数据分析代码分析数据;步骤五,执行python代码得出分析结果。
整个过程只有步骤四是具体的数据分析过程,其他都是为数据分析做的重复的准备工作,过程繁琐,操作复杂,非常影响数据分析的效率。
发明内容
本发明的目的在于提供一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统,其特征在于:该方法及系统具体分为数据源管理、语法编辑器、语法解析器和脚本执行器;首先基于Presto构建多数据源查询平台,实现数据源动态添加删除以及使用同一套SQL语法查询不同数据源的数据;之后定义一套可混合执行SQL和python代码的语法规则;语法规则如下:整个脚本由命令行代码块及python代码块两部分组成,其中命令行代码块包含SQL语句;命令行语句以';'作为结束符,python代码块需要以'%python'包裹,即以'%python'开头,并以'%python'结尾;语法规则其中包括:
①:export语法:
export命令负责声明全局常量,语法规则如下:
export const_name = num|"string";
②:load语法:
load命令可以将CSV或者JSON文件导入成临时表,语法规则如下:
load csv|json.'file_path' as table table_name;
③:save query as table 语法:
save query as table 命令将SQL查询结果保存为临时表,语法规则如下:
save query (SQL statement) as table table_name;
④:save query as variable 语法:
save query as variable 命令将SQL查询结果保存为全局变量,语法规则如下:
save query (SQL statement) as variable variable_name;
⑤:print 语法:
print 命令可以将全局变量的值或者内部表的数据临时输出出来进行预览,print内部表时,如果数据量很大,只会输出部分结果进行预览,语法规则如下:
print {{v1}}|(SQL statement);
⑥:return 语法:
return命令返回最后结果,语法规则如下:
return {{v1}};
⑦:变量及常量引用:
使用{{varial_name|table_name}} 格式引用变量和内部表;
⑧:Python load_variable函数
python中使用load_variable方法将全局变量load为python变量;
⑨:Python export_variable函数:
python中使用export_variable方法将python变量声明为全局变量,使变量可以直接在命令行里引用;
⑩:Python load_table函数:
python中使用load_table方法将内部表load为pandas的DataFrame;
⑪:Python save_to_table函数:
python中使用save_to_table方将pandas的DataFrame导出为内部表;
使用Antlr4根据上面定义的语法规则开发语法解析执行器,执行器使用内存数据库作为中间结果存储媒介,每次执行脚本,在内存数据库中为本次执行创建一个临时存储,脚本执行结束后,释放数据,删除临时存储,具体解析执行逻辑如下:
①:export命令:
对于export命令执行器会将对应的变量以变量名为key临时保存到内存数据库的变量表中;
②:load命令:
对于load命令执行器会解析URI,识别文件系统,然后使用对应文件系统的API读取文件,结合CSV或JSON解析器将文件解析为二维数据临时保存成内存数据库表;
③:save query as table 命令:
对于save query as table命令执行器会调用presto查询接口到指定数据源执行SQL查询数据,将查询结果临时保存成内存数据库表;
对于save query as variable命令执行器会调用presto查询接口到指定数据源执行SQL查询数据,将查询结果以变量名为key临时保存到内存数据库的变量表中;
⑤:print 命令:
对于print命令执行器会识别print的对象,如果是全局变量,那么直接打印变量的值,如果是内存数据库中的临时表,执行器会查询该表,将数据以二维表格的形式输出(数据超过限定行数,只打印部分数据),如果print的对象为SQL查询语句,执行器会调用presto查询接口执行SQL查询数据,最终以二维表格的形式输出;
⑥:return 命令:
return命令即是脚本的结束符也是脚本执行的最终返回结果,对应return命令执行器会将对应的变量或临时表数据返回给前端,作为脚本的最终执行结果;
对于python代码,开发load_variable,export_variable,load_table,save_to_table等内置函数模块,执行器执行python代码前将内置函数模块自动引入python代码中,然后执行;具体的,各内置函数实现逻辑如下:
①:load_variable 函数:
以传入函数的变量名作为key查询内存数据库变量表,返回对应变量的值;
②:export_variable 函数:
将python变量以传入的变量名作为key临时保存到内存数据库变量表中;
③:load_table 函数:
到内存数据库中查询对应名字的表数据,转换成pandas的DataFrame;
④:save_to_table函数:
将pandas的DataFrame临时保存成内存数据库的表。
优选的,所述数据源管理模块基于presto将数据源的动态添加删除,以及对跨数据源的数据查询。
优选的,所述语法编辑器中根据定义的语法规则编写SQL和python混合脚本。
优选的,所述语法编辑器将编辑好的脚本发送给语法解析器解析成语法树。
优选的,所述语法解析器将解析好的语法树发送给脚本执行器根据每一种语法的执行规则进行执行,返回执行结果并打印执行日志。
与现有技术相比,本发明的有益效果如下:
1、本发明提供的方法简化了多数据源查询的过程,消除了SQL和python代码的跨语言隔阂,数据分析人员无需再处理python和SQL查询的连接问题,只关注数据分析的部分,能够大大提高数据分析的效率;
2.该方法实现了跨数据源的数据查询分析,并且可以动态添加删除数据源;
3.该方法定义的语法规则可以混合执行SQL查询和python数据分析。
附图说明
图1为本发明具体流程图。
具体实施方式
下面将结合本发明,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明提供一种技术方案:一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统,该方法及系统具体分为数据源管理、语法编辑器、语法解析器和脚本执行器;首先基于Presto构建多数据源查询平台,实现数据源动态添加删除以及使用同一套SQL语法查询不同数据源的数据;之后定义一套可混合执行SQL和python代码的语法规则;语法规则如下:整个脚本由命令行代码块及python代码块两部分组成,其中命令行代码块包含SQL语句;命令行语句以';'作为结束符,python代码块需要以'%python'包裹,即以'%python'开头,并以'%python'结尾;语法规则其中包括:
①:export语法:
export命令负责声明全局常量,语法规则如下:
export const_name = num|"string";
例如:
export num = 123; --声明数值常量;
export name = "Tom"; --声明字符串常量;
②:load语法:
load命令可以将CSV或者JSON文件导入成临时表,语法规则如下:
load csv|json.'file_path' as table table_name;
例如:
load csv.'file:///user/file/data.csv' as table t1;
load json.'hdfs:///user/file/data.json' as table t2;
③:save query as table 语法:
save query as table 命令将SQL查询结果保存为临时表,语法规则如下:
save query (SQL statement) as table table_name;
例如:
save query (select * from table1 where id > 500) as table t3;
④:save query as variable 语法:
save query as variable 命令将SQL查询结果保存为全局变量,语法规则如下:
save query (SQL statement) as variable variable_name;
例如:
save query (select count(1) from table1) as variable total_num;
⑤:print 语法:
print 命令可以将全局变量的值或者内部表的数据临时输出出来进行预览,print内部表时,如果数据量很大,只会输出部分结果进行预览,语法规则如下:
print {{v1}}|(SQL statement);
例如:
save query (select * from table1 where id > 500) as table t3;
print {{t3}};
print (select * from {{t3}} where id >600);
⑥:return 语法:
return命令返回最后结果,语法规则如下:
return {{v1}};
例如:
save query (select * from table1 where id > 500) as table t3;
return {{t3}};
⑦:变量及常量引用:
使用{{varial_name|table_name}} 格式引用变量和内部表,例如:
select * from {{table1}} where id = {{v2}};
⑧:Python load_variable函数:
python中使用load_variable方法将全局变量load为python变量,例如:
save query (select count(1) from table1) as variable total_num;
%python
total = load_variable('total_num')
%python
⑨:Python export_variable函数:
python中使用export_variable方法将python变量声明为全局变量,使变量可以直接在命令行里引用,例如:
%python
value = 1*(2+3)
export_variable(value, 'v1')
%python
select * from test_table where id = {{v1}};
⑩:Python load_table函数:
python中使用load_table方法将内部表load为pandas的DataFrame,例如:
save query (select * from table1 where id > 500) as table t3;
%python
dataFrame = load_table('t3')
%python
⑪:Python save_to_table函数:
python中使用save_to_table方将pandas的DataFrame导出为内部表,例如:
%python
df1 = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),columns=['a', 'b', 'c'])
save_to_table(df1, 't2')
%python
select * from {{t2}} where = 1;
使用Antlr4根据上面定义的语法规则开发语法解析执行器,执行器使用内存数据库作为中间结果存储媒介,每次执行脚本,在内存数据库中为本次执行创建一个临时存储,脚本执行结束后,释放数据,删除临时存储,具体解析执行逻辑如下:
①:export命令:
对于export命令执行器会将对应的变量以变量名为key临时保存到内存数据库的变量表中;
②:load命令:
对于load命令执行器会解析URI,识别文件系统,然后使用对应文件系统的API读取文件,结合CSV或JSON解析器将文件解析为二维数据临时保存成内存数据库表;
③:save query as table 命令:
对于save query as table命令执行器会调用presto查询接口到指定数据源执行SQL查询数据,将查询结果临时保存成内存数据库表;
对于save query as variable命令执行器会调用presto查询接口到指定数据源执行SQL查询数据,将查询结果以变量名为key临时保存到内存数据库的变量表中;
⑤:print 命令:
对于print命令执行器会识别print的对象,如果是全局变量,那么直接打印变量的值,如果是内存数据库中的临时表,执行器会查询该表,将数据以二维表格的形式输出(数据超过限定行数,只打印部分数据),如果print的对象为SQL查询语句,执行器会调用presto查询接口执行SQL查询数据,最终以二维表格的形式输出;
⑥:return 命令:
return命令即是脚本的结束符也是脚本执行的最终返回结果,对应return命令执行器会将对应的变量或临时表数据返回给前端,作为脚本的最终执行结果;
对于python代码,开发load_variable,export_variable,load_table,save_to_table等内置函数模块,执行器执行python代码前将内置函数模块自动引入python代码中,然后执行;具体的,各内置函数实现逻辑如下:
①:load_variable 函数:
以传入函数的变量名作为key查询内存数据库变量表,返回对应变量的值;
②:export_variable 函数:
将python变量以传入的变量名作为key临时保存到内存数据库变量表中;
③:load_table 函数:
到内存数据库中查询对应名字的表数据,转换成pandas的DataFrame;
④:save_to_table函数:
将pandas的DataFrame临时保存成内存数据库的表。
数据源管理模块基于presto将数据源的动态添加删除,以及对跨数据源的数据查询。
语法编辑器中根据定义的语法规则编写SQL和python混合脚本。
语法编辑器将编辑好的脚本发送给语法解析器解析成语法树。
语法解析器将解析好的语法树发送给脚本执行器根据每一种语法的执行规则进行执行,返回执行结果并打印执行日志。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (5)

1.一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统,其特征在于:该方法及系统具体分为数据源管理、语法编辑器、语法解析器和脚本执行器;首先基于Presto构建多数据源查询平台,实现数据源动态添加删除以及使用同一套SQL语法查询不同数据源的数据;之后定义一套可混合执行SQL和python代码的语法规则;语法规则如下:整个脚本由命令行代码块及python代码块两部分组成,其中命令行代码块包含SQL语句;命令行语句以';'作为结束符,python代码块需要以'%python'包裹,即以'%python'开头,并以'%python'结尾;语法规则其中包括:
①:export语法:
export命令负责声明全局常量,语法规则如下:
export const_name = num|"string";
②:load语法:
load命令可以将CSV或者JSON文件导入成临时表,语法规则如下:
load csv|json.'file_path' as table table_name;
③:save query as table 语法:
save query as table 命令将SQL查询结果保存为临时表,语法规则如下:
save query (SQL statement) as table table_name;
④:save query as variable 语法:
save query as variable 命令将SQL查询结果保存为全局变量,语法规则如下:
save query (SQL statement) as variable variable_name;
⑤:print 语法:
print 命令可以将全局变量的值或者内部表的数据临时输出出来进行预览,print内部表时,如果数据量很大,只会输出部分结果进行预览,语法规则如下:
print {{v1}}|(SQL statement);
⑥:return 语法:
return命令返回最后结果,语法规则如下:
return {{v1}};
⑦:变量及常量引用:
使用{{varial_name|table_name}} 格式引用变量和内部表;
⑧:Python load_variable函数
python中使用load_variable方法将全局变量load为python变量;
⑨:Python export_variable函数:
python中使用export_variable方法将python变量声明为全局变量,使变量可以直接在命令行里引用;
⑩:Python load_table函数:
python中使用load_table方法将内部表load为pandas的DataFrame;
⑪:Python save_to_table函数:
python中使用save_to_table方将pandas的DataFrame导出为内部表;
使用Antlr4根据上面定义的语法规则开发语法解析执行器,执行器使用内存数据库作为中间结果存储媒介,每次执行脚本,在内存数据库中为本次执行创建一个临时存储,脚本执行结束后,释放数据,删除临时存储,具体解析执行逻辑如下:
①:export命令:
对于export命令执行器会将对应的变量以变量名为key临时保存到内存数据库的变量表中;
②:load命令:
对于load命令执行器会解析URI,识别文件系统,然后使用对应文件系统的API读取文件,结合CSV或JSON解析器将文件解析为二维数据临时保存成内存数据库表;
③:save query as table 命令:
对于save query as table命令执行器会调用presto查询接口到指定数据源执行SQL查询数据,将查询结果临时保存成内存数据库表;
对于save query as variable命令执行器会调用presto查询接口到指定数据源执行SQL查询数据,将查询结果以变量名为key临时保存到内存数据库的变量表中;
⑤:print 命令:
对于print命令执行器会识别print的对象,如果是全局变量,那么直接打印变量的值,如果是内存数据库中的临时表,执行器会查询该表,将数据以二维表格的形式输出(数据超过限定行数,只打印部分数据),如果print的对象为SQL查询语句,执行器会调用presto查询接口执行SQL查询数据,最终以二维表格的形式输出;
⑥:return 命令:
return命令即是脚本的结束符也是脚本执行的最终返回结果,对应return命令执行器会将对应的变量或临时表数据返回给前端,作为脚本的最终执行结果;
对于python代码,开发load_variable,export_variable,load_table,save_to_table等内置函数模块,执行器执行python代码前将内置函数模块自动引入python代码中,然后执行;具体的,各内置函数实现逻辑如下:
①:load_variable 函数:
以传入函数的变量名作为key查询内存数据库变量表,返回对应变量的值;
②:export_variable 函数:
将python变量以传入的变量名作为key临时保存到内存数据库变量表中;
③:load_table 函数:
到内存数据库中查询对应名字的表数据,转换成pandas的DataFrame;
④:save_to_table函数:
将pandas的DataFrame临时保存成内存数据库的表。
2.根据权利要求1所述的一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统,其特征在于:所述数据源管理模块基于presto将数据源的动态添加删除,以及对跨数据源的数据查询。
3.根据权利要求1所述的一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统,其特征在于:所述语法编辑器中根据定义的语法规则编写SQL和python混合脚本。
4.根据权利要求1所述的一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统,其特征在于:所述语法编辑器将编辑好的脚本发送给语法解析器解析成语法树。
5.根据权利要求4所述的一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统,其特征在于:所述语法解析器将解析好的语法树发送给脚本执行器根据每一种语法的执行规则进行执行,返回执行结果并打印执行日志。
CN201911350170.1A 2019-12-24 2019-12-24 一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统 Pending CN111008021A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911350170.1A CN111008021A (zh) 2019-12-24 2019-12-24 一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911350170.1A CN111008021A (zh) 2019-12-24 2019-12-24 一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统

Publications (1)

Publication Number Publication Date
CN111008021A true CN111008021A (zh) 2020-04-14

Family

ID=70116264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911350170.1A Pending CN111008021A (zh) 2019-12-24 2019-12-24 一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统

Country Status (1)

Country Link
CN (1) CN111008021A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752980A (zh) * 2020-07-01 2020-10-09 浪潮云信息技术股份公司 一种执法监管智能预警系统及方法
CN111914013A (zh) * 2020-08-13 2020-11-10 傲普(上海)新能源有限公司 基于pandas库与InfluxDB数据库的数据管理方法、系统、终端及介质
CN112230934A (zh) * 2020-10-27 2021-01-15 北京人大金仓信息技术股份有限公司 一种转换代码语言的方法及装置
CN112241416A (zh) * 2020-10-16 2021-01-19 四川长虹电器股份有限公司 一种利用python语法语义构建复杂sql语句的系统及方法
CN113553316A (zh) * 2021-07-23 2021-10-26 中信银行股份有限公司 一种多模式数据查询建模方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880452A (zh) * 2012-02-01 2013-01-16 日照市国软软件有限公司 一种可跨语言重用的编程语言
CN102982075A (zh) * 2012-10-30 2013-03-20 北京京东世纪贸易有限公司 支持访问异构数据源的系统和方法
CN105426467A (zh) * 2015-11-16 2016-03-23 北京京东尚科信息技术有限公司 一种用于Presto的SQL查询方法及系统
JP2017120611A (ja) * 2015-12-30 2017-07-06 株式会社 ビーアイマトリックスBi Matrix Co.,Ltd 商用インタープリタを用いた、スクリプトに基づくデータ処理システム
CN110019291A (zh) * 2017-09-04 2019-07-16 中国移动通信集团浙江有限公司 一种sql解析方法和sql解析器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880452A (zh) * 2012-02-01 2013-01-16 日照市国软软件有限公司 一种可跨语言重用的编程语言
CN102982075A (zh) * 2012-10-30 2013-03-20 北京京东世纪贸易有限公司 支持访问异构数据源的系统和方法
CN105426467A (zh) * 2015-11-16 2016-03-23 北京京东尚科信息技术有限公司 一种用于Presto的SQL查询方法及系统
JP2017120611A (ja) * 2015-12-30 2017-07-06 株式会社 ビーアイマトリックスBi Matrix Co.,Ltd 商用インタープリタを用いた、スクリプトに基づくデータ処理システム
CN110019291A (zh) * 2017-09-04 2019-07-16 中国移动通信集团浙江有限公司 一种sql解析方法和sql解析器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
葛文帅: "业务导向的自定义大数据查询系统及其SQL解析器的设计与实现" *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752980A (zh) * 2020-07-01 2020-10-09 浪潮云信息技术股份公司 一种执法监管智能预警系统及方法
CN111752980B (zh) * 2020-07-01 2024-01-30 浪潮云信息技术股份公司 一种执法监管智能预警系统及方法
CN111914013A (zh) * 2020-08-13 2020-11-10 傲普(上海)新能源有限公司 基于pandas库与InfluxDB数据库的数据管理方法、系统、终端及介质
CN111914013B (zh) * 2020-08-13 2023-02-28 傲普(上海)新能源有限公司 基于pandas库与InfluxDB数据库的数据管理方法、系统、终端及介质
CN112241416A (zh) * 2020-10-16 2021-01-19 四川长虹电器股份有限公司 一种利用python语法语义构建复杂sql语句的系统及方法
CN112230934A (zh) * 2020-10-27 2021-01-15 北京人大金仓信息技术股份有限公司 一种转换代码语言的方法及装置
CN112230934B (zh) * 2020-10-27 2023-08-29 北京人大金仓信息技术股份有限公司 一种转换代码语言的方法及装置
CN113553316A (zh) * 2021-07-23 2021-10-26 中信银行股份有限公司 一种多模式数据查询建模方法及系统
CN113553316B (zh) * 2021-07-23 2024-05-17 中信银行股份有限公司 一种多模式数据查询建模方法及系统

Similar Documents

Publication Publication Date Title
CN111008021A (zh) 一种基于Presto的支持多数据源的混合执行SQL和python脚本的方法及系统
CN101021874B (zh) 一种对查询sql请求进行优化的方法及装置
CN106933869B (zh) 一种操作数据库的方法和装置
CN112579626A (zh) 多源异构sql查询引擎的构建方法及装置
US20230185781A1 (en) System and method for data warehouse migration
CN111209298A (zh) 查询数据库数据的方法、装置、设备和存储介质
CN112579610A (zh) 多数据源结构分析方法、系统、终端设备及存储介质
CN112765209A (zh) 一种数据库间的sql语句语法迁移方法及系统
CN115905740A (zh) 一种多数据源服务引擎接口互联方法
CN110554948A (zh) 一种Vdbench性能测试结果分析方法、系统及设备
CN107729428A (zh) 一种基于Presto和Elasticsearch的SQL查询方法
CN109284088B (zh) 一种信令大数据处理方法及电子设备
CN110968594B (zh) 数据库查询优化方法、引擎及存储介质
CN115080011B (zh) 基于抽象语法树的代码生成方法及系统
CN108388589B (zh) 一种数据库sql查询语句自动生成的装置
EP4174680A1 (en) Sql unification method, system, and device, and medium
CN114064601B (zh) 存储过程转换方法、装置、设备和存储介质
CN114925142A (zh) 一种orm框架的多类型数据库兼容方法、装置、设备及介质
CN113468873A (zh) Pl/sql语言的语法解析方法及装置
CN114281842A (zh) 一种数据库分表查询的方法及设备
CN106484706B (zh) 用于分布式系统的执行过程化sql语句的方法和设备
Wang et al. XCpaqs: compression of XML document with XPath query support
CN117251472B (zh) 跨源数据处理方法、装置、设备及存储介质
CN114817309A (zh) 分布式数据库的逻辑计划复用方法
CN115952203B (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
CB02 Change of applicant information

Address after: No.218-430079, Wuhan New Wuhu science and Technology Park, Wuhan

Applicant after: Xiangji Technology Co.,Ltd.

Address before: No.218-430079, Wuhan New Wuhu science and Technology Park, Wuhan

Applicant before: XIANGJI ZHIYUAN (WUHAN) TECHNOLOGY CO.,LTD.

CB02 Change of applicant information
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200414

WD01 Invention patent application deemed withdrawn after publication