CN104361099A - 一种面向异构存储的适配装置 - Google Patents
一种面向异构存储的适配装置 Download PDFInfo
- Publication number
- CN104361099A CN104361099A CN201410674714.0A CN201410674714A CN104361099A CN 104361099 A CN104361099 A CN 104361099A CN 201410674714 A CN201410674714 A CN 201410674714A CN 104361099 A CN104361099 A CN 104361099A
- Authority
- CN
- China
- Prior art keywords
- data
- index
- database
- module
- statement
- 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
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/25—Integrating or interfacing systems involving database management systems
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- 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/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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种面向异构存储的适配装置。统一QL解析模块,用于从客户端接收统一QL语句,并对统一QL语句进行解析,其中当解析结果为索引CRUD操作请求时,将索引CRUD操作请求发送到索引模块;当解析结果为数据转换请求时,将数据转换请求发送到数据模型模块;当解析结果为数据CRUD操作请求时,将数据CRUD操作请求发送到具体数据库QL模块。具体数据库QL模块,用于保存数据库标识与数据库类型之间的对应关系;根据索引模块发送的索引关键字、索引操作命令和数据库标识,生成索引操作QL语句;根据数据模型模块发送来的数据关键字、转换前数据库标识和转换后数据库标识,生成数据读取QL语句以及数据存储QL语句。
Description
技术领域
本发明实施方式属于移动应用技术领域,特别是一种面向异构存储的适配装置。
背景技术
在很多应用领域中,如果仅使用单一存储模型的数据库(如行数据库、列数据库或图数据库)是不足以应付异构、海量数据的存储需求的。传统上,行数据库已广泛地应用在Web网站系统、日志记录系统以及嵌入式系统中。但是,随着互联网Web2.0网站的兴起,关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站时显得力不从心,暴露了很多难以克服的问题。因为互联网应用对高并发、低延时的需求已经放在了首位,如果使用数据库纵向扩展的方式,则需要很大的服务器,采购和维护成本很高,并且单台服务器配置有限,这就要求数据库能适用于集群环境,能横向扩展。并且,从业务角度看,数据一致性可以不放在首位,能够容忍数据在短时间内不一致。
在此情况下,NoSQL数据库孕育而生,其中包括了列数据库和图数据库。列数据库擅长高效的数据插入和查询功能,并具有较高的压缩比。图数据库的领域对象模型是图结构,因此对于诸如社交关系、地图数据或基因信息等这类数据,使用图形数据库进行存储是最适合的,能够使得模型转换代价小、实现简单且降低后期维护成本。
由于目前针对行、列、图这三类数据库的底层存储结构尚无统一标准,因而也不存在有类似关系数据库的查询语言SQL那样的可以统一地进行异构存储数据库执行CRDU操作的语言或技术标准。
现有技术中针对数据分析层面的类似技术——如Hive,impala,InfoBright虽然可以解决采集后数据行列混合存储和压缩的问题,但是它们都不涉及图存储模型与行、列存储模型的混合封装与适配功能,并且不支持对客户端透明的对这三类存储模型的数据库间进行数据转换、索引同步等功能。
因此,大型应用若需使用不同存储模型的异构数据库,则需要在编写高层应用业务逻辑的同时,兼顾到底层这些不同数据库所带来的差异。在数据量徒增、数据类型多变的情况下,随着所采用底层数据库的类型、个数增加,这对应用的编写而言无疑是一件及其繁杂、琐碎的事情。进一步地,这也会导致整个应用的代码越来越难以修改、管理以及维护。
发明内容
本发明实施方式提出一种面向异构存储的适配装置,向客户端隐藏了底层具体数据库在使用过程中带来的差异,从而降低客户端编程难度。
本发明实施方式的技术方案如下:
一种面向异构存储的适配装置,该装置包括:
统一QL解析模块,用于从客户端接收统一QL语句,并对统一QL语句进行解析,其中当解析结果为索引CRUD操作请求时,将索引CRUD操作请求发送到索引模块;当解析结果为数据转换请求时,将数据转换请求发送到数据模型模块;当解析结果为数据CRUD操作请求时,将数据CRUD操作请求发送到具体数据库QL模块;
统计模块,用于从客户端接收统一QL语句,根据预先设定的提取规则从统一QL语句中获取索引关键字,生成关于索引关键字的索引CRUD操作请求,并将索引CRUD操作请求发送到索引模块;
索引模块,用于从统一QL解析模块和统计模块发送来的索引CRUD操作请求中提取索引关键字、索引操作命令和数据库标识,并将索引关键字、索引操作命令和数据库标识发送到具体数据库QL模块;
数据模型模块,用于从数据转换请求中提取数据关键字、转换前数据库标识和转换后数据库标识,并将数据关键字、转换前数据库标识和转换后数据库标识发送到具体数据库QL模块;
具体数据库QL模块,用于保存数据库标识与数据库类型之间的对应关系;根据索引模块发送的索引关键字、索引操作命令和数据库标识,生成与对应于数据库标识的数据库类型相符合的索引操作QL语句;根据数据模型模块发送来的数据关键字、转换前数据库标识和转换后数据库标识,生成与转换前数据库标识相对应的数据库类型相符合的数据读取QL语句,对读取的数据执行数据转换,以及生成与转换后数据库标识相对应的数据库类型相符合的数据存储QL语句;从统一QL解析模块发送来的数据CRUD操作请求中解析出数据关键字、数据CRUD操作命令和数据库标识,生成与数据库标识相对应的数据库类型相符合的数据CRUD操作QL语句。
优选地,所述索引CRUD操作请求包括:添加索引模块、查询索引、更新索引或删除索引。
优选地,所述数据库类型包括行数据库、列数据库和图数据库。
优选地,还包括日志模块,用于记录数据转换操作日志、索引CRUD操作日志和数据CRUD操作日志。
从上述技术方案可以看出,本发明了提出一种面向异构存储适配装置。该装置能够通过为这三类数据库制订统一的结构标准,然后进一步发布统一的访问原语来实现客户端的调用。它向客户端隐藏了底层具体数据库在使用过程中带来的差异,进而显著降低客户端编程难度。
附图说明
图1为本发明面向异构存储的适配装置结构图;
图2为本发明的数据库封装层的系统级架构图;
图3为行数据存储操作示范性流程图;
图4为列数据存储操作示范性流程图;
图5为图数据存储操作示范性流程图;
图6为行数据转换为列数据操作示范性流程图;
图7为列数据转换为行数据操作示范性流程图;
图8为图数据转换为列数据操作示范性流程图;
图9为客户端主动发起的索引CRUD操作示范性流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
针对上述缺陷及需求,本发明提出一种面向异构存储适配装置。该装置能够通过为这三类数据库制订统一的结构标准,然后进一步发布统一的访问原语来实现客户端的调用。它向客户端隐藏了底层具体数据库在使用过程中带来的差异,进而大大降低客户端编程难度。
图1为本发明面向异构存储的适配装置结构图。如图1所示,包括:
统一QL解析模块,用于从客户端接收统一QL语句,并对统一QL语句进行解析,其中当解析结果为索引CRUD操作请求时,将索引CRUD操作请求发送到索引模块;当解析结果为数据转换请求时,将数据转换请求发送到数据模型模块;当解析结果为数据CRUD操作请求时,将数据CRUD操作请求发送到具体数据库QL模块;
统计模块,用于从客户端接收统一QL语句,根据预先设定的提取规则从统一QL语句中获取索引关键字,生成关于索引关键字的索引CRUD操作请求,并将索引CRUD操作请求发送到索引模块;
索引模块,用于从统一QL解析模块和统计模块发送来的索引CRUD操作请求中提取索引关键字、索引操作命令和数据库标识,并将索引关键字、索引操作命令和数据库标识发送到具体数据库QL模块;
数据模型模块,用于从数据转换请求中提取数据关键字、转换前数据库标识和转换后数据库标识,并将数据关键字、转换前数据库标识和转换后数据库标识发送到具体数据库QL模块;
具体数据库QL模块,用于保存数据库标识与数据库类型之间的对应关系;根据索引模块发送的索引关键字、索引操作命令和数据库标识,生成与对应于数据库标识的数据库类型相符合的索引操作QL语句,该索引操作QL语句可以被对应于数据库标识的数据库所执行,用于针对索引关键字执行该索引操作命令;根据数据模型模块发送来的数据关键字、转换前数据库标识和转换后数据库标识,生成与转换前数据库标识相对应的数据库类型相符合的数据读取QL语句,数据读取QL语句可以被转换前数据库标识相对应的数据库所执行,用于从转换前数据库读取数据;具体数据库QL模块对读取的数据执行数据转换,以将数据转换为与转换后数据库标识相对应的数据库类型相符合的数据;而且具体数据库QL模块生成与转换后数据库标识相对应的数据库类型相符合的数据存储QL语句,该数据存储QL语句可以被转换后数据库标识相对应的数据库所执行,用于将转换后的数据存储到与转换后数据库标识相对应的数据库;具体数据库QL模块从统一QL解析模块发送来的数据CRUD操作请求中解析出数据关键字、数据CRUD操作命令和数据库标识,生成与数据库标识相对应的数据库类型相符合的数据CRUD操作QL语句。
在一个实施方式中:索引CRUD操作请求包括:添加索引、查询索引、更新索引或删除索引。在一个实施方式中:数据库类型包括:行数据库、列数据库或图数据库。在一个实施方式中:该装置还包括日志模块,用于记录数据转换操作日志、索引CRUD操作日志和数据CRUD操作日志。日志模块负责系统中所有主要功能操作的日志记录任务。它包含两个子模块:读日志模块和写日志模块,分别负责系统中读/写日志的相关功能。具体而言,日志模块记录客户端发出的所有统一QL语句调用。这包括了如下几类日志信息:数据CRUD操作日志、索引CRUD操作日志、数据转换操作日志)尤其值得一提的是,日志模块的日志数据会被统计模块周期性地读出,目的是用于统计模块内部的对系统要自动为客户端添加/更新/删除索引的入选关键字段提供输入。
下面更详细地描述本发明实施方式。
综合如上需求,试考虑如下实际场景:某大型web社交网站提供用户注册并为用户保存特定的用户信息、提供一定容量的免费网盘空间以及管理用户的社交关系,并需要定时对这些用户数据进行分析以挖掘有用信息。
对行数据库、列数据库和图数据库这三类数据库信息的存储:
(1)、由于行数据库以行相关的存储体系架构进行空间分配,具有写入效率高、能够提供数据完整性等优点,故用户信息这一类结构统一的、可能随时会更新的数据适用于采用行数据库来进行存储,以便于用户随时修改、删除或更新信息等这些实时操作的效率提升;
(2)、由于列数据库中的文档型数据库模式灵活,可以方便地存储用户的保存的二进制文件数据,并在需要时读出供用户下载;
(3)、由于图数据库具有处理社交关系方面的优势,故当系统需要进行社交模型转换并根据这些数据挖掘用户潜在关系的时候,采用图数据可使得操作得到简化;
另外,用户可能需要对这三类数据进行转换(必要时同步更新索引):
(1)、由于列数据库以列相关存储架构进行数据存储,所以其在读取过程中没有冗余,主要适合与批量数据处理和即席查询。故当系统需要对海量用户数据进行多次读出进而实施过滤、压缩或者分析等大数据处理时,为避免采用传统行数据库存储会带来及其耗时的全表查询操作,系统应将行数据库的内容定时(或由调用者设定转换时间点以及时间间隔)转换并存储至列数据库(比如选择凌晨用户较少使用系统功能的时间段),再由列数据库读出并进行后台的海量数据处理,可减少读取数据冗余并使读取效率提升;
(2)、当数据比较大时,可将行数据转换成列数据进行存储,因为行数据库对数据几乎不压缩,而列数据库在数据压缩方面具有一定优势,具有高效的压缩率,不仅节省储存空间也节省计算内存和CPU,减轻大约60%的行数据库负载,腾出更多的负载,避免为扩展关系数据存储的复杂主/主或主/从战略而开销过大。
(3)、由于行数据库在表处理方面的优势,所以可以根据调用者的需求,将列数据转换并存储至行数据库中,以进行适当的表操作,适合需要一定数据完整性的场合;
(4)、由于常常需要对图数据库中的海量数据进行的MapReduce操作,其中的Reduce阶段结束后,将结果写入GFS/HDFS文件系统中,完成了单源最短路径的一轮计算。而为了能够获得最终的结果,还需要按照上述方式反复迭代,以本轮Reduce输出作为下一轮Map阶段的输入需要多次将中间结果往文件系统输出,这会严重影响系统效率。这是为何Mapreduce框架不适宜做图应用的主要原因。所以此时我们需要将图数据进行转换为列数据,利用列数据利于做大数据处理的特征来处理这些海量图数据。
由于目前行、列、图数据库的结构尚无统一标准,因而不会有类似关系数据库的查询语言SQL那样的可以统一地进行数据库CRDU操作的语言。本专利发明的数据库封装层能够对项目的功能或指标进行适当的取舍从而综合使用行、列、图数据库来实现一个虽不能达到完美效果但能解决用户问题的方案。将三类数据库混合使用,发挥其各自优势,共同使项目性能、效率达到更优。本发明的数据库封装层将数据库相关细节向调用者隐藏,为这三类数据库制订统一的结构标准,然后进一步发布统一的访问原语来实现客户端的调用
图2为本发明的数据库封装层的系统级架构图,静态地展示了系统的一级模块之间的协作关系,以及它们之间传递的数据流。由图2可知,该数据库封装层向上接受客户端应用程序的调用,向下与具体的行存储数据库、列存储数据库或者图存储数据库进行交互,完成客户端的具体功能请求。系统与客户端之间采用本数据库封装层定义的统一查询语言(下称“统一QL语言”)进行交互,与具体数据库之间则采用与具体数据相关的查询语言(下称“具体数据库QL语言”)进行交互。图2中的各个小方框代表系统的各个一级模块,它们之间相互交换的数据流通过小箭头给出。从图2中可知,按照功能独立的原则,系统可以划分为如下9个一级模块,分别为:统一QL解析模块、索引模块、数据模型模块、数据压缩模块、数据存储模块、具体数据库QL模块数据、可视化模块、统计模块以及日志模块。这些功能独立的模块之间相互配合、共同协作,完成行、列、图数据库混合存储的系统功能。具体而言,本数据库封装层通过向上层应用隐藏并封装其下层三大类数据库——行存储数据库、列存储数据库以及图存储数据库的实现细节,使得调用者能够在不关心其所采用的具体数据库的存储模型(行存储、列存储或者图存储)的情况下,不必去采用具体数据库QL语言,取而代之以统一QL语言,来向本数据库封装层发出各种调用。在当今业务数据类型繁杂、多变的情形下,本数据库封装层的发明,能够使得高层应用可以更加专注于业务逻辑的开发,从而极大地简化及降低了采用不同存储模型的底层数据库所带来的前期的编程复杂度以及后期的数据库运维成本。所以,本发明的出现,是在当今程序开发中数据量猛增、数据类型多变的情况下是极为有意义的。
下面具体描述各个一级模块。
统一QL解析模块可以位于整个系统的顶部,主要负责与客户端程序交互,接收客户端发出的统一QL调用语句,并进行语句功能解析,将其按照功能划分为三类:(1)数据CRUD操作;(2)数据转换操作;(3)索引CRUD操作。并根据这些请求类型的不同,分别将这三类的请求转发至具体数据库QL模块、数据模型模块和索引模块,以将这些不同的功能委派至不同的系统模块中实现。根据客户端的操作对象不同,可以将这些调用的操作分为两大类:对对数据的操作以及对索引的操作。其中,对数据的操作分为数据CRUD操作和数据转换操作,对索引的操作即指索引CRUD操作。相应的,可以上述的根据操作类型划分依据,可以将日志数据类型划分为三类,分别为:数据CRUD操作日志、数据转换操作日志以及索引CRUD操作日志。统一QL解析模块的输入为:客户端发出的统一QL语言;输出为:(a)将输入按照上述三类进行功能划分之后,委派统一QL语句至相应系统一级模块;(b)转发原客户端调用语句至统计模块、日志模块。
索引模块负责本数据库封装层中所有与索引CRUD操作相关的功能实现。根据其输入,可以将这些索引相关操作功能分为两类:1.客户端发出的对索引的CRUD操作;2.根据统计模块的输出,本数据库封装层将自动为客户端向底层数据库中适当添加适当索引,以在客户端发起数据CRUD操作时能够减少响应时延。据此为待增加索引的关键字段生成具体数据库QL语句,并发送至具体数据库QL模块。
相应地,索引模块输入包括:a)索引CRUD操作请求;b)入选的关键字;c)数据转换操作引发的必要的索引更新请求。索引模块输出包括:a)索引CRUD操作相关信息;b)索引CRUD操作日志信息;c)索引CRUD操作结果。
数据模型模块主要负责接收客户端发出的进行数据转换操作的统一QL调用语句,并根据转换类型进行转换,同时添加/更新/删除必要的索引。数据模型模块的输入包括:a)数据转换请求;b)索引添加/更新/删除结果;c)未压缩的待转换数据;d)独处的数据存储信息。数据模型模块的输出包括:a)必要的索引添加/更新/删除操作请求;b)未压缩的转换数据;c)要读取数据的相关信息;d)要存储数据的相关信息;e)数据转换操作日志信息。
数据压缩模块负责系统中数据压缩/解压缩相关的功能。数据压缩模块的输入包括:a)未压缩的待转换数据;b)未压缩的转换数据。数据压缩模块的输出包括:a)压缩的待转换数据;b)压缩的转换数据。
统一QL解析模块将客户端发起的属于索引CRUD操作类型的统一QL语句,根据索引操作请求的具体类型——更新索引、查询索引、添加索引、删除索引而发送至索引模块中相应的不同子模块——索引添加模块、索引查询模块、索引更新模块、索引删除模块。
索引模块中还具有内部统一索引模块,用于维护了一张全局唯一的索引表,该表保存了整个数据库封装层的全部索引,并记录了各个索引的详细信息,以供客户端操作。其中索引查询模块向内部统一索引模块查询索引,而索引添加/更新/删除模块则更新内部统一索引表。内部统一索引模块接收到索引查询模块发起的索引查询请求之后,查表得出待查询索引的具体信息,并将这些具体信息发送至具体数据库QL模块,以供其生成与底层具体数据库相关的索引查询语句。待查询结果从底层数据库返回后,数据可视化模块会将结果进行可视化处理并返回至客户端。而索引添加/更新/删除模块更新内部统一索引模块之后,内部统一索引模块也会在添加/更新/删除其内部统一索引表相关条目之后将要添加/更新/删除的索引信息发送至具体数据库QL模块,以供其生成与底层具体数据库相关的索引添加/更新/删除语句。同样地,这些操作的结果从底层数据库返回后,数据可视化模块会将结果进行可视化处理并返回至客户端(图中未示出)。
数据模型模块在进行相应数据转换操作之后,将必要的索引添加/更新/删除操作信息发送至内部统一索引模块,它会在添加/更新/删除其内部统一索引表相关条目之后将要添加/更新/删除的索引信息发送至具体数据库QL模块,以供其生成与底层具体数据库相关的索引添加/更新/删除语句。这些操作的结果从底层数据库返回后,该模块将结果发送至数据转换模块。内部统一索引模块会将它所完成的索引CRUD操作组成相关日志信息,发送至日志模块。
统一QL解析模块将数据转换操作类型的请求语句发送至数据读取模块。该模块在接受到数据转换请求之后,判定转换类型(行数据转换列数据、列数据转换行数据或者图数据转换列数据),并将类型发送至数据转换模块。同时,该模块解析得出待转换数据的相关信息,并将这些要读取的数据信息发送至具体数据库QL模块,以供其生成具体数据库的数据查询语句。
当具体数据库QL模块将该数据查询语句发送至具体数据库进行执行之后,具体数据库查询出来的待转换数据的相关信息将发送至数据转换模块。在获取了原始数据之后,数据转换模块开始对数据按照客户端指定的类型进行存储模型的转换。特别地,当客户端指定转换类型为行存储转换列存储且客户端指定要求将列存储信息进行压缩时,数据转换模块将把转换后的数据发送至数据压缩模块进行压缩。压缩后的数据将写入数据存储模块(可采用本地文件系统或特定的分布式文件系统)。同时,数据转换模块把未压缩的待存储数据信息或数据压缩模块把已压缩的待存储数据信息发送至具体数据库QL模块。于是,具体数据库QL模块生成可执行的具体数据库QL语句并发送执行,将转换后的数据存储到指定类型的数据库中。具体数据库的存储操作结果会经由数据可视化模块而返回至客户端。
在数据转换过程中,涉及到的索引添加/更新/删除操作,将由数据转换模块发送至索引模块。索引模块将操作结果返回至数据转换模块后,数据转换模块将数据转换操作的相关日志信息写入日志模块。
数据存储模块负责数据存储过程中与文件系统进行交互的功能。数据存储模块的输入包括:a)未压缩的转换数据;b)压缩的转换数据;c)具体数据库的存储文件。数据存储模块的输出包括:具体数据库的存储文件。
具体数据库QL模块首先根据其余系统一级模块的指示生成与底层特定的具体数据库相关的QL语句,或者在系统的统一QL语句与具体数据库QL语句之间进行转换。然后,读取必要的具体数据库的存储文件。最后,连接具体数据库并将可执行的具体数据库QL语句发送执行。具体数据库QL模块的输入包括:a)数据CRUD操作请求;b)索引CRUD操作请求;c)具体数据库的存储文件;d)要读取数据的相关信息;e)要存储数据的相关信息。具体数据库QL模块的输出包括:可执行的具体数据库QL语句。
数据可视化模块负责将其接收到的非可视化结果进行可视化处理后返回至客户端,其输入为非可视化结果;输出为可视化结果。
统计模块可以负责系统中所有与关键字段统计相关的功能。具体而言,统计模块从QL统计模块中的输出(统一QL语句)以及日志模块的输出(日志数据)这两类输入源中获取关键字段,并将这些关键字段送入关键字段筛选模块中进行筛选,最后将入选的关键字送入索引模块进行索引的添加/更新/删除操作。其中,入选条件、筛选条件必须符合一定的条件。其输入:a)统一QL语句;b)日志数据;其输出包括:a)入选的关键字。
具体地,统计模块负责系统内关于索引CRUD操作请求(添加/更新/删除)的索引关键字的入选与输出。它包含三个二级子模块——QL统计模块、关键字段统计模块和关键字段筛选模块。具体而言,它从:1.QL统计模块中的输出(统一QL语句);2.日志模块的输出(日志数据)这两类输入源中获取关键字段,并将这些关键字段送入关键字段筛选模块中进行筛选,最后将入选的关键字送入索引模块进行索引的添加/更新/删除操作。示范性地,入选条件简单罗列如下:1.在经常需要搜索的列上创建索引,可以加快搜索的速度;2.在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;3.在经常用在连接的列上创建索引,这些列主要是一些外键,可以加快连接的速度;4.在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;5.在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。示范性地,筛选条件简单罗列如下:1.对于在查询中很少使用或者参考的列不创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。2.对于只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。3.对于那些定义为text,image和bit数据类型的列不增加索引。这是因为,这些列的数据量要么相当大,要么取值很少,不利于使用索引。4.当修改性能远远大于检索性能时,不创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改操作远远多于检索操作时,不应该创建索引。5.超过300行的数据表不创建索引。6.聚集索引字段不能过多,最好是单字段,而且列值唯一。7.在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。8.对于数据字段特别多的表,而且这些字段有很多出现在where中,不宜在每一个字段上建立单独的索引,而是创建组合索引。组合索引中,列的顺序是很讲究的,越是选择性大而且唯一的列要放在前面,这对查询优化器优化有很大的帮助。9.不宜在那些大量重复的列值上建立索引,比如在一个true,false的列上建索引,是毫无意义的。10.如果查询的字段不多,可以考虑建立覆盖索引,将字段都包含在索引里,可以仅仅访问索引就能查询到所有数据,而不用表扫描。
日志模块负责系统中所有与日至相关的功能,包括读日志功能和写日志功能。其输入包括:a)统一QL语句;b)数据转换操作日志信息;c)索引CRUD操作日志信息。其输出包括志数据。
现针对本发明中提出了几类典型应用场景,分别给出它们所涉及到的系统一级模块之间的消息交互序列图。更加详细的系统子模块之间的消息交互序列图将在下文给出。
对于行数据存储操作,图3为行数据存储操作示范性流程图。该流程包括:
1.客户端向统一QL解析模块发出统一QL语句请求,指明操作类型为数据存储、存储模型为行存储模型;2.统一QL解析模块收到客户端发送的该统一QL语句之后,向统计模块发送该语句;3.统一QL解析模块收到客户端发送的该统一QL语句之后,向日志模块发送该语句;4.统一QL解析模块收到客户端发送的该统一QL语句之后,对该语句进行功能解析,判定其操作类型为数据CRUD操作之后,将该请求转发至具体数据库QL模块;5.具体数据库QL模块收到统一QL语句之后,根绝客户端指定的数据库类型为行数据库,生成与该行数据库对应的可执行QL语句,连接该行数据库之后并执行该语句;6.行数据库将操作结果返回至数据可视化模块;7.数据可视化模块将具体的行数据库返回的操作结果可视化处理之后,发送至客户端。
对于列数据存储操作,图4为列数据存储操作示范性流程图。该流程包括:1.客户端向统一QL解析模块发出统一QL语句请求,指明操作类型为数据存储、存储模型为列存储模型;2.统一QL解析模块收到客户端发送的该统一QL语句之后,向统计模块发送该语句;3.统一QL解析模块收到客户端发送的该统一QL语句之后,向日志模块发送该语句;4.统一QL解析模块收到客户端发送的该统一QL语句之后,对该语句进行功能解析,判定其操作类型为数据CRUD操作之后,将该请求转发至具体数据库QL模块;5.具体数据库QL模块收到统一QL语句之后,根绝客户端指定的数据库类型为列数据库,生成与该列数据库对应的可执行QL语句,连接该列数据库之后并执行该语句;6.列数据库将操作结果返回至数据可视化模块;7.数据可视化模块将具体的列数据库返回的操作结果可视化处理之后,发送至客户端。
对于图数据存储操作,图5为图数据存储操作示范性流程图。该流程包括:1.客户端向统一QL解析模块发出统一QL语句请求,指明操作类型为数据存储、存储模型为图存储模型;2.统一QL解析模块收到客户端发送的该统一QL语句之后,向统计模块发送该语句;3.统一QL解析模块收到客户端发送的该统一QL语句之后,向日志模块发送该语句;4.统一QL解析模块收到客户端发送的该统一QL语句之后,对该语句进行功能解析,判定其操作类型为数据CRUD操作之后,将该请求转发至具体数据库QL模块;5.具体数据库QL模块收到统一QL语句之后,根绝客户端指定的数据库类型为图数据库,生成与该图数据库对应的可执行QL语句,连该图数据库之后并执行该语句;6.图数据库将操作结果返回至数据可视化模块;7.数据可视化模块将具体的图数据库返回的操作结果可视化处理之后,发送至客户端。
当存在如下需求时,客户端往往需要将行数据转换为列数据:
a)由于列数据库以列相关存储架构进行数据存储,所以其在读取过程中没有冗余,主要适合与批量数据处理和即席查询。故当系统需要对海量用户数据进行多次读出进而实施过滤、压缩或者分析等大数据处理时,为避免采用传统行数据库存储会带来及其耗时的全表查询操作,系统应将行数据库的内容定时(或由调用者设定转换时间点以及时间间隔)转换并存储至列数据库(比如选择凌晨用户较少使用系统功能的时间段),再由列数据库读出并进行后台的海量数据处理,可减少读取数据冗余并使读取效率提升;
b)当数据比较大时,可将行数据转换成列数据进行存储,因为行数据库对数据几乎不压缩,而列数据库在数据压缩方面具有一定优势,具有高效的压缩率,不仅节省储存空间也节省计算内存和CPU,减轻大约60%的行数据库负载,腾出更多的负载,避免为扩展关系数据存储的复杂主/主或主/从战略而开销过大。
对于行数据转换为列数据操作,图6为行数据转换为列数据操作示范性流程图。该流程包括:1.客户端向统一QL解析模块发出统一QL语句请求,指明操作类型为数据转换操作、转换类型为行数据转换列数据;2.统一QL解析模块收到客户端发送的该统一QL语句之后,向统计模块发送该语句;3.统一QL解析模块收到客户端发送的该统一QL语句之后,向日志模块发送该语句;4.统一QL解析模块收到客户端发送的该统一QL语句之后,对该语句进行功能解析,判定其操作类型为数据转换操作之后,将该请求转发至数据转换模块;5.数据转换模块提取待转换的行数据的相关信息,将其以内部特定格式发送至具体数据库QL模块;6.具体数据库QL模块接收到行数据相关信息,生成具体的行数据库查询语句,并将其发送至行数据库执行;7.行数据库向数据模型模块返回所查询的原行存储数据;8.数据模型模块将原行存储数据转换为列存储数据,并发送至数据压缩模块(可由客户端指定是否需要压缩,在此假设需要压缩);9.数据压缩模块接收到未压缩的列存储数据,进行压缩后向数据存储模块返回压缩的列存储数据,供其生成待存储的具体列数据库存储文件;10.数据存储模块将生成的待存储的列数据库文件相关信息发送至具体数据库QL模块;11.数据转换模块提取待存储的列数据的相关信息,将其以内部特定格式发送至具体数据库QL模块;12.具体数据库QL模块根据接收到的列数据相关信息生成具体列数据库存储语句,并结合列数据库存储文件信息,将该语句发送至列数据库进行执行;13.列数据库向数据可视化模块返回列数据添加操作结果;14.数据可视化模块将数据转换结果进行可视化处理后,发送至客户端;15.数据模型模块向索引模块发送必要的索引更新操作信息(索引删除操作);16.索引模块接收到索引更新信息之后,将待删除的原行存储索引相关信息发送至具体数据库QL模块;17.具体数据库QL模块根据接收到的待删除的行存储索引信息生成可执行的具体数据库QL语句(索引删除),并发送至行数据库执行;18.行数据库向索引模块返回行存储索引删除操作结果;19.索引模块向数据模型模块发送行存储索引删除操作结果;20.索引模块根据行存储索引操作结果,更新其内部统一的索引表;21.索引模块向日志模块发送索引CRUD操作日志信息;22.数据模型模块向日志模块发送数据转换操作日志信息。
对于列数据转换为行数据操作,图7为列数据转换为行数据操作示范性流程图。包括:1.客户端向统一QL解析模块发出统一QL语句请求,指明操作类型为数据转换操作、转换类型为列数据转换行数据;2.统一QL解析模块收到客户端发送的该统一QL语句之后,向统计模块发送该语句;3.统一QL解析模块收到客户端发送的该统一QL语句之后,向日志模块发送该语句;4.统一QL解析模块收到客户端发送的该统一QL语句之后,对该语句进行功能解析,判定其操作类型为数据转换操作之后,将该请求转发至数据转换模块;5.数据转换模块提取待转换的列数据的相关信息,将其以内部特定格式发送至具体数据库QL模块;6.具体数据库QL模块接收到列数据相关信息,生成具体的列数据库查询语句,并将其发送至列数据库执行;7.列数据库向数据压缩模块返回压缩的原列存储数据(在此假设原数据已压缩);8.数据压缩模块向数据模型模块返回未压缩的列存储数据;9.数据模型模块将未压缩的列存储数据转换为行存储数据,并发送至数据存储模块;10.数据存储模块将生成的待存储的行数据库文件相关信息发送至具体数据库QL模块;11.数据转换模块提取待存储的行数据的相关信息,将其以内部特定格式发送至具体数据库QL模块;12.具体数据库QL模块接收到行数据相关信息,生成具体的行数据库查询语句,并将其发送至行数据库执行;13.行数据库向数据可视化模块返回行数据添加操作结果;14.数据可视化模块将数据转换结果进行可视化处理后,发送至客户端;15.数据模型模块向索引模块发送必要的索引更新操作信息(索引添加操作);16.索引模块接收到索引更新信息之后,将待删除的原行存储索引相关信息发送至具体数据库QL模块;17.具体数据库QL模块根据接收到的待添加的行存储索引信息生成可执行的具体数据库QL语句(索引添加),并发送至行数据库执行;18.行数据库向索引模块返回行存储索引添加操作结果;19.索引模块向数据模型模块发送行存储索引添加操作结果;20.索引模块根据行存储索引操作结果,更新其内部统一的索引表;21.索引模块向日志模块发送索引CRUD操作日志信息;22.数据模型模块向日志模块发送数据转换操作日志信息。
对于图数据转换为列数据操作,图8为图数据转换为列数据操作示范性流程图。包括:1.客户端向统一QL解析模块发出统一QL语句请求,指明操作类型为数据转换操作、转换类型为图数据转换列数据;2.统一QL解析模块收到客户端发送的该统一QL语句之后,向统计模块发送该语句;3.统一QL解析模块收到客户端发送的该统一QL语句之后,向日志模块发送该语句;4.统一QL解析模块收到客户端发送的该统一QL语句之后,对该语句进行功能解析,判定其操作类型为数据转换操作之后,将该请求转发至数据转换模块;数据转换模块提取待转换的图数据的相关信息,将其以内部特定格式发送至具体数据库QL模块;5.具体数据库QL模块接收到图数据相关信息,生成具体的图数据库查询语句,并将其发送至图数据库执行;6.图数据库向数据模型模块返回所查询的原图存储数据;7.数据模型模块将原图存储数据转换为列存储数据,并发送至数据压缩模块(可由客户端指定是否需要压缩,在此假设需要压缩);8.数据压缩模块接收到未压缩的列存储数据,进行压缩后向数据存储模块返回压缩的列存储数据,供其生成待存储的具体列数据库存储文件;9.数据存储模块将生成的待存储的列数据库文件相关信息发送至具体数据库QL模块;10.数据转换模块提取待存储的列数据的相关信息,将其以内部特定格式发送至具体数据库QL模块;11.具体数据库QL模块根据接收到的列数据相关信息生成具体列数据库存储语句,并结合列数据库存储文件信息,将该语句发送至列数据库进行执行;12.列数据库向数据可视化模块返回列数据添加操作结果;13.数据可视化模块将数据转换结果进行可视化处理后,发送至客户端;14.数据模型模块向索引模块发送必要的索引更新操作信息(索引删除操作);15.索引模块接收到索引更新信息之后,将待删除的原图存储索引相关信息发送至具体数据库QL模块;16.具体数据库QL模块根据接收到的待删除的图存储索引信息生成可执行的具体数据库QL语句(索引删除),并发送至图数据库执行;17.图数据库向索引模块返回图存储索引删除操作结果;18.索引模块向数据模型模块发送图存储索引删除操作结果;19.索引模块根据图存储索引操作结果,更新其内部统一索引表;20.索引模块向日志模块发送索引CRUD操作日志信息;21.数据模型模块向日志模块发送数据转换操作日志信息。
对于客户端主动发起的索引CRUD操作,图9为客户端主动发起的索引CRUD操作示范性流程图。包括:1.客户端向统一QL解析模块发出统一QL语句请求,指明操作类型为索引CRUD操作;2.统一QL解析模块收到客户端发送的该统一QL语句之后,向统计模块发送该语句;3.统一QL解析模块收到客户端发送的该统一QL语句之后,向日志模块发送该语句;4.统一QL解析模块收到客户端发送的该统一QL语句之后,对该语句进行功能解析,判定其操作类型为索引CRUD操作之后,将该请求转发至索引模块;5.索引模块将索引相关信息发送至具体数据库QL模块;6.具体数据库QL模块生成可执行的数据库QL语句并发送至底层具体数据库执行;7.具体数据库向数据可视化模块返回操作结果;8.数据可视化模块进行数据可视化处理,将可视化结果向客户端返回;9.数据可视化模块向索引模块发送该非可视化结果;10.索引模块根据非可视化操作结果更新其内部统一的索引表。
对于数据库封装层自动发起的索引CRUD操作,流程包括:1.统计模块向索引模块发送允许更新索引的索引关键字;2.索引模块将索引关键字信息发送至具体数据库QL模块;3.具体数据库QL模块生成可执行的索引CRUD操作语句,并发送至底层具体数据库执行;4.底层具体数据库将非可视化操作结果返回至数据可视化模块;5.数据可视化模块将该非可视化结果转发至索引模块;6.索引模块根据该索引CRUD操作结果,在必要时更新其内部统一的索引表。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种面向异构存储的适配装置,其特征在于,该装置包括:
统一QL解析模块,用于从客户端接收统一QL语句,并对统一QL语句进行解析,其中当解析结果为索引CRUD操作请求时,将索引CRUD操作请求发送到索引模块;当解析结果为数据转换请求时,将数据转换请求发送到数据模型模块;当解析结果为数据CRUD操作请求时,将数据CRUD操作请求发送到具体数据库QL模块;
统计模块,用于从客户端接收统一QL语句,根据预先设定的提取规则从统一QL语句中获取索引关键字,生成关于索引关键字的索引CRUD操作请求,并将索引CRUD操作请求发送到索引模块;
索引模块,用于从统一QL解析模块和统计模块发送来的索引CRUD操作请求中提取索引关键字、索引操作命令和数据库标识,并将索引关键字、索引操作命令和数据库标识发送到具体数据库QL模块;
数据模型模块,用于从数据转换请求中提取数据关键字、转换前数据库标识和转换后数据库标识,并将数据关键字、转换前数据库标识和转换后数据库标识发送到具体数据库QL模块;
具体数据库QL模块,用于保存数据库标识与数据库类型之间的对应关系;根据索引模块发送的索引关键字、索引操作命令和数据库标识,生成与对应于数据库标识的数据库类型相符合的索引操作QL语句;根据数据模型模块发送来的数据关键字、转换前数据库标识和转换后数据库标识,生成与转换前数据库标识相对应的数据库类型相符合的数据读取QL语句,对读取的数据执行数据转换,以及生成与转换后数据库标识相对应的数据库类型相符合的数据存储QL语句;从统一QL解析模块发送来的数据CRUD操作请求中解析出数据关键字、数据CRUD操作命令和数据库标识,生成与数据库标识相对应的数据库类型相符合的数据CRUD操作QL语句。
2.根据权利要求1所述的装置,其特征在于,所述索引CRUD操作请求包括:添加索引、查询索引、更新索引模块或删除索引。
3.根据权利要求1所述的装置,其特征在于,所述数据库类型包括:行数据库、列数据库或图数据库。
4.根据权利要求1所述的装置,其特征在于,还包括日志模块,用于记录数据转换操作日志、索引CRUD操作日志和数据CRUD操作日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410674714.0A CN104361099B (zh) | 2014-11-21 | 2014-11-21 | 一种面向异构存储的适配装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410674714.0A CN104361099B (zh) | 2014-11-21 | 2014-11-21 | 一种面向异构存储的适配装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104361099A true CN104361099A (zh) | 2015-02-18 |
CN104361099B CN104361099B (zh) | 2017-10-20 |
Family
ID=52528359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410674714.0A Active CN104361099B (zh) | 2014-11-21 | 2014-11-21 | 一种面向异构存储的适配装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104361099B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808776A (zh) * | 2016-03-29 | 2016-07-27 | 中国建设银行股份有限公司 | 一种分布式数据库的数据管理系统及方法 |
CN106777368A (zh) * | 2017-01-24 | 2017-05-31 | 北京奇虎科技有限公司 | 数据库查询语言适配方法及装置、分布式数据存储系统 |
CN107025298A (zh) * | 2017-04-20 | 2017-08-08 | 科技谷(厦门)信息技术有限公司 | 一种大数据实时计算处理系统及方法 |
CN107818155A (zh) * | 2017-10-27 | 2018-03-20 | 许继电气股份有限公司 | 一种配电主站及配电主站数据的存储方法 |
CN108228606A (zh) * | 2016-12-14 | 2018-06-29 | 北京国双科技有限公司 | 数据的写入方法及装置 |
CN108280159A (zh) * | 2018-01-16 | 2018-07-13 | 云南大学 | 一种将图数据库转化为关系数据库的方法 |
CN108563923A (zh) * | 2017-12-05 | 2018-09-21 | 华南理工大学 | 一种基因变异数据分布式存储方法及架构 |
WO2019109879A1 (zh) * | 2017-12-08 | 2019-06-13 | 阿里巴巴集团控股有限公司 | 数据存储与查询方法及设备 |
CN110046163A (zh) * | 2019-04-12 | 2019-07-23 | 网宿科技股份有限公司 | 一种数据检索方法及系统 |
CN112612786A (zh) * | 2020-11-24 | 2021-04-06 | 北京思特奇信息技术股份有限公司 | 一种大数据量的行列转换方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002013049A1 (en) * | 2000-08-04 | 2002-02-14 | Infoglide Corporation | System and method for comparing heterogeneous data sources |
CN103345518A (zh) * | 2013-07-11 | 2013-10-09 | 清华大学 | 基于数据块的自适应数据存储管理方法及系统 |
CN103440245A (zh) * | 2013-07-15 | 2013-12-11 | 西北工业大学 | 数据库系统的行列混合存储方法 |
CN104008135A (zh) * | 2014-05-07 | 2014-08-27 | 南京邮电大学 | 一种多源异构数据库融合系统及其数据查询方法 |
-
2014
- 2014-11-21 CN CN201410674714.0A patent/CN104361099B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002013049A1 (en) * | 2000-08-04 | 2002-02-14 | Infoglide Corporation | System and method for comparing heterogeneous data sources |
CN103345518A (zh) * | 2013-07-11 | 2013-10-09 | 清华大学 | 基于数据块的自适应数据存储管理方法及系统 |
CN103440245A (zh) * | 2013-07-15 | 2013-12-11 | 西北工业大学 | 数据库系统的行列混合存储方法 |
CN104008135A (zh) * | 2014-05-07 | 2014-08-27 | 南京邮电大学 | 一种多源异构数据库融合系统及其数据查询方法 |
Non-Patent Citations (1)
Title |
---|
耿玉水 等: ""云计算下异构数据集成模型的构建"", 《济南大学学报(自然科学版)》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808776A (zh) * | 2016-03-29 | 2016-07-27 | 中国建设银行股份有限公司 | 一种分布式数据库的数据管理系统及方法 |
CN108228606A (zh) * | 2016-12-14 | 2018-06-29 | 北京国双科技有限公司 | 数据的写入方法及装置 |
CN106777368A (zh) * | 2017-01-24 | 2017-05-31 | 北京奇虎科技有限公司 | 数据库查询语言适配方法及装置、分布式数据存储系统 |
CN107025298A (zh) * | 2017-04-20 | 2017-08-08 | 科技谷(厦门)信息技术有限公司 | 一种大数据实时计算处理系统及方法 |
CN107818155A (zh) * | 2017-10-27 | 2018-03-20 | 许继电气股份有限公司 | 一种配电主站及配电主站数据的存储方法 |
CN108563923A (zh) * | 2017-12-05 | 2018-09-21 | 华南理工大学 | 一种基因变异数据分布式存储方法及架构 |
CN108563923B (zh) * | 2017-12-05 | 2020-08-18 | 华南理工大学 | 一种基因变异数据分布式存储方法及系统 |
WO2019109879A1 (zh) * | 2017-12-08 | 2019-06-13 | 阿里巴巴集团控股有限公司 | 数据存储与查询方法及设备 |
US11449481B2 (en) | 2017-12-08 | 2022-09-20 | Alibaba Group Holding Limited | Data storage and query method and device |
CN108280159A (zh) * | 2018-01-16 | 2018-07-13 | 云南大学 | 一种将图数据库转化为关系数据库的方法 |
CN108280159B (zh) * | 2018-01-16 | 2021-08-20 | 云南大学 | 一种将图数据库转化为关系数据库的方法 |
CN110046163A (zh) * | 2019-04-12 | 2019-07-23 | 网宿科技股份有限公司 | 一种数据检索方法及系统 |
CN112612786A (zh) * | 2020-11-24 | 2021-04-06 | 北京思特奇信息技术股份有限公司 | 一种大数据量的行列转换方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104361099B (zh) | 2017-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104361099A (zh) | 一种面向异构存储的适配装置 | |
US20200320091A1 (en) | Schemaless to relational representation conversion | |
JP6617117B2 (ja) | 半構造データのためのスケーラブルな分析プラットフォーム | |
EP3857400B1 (en) | Data storage apparatus, translation apparatus, and database access method | |
CN106202207B (zh) | 一种基于HBase-ORM的索引及检索系统 | |
CN105989150B (zh) | 一种基于大数据环境的数据查询方法及装置 | |
CN107491561B (zh) | 一种基于本体的城市交通异构数据集成系统及方法 | |
CN101799826B (zh) | 一种基于虚拟视图的网络化数据共享系统及方法 | |
CN104915450A (zh) | 一种基于HBase的大数据存储与检索方法及系统 | |
Li et al. | An integration approach of hybrid databases based on SQL in cloud computing environment | |
CN113032423B (zh) | 基于多数据引擎动态装载的查询方法和系统 | |
CN110968579B (zh) | 执行计划的生成与执行方法、数据库引擎及存储介质 | |
CN101493825A (zh) | 一种gis中间件配置管理方法 | |
CN103810219A (zh) | 一种基于行存储数据库的数据处理方法及装置 | |
CN104462161A (zh) | 基于分布式数据库的结构化数据查询方法 | |
CN103034650B (zh) | 一种数据处理系统和方法 | |
CN115168396A (zh) | 一种基于时空体系的综合智能平台数据管理方法及系统 | |
CN102103494A (zh) | 一种软件资源更改的方法和装置 | |
CN116049193A (zh) | 数据存储方法及装置 | |
CN104391892A (zh) | 一种基于元数据驱动的地产信息访问系统 | |
CN113722337B (zh) | 业务数据确定方法、装置、设备及存储介质 | |
CN113779215A (zh) | 数据处理平台 | |
CN113297165A (zh) | 数据处理方法、装置及数据库操作系统 | |
CN115630086B (zh) | 一种将Access应用转化为Web应用程序的方法 | |
CN115774767B (zh) | 一种地理信息元数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |