CN110032604B - 数据存储装置、转译装置及数据库访问方法 - Google Patents

数据存储装置、转译装置及数据库访问方法 Download PDF

Info

Publication number
CN110032604B
CN110032604B CN201910107394.3A CN201910107394A CN110032604B CN 110032604 B CN110032604 B CN 110032604B CN 201910107394 A CN201910107394 A CN 201910107394A CN 110032604 B CN110032604 B CN 110032604B
Authority
CN
China
Prior art keywords
relational
access
access request
column
model
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.)
Active
Application number
CN201910107394.3A
Other languages
English (en)
Other versions
CN110032604A (zh
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.)
Beijing Oceanbase Technology Co Ltd
Original Assignee
Beijing Oceanbase 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 Beijing Oceanbase Technology Co Ltd filed Critical Beijing Oceanbase Technology Co Ltd
Priority to CN201910107394.3A priority Critical patent/CN110032604B/zh
Publication of CN110032604A publication Critical patent/CN110032604A/zh
Priority to TW108131216A priority patent/TWI710919B/zh
Priority to PCT/US2020/015872 priority patent/WO2020160265A1/en
Priority to EP20708895.6A priority patent/EP3857400B1/en
Priority to US16/779,531 priority patent/US10853363B2/en
Priority to US17/107,534 priority patent/US11226961B2/en
Application granted granted Critical
Publication of CN110032604B publication Critical patent/CN110032604B/zh
Priority to US17/574,419 priority patent/US11797533B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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
    • 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
    • G06F16/244Grouping and aggregation
    • 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/245Query processing
    • G06F16/2452Query translation
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Abstract

本公开的一个或多个实施例提供一种数据存储装置、转译装置及数据库访问方法。该数据存储装置有包括有利用关系数据表存储非关系数据模型数据的关系数据库,非关系数据模型符合非结构化查询语言(NoSQL)规范。该存储装置还包括转译模块,将符合所述非结构化查询语言(NoSQL)规范的第一访问请求转译为符合所述关系表模型访问规范的第二访问请求,以实现对所述关系数据表的访问。

Description

