CN107818117B - 一种数据表的建立方法、在线查询方法及相关装置 - Google Patents
一种数据表的建立方法、在线查询方法及相关装置 Download PDFInfo
- Publication number
- CN107818117B CN107818117B CN201610826949.6A CN201610826949A CN107818117B CN 107818117 B CN107818117 B CN 107818117B CN 201610826949 A CN201610826949 A CN 201610826949A CN 107818117 B CN107818117 B CN 107818117B
- Authority
- CN
- China
- Prior art keywords
- node
- data table
- online
- data
- relationship
- 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
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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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
-
- 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
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据表的建立方法、在线查询方法及相关装置,所述建立方法包括:在一个物理集群上建立第一数据表,所述第一数据表用于在线存储第一节点与第二节点的关系信息;在所述物理集群上建立第二数据表,所述第二数据表用于在线存储第二节点的属性信息;其中,所述第一节点和所述第二节点属于不同的节点类型。在本发明实施例中,建立数据表时不再区分节点类型,因此即使第一节点和第二节点的节点类型不同,即所述第一数据表和所述第二数据表对应不同的节点类型,也仍然将所述第一数据表和所述第二数据表建立在同一个物理集群上。因此,在线查询时无需访问多个物理集群,提高在线查询速度。
Description
技术领域
本申请涉及在线存储技术领域,尤其是涉及一种数据表的建立方法、在线查询方法及相关装置。
背景技术
随着互联网技术的不断发展,产生的关系网络数据不仅种类越来越多而且数量级越来越大,例如图1所示的关系网络数据中包括两种类型的节点,一种是用户节点:用户i和用户j,另一种是商品节点:商品1和商品2,其中用户j是用户i的好友,用户j购买了商品1和商品2。而如何通过在线存储技术对这些关系网络数据进行存储,成为了人们越来越关心的问题。
目前,通常通过建立数据表的方式在线存储这些数据。例如,facebook公司采用unicorn架构建立数据表。在unicorn架构中,每一节点类型都对应单独的物理集群,也就是说每一节点类型的数据表,都建立在对应的物理集群中。例如图2所示,在用户物理集群中建立用户节点类型的数据表,该数据表用于存储用户节点的属性信息、好友列表、商品购买列表等,在商品物理集群中建立商品节点类型的数据表,该数据表用于存储商品节点的属性信息等。
可见,采用unicorn架构建立数据表,在一次在线查询过程中涉及不同节点类型的数据时,则需要访问多个物理集群。例如,若需要在线查询用户i的好友购买的商品时,需要首先访问用户集群,查询到用户i的好友是用户j,以及用户j购买的商品列表{i,j},再访问商品集群,查询商品i和j的属性信息作为最终的在线查询结果。显然,上述在线查询过程需要至少访问至少两个物理集群,导致在线查询速度较慢。
发明内容
本申请解决的技术问题在于提供一种数据表的建立方法、在线查询方法及相关装置,采用更合理地架构建立数据表,从而在线查询时无需访问多个物理集群,提高在线查询速度。
为此,本申请解决技术问题的技术方案是:
本申请提供了一种数据表的建立方法,包括:
在一个物理集群上建立第一数据表,所述第一数据表用于在线存储第一节点与第二节点的关系信息;
在所述物理集群上建立第二数据表,所述第二数据表用于在线存储第二节点的属性信息;
其中,所述第一节点和所述第二节点属于不同的节点类型。
可选的,所述第一数据表包括第一索引项和第二索引项,所述第一索引项用于在线存储所述第一节点的标识,所述第二索引项用于在线存储与所述第一节点对应的所述第二节点的标识;
所述第二数据表包括第三索引项和第一属性项,所述第三索引项用于在线存储所述第二节点的标识,所述第一属性项用于在线存储所述第二节点的属性信息。
可选的,所述第一数据表还包括第二属性项,所述第二属性项用于在线存储所述第一节点和所述第二节点的对应关系的属性信息。
可选的,所述第一数据表为键-键-值key-key-value结构,其中,所述第一索引项为主键信息,所述第二索引项为从键信息,所述第二属性项为值信息;
所述第二数据表为键-值key-value结构,其中,所述第三索引项为键信息,所述第一属性项为值信息。
可选的,所述物理集群包括N个存储分区,N大于或等于2;所述建立方法还包括:
根据所述第一索引项从N个存储分区中确定第一分区,根据所述第三索引项从N个存储分区中确定第二分区;
所述在一个物理集群上建立第一数据表,包括:在所述物理集群的第一分区上建立第一数据表;
所述在所述物理集群上建立第二数据表,包括:在所述物理集群的第二分区上建立第二数据表。
可选的,所述第一分区和所述第二分区分别包括M个备份区域,M大于或等于2;
在所述物理集群的第一分区上建立第一数据表,包括:在所述物理集群的第一分区的M个备份区域上,分别建立所述第一数据表;
在所述物理集群的第二分区上建立第二数据表,包括:在所述物理集群的第二分区的M个备份区域上,分别建立所述第二数据表。
可选的,所述第一数据表还用于在线存储第三节点与第四节点的关系信息;所述第二数据表还用于在线存储第四节点的属性信息;其中,所述第三节点和所述第一节点属于相同的节点类型,所述第四节点和所述第二节点属于相同的节点类型;
或者,所述方法还包括:在所述物理集群上建立第三数据表,所述第三数据表用于在线存储第五节点与所述第一节点的关系信息。
本申请提供了一种在线查询方法,一个物理集群上建立有第一数据表和第二数据表,所述第一数据表用于在线存储第一节点与第二节点的关系信息;所述第二数据表用于在线存储第二节点的属性信息;其中,所述第一节点和所述第二节点属于不同的节点类型;所述方法包括:
接收在线查询请求,所述在线查询请求用于指示在线查询第一节点的关系数据;
在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第一节点的关系数据;
其中,所述查询到所述第一节点的关系数据包括:从所述第一数据表中查询到所述第一节点对应的第二节点,从所述第二数据表中查询到所述第二节点的属性信息。
可选的,所述第一数据表包括第一索引项和第二索引项,所述第一索引项用于在线存储所述第一节点的标识,所述第二索引项用于在线存储与所述第一节点对应的所述第二节点的标识;
所述第二数据表包括第三索引项和第一属性项,所述第三索引项用于在线存储所述第二节点的标识,所述第一属性项用于在线存储所述第二节点的属性信息。
可选的,所述物理集群包括N个存储分区,N大于或等于2;所述方法还包括:
根据所述第一索引项从N个存储分区中确定第一分区,根据所述第二索引项从N个存储分区中确定第二分区;
在线访问所述物理集群中的所述第一数据表和所述第二数据表,包括:在线访问所述物理集群中的所述第一分区上的所述第一数据表,和所述第二分区上的所述第二数据表。
可选的,所述第一数据表还用于在线存储第三节点与第四节点的关系信息;所述第二数据表还用于在线存储第四节点的属性信息;其中,所述第三节点和所述第一节点属于相同的节点类型,所述第四节点和所述第二节点属于相同的节点类型;所述在线查询请求还用于指示在线查询第三节点的关系数据;
所述方法还包括:
在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第三节点的关系数据;
其中,所述查询到所述第三节点的关系数据包括:从所述第一数据表中查询到所述第三节点对应的第四节点;从所述第二数据表中查询到所述第四节点的属性信息。
可选的,所述在线查询请求中包括第一复合算子;所述方法还包括:
从所述第一复合算子中解析出第一指令、第二指令和第三指令,所述第一指令用于指示在线查询第一节点的关系数据,所述第二指令用于指示在线查询第三节点的关系数据,所述第三指令用于指示对关系数据进行综合处理;
查询到所述第一节点的关系数据,包括:基于所述第一指令,查询到所述第一节点的关系数据;
查询到所述第三节点的关系数据,包括:基于所述第二指令,查询到所述第三节点的关系数据;
所述方法还包括:基于所述第三指令,对所述第一节点的关系数据和所述第三节点的关系数据进行综合处理。
可选的,所述综合处理包括以下任一项处理:合并处理、交集运算、以及差集运算。
可选的,所述物理集群上还建立有第三数据表,所述第三数据表用于在线存储第五节点与所述第一节点的关系信息;所述在线查询请求用于指示在线查询第五节点的关系数据:
在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第一节点的关系数据,包括:在线访问所述物理集群中的所述第一数据表、所述第二数据表和所述第三数据表,查询到所述第五节点的关系数据;
查询到所述第五节点的关系数据,包括:从所述第三数据表中查询到所述第五节点对应的所述第一节点,查询到所述第一节点的关系数据。
可选的,所述在线查询请求中包括第二复合算子;所述方法还包括:
从所述第一复合算子中解析出第四指令和第五指令,所述第四指令用于指示在线查询第五节点对应的节点,所述第五指令用于指示在线查询第五节点对应的节点的关系数据;
从所述第三数据表中查询到所述第五节点对应的所述第一节点,包括:基于所述第四指令,从所述第三数据表中查询到所述第五节点对应的所述第一节点;
查询到所述第一节点的关系数据,包括:基于所述第五指令,查询到所述第一节点的关系数据。
本申请提供了一种数据表的建立装置,包括:
第一建立单元,用于在一个物理集群上建立第一数据表,所述第一数据表用于在线存储第一节点与第二节点的关系信息;
第二建立单元,用于在所述物理集群上建立第二数据表,所述第二数据表用于在线存储第二节点的属性信息;
其中,所述第一节点和所述第二节点属于不同的节点类型。
可选的,所述第一数据表包括第一索引项和第二索引项,所述第一索引项用于在线存储所述第一节点的标识,所述第二索引项用于在线存储与所述第一节点对应的所述第二节点的标识;
所述第二数据表包括第三索引项和第一属性项,所述第三索引项用于在线存储所述第二节点的标识,所述第一属性项用于在线存储所述第二节点的属性信息。
可选的,所述第一数据表还包括第二属性项,所述第二属性项用于在线存储所述第一节点和所述第二节点的对应关系的属性信息。
可选的,所述第一数据表为键-键-值key-key-value结构,其中,所述第一索引项为主键信息,所述第二索引项为从键信息,所述第二属性项为值信息;
所述第二数据表为键-值key-value结构,其中,所述第三索引项为键信息,所述第一属性项为值信息。
可选的,所述物理集群包括N个存储分区,N大于或等于2;所述建立装置还包括:
确定单元,用于根据所述第一索引项从N个存储分区中确定第一分区,根据所述第三索引项从N个存储分区中确定第二分区;
所述在一个物理集群上建立第一数据表时,所述第一建立单元具体用于,在所述物理集群的第一分区上建立第一数据表;
所述在所述物理集群上建立第二数据表时,所述第二建立单元具体用于,在所述物理集群的第二分区上建立第二数据表。
可选的,所述第一分区和所述第二分区分别包括M个备份区域,M大于或等于2;
在所述物理集群的第一分区上建立第一数据表时,所述第一建立单元具体用于,在所述物理集群的第一分区的M个备份区域上,分别建立所述第一数据表;
在所述物理集群的第二分区上建立第二数据表时,所述第二建立单元具体用于,在所述物理集群的第二分区的M个备份区域上,分别建立所述第二数据表。
可选的,所述第一数据表还用于在线存储第三节点与第四节点的关系信息;所述第二数据表还用于在线存储第四节点的属性信息;其中,所述第三节点和所述第一节点属于相同的节点类型,所述第四节点和所述第二节点属于相同的节点类型;
或者,所述建立装置还包括:第三建立单元,用于在所述物理集群上建立第三数据表,所述第三数据表用于在线存储第五节点与所述第一节点的关系信息。
本申请提供了一种在线查询装置,一个物理集群上建立有第一数据表和第二数据表,所述第一数据表用于在线存储第一节点与第二节点的关系信息;所述第二数据表用于在线存储第二节点的属性信息;其中,所述第一节点和所述第二节点属于不同的节点类型;所述装置包括:
接收单元,用于接收在线查询请求,所述在线查询请求用于指示在线查询第一节点的关系数据;
查询单元,用于在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第一节点的关系数据;
其中,所述查询到所述第一节点的关系数据包括:从所述第一数据表中查询到所述第一节点对应的第二节点,从所述第二数据表中查询到所述第二节点的属性信息。
可选的,所述第一数据表包括第一索引项和第二索引项,所述第一索引项用于在线存储所述第一节点的标识,所述第二索引项用于在线存储与所述第一节点对应的所述第二节点的标识;
所述第二数据表包括第三索引项和第一属性项,所述第三索引项用于在线存储所述第二节点的标识,所述第一属性项用于在线存储所述第二节点的属性信息。
可选的,所述物理集群包括N个存储分区,N大于或等于2;所述装置还包括:
确定单元,用于根据所述第一索引项从N个存储分区中确定第一分区,根据所述第二索引项从N个存储分区中确定第二分区;
在线访问所述物理集群中的所述第一数据表和所述第二数据表时,所述查询单元具体用于:在线访问所述物理集群中的所述第一分区上的所述第一数据表,和所述第二分区上的所述第二数据表。
可选的,所述第一数据表还用于在线存储第三节点与第四节点的关系信息;所述第二数据表还用于在线存储第四节点的属性信息;其中,所述第三节点和所述第一节点属于相同的节点类型,所述第四节点和所述第二节点属于相同的节点类型;所述在线查询请求还用于指示在线查询第三节点的关系数据;
所述查询单元还用于,在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第三节点的关系数据;
其中,所述查询到所述第三节点的关系数据包括:从所述第一数据表中查询到所述第三节点对应的第四节点;从所述第二数据表中查询到所述第四节点的属性信息。
可选的,所述在线查询请求中包括第一复合算子;所述装置还包括:
解析单元,用于从所述第一复合算子中解析出第一指令、第二指令和第三指令,所述第一指令用于指示在线查询第一节点的关系数据,所述第二指令用于指示在线查询第三节点的关系数据,所述第三指令用于指示对关系数据进行综合处理;
查询到所述第一节点的关系数据时,所述查询单元具体用于,基于所述第一指令,查询到所述第一节点的关系数据;
查询到所述第三节点的关系数据时,所述查询单元具体用于,基于所述第二指令,查询到所述第三节点的关系数据;
所述装置还包括:处理单元,用于基于所述第三指令,对所述第一节点的关系数据和所述第三节点的关系数据进行综合处理。
可选的,所述综合处理包括以下任一项处理:合并处理、交集运算、以及差集运算。
可选的,所述物理集群上还建立有第三数据表,所述第三数据表用于在线存储第五节点与所述第一节点的关系信息;所述在线查询请求用于指示在线查询第五节点的关系数据:
在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第一节点的关系数据时,所述查询单元具体用于,在线访问所述物理集群中的所述第一数据表、所述第二数据表和所述第三数据表,查询到所述第五节点的关系数据;
查询到所述第五节点的关系数据时,所述查询单元具体用于,从所述第三数据表中查询到所述第五节点对应的所述第一节点,查询到所述第一节点的关系数据。
可选的,所述在线查询请求中包括第二复合算子;所述装置还包括:
解析单元,用于从所述第一复合算子中解析出第四指令和第五指令,所述第四指令用于指示在线查询第五节点对应的节点,所述第五指令用于指示在线查询第五节点对应的节点的关系数据;
从所述第三数据表中查询到所述第五节点对应的所述第一节点时,所述查询单元具体用于,基于所述第四指令,从所述第三数据表中查询到所述第五节点对应的所述第一节点;
查询到所述第一节点的关系数据时,所述查询单元具体用于,基于所述第五指令,查询到所述第一节点的关系数据。
通过上述技术方案可知,在本发明实施例中,建立数据表时不再区分节点类型,因此即使第一节点和第二节点的节点类型不同,即所述第一数据表和所述第二数据表对应不同的节点类型,也仍然将所述第一数据表和所述第二数据表建立在同一个物理集群上。因此,在线查询时无需访问多个物理集群,提高在线查询速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。
图1为一种属性图的结构示意图;
图2为unicorn架构的示意图;
图3为本申请提供的一种方法实施例的流程示意图;
图4为本申请提供的一种集群架构的结构示意图;
图5为本申请提供的另一种方法实施例的流程示意图;
图6为本申请提供的一种装置实施例的结构示意图;
图7为本申请提供的另一种装置实施例的结构示意图。
具体实施方式
关系网络数据指的是在互联网产生的数据中存在对应关系的数据,例如表示用户和商品之间的购买关系的数据,表示用户和用户之间的好友关系的数据都可以构成关系网络数据。
关系网络数据可以通过属性图表示。例如图1所示的属性图中,包括两种类型的节点,一种是用户节点:用户i和用户j,另一种是商品节点:商品1和商品2,其中用户j是用户i的好友,用户j购买了商品1和商品2。并且,属性图中的节点以及节点之间通常还具有属性信息,例如,用户i的属性信息包括用户i的姓名、年龄和性别等用户信息,商品1的属性信息包括商品1的介绍、价格和种类等商品信息,用户i和用户j之间还具有好友属性信息,例如好友关系值等,用户j与商品1和商品2之间还具有购买属性信息,例如购买时间等。
在一种在线存储架构:unicorn架构中,每一节点类型都对应单独的物理集群。例如图2所示,在用户物理集群中建立用户节点类型的数据表1和数据表2,数据表1用于存储用户i和j的好友列表,数据表2用于存储用户i和用户j的商品购买列表,在商品物理集群中建立商品节点类型的数据表3,数据表3用于存储商品1和2的属性信息等。
若需要在线查询用户i的好友购买的商品时,需要首先访问用户集群,从数据表1中查询到用户i的好友是用户j,从数据表2中查询到用户j购买的商品列表{i,j},再访问商品集群,从数据表3查询商品i和j的属性信息作为最终的在线查询结果。显然,上述在线查询过程需要至少访问用户集群和商品集群至少两个物理集群。而由于不同的物理集群中,配置属性等各种参数均不相同,因此访问速度较慢,进一步导致在线查询速度较慢。
可见,unicorn架构在建立数据表时区分节点类型,因此不同的节点类型的数据表需要建立在不同的物理集群上。显然,这种方式不适合于节点类型较多,或者频繁新增节点类型的场景下。例如,节点类型较多时,就需要较多的物理集群;而当频繁新增节点类型时,每新增一个节点类型,就需要一个独立的物理集群,这显然会造成较高的成本。
本申请实施例提供一种数据表的建立方法、在线查询方法及相关装置,在建立数据表时不再区分节点类型,将不同的节点类型的数据表建立在同一物理集群上,实现了更合理地架构建立数据表,从而在线查询时无需访问多个物理集群,提高在线查询速度。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
请参阅图3,本申请实施例提供了数据表的建立方法的一种方法实施例。本实施例的所述方法包括:
S301:在一个物理集群上建立第一数据表,所述第一数据表用于在线存储第一节点与第二节点的关系信息。
在本申请实施例中,所述第一节点和所述第二节点属于不同的节点类型。例如,所述第一节点可以为用户节点,所述第二节点可以为商品节点,因此所述第一数据表用于存储用户节点和商品节点的关系信息,表示每个用户分别购买了哪些商品。
S302:在所述物理集群上建立第二数据表,所述第二数据表用于在线存储第二节点的属性信息。
例如,所述第二节点为商品节点,因此所述第二数据表用于存储商品节点的属性信息。
通过上述技术方案可知,在本发明实施例中,建立数据表时不再区分节点类型,因此即使所述第一节点和所述第二节点的节点类型不同,即所述第一数据表和所述第二数据表对应不同的节点类型,也仍然将所述第一数据表和所述第二数据表存储在同一个物理集群上。因此,在线查询时无需访问多个物理集群,提高在线查询速度。例如,第一节点为用户节点,第二节点为商品节点,在线查询用户i购买的商品时,只需访问所述一个物理集群,就能够从第一数据表中查询到用户i对应的商品1,并且从第二数据表中查询到商品1的属性信息,提高了在线查询速度。此外,还可以从第一数据表中查询到用户i对应的商品2,并且从第二数据表中查询到商品2的属性信息。
此外,当节点类型较多时无需较多的物理集群,并且新增节点类型时也不需要重新布置一个物理集群,而是可以将新增节点类型的数据表建立在同一个物理集群上,从而能够节约成本。
其中,所述第一数据表和所述第二数据表可以通过索引项和属性项进行表示。下面分别说明。
所述第一数据表可以包括第一索引项和第二索引项,所述第一索引项用于在线存储所述第一节点的标识,所述第二索引项用于在线存储与所述第一节点对应的所述第二节点的标识。所述第一数据表还可以包括第二属性项,所述第二属性项用于在线存储所述第一节点和所述第二节点的对应关系的属性信息。
例如表1所示,所述第一数据表可以为key-key-value(键-键-值)结构,其中,所述第一索引项为主key信息,存储有用户j的标识,所述第二索引项为从key信息,存储有用户j购买的商品的标识,所述第二属性项为value信息,存储有用户j购买商品的时间。
表1
主key | 从key | value |
用户j | 商品1 | 2016.5.3 |
用户j | 商品2 | 2016.7.9 |
当对所述表1中的数据进行在线查询时,可以根据主key查询从key和/或value,或者也可以根据主key和从key查询value。例如,查询用户j购买的商品列表为商品1和商品2。
所述第二数据表可以包括第三索引项和第一属性项,所述第三索引项用于在线存储所述第二节点的标识,所述第一属性项用于在线存储所述第二节点的属性信息。
例如表2所示,所述第二数据表可以表示为key-value(键-值)结构,其中,所述第三索引项为key信息,存储有商品的标识,所述第一属性项为value信息,存储有商品的属性信息,例如商品1的介绍、价格和种类等商品信息。
表2
key | value |
商品1 | 商品1的属性信息 |
商品2 | 商品2的属性信息 |
当对所述表2中的数据进行在线查询时,可以根据key查询value。例如,查询商品1的属性信息。
在本申请实施例中,除了上述数据之外,所述物理集群还可以存储有更多的数据。下面分别举例说明。
在第一数据表中除了所述第一节点和所述第二节点的对应关系之外,还可以在线存储有第三节点和第四节点的对应关系,其中所述第三节点和所述第一节点属于相同的节点类型,所述第四节点和所述第二节点属于相同的节点类型。也就是说,所述第一数据表可以用于在线存储第一类型节点和第二类型节点的对应关系。例如表3所示,所述第一数据表还存储有用户i购买的商品的标识,以及用户i购买商品的时间。
表3
主key | 从key | value |
用户j | 商品1 | 2016.5.3 |
用户j | 商品2 | 2016.7.9 |
用户i | 商品3 | 2016.1.11 |
在所述第二数据表中除了所述第二节点的属性信息之外,还可以在线存储有其他节点的属性信息,例如第四节点的属性信息。也就是说,所述第二数据表可以用于在线存储第二类型节点的属性信息。例如表4所示,所述第二数据表还存储有商品3的属性信息。
表4
key | value |
商品1 | 商品1的属性信息 |
商品2 | 商品2的属性信息 |
商品3 | 商品3的属性信息 |
所述物理集群上除了所述第一数据表和所述第二数据表之外,还可以建立有其他的数据表,例如第三数据表。其中,所述第三数据表用于在线存储第五节点与所述第一节点的关系信息。其中,第五节点可以与所述第一节点可以属于相同类型的节点,例如表5所示,第五节点和第一节点都为用户节点,第三数据表用于存储用户i的好友列表:用户j,以及用户i与用户j的好友关系值;所述第五节点也可以与所述第一节点属于不同类型的节点。
表5
主key | 从key | value |
用户i | 用户j | 79 |
需要说明的是,本申请实施例中对所述物理集群上建立的数据表的结构、以及各个数据表对应的节点类型均不加以限制。
在本申请实施例中,所述物理集群可以如图4所示,设置有N个分区(英文:partition),N大于或等于2,在建立节点的数据表时,根据数据表的索引项的数据确定出对应的分区,将数据表建立在对应的分区。下面具体说明。
所述方法还可以包括:根据所述第一索引项从N个存储分区中确定第一分区,例如,根据表1中主key的值,利用哈希算法确定出分区1,S301包括在所述物理集群的第一分区上建立第一数据表。
所述方法还可以包括:根据所述第三索引项从N个存储分区中确定第二分区,例如,根据表2中key的值,利用哈希算法确定出分区2,S302包括:在所述物理集群的第二分区上建立第二数据表。在本发明实施例中,还可以将同一数据表建立在多个分区上,例如,根据数据表中每项数据的主key的值,确定一个分区,在该分区中存放该数据表的该项数据。
在图4所示的分布式物理集群中,各个分区中分别包括M个备份区域(英文:replica),M大于或等于2。其中,在同一分区中的各个备份区域存储的数据保持一致,不仅能够支持多台设备的同时在线存储和在线查询功能,并且能够实现数据的备份。具体地,所述第一分区和所述第二分区分别包括M个备份区域;在所述物理集群的第一分区上建立第一数据表,包括:在所述物理集群的第一分区的M个备份区域上,分别建立所述第一数据表;在所述物理集群的第二分区上建立第二数据表,包括:在所述物理集群的第二分区的M个备份区域上,分别建立所述第二数据表。
对应上述数据表的建立方法实施例,本申请还提供了对数据表进行在线查询的方法实施例。下面具体说明。
请参阅图5,本申请提供了在线查询方法的一种方法实施例。
本实施例中,一个物理集群上建立有第一数据表和第二数据表,所述第一数据表用于在线存储第一节点与第二节点的关系信息;所述第二数据表用于在线存储第二节点的属性信息;其中,所述第一节点和所述第二节点属于不同的节点类型。需要说明的是,本实施例可以用于对上述任一种方法实施例建立的第一数据表和第二数据表进行在线查询。
本实施例的所述方法包括:
S501:接收在线查询请求,所述在线查询请求用于指示在线查询第一节点的关系数据。
例如,需要在线查询用户购买的商品时,所述第一节点可以为用户节点,所述第一节点的关系数据可以为用户节点对应的商品节点的属性信息。
S502:在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第一节点的关系数据。
其中,所述查询到所述第一节点的关系数据包括:从所述第一数据表中查询到所述第一节点对应的第二节点,从所述第二数据表中查询到所述第二节点的属性信息。
例如,第一节点为用户节点,第二节点为商品节点,在线查询用户i购买的商品时,从第一数据表中查询到用户i对应的商品1,并且从第二数据表中查询到商品1的属性信息。
其中,所述第一数据表和所述第二数据表可以通过索引项和属性项进行表示。下面分别说明。
所述第一数据表可以包括第一索引项和第二索引项,所述第一索引项用于在线存储所述第一节点的标识,所述第二索引项用于在线存储与所述第一节点对应的所述第二节点的标识。所述第一数据表还可以包括第二属性项,所述第二属性项用于在线存储所述第一节点和所述第二节点的对应关系的属性信息。例如表1所示,所述第一数据表可以为key-key-value(键-键-值)结构。当对所述表1中的数据进行在线查询时,可以根据主key查询从key和/或value,或者也可以根据主key和从key查询value。例如,在表1中查询到用户j购买的商品列表为商品1和商品2。
所述第二数据表可以包括第三索引项和第一属性项,所述第三索引项用于在线存储所述第二节点的标识,所述第一属性项用于在线存储所述第二节点的属性信息。例如表2所示,所述第二数据表可以表示为key-value(键-值)结构。当对所述表2中的数据进行在线查询时,可以根据key查询value。例如,在表2中查询到商品1的属性信息。
在本申请实施例中,所述物理集群可以如图4所示,设置有N个分区(英文:partition),N大于或等于2。因此在查询数据表时,根据数据表的索引项到对应的分区中进行查询。下面具体说明。
所述方法还可以包括:根据所述第一索引项从N个存储分区中确定第一分区,例如根据表1中主key的所有值,利用哈希算法确定出分区1;根据所述第二索引项从N个存储分区中确定第二分区,例如根据表2中key的所有值,利用哈希算法确定出分区2;S502中的在线访问所述物理集群中的所述第一数据表和所述第二数据表,包括:在线访问所述物理集群中的所述第一分区上的所述第一数据表,和所述第二分区上的所述第二数据表。
在图4所示的分布式物理集群中,各个分区中分别包括M个备份区域,M大于或等于2。其中,在同一分区中的各个备份区域存储的数据保持一致,不仅能够支持多台设备的同时在线存储和在线查询功能,并且能够实现数据的备份。因此,在线访问第一数据表时,可以是访问第一分区中的一个或多个备份区域上的第一数据表,类似的,在线访问第二数据表时,可以是访问第二分区中的一个或多个备份区域上的第二数据表。
在本申请实施例中,除了上述数据之外,所述物理集群还可以存储有更多的数据,可以对这些数据进行在线查询。下面分别举例说明。
在第一数据表中除了所述第一节点和所述第二节点的对应关系之外,还可以在线存储有第三节点和第四节点的对应关系,其中所述第三节点和所述第一节点属于相同的节点类型,所述第四节点和所述第二节点属于相同的节点类型。例如表3所示,所述第一数据表还存储有用户i购买的商品的标识,以及用户i购买商品的时间。在所述第二数据表中除了所述第二节点的属性信息之外,还可以在线存储有其他节点的属性信息,例如第四节点的属性信息。例如表4所示,所述第二数据表还存储有商品3的属性信息。
所述在线查询请求还用于指示在线查询第三节点的关系数据;所述方法还可以包括:在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第三节点的关系数据;其中,所述查询到所述第三节点的关系数据包括:从所述第一数据表中查询到所述第三节点对应的第四节点;从所述第二数据表中查询到所述第四节点的属性信息。例如,从表3中查询到用户i购买的商品3,从表4中查询到商品3的属性信息。
所述物理集群上除了所述第一数据表和所述第二数据表之外,还可以建立有其他的数据表,例如第三数据表。所述第三数据表用于在线存储第五节点与所述第一节点的关系信息。第三数据表可以如表5所示。
所述在线查询请求用于指示在线查询第五节点的关系数据:在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第一节点的关系数据,包括:在线访问所述物理集群中的所述第一数据表、所述第二数据表和所述第三数据表,查询到所述第五节点的关系数据;查询到所述第五节点的关系数据,包括:从所述第三数据表中查询到所述第五节点对应的所述第一节点,查询到所述第一节点的关系数据。例如需要查询用户i的好友购买的商品时,从表5中查询到用户i的好友为用户j,从表1中查询到用户j购买的商品1,从表2中查询到商品1的属性信息。
在本申请实施例中,为了实现在线查询功能,定义了三种不同的查询算子。通过这三种查询算子单独或者组合使用,能够实现快速查询功能。下面分别说明。
第一种算子:简单查询算子(也可以称为AtomicSearch算子),用于从数据表中根据索引项查询到对应的索引项或者属性值。例如,根据给定的key:用户j,能够从表1中查询到用户j对应的商品1和商品2,又例如,根据给定的key:商品1,能够从表2中查询到商品1的属性信息。
第二种算子:复合运算算子,用于从数据表中根据索引项查询到对应的索引项或者属性值,并对查询到的数据进行运算。
所述第一数据表还用于在线存储第三节点与第四节点的关系信息,例如表3还存储有用户i购买的商品标识:商品3;所述第二数据表还用于在线存储第四节点的属性信息,例如表4还存储有商品3的属性信息。
所述在线查询请求中包括第一复合算子;所述方法还包括:
从所述第一复合算子中解析出第一指令、第二指令和第三指令,所述第一指令用于指示在线查询第一节点的关系数据,所述第二指令用于指示在线查询第三节点的关系数据,所述第三指令用于指示对关系数据进行综合处理;
查询到所述第一节点的关系数据,包括:基于所述第一指令,查询到所述第一节点的关系数据,例如基于第一指令,查询到用户i购买的商品:商品1和商品2。
查询到所述第三节点的关系数据,包括:基于所述第二指令,查询到所述第三节点的关系数据,例如基于第二指令,查询到用户j购买的商品:商品3。
所述方法还包括:基于所述第三指令,对所述第一节点的关系数据和所述第三节点的关系数据进行综合处理。其中,所述综合处理可以包括以下任一项处理:合并处理、交集运算、以及差集运算。例如,可以将用户i购买的商品和用户j购买的商品进行合并,最终结果为:商品1、商品2和商品3。又例如,可以将用户i购买的商品和用户j购买的商品求交集,最终结果为空。又例如将用户i购买的商品和用户j购买的商品进行差集运算,也就是确定用户i购买过但是用户j没有购买过的商品,最终结果为商品1和商品2。
第三种算子:复合传递算子,用于将从一个数据表中查询到的结果,作为另一个数据表中查询的索引项。
所述物理集群上还建立有第三数据表,所述第三数据表用于在线存储第五节点与所述第一节点的关系信息。例如表5所示,第五节点和第一节点都为用户节点,第三数据表用于存储用户i的好友列表:用户j,以及用户i与用户j的好友关系值;
所述在线查询请求中包括第二复合算子;所述方法还包括:
从所述第一复合算子中解析出第四指令和第五指令,所述第四指令用于指示在线查询第五节点对应的节点,所述第五指令用于指示在线查询第五节点对应的节点的关系数据。
从所述第三数据表中查询到所述第五节点对应的所述第一节点,包括:基于所述第四指令,从所述第三数据表中查询到所述第五节点对应的所述第一节点;查询到所述第一节点的关系数据,包括:基于所述第五指令,查询到所述第一节点的关系数据。例如,基于第四指令从表5中查询到用户i的好友为用户j,将用户j作为在表1中查询的索引项,从表1中查询到用户j购买的商品1,从表2中查询到商品1的属性信息。
在本申请实施例中,存储架构可以由离线集群和在线集群两个部分组成。其中,离线集群可以分为HDFS(Hadoop分布式文件***)Index Build Cluster (索引集群)和Real-Time Stream Process Cluster(实时流处理集群),HDFS Index Build Cluster主要用来将属性图以高效批量形式转换成key-value和key-key-value结构的数据表,并将数据表同步到在线集群。Real-Time Stream Process Cluster主要用来处理实时更新消息,并发送到在线集群,这个集群能够以秒级延迟处理消息。
而在线集群可以是上述任一实施例中的物理集群,该物理集群包括Proxy(代理)子集群和Search(查询)子集群。
proxy子集群主要负责接收用户输入的在线查询请求,执行查询,并将最终的查询结果返回给用户。在执行查询过程中,Proxy子集群会向Search子集群发送请求,获取key-value和key-key-value结构的数据表中的数据。上面介绍的复合运算算子和复合传递算子都在Proxy子集群中执行。Search子集群,它主要负责加载key-value和key-key-value结构的数据表,并根据Real-Time Stream Process Cluster发送过来的更新消息更新表中的内容。此外,Search子集群还有一个重要的功能就是接收Proxy子集群发送过来的在线查询请求,根据在线查询请求执行数据查询操作,并将查询结果返回给Proxy子集群。
proxy子集群包括至少三层:
服务接入层,这一层主要用于接收在线查询请求,并将在线查询请求转换为执行核心层所能识别的格式后发送至执行核心层。并且将执行核心层返回的结果转换成用户期望的返回格式;执行核心层,这一层用于实现在线查询,具体包括请求解析和校验在线查询请求、生成并向数据获取层发送查询计划,最终向服务接入层返回查询结果;数据获取层,这一层主要负责跟Search子集群进行通信。该层将执行核心层发送的在线查询请求转发到Search子集群,并将Search子集群返回的结果返回给执行核心层。
Search子集群包括至少两层:
存储管理层,这一层主要负责key-value和key-key-value结构的数据表的加载和更新。
查询层,这一层主要负责接收Proxy子集群下发的在线查询请求,并根据在线查询请求进行查询,并将查询结果返回至proxy子集群。该层还可以对查询结果进行过滤、排序等操作。
对应上述方法实施例,本申请还提供了相应的装置实施例,下面具体说明。
请参阅图6,本申请提供了数据表的建立装置的一种实施例。本实施例的所述装置包括:第一建立单元601和第二建立单元602。
第一建立单元601,用于在一个物理集群上建立第一数据表,所述第一数据表用于在线存储第一节点与第二节点的关系信息。
第二建立单元602,用于在所述物理集群上建立第二数据表,所述第二数据表用于在线存储第二节点的属性信息。
其中,所述第一节点和所述第二节点属于不同的节点类型。
可选的,所述第一数据表包括第一索引项和第二索引项,所述第一索引项用于在线存储所述第一节点的标识,所述第二索引项用于在线存储与所述第一节点对应的所述第二节点的标识;
所述第二数据表包括第三索引项和第一属性项,所述第三索引项用于在线存储所述第二节点的标识,所述第一属性项用于在线存储所述第二节点的属性信息。
可选的,所述第一数据表还包括第二属性项,所述第二属性项用于在线存储所述第一节点和所述第二节点的对应关系的属性信息。
可选的,所述第一数据表为键-键-值key-key-value结构,其中,所述第一索引项为主键信息,所述第二索引项为从键信息,所述第二属性项为值信息;
所述第二数据表为键-值key-value结构,其中,所述第三索引项为键信息,所述第一属性项为值信息。
可选的,所述物理集群包括N个存储分区,N大于或等于2;所述建立装置还包括:
确定单元,用于根据所述第一索引项从N个存储分区中确定第一分区,根据所述第三索引项从N个存储分区中确定第二分区;
所述在一个物理集群上建立第一数据表时,所述第一建立单元具体用于,在所述物理集群的第一分区上建立第一数据表;
所述在所述物理集群上建立第二数据表时,所述第二建立单元具体用于,在所述物理集群的第二分区上建立第二数据表。
可选的,所述第一分区和所述第二分区分别包括M个备份区域,M大于或等于2;
在所述物理集群的第一分区上建立第一数据表时,所述第一建立单元具体用于,在所述物理集群的第一分区的M个备份区域上,分别建立所述第一数据表;
在所述物理集群的第二分区上建立第二数据表时,所述第二建立单元具体用于,在所述物理集群的第二分区的M个备份区域上,分别建立所述第二数据表。
可选的,所述第一数据表还用于在线存储第三节点与第四节点的关系信息;所述第二数据表还用于在线存储第四节点的属性信息;其中,所述第三节点和所述第一节点属于相同的节点类型,所述第四节点和所述第二节点属于相同的节点类型;
或者,所述建立装置还包括:第三建立单元,用于在所述物理集群上建立第三数据表,所述第三数据表用于在线存储第五节点与所述第一节点的关系信息。
请参阅图7,本申请提供了在线查询装置的一种装置实施例。本实施例中,一个物理集群上建立有第一数据表和第二数据表,所述第一数据表用于在线存储第一节点与第二节点的关系信息;所述第二数据表用于在线存储第二节点的属性信息;其中,所述第一节点和所述第二节点属于不同的节点类型;
本实施例的所述装置包括:接收单元701和查询单元702。
接收单元701,用于接收在线查询请求,所述在线查询请求用于指示在线查询第一节点的关系数据;
查询单元702,用于在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第一节点的关系数据;
其中,所述查询到所述第一节点的关系数据包括:从所述第一数据表中查询到所述第一节点对应的第二节点,从所述第二数据表中查询到所述第二节点的属性信息。
可选的,所述第一数据表包括第一索引项和第二索引项,所述第一索引项用于在线存储所述第一节点的标识,所述第二索引项用于在线存储与所述第一节点对应的所述第二节点的标识;
所述第二数据表包括第三索引项和第一属性项,所述第三索引项用于在线存储所述第二节点的标识,所述第一属性项用于在线存储所述第二节点的属性信息。
可选的,所述物理集群包括N个存储分区,N大于或等于2;所述装置还包括:
确定单元,用于根据所述第一索引项从N个存储分区中确定第一分区,根据所述第二索引项从N个存储分区中确定第二分区;
在线访问所述物理集群中的所述第一数据表和所述第二数据表时,所述查询单元具体用于:在线访问所述物理集群中的所述第一分区上的所述第一数据表,和所述第二分区上的所述第二数据表。
可选的,所述第一数据表还用于在线存储第三节点与第四节点的关系信息;所述第二数据表还用于在线存储第四节点的属性信息;其中,所述第三节点和所述第一节点属于相同的节点类型,所述第四节点和所述第二节点属于相同的节点类型;所述在线查询请求还用于指示在线查询第三节点的关系数据;
所述查询单元还用于,在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第三节点的关系数据;
其中,所述查询到所述第三节点的关系数据包括:从所述第一数据表中查询到所述第三节点对应的第四节点;从所述第二数据表中查询到所述第四节点的属性信息。
可选的,所述在线查询请求中包括第一复合算子;所述装置还包括:
解析单元,用于从所述第一复合算子中解析出第一指令、第二指令和第三指令,所述第一指令用于指示在线查询第一节点的关系数据,所述第二指令用于指示在线查询第三节点的关系数据,所述第三指令用于指示对关系数据进行综合处理;
查询到所述第一节点的关系数据时,所述查询单元具体用于,基于所述第一指令,查询到所述第一节点的关系数据;
查询到所述第三节点的关系数据时,所述查询单元具体用于,基于所述第二指令,查询到所述第三节点的关系数据;
所述装置还包括:处理单元,用于基于所述第三指令,对所述第一节点的关系数据和所述第三节点的关系数据进行综合处理。
可选的,所述综合处理包括以下任一项处理:合并处理、交集运算、以及差集运算。
可选的,所述物理集群上还建立有第三数据表,所述第三数据表用于在线存储第五节点与所述第一节点的关系信息;所述在线查询请求用于指示在线查询第五节点的关系数据:
在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第一节点的关系数据时,所述查询单元具体用于,在线访问所述物理集群中的所述第一数据表、所述第二数据表和所述第三数据表,查询到所述第五节点的关系数据;
查询到所述第五节点的关系数据时,所述查询单元具体用于,从所述第三数据表中查询到所述第五节点对应的所述第一节点,查询到所述第一节点的关系数据。
可选的,所述在线查询请求中包括第二复合算子;所述装置还包括:
解析单元,用于从所述第一复合算子中解析出第四指令和第五指令,所述第四指令用于指示在线查询第五节点对应的节点,所述第五指令用于指示在线查询第五节点对应的节点的关系数据;
从所述第三数据表中查询到所述第五节点对应的所述第一节点时,所述查询单元具体用于,基于所述第四指令,从所述第三数据表中查询到所述第五节点对应的所述第一节点;
查询到所述第一节点的关系数据时,所述查询单元具体用于,基于所述第五指令,查询到所述第一节点的关系数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (22)
1.一种数据表的建立方法,其特征在于,包括:
在一个物理集群上建立第一数据表,所述第一数据表用于在线存储第一节点与第二节点的关系信息;
在所述物理集群上建立第二数据表,所述第二数据表用于在线存储第二节点的属性信息;
其中,所述第一节点和所述第二节点属于不同的节点类型,
所述第一数据表包括第一索引项和第二索引项,所述第一索引项用于在线存储所述第一节点的标识,所述第二索引项用于在线存储与所述第一节点对应的所述第二节点的标识;
所述第二数据表包括第三索引项和第一属性项,所述第三索引项用于在线存储所述第二节点的标识,所述第一属性项用于在线存储所述第二节点的属性信息,并且
所述物理集群包括N个存储分区,N大于或等于2;所述建立方法还包括:
根据所述第一索引项从N个存储分区中确定第一分区,根据所述第三索引项从N个存储分区中确定第二分区;
所述在一个物理集群上建立第一数据表,包括:在所述物理集群的第一分区上建立第一数据表;
所述在所述物理集群上建立第二数据表,包括:在所述物理集群的第二分区上建立第二数据表。
2.根据权利要求1所述的建立方法,其特征在于,所述第一数据表还包括第二属性项,所述第二属性项用于在线存储所述第一节点和所述第二节点的对应关系的属性信息。
3.根据权利要求2所述的建立方法,其特征在于,所述第一数据表为键-键-值结构,其中,所述第一索引项为主键信息,所述第二索引项为从键信息,所述第二属性项为值信息;
所述第二数据表为键-值结构,其中,所述第三索引项为键信息,所述第一属性项为值信息。
4.根据权利要求1所述的建立方法,其特征在于,所述第一分区和所述第二分区分别包括M个备份区域,M大于或等于2;
在所述物理集群的第一分区上建立第一数据表,包括:在所述物理集群的第一分区的M个备份区域上,分别建立所述第一数据表;
在所述物理集群的第二分区上建立第二数据表,包括:在所述物理集群的第二分区的M个备份区域上,分别建立所述第二数据表。
5.根据权利要求1所述的建立方法,其特征在于,所述第一数据表还用于在线存储第三节点与第四节点的关系信息;所述第二数据表还用于在线存储第四节点的属性信息;其中,所述第三节点和所述第一节点属于相同的节点类型,所述第四节点和所述第二节点属于相同的节点类型;
或者,所述方法还包括:在所述物理集群上建立第三数据表,所述第三数据表用于在线存储第五节点与所述第一节点的关系信息。
6.一种在线查询方法,其特征在于,一个物理集群上建立有第一数据表和第二数据表,所述第一数据表用于在线存储第一节点与第二节点的关系信息;所述第二数据表用于在线存储第二节点的属性信息;其中,所述第一节点和所述第二节点属于不同的节点类型;所述方法包括:
接收在线查询请求,所述在线查询请求用于指示在线查询第一节点的关系数据;
在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第一节点的关系数据;
其中,所述查询到所述第一节点的关系数据包括:从所述第一数据表中查询到所述第一节点对应的第二节点,从所述第二数据表中查询到所述第二节点的属性信息,
所述第一数据表包括第一索引项和第二索引项,所述第一索引项用于在线存储所述第一节点的标识,所述第二索引项用于在线存储与所述第一节点对应的所述第二节点的标识;
所述第二数据表包括第三索引项和第一属性项,所述第三索引项用于在线存储所述第二节点的标识,所述第一属性项用于在线存储所述第二节点的属性信息,并且
所述物理集群包括N个存储分区,N大于或等于2;所述方法还包括:
根据所述第一索引项从N个存储分区中确定第一分区,根据所述第二索引项从N个存储分区中确定第二分区;
在线访问所述物理集群中的所述第一数据表和所述第二数据表,包括:在线访问所述物理集群中的所述第一分区上的所述第一数据表,和所述第二分区上的所述第二数据表。
7.根据权利要求6所述的在线查询方法,其特征在于,所述第一数据表还用于在线存储第三节点与第四节点的关系信息;所述第二数据表还用于在线存储第四节点的属性信息;其中,所述第三节点和所述第一节点属于相同的节点类型,所述第四节点和所述第二节点属于相同的节点类型;所述在线查询请求还用于指示在线查询第三节点的关系数据;
所述方法还包括:
在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第三节点的关系数据;
其中,所述查询到所述第三节点的关系数据包括:从所述第一数据表中查询到所述第三节点对应的第四节点;从所述第二数据表中查询到所述第四节点的属性信息。
8.根据权利要求7所述的在线查询方法,其特征在于,所述在线查询请求中包括第一复合算子;所述方法还包括:
从所述第一复合算子中解析出第一指令、第二指令和第三指令,所述第一指令用于指示在线查询第一节点的关系数据,所述第二指令用于指示在线查询第三节点的关系数据,所述第三指令用于指示对关系数据进行综合处理;
查询到所述第一节点的关系数据,包括:基于所述第一指令,查询到所述第一节点的关系数据;
查询到所述第三节点的关系数据,包括:基于所述第二指令,查询到所述第三节点的关系数据;
所述方法还包括:基于所述第三指令,对所述第一节点的关系数据和所述第三节点的关系数据进行综合处理。
9.根据权利要求8所述的在线查询方法,其特征在于,所述综合处理包括以下任一项处理:合并处理、交集运算、以及差集运算。
10.根据权利要求6所述的在线查询方法,其特征在于,所述物理集群上还建立有第三数据表,所述第三数据表用于在线存储第五节点与所述第一节点的关系信息;所述在线查询请求用于指示在线查询第五节点的关系数据:
在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第一节点的关系数据,包括:在线访问所述物理集群中的所述第一数据表、所述第二数据表和所述第三数据表,查询到所述第五节点的关系数据;
查询到所述第五节点的关系数据,包括:从所述第三数据表中查询到所述第五节点对应的所述第一节点,查询到所述第一节点的关系数据。
11.根据权利要求10所述的在线查询方法,其特征在于,所述在线查询请求中包括第二复合算子;所述方法还包括:
从所述第二复合算子中解析出第四指令和第五指令,所述第四指令用于指示在线查询第五节点对应的节点,所述第五指令用于指示在线查询第五节点对应的节点的关系数据;
从所述第三数据表中查询到所述第五节点对应的所述第一节点,包括:基于所述第四指令,从所述第三数据表中查询到所述第五节点对应的所述第一节点;
查询到所述第一节点的关系数据,包括:基于所述第五指令,查询到所述第一节点的关系数据。
12.一种数据表的建立装置,其特征在于,包括:
第一建立单元,用于在一个物理集群上建立第一数据表,所述第一数据表用于在线存储第一节点与第二节点的关系信息;
第二建立单元,用于在所述物理集群上建立第二数据表,所述第二数据表用于在线存储第二节点的属性信息;
其中,所述第一节点和所述第二节点属于不同的节点类型,
所述第一数据表包括第一索引项和第二索引项,所述第一索引项用于在线存储所述第一节点的标识,所述第二索引项用于在线存储与所述第一节点对应的所述第二节点的标识;
所述第二数据表包括第三索引项和第一属性项,所述第三索引项用于在线存储所述第二节点的标识,所述第一属性项用于在线存储所述第二节点的属性信息,并且
所述物理集群包括N个存储分区,N大于或等于2;所述建立装置还包括:
确定单元,用于根据所述第一索引项从N个存储分区中确定第一分区,根据所述第三索引项从N个存储分区中确定第二分区;
所述在一个物理集群上建立第一数据表时,所述第一建立单元用于,在所述物理集群的第一分区上建立第一数据表;
所述在所述物理集群上建立第二数据表时,所述第二建立单元用于,在所述物理集群的第二分区上建立第二数据表。
13.根据权利要求12所述的建立装置,其特征在于,所述第一数据表还包括第二属性项,所述第二属性项用于在线存储所述第一节点和所述第二节点的对应关系的属性信息。
14.根据权利要求13所述的建立装置,其特征在于,所述第一数据表为键-键-值结构,其中,所述第一索引项为主键信息,所述第二索引项为从键信息,所述第二属性项为值信息;
所述第二数据表为键-值结构,其中,所述第三索引项为键信息,所述第一属性项为值信息。
15.根据权利要求12所述的建立装置,其特征在于,所述第一分区和所述第二分区分别包括M个备份区域,M大于或等于2;
在所述物理集群的第一分区上建立第一数据表时,所述第一建立单元用于,在所述物理集群的第一分区的M个备份区域上,分别建立所述第一数据表;
在所述物理集群的第二分区上建立第二数据表时,所述第二建立单元用于,在所述物理集群的第二分区的M个备份区域上,分别建立所述第二数据表。
16.根据权利要求12所述的建立装置,其特征在于,所述第一数据表还用于在线存储第三节点与第四节点的关系信息;所述第二数据表还用于在线存储第四节点的属性信息;其中,所述第三节点和所述第一节点属于相同的节点类型,所述第四节点和所述第二节点属于相同的节点类型;
或者,所述建立装置还包括:第三建立单元,用于在所述物理集群上建立第三数据表,所述第三数据表用于在线存储第五节点与所述第一节点的关系信息。
17.一种在线查询装置,其特征在于,一个物理集群上建立有第一数据表和第二数据表,所述第一数据表用于在线存储第一节点与第二节点的关系信息;所述第二数据表用于在线存储第二节点的属性信息;其中,所述第一节点和所述第二节点属于不同的节点类型;所述装置包括:
接收单元,用于接收在线查询请求,所述在线查询请求用于指示在线查询第一节点的关系数据;
查询单元,用于在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第一节点的关系数据;
其中,所述查询到所述第一节点的关系数据包括:从所述第一数据表中查询到所述第一节点对应的第二节点,从所述第二数据表中查询到所述第二节点的属性信息,
所述第一数据表包括第一索引项和第二索引项,所述第一索引项用于在线存储所述第一节点的标识,所述第二索引项用于在线存储与所述第一节点对应的所述第二节点的标识;
所述第二数据表包括第三索引项和第一属性项,所述第三索引项用于在线存储所述第二节点的标识,所述第一属性项用于在线存储所述第二节点的属性信息,并且
所述物理集群包括N个存储分区,N大于或等于2;所述装置还包括:
确定单元,用于根据所述第一索引项从N个存储分区中确定第一分区,根据所述第二索引项从N个存储分区中确定第二分区;
在线访问所述物理集群中的所述第一数据表和所述第二数据表时,所述查询单元用于:在线访问所述物理集群中的所述第一分区上的所述第一数据表,和所述第二分区上的所述第二数据表。
18.根据权利要求17所述的装置,其特征在于,所述第一数据表还用于在线存储第三节点与第四节点的关系信息;所述第二数据表还用于在线存储第四节点的属性信息;其中,所述第三节点和所述第一节点属于相同的节点类型,所述第四节点和所述第二节点属于相同的节点类型;所述在线查询请求还用于指示在线查询第三节点的关系数据;
所述查询单元还用于,在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第三节点的关系数据;
其中,所述查询到所述第三节点的关系数据包括:从所述第一数据表中查询到所述第三节点对应的第四节点;从所述第二数据表中查询到所述第四节点的属性信息。
19.根据权利要求18所述的装置,其特征在于,所述在线查询请求中包括第一复合算子;所述装置还包括:
解析单元,用于从所述第一复合算子中解析出第一指令、第二指令和第三指令,所述第一指令用于指示在线查询第一节点的关系数据,所述第二指令用于指示在线查询第三节点的关系数据,所述第三指令用于指示对关系数据进行综合处理;
查询到所述第一节点的关系数据时,所述查询单元用于,基于所述第一指令,查询到所述第一节点的关系数据;
查询到所述第三节点的关系数据时,所述查询单元用于,基于所述第二指令,查询到所述第三节点的关系数据;
所述装置还包括:处理单元,用于基于所述第三指令,对所述第一节点的关系数据和所述第三节点的关系数据进行综合处理。
20.根据权利要求19所述的装置,其特征在于,所述综合处理包括以下任一项处理:合并处理、交集运算、以及差集运算。
21.根据权利要求17所述的装置,其特征在于,所述物理集群上还建立有第三数据表,所述第三数据表用于在线存储第五节点与所述第一节点的关系信息;所述在线查询请求用于指示在线查询第五节点的关系数据:
在线访问所述物理集群中的所述第一数据表和所述第二数据表,查询到所述第一节点的关系数据时,所述查询单元用于,在线访问所述物理集群中的所述第一数据表.所述第二数据表和所述第三数据表,查询到所述第五节点的关系数据;
查询到所述第五节点的关系数据时,所述查询单元用于,从所述第三数据表中查询到所述第五节点对应的所述第一节点,查询到所述第一节点的关系数据。
22.根据权利要求21所述的装置,其特征在于,所述在线查询请求中包括第二复合算子;所述装置还包括:
解析单元,用于从所述第二复合算子中解析出第四指令和第五指令,所述第四指令用于指示在线查询第五节点对应的节点,所述第五指令用于指示在线查询第五节点对应的节点的关系数据;
从所述第三数据表中查询到所述第五节点对应的所述第一节点时,所述查询单元用于,基于所述第四指令,从所述第三数据表中查询到所述第五节点对应的所述第一节点;
查询到所述第一节点的关系数据时,所述查询单元用于,基于所述第五指令,查询到所述第一节点的关系数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610826949.6A CN107818117B (zh) | 2016-09-14 | 2016-09-14 | 一种数据表的建立方法、在线查询方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610826949.6A CN107818117B (zh) | 2016-09-14 | 2016-09-14 | 一种数据表的建立方法、在线查询方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107818117A CN107818117A (zh) | 2018-03-20 |
CN107818117B true CN107818117B (zh) | 2022-02-15 |
Family
ID=61601282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610826949.6A Active CN107818117B (zh) | 2016-09-14 | 2016-09-14 | 一种数据表的建立方法、在线查询方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107818117B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108563697B (zh) * | 2018-03-22 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置和存储介质 |
CN110543585B (zh) * | 2019-08-14 | 2021-08-31 | 天津大学 | 一种基于关系模型的rdf图和属性图统一存储方法 |
CN111125156B (zh) * | 2019-12-17 | 2023-09-26 | 网银在线(北京)科技有限公司 | 数据的查询方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547092A (zh) * | 2008-03-27 | 2009-09-30 | 天津德智科技有限公司 | 用于统一用户认证的多应用***数据同步的方法及装置 |
CN103631924A (zh) * | 2013-12-03 | 2014-03-12 | Tcl集团股份有限公司 | 一种分布式数据库平台的应用方法和*** |
CN103995879A (zh) * | 2014-05-27 | 2014-08-20 | 华为技术有限公司 | 基于olap***的数据查询方法、装置及*** |
CN105045871A (zh) * | 2015-07-15 | 2015-11-11 | 国家超级计算深圳中心(深圳云计算中心) | 数据聚合查询方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728713B1 (en) * | 1999-03-30 | 2004-04-27 | Tivo, Inc. | Distributed database management system |
US8078825B2 (en) * | 2009-03-11 | 2011-12-13 | Oracle America, Inc. | Composite hash and list partitioning of database tables |
CN103218404B (zh) * | 2013-03-20 | 2015-11-18 | 华中科技大学 | 一种基于关联特性的多维元数据管理方法和*** |
US10140353B2 (en) * | 2013-12-23 | 2018-11-27 | Teredata, US, Inc. | Techniques for query processing using high dimension histograms |
CN104809129B (zh) * | 2014-01-26 | 2018-07-20 | 华为技术有限公司 | 一种分布式数据存储方法、装置和*** |
CN104063487B (zh) * | 2014-07-03 | 2017-02-15 | 浙江大学 | 基于关系型数据库及k‑d树索引的文件数据管理方法 |
-
2016
- 2016-09-14 CN CN201610826949.6A patent/CN107818117B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547092A (zh) * | 2008-03-27 | 2009-09-30 | 天津德智科技有限公司 | 用于统一用户认证的多应用***数据同步的方法及装置 |
CN103631924A (zh) * | 2013-12-03 | 2014-03-12 | Tcl集团股份有限公司 | 一种分布式数据库平台的应用方法和*** |
CN103995879A (zh) * | 2014-05-27 | 2014-08-20 | 华为技术有限公司 | 基于olap***的数据查询方法、装置及*** |
CN105045871A (zh) * | 2015-07-15 | 2015-11-11 | 国家超级计算深圳中心(深圳云计算中心) | 数据聚合查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107818117A (zh) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106888245B (zh) | 一种数据处理方法、装置及*** | |
CN107818117B (zh) | 一种数据表的建立方法、在线查询方法及相关装置 | |
US10496645B1 (en) | System and method for analysis of a database proxy | |
WO2021208762A1 (zh) | 数据存储、查询 | |
CN104301233A (zh) | 路由访问方法、路由访问***及用户终端 | |
EP3803625A1 (en) | Frequent pattern analysis for distributed systems | |
CN111046237A (zh) | 用户行为数据处理方法、装置、电子设备及可读介质 | |
US20150249719A1 (en) | Method and device for pushing information | |
US11366821B2 (en) | Epsilon-closure for frequent pattern analysis | |
CN113505265A (zh) | 数据的查询方法、装置及电子设备、存储介质、程序产品 | |
CN112528067A (zh) | 图数据库的存储方法、读取方法、装置及设备 | |
CN116701330A (zh) | 物流信息共享方法、装置、设备及存储介质 | |
CN111008220A (zh) | 数据源的动态识别方法及装置、存储介质和电子装置 | |
KR20140031429A (ko) | 아이템 추천 시스템과 방법 및 이를 지원하는 장치 | |
CN111400301A (zh) | 一种数据查询方法、装置及设备 | |
CN106716400A (zh) | 一种数据表的分区管理方法及装置 | |
CN107679096B (zh) | 数据集市间指标共享的方法和装置 | |
US20200118016A1 (en) | Data attribution using frequent pattern analysis | |
US10949423B2 (en) | Operation management device, operation management method, and operation management system | |
US20210141791A1 (en) | Method and system for generating a hybrid data model | |
CN114579506A (zh) | 处理器之间的通信方法、***、存储介质以及处理器 | |
CN105095283A (zh) | 网络社交***中准好友的推荐方法和*** | |
CN104573095A (zh) | 基于Hadoop框架的大规模对象识别方法 | |
CN113449003B (zh) | 信息查询的方法、装置、电子设备及介质 | |
US20180007130A1 (en) | Peer-to-Peer Assisted Personal Synchronization |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |