CN102323947B - 环形架构数据库上预连接表的生成方法 - Google Patents
环形架构数据库上预连接表的生成方法 Download PDFInfo
- Publication number
- CN102323947B CN102323947B CN 201110260847 CN201110260847A CN102323947B CN 102323947 B CN102323947 B CN 102323947B CN 201110260847 CN201110260847 CN 201110260847 CN 201110260847 A CN201110260847 A CN 201110260847A CN 102323947 B CN102323947 B CN 102323947B
- Authority
- CN
- China
- Prior art keywords
- key word
- row
- data
- key
- train value
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种环形架构数据库上预连接表的生成方法,属于分布式数据存储领域,方法为:建立Key-Value数据库;构建关键列的列值索引并将其存储到数据库中;生成预连接表;若原数据表进行更新,则对相应预连接表进行更新;进行数据查询,输出查询结果;采用本发明的预连接表生成方法,可以在环形架构的Key-Value数据库中高效的生成预连接表,提供快速的连接查询功能;通过优化计算过程,降低了生成连接表的时间空间代价,加快了计算速度;同时根据更新维护方法,降低了查询延迟,可以提供实时的连接查询结果。
Description
技术领域
本发明属于分布式数据存储领域,主要涉及一种环形架构数据库上预连接表的生成方法。
背景技术
类似于MongoDB这类的面向文档的Key-Value数据库,由于其存储的都是类似于XML、JSON这类有结构和语义信息的文档,所以以消耗更多的内存和磁盘空间为代价,在值上建立了索引,通过对索引的检索,能够较好的支持对单表的条件查询,即便如此,像MongoDB这样的面向文档数据库也并不支持复杂的多表连接查询。
对于另一款常见的Key-Value数据库:Hbase,其数据是存储在分布式文件系统Hadoop上的,而它的SQL查询功能实际上是借助基于Hadoop的Hive来实现的,Hive是建立在Hadoop上的一款可以对数据进行提取转化加载的工具,其大部分的查询功能是MapReduce完成的,这样就导致了如下两个缺点:首先因为Hive本身是针对读多写少的数据仓库应用设计的,因此Hive中并不支持对数据的改写和添加,如果数据库中存储的是频繁更新的数据,Hbase是没办法支持的;另外由于MapReduce本身具有较高的延迟,所以导致了Hbase的SQL查询延迟较高。
目前流行的环形架构Key-Value数据库:Cassandra,通过对指定列建立列值索引,可以支持对单表的条件查询,但目前也不支持多表连接查询。
发明内容
针对现有方法存在的不足,本发明提出一种环形架构数据库上预连接表的生成方法,以达到快速连接查询、降低生成连接表时间,加快运算速度的目的。
本发明的技术方案是这样实现的:一种环形架构数据库上预连接表的生成方法,包括以下步骤:
步骤1:建立Key-Value数据库,所述Key-Value数据库由表组成,确定数据库中表的关键列,所述的关键列是指:作为表连接条件的列;
步骤2:构建关键列的列值索引并将其存储到数据库中,方法如下:
步骤2-1:构建列值索引的方法为:首先需要分别对不同表的关键列建立列值索引,所述的列值索引是一个新的表,在列值索引中,每一行的关键字是原数据表中关键列的列值,对应行下的列名为原数据表中对应行的关键字,且列值为空;
步骤2-2:采用分布式存储方式存储列值索引,即对于索引中每一行数据,按照关键字进行哈希,采用分布式哈希方法存储到集群中对应节点上;
步骤2-3:步骤2-2所述的每个节点上,对本地存储的不同表的关键列的列值索引片段建立同一个B树索引,维护在内存当中;
所述B树索引的建立规则如下:B树索引维护在内存当中,其关键字与列值索引中的关键字相同,内容为包含两个整型标志位的一维数组,所述一维数组的每一整型标志位对应步骤1所述的数据库中的一个表,标志位均初始化为0;
所述B树索引的建立方法如下:对任意本地节点i,在不同列值索引中插入一个关键字为k的数据,首先需要在B树索引中查询该关键字k,如果没有该关键字则对B树索引插入该关键字,并将所述一维数组中与该表对应的标志位加1,如果存在该关键字,则只对与该表对应的标志位加1;当一个关键字k的标志位都不为0时,说明两个列值索引中都至少包含一条关键字为k的数据,即该关键字k符合连接条件,所以将其插入链表list中;
步骤3:生成预连接表,方法为:将步骤2-3中得到的链表list中的所有关键字都读取出来,对于每一个关键字v,分别对两个关键列的列值索引读取关键字为v的列名的集合,对读出的两个列值索引的列名集合做笛卡尔积,得到符合连接条件的两个原数据表中的关键字对的集合,对于每一个关键字对,回溯到原数据表中取出相应行的数据进行连接,即得到了预连接表;
步骤4:若原数据表进行更新,则对相应预连接表进行更新,否则,执行步骤5,所述的对相应预连接表进行更新,方法为:
步骤4-1::对列值索引进行更新,更新操作包括删除操作和插入操作,
所述删除操作,即删除表中关键字为k行下的列col,方法为:先读取该列下的列值v,接下来对表执行:关键字为k,列名为col的删除操作,同时对列值索引执行:关键字为v,列名为k的删除操作;
所述的插入操作,即在表中插入关键字为k1,列名为col,列值为v1的数据时,首先读取表中关键字为k1,列名为col的值v,若v为空,则是全新的写入操作,这样只需对表执行关键字为k1,列名为col,列值为v1的写入操作,同时对列值索引执行关键字为v1,列名为k1的写入操作;若v不为空,则是一条修改操作,在表写入新数据,同时在列值索引中,删除关键字为v,列名k1的旧数据,写入关键字为v1,列名为k1的新数据;
步骤4-2:对B树索引和预连接表进行更新,方法如下:
①关键列更新,包括关键列的插入和删除,所述关键列的插入,即在表1插入了关键字为k1,列名为col1,列值为v1的数据,方法为:对于该列值索引,按关键字v1哈希找到存储节点位置,在节点本地,查找B树索引,将关键字v1对应第一个表的标志位加1,判断第二个表对应的标志位是否为0,如果不为0,则在节点本地读取第二个表的列值索引中关键字为v1的所有列名的集合keys,对于keys中的每一个元素k,作第一个表中关键字为k1的数据与第二个表中关键字为k的数据的连接;
关键列的删除,即第一个表删除关键字为k1,列名为col1的数据,此时,首先读取该列下的列值值v1,接着对于表1的列值索引按关键字v1哈希找到存储节点位置,在节点本地,查找B树索引,将关键字v1对应第一个表的标志位减1,接着判断第二个表的标志位是否为0,如果不为0,则在节点本地读取第二个表的列值索引中关键字为v1的所有列名的集合keys,对于keys中的每一个元素k,对连接结果表中关键字为k1_k的行进行删除;
②非关键列变化,这种情况,列值索引和每个节点上的B树索引都不需要更新,对第一个表中关键字为k1的非关键列col进行插入或删除:首先对表1读取关键字为k1,关键列的列值v1,接下来对表2的列值索引按关键字为v1读取列名集合keys,如果为空则结束,不为空则对keys中的每一个元素k,在结果表中对关键字k1_k的行中对应的列进行相应的变动;
步骤5:进行数据查询,输出查询结果;
步骤2所述一维数组的长度与步骤1中所述的数据库中的表个数相等,且至少为2个;
步骤3所述的预连接表的命名规则如下:结果表名为:<表1的名字>_<关键列的名字>_<表2的名字>_<关键列的名字>,如果第一个表中关键字为k1行与第二个表中关键字为ka行发生连接,则生成的新行关键字为k1_ka。
本发明优点:采用本发明的预连接表生成方法,可以在环形架构的Key-Value数据库中高效的生成预连接表,提供快速的连接查询功能;通过优化计算过程,降低了生成连接表的时间空间代价,加快了计算速度;同时根据更新维护方法,降低了查询延迟,可以提供实时的连接查询结果。
附图说明
图1为本发明环形架构数据库上预连接表的生成方法总流程图;
图2为本发明环形架构数据库上预连接表的生成方法与一般方法运行时间对比图;
图3为本发明环形架构数据库上预连接表的生成方法连接查询的响应时间图;
图4为本发明环形架构数据库上预连接表的生成方法在分布式环境下各节点的数据分布图;
图5为本发明环形架构数据库上预连接表的生成方法在各节点上运行时间图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
本实施例要实现手机用户对订阅图书信息的查询,给出一个查询条件为:查询订阅《老人与海》这本书的手机用户的姓名。
采用Key-Value数据库存储手机用户信息和用户订阅图书信息,如表1和表2所示:
表1为手机用户信息表user
表2为用户订阅图书信息表orderbook
本实施例采用环形架构Key-Value数据库上预连接表的生成方法,实现表1和表2的连接,其流程如图1所示,包括以下步骤:
步骤1:对于表1,实际上可能存储数亿行数据,数百列的手机用户信息,本实施例中,仅取这些数据中的5行,每行的4列信息加以说明,表1的account列其取值value分别为{zhang,wang,bai,liu,zhou},表2的account列其取值value分别为{zhou,wang,zhao,wang,wang},由表1和表2可知,其“account列”具有相同的取值,符合列值连接条件:
表1的account列的列值=表2的account列的列值,即
user.account.value=orderbook.account.value
综上,确定本实施例中表1和表2的关键列为account;
步骤2:构建表1和表2关键列的列值索引;
步骤2-1:分别建立表1和表2的“account列”的列值索引,方法为:
表1的列值索引表,如表3所示,关键字的值为表1中关键列(account)的列值,即{zhang,wang,bai,liu,zhou},每一行对应的列名为表1中对应行的关键字,即{135*,136*,137*,138*,139*},列值为空,即{null,null,null,null,null}:
表3为user表的列值索引
构建表2的列值索引,如表4所示,关键字的取值为表2中每一行的关键列(account)的列值,即{zhou,wang,zhao},每一行对应的列名为表2中对应行的关键字,即{136*,138*,139*},列值为空,即{null,null,null},如表4所示:
表4为orderbook表的列值索引
步骤2-2:表1和表2中的数据都按照一致性哈希算法存储在集群中的各个节点上;对于表1和表2的两个列值索引,相同的key必然在同一个节点上,本实施例中,假设在节点Ni,存储有表3的片段:表5和表4的片段:表6,如下所示:
表5为节点Ni上对应的表1的列值索引片段
表6为节点Ni上对应的表2的列值索引片段
表5包括了key集合{wang,liu,zhou},由于账户与手机号是一一对应关系,所以该索引中每一行下只有一列,表6包含了key集合{zhou,wang},该索引下每一行下的列的数量即该用户的订阅次数,在两个关键列的列值索引建立完成的同时,Ni节点上的B树索引和链表也同时完成;
步骤2-3:在Ni节点上的B树索引中,针对列举出的表1和表2片段信息:B树索引中关键字wang下的标志位数组各项为1和3,表示关键字wang在列值索引表5中出现1次,在列值索引表6中出现3次;同理,zhou为1和1;liu为1和0,即该用户没有进行过订阅,那么标志位数组各项均不为0的有wang,zhou,所以预链表list中的关键字只有wang和zhou;
步骤3:分别对列值索引:user_account,orderbook_account进行本地的key=wang的读取,得到的集合对<{136*},{002,004,005}>,作笛卡尔积得到key对的集合{<136*,002>,<136*,004>,<136*,005>}(类似地,得到zhou的key对集合{<139*,001>}),对于key对<136*,002>,对user进行key=136*的数据进行读取,与orderbook中key=002的数据进行合并,生成连接表:user_account_orderbook_account中key=136*_002的新行,将所有key对集合中的key都执行此操作,就得到了预连接表,如表7所示:
表7预连接表
对于第一行,key=136*002,是由user中的136*行和orderbook中的002行的内容合并而成,包含这两行下满足谓词条件的全部内容,新的column.name=<原表名><列名>,另外还包括两个新列,列名为<原表名><关键字>,列值为空,即列名为user 136*、readbook 002这两列;
步骤4:原数据表进行更新,则对相应预连接表进行更新:例如删除表2中key=002,column.name=account的列,那么首先读取该列下的列值:wang,接下来根据哈希算法,得到表2的列值索引表4中key=wang的存储节点Ni,在节点Ni本地,删除表4中key=wang,column.name=wang的列,同时按key=wang检索B树索引,将key=wang下的标志位数组中,与表2对应的标志位减1,此时wang下的标志位数组变为{1,2},因为表1对应的标志位不为0,那么需要按key=wang检索表3,得到column.name:136*,这样,对于结果表7,我们删除key=136*_002的行,如果不更新,执行步骤5;
步骤5:进行数据查询,输出查询结果。首先我们需要对书名列建立列值索引,如表8所示:
表8为用户订阅图书信息表中按书名建立的列值索引
由表8按key=《老人与海》得到column.name集合:{136*_002,139*_001},那么分别按key=136*_002、139*_001,column.name=user_name查询,得到结果:{王,周},查询结束;
图2给出了分别在集群和单点2种不同的实验环境下,数据量为600万行时,预连接表的生成方法的运行时间,其中纵坐标轴为运行时间,单位为秒,由图2中可以看到,使用本发明方法,单节点环境下,600万行数据量的运行时间约为900s,集群环境下约为110s(由于存在网络通信,因此10个节点的集群性能约为单节点的8-9倍),运行时间符合现实应用的需求,作为对比,图2中给出了不采用本发明方法的一般的预连接表生成算法的时间,可以看出,当实验环境为单节点时,一般算法的运行时间约为本发明方法的1.25倍,这是由于单点情况下没有节点间的网络通信,优化主要体现在避免了空读现象的产生,当实验环境为集群环境时,由于本发明方法使用哈希优化,减少了节点间的通信,因此优化效果更加明显:一般算法的运行时间约为本发明方法的1.45倍;
图3给出了分别在集群和单点2种不同测试环境下,当预连接表已生成后,分别针对100、200、300条查询结果响应时间变化的情况,其中纵坐标表示查询响应时间,单位为毫秒,由图3中可以看出,当查询数目增加时,对应的响应时间近似呈线性增加,即平均每个查询的响应时间基本不变,这样就保证了当查询数目增加时,保证运行的稳定性,另外每个连接查询都是毫秒级别的响应时间,完全能够满足人们的需求,符合实际应用;
图4为预连接结果表为600万行时,在集群环境下,数据在各节点上的分布情况,其中纵坐标为数据量大小,单位为兆,横坐标表示各节点的IP地址,数据总量约为4.8G,由于哈希分区的优点,节点上的数据分布较为平均,每个节点约存储480MB数据,根据上述数据可以看出本发明方法的结果具有良好的数据分布均匀性,进一步说明,数据可以均匀的分布在分布式系统的各个节点上,不会出现数据热点,充分的利用了系统资源;当系统规模扩展时,算法的性能也可以得到很好提高;
图5为预连接结果表为600万行时,本发明方法并行的在各节点上的运行时间情况,其中纵坐标为运行时间,单位为秒,横坐标表示各节点的IP地址,由实验数据得:每个节点上预连接运行时间平均约为112s,表明预连接方法具有较好的算法并行度,进一步说明了在分布式系统中本发明方法可以很好的并行的运行在各个节点上,不会出现由于某个节点上算法运行时间长而导致整个系统中执行时间的延长的问题,通过扩展集群规模,可以大幅缩短运算的运行时间。
Claims (2)
1.一种环形架构数据库上预连接表的生成方法,其特征在于:包括以下步骤:
步骤1:建立Key-Value数据库,所述Key-Value数据库由表组成,确定数据库中表的关键列,所述的关键列是指:作为表连接条件的列;
步骤2:构建关键列的列值索引并将其存储到数据库中,方法如下:
步骤2-1:构建列值索引的方法为:首先需要分别对不同表的关键列建立列值索引,所述的列值索引是一个新的表,在列值索引中,每一行的关键字是原数据表中关键列的列值,对应行下的列名为原数据表中对应行的关键字,且列值为空;
步骤2-2:采用分布式存储方式存储列值索引,即对于索引中每一行数据,按照关键字进行哈希,采用分布式哈希方法存储到集群中对应节点上;
步骤2-3:步骤2-2所述的每个节点上,对本地存储的不同表的关键列的列值索引片段建立同一个B树索引,维护在内存当中;
所述B树索引的建立规则如下:B树索引维护在内存当中,其关键字与列值索引中的关键字相同,内容为包含两个整型标志位的一维数组,所述一维数组的每一整型标志位对应步骤1所述的数据库中的一个表,标志位均初始化为0;
所述B树索引的建立方法如下:对任意本地节点i,在不同列值索引中插入一个关键字为k的数据,具体为首先需要在B树索引中查询该关键字k,如果没有该关键字则对B树索引插入该关键字,并将所述一维数组中与该表对应的标志位加1,如果存在该关键字,则只对一维数组中与该表对应的标志位加1;当一个关键字k的标志位都不为0时,说明每个列值索引都至少包含一条关键字为k的数据,即该关键字k符合连接条件,将其插入链表list中;
步骤3:生成预连接表,方法为:将步骤2-3中得到的链表list中的所有关键字都读取出来,对于每一个关键字v,分别对两个关键列的列值索引读取关键字为v的列名的集合,对读出的两个列值索引的列名集合做笛卡尔积,得到符合连接条件的两个原数据表中的关键字对的集合,对于每一个关键字对,回溯到原数据表中取出相应行的数据进行连接,即得到了预连接表;所述的预连接表的命名规则如下:预连接表名为:<表1的名字>_<关键列的名字>_<表2的名字>_<关键列的名字>,如果第一个原数据表中关键字为k1的行与第二个原数据表中关键字为ka的行发生连接,则生成的新行关键字为k1_ka;
步骤4:若原数据表进行更新,则对相应预连接表进行更新,否则,执行步骤5,所述的对相应预连接表进行更新,方法为:
步骤4-1:对列值索引进行更新,更新操作包括删除操作和插入操作,
所述删除操作,即删除表中关键字为k行下的列名为col的列,方法为:先读取该列下的列值v,接下来对表执行:关键字为k,列名为col的删除操作,同时对列值索引执行:关键字为v,列名为k的删除操作;
所述的插入操作,即在表中插入关键字为 k1,列名为col,列值为v1的数据时,首先读取表中关键字为k1,列名为col的值v,若v为空,则是全新的写入操作,只需对表执行关键字为k1,列名为col,列值为v1的写入操作,同时对列值索引执行关键字为v1,列名为k1的写入操作;若v不为空,则是一条修改操作,在表写入新数据,同时在列值索引中,删除关键字为v,列名k1的旧数据,写入关键字为v1,列名为k1的新数据;
步骤4-2:对B树索引和预连接表进行更新,方法如下:
① 关键列更新,包括关键列的插入和删除,所述关键列的插入,即在第一个原数据表中插入了关键字为k1,列名为col1,列值为v1的数据,方法为:对于该列值索引,按关键字v1哈希找到存储节点位置,在节点本地,查找B树索引,将关键字v1对应第一个原数据表的标志位加1,判断第二个原数据表对应的标志位是否为0,如果不为0,则在节点本地读取第二个原数据表的列值索引中关键字为v1的所有列名的集合keys,对于keys中的每一个元素k,作第一个原数据表中关键字为k1的数据与第二个原数据表中关键字为k的数据的连接;
关键列的删除,即第一个原数据表删除关键字为k1,列名为col1的数据,方法为:首先读取该列下的列值v1,接着对于第一个原数据表的列值索引按关键字v1哈希找到存储节点位置,在节点本地,查找B树索引,将关键字v1对应第一个原数据表的标志位减1,接着判断第二个原数据表的标志位是否为0,如果不为0,则在节点本地读取第二个原数据表的列值索引中关键字为v1的所有列名的集合keys,对于keys中的每一个元素k,对预连接表中关键字为k1_k的行进行删除;
② 非关键列变化,这种情况,列值索引和每个节点上的B树索引都不需要更新,对第一个原数据表中关键字为k1的非关键列col进行插入或删除:首先对第一个原数据表读取关键字为k1,关键列的列值v1,接下来对第二个元数据表的列值索引按关键字为v1读取列名集合keys,如果为空则结束,不为空则对keys中的每一个元素k,在预连接表中对关键字为k1_k的行中对应的列进行变动;
步骤5:进行数据查询,输出查询结果。
2.根据权利要求1所述的环形架构数据库上预连接表的生成方法,其特征在于:步骤2所述一维数组的长度与步骤1中所述的数据库中的表个数相等,且至少为2个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110260847 CN102323947B (zh) | 2011-09-05 | 2011-09-05 | 环形架构数据库上预连接表的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110260847 CN102323947B (zh) | 2011-09-05 | 2011-09-05 | 环形架构数据库上预连接表的生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102323947A CN102323947A (zh) | 2012-01-18 |
CN102323947B true CN102323947B (zh) | 2013-07-10 |
Family
ID=45451690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110260847 Active CN102323947B (zh) | 2011-09-05 | 2011-09-05 | 环形架构数据库上预连接表的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102323947B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246659B (zh) * | 2012-02-06 | 2016-05-25 | 阿里巴巴集团控股有限公司 | 键值数据查询的方法和装置 |
CN103377236B (zh) * | 2012-04-26 | 2018-02-16 | 中兴通讯股份有限公司 | 一种用于分布式数据库的连接查询方法及系统 |
CN103116652B (zh) * | 2013-03-06 | 2016-03-16 | 同方知网(北京)技术有限公司 | 一种基于拉链信息的索引存储管理方法 |
CN104636389B (zh) * | 2013-11-14 | 2018-03-27 | 博雅网络游戏开发(深圳)有限公司 | 实现Hbase数据库实时查询的方法和系统 |
CN103678519B (zh) * | 2013-11-29 | 2017-03-29 | 中国科学院计算技术研究所 | 一种支持Hive DML增强的混合存储系统及其方法 |
CN104023056B (zh) * | 2014-05-30 | 2017-11-24 | 华为技术有限公司 | 更新数据的方法和相关设备 |
CN106484740B (zh) * | 2015-09-01 | 2019-08-30 | 北京国双科技有限公司 | 一种数据表连接方法及装置 |
CN106933933B (zh) * | 2015-12-31 | 2019-12-10 | 北京国双科技有限公司 | 数据表信息的处理方法及装置 |
CN105677840B (zh) * | 2016-01-06 | 2019-02-05 | 东北大学 | 一种基于多维渐增数据模型的数据查询方法 |
CN107153643B (zh) * | 2016-03-02 | 2021-02-19 | 阿里巴巴集团控股有限公司 | 数据表连接方法及装置 |
SG11201808219PA (en) * | 2016-03-21 | 2018-10-30 | Human Longevity Inc | Genomic, metabolomic, and microbiomic search engine |
CN107305581B (zh) | 2016-04-25 | 2020-06-16 | 华为技术有限公司 | 分布式数据库系统中的表连接方法及分布式数据库系统 |
CN107784030B (zh) | 2016-08-31 | 2020-04-28 | 华为技术有限公司 | 一种处理连接查询的方法及装置 |
CN107229692B (zh) * | 2017-05-19 | 2018-05-01 | 哈工大大数据产业有限公司 | 一种基于流水线的分布式多表连接方法及系统 |
CN108090160A (zh) * | 2017-12-13 | 2018-05-29 | 中车株洲电力机车有限公司 | 基于嵌入式数据库的列车故障诊断装置及方法 |
CN108182209A (zh) * | 2017-12-18 | 2018-06-19 | 中国移动通信集团广东有限公司 | 一种数据索引方法、及设备 |
CN109545284A (zh) * | 2018-10-16 | 2019-03-29 | 中国人民解放军军事科学院军事医学研究院 | 基于药物及靶标信息的药物综合信息库建设方法及系统 |
CN109947709B (zh) * | 2019-04-02 | 2021-10-08 | 北京百度网讯科技有限公司 | 数据存储方法和装置 |
CN110008448B (zh) * | 2019-04-02 | 2023-10-17 | 中国工商银行股份有限公司 | 将SQL代码自动转换为Java代码的方法和装置 |
CN110764705B (zh) * | 2019-10-22 | 2023-08-04 | 北京锐安科技有限公司 | 一种数据的读写方法、装置、设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8543566B2 (en) * | 2003-09-23 | 2013-09-24 | Salesforce.Com, Inc. | System and methods of improving a multi-tenant database query using contextual knowledge about non-homogeneously distributed tenant data |
CN101685449B (zh) * | 2008-09-26 | 2012-07-11 | 国际商业机器公司 | 一种用于连接多个异构分布式数据库中的表的方法和系统 |
CN101751406B (zh) * | 2008-12-18 | 2012-01-04 | 赵伟 | 一种实现基于列存储的关系型数据库的方法及装置 |
-
2011
- 2011-09-05 CN CN 201110260847 patent/CN102323947B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102323947A (zh) | 2012-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102323947B (zh) | 环形架构数据库上预连接表的生成方法 | |
CN109299102B (zh) | 一种基于Elastcisearch的HBase二级索引系统及方法 | |
CN104252536B (zh) | 一种基于hbase的上网日志数据查询方法及装置 | |
Nayak et al. | Type of NOSQL databases and its comparison with relational databases | |
WO2018177060A1 (zh) | 查询优化方法及相关装置 | |
CN107818115B (zh) | 一种处理数据表的方法及装置 | |
CN104063487B (zh) | 基于关系型数据库及k‑d树索引的文件数据管理方法 | |
US20130282650A1 (en) | OLAP Query Processing Method Oriented to Database and HADOOP Hybrid Platform | |
EP2629212A1 (en) | Method for storing and searching tagged content items in a distributed system | |
WO2013155752A1 (zh) | 面向数据库与Hadoop混合平台的OLAP查询处理方法 | |
CN104850640A (zh) | 一种基于HBase的电网设备状态监测数据存储和查询方法及系统 | |
CN104536959A (zh) | 一种Hadoop存取海量小文件的优化方法 | |
CN103023982A (zh) | 一种云存储客户端的低延迟元数据访问方法 | |
CN103853727A (zh) | 提高大数据量查询性能的方法及系统 | |
CN101916288B (zh) | 一种移动通信用户搜索请求响应系统及其处理方法 | |
CN107506464A (zh) | 一种基于ES实现HBase二级索引的方法 | |
Chauhan et al. | Using the advantages of NOSQL: a case study on MongoDB | |
CN106294374A (zh) | 小文件合并的方法和数据查询系统 | |
Von der Weth et al. | Multiterm keyword search in NoSQL systems | |
Almaslukh et al. | Evaluating spatial-keyword queries on streaming data | |
US20230124432A1 (en) | Database Indexing Using Structure-Preserving Dimensionality Reduction to Accelerate Database Operations | |
CN103473276A (zh) | 超大型数据存储方法、分布式数据库系统及其检索方法 | |
Li et al. | Efficient subspace skyline query based on user preference using MapReduce | |
CN104008199A (zh) | 一种数据查询方法 | |
CN114116827B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |