CN104822076A - 一种数据的分发方法及装置 - Google Patents
一种数据的分发方法及装置 Download PDFInfo
- Publication number
- CN104822076A CN104822076A CN201510176021.3A CN201510176021A CN104822076A CN 104822076 A CN104822076 A CN 104822076A CN 201510176021 A CN201510176021 A CN 201510176021A CN 104822076 A CN104822076 A CN 104822076A
- Authority
- CN
- China
- Prior art keywords
- instance data
- server
- submeter
- data
- corresponding relation
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据的分发方法及装置。所述数据的分发方法,包括:接收至少一条实例数据;将至少一条所述实例数据记录在队列中;从所述队列中依次获取至少一条所述实例数据;将至少一条所述实例数据分发到至少一个服务器的一分表中,使得所述实例数据存储在所述服务器的所述分表中。本发明将数据分发给多个服务器进行数据分散存储,使数据均匀的分布在集群数据服务器中,解决了海量大数据的存储与快速读取的问题,能够减少主服务器的工作负荷,提高后续对数据的处理速度。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种数据的分发方法及装置。
背景技术
在视频数据处理技术中,服务器需要从多个客户端接收视频数据和视频数据的相关文件,相关文件可以为视频数据的描述文件,然后服务器对数据进行存储、建立索引等处理。
当同时有成千上万的客户端给服务器发送数据时,给服务器的存储容量和处理能力都带来巨大的挑战。
发明内容
本发明提供一种数据的分发方法及装置,用以将数据分发给多个服务器,以减少主服务器的工作负荷。
一方面,提供一种数据的分发方法,包括:
接收至少一条实例数据;
将至少一条所述实例数据记录在队列中;
从所述队列中依次获取至少一条所述实例数据;
将至少一条所述实例数据分发到至少一个服务器的一分表中,使得所述实例数据存储在所述服务器的所述分表中。
所述将至少一条所述实例数据分发到至少一个服务器的一分表中的步骤包括:
根据所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述分表之间的对应关系,将至少一条所述实例数据分发到至少一个服务器的一分表中。
所述根据所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述分表之间的对应关系,将至少一条所述实例数据分发到至少一个服务器的一分表中的步骤之前,所述方法还包括:
建立所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述分表之间的对应关系。
所述建立所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述分表之间的对应关系的步骤包括:
对所述实例数据的ID,进行hash算法,生成ID的哈希值;
建立所述哈希值与所述服务器的标识之间的对应关系;
建立所述哈希值与所述分表的标识之间的对应关系。
所述建立所述哈希值与所述服务器的标识之间的对应关系的步骤包括:
根据哈希值的数量级,建立所述哈希值与所述服务器的标识之间的对应关系。
所述一条实例数据为一视频文件的一描述文件。
另一方面,本发明还提供一种数据的分发装置,包括:
接收单元,接收至少一条实例数据;
记录单元,将至少一条所述实例数据记录在队列中;
获取单元,从所述队列中依次获取至少一条所述实例数据;
分发单元,将至少一条所述实例数据分发到至少一个服务器的一分表中,使得所述实例数据存储在所述服务器的所述分表中。
所述分发单元具体为:
根据所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述分表之间的对应关系,将至少一条所述实例数据分发到至少一个服务器的一分表中。
所述的装置,还包括:
建立单元,建立所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述分表之间的对应关系。
所述建立单元包括:
生成单元,对所述实例数据的ID,进行hash算法,生成ID的哈希值;
第一建立单元,建立所述哈希值与所述服务器的标识之间的对应关系;
第二建立单元,建立所述哈希值与所述分表的标识之间的对应关系。
本发明中,当主服务器接收实例数据后,将所述实例数据分发到至少一个其他服务器的一分表中,使得所述实例数据存储在所述其他服务器的所述分表中,后续其他服务器进行数据处理、建立索引等,使数据均匀地分布在集群数据服务器中,能够减少海量大数据的存储与快速读取带来的问题,减少主服务器的工作负荷,提高后续对数据的处理速度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获 得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种数据的分发方法的流程图;
图2为本发明实施例中一种数据的分发装置的连接示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
如图1所示,为本发明所述的一种数据的分发方法的一实施例,包括:
步骤S11,接收至少一条实例数据;所述一条实例数据可以为一视频文件的一描述文件。描述文件可以包括:视频的分段地址、视频资源的标题、视频资源的摘要、视频资源的视频地址、数据资源的用户ID信息。
步骤S12,将至少一条所述实例数据记录在队列中;
步骤S13,从所述队列中依次获取至少一条所述实例数据;
步骤S14,将至少一条所述实例数据分发到至少一个服务器的一分表中,使得所述实例数据存储在所述服务器的所述分表中。其中,步骤S14包括:根据所述实例数据的ID,hash计算出与所述服务器之间的对应关系以及所述实例数据与所述分表之间的对应关系,将至少一条所述实例数据分发到至少一个服务器的一分表中。例如,实例数据的ID为ed3f433d-bb19-60f4-2e98-afc6d747cdc6,根据ID,进行hash计算,得到对应服务器1以及服务器1中的分表2,则将实例数据分发到服务器1中的分表2 中进行存储,以对实施数据进行后续的其他处理(存储、数据处理、建立索引等)。
其中,实例数据和服务器之间的关系为多对一或一对一的关系,也就是说,不同的实例数据可以放到同一服务器中,实例数据和服务器分表之间的关系为多对一或者一对一的关系。也就是说同一实例数据,可以存储在同一类实例下的数据分表中。例如,实例电视数据和实例专辑数据,它们可以存储到各自类下的分表中。
本发明中,当主服务器接收实例数据后,将所述实例数据分发到至少一个其他服务器的一分表中,使得所述实例数据存储在所述其他服务器的所述分表中,后续其他服务器进行数据处理、建立索引等,能够减少主服务器的工作负荷,提高后续对数据的处理速度。
其中,步骤S14之前,所述方法还包括:
步骤S10,建立所述实例数据ID与所述服务器之间的对应关系以及所述实例数据ID与所述分表之间的对应关系。
其中,步骤S10包括:
步骤101,对所述实例数据ID,进行哈希hash算法,生成哈希值;
步骤102,建立所述哈希值与所述服务器的标识之间的对应关系;该步骤具体为:根据哈希值的数量级,建立所述哈希值与所述服务器的标识之间的对应关系。例如,哈希值在0-1W的范围内的实例数据对应服务器1,哈希值在1W-2W的范围内的实例数据对应服务器2。这样,通过实例数据ID的哈希值的数量级可以确定服务器。
步骤103,建立所述哈希值与所述分表的标识之间的对应关系。
本发明中,通过hash算法,能够使得数据比较均匀地分配给各个服务器的各个分表中。
如图2所示,为本发明所述的一种数据的分发装置,包括:
接收单元21,接收至少一条实例数据;
记录单元22,将至少一条所述实例数据记录在队列中;
获取单元23,从所述队列中依次获取至少一条所述实例数据;
分发单元24,将至少一条所述实例数据分发到至少一个服务器的一分表中,使得所述实例数据存储在所述服务器的所述分表中。
所述分发单元24具体为:
根据所述实例数据ID,进行hash计算出与所述服务器之间的对应关系以及所述实例数据与所述分表之间的对应关系,将至少一条所述实例数据分发到至少一个服务器的一分表中。
所述的装置,还包括:
建立单元25,建立所述实例数据与所述服务器之间的对应关系以及所述实例数据与所述分表之间的对应关系。
所述建立单元25包括:
生成单元,对所述实例数据ID,进行hash算法,生成哈希值;
第一建立单元,建立所述哈希值与所述服务器的标识之间的对应关系;
第二建立单元,建立所述哈希值与所述分表的标识之间的对应关系。
以下描述本发明的另一实施例。
该实施例利用哈希算法,将数据分到一服务器的一分表中。
首先描述本实施例的应用场景。有多个服务器(也可以称为:数据库服务主机),每个服务器上有多个分表。一个实例对应多个分表(也可以称为:元数据表),一个实例数据可以分布在多个服务器上。一个实例为一个类型的数据,例如为直播数据的描述文件。
以下为对分表内容进行举例。
所有数据内容存储在表中,都是经过压缩的。以下是解压缩部分内容的样例:
<entry>
<id>urn:uuid:be10af51-c82b-cef2-850a-81afde0ccd71</id>
<title type="text">文本文件的标题</title>
<summary type="text">摘要,描述</summary>
<content type="text">内容,详情</content>
<t:terms>关键词A,关键词B</t:terms>
<t:tid>1</t:tid>
<t:client>10000</t:client>
<t:status>1</t:status>
<t:dir>1</t:dir>
<published>2011-08-03T09:23:47+08:00</published>
<updated>2011-08-03T10:27:34+08:00</updated>
<t:rtype label="资源类型">10</t:rtype>
<media:group>
<media:content
url="http://apidatacenter.com/12/6a/126ae7f3-05e0-b85d-ba7a-0561c7da539c/test.txt"filesize="11110"t:name="bin"/>
</media:group>
</entry>
所述数据的分发方法包括:
首先,假设有几十万个客户端向服务器发送视频信息,视频信息可能是对某个视频的介绍,例如为视频的描述文件。服务器来不及对所有描述文件进行处理,所以先将这些描述文件保存下来,记录到队列中。此时,可以向客户端反馈成功的响应。
然后,服务器从队列中依次读取描述文件,根据数据资源ID采用哈希方式将数据分配到各服务器的各分表中。
在配置文件中可以定义好服务器标识与哈希值的对应关系。这样,通过哈希值可确定服务器。
并且,不同服务器对应的哈希值的数量级可以不同。例如,哈希值在0-1W的范围内对应的是服务器1,哈希值在1W-2W的范围内对应的是服务器2。这样,通过哈希值的数量级可以确定服务器。
以下描述哈希值的生成方法。
1.如果key值(此处KEY值是实例数据的资源ID经过hash后取的前16位。)前0-12为数字,中间只允许一个为任意(非空、非换行)字符,后0-12为数字。则将匹配到前部分数字md5加密后截取4位,再十六进制转十进制。
2.如果key16位中只包含数字字母,则截取key前4位,再十六进制转十进制。
3.将key值md5后截取前4位,再十六进制转十进制。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计 算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种数据的分发方法,其特征在于,包括:
接收至少一条实例数据;
将至少一条所述实例数据记录在队列中;
从所述队列中依次获取至少一条所述实例数据;
将至少一条所述实例数据分发到至少一个服务器的一分表中,使得所述实例数据存储在所述服务器的所述分表中。
2.根据权利要求1所述的方法,其特征在于,所述将至少一条所述实例数据分发到至少一个服务器的一分表中的步骤包括:
根据所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述分表之间的对应关系,将至少一条所述实例数据分发到至少一个服务器的一分表中。
3.根据权利要求2所述的方法,其特征在于,所述根据所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述分表之间的对应关系,将至少一条所述实例数据分发到至少一个服务器的一分表中的步骤之前,所述方法还包括:
建立所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述分表之间的对应关系。
4.根据权利要求3所述的方法,其特征在于,所述建立所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述分表之间的对应关系的步骤包括:
对所述实例数据的ID,进行哈希hash算法,生成所述实例数据的ID的哈希值;
建立所述哈希值与所述服务器的标识之间的对应关系;
建立所述哈希值与所述分表的标识之间的对应关系。
5.根据权利要求4所述的方法,其特征在于,所述建立所述哈希值与所述服务器的标识之间的对应关系的步骤包括:
根据哈希值的数量级,建立所述哈希值与所述服务器的标识之间的对应关系。
6.根据权利要求1所述的方法,其特征在于,
所述一条实例数据为一视频文件的一描述文件。
7.一种数据的分发装置,其特征在于,包括:
接收单元,接收至少一条实例数据;
记录单元,将至少一条所述实例数据记录在队列中;
获取单元,从所述队列中依次获取至少一条所述实例数据;
分发单元,将至少一条所述实例数据分发到至少一个服务器的一分表中,使得所述实例数据存储在所述服务器的所述分表中。
8.根据权利要求7所述的装置,其特征在于,所述分发单元具体为:
根据所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述分表之间的对应关系,将至少一条所述实例数据分发到至少一个服务器的一分表中。
9.根据权利要求7所述的装置,其特征在于,还包括:
建立单元,建立所述实例数据的ID与所述服务器之间的对应关系以及所述实例数据的ID与所述分表之间的对应关系。
10.根据权利要求9所述的装置,其特征在于,所述建立单元包括:
生成单元,对所述实例数据的ID,进行哈希hash算法,生成ID的哈希值;
第一建立单元,建立所述哈希值与所述服务器的标识之间的对应关系;
第二建立单元,建立所述哈希值与所述分表的标识之间的对应关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510176021.3A CN104822076A (zh) | 2015-04-14 | 2015-04-14 | 一种数据的分发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510176021.3A CN104822076A (zh) | 2015-04-14 | 2015-04-14 | 一种数据的分发方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104822076A true CN104822076A (zh) | 2015-08-05 |
Family
ID=53732222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510176021.3A Pending CN104822076A (zh) | 2015-04-14 | 2015-04-14 | 一种数据的分发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104822076A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273192A (zh) * | 2016-04-06 | 2017-10-20 | 阿里巴巴集团控股有限公司 | 一种产品交易的推进方法、服务器及系统 |
CN109144991A (zh) * | 2017-06-15 | 2019-01-04 | 北京京东尚科信息技术有限公司 | 动态分表的方法、装置、电子设备和计算机可存储介质 |
CN112202692A (zh) * | 2020-09-30 | 2021-01-08 | 北京百度网讯科技有限公司 | 数据分发方法、装置、设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150421A (zh) * | 2006-09-22 | 2008-03-26 | 华为技术有限公司 | 一种分布式内容分发方法、边缘服务器和内容分发网 |
EP2091202A1 (en) * | 2007-10-09 | 2009-08-19 | Huawei Technologies Co., Ltd. | Data distributing method, data distributing system and correlative devices in edge network |
CN101561815A (zh) * | 2009-05-19 | 2009-10-21 | 华中科技大学 | 分布式密文全文检索系统 |
CN102638584A (zh) * | 2012-04-20 | 2012-08-15 | 青岛海信传媒网络技术有限公司 | 数据分布缓存方法及系统 |
CN103002027A (zh) * | 2012-11-26 | 2013-03-27 | 中国科学院高能物理研究所 | 基于键值对系统实现树形目录结构的数据存储系统及方法 |
-
2015
- 2015-04-14 CN CN201510176021.3A patent/CN104822076A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150421A (zh) * | 2006-09-22 | 2008-03-26 | 华为技术有限公司 | 一种分布式内容分发方法、边缘服务器和内容分发网 |
EP2091202A1 (en) * | 2007-10-09 | 2009-08-19 | Huawei Technologies Co., Ltd. | Data distributing method, data distributing system and correlative devices in edge network |
CN101561815A (zh) * | 2009-05-19 | 2009-10-21 | 华中科技大学 | 分布式密文全文检索系统 |
CN102638584A (zh) * | 2012-04-20 | 2012-08-15 | 青岛海信传媒网络技术有限公司 | 数据分布缓存方法及系统 |
CN103002027A (zh) * | 2012-11-26 | 2013-03-27 | 中国科学院高能物理研究所 | 基于键值对系统实现树形目录结构的数据存储系统及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273192A (zh) * | 2016-04-06 | 2017-10-20 | 阿里巴巴集团控股有限公司 | 一种产品交易的推进方法、服务器及系统 |
CN107273192B (zh) * | 2016-04-06 | 2020-05-08 | 阿里巴巴集团控股有限公司 | 一种产品交易的推进方法、服务器及系统 |
CN109144991A (zh) * | 2017-06-15 | 2019-01-04 | 北京京东尚科信息技术有限公司 | 动态分表的方法、装置、电子设备和计算机可存储介质 |
CN112202692A (zh) * | 2020-09-30 | 2021-01-08 | 北京百度网讯科技有限公司 | 数据分发方法、装置、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU757667B2 (en) | Access to content addressable data over a network | |
US8074289B1 (en) | Access to content addressable data over a network | |
US9002907B2 (en) | Method and system for storing binary large objects (BLObs) in a distributed key-value storage system | |
CN102341823B (zh) | 计算机上的内容再现方法和系统 | |
CN101546342B (zh) | 实现搜索服务的方法与系统 | |
US11221992B2 (en) | Storing data files in a file system | |
US9417966B2 (en) | Post backup catalogs | |
RU2007143551A (ru) | Способ, система и читаемый компьютером носитель информации для синхронизации поддающихся изменению документов для множества клиентов | |
US20150052178A1 (en) | Method and system for previewing file information | |
US20130219050A1 (en) | Cloud service access apparatus, cloud service access method, and cloud service access system | |
EP3674925A1 (en) | Systems and methods for personalized video rendering | |
CN105005624A (zh) | 一种生成索引文档id的方法及装置 | |
CN105812427A (zh) | 文件上传和下载方法、装置、及文件服务器 | |
CN111611622A (zh) | 基于区块链的文件存储方法和电子设备 | |
CN104822076A (zh) | 一种数据的分发方法及装置 | |
EP3042316B1 (en) | Music identification | |
KR101428649B1 (ko) | 맵 리듀스 기반의 대용량 개인정보 암호화 시스템 및 그의 동작 방법 | |
US9659020B2 (en) | Serialization for delta encoding | |
US10048991B2 (en) | System and method for parallel processing data blocks containing sequential label ranges of series data | |
WO2013108745A1 (ja) | ストレージ装置、その制御方法、及びプログラム | |
CN110555020B (zh) | 一种映射关系建立、数据查询方法、装置及设备 | |
CN113449042B (zh) | 数据自动分库方法及装置 | |
US9165019B2 (en) | Self recovery | |
CN106886522B (zh) | 一种数字产品发布方法及装置 | |
JP2015135535A (ja) | ファイル処理装置およびファイル処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150805 |