乐趣区

关于数据仓库:数仓建模ID-Mapping

晚上起床的时候,发现自己尿分叉,我没有多想,简略洗洗就匆忙出门。路过早餐店,我看到徒弟纯熟的拉扯一小块面团,拉至修长条,而后放入油锅中,不一会功夫,一根屎黄色的油条便出锅了,卖相不错。我在想,小到炸屎黄色的油条,大到学习,其实都是一个游刃有余的过程。

数据仓库系列文章(继续更新)

  1. 数仓架构发展史
  2. 数仓建模方法论
  3. 数仓建模分层实践
  4. 数仓建模—宽表的设计
  5. 数仓建模—指标体系
  6. 数据仓库之拉链表
  7. 数仓—数据集成
  8. 数仓—数据集市
  9. 数仓—商业智能零碎
  10. 数仓—埋点设计与治理
  11. 数仓—ID Mapping
  12. 数仓—OneID
  13. 数仓—AARRR 海盗模型
  14. 数仓—总线矩阵
  15. 数仓—数据安全
  16. 数仓—数据品质
  17. 数仓—数仓建模和业务建模

关注 大数据技术派 ,回复: 材料 ,支付1024G 材料。

顾名思义咱们晓得 ID Mapping 的操作对象是 ID,指标或者是动作是 Mapping,也就是说咱们要做的事件其实就是想把不同平台不同设施上的 ID 买通,从而更好的去刻画用户,也就是说咱们心愿能买通用户各个维度的数据,从而更好的去服务业务服务用户

通常公司有产品矩阵,而每个产品都有本人的注册账号产生的用户 ID。从公司全局,整合用户表,用户行为数据来看,确定不同产品的用户 ID 是雷同一个人十分重要, 选取适合的用户标识对于进步用户行为剖析的准确性有十分大的影响,尤其是对用户画像、举荐、漏斗、留存、Session 等用户相干的剖析性能。

其实对于任何剖析都是一样的,如果咱们不能精确标识一个用户,那么咱们的计算结果就没有准确性可言,其实对于数据服务方而言,数据的准确性是咱们的第一要务,咱们宁愿不出数据,也不要出谬误的数据

ID Mapping 的背景

网络身份证

如果没有网络身份证,那么每个商家(App)只能基于本人的账号体系标识用户,并记录用户的行为。而有了对立的网络身份证之后,各个商家之间的数据就能够买通了,天猫不仅晓得用户 A 在淘宝系的购物数据,也能理解到该用户在社交网络的行为,以及游览的爱好,等等。

在事实的数据中,因为,用户可能应用各种各样的设施,有着各种各样的前端入口,甚至同一个用户领有多个设施以及应用多种前端入口,就会导致,日志数据中对同一个人,不同时间段所收集到的日志数据中,可能取到的标识个数、品种各不相同;

比方用户可能应用各种各样的设施,其次是不同设施有不同的操作系统,设置是软件自身的版本也会影响咱们对用户的标识,

  1. 手机、平板电脑、PC
  2. 安卓手机、ios 手机、winphone 手机
  3. 安卓零碎有各种版本(5.0 6.0 7.0 8.0 9.0)
  4. ios 零碎也有各种版本(3.x 4.x 5.x 6.x 7.x … 12.x)

存在的问题

  1. 用户设施的标识,没方法轻易定制一个规定来取某个作为惟一标识:
  2. mac 地址:手机网卡物理地址,若干晚期版本的 ios,winphone,android 可取到
  3. imei(入网许可证序号):安卓零碎可取到,若干晚期版本的 ios,winphone 可取到,运营商可取到
  4. imsi(手机 SIM 卡序号):安卓零碎可取到,若干晚期版本的 ios,winphone 可取到,运营商可取到
  5. androidid:安卓零碎 id
  6. openuuid(app 本人生成的序号):卸载重装 app 就会变更
  7. IDFA(广告跟踪码)

扩大 IDFA

IDFA,英文全称 Identifier for Advertising,能够了解为广告 id,苹果公司提供的用于追踪用户的广告标识符,能够用来买通不同 app 之间的广告。每个设施只有一个 IDFA,不同 APP 在同一设施上获取 IDFA 的后果是一样的

苹果为了爱护用户隐衷,早在 2012 年就不再容许其生态中的玩家获取用户的惟一标识符,然而商家在挪动端打广告的时候又心愿能监控到每一次广告投放的成果,因而,苹果想出了折中的方法,就是提供另外一套和硬件无关的标识符,用于给商家监测广告成果,同时用户能够在设置里扭转这串字符,导致商家没有方法长期跟踪用户行为。这个就叫做广告标识符(IDFA),设置门路是“设置 -> 隐衷 -> 广告 -> 还原广告标识符”,如下图所示(iOS9)

