CN106844374A - 一种存储、检索照片的方法及装置 - Google Patents

一种存储、检索照片的方法及装置 Download PDF

Info

Publication number
CN106844374A
CN106844374A CN201510883423.7A CN201510883423A CN106844374A CN 106844374 A CN106844374 A CN 106844374A CN 201510883423 A CN201510883423 A CN 201510883423A CN 106844374 A CN106844374 A CN 106844374A
Authority
CN
China
Prior art keywords
photo
stored
generic attribute
rowkey
hbase
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.)
Granted
Application number
CN201510883423.7A
Other languages
English (en)
Other versions
CN106844374B (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.)
Navinfo Co Ltd
Original Assignee
Navinfo 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 Navinfo Co Ltd filed Critical Navinfo Co Ltd
Priority to CN201510883423.7A priority Critical patent/CN106844374B/zh
Publication of CN106844374A publication Critical patent/CN106844374A/zh
Application granted granted Critical
Publication of CN106844374B publication Critical patent/CN106844374B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/5866Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5838Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using colour

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种存储、检索照片的方法及装置,其中方法包括:根据待存储照片的预设第一类属性,设置待存储照片的行键值rowkey;获取待存储照片的预设第二类属性,建立待存储照片的第二类属性与所述rowkey之间的关联;按照所述rowkey的字符顺序,将待存储照片的数据作为hbase表的列值存储在hbase中;接收客户端发送的查询请求,根据所述查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与所述查询请求匹配的照片。本发明实施例基于HDFS进行照片数据的高容量且快速存储,同时具有高可用性、检索快速的优点,可充分发挥IO吞吐能力,成本较低,提高了用户的体验性。

Description

一种存储、检索照片的方法及装置
技术领域
本发明涉及存储、检索技术领域,尤其涉及一种存储、检索照片的方法及装置。
背景技术
随着照片数据量的日益增长,对照片存储和访问管理难度越来越大,对于大多数系统,在大规模的小文件存储与读取时,因为磁头需要频繁的寻道和换道,因此在读取上容易带来较长的延时,尤其在大量高并发访问量的情况下,大大降低了读取效果。传统基于可移植操作系统接口(Portable OperatingSystem Interface,POSIX)的文件系统的缺点主要是目录和每个文件的元数据。对于图片应用,很多元数据(比如文件权限),是无用的而且浪费了很多存储容量。而且更大的性能消耗在于文件的元数据必须从磁盘读到内存来定位文件。文件规模较小时这些花费无关紧要,然而面对TB级别图片和PB级别的数据,访问元数据就是吞吐量瓶颈所在;且很难提供对照片统计、分析的功能。
目前采用的照片存储系统,存在有以下弊端:
读写慢:大规模的小文件存储与读取,磁头需要频繁的寻道和换道。
提供的服务单一:采用目录和文件名称来存储和定位数据。
稳定性低:依赖外包开发的系统,存在大量漏洞。
安全性差:当存储的磁盘出现问题,全部照片服务无法使用。
成本高:购买外包照片系统和高性能的磁盘。
发明内容
本发明实施例的技术方案在于提供一种存储、检索照片的方法及装置,旨在解决现有技术中照片存储系统读写慢、稳定性低、安全性差以及成本高的问题。
本发明实施例提供一种存储、检索照片的方法,包括:
根据待存储照片的预设第一类属性,设置待存储照片的行键值rowkey;
获取待存储照片的预设第二类属性,建立待存储照片的第二类属性与所述rowkey之间的关联;
按照所述rowkey的字符顺序,将待存储照片的数据作为hbase表的列值存储在hbase中;
接收客户端发送的查询请求,根据所述查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与所述查询请求匹配的照片。
其中,所述第一类属性包括:地理位置信息、拍摄时间信息、类别信息以及用户ID信息中的任一种或者任意几种的组合;
所述第二类属性至少包括:地理位置信息、拍摄时间信息、类别信息、用户ID信息以及照片名称信息中区别于所述第一类属性的信息。
其中,所述根据待存储照片的预设第一类属性,设置待存储照片的行键值rowkey,具体为:
将所述第一类属性转化为字符串作为待存储照片的所述rowkey。
其中,所述获取待存储照片的预设第二类属性,建立待存储照片的第二类属性与所述rowkey之间的关联,包括:
根据待存储照片的所述第二类属性在solr上建立索引;
建立索引与待存储照片的所述rowkey之间的一一对应关系。
其中,所述按照所述rowkey的字符顺序,将待存储照片的数据作为hbase表的列值存储在hbase中,包括:
获取待存储照片转换为字节数组后的数据;
获取待存储照片的所述rowkey的字符,按照预设的字符顺序,将待存储照片转换为字节数组后的数据作为hbase表的列值存储在hbase中的相应位置。
其中,所述根据所述查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与所述查询请求匹配的照片之后,所述方法还包括:
获取客户端所支持的数据格式;
将查找到的与所述查询请求匹配的照片转化为客户端所支持的数据格式进行传输。
本发明实施例该提供一种存储、检索照片的装置,包括:
设置模块,用于根据待存储照片的预设第一类属性,设置待存储照片的行键值rowkey;
建立模块,用于获取待存储照片的预设第二类属性,建立待存储照片的第二类属性与所述rowkey之间的关联;
存储模块,用于按照所述rowkey的字符顺序,将待存储照片的数据作为hbase表的列值存储在hbase中;
查找模块,用于接收客户端发送的查询请求,根据所述查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与所述查询请求匹配的照片。
其中,所述设置模块中的第一类属性包括:地理位置信息、拍摄时间信息、类别信息以及用户ID信息中的任一种或者任意几种的组合;
所述建立模块中的第二类属性至少包括:地理位置信息、拍摄时间信息、类别信息、用户ID信息以及照片名称信息中区别于所述第一类属性的信息。
其中,所述设置模块进一步用于:
将所述第一类属性转化为字符串作为待存储照片的所述rowkey。
其中,所述建立模块包括:
第一建立子模块,用于根据待存储照片的所述第二类属性在solr上建立索引;
第二建立子模块,用于建立索引与待存储照片的所述rowkey之间的一一对应关系。
其中,所述存储模块包括:
获取子模块,用于获取待存储照片转换为字节数组后的数据;
处理子模块,用于获取待存储照片的所述rowkey的字符,按照预设的字符顺序,将待存储照片转换为字节数组后的数据作为hbase表的列值存储在hbase中的相应位置。
其中,所述装置还包括:
获取模块,用于在所述查找模块根据所述查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与所述查询请求匹配的照片之后,获取客户端所支持的数据格式;
转化模块,用于将查找到的与所述查询请求匹配的照片转化为客户端所支持的数据格式进行传输。
本发明实施例上述技术方案至少包括如下有益效果:
通过获取待存储照片的预设第一类属性,设置待存储照片的rowkey,获取待存储照片的预设第二类属性,建立待存储照片的第二类属性与rowkey之间的关联,采用hbase的列存储机制,将待存储照片的数据作为hbase表的列值,使用hdfs对照片进行存储,根据客户端发送的查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与查询请求匹配的照片,可以实现基于HDFS进行照片数据的高容量且快速存储,同时具有高可用性、检索快速的优点,可充分发挥IO吞吐能力,成本较低,提高了用户的体验性。
附图说明
图1为本发明实施例的存储、检索照片的方法流程示意图一;
图2为本发明实施例的存储、检索照片的方法流程示意图二;
图3为本发明实施例的存储、检索照片的方法流程示意图三;
图4为本发明实施例的照片存储流程示意图;
图5为本发明实施例的照片存储框图;
图6为本发明实施例客户端与照片系统传递数据示意图;
图7为本发明实施例的存储、检索照片的装置示意图一;
图8为本发明实施例的存储、检索照片的装置示意图二。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明实施例提供一种存储、检索照片的方法及装置,采用hbase和solr对照片进行处理,使其存储在hdfs上,其中hbase存储照片信息,solr存储照片的搜索索引信息。
本方案需要搭建完成hdfs、hbase、solr集群,然后对三者进行整合,使得hbase的表文件和solr的索引文件都存储在hdfs上。
下面对三个集群功能进行简单介绍:
Hadoop集群:
Hadoop是一个分布式文件系统(Hadoop Distributed File System,HDFS)。HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上;提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS放宽了POSIX的要求,可以以流的形式访问文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和编程模型MapReduce。HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算。MapReduce是Google提出的一个软件架构,用于大规模数据集的并行计算。
HBase集群:
HBase(Hadoop Database)是一个分布式的、面向列的开源数据库,该技术来源于Fay Chang所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC服务器上搭建起大规模结构化存储集群。
solr集群:
Solr是一个高性能,采用Java5开发,基于全文检索引擎的架构Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
本发明实施例一种存储、检索照片的方法,如图1所示,包括:
S100、根据待存储照片的预设第一类属性,设置待存储照片的行键值rowkey;
S200、获取待存储照片的预设第二类属性,建立待存储照片的第二类属性与rowkey之间的关联;
S300、按照rowkey的字符顺序,将待存储照片的数据作为hbase表的列值存储在hbase中;
S400、接收客户端发送的查询请求,根据查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与查询请求匹配的照片。
具体的,设置待存储照片的第一类属性和第二类属性,根据待存储照片的第一类属性,设置待存储照片的rowkey,根据待存储照片的预设第二类属性,建立待存储照片的第二类属性与rowkey之间的关联。即针对一待处理照片而言,根据待处理照片的第一类属性,例如照片的地理位置信息设置rowkey,然后获取待处理照片的第二类属性,例如第二类属性包括:拍摄时间信息和类别信息,建立第二类属性与rowkey的关联,即拍摄时间信息、类别信息与照片的地理位置信息是相互对应的,在查找照片的过程中,可以根据拍摄时间信息查找到对应的地理位置信息,也可以根据类别信息查找到对应的地理位置信息,进而查找到相应的照片。
在建立待存储照片的第二类属性与rowkey之间的关联之后,可以按照rowkey的字符顺序,将待存储照片的数据作为hbase表的列值存储在hbase中。然后根据客户端发送的查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与查询请求匹配的照片。
需要说明的是,当根据地理位置信息设置待存储照片的rowkey,在根据客户端发送的查询请求进行查询的过程中,查询请求中携带的是第一类属性地理位置信息时,将经纬度的二维关系使用geohash进行转换,得到一维字符串,其中geohash是一种将二维的经纬度转换成一维字符串的算法,然后将得到的一维字符串信息,与存储的rowkey值进行比较,获取与一维字符串信息匹配的rowkey,进而获取到相应的照片。
当根据地理位置信息设置待存储照片的rowkey,当第二类属性包括拍摄时间信息、类别信息、用户ID信息以及照片名称信息时,建立待存储照片的第二类属性与rowkey之间的关联。在根据客户端发送的查询请求进行查询的过程中,查询请求中携带的是第二类属性照片名称信息时,根据照片名称信息查找到相应的第二类属性,根据第二类属性与rowkey之间的关联,查找到对应的rowkey,进而获取到相应的照片。
在本发明上述实施例中,第一类属性包括:地理位置信息、拍摄时间信息、类别信息以及用户ID信息中的任一种或者任意几种的组合;相应的第二类属性包括:地理位置信息、拍摄时间信息、类别信息、用户ID信息以及照片名称信息中区别于第一类属性的信息。
具体的,当第一类属性为地理位置信息和用户ID信息的组合时,由于地理位置信息的经纬度是二维关系,需要使用geohash对经纬度进行转换,把二维关系转换为一维字符串。如表1所示:
纬度 经度 geohash值
40.12288 117.09088 wx5k22nuxqbj
40.12187 117.08743 wx5k0ruqyfet
21.27364 110.36249 w7y3p2exbmvj
39.87317 116.64892 wx4fy6tnhcdg
39.86179 116.65084 wx4fy2wec84x
39.86035 116.65083 wx4fy2qe37g1
39.8587 116.65082 wx4fy2n9c05w
39.85757 116.65081 wx4fwrye0vs6
39.85493 116.65054 wx4fwrq7f96v
39.85288 116.65265 wx4fwqzzgg23
表1
根据地理位置信息,将经纬度转化为字符串,由于同一点可能出现多张照片,还需要加上一个唯一ID才能组成唯一rowkey,最终的结果如表2所示:
纬度 经度 rowkey值
40.12288 117.09088 wx5k22nuxqbj0000000170
40.12187 117.08743 wx5k0ruqyfet0000000171
21.27364 110.36249 w7y3p2exbmvj0000000172
39.87317 116.64892 wx4fy6tnhcdg0000000175
39.86179 116.65084 wx4fy2wec84x0000000177
39.86035 116.65083 wx4fy2qe37g10000000179
39.8587 116.65082 wx4fy2n9c05w0000000180
39.85757 116.65081 wx4fwrye0vs60000000181
39.85493 116.65054 wx4fwrq7f96v0000000182
39.85288 116.65265 wx4fwqzzgg230000000183
表2
按照该方式存储后,根据hbase按照rowkey的字符顺序存储规则,只要传入左下角和右上角点经纬度的geohash值,作为起始Rowkey和终止Rowkey,即可获取该区域内的照片信息,例如获取矩形范围(39.8587 116.65082、39.8587117.08743、40.12187 117.08743、40.12187 116.65082、39.8587 116.65082)的照片信息,只要使用左下角(39.8587 116.65082)的geohash值:wx4fy2n9c05w作为起始Rowkey,右上角(40.12187 117.08743)的geohash值:wx5k0ruqyfet作为终止Rowkey,通过地理位置的区域范围获取照片数据。
进一步的,在现实获取照片时,查找方式可能是多种多样的,区域范围查找,并不能满足需求,此时使用solr在照片录入时,添加对应需要的索引,使其关联到要查找照片的rowkey上,即可实时、高效定位照片,例如对照片名称、类别、拍摄日期时间等进行等建立solr索引,利用solr来实时查找、统计、分析照片。
在本发明上述实施例中,如图2所示,步骤S200包括:
S201、根据待存储照片的第二类属性在solr上建立索引;
S202、建立索引与待存储照片的rowkey之间的一一对应关系。
具体的,当在根据第一类属性,设置待存储照片的rowkey之后,需要建立待存储照片的第二类属性与rowkey之间的关联,可以根据客户端输入的不同的查询条件查找到对应的照片。
在建立待存储照片的第二类属性与rowkey之间的关联时,根据待存储照片的第二类属性在solr上建立索引,然后建立索引与rowkey之间的对应关系。例如:针对一待存储照片A,获取照片A的第二类属性,在solr上建立照片A的第二类属性的索引a,然后建立索引a与照片A的rowkey之间的一一对应。从而可以形成照片A的第二类属性与照片A的rowkey之间的关联。
当照片A的第一类属性为拍摄时间信息时,根据拍摄时间信息设置照片A的rowkey,然后获取照片A的第二类属性,此时照片A的第二类属性可以包括:地理位置信息、名称信息、用户ID等,根据照片A的第二类属性在solr上建立照片A的第二类属性的索引a,建立索引a与照片A的rowkey之间的对应,进而可以建立照片A的第二类属性:地理位置信息、名称信息、用户ID与照片A的第一类属性:拍摄时间信息的关联。
当客户端在输入查询条件时,可以输入拍摄时间信息、地理位置信息、名称信息或用户ID,当客户端输入拍摄时间信息时,可以直接对应到相应的多个rowkey,获取相应的在该时刻拍摄的所有照片。
当客户端输入拍摄时间信息和地理位置信息时,根据拍摄时间信息对应到相应的多个rowkey,可以获得在该时刻拍摄的所有照片,由于客户端同时输入了地理位置信息,可以根据地理位置信息对应到相应的索引,根据索引与rowkey之间的关联,进而对应到相应的rowkey,此时可以获取到在该时刻、该地理位置上拍摄的照片。
当客户端输入地理位置信息时,根据地理位置信息对应到相应的索引,根据索引与rowkey之间的关联,进而对应到相应的rowkey,此时可以获取到在地理位置上拍摄的照片。
在本发明上述实施例中,在建立完成待存储照片的第二类属性与待存储照片的rowkey之间的关联之后,需要将待存储照片的数据作为hbase表的列值存储在hbase中,如图3所示,步骤S300包括:
S301、获取待存储照片转换为字节数组后的数据;
S302、获取待存储照片的rowkey的字符,按照预设的字符顺序,将待存储照片转换为字节数组后的数据作为hbase表的列值存储在hbase中的相应位置。
具体的,在将待存储照片的数据进行存储的过程中,需要使用一个列族data,分别存储照片转换为字节数组后的值、对应该照片缩略图转换为字节数组后的值以及照片的第二类属性信息。rowkey等同于关系型数据库的主键,但存储方式不同,hbase数据存储顺序是按照rowkey值的字符顺序存储的。例如,照片A的rowkey值为wx5k22nuxqbj0000000170,照片B的rowkey值为wx5k0ruqyfet0000000171,照片C的rowkey值为w7y3p2exbmvj0000000172,在对照片A、B、C存储的过程中,按照字符先后顺序进行存储,即存储顺序依次为:照片A、照片B和照片C。
进一步的,在对照片A、照片B和照片C进行存储的过程中,实际为对照片A的列、照片B的列以及照片C的列进行存储。需要说明的是,列中存储的照片缩略图,其目的是可以使得用户对查找到的照片进行浏览。列中存储的照片的第二类属性信息,其目的是可以提供更多的查询依据。若仅根据rowkey来进行查找,若客户端输入的查询条件不是rowkey所对应的第一类属性信息,则无法进行查找。
需要说明的是,对照片缩略图转换为字节数组后的值以及照片的第二类属性信息进行存储,并不是一个必要的存储,对照片缩略图转换为字节数组后的值进行存储的目的在于便于对查找到的照片进行浏览,对第二类属性信息进行存储的目的在于提供更多的查询依据。本领域技术人员,可以根据需要来选择是否存储照片缩略图以及照片的第二类属性。
如图4所示,为本发明实施例的照片存储流程图。首先客户端上传照片,然后生成照片字节流和索引,将照片字节流和索引传输至照片系统进行存储。如图5所示,为本发明实施例将hbase和solr存储在hdfs上的框图。
在本发明上述实施例中,再将待存储照片的数据作为hbase表的列值存储在hbase中之后,需要根据客户端发送的查询请求,根据查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与查询请求匹配的照片。
具体的,当第一类属性为地理位置信息,第二类属性包括:拍摄时间信息、类别信息、用户ID信息以及照片名称信息时。可以根据客户端发送的查询请求携带的不同的查询条件查询相应的照片。当客户端发送的查询请求携带的是地理位置信息时,根据地理位置信息对应到相应的rowkey,获取相应的照片,此时获取得到的可能是多张照片。
当客户端发送的查询请求携带的是拍摄时间信息时,根据拍摄时间信息对应到相应的solr上的索引,根据索引与rowkey的对应关系,查找到相应的照片,此时获取得到的可能是多张照片。
当客户端发送的查询请求携带的是地理位置信息和用户ID信息时,根据地理位置信息对应到相应的rowkey,获取相应的照片,此时获取得可能是多张照片,再根据用户ID信息对应到相应的solr上的索引,根据索引与rowkey的对应关系,查找到相应的照片,此时由于结合了地理位置信息与用户ID信息,可以得到确定数目的照片。即当用户A在某一位置上拍摄了3张照片且都进行了存储,则此时可以获取到这3张照片。
HBase的查询支持3种方式:
1、通过单个Rowkey访问,即按照某个Rowkey进行操作,这样获取唯一一条记录;
2、通过设置起始RowKey和终止RowKey,在这个范围内进行扫描,这样可以按指定的条件获取一批记录;
3、全表扫描,即直接扫描整张表中所有行记录。
第一种和第二种是我们需要经常使用的,第三种只用来做照片离线分析。
需要说明的是,当多个客户端同时发送查询请求时,nginx接收到多个查询请求,将接收到的查询请求分发至多个tomcat,可以使得tomcat承载的负载较为均衡,减少nginx的承载量。需要说明的是,nginx是HTTP服务器软件,可以通过设置实现许多功能,如负载均衡、目录保护、IP访问限制、防盗链、下载限速及设置多域名等。tomcat是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器。如图6所示,客户端发送多个查询请求,nginx将接收到的多个查询请求分发至多个tomcat,tomcat根据查询请求在照片系统中查询相应的照片,然后将查询到的照片返回至nginx,由nginx将照片返回至客户端。
在查询到与查询请求匹配的照片之后,需要将照片数据传输至客户端,在传输之前,需要获取客户端所支持的数据格式,将查找到照片转化为客户端所支持的数据格式进行传输。当客户端是WEB浏览器时,那就需要生成image/jpeg格式的数据流格式进行传输。
本发明实施例还提供一种存储、检索照片的装置,如图7所示,包括:
设置模块10,用于根据待存储照片的预设第一类属性,设置待存储照片的行键值rowkey;
建立模块20,用于获取待存储照片的预设第二类属性,建立待存储照片的第二类属性与rowkey之间的关联;
存储模块30,用于按照rowkey的字符顺序,将待存储照片的数据作为hbase表的列值存储在hbase中;
查找模块40,用于接收客户端发送的查询请求,根据查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与查询请求匹配的照片。
其中,设置模块10中的第一类属性包括:地理位置信息、拍摄时间信息、类别信息以及用户ID信息中的任一种或者任意几种的组合;
建立模块20中的第二类属性至少包括:地理位置信息、拍摄时间信息、类别信息、用户ID信息以及照片名称信息中区别于第一类属性的信息。
其中,设置模块10进一步用于:
将第一类属性转化为字符串作为待存储照片的rowkey。
其中,如图8所示,建立模块20包括:
第一建立子模块21,用于根据待存储照片的第二类属性在solr上建立索引;
第二建立子模块22,用于建立索引与待存储照片的rowkey之间的一一对应关系。
其中,存储模块30包括:
获取子模块31,用于获取待存储照片转换为字节数组后的数据;
处理子模块32,用于获取待存储照片的rowkey的字符,按照预设的字符顺序,将待存储照片转换为字节数组后的数据作为hbase表的列值存储在hbase中的相应位置。
其中,该装置还包括:
获取模块50,用于在查找模块40根据查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与查询请求匹配的照片之后,获取客户端所支持的数据格式;
转化模块60,用于将查找到的与查询请求匹配的照片转化为客户端所支持的数据格式进行传输。
本发明实施例存储、检索照片的方法,通过获取待存储照片的预设第一类属性,设置待存储照片的rowkey,获取待存储照片的预设第二类属性,建立待存储照片的第二类属性与rowkey之间的关联,采用hbase的列存储机制,将待存储照片的数据作为hbase表的列值,使用hdfs对照片进行存储,根据客户端发送的查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与查询请求匹配的照片,可以实现基于HDFS进行照片数据的高容量且快速存储,同时具有高可用性、检索快速的优点,可充分发挥IO吞吐能力,成本较低,提高了用户的体验性。
需要说明的是,本发明实施例提供的存储、检索照片的装置是应用上述方法的装置,则上述方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种存储、检索照片的方法,其特征在于,包括:
根据待存储照片的预设第一类属性,设置待存储照片的行键值rowkey;
获取待存储照片的预设第二类属性,建立待存储照片的第二类属性与所述rowkey之间的关联;
按照所述rowkey的字符顺序,将待存储照片的数据作为hbase表的列值存储在hbase中;
接收客户端发送的查询请求,根据所述查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与所述查询请求匹配的照片。
2.如权利要求1所述的方法,其特征在于,所述第一类属性包括:地理位置信息、拍摄时间信息、类别信息以及用户ID信息中的任一种或者任意几种的组合;
所述第二类属性至少包括:地理位置信息、拍摄时间信息、类别信息、用户ID信息以及照片名称信息中区别于所述第一类属性的信息。
3.如权利要求1所述的方法,其特征在于,所述根据待存储照片的预设第一类属性,设置待存储照片的行键值rowkey,具体为:
将所述第一类属性转化为字符串作为待存储照片的所述rowkey。
4.如权利要求1所述的方法,其特征在于,所述获取待存储照片的预设第二类属性,建立待存储照片的第二类属性与所述rowkey之间的关联,包括:
根据待存储照片的所述第二类属性在solr上建立索引;
建立索引与待存储照片的所述rowkey之间的一一对应关系。
5.如权利要求1所述的方法,其特征在于,所述按照所述rowkey的字符顺序,将待存储照片的数据作为hbase表的列值存储在hbase中,包括:
获取待存储照片转换为字节数组后的数据;
获取待存储照片的所述rowkey的字符,按照预设的字符顺序,将待存储照片转换为字节数组后的数据作为hbase表的列值存储在hbase中的相应位置。
6.如权利要求1所述的方法,其特征在于,所述根据所述查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与所述查询请求匹配的照片之后,所述方法还包括:
获取客户端所支持的数据格式;
将查找到的与所述查询请求匹配的照片转化为客户端所支持的数据格式进行传输。
7.一种存储、检索照片的装置,其特征在于,包括:
设置模块,用于根据待存储照片的预设第一类属性,设置待存储照片的行键值rowkey;
建立模块,用于获取待存储照片的预设第二类属性,建立待存储照片的第二类属性与所述rowkey之间的关联;
存储模块,用于按照所述rowkey的字符顺序,将待存储照片的数据作为hbase表的列值存储在hbase中;
查找模块,用于接收客户端发送的查询请求,根据所述查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与所述查询请求匹配的照片。
8.如权利要求7所述的装置,其特征在于,所述设置模块中的第一类属性包括:地理位置信息、拍摄时间信息、类别信息以及用户ID信息中的任一种或者任意几种的组合;
所述建立模块中的第二类属性至少包括:地理位置信息、拍摄时间信息、类别信息、用户ID信息以及照片名称信息中区别于所述第一类属性的信息。
9.如权利要求7所述的装置,其特征在于,所述设置模块进一步用于:
将所述第一类属性转化为字符串作为待存储照片的所述rowkey。
10.如权利要求7所述的装置,其特征在于,所述建立模块包括:
第一建立子模块,用于根据待存储照片的所述第二类属性在solr上建立索引;
第二建立子模块,用于建立索引与待存储照片的所述rowkey之间的一一对应关系。
11.如权利要求7所述的装置,其特征在于,所述存储模块包括:
获取子模块,用于获取待存储照片转换为字节数组后的数据;
处理子模块,用于获取待存储照片的所述rowkey的字符,按照预设的字符顺序,将待存储照片转换为字节数组后的数据作为hbase表的列值存储在hbase中的相应位置。
12.如权利要求7所述的装置,其特征在于,所述装置还包括:
获取模块,用于在所述查找模块根据所述查询请求中携带的第一类属性和/或第二类属性的查询条件,在hbase中查询与所述查询请求匹配的照片之后,获取客户端所支持的数据格式;
转化模块,用于将查找到的与所述查询请求匹配的照片转化为客户端所支持的数据格式进行传输。
CN201510883423.7A 2015-12-04 2015-12-04 一种存储、检索照片的方法及装置 Active CN106844374B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510883423.7A CN106844374B (zh) 2015-12-04 2015-12-04 一种存储、检索照片的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510883423.7A CN106844374B (zh) 2015-12-04 2015-12-04 一种存储、检索照片的方法及装置

Publications (2)

Publication Number Publication Date
CN106844374A true CN106844374A (zh) 2017-06-13
CN106844374B CN106844374B (zh) 2020-04-03

Family

ID=59150161

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510883423.7A Active CN106844374B (zh) 2015-12-04 2015-12-04 一种存储、检索照片的方法及装置

Country Status (1)

Country Link
CN (1) CN106844374B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108197321A (zh) * 2018-02-02 2018-06-22 清华大学 文件存储方法及系统
CN108647290A (zh) * 2018-05-06 2018-10-12 深圳市保千里电子有限公司 基于HBase的互联网手机云相册备份查询方法及系统
CN109086451A (zh) * 2018-08-24 2018-12-25 江苏神州信源系统工程有限公司 一种图片存储与检索方法与装置
CN111737316A (zh) * 2020-06-19 2020-10-02 广联达科技股份有限公司 一种工程清单查询方法、装置、计算机设备和存储介质
CN111753141A (zh) * 2019-03-26 2020-10-09 华为技术有限公司 一种数据管理方法及相关设备
CN112434015A (zh) * 2020-12-08 2021-03-02 新华三大数据技术有限公司 数据存储的方法、装置、电子设备及介质
CN112711483A (zh) * 2020-12-10 2021-04-27 广州广电运通金融电子股份有限公司 一种处理大数据标注服务高并发方法、系统及设备
CN114496176A (zh) * 2022-04-06 2022-05-13 广州思德医疗科技有限公司 一种图片存储和提取方法、系统及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102750356A (zh) * 2012-06-11 2012-10-24 清华大学 一种键值库辅助索引的构建与管理方法
CN103116610A (zh) * 2013-01-23 2013-05-22 浙江大学 基于HBase的矢量空间大数据存储方法
US8760692B2 (en) * 2010-08-16 2014-06-24 Canon Kabushiki Kaisha System, apparatus, method, and computer program for information processing resource adjustment
CN104102710A (zh) * 2014-07-15 2014-10-15 浪潮(北京)电子信息产业有限公司 一种海量数据查询方法
CN105117502A (zh) * 2015-10-13 2015-12-02 四川中科腾信科技有限公司 一种基于大数据的检索方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8760692B2 (en) * 2010-08-16 2014-06-24 Canon Kabushiki Kaisha System, apparatus, method, and computer program for information processing resource adjustment
CN102750356A (zh) * 2012-06-11 2012-10-24 清华大学 一种键值库辅助索引的构建与管理方法
CN103116610A (zh) * 2013-01-23 2013-05-22 浙江大学 基于HBase的矢量空间大数据存储方法
CN104102710A (zh) * 2014-07-15 2014-10-15 浪潮(北京)电子信息产业有限公司 一种海量数据查询方法
CN105117502A (zh) * 2015-10-13 2015-12-02 四川中科腾信科技有限公司 一种基于大数据的检索方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108197321A (zh) * 2018-02-02 2018-06-22 清华大学 文件存储方法及系统
CN108197321B (zh) * 2018-02-02 2018-12-28 清华大学 文件存储方法及系统
CN108647290A (zh) * 2018-05-06 2018-10-12 深圳市保千里电子有限公司 基于HBase的互联网手机云相册备份查询方法及系统
CN109086451A (zh) * 2018-08-24 2018-12-25 江苏神州信源系统工程有限公司 一种图片存储与检索方法与装置
CN111753141A (zh) * 2019-03-26 2020-10-09 华为技术有限公司 一种数据管理方法及相关设备
CN111737316A (zh) * 2020-06-19 2020-10-02 广联达科技股份有限公司 一种工程清单查询方法、装置、计算机设备和存储介质
CN112434015A (zh) * 2020-12-08 2021-03-02 新华三大数据技术有限公司 数据存储的方法、装置、电子设备及介质
CN112434015B (zh) * 2020-12-08 2022-08-19 新华三大数据技术有限公司 数据存储的方法、装置、电子设备及介质
CN112711483A (zh) * 2020-12-10 2021-04-27 广州广电运通金融电子股份有限公司 一种处理大数据标注服务高并发方法、系统及设备
CN114496176A (zh) * 2022-04-06 2022-05-13 广州思德医疗科技有限公司 一种图片存储和提取方法、系统及存储介质

Also Published As

Publication number Publication date
CN106844374B (zh) 2020-04-03

Similar Documents

Publication Publication Date Title
CN106844374A (zh) 一种存储、检索照片的方法及装置
US11507552B2 (en) Pervasive search architecture
CN104750681B (zh) 一种海量数据的处理方法及装置
CN103812939B (zh) 一种大数据存储系统
US10666730B2 (en) Storage architecture for heterogeneous multimedia data
US8555018B1 (en) Techniques for storing data
CN104252536B (zh) 一种基于hbase的上网日志数据查询方法及装置
US20190132391A1 (en) Storage architecture for heterogeneous multimedia data
US9530075B2 (en) Presentation and organization of content
CN103631909B (zh) 对大规模结构化和非结构化数据联合处理的系统及方法
US20100042660A1 (en) Systems and methods for presenting alternative versions of user-submitted content
Zhao et al. Multiple nested schema of HBase for migration from SQL
WO2023179787A1 (zh) 分布式文件系统的元数据管理方法和装置
Alsubaiee et al. Asterix: scalable warehouse-style web data integration
KR102002360B1 (ko) 영상 처리용 NoSQL 데이터베이스 구축 방법 및 장치
Pan et al. Research on Mass Image Data Storage Method for Data Center
US20210064617A1 (en) Reducing temp size over a base table
CN115718571B (zh) 一种基于多维度特征的数据管理方法和装置
Zhang et al. Research on online extraction of spatial index information for multi-source surveying and mapping data based on cloud storage
CN103544157B (zh) 一种数据的存储方法和设备
Miao Research on the application of cloud computing technology in computer data processing
JP2001067369A (ja) 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体
Zhang Efficient scientific data discovery over self-describing file formats
Liu et al. P-index: An efficient searchable metadata indexing scheme based on data provenance in cold storage
US9971835B2 (en) Personalized data search system and method thereof

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