开发者社区> 问答> 正文

Hbase日志存储——以便利店和无人超市业务为例

转载自:http://www.hbase.group/article/19

随着去年,马云提出新零售、刘强东提出无界零售等,线上电子商务公司认为线上流量红利已经殆尽,开始纷纷正式转型进入线下。阿里采取入股高鑫零售,腾讯京东联手入股永辉超市以及步步高等,正式开启线下零售大战。

在此背景下,公司正式开启便利店以及无人超市业务,与此同时参与到该项目当中。主要负责人脸进出门业务,对人脸数据进行存储与管理。由于hbase在大量数据写入的时候有很大的优势,因此考虑使用hbase;除此之外,hbase存储的数据可以接入phoenix,来实现数据的分析,因此本案例主要介绍公司便利店以及无人超市等人脸日志存储。

image.png

根据上述门店业务,首先需要考虑的是每次一个人刷脸,算法进行人脸识别的时候是多线程多任务进行识别以达到尽快地识别出来,因此会有很多次识别结果,只要其中一次识别结果成功则定义为成功,即可开门。

在此业务场景下,可以想到每个人的一次进门,会有数十条识别数据;当用户量达到一定程度的时候,因此数据量是非常庞大的。而且非常符合hbase的高写入场景,所以非常适合选择hbase作为存储,同时hbase最终存储的结果也可以导出,做分析。

下面主要列举了三点在无人超市和便利店场景下的hbase使用中的关键点。

1.关键点一:hbase的rowkey设计

idx_$num_$Uuid,其中$num=99999999999L-当前时间,$Uuid是随机生成uuid:这样设计的目地是为了能够保证最新的数据是呈现在最上面的。

2.关键点二:hbase的相关表设计

(1)设计基本的人脸采集日志表、识别日志表,用来存储所有的人脸采集日志信息、识别日志信息

(2)设计若干索引表(时间维度、业务维度、用户维度等等),索引表只存储主表的rowkey:这样做的目地是为了在查询的时候先去查询相关索引表,然后再根据索引表获取到的rowkey来获取主表信息,解决hbase不像关系型数据库一样,能够提供表之间的关联上的痛点。

3.关键点三:hbase数据分析

(1)可以将hbase中的数据同步接入phoenix来做分析以及报表处理,供运营决策。

(2)在报表方面可以考虑接入phoenix之后导入到关系型数据库中再接入tableu做报表输出。

(3)除此之外hbase数据在做分析的时候还需要结合hive来对数据进行清洗:因为每一个用户每次进门都有多次识别结果,应该选择当前最近时间段内的最后一条成功的识别结果作为该用户的进门数据,需要使用上hive开窗函数进行聚合处理。

展开
收起
pandacats 2019-12-23 10:02:04 1742 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
Kubernetes下日志实时采集、存储与计算实践 立即下载
日志数据采集与分析对接 立即下载