离线数仓用户唯一标识(guid)的设计

含义:

为每条日志数据都打上这条日志所属的用户的唯一标识

目的:

为后续的数据分析提供方便

策略:

第一种策略:使用设备id作为用户的唯一标识

这种策略的弊端:

   ①一个账号可能登陆了多个设备,会被标记为多个用户

   ②一个设备登录了多个账号,会被标记为一个用户

第二种策略:使用账号作为用户的唯一标识

这种策略的弊端:

   ①有些数据中根本没有账号

   ②有些用户还没有注册账号,这部分数据会丢失

所以使用第三种策略,动态绑定设备账号

①维护一张设备账号绑定权重表,用来为数据中没有账号的数据获取其对应的账号

该表中存储device_id,account,weight(权重),last_login几个字段,日志数据中没有账号但是以前注册过的设备,可以根据权重从该表中获取到其对应的账号.

②维护一张空设备临时guid映射表,为以前没有注册过账号的设备打上一个临时的guid

临时guid生成的规则:根据公司的用户量,取一个远远大于用户量的数字(比如20亿)开始递增生成临时的guid

核心思想:

如果数据中有账号,使用账号对应的user_id作为guid,如果没有账号,从设备账号绑定权重表以及空设备临时guid映射表中获取

guid的生成流程:

1)如果日志数据中已经带有账号的话,直接使用账号去业务库中的用户账号注册表中查询该条日志数据所对应的guid

2)如果日志数据中没有账号的话,去设备账号绑定权重表中查询,如果能查询到,将权重最大的账号作为该条数据的账号,再去业务库中的用户账号注册表中查询该条数据所对应的guid

3)如果日志数据中没有账号,而且从设备账号绑定权重表中查不到该设备的账号,说明这个设备没有注册过账号,所以去空设备临时获取该空设备对应的临时guid

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值