常见的标识

设施 ID

须要留神的是,设施 ID 并不一定是设施的惟一标识。例如 Web 端的 Cookies 有可能被清空(例如各种安全卫士),而 iOS 端的 IDFV(Identifier For Vendor)在不同厂商的 App 间是不同的, 而且重新安装 IDFV 会被重置。

设施 规定
Android 1.10.5 之前版本,默认应用 UUID(例如:550e8400-e29b-41d4-a716-446655440000),App 卸载重装 UUID 会变,为了保障设施 ID 不变,能够通过配置应用 AndroidId(例如:774d56d682e549c3);1.10.5 及之后的版本 SDK 默认应用 AndroidId 作为设施 ID,如果 AndroidId 获取不到则获取随机的 UUID。
iOS 1.10.18 及之后版本,如果 App 引入了 AdSupport 库,SDK 默认应用 IDFA 作为匿名 ID。1.10.18 之前版本,能够优先应用 IDFV(例如:1E2DFA10-236A-47UD-6641-AB1FC4E6483F),如果 IDFV 获取失败,则应用随机的 UUID(例如:550e8400-e29b-41d4-a716-446655440000),个别状况下都可能获取到 IDFV。如果应用 IDFV 或 UUID,当用户卸载重装 App 时设施 ID 会变。也能够通过配置应用 IDFA(例如:1E2DFA89-496A-47FD-9941-DF1FC4E6484A),如果开启 IDFA,能够优先获取 IDFA,如果获取失败再尝试获取 IDFV。应用 IDFA 能防止用户在重装 App 后设施 ID 发生变化的状况,须要留神的是 IDFA 也是能够被重置的

登录 ID

登录 ID 通常是业务数据库里的主键或其它惟一标识。所以 登录 ID,相对来说更准确更长久。然而,用户在应用时不肯定注册或者登录,而这个时候是没有 登录 ID 的。

平台 ID

设施 规定
JavaScript 默认状况下应用 cookie_id(例如:15ffdb0a3f898-02045d1cb7be78-31126a5d-250125-15ffdb0a3fa40a),cookie_id 存贮在浏览器的 cookie 中,仍然有被重置的危险
这里还有一个问题,就是 cookie 只能隶属于同一个域名,也就是说你拜访邮箱的 cookie,与百度广的 cookie 并不是同一个,所以在网站与网站也要做 ID Mapping,这就是为什么你在百度上搜寻了“养生”,到购物网站上就会给你举荐“枸杞”。
微信小程序 默认状况下应用 UUID(例如:1558509239724-9278730-00c1875d5f63f8-41373096),然而删除小程序,UUID 会变。为了保障设施 ID 不变,倡议获取并应用 openid(例如:oWDMZ0WHqfsjIz7A9B2XNQOWmN3E)。如果抉择应用 openid 的话,请留神【操作暂存】,因为获取 openid 是一个异步的操作,然而冷启动事件等会先产生,这时候这个冷启动事件的 distinct_id 就不对了。所以咱们会把先产生的操作,暂存起来,等获取到 openid 等后调用 sa.init() 后才会发送数据。openid 的获取和操作暂存的办法。

其实这里的平台指的一些大的生态系统,例如微信的生态、今日头条等,咱们很多依赖这些平台的利用就能够应用用户在这些平台上的用户标识作为标识, 当然咱们也能够在此基础上为咱们本人平台上的用户创立属于本平台的用户示意,往往就是用户的 登录 ID

计划详解

因而,咱们在进行任何数据接入之前,都该当先确定如何来标识用户。上面会介绍几种用户标识计划的原理,以及几种典型状况下的用户标识计划。

计划一:只应用设施 ID

适宜没有用户注册体系,或者极少数用户会进行多设施登录的产品,如工具类产品、搜索引擎、局部电商等。这也是绝大多数其它数据分析产品惟一提供的计划。

局限性
  • 同一用户在不同设施应用会被认为不同的用户,对后续的剖析统计有影响。
  • 不同用户在雷同设施应用会被认为是一个用户,也对后续的剖析统计有影响。
  • 但如果 用户跨设施应用或者多用户共用设施不是产品的常见场景的话,能够疏忽上述问题。

计划二:关联设施 ID 和登录 ID(一对一)

仅应用 设施 ID 标识用户尽管简略,然而对于某些利用场景这种形式不够精确,因而咱们能够采纳 设施 ID 和 登录 ID 的计划,在肯定水平上交融 设施 ID 和 登录 ID,从而实现更精确的用户追踪。

胜利关联设施 ID 和登录 ID 之后,用户在该设施 ID 上或该登录 ID 下的行为就会贯通,被认为是一个用户 ID 产生的。在进行事件、漏斗、留存等用户相干剖析时也会算作一个用户。

关联设施 ID 和登录 ID 的办法尽管实现了更精确的用户追踪,然而也会减少埋点接入的复杂度。所以一般来说,咱们倡议只有当同时满足以下条件时,才思考进行 ID 关联:

  1. 须要贯通一个用户在一个设施上注册前后的行为。
  2. 须要贯通一个注册用户在不同设施上登录之后的行为。
局限性
  • 一个设施 ID 只能和一个登录 ID 关联,而事实上一台设施可能有多个用户应用。
  • 一个登录 ID 只能和一个设施 ID 关联,而事实上一个用户可能用一个登录 ID 在多台设施上登录。

计划三:关联设施 ID 和登录 ID(多对一)

关联设施 ID 和登录 ID(一对一)尽管曾经实现了跨设施的用户贯通,然而对于某些利用场景还是不够精确,因而这里提供一个新的关联计划,反对一个登录 ID 绑定多个设施 ID 的计划,从而实现更精确的用户追踪

也就是跨端,其实这是十分常见的一种场景,例如你在 PC 端和 挪动端应用同一个产品。

一个用户在多个设施上进行登录是一种比拟常见的场景,比方 Web 端和 App 端可能都须要进行登录。反对一个登录 ID 下关联多设施 ID 之后,用户在多设施下的行为就会贯通,被认为是一个 ID 产生的。

局限性
  • 一个设施 ID 只能和一个登录 ID 关联,而事实上 一台设施可能有多个用户应用 多用户应用同一个设施这个问题是无解的。
  • 一个设施 ID 一旦跟某个登录 ID 关联或者一个登录 ID 和一个设施 ID 关联,就不能解除(主动解除)。而事实上,设施 ID 和登录 ID 的动静关联才应该是更正当的。

计划比照

将上述三个计划放到一起,能够显著看到三种计划的区别,如下表所示:

  • 计划一:仅应用设施 ID,不论用户是谁,只有设施未变,设施 ID 就不变,即便多人应用同一个设施,也会被辨认为同一个用户。
  • 计划二:关联设施 ID 和登录 ID(一对一),

    • 当用户换手机后,登录账号之后的行为与换手机之前的行为贯通了,然而在新设施上首次登录之前的行为仍没法贯通,仍被辨认为新的用户的行为。
    • 当用户把旧手机送给敌人之后,因为旧手机已被关联到本人的登录 ID 了,无奈再与敌人的登录 ID 关联。后续应用这台旧手机的用户们,若不登录就操作,则都会被辨认为同一个用户。
  • 计划三:关联设施 ID 和登录 ID(多对一)

    • 当用户把旧手机送给敌人之后,因为旧手机已被关联到本人的登录 ID 了,无奈再与敌人的登录 ID 关联。后续应用这台旧手机的用户们,若不登录就操作,则都会被辨认为同一个用户)。
    • 而事实上,旧手机上后续的匿名登录很难辨认到底是谁,可能归为匿名登录之前最近一次登录的用户会更正当一些。

其实,三种计划没有对与错,咱们应该联合本人的业务场景以及埋点复杂度来抉择适合的计划。

总结

ID Mapping 就如同它的名字一样,咱们要做的就是将一系列的 ID 关联起来,一些列的 ID 可能是用户在不同平台上的标识,也可能是用户在不同设施上的标识,也可能是用户在不同状态下的标识,总之咱们就是要将这一系列的 ID 关联起来,尽可能地将用户的数据买通,从而提供更加全面精确的剖析。

咱们晓得只有突破数据孤岛数据能力施展更大的价值,可能很多人都晓得数据仓库的数据集成环节其实就是为了突破数据孤岛,其实咱们的 ID Mapping 也是为了突破数据孤岛,其实 ID Mapping 就两个使命 1. 多端数据的辨认;2. 多源数据的买通,其余的都是基于 ID Mapping 的利用。

常识星球

通过考察,大部分同学示意违心退出常识星球,我也感觉这样让大家的发问更加有档次和意义,而不是问一些比拟浮浅和不太适合的问题,有问题也能本人先查问一下,这样更好的交换和解答疑难,晋升工夫利用率。

退出星球能够取得什么:

  1. 博主总结的大数据学习材料收费取得;
  2. 能够向星主和嘉宾发问;
  3. 相互交换,他人的发问和答案所有人都能够看到;
  4. 每周分享大数据前沿常识;
  5. 每周分享大数据面试题目和面试技巧;

常识星球是付费的,如果你不想常识付费,也没关系我这也有收费的微信群,加我微信:ddxygq,回复: 加群,我拉你进大数据交换群。常识星球齐全是被迫付费退出。平时问答,材料分享等,常识星球成员优先,大家都是进去打工的,都不容易,不喜勿喷。

退出移动版