数据存储装置、转译装置及数据库访问方法
技术领域
本发明涉及数据库领域,尤其涉及一种提供非关系访问的关系数据库。
背景技术
目前,关系型数据库以其原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability))(ACID)的优点在包括金融等各行业得到充足发展与广泛使用。但是由于传统的关系型数据库在应对大数据的存储、查询和分析等需求时,出现了性能和规模上的瓶颈,因此各种非关系型数据库(NoSQL数据库)应运而生,成为数据存储和分析领域的一支新生力量。非关系型数据库的数据存储不需要固定的表结构,因此可以实现灵活存储结构,而且可以无需预先定义表模式,有利于快速原型验证和敏捷开发。
然而对于同一客户或同一应用而言,同时部署关系数据库与非关系型数据库不但增加了成本,而且同步地维护二种类型数据库也在技术、数据安全上带来挑战。
发明内容
本发明期望提供一种同时支持关系型SQL与非关系NoSQL访问的关系型数据库,其利用关系数据表来存储非关系数据库类型的数据,因此不但具有比传统数据库更好的可扩展性,而且让NoSQL应用拥有了关系型数据库所带来的金融级数据安全和高可用的服务。
根据本发明的一个方面,提供一种数据存储装置,包括:关系数据库,用于存储与非关系数据模型对应的关系表模型的关系数据表,其中所述非关系数据模型符合非结构化查询语言(SQL)规范;转译模块,用于将与所述符合非结构化查询语言(SQL)规范的第一访问请求转译为符合所述关系表模型访问规范的第二访问请求,以实现对所述关系数据表的访问。
根据本发明的一个方面,提供一种用于关系数据库的访问方法,其中所述关系数据库可存储与非关系数据模型对应的关系表模型的关系数据表,其中所述非关系数据模型符合非结构化查询语言(SQL)规范,该方法包括:接收来自客户端的符合所述非结构化查询语言(SQL)规范的第一访问请求;将所述第一访问请求转译为符合所述关系表模型访问规范的第二访问请求,以实现对所述关系数据表的访问;将所述第二访问请求转发至所述关系数据库。
根据本发明的一个方面,提供一种可提供关系数据库访问的转译装置,其中所述关系数据库用于存储与宽表模型对应的关系表模型的关系数据表,该转译装置包括:第一接口,用于接收符合非结构化查询语言(SQL)规范的第一访问请求,所述第一访问请求包括与宽表有关的第一事件特征以及第一属性特征,其中该第一属性特征包括所述宽表的列族特征;解析模块,用于对所述第一访问请求进行解析以生成符合所述关系表模型访问规范的第二访问请求,其中所述第二访问请求包括与所述第一事件特征对应的第二事件特征以及与所述第一属性特征对应的第二属性特征,其中第二属性特征包括:与所述宽表的列族对应的列族字段,用于存储所述宽表中的列族下的各列字段的名称;数值字段,用于存储所述宽表中的列族下的各列字段的字段值;第二接口,用于将所述第二访问请求转发至所述关系数据库,以实现对所述关系数据表的访问。
此外,根据本发明,还提供一种具有指令的计算机可读介质,所述指令在被一个或多个计算系统执行时,使所述计算系统执行根据本发明的方法。
此外,根据本发明,还提供一种计算设备,包括:存储有代码的存储器,以及处理器,其中所述处理器配置为执行所述代码以实现本发明的方法。
利用本发明的方案,在成熟的关系数据表基础之上,只需要提供用于宽表接入的服务端即转译模块或接口,结合客户端,就可以把关系数据库转变为一个宽表数据库。当实现在同一个系统中时,根据本发明的关系数据库相当于一个同时支持关系模型和宽表模型的多模型数据库。
附图说明
图1示出可提供非关系数据库类型访问的存储装置100的示意图;
图2A和2B示出根据本发明一个示例性的宽表与关系数据表的示意图;
图3A和3B示出根据本发明另一个示例的宽表与关系数据表的示意图;
图4示出了根据本发明一个实施例的访问数据库的方法流程图;
图5示出了根据本发明一个实施例的计算设备的示意图。
具体实施方式
下面详细描述本发明的实施例,通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
图1示出了可提供非关系数据库类型访问的存储装置100的示意图。如图所示,该存储装置100包括关系数据库101,转译模块102。在关系数据库101中可维护与非关系数据库模型对应的关系表模型的关系数据表。关系数据库101可以是目前已知的任何类型的数据库,例如oracle,sysbase,MySQL等,均支持关系数据模型存储。目前关系数据库通常支持对关系数据模型的二种访问规范,其中一种是通过标准SQL(结构化查询语言)语言规范,而另一种则是通过提供底层函数即应用编程接口(API)来提供对底层的关系数据表的直接存取。而非关系数据模型,例如现有产品Hbase,bigtable,Cassandra等数据库中广泛支持的宽表模型,作为一种NoSQL数据库模型,它无需预先定义列及其属性,允许同一个表中每一行拥有不同的列,因此具有与关系数据模型完全不同的特性,对非关系数据模型的访问采用的是与关系数据模型完全不同的规范,在此称为非结构化查询语言规范。在本发明中,将现有的NoSQL数据库模型所支持的NoSQL标准语言或应用编程接口(API)统一称为非结构化查询语言规范。
关系数据库101可以通过转译模块102支持来自用户客户端200的例如宽表类型的数据库访问操作,实现非关系数据库类型的数据在关系数据库101中的存储与访问。同时,该关系数据库101还允许其它的使用关系表模型访问规范的其它客户端300直接对关系数据库101中的数据表的访问,包括以SQL标准语言访问或直接以API函数调用的形式直接访问关系数据表。
为了使关系数据库101能支持宽表数据库的访问操作,在该转译模块102内提供一套符合关系数据模型的API或标准SQL语言库,用于提供对关系数据库101中的关系型数据表的访问;还提供有符合多种非结构化查询语言规范的应用程序接口(API)库或NoSQL语言库,从而可以对接收的符合非结构化查询语言规范的访问请求或命令进行解释,进而转译模块102可以将该访问请求转译成符合关系表模型访问规范的访问请求。在以下说明中,以宽表模型作为非关系数据模型的一个示例予以说明。
为了在关系数据库中实现对非结构化查询语言规范客户端应用的支持,对于非关系数据库中的具有列族形式的宽表存储结构,在关系数据库101中提供了与其对应的关系型数据表,以支持Non-SQL形式的访问。图2A和图2B示出了宽表与关系型数据表的映射图。
图2A示出一个示例性的宽表hbase_100的结构,如图所示,该宽表包括一个主键字段ID,用于存储宽表中作为主键(rowkey)的序号,该宽表还包括一个列族CF1,在该列族CF1下存在多个列字段,分别name(姓名)与gender(性别)。在该示例的宽表中存在二条宽表记录,其中对于第001号,其name(姓名)与gender(性别)字段的字段值分别为”Tom”和“man”(男),对于第002号,其name(姓名)与gender(性别)字段的字段值分别为”June”和“girl”(女)。
为了在关系数据库中存储图2A所示的宽表数据,如图2B所示,对于宽表中的列族,定义一个如下形式的关系数据表hbase_100&CF1作为存储模型,其中关系数据表hbase_100&CF1包括字段ID,用于存储宽表的Rowkey,在本例中为序列号;一个列族字段CF1,在该列族字段下以多条记录形式存储该列族下的所有列字段名称,如图2A所示,列族CF1具有二个列字段name与gender,因此,在关系表hbase_100&CF1为同一rowkey建立了二条记录,分别存储列字段内容‘name’与‘gender’。关系表hbase_100&CF1还包括数值字段Value,用于存储宽表中每个列字段下‘name’与‘gender’的对应值。由此,实现了利用关系数据表来存储宽表数据,关系数据库对于用户来说是透明的,关系数据库转变为一个‘虚拟的’宽表数据库。
以下结合图1所示的存储有关系数据库的存储装置100的结构来说明使用NoSQL语言规范的客户端对‘虚拟’宽表数据库的操作如何转换为关系数据库的操作。
如前所述,通过为关系数据库101设置宽表转译模块102,可以使关系数据库101支持客户端采用NoSQL语言对虚拟宽表的访问,而宽表数据则物理地存储在关系数据表中。对宽表的访问包括宽表的创建、修改以及删除等。
如图1所示,该转译模块102包括第一接口1021,解析模块1022以及第二接口1023。第一接口1021接收来自NoSQL客户端的宽表访问请求NoSQL_Access,在该宽表访问请求中包括符合非结构化查询语言(NoSQL)规范的事件特征NEventID以及属性特征NAttField。这里的事件特征NEventID定义了期望对宽表的操作事件,例如是创建宽表,还是删除或修改或查询数据等,而属于特征NAttField定义了事件NEventID所针对的字段对象,包括所述宽表的列族特征。
在从第一接口1021接收到宽表访问请求NoSQL_Access后,解析模块1023基于内部存储的多种编程语言的客户端库(例如符合Hbase,bigtable,Cassandra数据库标准的语言库)对该宽表访问请求NoSQL_Access进行解析以生成用于访问关系数据库101的关系表访问请求Relation_Access,其中所述访问请求Relation_Access包括用于访问关系数据库的事件特征EventID以及与所述宽表属性特征NAttField对应的属性特征AttField。这里的事件特征EventID定义了期望对关系数据表的操作事件,例如是创建、删除、修改或查询数据等,而属性特征AttField定义了事件EventID所涉及的字段对象,包括:与所述宽表的列族对应的列族字段,用于存储所述宽表中的列族下的各列字段的名称;以及数值字段,用于存储所述宽表中的列族下的各列字段的字段值。
第二接口1023将解析模块1022产生的访问请求Relation_Access转发至关系数据库1023,而实现对关系数据表的操作。
以下仍以图2A所示的宽表的创建、记录增加等事件为例说明转译模块102的操作,其中以客户端使用HBase数据库语言规范、并且对关系数据库的访问是以标准SQL语言为例来说明。
宽表的创建
当用户希望建立一个如图2A所示的宽表来存储数据时,可以通过客户端发出建立宽表的宽表访问请求NoSQL_Access,例如该访问请求具有如下格式的NoSQL标准语言:
create'hbase_100',{ID=>'CF1'}
在转译模块102内存储有支持NoSQL访问规范的客户端库,因此在转译模块102通过第一接口1021接收到该宽表访问请求NoSQL_Access后,按照NoSQL规范对该NoSQL_Access请求进行解析,确定在该宽表访问请求包含的事件特征,即建表“creat”,其属性特征包括:宽表名称为‘hbase_100’,以及在该宽表中所涉及的主键(rowkey)字段的名称为‘ID’以及列族为‘CF1’。
因此,为了实现在关系数据库101中建立关系数据表来存储宽表‘hbase_100’的数据,解析模块1022按照标准SQL语言规范生成在关系数据库建立关系表的关系表访问请求Relation_Access,在本例中,Relation_Access以SQL_Access来表示。作为一个示例,该关系表访问请求SQL_Access示例如下:
create table hbase_100$CF1(
ID varbinary(1024),
CF1varbinary(256),
Value varbinary(1048576)NOT NULL,
primary key(ID,CF1))
其中,
ID列存储‘hbase_100’表的rowkey
CF1列用于存储在列族“CF1”下各列字段(column qualifier)的名称;
Value列存储了对应各列字段(column qualifier)的字段值。
同时为了实现关系表‘hbase_100’的唯一访问,在所创建的关系表中指定(ID,CF1)为索引主键。通过这样的方式,图2B所示宽表中每一行的若干列数据,在图2A所示关系表中存储为相邻的若干行,每一行存储宽表的一个单元。这里所创建的关系表hbase_100$CF1对于用户来说是透明的,即用户所‘看到‘的一张如表2A所示的虚拟宽表。
按照本发明一个示例,客户端所希望建立的宽表‘hbase_100’与在关系数据库101中建立的关系数据库‘hbase_100$CF1’的对应关系可以作为元信息另外地存储于关系数据库101中的元信息表中。可选地,转译模块102也可以按照预设的命名规则,根据接收到的宽表请求中包含的宽表名‘hbase_100’而确定对应的关系数据表‘hbase_100$CF1’。
在宽表类型的数据库中,对于每一行的记录通常具有时间维度字段,用于存储每行数据的时间戳信息。对于该时间维度特征,同样可以传送到关系数据表中。例如关系数据库101可以基于转译模块102产生的如下访问请求SQL_Access建立关系数据表:
create table hbase_100$CF1(
ID varbinary(1024),
CF1 varbinary(256),
T bigint,
Value varbinary(1048576)NOT NULL,
primary key(ID,CF1,T))
其中T列存储时间戳版本timestamp,一般为自某一时间点(例如January 1,1970UTC)后的毫秒。
增加记录
当用户希望向宽表hbase_100增加一条记录时,例如该记录涉及某班级的花名册,则可以在列族CF1下增加了姓名‘name’与性别”gender”二个列字段,以实现对全班同学的登记。为此,用户可以分别发出如下形式的二个NoSQL标准语言访问请求:
put'hbase_100','001','CF1:name','Tom'
put'hbase_100','001','CF1:gender','man'
上述二个访问请求是对宽表的同一记录‘001’的操作。
在收到增加姓名列的NoSQL请求:
put'hbase_100','001','CF1:name','Tom'后,
解析模块1022可以确定在该请求中,事件特征‘put’为增加记录操作,并且涉及的属性特征为在列族下增加的一个列字段name。同时该NoSQL请求还包括值特征,在本例中为列字段‘name’对应的字段值‘tom’。在解析出该请求后,解析模块1022生成用于访问关系数据表的访问请求SQL_Access,以在数据表中增加一条记录,作为一个示例,该SQL_Access请求为:
insert into hbase_100$CF1values('001','name','tom')。
在访问请求SQL_Access中,包括的事件特征为已经转译为符合SQL语言规范的‘insert’,并且是按照所创建的关系表的各字段的顺序‘ID’、‘CF1’、‘Value’分别对这些字段赋值以建立新的记录,即赋值顺序代表了关系表中的各字段,即属性特征。同时,在访问请求SQL_Access中还包括了数值特征,该数值特征除了访问请求NoSQL_Access中的数值特征'001'、'Tom'之外,解析模块1022还利用NoSQL_Access中属性特征‘name’形成了新的数值特征‘name’,作为字段值赋与关系表hbase_100$CF1中的CF1字段。
类似地,对于收到的增加性别的列请求:
put'hbase_100','001','CF1:gender','man',
解析模块1022可以确定在该请求中,事件特征‘put’为增加记录操作,并且涉及的属性特征为在列族下增加了一个列字段‘gender’,并且对应的字段值为man。在解析出该请求后,解析模块1022生成用于访问关系数据表的访问请求SQL_Access,以在数据表中增加另一条记录,作为一个示例,该SQL_Access请求为:
insert into hbase_100$CF1values('001',gender,'man')
在上面实施例中,转译模块102是将NoSQL访问请求转译为符合标准SQL语言的SQL_Access访问请求为例予以说明的。如前所述,关系数据库101不但支持标准SQL语言通过SQL层对关系数据表的访问,还提供底层API接口函数而直接对关系数据表的访问。因此,按照本发明的另一实施例,转译模块102在接收到来处客户端的NoSQL访问请求后,可以将NoSQL访问请求即NoSQL_Access转译为关系数据库101所支持的API函数调用请求形式的Relation_Access,在本例中以API_Access来表示Relation_Access,从而绕过SQL层以对关系数据表直接访问。例如,如上例,在接收到NoSQL标准语言命令put'hbase_100','001','CF1:name','Tom'的宽表访问请求以增加宽表数据时,经转译模块102解析处理后,生成如下关系表模型的API_Access:
Table table=new Table("hbase_100$CF1",connection);
TableOperation op=new TableOperation();
op.put("K","001","Q","name","V","Tom");
table.execute(op);
转译模块102通过第二接口1023将上述函数调用形式的API_Access发送到关系数据库101,关系数据库101通过执行该API_Access而实现对关系数据表"hbase_100$CF1"的直接操作。
此外,在上面实施例中,NoSQL访问请求即NoSQL_Access是以NoSQL标准语言命令形式说明的,如前所述,非结构化查询语言规范还包括NoSQL数据库所支持的API,根据本发明的转译模块102同样可以对客户端发出的NoSQL数据库所支持的API形式的访问请求进行解析,并转化为关系数据库所支持的访问规范即SQL标准语言或API。同样以上例中的增加宽表数据为例,除了标准NoSQL语言命令:
put'hbase_100','001','CF1:name','Tom'之外,
客户端还可以选择发出宽表API调用格式的访问请求NoSQL_Access,即
HTable htable=new HTable("hbase_100",connection);
Put put=new Put("001");
put.add("CF1","name","Tom");
htable.put(put);
转译模块102在接收该宽表函数API调用格式的访问请求NoSQL_Access后,可以选择将共转译成符合SQL标准语言规范的请求SQL_Access,即,
insert into hbase_100$CF1values('001','name','tom')。
还可以如上例,将其转译关系数据库所支持的API函数调用格式的访问请求API_Access,即:
Table table=new Table("hbase_100$CF1",connection);
TableOperation op=new TableOperation();
op.put("K","001","Q","name","V","Tom");
table.execute(op)。
这里需要指出的是,转译模块102在接收到来自客户端的NoSQL_Access时,具体地转译成SQL标准语言还是函数API调用形式的访问请求,则取决于当前NoSQL_Access所要执行的具体操作或事件,例如可以将建立宽表的NoSQL_Access请求转化为标准SQL语言形式的SQL_Access,而将其它宽表操作请求转译为API_Access请求。可选地,也可以将来自客户端的所有NoSQL_Access统一转化为API_Access或SQL_Access。为便于描述,在以下说明中,仍以SQL_Access为例。
在上面实施例中,针对的宽表中仅包含一个列族的情况,对于包含二个或以上的情况,则按照本发明的实施例,则分别为每个列族建立单独的关系表。图3A示意性示出了具有二个列族的宽表hbase_101,其在hbase_100的基础上增加了学生学习成绩的列族CF2。为此,当转译模块1022通过第一接口1021接到客户端的建立如图3A所示的宽表的请求NoSQL_Access后,对该请求进行解析处理,例如,仍以Hbase数据库语言为例,该NoSQL_Access请求为:
create'hbase_101',{ID=>'CF1'},{ID=>'CF2'}
解析模块1022从该NoSQL_Access请求中可以确定本请求是一个建立宽表事件,并且获取了属性特征,即包括宽表名'hbase_101',rowkey名‘ID’以及该宽表下具有二个列族且列族名为'CF1'与'CF2'。为此,根据这些特征,解析模块创建符合SQL语言规范的二个SQL_Access请求,其中第一个SQL_Access请求为建立hbase_101$CF1表:
create table hbase_101$CF1(
ID varbinary(1024),
CF1 varbinary(256),
Value varbinary(1048576)NOT NULL,
primary key(ID,CF1))。
与参照图2A的宽表建立的关系表相同,依据该第一个SQL_Access请求,在关系数据库101中建立的关系表hbase_101$CF1仍为如图2B所示的表。
第二个SQL_Access请求为建立hbase_101$CF2表,如下:
create table hbase_101$CF2(
ID varbinary(1024),
CF2 varbinary(256),
Value varbinary(1048576)NOT NULL,
primary key(ID,CF2))
依据该第二个SQL_Access请求,在关系数据库101中建立的关系表hbase_101$CF2如图3B所示。如前所述,宽表hbase_101与关系数据表hbase_101$CF1与hbase_101$CF2的关联作为元信息存储在关系数据库101中,供转译模块102访问。
由此在数据库101中建立二个关系数据表hbase_101$CF1与hbase_101$CF2,用于存储拟建立的宽表hbase_101数据。通过转译模块1022,可以将客户端对宽表hbase_101的操作选择性地转化为对关系表hbase_101$CF1与hbase_101$CF2中的一个或二者的操作。通常向宽表中添加数据或修改数据时,由于均是一列一列的操作,因此,来自客户端的对宽表的每行每列的操作,转化为对其中一个关系数据表中同一rowkey下的一行或多行的操作。
例如,对于数据库中经常应用的宽表查询操作,转译模块1022可以将关系数据表提供的响应数据从关系数据表类型转化为宽表模式,并提供给客户端,因此所建立的关系表对于用户来说是透明的,用户可以看到是虚拟的‘宽表’查询输出。以下以对上例中宽表hbase_101的数据查询为例予以说明。
在用户创建了宽表'hbase_101'后,当希望获取序号为‘001’的学生信息时,可发送如下NoSQL_Access请求:
get'hbase_101','001'
转译模块102通过第一接口1021接收到该请求后,由解析模块1022确定出本次请求的事件是查询(get),并且所包含的属性特征包括:表名'hbase_101'以及行键字段ID(ID=001),由此转译模块102可基于事先存储的元信息(或者基于预定的命令规则),确定宽表'hbase_101'在数据库101中存储二个关系数据表即‘hbase_101$CF1’与‘hbase_101$CF1’,因此,解析模块将该NoSQL_Access请求转译为用于查询数据表hbase_101$CF1与hbase_101$CF2的SQL_Access请求,在标准SQL语言下,例如该请求可以是:
select*from hbase_101$CF1 where ID=001
select*from hbase_101$CF2 where ID=001。
如示例所示,该SQL_Access请求符合SQL语言格式,其中事件特征已经译为select,并且指定的新的属性特征是名称为hbase_101$CF2和hbase_101$CF2的关系表,并且按照行键字段ID查询。
关系数据库101接收到上述二个请求后,分别响应select命令查询出同一ID=001下的姓名与性别信息以及语言与数学成绩信息,并且作为对SQL_Access请求的响应而输出这些查询结果。
在第二接口1023从关系数据库101接收响应于上述二个查询请求的响应结果后,解析模块1022按同一ID值即宽表的rowkey组织这二个查询结果,其中基于发出该查询结果的关系表名(hbase_101$CF2或hbase_101$CF1)、查询结果中包含的属于特征CF1、CF2与数值特征gender、name、chinese、math以及man,Tom,80,81,生成符合宽表格式的查询结果,并作为NoSQL查询请求的响应通过第一接口1021发送给客户端,从而在用户的客户端上以宽表格式显示查询结果:
Figure BDA0001967056740000131
这里需要指出的是,这里所示的显示结果仅仅是说明目的,而忽略了其它一些显示信息。
按照本发明一个或多个实施例,正是借助于关系数据表来实现宽表数据的存储,因此,可以在宽表应用上体现出关系数据库的优点。例如,由于宽表的优点在于可以实现对数据的快速查询与访问,并且便于数据分析,通过一张记录就可以看到该记录用户的全部信息;但在数据的管理方面则没有关系数据库强大。而按照本发明,通过对宽表数据使用关系数库存储,可以利用关系数据库的原则对所存储的数据进行以下处理。
一、根据业务需求,选择分区方式。
(1)Key分区
如果用户业务中很少发生全范围扫描Scan事件,或者说只需要查询事件get,那么按照一个实施例,可以对所建立的关系表使用Key分区,从而使得数据分布均匀不会出现数据倾斜和热点。例如:可以对创建的关系表Ttable1$Family1执行如下分区:
create table Ttable1$Family1(
K varbinary(1024),
Q varbinary(256),
T bigint,
V varbinary(1048576)NOT NULL,
primary key(K,Q,T))
partition by key(K)partitions 97;
其中,
+K列存储Ttable1$Family1表的rowkey
+Q对应于宽表table1中的列族名family1,用于按列存储在列族family1下各列字段(column qualifier)的内容或名称;
+T代表时间维度,按列存储时间戳版本timestamp,一般为自某一时间点(通常January 1,1970 UTC)后的毫秒;
+V列存储对应于各列字段(column qualifier)的值value
K,Q,T组成关系表的联合主键,在关系表内唯一,其中T字段逆序(如果T字段在关系表中是增序排列的话,则存储为负数),这样可以优化读取最新数据的操作(需最新数据排列在最前面)。
(2)虚拟列结合Key分区
如果业务中必须使用Scan,但是扫描范围总是rowkey的一个定长前缀(前缀扫描),可以在K上定义一个虚拟列,然后对这个虚拟列进行Key分区。通过这样的方式,可以保证每次扫描只涉及一个分区。除非前缀数据有倾斜,这种分区方式也有利于避免热点。例如:
create table Ttable1$Family1(
K varbinary(1024),
Q varbinary(256),
T bigint,
V varbinary(1048576),
K_PREFIX varbinary(1024)generated always as(substring(K,1,4)),
primary key(K,Q,T)
)partition by key(K_PREFIX)partitions 97;
其中,函数substring(K,1,4)表示取K(即宽表中的rowkey)的前4个字节为子串,这里的“4”仅是示例性的,可以根据业务rowkey特点,替换为相应的前缀长度。
(3)Range分区
如果业务不仅需要前缀扫描和get,那么必须建立range分区。如果底层关系数据库不支持自动range管理,则需要预先对rowkey的分布进行估计或采样,选定range分区的分割点。如果预估不合理,这种分区方式很容易造成数据倾斜和热点,因尽量避免采用这种方式。
例如:
create table Table1$Family1(
K varbinary(1024),
Q varbinary(256),
T bigint,
V varbinary(1048576),
K_PREFIX varbinary(1024)generated always as(substring(K,1,4)),
primary key(K,Q,T)
)partition by range columns(K)
(PARTITION p0 VALUES LESS THAN('a'),
PARTITION p1 VALUES LESS THAN('w'),
PARTITION p2 VALUES LESS THAN MAXVALUE).
这里需要指出的是,K,Q,T,V等关系表的列名以及列类型的具体化都是为了方便叙述方案,实际上可以是任何相似的列名和列类型(例如varbinary类型可以是任何字符串类型,bigint类型可以是任何能用来表达版本数据的类型),表的分区方式,主键定义的排序方式,都可以有其他选择。这些变化都应该视为本方案相同的方案,受到保护。
二、多列簇支持
在Non_SQL数据库中,有些宽表系统支持多列簇(column family),把同一行的不同列进行划分,属于同一列簇的数据在底层存储的时候聚集在一起,从而在某些情况下优化读取数据时候的I/O开销。为了进一步优化性能,需要降低分布式事务的开销,在为宽表创建关系数据表时,可以把同一个宽表的多个列簇聚集在相同的服务器上,可以避免多机事务。例如假设一个宽表:Table1有两个列簇Family1和Family2,则定义
create tablegroup tg1;
create table Table1$Family1(
K varbinary(1024),
Q varbinary(256),
T bigint,
V varbinary(1048576)NOT NULL,
primary key(K,Q,T))tablegroup='tg1';
create table Table1$Family2(
K varbinary(1024),
Q varbinary(256),
T bigint,
V varbinary(1048576)NOT NULL,
primary key(K,Q,T))tablegroup='tg1'。
在上面实施例中,转译模块102是以关系数据库101的接口形式与数据库101集成在一起。而在本发明的另一实施例中,转译模块102也可以位于客户端或者云端。例如,用户通过接入云端,实现宽表数据在远程关系数据库上的存储与访问。因此,该转译模块102既可以作一个单独中间件存在,也可以作为数据库的一部分而存在。
不难理解,这里针对宽表模型建立的关系数据表是符合标准关系数据规范的,因此关系数据库101支持关系数据库客户端对数据库的直接查询与访问,因此根据本发明实施例的存储装置实现利用NoSQL和SQL交互操作同一份数据而和谐共处。
图4示出了根据本发明一个实施例的访问关系数据库的方法流程图,其中所述关系数据库可存储与非关系数据模型对应的关系表模型的关系数据表,其中所述非关系数据模型符合非结构化查询语言(NoSQL)规范。
如图所示,在步骤402,接收来自客户端的符合所述非结构化查询语言(NoSQL)规范的NoSQL访问请求。在步骤404,将NoSQL访问请求转译为符合关系数据库支持的访问规范的Relation_Access访问请求,以实现对所述关系数据表的访问。在本发明的一个实施例中,在非关系数据模型为宽表模型的情况下,NoSQL访问请求包括与宽表有关的第一事件特征以及第一属性特征,其中该第一属性特征包括所述宽表的列族特征。由此,当在步骤404接收到NoSQL访问请求后,首先对NoSQL访问请求进行解析以生成Relation_Access访问请求,其中Relation_Access访问请求包括与第一事件特征对应的第二事件特征以及与所述第一属性特征对应的第二属性特征,其中第二属性特征包括:与所述宽表的列族对应的列族字段,用于存储所述宽表中的列族下的各列字段的名称;数据值字段,用于存储所述宽表中的列族下的各列字段的字段值。此外,在第一属性特征还包括宽表模型的其它字段情况下,这些其它字段及其策略同样复制到SQL访问请求中。
在生成了Relation_Access访问请求后,在步骤406,将其转发至所述关系数据库,从而按照所请求的事件特征实现对关系数据库的操作。
如果客户端发送的NoSQL请求需要响应结果,则在步骤408,从关系数据库接收执行Relation_Access请求的响应结果,随后在步骤410,对返回的响应结果按照宽表模式进行格式转换,这种转换包括将关系数据库中按行显示的结果转换为宽表中按列显示,以及在从多个关系表获得响应的情况下,组合不同的响应结果并转换为宽表模式。然后在步骤412将组合结果发送给客户端。
这里需要指出的是,虽然结合上述优选实施例描述了本发明,但显然本发明不限于此。技术人员还将认识到的是,结合本文公开内容描述的各种说明性的逻辑方框、模块和方法步骤可以实现为电子硬件、计算机软件或二者的组合。以软件实现为例,作为一个逻辑意义上的设备,是通过处理器将非易失性存储器中对应的计算机程序指令读取内存中运行形成的。从硬件层面而言,如图5所示,在一种实现方式中,根据本发明的转译模块可以由一个或多个计算设备实现,例如计算设备是一个客户端设备。需要注意的是,除了图5所示的处理器、内存、网络接口以及非易失性存储器之外,实施例中实现转译功能的计算设备通常根据其实际功能,还可以包括其它硬件,对此不再赘述。
本发明另一实施例提供的机器可读介质上存储有机器可读指令,该机器可读指令在被计算机执行时,使计算机执行本文公开的前述的任一种方法。在这种情况下,从机器可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的机器可读介质构成了本发明的一部分。
需要说明的是,上述各流程和设备的结构图中不是所有的步骤或模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。

