CN106897322A - 一种数据库和文件系统的访问方法和装置 - Google Patents
一种数据库和文件系统的访问方法和装置 Download PDFInfo
- Publication number
- CN106897322A CN106897322A CN201510966986.2A CN201510966986A CN106897322A CN 106897322 A CN106897322 A CN 106897322A CN 201510966986 A CN201510966986 A CN 201510966986A CN 106897322 A CN106897322 A CN 106897322A
- Authority
- CN
- China
- Prior art keywords
- database
- file system
- source
- statement
- table name
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 230000008569 process Effects 0.000 claims abstract description 34
- 238000004364 calculation method Methods 0.000 claims abstract description 17
- 238000004458 analytical method Methods 0.000 claims description 44
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000010195 expression analysis Methods 0.000 claims description 11
- 230000009471 action Effects 0.000 claims description 10
- 238000005192 partition Methods 0.000 claims description 7
- 230000026676 system process Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 13
- 230000002776 aggregation Effects 0.000 description 9
- 238000004220 aggregation Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 241000234435 Lilium Species 0.000 description 2
- 230000002860 competitive effect Effects 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 241000853394 Tityus imei Species 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据库和文件系统的访问方法和装置,该方法包括:根据元数据确定输入的标准结构化查询语言SQL语句中的表名和关键字对应的源数据库或源文件系统类型;当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为关系数据库管理系统RDBMS或海量并行处理MPP系统时,将所述表名和关键字所在的标准SQL语句对应传输至RDBMS系统或MPP系统;当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为分布式计算Hadoop系统或非关系型数据库NoSQL时,对所述表名和关键字进行解析,对应生成能够在Hadoop系统或NoSQL数据库运行的访问语句,并将所述能够在Hadoop系统或NoSQL数据库运行的访问语句对应地传输至Hadoop系统或NoSQL数据库;从RDBMS系统或MPP系统或Hadoop系统或NoSQL数据库接收访问处理结果。
Description
技术领域
本发明涉及数据库管理技术及文件系统访问技术,尤其涉及一种数据库和文件系统的访问方法和装置。
背景技术
当前,现有的大数据处理平台普遍采用混搭架构,一般包括关系数据库管理系统(RDBMS,Relational Database Management System)、海量并行处理(MPP,Massive Parallel Processing)系统、非关系型数据库(NoSQL,Not OnlySQL)和分布式计算Hadoop系统中的全部或者部分组件。
但是,对于上述四种数据库或文件系统进行访问时,所需要的访问方法各有不同,比如,常用的RDBMS系统都具有类似的存储方式和访问方式,数据处理一般采用结构化查询语言(SQL,Structured Query Language),支持美国国家标准学会(ANSI,American National Standards Institute)SQL92标准;常用的MPP系统具有不同于RDBMS系统的存储方式和访问方式,数据处理采用Shell脚本和SQL语言,通常支持ANSI SQL92标准;常用的NoSQL数据库一般都是开源的,如HBase数据库是一种主要的列族NoSQL产品,数据保存在分布式文件系统(HDFS,Hadoop Distributed File System)中,HBase数据库采用专用的Shell脚本语言处理数据;而Hadoop系统作为大数据基础平台,仍然采用HDFS文件系统保存数据,数据处理采用Map/Reduce函数来处理,采用Java语言开发。
综上所述,为了应付不同的数据库或文件系统所对应的不同的访问方式,数据使用者可能需要同时编写SQL语句、Shell脚本和Map/Reduce程序来处理数据,导致数据使用者需要学习不同的访问技术对数据进行访问,从而增加了技术门槛高,不容易上手。
目前为了解决上述不同数据库和文件系统访问技术的差异,通常会将关系数据库数据迁移到Hadoop系统的大数据环境,从而进行相对统一的数据分析,但是迁移数据需要占用额外的输入/输出(IO,Input/Output)端口以及空间资源,仍旧无法提供一种能够让各种数据库和文件系统对使用者透明的跨异构平台访问数据方法。
发明内容
为解决上述技术问题,本发明实施例期望提供一种数据库和文件系统的访问方法和装置,能够使得使用者透明地对跨异构平台的数据库和文件系统进行访问。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供一种数据库和文件系统的访问方法,所述方法包括:根据元数据确定输入的标准结构化查询语言SQL语句中的表名和关键字对应的源数据库或源文件系统类型;当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为关系数据库管理系统RDBMS或海量并行处理MPP系统时,将所述表名和关键字所在的标准SQL语句对应传输至RDBMS系统或MPP系统;当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为分布式计算Hadoop系统或非关系型数据库NoSQL时,对所述表名和关键字进行解析,对应生成能够在Hadoop系统或NoSQL数据库运行的访问语句,并将所述能够在Hadoop系统或NoSQL数据库运行的访问语句对应地传输至Hadoop系统或NoSQL数据库;从RDBMS系统或MPP系统或Hadoop系统或NoSQL数据库接收访问处理结果。
在上述方案中,所述元数据用于表征标准结构化查询语言SQL语句中的表名和关键字与源数据库或源文件系统类型的对应关系;相应地,根据元数据确定输入的标准结构化查询语言SQL语句中的表名和关键字对应的源数据库或源文件系统类型,具体包括:确定所述标准SQL语句中的关键字是否包含map、reduce、filter等传统SQL数据库不支持的字段;若包含,则确定所述标准SQL语句中的关键字的数据源类型为Hadoop系统或NoSQL数据库;若不包含,则将所述标准SQL语句中的表名和关键字与元数据进行比对,根据元数据中的数据来源字段确定表名和关键字的源数据库或源文件系统类型。
在上述方案中,所述当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为分布式计算Hadoop系统或非关系型数据库NoSQL时,对所述表名和关键字进行解析,对应生成能够在Hadoop系统或NoSQL数据库运行的访问语句,具体包括:当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为分布式计算Hadoop系统或非关系型数据库NoSQL时,按照预设的词法分析策略,将所述标准SQL语句转换成由<词素,属性>结构组成的句子;按照预设的语法分析策略,将所述标准SQL语句对应的<词素,属性>结构组成的句子生成对应的语法树AST;按照预设的语义分析策略,输出所述AST对应的逻辑查询计划,并由逻辑查询计划生成物理查询计划;其中,物理查询计划就是能够在Hadoop系统或NoSQL数据库上运行的访问语句。
在上述方案中,所述按照预设的语义分析策略,输出所述AST对应的逻辑查询计划,并由逻辑查询计划生成物理查询计划,具体包括:根据标准SQL基本操作的顺序遍历所述AST,对所述AST的操作动作进行解析,当遇到标准SQL基本操作时就生成对应的逻辑算子,当遇到表达式时就调用对应的表达式分析并得到分析结果,进而生成由所述逻辑算子和所述表达式分析结果组成的有向无环图DAG;按照拓扑排序遍历所述DAG上的每一个逻辑算子,根据逻辑算子逐一生成对应的物理算子;最后,将生成的物理算子按照DAG对应的顺序组成物理查询计划;其中,当生成的物理算子为需要重新分区排序后才能运行的物理算子时,在所述物理算子前加入一个Shuffle-Sort算子。
在上述方案中,所述方法还包括:使用以下三种内存计算方法中的至少一种来提高分布式文件系统HDFS处理数据的速度:第一种:当HDFS文件系统第一次处理数据时,先从计算机磁盘中读出数据;然后放入计算机内存中的弹性分布式数据集RDD中;从而使得接下来的数据处理全部在计算机内存中进行;第二种:通过DAG记录整个内存计算的过程,且不断保存所述内存计算过程的快照;第三种:将HDFS文件系统中的文件装入计算机内存,通过在计算机内存中模拟HDFS文件系统的架构来处理数据。
第二方面,本发明实施例提供一种数据库和文件系统的访问装置,包括:接收单元、传输单元、生成单元以及执行单元;其中,所述确定单元,用于根据元数据确定输入的标准结构化查询语言SQL语句中的表名和关键字对应的源数据库或源文件系统的类型;所述传输单元,用于当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为关系数据库管理系统RDBMS或海量并行处理MPP系统时,将所述表名和关键字所在的标准SQL语句对应传输至RDBMS系统或MPP系统;所述生成单元,用于当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为分布式计算Hadoop系统或非关系型数据库NoSQL时,对所述表名和关键字进行解析,对应生成能够在Hadoop系统或NoSQL数据库运行的访问语句,并将所述能够在Hadoop系统或NoSQL数据库运行的访问语句发送至所述传输单元;所述传输单元,还用于对所述生成单元传来的所述能够在Hadoop系统或NoSQL数据库运行的访问语句对应传输至Hadoop系统或NoSQL数据库;所述接收单元,用于从RDBMS系统或MPP系统或Hadoop系统或NoSQL数据库接收访问处理结果。
在上述方案中,所述元数据用于表征标准结构化查询语言SQL语句中的表名和关键字与源数据库或源文件系统类型的对应关系;相应地,根据元数据确定输入的标准结构化查询语言SQL语句中的表名和关键字对应的源数据库或源文件系统类型,具体包括:先确定所述标准SQL语句中的关键字是否包含map、reduce、filter等传统SQL数据库不支持的字段;若包含,则确定所述标准SQL语句中的关键字的数据源类型为Hadoop系统或NoSQL数据库;若不包含,则将所述标准SQL语句中的表名和关键字与元数据进行比对,根据元数据中的数据来源字段确定表名和关键字的源数据库或源文件系统类型。
在上述方案中,所述生成单元,具体用于按照预设的词法分析策略,将所述标准SQL语句转换成由<词素,属性>结构组成的句子;按照预设的语法分析策略,将所述标准SQL语句对应的<词素,属性>结构组成的句子生成对应的语法树AST;按照预设的语义分析策略,输出所述AST对应的逻辑查询计划,并由逻辑查询计划生成物理查询计划;其中,物理查询计划就是能够在Hadoop系统或NoSQL数据库上运行的访问语句。
在上述方案中,所述生成单元,具体用于根据标准SQL基本操作的顺序遍历所述AST,对所述AST的操作动作进行解析,当遇到标准SQL基本操作时就生成对应的逻辑算子,当遇到表达式时就调用对应的表达式分析并得到分析结果,进而生成由所述逻辑算子和所述表达式分析结果组成的有向无环图DAG;按照拓扑排序遍历所述DAG上的每一个逻辑算子,根据逻辑算子逐一生成对应的物理算子,最后,将生成的物理算子按照DAG对应的顺序组成物理查询计划;其中,当生成的物理算子为需要重新分区排序后才能运行的物理算子时,在所述物理算子前加入一个Shuffle-Sort算子。
在上述方案中,所述生成单元,还用于使用以下三种内存计算方法中的至少一种来提高分布式文件系统HDFS处理数据的速度:第一种:当HDFS文件系统第一次处理数据时,先从计算机磁盘中读出数据;然后放入计算机内存中的弹性分布式数据集RDD中;从而使得接下来的数据处理全部在计算机内存中进行;第二种:通过DAG记录整个内存计算的过程,且不断保存所述内存计算过程的快照;第三种:将HDFS文件系统中的文件装入计算机内存,通过在计算机内存中模拟HDFS文件系统的架构来处理数据。
本发明实施例提供了一种数据库和文件系统的访问方法和装置,通过对输入的标准SQL语句进行解析,从而能够使得使用者仅通过标准SQL语句就能够访问跨异构平台数据库和文件系统存储的数据,实现了使用者透明地对跨异构平台的数据库和文件系统进行数据处理。
附图说明
图1为本发明实施例中的数据库和文件系统的访问方法的一种流程示意图;
图2为本发明实施例中的语法树示意图;
图3为本发明实施例中的逻辑算子与标准SQL基本操作对应关系的示意图;
图4为本发明实施例中的逻辑查询计划示意图;
图5为本发明实施例中的物理查询计划示意图;
图6为本发明实施例中的数据库和文件系统的访问装置的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一
参见图1,其示出了本发明实施例提供的一种数据库和文件系统的访问方法,该方法可以包括:
S101:根据元数据确定输入的标准SQL语句中的表名和关键字对应的源数据库或源文件系统的类型;
具体来说,输入的标准SQL语句可以由用户根据需求编写的,也可以是程序自动生成的,同时,用户可以通过命令行界面(CLI,command-line interface)输入上述标准SQL语句。
在具体实施过程中,一条标准的SQL语句,可能涉及多个表名和关键字,由于数据源不同,执行上述标准SQL语句就需要访问不同的数据库或文件系统。这里,可以借助元数据来确定上述标准SQL语句中表名和关键字来源的数据源或源文件系统;其中,元数据记录了数据的来源,元数据库中包含了RDBMS、MPP、NoSQL和Hadoop这四种数据库和文件系统的元数据。
需要说明的是,HBase数据库是NoSQL数据库的一种主要产品,在下面的表述中,以HBase数据库为例来说明NoSQL数据库。
针对元数据的抽取,进一步地,抽取程序通过Java数据库连接(JDBC,Java Data Base Connectivity)连接RDBMS系统或MPP系统,通过远程过程调用协议(RPC,Remote Procedure Call Protocol)来连接HBase数据库,通过JDBC来连接Hive的元数据库,并且定期抽取上述数据库中的元数据;其中,Hive是建立在Hadoop系统上的数据仓库基础构架。
在具体实施过程中,可以对各数据库或文件系统中抽取来的元数据对应增加一个数据来源字段,用于标明该元数据是从哪个数据库或文件系统获得的,以方便后续的流程确定标准SQL语句中表名和关键字的来源。
示例性地,根据元数据确定输入的标准SQL语句中的表名和关键字对应的源数据库或源文件系统的类型具体可以包括:确定该标准SQL语句中的关键字是否包含map、reduce、filter等常规SQL数据库不支持的字段:若包含,则确定所述标准SQL语句中的关键字的数据源类型为Hadoop系统或NoSQL数据库;若不包含,则将所述标准SQL语句中的表名和关键字与元数据进行比对,根据元数据中的数据来源字段确定表名和关键字的源数据库或源文件系统类型。
S102:当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为关系数据库管理系统RDBMS或海量并行处理MPP系统时,将上述表名和关键字所在的标准SQL语句对应传输至RDBMS系统或MPP系统;
可以理解地,通过步骤S102,可以使得上述RDBMS系统或MPP系统根据上述源数据库或源文件系统类型对应地进行访问处理;
具体来说,由于RDBMS系统或MPP系统支持标准SQL语句,因此,当确定表名和关键字的数据源是RDBMS系统或MPP系统时,直接将标准SQL语句中源数据库或源文件系统类型为RDBMS系统或MPP系统的表名和关键字所在的语句传输至RDBMS系统或MPP系统进行处理,并等待RDBMS系统或MPP系统返回处理结果。
S103:当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为分布式计算Hadoop系统或非关系型数据库NoSQL时,对上述表名和关键字进行解析,对应生成能够在Hadoop系统或NoSQL数据库运行的访问语句,并将上述能够在Hadoop系统或NoSQL数据库运行的访问语句对应地传输至Hadoop系统或NoSQL数据库;
可以理解地,通过步骤S103,可以使得上述Hadoop系统或NoSQL数据库根据对应的访问语句进行访问处理。
需要说明的是,由于HBase数据库使用Shell语言访问HDFS文件系统,而Hadoop系统使用Java语言访问HDFS文件系统,因此,需要将标准SQL语句中源数据库类型为HBase的表名和关键字所在的标准SQL语句解析成可以在HDFS文件系统上运行的Shell语句;将源文件系统类型为Hadoop系统的表名和关键字所在的标准SQL语句解析成可以在HDFS文件系统上运行的Java语句,以实现利用标准SQL语句访问不同的数据平台的目的;其中,HBase数据库和Hadoop系统的数据都保存在HDFS文件系统中。
在具体实施过程中,当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为分布式计算Hadoop系统或非关系型数据库NoSQL时,对上述表名和关键字进行解析,对应生成能够在Hadoop系统或NoSQL数据库运行的访问语句,具体包括:
S1031:按照预设的词法分析策略,将所述标准SQL语句转换成由<词素,属性>结构组成的句子。
具体来说,就是根据预先设置的词法分析策略,将用户输入的标准SQL语句转换为<词素,属性>结构的组合。例如,用户在CLI输入一条标准SQL语句:SELECT FOO+100FROM POKES,首先,经过词法分析处理后得到<词素,属性>结构组成的句子:(KeyWord:SELECT)(Identifier:FOO)(Keyword:+)(Number:100)(Keyword:FROM)(Identifier:POKES);其中,预先定义Identifier(标示符)、Number(数字)、Keyword(关键字)和StringLiteral(字符串)。
S1032:按照预设的语法分析策略,将上述标准SQL语句对应的<词素,属性>结构组成的句子生成对应的语法树(AST,Abstract syntax tree);
具体来说,语法分析是判断标准SQL语句中的单词是否符合语法逻辑,并且当符合语法逻辑之后,由所述标准SQL语句对应的<词素,属性>结构组成的句子抽象出对应的AST。例如,SELECT FOO+100FROM POKES是一个符合语法的句子,而SELECT FOO+100FROM是个不合法的语句,因为在FROM之后一定要跟着一个表名,此时,会出现错误提示:Expect Identifier after keyword‘FROM’。
具体来说,AST是标准SQL语句的树形结构的表现形式,树上的每一个节点都是一个单词,树的结构体现了语法。采用自顶向下的方法,最左推导法,消除二义性、消除左递归、提取左公因式的方法就能根据一条标准SQL语句生成唯一的AST,有时也需要用到符号表;其中,AST是随着语法分析的处理过程来构造的,当语法分析正常结束后,会输出一个AST,同时,标准SQL语句和AST的结构内容是一一对应的。这里,标准SQL语句可以看作一个“字符串”,此时,用户输入的‘字符串’已经转换成‘结构体’,比如,SELECT FOO+100FROM POKES这条标准SQL语句可以转换成如图2所示的AST。
S1033:按照预设的语义分析策略,输出上述AST对应的逻辑查询计划,并由逻辑查询计划生成物理查询计划;其中,物理查询计划就是能够在Hadoop系统或NoSQL数据库上运行的访问语句。
需要说明的是,Hadoop系统或NoSQL数据库的数据都保存在HDFS文件系统上。
对于S1033的处理步骤,需要说明的是:按照预设的语义分析策略,输出上述AST对应的逻辑查询计划,这部分的处理过程可以称为逻辑分析;由逻辑查询计划生成物理查询计划,这部分的处理过程可以称为物理分析;因此,语义分析又可以包括逻辑分析和物理分析。
在具体实施过程中,首先需要对上述AST进行逻辑分析,生成一个逻辑查询计划,具体可以是一个有向无环图(DAG,Directed Acyclic Graph)。
具体对AST进行逻辑分析的过程如下:先根据标准SQL基本操作的顺序遍历上述标准SQL语句对应的AST,对上述AST的操作动作进行解析;当遇到标准SQL基本操作时就生成对应的逻辑算子,当遇到表达式时就调用对应的表达式分析并得到分析结果;进而生成由上述逻辑算子和上述表达式分析结果组成的DAG。
需要说明的是,一个标准SQL语句一般都有一个输入和一个输出,根据输入语句执行操作动作后输出数据,一个标准SQL语句基本可以分解成下面(1)至(7)七个基本操作:
(1)FROM<table source>
(2)WHERE<condition>
(3)GROUP BY<group by list>
(4)HAVING<having condition>
(5)SELECT
(6)DISTINCT<select list>
(7)ORDER BY<order by list>
按照(1)~(7)的标号顺序对上述AST进行分解,有些操作动作是可选的,例如,当没有出现WHERE操作动作的时候就跳过这步。然后,根据上述分解后的AST,抽象出基本操作对应的逻辑算子;这些逻辑算子是单一不可拆分的功能单位;其中,基本操作与逻辑算子的对应关系如图3所示,图中实线箭头表示逻辑算子对应的基本操作。逻辑查询计划就是由这些逻辑算子组成的一个DAG,每一个逻辑算子都描述了上述标准SQL语句中对应的操作动作,DAG描述了数据流的方向。
另外,在聚合函数里的值函数、Group By列表中的值函数,需要在聚合操作以前就计算完成,否则无法进行聚合操作,初始投影本质上是一个SelectOperator算子,只是用来计算一下聚合需要用到的表达式。
比如,标准SQL语句:INSERT OVERWRITE TABLE Result SELECTSUM(A+B),C FROM T GROUP BY C,对应生成的DAG如图4所示,图中第二个步骤也称为Init Projection,由于SUM(A+B)中的A+B是值表达式,因此需要先计算值表达式A+B的返回值;图中第三个步骤是做聚合运算,计算出SUM(A+B)的结果;图中第四个步骤也称为Final Projection,用于将用户最终需要的结果投影出来。
接下来,在上一步生成的DAG的基础上进行物理分析,生成物理查询计划。
物理分析的具体过程如下:先按照拓扑排序遍历上述DAG上的每一个逻辑算子,根据逻辑算子逐一生成对应的物理算子;最后,将生成的物理算子按照DAG对应的顺序组成物理查询计划;其中,当生成的物理算子为需要重新分区排序后才能运行的物理算子时,在该物理算子前加入一个Shuffle-Sort算子。
需要说明的是,由于逻辑分析后生成的DAG是一个类似Map/Reduce的编程框架,要让标准SQL语句运行在分布式文件系统HDFS上,还需要按照分布式系统编程框架来抽象出对应的物理算子,主要是用Shuffle-Sort、MergeJoin和MapJoin这三种物理算子对应替换DAG中的逻辑算子GBY(GroupByOperator)和JOIN(JoinOperator);其中,物理算子MergeJoin和MapJoin来替换逻辑算子JOIN(JoinOperator),物理算子Shuffle-Sort用于加在物理算子MergeJoin和物理算子MapJoin前面进行重新分区排序运算。
具体来说,Shuffle-Sort算子用来做数据的重新分区、排序的操作。当输入的标准SQL语句中需要进行Group By运算或Join运算时,必须把相同关键词的数据放到同一个进程节点上来执行,而这些相同关键词的数据可能是被打散在各个进程里的,这时就需要执行Shuffle-Sort算子。MergeJoin是最常见的一种Join算子,一般而言,MergeJoin算子是要求输入数据的虚表按照Join运算符的关键词分区并且排序的,所以MergeJoin算子一般出现在Shuffle-Sort算子之后。MapJoin算子的本意是Map-side Join,也就是说Join运算在Map/Reduce操作的Map阶段完成,当用户在做Join运算且已知有一个数据表的数据量很小时,就可以选择使用MapJoin算子;MapJoin算子会在每一个进程里都把小表中的数据加载到内存中,与大表分别做Join运算,这样可以减少一次Shuffle-Sort运算,实现提升执行效率的目的。
比如,根据图4中的逻辑查询计划生成的物理查询计划如图5所示;其中,图4中的聚合(GBY)算子在图5中分解为本地聚合(SemiHashAggregation)算子和流式聚合(StreamAggregation)算子。首先,先将数据传到SemiHash算子,在数据不全的时候先做一次聚合,以减少输出的数据量并保证数据的正确性;接下来,数据通过Shuffle-Sort算子重新进行分区和排序后,再传到StreamAgg算子;此时,生成的物理查询计划能够运行在分布式文件系统HDFS上,也就是说,物理查询计划就是够在Hadoop系统或NoSQL数据库运行的访问语句。
S104:从RDBMS系统或MPP系统或Hadoop系统或NoSQL数据库接收访问处理结果。
另外,在S102和S103中,根据标准SQL语句的要求,需要在RDBMS系统或MPP系统或Hadoop系统或NoSQL数据库上进行数据处理。此时,由于HBase数据库和HDFS文件系统的运算速度相对较慢,并且处理程序的复杂性较高,可能会造成HBase数据库和HDFS文件系统中的数据处理较慢,从而导致各数据库之间的运算速度差异较大;其中,HBase数据库的数据也保存在HDFS文件系统中。因此在处理涉及多个数据库的混合任务时,为了保持多种数据源的运算速度均衡,提高HDFS文件系统数据处理的速度,可以且不限有以下三种内存处理方法来解决这个问题。
第一种:当HDFS文件系统第一次处理数据时,先从计算机磁盘中读出数据;然后放入计算机内存中的弹性分布式数据集(RDD,Resilient DistributedDatasets)中;从而使得接下来的数据处理全部在计算机内存中进行。
因为在HDFS文件系统中,对于只读性的操作,可以直接运行在RDD中,由于计算机内存的处理速度100倍高于磁盘,因此内存计算往往能够带来10倍以上的处理性能提升;同时,RDD完全兼容HDFS文件系统上的Map和Reduce操作,并提供filter、sort等算子,能够提供更好的解决问题思路。
第二种:通过DAG记录整个内存计算的过程,且不断保存上述内存计算过程的快照。
需要说明的是,这种内存计算方法称为DAG调度,其中,逻辑查询计划就是一个DAG图。DAG调度的主要工作是安排所有并行的标准SQL语句有效运行,并当标准SQL语句运行出错时能够快速有效地恢复,另外,最重要的是实现shuffle操作的备份。
这样能够根据记录的路径重复进行计算,并且当内存计算出现错误时,可以在合适的时间点根据已保存的计算过程快照恢复计算,尽量避免重新从磁盘读写数据。由于内存计算中最大的问题就是容易出现错误,比如当出现内存不足的时候就必须放弃已完成的计算,待申请到足够内存后再重新开始计算。通过上述方法,能够减少因为内存计算出现错误带来的回退影响,在较大程度上节省时间,提高运算效率。
比如,一个RDD计算过程可以分解为DAG调度、任务调度和计算三个阶段。首先,DAG调度阶段将计算过程分成一个个连续且并行的阶段,以每个阶段为单位;接下来,申请到资源后进入任务调度阶段,任务调度管理各个集群的执行;当任务出现错误时,就在任务级别上进行任务重试,如果3次不能成功,就转到DAG级别进行阶段重试;同时,在shuffle和join操作的时候,需要不断保存快照,以防出现内存计算错误。
第三种:将HDFS文件系统中的文件装入计算机内存,通过在计算机内存中模拟HDFS文件系统的架构来处理数据,以实现在不同的计算平台、同一平台下的不同应用之间共享RDD;同时还能够尽量减少磁盘读写的次数,实现大幅提升计算速度。
例如,当标准SQL语句运行在分析场景下时,很多标准SQL语句需要对客户信息、清单记录、位置等数据进行访问,也就是说,很多分析都是针对相同的几个大文件进行处理。通过在内存中模拟HDFS文件系统的架构,将这些数据从HDFS文件系统的磁盘读入到内存中,将磁盘访问变成内存访问,这样既能够通过减少磁盘读写来提升访问速度,又可以减少在RDD中保存多份相同的数据而提高内存的利用率。
结合以上三个方法,能够提升HDFS文件系统处理数据的运算速度,实现平衡各个数据源的处理速度的效果。
下面以一个具体实例为例子来体现本发明的优势。
需要提取一个集团客户营销的目标客户,下面为提取条件:
目标用户:大学生(18-24岁)
目标设备:Android或者iOS操作系统用户
流量使用:月使用流量大于50M
关键词:萌、宅、腐、CP、手办、巨巨、周边、百合、漫威、复联
竞品名称:juju、次元社、Xcos、bilibili、ACG Art、高能贩、爱动漫等
其中,目标客户信息保存在RDBMS数据库的customer客户资料表,目标设备信息保存在HBase数据库的客户标签中,流量使用情况保存在MPP系统的user汇总表中,关键词保存在Hadoop系统或HDFS文件系统中,竞品名称也保存在Hadoop系统或HDFS文件系统中,没有重复的数据保存。
使用本发明中的技术方案,可以通过下述标准SQL语句进行各数据库的访问:
Select c.id,c.PhoneNo,c.Age,u.DataSum,t.imei
from customer as c,user as u,UserTag as t,dpi as d
where c.age<25and c.age>17
and u.DataSum>50
and c.id=u.id and c.id=t.UserID and c.id=d.id
and d.key in(萌、宅、腐、CP、手办、巨巨、周边、百合、漫威、复联)
and d.cp in(juju、次元社、Xcos、bilibili、ACG Art、高能贩、爱动漫)
具体地,通过上述标准SQL语句进行各数据库数据访问的过程为:
首先,确定上述标准SQL语句中表名和关键字的数据源;
当数据源是RDBMS系统或MPP系统时,依据步骤S102将上述标准SQL语句中源于RDBMS系统或MPP系统的表名和关键字所在的标准SQL语句分别送到的RDBMS系统或MPP系统进行处理;
当数据源是Hadoop系统或NoSQL数据库时,依据步骤S103将上述标准SQL语句中源于NoSQL数据库或或Hadoop系统的表名和关键字所在的标准SQL语句进行解析处理,将解析后的标准SQL语句运行在Hadoop系统或NoSQL数据库上;
最后,根据上述标准SQL语句的要求,当RDBMS系统或MPP系统或Hadoop系统或NoSQL数据库上处理完成后,从RDBMS系统或MPP系统或Hadoop系统或NoSQL数据库接收访问处理结果。
可见,使用本发明中的技术方案能够使用一句标准SQL语句完成对跨异构平台数据库和文件系统存储的数据的访问,实现了使用者透明地对跨异构平台的数据库和文件系统进行数据处理。
而在传统方法中,由于目标客户信息、目标设备信息、流量使用情况、关键字和竞品名称均放在不同的数据库中。首先,需要使用SQL语言访问MPP系统,使用Shell语言访问HBase数据库,使用Java语言访问Hadoop系统,获取各数据库中对应的数据;然后,将上一步骤得到的结果导入四张表中,再进行Join运算,才能获得最终目标客户名单。
由上述可知,相比传统方法,本发明中的技术方案不需要使用者掌握多种计算机语言,且解决问题的执行步骤也更加简单,提高了解决问题的效率。
实施例二
基于上述实施例相同的技术构思,参见图6,其示出了本发明实施例提供的一种数据库和文件系统的访问装置60,该装置60包括:确定单元201、传输单元202、生成单元203和接收单元204;其中,
确定单元201,用于根据元数据确定输入的标准结构化查询语言SQL语句中的表名和关键字对应的源数据库或源文件系统类型;
传输单元202,用于当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为关系数据库管理系统RDBMS或海量并行处理MPP系统时,将所述表名和关键字所在的标准SQL语句对应传输至RDBMS系统或MPP系统;
生成单元203,用于当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为分布式计算Hadoop系统或非关系型数据库NoSQL时,对所述表名和关键字进行解析,对应生成能够在Hadoop系统或NoSQL数据库运行的访问语句,并将所述能够在Hadoop系统或NoSQL数据库运行的访问语句发送至所述传输单元;
所述传输单元202,还用于将所述生成单元传来的所述能够在Hadoop系统或NoSQL数据库运行的访问语句对应传输至Hadoop系统或NoSQL数据库;
接收单元204,用于从RDBMS系统或MPP系统或Hadoop系统或NoSQL数据库接收访问处理结果。
在上述方案中,所述元数据用于表征标准结构化查询语言SQL语句中的表名和关键字与源数据库或源文件系统类型的对应关系;相应地,根据元数据确定输入的标准结构化查询语言SQL语句中的表名和关键字对应的源数据库或源文件系统类型,具体包括:先确定所述标准SQL语句中的关键字是否包含map、reduce、filter等传统SQL数据库不支持的字段;若包含,则确定所述标准SQL语句中的关键字的数据源类型为Hadoop系统或NoSQL数据库;若否,则将所述标准SQL语句中的表名和关键字与元数据进行比对,根据元数据中的数据来源字段确定表名和关键字的源数据库或源文件系统类型。
在上述方案中,所述生成单元203,具体用于按照预设的词法分析策略,将所述标准SQL语句转换成由<词素,属性>结构组成的句子;按照预设的语法分析策略,将所述标准SQL语句对应的<词素,属性>结构组成的句子生成对应的AST;按照预设的语义分析策略,输出所述AST对应的逻辑查询计划,并由逻辑查询计划生成物理查询计划;其中,物理查询计划就是能够在Hadoop系统或NoSQL数据库上运行的访问语句。
在上述方案中,所述生成单元203,具体用于根据标准SQL基本操作的顺序遍历所述AST,对所述AST的操作动作进行解析,当遇到标准SQL基本操作时就生成对应的逻辑算子,当遇到表达式时就调用对应的表达式分析并得到分析结果;进而生成由所述逻辑算子和所述表达式分析结果组成的DAG;按照拓扑排序遍历所述DAG上的每一个逻辑算子,根据逻辑算子逐一生成对应的物理算子;最后,将生成的物理算子按照DAG对应的顺序组成物理查询计划;其中,当生成的物理算子为需要重新分区排序后才能运行的物理算子时,在所述物理算子前加入一个Shuffle-Sort算子。
在上述方案中,所述生成单元203,还用于使用以下三种内存计算方法中的至少一种来提高Hadoop分布式文件系统HDFS处理数据的速度:
第一种:当HDFS文件系统第一次处理数据时,先从计算机磁盘中读出数据;然后放入计算机内存中的RDD中;从而使得接下来的数据处理就全部在计算机内存中进行;
第二种:通过DAG记录整个内存计算的过程,且不断保存所述内存计算过程的快照;
第三种:将HDFS文件系统中的文件装入计算机内存,通过在计算机内存中模拟HDFS文件系统的架构来处理数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1.一种数据库和文件系统的访问方法,其特征在于,所述方法包括:
根据元数据确定输入的标准结构化查询语言SQL语句中的表名和关键字对应的源数据库或源文件系统类型;
当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为关系数据库管理系统RDBMS或海量并行处理MPP系统时,将所述表名和关键字所在的标准SQL语句对应传输至RDBMS系统或MPP系统;
当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为分布式计算Hadoop系统或非关系型数据库NoSQL时,对所述表名和关键字进行解析,对应生成能够在Hadoop系统或NoSQL数据库运行的访问语句,并将所述能够在Hadoop系统或NoSQL数据库运行的访问语句对应地传输至Hadoop系统或NoSQL数据库;
从RDBMS系统或MPP系统或Hadoop系统或NoSQL数据库接收访问处理结果。
2.根据权利要求1所述的方法,其特征在于,所述元数据用于表征标准结构化查询语言SQL语句中的表名和关键字与源数据库或源文件系统类型的对应关系;
相应地,根据元数据确定输入的标准结构化查询语言SQL语句中的表名和关键字对应的源数据库或源文件系统类型,具体包括:
确定所述标准SQL语句中的关键字是否包含map、reduce、filter等传统SQL数据库不支持的字段;
若包含,则确定所述标准SQL语句中的关键字的数据源类型为Hadoop系统或NoSQL数据库;
若不包含,则将所述标准SQL语句中的表名和关键字与元数据进行比对,根据元数据中的数据来源字段确定表名和关键字的源数据库或源文件系统类型。
3.根据权利要求1所述的方法,其特征在于,所述当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为分布式计算Hadoop系统或非关系型数据库NoSQL时,对所述表名和关键字进行解析,对应生成能够在Hadoop系统或NoSQL数据库运行的访问语句,具体包括:
按照预设的词法分析策略,将所述标准SQL语句转换成由<词素,属性>结构组成的句子;
按照预设的语法分析策略,将所述标准SQL语句对应的<词素,属性>结构组成的句子生成对应的语法树AST;
按照预设的语义分析策略,输出所述AST对应的逻辑查询计划,并由逻辑查询计划生成物理查询计划;其中,物理查询计划就是能够在Hadoop系统或NoSQL数据库上运行的访问语句。
4.根据权利要求3所述的方法,其特征在于,所述按照预设的语义分析策略,输出所述AST对应的逻辑查询计划,并由逻辑查询计划生成物理查询计划,具体包括:
根据标准SQL基本操作的顺序遍历所述AST,对所述AST的操作动作进行解析,当遇到标准SQL基本操作时就生成对应的逻辑算子,当遇到表达式时就调用对应的表达式分析并得到分析结果,进而生成由所述逻辑算子和所述表达式分析结果组成的有向无环图DAG;
按照拓扑排序遍历所述DAG上的每一个逻辑算子,根据逻辑算子逐一生成对应的物理算子;最后,将生成的物理算子按照DAG对应的顺序组成物理查询计划;其中,当生成的物理算子为需要重新分区排序后才能运行的物理算子时,在所述物理算子前加入一个Shuffle-Sort算子。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
使用以下三种内存计算方法中的至少一种来提高分布式文件系统HDFS处理数据的速度:
第一种:当HDFS文件系统第一次处理数据时,先从计算机磁盘中读出数据;然后放入计算机内存中的弹性分布式数据集RDD中;从而使得后续的数据处理全部在计算机内存中进行;
第二种:通过DAG记录整个内存计算的过程,且不断保存所述内存计算过程的快照;
第三种:将HDFS文件系统中的文件装入计算机内存,通过在计算机内存中模拟HDFS文件系统的架构来处理数据。
6.一种数据库和文件系统的访问装置,其特征在于,包括:接收单元、传输单元、生成单元以及执行单元;其中,
所述确定单元,用于根据元数据确定输入的标准结构化查询语言SQL语句中的表名和关键字对应的源数据库或源文件系统的类型;
所述传输单元,用于当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为关系数据库管理系统RDBMS或海量并行处理MPP系统时,将所述表名和关键字所在的标准SQL语句对应传输至RDBMS系统或MPP系统;
所述生成单元,用于当标准SQL语句中的表名和关键字的源数据库或源文件系统类型为分布式计算Hadoop系统或非关系型数据库NoSQL时,对所述表名和关键字进行解析,对应生成能够在Hadoop系统或NoSQL数据库运行的访问语句,并将所述能够在Hadoop系统或NoSQL数据库运行的访问语句发送至所述传输单元;
所述传输单元,还用于将所述生成单元传来的所述能够在Hadoop系统或NoSQL数据库运行的访问语句对应传输至Hadoop系统或NoSQL数据库;
所述接收单元,用于从RDBMS系统或MPP系统或Hadoop系统或NoSQL数据库接收访问处理结果。
7.根据权利要求6所述的访问装置,其特征在于,所述元数据用于表征标准结构化查询语言SQL语句中的表名和关键字与源数据库或源文件系统类型的对应关系;
相应地,根据元数据确定输入的标准结构化查询语言SQL语句中的表名和关键字对应的源数据库或源文件系统类型,具体包括:
先确定所述标准SQL语句中的关键字是否包含map、reduce、filter等传统SQL数据库不支持的字段;
若包含,则确定所述标准SQL语句中的关键字的数据源类型为Hadoop系统或NoSQL数据库;
若不包含,则将所述标准SQL语句中的表名和关键字与元数据进行比对,根据元数据中的数据来源字段确定表名和关键字的源数据库或源文件系统类型。
8.根据权利要求6所述的访问装置,其特征在于,所述生成单元,具体用于
按照预设的词法分析策略,将所述标准SQL语句转换成由<词素,属性>结构组成的句子;
按照预设的语法分析策略,将所述标准SQL语句对应的<词素,属性>结构组成的句子生成对应的语法树AST;
按照预设的语义分析策略,输出所述AST对应的逻辑查询计划,并由逻辑查询计划生成物理查询计划;其中,物理查询计划就是能够在Hadoop系统或NoSQL数据库上运行的访问语句。
9.根据权利要求8所述的访问装置,其特征在于,所述生成单元,具体用于
根据标准SQL基本操作的顺序遍历所述AST,对所述AST的操作动作进行解析,当遇到标准SQL基本操作时就生成对应的逻辑算子,当遇到表达式时就调用对应的表达式分析并得到分析结果,进而生成由所述逻辑算子和所述表达式分析结果组成的有向无环图DAG;
按照拓扑排序遍历所述DAG上的每一个逻辑算子,根据逻辑算子逐一生成对应的物理算子,最后,将生成的物理算子按照DAG对应的顺序组成物理查询计划;其中,当生成的物理算子为需要重新分区排序后才能运行的物理算子时,在所述物理算子前加入一个Shuffle-Sort算子。
10.根据权利要求6所述的访问装置,其特征在于,所述生成单元,还用于
使用以下三种内存计算方法中的至少一种来提高分布式文件系统HDFS处理数据的速度:
第一种:当HDFS文件系统第一次处理数据时,先从计算机磁盘中读出数据;然后放入计算机内存中的弹性分布式数据集RDD中;从而使得后续数据处理全部在计算机内存中进行;
第二种:通过DAG记录整个内存计算的过程,且不断保存所述内存计算过程的快照;
第三种:将HDFS文件系统中的文件装入计算机内存,通过在计算机内存中模拟HDFS文件系统的架构来处理数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510966986.2A CN106897322B (zh) | 2015-12-21 | 2015-12-21 | 一种数据库和文件系统的访问方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510966986.2A CN106897322B (zh) | 2015-12-21 | 2015-12-21 | 一种数据库和文件系统的访问方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106897322A true CN106897322A (zh) | 2017-06-27 |
CN106897322B CN106897322B (zh) | 2019-10-29 |
Family
ID=59191436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510966986.2A Active CN106897322B (zh) | 2015-12-21 | 2015-12-21 | 一种数据库和文件系统的访问方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106897322B (zh) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329814A (zh) * | 2017-06-16 | 2017-11-07 | 电子科技大学 | 一种基于rdma的分布式内存数据库查询引擎系统 |
CN108052635A (zh) * | 2017-12-20 | 2018-05-18 | 江苏瑞中数据股份有限公司 | 一种异构数据源统一联合查询方法 |
CN108629035A (zh) * | 2018-05-10 | 2018-10-09 | 福建星瑞格软件有限公司 | 一种基于jdbc代理的异构数据库应用迁移方法 |
CN108920109A (zh) * | 2018-07-19 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种存储平台统一管理方法、装置、设备及系统 |
CN109376220A (zh) * | 2018-12-12 | 2019-02-22 | 北京字节跳动网络技术有限公司 | 用于获取信息的方法和装置 |
CN109408493A (zh) * | 2018-10-17 | 2019-03-01 | 成都四方伟业软件股份有限公司 | 一种数据源的迁移方法及系统 |
CN109460416A (zh) * | 2018-12-12 | 2019-03-12 | 成都四方伟业软件股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN109684421A (zh) * | 2018-12-25 | 2019-04-26 | 四川效率源信息安全技术股份有限公司 | 一种基于图论的雕复Oracle数据库文件的方法 |
CN110019518A (zh) * | 2017-11-22 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据处理方法及设备 |
CN110032604A (zh) * | 2019-02-02 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 数据存储装置、转译装置及数据库访问方法 |
CN110472127A (zh) * | 2019-07-17 | 2019-11-19 | 微梦创科网络科技(中国)有限公司 | 一种数据查询方法及系统 |
CN110532280A (zh) * | 2019-07-18 | 2019-12-03 | 阿里巴巴集团控股有限公司 | Sql语句可视化方法以及装置 |
WO2019237333A1 (en) * | 2018-06-15 | 2019-12-19 | Entit Software Llc | Converting database language statements between dialects |
CN110909016A (zh) * | 2019-10-12 | 2020-03-24 | 中国平安财产保险股份有限公司 | 基于数据库的重复关联检测方法、装置、设备及存储介质 |
CN111143403A (zh) * | 2019-12-10 | 2020-05-12 | 跬云(上海)信息科技有限公司 | Sql转换方法及装置、存储介质 |
CN111367975A (zh) * | 2018-12-25 | 2020-07-03 | 中国移动通信集团浙江有限公司 | 一种多协议数据转换处理方法及装置 |
CN111399843A (zh) * | 2020-03-11 | 2020-07-10 | 中国邮政储蓄银行股份有限公司 | 将sql运行信息映射到sql文件的方法、系统及电子设备 |
CN111625585A (zh) * | 2020-05-22 | 2020-09-04 | 中科驭数(北京)科技有限公司 | 硬件加速数据库的访问方法、装置、主机及存储介质 |
CN112434069A (zh) * | 2020-12-01 | 2021-03-02 | 天津市鑫联兴科技有限公司 | 一种多源异构数据库访问适配方法及适配器 |
CN112506888A (zh) * | 2020-12-29 | 2021-03-16 | 浪潮云信息技术股份公司 | 基于hdfs不同数据源的数据处理方法 |
CN112579701A (zh) * | 2020-12-15 | 2021-03-30 | 中国建设银行股份有限公司 | 数据处理方法和装置 |
CN112765197A (zh) * | 2020-12-30 | 2021-05-07 | 金蝶软件(中国)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN113032642A (zh) * | 2019-12-24 | 2021-06-25 | 医渡云(北京)技术有限公司 | 针对目标对象的数据处理方法、装置、介质及电子设备 |
CN114546981A (zh) * | 2020-11-24 | 2022-05-27 | 奇安信科技集团股份有限公司 | 数据库操作方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021875A (zh) * | 2007-03-22 | 2007-08-22 | 金蝶软件(中国)有限公司 | 面向对象的数据库访问方法及系统 |
CN102521254A (zh) * | 2011-11-17 | 2012-06-27 | 广东电网公司电力科学研究院 | 异构数据库的统一访问方法 |
CN102982075A (zh) * | 2012-10-30 | 2013-03-20 | 北京京东世纪贸易有限公司 | 支持访问异构数据源的系统和方法 |
CN104536987A (zh) * | 2014-12-08 | 2015-04-22 | 联动优势电子商务有限公司 | 一种查询数据的方法及装置 |
CN104915341A (zh) * | 2014-03-10 | 2015-09-16 | 中国科学院沈阳自动化研究所 | 可视化多数据库etl集成方法和系统 |
-
2015
- 2015-12-21 CN CN201510966986.2A patent/CN106897322B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021875A (zh) * | 2007-03-22 | 2007-08-22 | 金蝶软件(中国)有限公司 | 面向对象的数据库访问方法及系统 |
CN102521254A (zh) * | 2011-11-17 | 2012-06-27 | 广东电网公司电力科学研究院 | 异构数据库的统一访问方法 |
CN102982075A (zh) * | 2012-10-30 | 2013-03-20 | 北京京东世纪贸易有限公司 | 支持访问异构数据源的系统和方法 |
CN104915341A (zh) * | 2014-03-10 | 2015-09-16 | 中国科学院沈阳自动化研究所 | 可视化多数据库etl集成方法和系统 |
CN104536987A (zh) * | 2014-12-08 | 2015-04-22 | 联动优势电子商务有限公司 | 一种查询数据的方法及装置 |
Cited By (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329814B (zh) * | 2017-06-16 | 2020-05-26 | 电子科技大学 | 一种基于rdma的分布式内存数据库查询引擎系统 |
CN107329814A (zh) * | 2017-06-16 | 2017-11-07 | 电子科技大学 | 一种基于rdma的分布式内存数据库查询引擎系统 |
CN110019518A (zh) * | 2017-11-22 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据处理方法及设备 |
CN110019518B (zh) * | 2017-11-22 | 2023-03-31 | 阿里巴巴集团控股有限公司 | 数据处理方法及设备 |
CN108052635A (zh) * | 2017-12-20 | 2018-05-18 | 江苏瑞中数据股份有限公司 | 一种异构数据源统一联合查询方法 |
CN108629035A (zh) * | 2018-05-10 | 2018-10-09 | 福建星瑞格软件有限公司 | 一种基于jdbc代理的异构数据库应用迁移方法 |
CN108629035B (zh) * | 2018-05-10 | 2022-05-27 | 福建星瑞格软件有限公司 | 一种基于jdbc代理的异构数据库应用迁移方法 |
WO2019237333A1 (en) * | 2018-06-15 | 2019-12-19 | Entit Software Llc | Converting database language statements between dialects |
CN108920109A (zh) * | 2018-07-19 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种存储平台统一管理方法、装置、设备及系统 |
CN109408493A (zh) * | 2018-10-17 | 2019-03-01 | 成都四方伟业软件股份有限公司 | 一种数据源的迁移方法及系统 |
CN109460416A (zh) * | 2018-12-12 | 2019-03-12 | 成都四方伟业软件股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN109460416B (zh) * | 2018-12-12 | 2020-02-04 | 成都四方伟业软件股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN109376220A (zh) * | 2018-12-12 | 2019-02-22 | 北京字节跳动网络技术有限公司 | 用于获取信息的方法和装置 |
CN109684421A (zh) * | 2018-12-25 | 2019-04-26 | 四川效率源信息安全技术股份有限公司 | 一种基于图论的雕复Oracle数据库文件的方法 |
CN111367975B (zh) * | 2018-12-25 | 2023-11-03 | 中国移动通信集团浙江有限公司 | 一种多协议数据转换处理方法及装置 |
CN109684421B (zh) * | 2018-12-25 | 2023-05-02 | 四川效率源信息安全技术股份有限公司 | 一种基于图论的雕复Oracle数据库文件的方法 |
CN111367975A (zh) * | 2018-12-25 | 2020-07-03 | 中国移动通信集团浙江有限公司 | 一种多协议数据转换处理方法及装置 |
US11226961B2 (en) | 2019-02-02 | 2022-01-18 | Beijing Oceanbase Technology Co., Ltd. | Data storage apparatus, translation apparatus, and database access method |
CN110032604B (zh) * | 2019-02-02 | 2021-12-07 | 北京奥星贝斯科技有限公司 | 数据存储装置、转译装置及数据库访问方法 |
CN110032604A (zh) * | 2019-02-02 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 数据存储装置、转译装置及数据库访问方法 |
US11797533B2 (en) | 2019-02-02 | 2023-10-24 | Beijing Oceanbase Technology Co., Ltd. | Data storage apparatus, translation apparatus, and database access method |
CN110472127A (zh) * | 2019-07-17 | 2019-11-19 | 微梦创科网络科技(中国)有限公司 | 一种数据查询方法及系统 |
CN110532280B (zh) * | 2019-07-18 | 2023-06-20 | 创新先进技术有限公司 | Sql语句可视化方法以及装置 |
CN110532280A (zh) * | 2019-07-18 | 2019-12-03 | 阿里巴巴集团控股有限公司 | Sql语句可视化方法以及装置 |
CN110909016A (zh) * | 2019-10-12 | 2020-03-24 | 中国平安财产保险股份有限公司 | 基于数据库的重复关联检测方法、装置、设备及存储介质 |
CN110909016B (zh) * | 2019-10-12 | 2023-06-16 | 中国平安财产保险股份有限公司 | 基于数据库的重复关联检测方法、装置、设备及存储介质 |
CN111143403A (zh) * | 2019-12-10 | 2020-05-12 | 跬云(上海)信息科技有限公司 | Sql转换方法及装置、存储介质 |
CN113032642A (zh) * | 2019-12-24 | 2021-06-25 | 医渡云(北京)技术有限公司 | 针对目标对象的数据处理方法、装置、介质及电子设备 |
CN113032642B (zh) * | 2019-12-24 | 2024-02-09 | 医渡云(北京)技术有限公司 | 针对目标对象的数据处理方法、装置、介质及电子设备 |
CN111399843B (zh) * | 2020-03-11 | 2023-08-01 | 中国邮政储蓄银行股份有限公司 | 将sql运行信息映射到sql文件的方法、系统及电子设备 |
CN111399843A (zh) * | 2020-03-11 | 2020-07-10 | 中国邮政储蓄银行股份有限公司 | 将sql运行信息映射到sql文件的方法、系统及电子设备 |
CN111625585B (zh) * | 2020-05-22 | 2021-08-31 | 中科驭数(北京)科技有限公司 | 硬件加速数据库的访问方法、装置、主机及存储介质 |
CN111625585A (zh) * | 2020-05-22 | 2020-09-04 | 中科驭数(北京)科技有限公司 | 硬件加速数据库的访问方法、装置、主机及存储介质 |
CN114546981A (zh) * | 2020-11-24 | 2022-05-27 | 奇安信科技集团股份有限公司 | 数据库操作方法和装置 |
CN112434069A (zh) * | 2020-12-01 | 2021-03-02 | 天津市鑫联兴科技有限公司 | 一种多源异构数据库访问适配方法及适配器 |
CN112579701A (zh) * | 2020-12-15 | 2021-03-30 | 中国建设银行股份有限公司 | 数据处理方法和装置 |
CN112506888A (zh) * | 2020-12-29 | 2021-03-16 | 浪潮云信息技术股份公司 | 基于hdfs不同数据源的数据处理方法 |
CN112765197A (zh) * | 2020-12-30 | 2021-05-07 | 金蝶软件(中国)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN112765197B (zh) * | 2020-12-30 | 2024-04-30 | 金蝶软件(中国)有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106897322B (zh) | 2019-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106897322B (zh) | 一种数据库和文件系统的访问方法和装置 | |
JP7130600B2 (ja) | ファーストクラスデータベース要素としての半構造データの実装 | |
CN110908997B (zh) | 数据血缘构建方法、装置、服务器及可读存储介质 | |
US11068439B2 (en) | Unsupervised method for enriching RDF data sources from denormalized data | |
JP5298117B2 (ja) | 分散コンピューティングにおけるデータマージング | |
CN108694195B (zh) | 一种分布式数据仓库的管理方法及系统 | |
US8572575B2 (en) | Debugging a map reduce application on a cluster | |
US8468120B2 (en) | Systems and methods for tracking and reporting provenance of data used in a massively distributed analytics cloud | |
US9659108B2 (en) | Pluggable architecture for embedding analytics in clustered in-memory databases | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
US20180181613A1 (en) | Natural language query generation | |
JP5791149B2 (ja) | データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム | |
US20190361999A1 (en) | Data analysis over the combination of relational and big data | |
US9128962B2 (en) | View based table replacement for applications | |
US11386084B2 (en) | Systems and methods for deriving database semantic information using artificial intelligence | |
US10678789B2 (en) | Batch data query method and apparatus | |
US10970196B1 (en) | Semantic-aware fuzz-based functional testing | |
CN112181951B (zh) | 一种异构数据库数据迁移方法、装置及设备 | |
US11222036B1 (en) | Data warehouse access reporting | |
Chullipparambil | Big data analytics using Hadoop tools | |
Antony et al. | Professional Hadoop | |
CN113407378A (zh) | 一种分布式数据库的分片信息备份方法及装置 | |
CN113268483A (zh) | 请求处理方法和装置、电子设备和存储介质 | |
CN112749189A (zh) | 数据查询方法及装置 | |
US12079179B2 (en) | Systems, methods, and media for accessing derivative properties from a post relational database utilizing a logical schema instruction that includes a base object identifier |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |