必赢365net手机版求一个用户画像的解决方案,私信列表查询

先上下表结构和数量

求一个顾客画像的消除方案 使用hbase-HBase-about云开垦
http://www.aboutyun.com/thread-14659-1-1.html

DROP TABLE IF EXISTS `message`;
CREATE TABLE `message` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '会员私信',
  `from_uid` int(255) NOT NULL DEFAULT '0' COMMENT '发送者',
  `to_uid` int(255) NOT NULL DEFAULT '0' COMMENT '接受者',
  `flg` int(11) NOT NULL DEFAULT '0' COMMENT '状态 0:未读 1 : 已读',
  `content` varchar(255) NOT NULL DEFAULT '' COMMENT '内容',
  `createtime` datetime NOT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`),
  KEY `idx_uid` (`from_uid`),
  KEY `to_uid` (`to_uid`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of jzhs_mssage
-- ----------------------------
INSERT INTO `message` VALUES ('10', '1', '2', '0', 'aaaaa', '0000-00-00 00:00:00');
INSERT INTO `message` VALUES ('11', '2', '1', '0', 'bbbbb', '0000-00-00 00:00:00');
INSERT INTO `message` VALUES ('12', '1', '3', '0', 'ccccc', '0000-00-00 00:00:00');

目标:客户画像。
背景:dps到各个日志文件,日志文件中隐含客商新闻:姓名,年龄,身份ID号,
设备号(客户采纳的无绳电话机id,Computermac地址等),手机,qq,Tmall账号 ,
天涯论坛邮箱,爱奇艺账号,等等。
须要:传递给系统一个客户号码(举例qq号),系统能回到出该qq客商具备的音信及客户标签。

 

方案:准备用hbase来贯彻(事实上项目老总让思念用图数据库来促成,但小编深感hbase更适于),但实际的rowkey
,列族 都不亮堂该怎么设计。

查询的指标为
获取本表中私信列表,内容取私信的终极一条。从网络找了不菲艺术,可是瞧着相比费心。所以利用了二个充足菜的写法,也毕竟完结了目标。

私家思路:利用各个账号拼成贰个uid(各样账号怎么来,),先成立每一个账号与此uid的涉及的表,客商无论输入qq依然手提式有线话机号,都能查到独一标示该客商的uid,在建立uid与具有客户音讯涉及的表(uid为rowkey,其余为列)

旗帜分明款待各位大神来指正和交换!!

必赢365net手机版,标题:求三个靠边的hbase建设方案。

出口内容如下


 

rowkey的筹划依然须求基于楼主的要求。hbase特点正是对此rowkey查询是一定快的,可是也设不不奇怪,正是对于非rowkey查询相当慢。所以rowkey很关键,先前时代陈设的不好,会变成系统天性非常慢。例如Google运用类似hbase的bigtable。正是一个框,那个框的剧情自然是rowkey了。客商画像同样也不利,需求把团结关心的剧情放到rowkey里,可是又无法放太多。盲目给楼主建议,明确非常的。所以楼主最佳说一下业务背景,关注的数量。等等,这些是不可能一拍脑袋就定的。那有篇相关内容,希望具有助于。大数据在京东客商画像才干暴露

from_uid
to_uid
flg
content
createtime
2 1 0 bbbbb  
1 3 0 ccccc  

执行sql:

首先 特别感激你耐心的回复!小编这里把场景详细描述一下 大。
笔者们从日记音讯中解析到大气客商音信,如用户用手提式有线电话机登入qq,我们能够得到到qq,手机型号,还应该有相当大可能率手提式有线电话机号码;
客商又用计算机登录了qq和天猫账号,我们能够收获Computermac地址和Taobao账号和qq号;而我们就可以经过qq号,把顾客手提式有线电话机型号,手提式有线电话机号码,qq号,Taobao号,Computermac地址都关乎起来。依此类推末了把一个人的账号音讯征求的百般完美。
有了那么些数量,集团想往外提供一种服务,如服务使用者输入贰个账号(无论是qq,手提式无线电话机号依然天猫商城账号,一时以qq号为例)大家期待能查到和这一个qq号关联的享有的顾客音讯(顾客姓名,居民身份证号,别的各个账号消息)再次来到给劳务使用者。
依靠此主见,小编个人想建设构造七个table,贰个各类账号和uid的关联,以种种账号为rowkey,以uid为value;另一个以uid为rowkey,一个info
列族,列族中包涵种种列音信,也便是该客商的种种账号新闻。服务的流程正是,通过某一账号查到uid,再经过uid得到全数该user的音讯。
但此处有一对主题材料:
(1)客户消息的涉及,如你获取了该客商的手提式有线电话机号,qq号。同有的时候间你收获了该客户的计算机mac地址,天猫账号。那时候他们是可望而不可及关联的(大家并从未一种关系准则来鲜明这个数量是来源于于同一个顾客)。
(2)
第贰个table中,以种种账号为rowkey,以uid作为value的表设计特不客观。

SELECT from_uid,to_uid,content,createtime,if(from_uid>to_uid,CONCAT(from_uid,'_',to_uid),CONCAT(to_uid,'_',from_uid)) as groups 
FROM message  
GROUP BY groups 
ORDER BY id DESC

以上便是所面对的标题。

入眼目标为,已from_uid、to_uid八个字段的打开分组查询。前提为这五个是int类型,方便做if的判定操作。


 

hbase不擅长连接的,最佳规划成四个表,当然或则弄二个二级索引。参照他事他说加以考察:HBase二级索引达成方案http://www.aboutyun.com/thread-14321-1-1.html你们查询的时候,哪些是陆陆续续查询的内容。那个是内需弄通晓的,何况必得旗帜显明。然后嵌入rowkey中。别的不在意了,有一多个列族,列往里面放就行。

Leave a Comment.