Claims (28)

1.一种数据存储装置,包括:
关系数据库,用于存储与非关系数据模型对应的关系表模型的关系数据表,其中所述非关系数据模型符合非结构化查询语言NoSQL规范;
转译模块,用于将符合所述非结构化查询语言NoSQL规范的第一访问请求转译为符合所述关系表模型访问规范的第二访问请求,以实现对所述关系数据表的访问;
其中所述非关系数据模型为宽表模型,所述转译模块包括:
第一接口,用于接收所述第一访问请求,所述第一访问请求包括与宽表有关的第一事件特征以及第一属性特征,其中该第一属性特征包括所述宽表的列族特征;
解析模块,用于对所述第一访问请求进行解析以生成所述第二访问请求,其中所述第二访问请求包括与所述第一事件特征对应的第二事件特征以及与所述第一属性特征对应的第二属性特征,其中第二属性特征包括:
与所述宽表的列族对应的列族字段,用于存储所述宽表中的列族下的各列字段的名称;
数值字段,用于存储所述宽表中的列族下的各列字段的字段值;
第二接口,用于将所述第二访问请求转发至所述关系数据库。
2.如权利要求1的数据存储装置,其中所述第一访问请求还包括第一数值特征,该数值特征包括所述宽表中的列族下的各列字段的字段值。
3.如权利要求1的数据存储装置,其中所述第一属性特征包括所述宽表模型的行键特征与时间维度特征,所述第二属性特征包括用于存储所述宽表模型的行键的行键字段和用于存储所述宽表模型的时间维度值的时间字段;
其中所述关系数据库以所述行键字段、列族字段以及时间字段作为组合索引主键。
4.如权利要求1的数据存储装置,其中所述第一属性特征包括所述宽表模型的第一列族与第二列族特征,
其中所述解析模块基于所述第一访问请求生成分别与所述第一列族与第二列族对应的二个第二访问请求;
所述第二接口将所述二个第二访问请求转发至所述关系数据库,以访问与所述第一列族与第二列族对应的第一关系表与第二关系表。
5.如权利要求1-4之一的数据存储装置,其中所述第二接口接收来自所述关系数据库对所述第二访问请求的响应,所述解析模块按照所述非关系数据模型将所述响应转译成对所述第一访问请求的响应并通过所述第一接口发送。
6.如权利要求1-4之一的数据存储装置,其中
所述第一事件特征包括对所述宽表的每行记录的创建以及修改和读取;
所述第二事件特征包括对所述关系数据表的创建以及与所述列字段的数量对应的多行记录的修改和读取。
7.如权利要求3的数据存储装置,其中所述关系数据库按照所述行键字段对所述关系数据表进行分区。
8.如权利要求3的数据存储装置,其中所述关系数据库按照所述行键的前缀对所述关系数据表进行分区。
9.如权利要求3的数据存储装置,其中所述关系数据库按照对所述行键的分布进行估计而确定的分割点来对所述关系数据表进行分区。
10.如权利要求4的数据存储装置,其中所述第一与第二关系数据表相关联地聚集在所述存储装置上。
11.如权利要求6的数据存储装置,还包括另一转译模块,用于将与另一个数据存储模型相关的访问请求转译为符合所述关系表模型访问规范的访问请求,以实现对所述关系数据表的访问。
12.一种用于关系数据库的访问方法,其中所述关系数据库可存储与非关系数据模型对应的关系表模型的关系数据表,其中所述非关系数据模型符合非结构化查询语言NoSQL规范,该方法包括:
接收来自客户端的符合所述非结构化查询语言NoSQL规范的第一访问请求;
将所述第一访问请求转译为符合所述关系表模型访问规范的第二访问请求,以实现对所述关系数据表的访问;
将所述第二访问请求转发至所述关系数据库;
其中,所述非关系数据模型为宽表模型,所述第一访问请求包括与宽表有关的第一事件特征以及第一属性特征,其中该第一属性特征包括所述宽表的列族特征;
其中所述将所述第一访问请求转译为符合所述关系表模型访问规范的第二访问请求包括:对所述第一访问请求进行解析以生成所述第二访问请求,其中所述第二访问请求包括与所述第一事件特征对应的第二事件特征以及与所述第一属性特征对应的第二属性特征,其中第二属性特征包括:
与所述宽表的列族对应的列族字段,用于存储所述宽表中的列族下的各列字段的名称;
数据值字段,用于存储所述宽表中的列族下的各列字段的字段值。
13.如权利要求12的访问方法,其中所述第一访问请求还包括第一数值特征,该数值特征包括所述宽表中的列族下的各列字段的字段值。
14.如权利要求12的访问方法,其中所述第一属性特征包括所述宽表模型的行键特征与时间维度特征,所述第二属性特征包括用于存储所述宽表模型的行键的行键字段和用于存储所述宽表模型的时间维度值的时间字段;
其中所述关系数据库以所述行键字段、列族字段以及时间字段作为组合索引主键。
15.如权利要求12的访问方法,其中所述第一属性特征包括所述宽表模型的第一列族与第二列族特征,
其中所述将所述第一访问请求转译为符合所述关系表模型访问规范的第二访问请求进一步包括:基于所述第一访问请求生成分别与所述第一列族与第二列族对应的二个第二访问请求;
其中所述二个第二访问请求被转发至所述关系数据库,以分别访问与所述第一列族与第二列族对应的第一关系表与第二关系表。
16.如权利要求12-15之一的访问方法,进一步包括:
接收来自所述关系数据库对所述第二访问请求的响应,
按照所述非关系数据模型将所述响应转译成对所述第一访问请求的响应并发送给所述客户端。
17.如权利要求12-15之一的访问方法,其中
所述第一事件特征包括对所述宽表的每行记录的创建以及修改和读取;
所述第二事件特征包括对所述关系数据表的创建以及与所述列字段的数量对应的多行记录的修改和读取。
18.如权利要求14的访问方法,进一步包括按照所述行键字段对所述关系数据表进行分区。
19.如权利要求14的访问方法,进一步包括按照所述行键的前缀对所述关系数据表进行分区。
20.如权利要求14的访问方法,进一步包括按照对所述行键的分布进行估计而确定的分割点来对所述关系数据表进行分区。
21.如权利要求15的访问方法,其中所述第一与第二关系数据表相关联地聚集在存储装置上。
22.一种可提供关系数据库访问的转译装置,其中所述关系数据库用于存储与宽表模型对应的关系表模型的关系数据表,该转译装置包括:
第一接口,用于接收符合非结构化查询语言NoSQL规范的第一访问请求,所述第一访问请求包括与宽表有关的第一事件特征以及第一属性特征,其中该第一属性特征包括所述宽表的列族特征;
解析模块,用于对所述第一访问请求进行解析以生成符合所述关系表模型访问规范的第二访问请求,其中所述第二访问请求包括与所述第一事件特征对应的第二事件特征以及与所述第一属性特征对应的第二属性特征,其中第二属性特征包括:
与所述宽表的列族对应的列族字段,用于存储所述宽表中的列族下的各列字段的名称;
数值字段,用于存储所述宽表中的列族下的各列字段的字段值;
第二接口,用于将所述第二访问请求转发至所述关系数据库,以实现对所述关系数据表的访问。
23.如权利要求22的转译装置,其中所述第一访问请求还包括第一数值特征,该数值特征包括所述宽表中的列族下的各列字段的字段值。
24.如权利要求22的转译装置,其中所述第一属性特征包括所述宽表模型的第一列族与第二列族特征,
其中所述解析模块基于所述第一访问请求生成分别与所述第一列族与第二列族对应的二个第二访问请求;
所述第二接口将所述二个第二访问请求转发至所述关系数据库,以访问与所述第一列族与第二列族对应的第一关系表与第二关系表。
25.如权利要求22-24之一的转译装置,其中所述第二接口接收来自所述关系数据库对所述第二访问请求的响应,所述解析模块按照非关系数据模型将所述响应转译成对所述第一访问请求的响应并通过所述第一接口发送。
26.一种数据存储装置,包括:
关系数据库,用于存储与非关系数据模型对应的关系表模型的关系数据表,其中所述非关系数据模型符合非结构化查询语言NoSQL规范;
根据权利要求22-25之一的转译装置。
27.一种计算机可读介质,其上存储有代码,其中所述代码在由机器执行时,使得所述机器执行如权利要求12-21所述的方法中的任何一个。
28.一种计算设备,包括:
存储有代码的存储器,
处理器,配置为执行所述代码以实现如权利要求12-21之一的方法。
CN201910107394.3A 2019-02-02 2019-02-02 数据存储装置、转译装置及数据库访问方法 Active CN110032604B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201910107394.3A CN110032604B (zh) 2019-02-02 2019-02-02 数据存储装置、转译装置及数据库访问方法
TW108131216A TWI710919B (zh) 2019-02-02 2019-08-30 資料儲存裝置、轉譯裝置及資料庫存取方法
PCT/US2020/015872 WO2020160265A1 (en) 2019-02-02 2020-01-30 Data storage apparatus, translation apparatus, and database access method
EP20708895.6A EP3857400B1 (en) 2019-02-02 2020-01-30 Data storage apparatus, translation apparatus, and database access method
US16/779,531 US10853363B2 (en) 2019-02-02 2020-01-31 Data storage apparatus, translation apparatus, and database access method
US17/107,534 US11226961B2 (en) 2019-02-02 2020-11-30 Data storage apparatus, translation apparatus, and database access method
US17/574,419 US11797533B2 (en) 2019-02-02 2022-01-12 Data storage apparatus, translation apparatus, and database access method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910107394.3A CN110032604B (zh) 2019-02-02 2019-02-02 数据存储装置、转译装置及数据库访问方法

