CN105608085A - 一种混合存储介质的数据查询方法和装置 - Google Patents

一种混合存储介质的数据查询方法和装置 Download PDF

Info

Publication number
CN105608085A
CN105608085A CN201410652564.3A CN201410652564A CN105608085A CN 105608085 A CN105608085 A CN 105608085A CN 201410652564 A CN201410652564 A CN 201410652564A CN 105608085 A CN105608085 A CN 105608085A
Authority
CN
China
Prior art keywords
data
tables
storage medium
address
address information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410652564.3A
Other languages
English (en)
Inventor
刘诚忠
查锐
杜芳
吴健
冯是聪
吴明辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Mininglamp Software System Co ltd
Original Assignee
Beijing Mininglamp Software System 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 Mininglamp Software System Co ltd filed Critical Beijing Mininglamp Software System Co ltd
Priority to CN201410652564.3A priority Critical patent/CN105608085A/zh
Publication of CN105608085A publication Critical patent/CN105608085A/zh
Pending legal-status Critical Current

Links

Abstract

本发明提供一种混合存储介质的数据查询方法和装置。所述混合存储介质的数据查询方法,包括:获取待查询数据表;在地址数据库中,获取所述待查询数据表对应的至少一个地址信息,所述地址信息记录有所述待查询数据表所在的一存储介质以及所述待查询数据表在所述存储介质中的存储地址;根据所述地址信息中的所述存储介质以及所述存储地址,在所述存储介质的所述存储地址处,查找所述待查询数据表。本发明能够实现统一对混合存储介质上的数据进行查询。

Description

一种混合存储介质的数据查询方法和装置
技术领域
本发明涉及数据存储领域,特别是指一种混合存储介质的数据查询方法和装置。
背景技术
目前,企业级数据仓库一般采用数据库系统作为底层基础架构。在大数据背景下,很多企业开始尝试使用Hadoop(分布式计算)之类的新一代数据仓库技术进行构建。作为数据库和数据仓库领域的通用标准语言SQL(结构化查询语言),也顺势被移植到了Hadoop上面。最典型也是当前最广泛应用的是Apache(世界使用排名第一的Web服务器软件)社区的Hive(数据仓库工具)工具,能够使用类似SQL的语言HiveQL对Hadoop里存储的大量数据进行查询。
在实际应用过程中,客户需要对大量数据进行汇集和转移,而原始数据往往位于Oracle(甲骨文公司)这样的传统数据库中。一般来讲,客户和项目实施方会根据数据的逻辑定义去确定数据转移到Hadoop平台中的存储格式,然后花大量时间进行数据ETL(数据从来源端经过萃取、转置、加载至目的端的过程)工作。对于TB(万亿字节)级别数据,针对国内普遍数据中心还处于千兆网的环境前提下,轻则1-2天,重则需要更长的时间甚至数周,而数据在搬运后还需要各种清洗加工,这对于希望能快速建模,探索大数据价值的公司来说,无疑是极大的时间成本。
发明内容
本发明要解决的技术问题是,提供一种混合存储介质的数据查询方法和装置,能够实现统一对混合存储介质上的数据进行查询。
一方面,提供一种混合存储介质的数据查询方法,包括:
获取待查询数据表;
在地址数据库中,获取所述待查询数据表对应的至少一个地址信息,所述地址信息记录有所述待查询数据表所在的一存储介质以及所述待查询数据表在所述存储介质中的存储地址;
根据所述地址信息中的所述存储介质以及所述存储地址,在所述存储介质的所述存储地址处,查找所述待查询数据表。
当所述存储介质为关系数据库时,所述地址信息包括:数据库地址和数据库名称;
当所述存储介质为HDFS时,所述地址信息包括:节点地址和文件路径。
所述地址信息还包括:端口。
所述的方法,还包括:
根据所述端口,从所述存储介质的所述存储地址处,读取查找的所述待查询数据表。
所述获取待查询数据表的步骤之前,所述方法还包括:
获取各数据表所在的存储介质以及各数据表在所述存储介质中的存储地址;
根据所述各数据表所在的存储介质以及各数据表在所述存储介质中的存储地址,形成各数据表的地址信息;
建立各数据表与所述各数据表的地址信息之间的对应关系。
另一方面,提供一种混合存储介质的数据查询装置,包括:
第一获取模块,获取待查询数据表;
第二获取模块,在地址数据库中,获取所述待查询数据表对应的至少一个地址信息,所述地址信息记录有所述待查询数据表所在的一存储介质以及所述待查询数据表在所述存储介质中的存储地址;
查找模块,根据所述地址信息中的所述存储介质以及所述存储地址,在所述存储介质的所述存储地址处,查找所述待查询数据表。
当所述存储介质为关系数据库时,所述地址信息包括:数据库地址和数据库名称;
当所述存储介质为HDFS时,所述地址信息包括:节点地址和文件路径。
所述地址信息还包括:端口。
所述的装置,还包括:
读取模块,根据所述端口,从所述存储介质的所述存储地址处,读取查找的所述待查询数据表。
所述的装置,还包括:
第三获取模块,获取各数据表所在的存储介质以及各数据表在所述存储介质中的存储地址;
形成模块,根据所述各数据表所在的存储介质以及各数据表在所述存储介质中的存储地址,形成各数据表的地址信息;
建立模块,建立各数据表与所述各数据表的地址信息之间的对应关系。
本发明的上述技术方案的有益效果如下:
本发明通过对地址信息的建立,所述地址信息记录有所述待查询数据表所在的一存储介质以及所述待查询数据表在所述存储介质中的存储地址,能够实现统一对混合存储介质上的数据进行查询。
附图说明
图1为本发明所述的一种混合存储介质的数据查询方法的流程示意图;
图2为本发明所述的一种混合存储介质的数据查询装置的连接示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
如图1所示,为本发明所述的一种混合存储介质的数据查询方法,包括:
步骤10A,获取各数据表所在的存储介质以及各数据表在所述存储介质中的存储地址;
步骤10B,根据所述各数据表所在的存储介质以及各数据表在所述存储介质中的存储地址,形成各数据表的地址信息;
步骤10C,建立各数据表与所述各数据表的地址信息之间的对应关系。
其中上述步骤为准备步骤,为后续处理作准备。本发明构建了混合存储介质的存储记录方式,定义了不同的存储类型,然后记录了数据在不同存储类型上的分布。具体来说,以二维表为最小管理单位,元数据会记录每个表分布的存储介质,以及在该存储介质具体的存储地址。举例来讲,一个数据表,可能会分布在关系数据库中,那么地址信息会记录表名、数据库地址、数据库名称这样的三元组;如果分布在HDFS中,那么地址信息会记录表名、HDFS一任意节点的地址、HDFS的URL这样的三元组;更进一步的,这个表也可以同时存在HDFS和传统数据库里。因此每个数据表会对应一个存储列表,里面有一系列的存储节点,而这些不同类型的存储节点都有定义好的一致的地址、表示方式和读写接口。
步骤11,获取待查询数据表;
步骤12,在地址数据库中,获取所述待查询数据表对应的至少一个地址信息,所述地址信息记录有所述待查询数据表所在的一存储介质以及所述待查询数据表在所述存储介质中的存储地址;当所述存储介质为关系数据库时,所述地址信息包括:数据库地址和数据库名称;当所述存储介质为HDFS时,所述地址信息包括:节点地址和文件路径。
步骤13,根据所述地址信息中的所述存储介质以及所述存储地址,在所述存储介质的所述存储地址处,查找所述待查询数据表。
可选的,所述地址信息还包括:端口,便于后续对数据库的读取。端口也就是数据库的读取接口。
相应的,所述的方法,还包括:
步骤14,根据所述端口,从所述存储介质的所述存储地址处,读取查找的所述待查询数据表。
如图2所示,为本发明所述的一种混合存储介质的数据查询装置,包括:
第一获取模块21,获取待查询数据表;
第二获取模块22,在地址数据库中,获取所述待查询数据表对应的至少一个地址信息,所述地址信息记录有所述待查询数据表所在的一存储介质以及所述待查询数据表在所述存储介质中的存储地址;当所述存储介质为关系数据库时,所述地址信息包括:数据库地址和数据库名称;当所述存储介质为HDFS时,所述地址信息包括:节点地址和文件路径。所述地址信息还包括:端口。
查找模块23,根据所述地址信息中的所述存储介质以及所述存储地址,在所述存储介质的所述存储地址处,查找所述待查询数据表。
所述的装置,其特征在于,还包括:
读取模块24,根据所述端口,从所述存储介质的所述存储地址处,读取查找的所述待查询数据表。
所述的装置,还包括:
第三获取模块25,获取各数据表所在的存储介质以及各数据表在所述存储介质中的存储地址;
形成模块26,根据所述各数据表所在的存储介质以及各数据表在所述存储介质中的存储地址,形成各数据表的地址信息;
建立模块27,建立各数据表与所述各数据表的地址信息之间的对应关系。
以下描述本发明的应用场景。
本发明所述的存储介质,也就是说不同的存储类型的数据存储载体,可以包括Hadoop和传统数据库,然后统一对混合存储介质上的数据进行查询。
本发明构建了混合存储介质的元数据管理模块(类似于上述的建立模块)。这个管理模块抽象定义了不同的存储类型,然后记录了数据在不同存储类型上的分布。具体来说,以二维表为最小管理单位,元数据会记录每个表分布的存储介质,以及在该存储介质具体的存储地址。举例来讲,一个数据表,可能会分布在关系数据库中,那么元数据管理模块会记录表名、数据库地址、数据库名称这样的三元组;如果分布在HDFS中,那么元数据管理模块会记录表名、HDFS一任意节点的地址、HDFS的URL这样的三元组;更进一步的,这个表也可以同时存在HDFS和传统数据库里。因此每个数据表会对应一个存储列表,里面有一系列的存储节点,而这些不同类型的存储节点都有定义好的一致的地址、表示方式和读写接口。
我们用这个新的元数据管理替代了ApacheHive的元数据管理模块,作用是让Hive的用户能够无缝切换到新的数据平台上,用同样的语法进行数据操作。准确来说,Hive的用户能够做和之前同样的操作,仅仅是面对的存储从HDFS变为了包括HDFS在内的混合存储,而SQL语言解析为执行计划的工作,则重用了Hive的模块。
在SQL语言通过新的元数据管理模块分发到各个数据节点后,就需要具体的执行引擎进行数据查询了,需要注意的是:这个引擎需要保持在不同存储介质上的一致性,因为不同的表分布在不同的介质上会发生表连接等操作。因此需要一个一致性的、兼容多种数据源的SQL执行引擎。从实现上有两种途径:修改数据库的查询引擎,使其支持HDFS;或者修改HDFS的查询引擎,使其支持数据库。本发明选择了第二种途径,即修改HDFS上开源的能够进行实时数据查询的引擎ClouderaImpala,根据ClouderaImpala1.1的代码进行了扩展,使其可以兼容HDFS和数据库两种存储介质。
以下描述具体执行步骤。包括:
步骤1:构建元数据管理模块,根据不同存储介质的特点设计元数据管理项。在传统数据库中,需要管理数据库地址,端口,和数据库名;在HDFS中,需要管理连接的节点地址,端口和文件路径;
步骤2:根据要查询数据的类型,进行地址管理,分为两级:
存储节点编号,节点地址,端口,数据库/文件路径;
数据库表名,存储节点类型,存储节点编号;
步骤3:在数据库中建立元数据管理库,设计数据库表,对整理的数据项进行存储;
步骤4:建立一个web服务,能够对数据库进行各种常规的增删改查操作。
步骤41,设计并实现查询引擎的客户端。有以下要求:
a,允许新增数据源,增加的数据源信息存入元数据管理模块中;
b,实现客户端对各数据源的连接功能,在客户端里能够对这些信息进行查看,也能够选择断开某个连接;
c,能够对某数据源进行查看操作,客户端会通过元数据管理模块得到一个数据源的位置信息,然后使用标准接口对其发起访问,这个标准接口是由数据源自身提供的,比如:传统数据库支持ssh访问或者JDBC访问,而HDFS支持Thrift协议访问或者JDBC访问;
d,实现对数据表的定位功能。由于客户端要支持对某个存储在混合介质的数据表进行查询,因此首先要支持对该表的地址定位。具体来说要实现函数,函数为:输入数据库表名,能返回该表的地址列表,这个列表由多个存储节点的地址信息组成。
步骤42,在HDFS支持基础上实现对数据库的查询访问。
具体为:基于HDFS的查询引擎,加入数据库访问的逻辑,维护好代码的一致性,保证查询能够无差别的在HDFS的某个节点或者某台数据库服务器上进行访问,且能够跨节点进行联合查询.
本发明具有以下有益效果:
根据当前的大数据实际需求,本发明搭建了无ETL过程的大数据查询引擎架构,通过混合存储介质的元数据管理方式,用户能以最小的代价对数据进行探查,即使在有成熟的建模前,对零散的数据进行探索,能够最大程度的不进行数据搬运工作,避开大数据实施方案最重的ETL环节。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种混合存储介质的数据查询方法,其特征在于,包括:
获取待查询数据表;
在地址数据库中,获取所述待查询数据表对应的至少一个地址信息,所述地址信息记录有所述待查询数据表所在的一存储介质以及所述待查询数据表在所述存储介质中的存储地址;
根据所述地址信息中的所述存储介质以及所述存储地址,在所述存储介质的所述存储地址处,查找所述待查询数据表。
2.根据权利要求1所述的方法,其特征在于,
当所述存储介质为关系数据库时,所述地址信息包括:数据库地址和数据库名称;
当所述存储介质为分布式文件系统HDFS时,所述地址信息包括:节点地址和文件路径。
3.根据权利要求2所述的方法,其特征在于,所述地址信息还包括:存储介质的端口。
4.根据权利要求3所述的方法,其特征在于,还包括:
根据所述端口,从所述存储介质的所述存储地址处,读取查找的所述待查询数据表。
5.根据权利要求3所述的方法,其特征在于,所述获取待查询数据表的步骤之前,所述方法还包括:
获取各数据表所在的存储介质以及各数据表在所述存储介质中的存储地址;
根据所述各数据表所在的存储介质以及各数据表在所述存储介质中的存储地址,形成各数据表的地址信息;
建立各数据表与所述各数据表的地址信息之间的对应关系。
6.一种混合存储介质的数据查询装置,其特征在于,包括:
第一获取模块,获取待查询数据表;
第二获取模块,在地址数据库中,获取所述待查询数据表对应的至少一个地址信息,所述地址信息记录有所述待查询数据表所在的一存储介质以及所述待查询数据表在所述存储介质中的存储地址;
查找模块,根据所述地址信息中的所述存储介质以及所述存储地址,在所述存储介质的所述存储地址处,查找所述待查询数据表。
7.根据权利要求6所述的装置,其特征在于,
当所述存储介质为关系数据库时,所述地址信息包括:数据库地址和数据库名称;
当所述存储介质为HDFS时,所述地址信息包括:节点地址和文件路径。
8.根据权利要求7所述的装置,其特征在于,所述地址信息还包括:端口。
9.根据权利要求8所述的装置,其特征在于,还包括:
读取模块,根据所述端口,从所述存储介质的所述存储地址处,读取查找的所述待查询数据表。
10.根据权利要求8所述的装置,其特征在于,还包括:
第三获取模块,获取各数据表所在的存储介质以及各数据表在所述存储介质中的存储地址;
形成模块,根据所述各数据表所在的存储介质以及各数据表在所述存储介质中的存储地址,形成各数据表的地址信息;
建立模块,建立各数据表与所述各数据表的地址信息之间的对应关系。
CN201410652564.3A 2014-11-17 2014-11-17 一种混合存储介质的数据查询方法和装置 Pending CN105608085A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410652564.3A CN105608085A (zh) 2014-11-17 2014-11-17 一种混合存储介质的数据查询方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410652564.3A CN105608085A (zh) 2014-11-17 2014-11-17 一种混合存储介质的数据查询方法和装置

Publications (1)

Publication Number Publication Date
CN105608085A true CN105608085A (zh) 2016-05-25

Family

ID=55988028

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410652564.3A Pending CN105608085A (zh) 2014-11-17 2014-11-17 一种混合存储介质的数据查询方法和装置

Country Status (1)

Country Link
CN (1) CN105608085A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108197277A (zh) * 2018-01-09 2018-06-22 福建星瑞格软件有限公司 一种统一的数据库管理查询方法以及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101907978A (zh) * 2010-07-27 2010-12-08 浙江大学 基于固态硬盘和磁性硬盘的混合存储系统及存储方法
CN101958838A (zh) * 2010-10-14 2011-01-26 联动优势科技有限公司 数据访问方法及装置
CN102236609A (zh) * 2010-04-29 2011-11-09 深圳市朗科科技股份有限公司 存储设备及其访问方法
US20120054248A1 (en) * 2010-08-25 2012-03-01 International Business Machines Corporation Database Rebalancing in Hybrid Storage Environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236609A (zh) * 2010-04-29 2011-11-09 深圳市朗科科技股份有限公司 存储设备及其访问方法
CN101907978A (zh) * 2010-07-27 2010-12-08 浙江大学 基于固态硬盘和磁性硬盘的混合存储系统及存储方法
US20120054248A1 (en) * 2010-08-25 2012-03-01 International Business Machines Corporation Database Rebalancing in Hybrid Storage Environment
CN101958838A (zh) * 2010-10-14 2011-01-26 联动优势科技有限公司 数据访问方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108197277A (zh) * 2018-01-09 2018-06-22 福建星瑞格软件有限公司 一种统一的数据库管理查询方法以及装置
CN108197277B (zh) * 2018-01-09 2023-02-14 福建星瑞格软件有限公司 一种统一的数据库管理查询方法以及装置

Similar Documents

Publication Publication Date Title
CN106227800B (zh) 一种高度关联大数据的存储方法及管理系统
US11816126B2 (en) Large scale unstructured database systems
CN104102710A (zh) 一种海量数据查询方法
CN105404634B (zh) 基于Key-Value数据块的数据管理方法及系统
CN104657459A (zh) 一种基于文件粒度的海量数据存储方法
CN106708993A (zh) 基于大数据技术的空间数据存储处理中间件框架实现方法
RU2011127316A (ru) Способ репликации баз данных и устройство обновления таблицы
CN105488043A (zh) 基于Key-Value数据块的数据查询方法及系统
CN107451225A (zh) 用于半结构化数据的可缩放分析平台
WO2010045331A2 (en) Method and apparatus for gathering and organizing information pertaining to an entity
CN102567495A (zh) 一种海量信息存储系统及实现方法
CN103778133A (zh) 一种数据库对象的变更方法及装置
CN101520804B (zh) 基于sql数据库的文件检索系统与方法
CN103795811A (zh) 一种基于元数据保存存储信息及统计管理数据的方法
CN103823846A (zh) 一种基于图论的大数据存储及查询方法
CN105164673A (zh) 跨数据库和文件系统的查询一体化
CN102346744A (zh) 用于在多租户应用系统中处理物化表的装置
CN104021210B (zh) 以GeoJSON格式半结构化方式存储地理数据的MongoDB集群的地理数据读写方法
CN106780157B (zh) 基于Ceph的电网多时态模型存储与管理系统及方法
CN101963993B (zh) 一种数据库单表记录快速查找的方法
CN103365987A (zh) 一种基于共享磁盘架构的集群数据库系统及数据处理方法
CN102760164B (zh) 一种关系数据库管理系统与xml数据库管理系统之间数据交换的方法
Anand et al. MongoDB and Oracle NoSQL: A technical critique for design decisions
Hwang et al. A selection method of database system in Bigdata environment: a case study from smart education service in Korea
Haque et al. Distributed RDF triple store using hbase and hive

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Liu Chengzhong

Inventor after: Cha Rui

Inventor after: Du Fang

Inventor after: Wu Jian

Inventor after: Feng Shicong

Inventor before: Liu Chengzhong

Inventor before: Cha Rui

Inventor before: Du Fang

Inventor before: Wu Jian

Inventor before: Feng Shicong

Inventor before: Wu Minghui

COR Change of bibliographic data
RJ01 Rejection of invention patent application after publication

Application publication date: 20160525

RJ01 Rejection of invention patent application after publication