Publications (2)

Publication Number Publication Date
CN110032604A CN110032604A (zh) 2019-07-19
CN110032604B true CN110032604B (zh) 2021-12-07

Family

ID=67235636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910107394.3A Active CN110032604B (zh) 2019-02-02 2019-02-02 数据存储装置、转译装置及数据库访问方法

Country Status (5)

Country Link
US (3) US10853363B2 (zh)
EP (1) EP3857400B1 (zh)
CN (1) CN110032604B (zh)
TW (1) TWI710919B (zh)
WO (1) WO2020160265A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032604B (zh) 2019-02-02 2021-12-07 北京奥星贝斯科技有限公司 数据存储装置、转译装置及数据库访问方法
US11481391B1 (en) * 2019-11-25 2022-10-25 Amazon Technologies, Inc. Query language operations using a scalable key-item data store
JP7458259B2 (ja) * 2020-07-15 2024-03-29 株式会社日立製作所 データ管理装置及びデータ管理方法
CN111984745B (zh) * 2020-08-18 2024-04-16 平安国际智慧城市科技股份有限公司 数据库字段动态扩展方法、装置、设备及存储介质
CN112347104B (zh) * 2020-11-06 2023-09-29 中国人民大学 一种基于深度强化学习的列存储布局优化方法
CN112395294B (zh) * 2020-11-27 2023-07-18 浪潮云信息技术股份公司 一种数据库数据管理方法及系统、数据库
CN112434069A (zh) * 2020-12-01 2021-03-02 天津市鑫联兴科技有限公司 一种多源异构数据库访问适配方法及适配器
CN112395360B (zh) * 2020-12-01 2023-06-23 中国联合网络通信集团有限公司 基于非关系型数据库的数据同步方法、设备、装置和介质
CN112765169A (zh) * 2021-01-11 2021-05-07 北京众享比特科技有限公司 数据处理方法、装置、设备及存储介质
CN112910980B (zh) * 2021-01-27 2022-11-15 中国银联股份有限公司 一种数据库访问系统和方法
CN113254519B (zh) * 2021-05-28 2021-10-08 北京奇岱松科技有限公司 多源异构数据库的访问方法、装置、设备和存储介质
US20230138283A1 (en) * 2021-10-29 2023-05-04 Sap Se Transformation of property-value table to facilitate search
CN115599790B (zh) * 2022-11-10 2024-03-15 星环信息科技(上海)股份有限公司 一种数据存储系统、数据处理方法、电子设备和存储介质
CN116821139B (zh) * 2023-08-25 2024-01-23 南方电网数字电网研究院有限公司 基于分布式数据库的分区表设计的混合负载方法及系统

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1815468A (zh) * 2005-01-31 2006-08-09 微软公司 非关系型查询语言与关系型数据存储的集成
CN103514201A (zh) * 2012-06-27 2014-01-15 阿里巴巴集团控股有限公司 一种非关系型数据库的数据查询方法和装置
CN103823815A (zh) * 2012-11-19 2014-05-28 中国联合网络通信集团有限公司 服务器及数据库访问方法
WO2014085624A2 (en) * 2012-11-30 2014-06-05 Orbis Technologies, Inc. Ontology harmonization and mediation systems and methods
CN105681477A (zh) * 2016-04-08 2016-06-15 四川师范大学 一种数据访问方法和一种服务器
CN105868411A (zh) * 2016-04-27 2016-08-17 国网上海市电力公司 一种非关系型与关系型数据库一体化数据查询方法与系统
CN105938479A (zh) * 2016-03-31 2016-09-14 华南师范大学 一种关系表与非关系表的结构转换方法
CN106126644A (zh) * 2016-06-22 2016-11-16 中国南方电网有限责任公司 基于NoSQL数据库的录波文件存储方法
CN106294499A (zh) * 2015-06-09 2017-01-04 阿里巴巴集团控股有限公司 一种数据库数据查询方法和设备
CN106326248A (zh) * 2015-06-23 2017-01-11 阿里巴巴集团控股有限公司 数据库数据的存储方法和装置
CN106383850A (zh) * 2016-08-31 2017-02-08 东软集团股份有限公司 数据处理方法及装置
US9607063B1 (en) * 2015-12-10 2017-03-28 International Business Machines Corporation NoSQL relational database (RDB) data movement
CN106897322A (zh) * 2015-12-21 2017-06-27 中国移动通信集团山西有限公司 一种数据库和文件系统的访问方法和装置
CN107169033A (zh) * 2017-04-17 2017-09-15 东北大学 基于数据模式转换和并行框架的关系数据查询优化方法
CN107193968A (zh) * 2017-05-25 2017-09-22 努比亚技术有限公司 一种位置信息存储的方法、装置及计算机可读存储介质
CN108932313A (zh) * 2018-06-20 2018-12-04 斑马网络技术有限公司 数据处理方法、装置、电子设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8375044B2 (en) * 2008-06-24 2013-02-12 Microsoft Corporation Query processing pipelines with single-item and multiple-item query operators
US9436710B2 (en) * 2010-09-28 2016-09-06 Redis Labs Ltd. Systems, methods, and media for managing an in-memory NoSQL database
US20140214897A1 (en) * 2013-01-31 2014-07-31 Yuankai Zhu SYSTEMS AND METHODS FOR ACCESSING A NoSQL DATABASE USING BUSINESS INTELLIGENCE TOOLS
US10061823B2 (en) * 2013-11-15 2018-08-28 Salesforce.Com, Inc. Multi-tenancy for structured query language (SQL) and non structured query language (NoSQL) databases
CN103744952A (zh) * 2014-01-02 2014-04-23 北京集奥聚合网络技术有限公司 NoSQL数据库多表特性的实现方法及系统
CN104794123B (zh) * 2014-01-20 2018-07-27 阿里巴巴集团控股有限公司 一种为半结构化数据构建NoSQL数据库索引的方法及装置
US20150293764A1 (en) * 2014-04-10 2015-10-15 Omprakash VISVANATHAN Method and system to compose and execute business rules
US9430554B2 (en) * 2014-08-28 2016-08-30 Weebly, Inc. Object-relational mapping based on virtual columns
US10176153B1 (en) * 2014-09-25 2019-01-08 Amazon Technologies, Inc. Generating custom markup content to deter robots
CN106326309B (zh) * 2015-07-03 2020-02-21 阿里巴巴集团控股有限公司 一种数据查询方法和装置
US10552443B1 (en) * 2016-08-11 2020-02-04 MuleSoft, Inc. Schemaless to relational representation conversion
US10216823B2 (en) * 2017-05-31 2019-02-26 HarperDB, Inc. Systems, methods, and apparatus for hierarchical database
CN110032604B (zh) 2019-02-02 2021-12-07 北京奥星贝斯科技有限公司 数据存储装置、转译装置及数据库访问方法

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1815468A (zh) * 2005-01-31 2006-08-09 微软公司 非关系型查询语言与关系型数据存储的集成
CN103514201A (zh) * 2012-06-27 2014-01-15 阿里巴巴集团控股有限公司 一种非关系型数据库的数据查询方法和装置
CN103823815A (zh) * 2012-11-19 2014-05-28 中国联合网络通信集团有限公司 服务器及数据库访问方法
WO2014085624A2 (en) * 2012-11-30 2014-06-05 Orbis Technologies, Inc. Ontology harmonization and mediation systems and methods
CN106294499A (zh) * 2015-06-09 2017-01-04 阿里巴巴集团控股有限公司 一种数据库数据查询方法和设备
CN106326248A (zh) * 2015-06-23 2017-01-11 阿里巴巴集团控股有限公司 数据库数据的存储方法和装置
US9607063B1 (en) * 2015-12-10 2017-03-28 International Business Machines Corporation NoSQL relational database (RDB) data movement
CN106897322A (zh) * 2015-12-21 2017-06-27 中国移动通信集团山西有限公司 一种数据库和文件系统的访问方法和装置
CN105938479A (zh) * 2016-03-31 2016-09-14 华南师范大学 一种关系表与非关系表的结构转换方法
CN105681477A (zh) * 2016-04-08 2016-06-15 四川师范大学 一种数据访问方法和一种服务器
CN105868411A (zh) * 2016-04-27 2016-08-17 国网上海市电力公司 一种非关系型与关系型数据库一体化数据查询方法与系统
CN106126644A (zh) * 2016-06-22 2016-11-16 中国南方电网有限责任公司 基于NoSQL数据库的录波文件存储方法
CN106383850A (zh) * 2016-08-31 2017-02-08 东软集团股份有限公司 数据处理方法及装置
CN107169033A (zh) * 2017-04-17 2017-09-15 东北大学 基于数据模式转换和并行框架的关系数据查询优化方法
CN107193968A (zh) * 2017-05-25 2017-09-22 努比亚技术有限公司 一种位置信息存储的方法、装置及计算机可读存储介质
CN108932313A (zh) * 2018-06-20 2018-12-04 斑马网络技术有限公司 数据处理方法、装置、电子设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"A comprehensive evaluation of NoSQL datastores in the context of historians and sensor data analysis";Arun Kumar Kalakanti et al.;《IEEE International Conference on Big Data》;20151228;第1797-1806页 *
"Enabling JSON Document Stores in Relational Systems";Craig Chasseur et al.;《Sixteenth International Workshop on the Web and Databases》;20130623;第1-6页 *
"关系型数据库到HBase的转换设计";李青云 等;《信息网络安全》;20150331;第51-55页 *

Also Published As

Publication number Publication date
US20220138197A1 (en) 2022-05-05
TW202032386A (zh) 2020-09-01
CN110032604A (zh) 2019-07-19
US20210081416A1 (en) 2021-03-18
US11797533B2 (en) 2023-10-24
US20200250190A1 (en) 2020-08-06
WO2020160265A1 (en) 2020-08-06
TWI710919B (zh) 2020-11-21
EP3857400A1 (en) 2021-08-04
EP3857400B1 (en) 2023-05-24
US11226961B2 (en) 2022-01-18
US10853363B2 (en) 2020-12-01

Similar Documents

Publication Publication Date Title
CN110032604B (zh) 数据存储装置、转译装置及数据库访问方法
US11475034B2 (en) Schemaless to relational representation conversion
CA2843459C (en) Low latency query engine for apache hadoop
CN109491989B (zh) 数据处理方法及装置、电子设备、存储介质
US8880463B2 (en) Standardized framework for reporting archived legacy system data
CN106294695A (zh) 一种面向实时大数据搜索引擎的实现方法
Li et al. An integration approach of hybrid databases based on SQL in cloud computing environment
CN111221791A (zh) 一种多源异构数据导入数据湖的方法
CN103810219A (zh) 一种基于行存储数据库的数据处理方法及装置
CN113886485A (zh) 数据处理方法、装置、电子设备、系统和存储介质
CN111221785A (zh) 一种多源异构数据的语义数据湖构建方法
Kuderu et al. Relational database to NoSQL conversion by schema migration and mapping
US7529758B2 (en) Method for pre-processing mapping information for efficient decomposition of XML documents
US20200364220A1 (en) Object-based query language conversion and enrichment for database queries
CN114661832A (zh) 一种基于数据质量的多模态异构数据存储方法及系统
CN113515564A (zh) 基于j2ee的数据访问方法、装置、设备及存储介质
KR20100132752A (ko) 데이터베이스 분산을 통한 서비스 성능 향상을 위한 질의 데이터 분산 처리시스템
CN109117426B (zh) 分布式数据库查询方法、装置、设备及存储介质
CN115114325A (zh) 数据查询方法、装置、电子设备以及存储介质
EP1452980A2 (en) System and method for generating a request for information about selected objects
CN112395306A (zh) 数据库系统、数据处理方法、装置及计算机存储介质
JP2003323427A (ja) Xml情報検索装置と方法、該方法の実行プログラム、および該方法の実行プログラムを記録した記録媒体
CN116450609B (zh) 基于统一语法在异构数据源上建模的方法及设备
CN115952203B (zh) 数据查询方法、设备、系统及存储介质
CN113742346A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201016

Address after: English genus

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: English genus

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201016

Address after: English genus

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210207

Address after: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province

Applicant after: Ant financial (Hangzhou) Network Technology Co.,Ltd.

Address before: English genus

Applicant before: Innovative advanced technology Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210908

Address after: 100020 unit 02, 901, floor 9, unit 1, building 1, No.1, East Third Ring Middle Road, Chaoyang District, Beijing

Applicant after: Beijing Aoxing Beisi Technology Co.,Ltd.

Address before: 801-10, Section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province 310000

Applicant before: Ant financial (Hangzhou) Network Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant