简单说一些我对ID-Mapping的理解

先说结论:ID-Mapping是大数据分析中非常基本但又关键的环节。通俗地说,ID-Mapping就是把几份不同来源的数据,通过各种技术手段识别为同一个对象或主题,例如同一台设备(直接),同一个用户(间接),同一家企业(间接)等等。这个过程可以形象地理解为用户画像的“拼图”过程。

背景

在构建精准用户画像时,面临着这样一个问题:日志采集不能成功的收集用户的所有ID,且每条业务线都有各自定义的UID来标识用户,从而造成了用户ID的零碎化。因此,为了做用户标签的整合,用户ID之间的强打通(也叫做ID-Mapping)成为了当下迫切的需要。ID-Mapping往往是做数据画像的第一步:解决数据源过多且不统一、不互通的问题。

标识符引入

日志数据针对某个用户单词特定的浏览行为,一个用户一天可能存在多条数据,然而标签是针对人的,就会存在一些问题:

  1. 在数据集中抽出人的概念,让一个人对应一条数据
  2. 在日志信息中找不到可用的用户id,只能退而求其次,找到设备的信息,用设备的信息标识用户

举个栗子

假设由一位用户张三,在华为手机上使用百度地图在,iPad上观看爱奇艺视频,苹果手机上使用手机百度APP,在PC端上使用百度搜索,如何将同一个用户在这些不同端的用户信息聚合起来呢?

 

 

IdMapping标识符

ID-Mapping是大数据分析中非常基本但有非常关键的环节,ID-Mapping通俗的说就是吧几份不同来源的数据,通过各种技术手段识别为同一个对象或主题,例如同一台设备(直接),同一个用户(间接),同一个企业(间接)等等,可以形象的理解为用户画像的“拼图”过程。

一个用户的行为信息、属性数据是分散在很多不同的数据来源的,因此从单个数据来看,都相当于“盲人摸象”,看到的只是这个用户一个片面的画像,而ID-Mapping能把碎片化的数据全都串联起来,消除数据孤岛,提供一个用户的完整信息试图,同时让某一个领域的设备在另一个领域绽放出巨大的价值。

ID-Mapping有非常多的用处,比如跨屏追踪和跨设备追踪,将一个用户的手机、PC/平板等设备上的行为信息串联到一块。

        IMEI:国际移动设备标识码,即通常所说的手机序列号、手机串号,用于在移动电话网络中识别每一部独立的手机等移动通信设备,相当于移动电话的身份证。IMEI是写在主板上的,重装APP无法改变IMEI。Android6.0以上系统需要用户授予read_phone_state权限,如果用户拒绝就无法获得。

        IDFA:与iOS6时问世,可以监控广告效果,同时保证用户设备不被APP追踪的折中方案。可能发生变化,如系统重置、在设置里还原广告标识符。用户可以在设置里打开“限制广告追踪”;

        MAC地址:硬件标识符,包括WiFi mac地址和蓝牙mac地址。iOS7后被禁用

       OpenUDID:在iOS5发布时,UDID被弃用了,这引起来广大开发者需要寻找一个可以替代UDID、且不受苹果控制的方案。由此OpenUDID成为了当时最广泛的开源UDID替代方案。OpenUDID在工程中实现起来非常简单,并且还支持一系列的广告提供商

        Android ID:在设备首次启动时,系统会随机生成一个64位的数字,并把这个数字以16进制字符串的形式保存下来,这个16进制的字符串就是ANDROID_ID,当设备呗wipe后该值会被重置

同一用户识别

依据标识符,找出属于同一用户的标识,示意图如下:

 

一个人无论使用什么设备,一定会有如上图的六个标识符里的一或者多个个,只要我们能从中拿到拥有相同标识符的用户,就能确认是同一用户的不同设备。

从图论的角度出发,ID强打通更像是将小连通图合并成为一个大连通图;比如,在日志中出现如下三条数据,分别表示三个ID集合(小连通图):

华为手机   10001 A B C

IPAD         10002        C D

PC电脑     10003            D E

如何实现ID-Mapping呢?最好的办法就是使用【图计算】,图计算有着两个框架:

        Neo4J

        SparkGraphX -> 连通图算法(就是上面这个图)

展开说说这两个框架

Neo4J

Neo4j框架是一个高性能的图形数据库框架,它使用图形结构(由节点和关系组成)来存储和查询数据。在Neo4j中,数据以图形的方式呈现,使得处理复杂关系数据变得更为直观和高效。

在ID-Mapping中,Neo4j框架的作用主要体现在以下几个方面:

  1. 存储和管理复杂关系:ID-Mapping需要将不同来源的数据识别为同一个对象或主题,这通常涉及到处理复杂的关联关系。Neo4j框架使用图形结构来存储这些关系,使得数据之间的关联关系更加清晰和易于管理。
  2. 高效查询:在ID-Mapping过程中,需要频繁地查询和比对数据。Neo4j框架提供了高效的图形查询语言Cypher,可以快速地查询和检索图形数据,从而加速ID-Mapping的进程。
  3. 可视化展示:Neo4j框架支持将数据以图形的方式展示出来,这使得ID-Mapping的结果更加直观和易于理解。通过可视化展示,可以清晰地看到不同数据之间的关联关系,从而更容易地识别出同一个对象或主题。

总的来说,Neo4j框架在ID-Mapping中发挥着重要的作用,它使用图形结构来存储和查询复杂关系数据,提供了高效的查询和可视化展示功能,使得ID-Mapping过程更加高效和准确。

 SparkGraphX

Spark GraphX是Apache Spark中的一个分布式图处理框架,它主要用于处理大规模的图结构数据。具体来说,GraphX提供了丰富的接口和工具,使得对图数据的计算和图挖掘任务变得简洁易用。

在ID-Mapping中,Spark GraphX框架的用处主要体现在处理那些由多个ID(如user_id、device_id等)组成的复杂用户数据上。由于不同的ID可能对应同一个用户,但它们的生命周期、获取阶段等可能存在差异,因此,通过ID-Mapping将这些ID关联起来,可以形成一个完整的用户画像。

举个例子来说明,假设我们有一个电商网站,用户可以使用不同的设备(如手机、平板、电脑等)登录,每个设备都有一个唯一的device_id。同时,用户登录后,系统会分配一个唯一的user_id。如果我们想分析一个用户的购买行为,就需要将这些不同设备上的购买记录关联起来。这时,我们就可以使用Spark GraphX框架来实现ID-Mapping,将同一个用户的多个device_id和user_id关联起来,形成一个统一的用户标识。

在ID-Mapping过程中,Spark GraphX框架可以通过图数据结构来表示用户和设备之间的关系,然后使用图算法(如最短路径算法、相似度计算等)来找出不同ID之间的关联关系。一旦找到了这些关联关系,我们就可以将不同设备上的购买记录合并到同一个用户标识下,从而实现对用户购买行为的全面分析。

Spark GraphX框架在ID-Mapping中发挥着重要作用,它可以帮助我们处理复杂的用户数据,实现不同ID之间的关联映射,从而为我们提供更准确、更全面的用户画像和数据分析结果。

(叠甲:大部分资料来源于黑马程序员,这里只是做一些自己的认识,分享经验,如果大家又不理解的部分请移步【黑马程序员_大数据实战之用户画像企业级项目】https://www.bilibili.com/video/BV1Mp4y1x7y7?p=201&vd_source=07930632bf702f026b5f12259522cb42,以上,大佬勿喷)

课程简介:  本项目课程是一门极具综合性和完整性的大型项目课程;课程项目的业务背景源自各类互联网公司对海量用户浏览行为数据和业务数据分析的需求及企业数据管理、数据运营需求。 本课程项目涵盖数据采集与预处理、数据仓库体系建设、用户画像系统建设、数据治理(元数据管理、数据质量管理)、任务调度系统、数据服务层建设、OLAP即席分析系统建设等大量模块,力求原汁原味重现一个完备的企业级大型数据运营系统。  拒绝demo,拒绝宏观抽象,拒绝只讲不练,本课程高度揉和理论与实战,并兼顾各层次的学员,真正从0开始,循序渐进,每一个步骤每一个环节,都会带领学员从需求分析开始,到逻辑设计,最后落实到每一行代码,所有流程都采用企业级解决方案,并手把手带领学员一一实现,拒绝复制粘贴,拒绝demo化的实现。并且会穿插大量的原创图解,来帮助学员理解复杂逻辑,掌握关键流程,熟悉核心架构。   跟随项目课程,历经接近100+小时的时间,从需求分析开始,到数据埋点采集,到预处理程序代码编写,到数仓体系搭建......逐渐展开整个项目的宏大视图,构建起整个项目的摩天大厦。  由于本课程不光讲解项目的实现,还会在实现过程中反复揉和各种技术细节,各种设计思想,各种最佳实践思维,学完本项目并勤于实践的话,学员的收获将远远超越一个项目的具体实现,更能对大型数据系统开发产生深刻体悟,对很多技术的应用将感觉豁然开朗,并带来融会贯通能力的巨大飞跃。当然,最直接的收获是,学完本课程,你将很容易就拿到大数据数仓建设或用户画像建设等岗位的OFFER课程模块: 1. 数据采集:涉及到埋点日志flume采集系统,sqoop业务数据抽取系统等; 2. 数据预处理:涉及到各类字典数据构建,复杂结构数据清洗解析,数据集成,数据修正,以及多渠道数据的用户身份标识打通:ID-MAPPING等;3. 数据仓库:涉及到hive数仓基础设施搭建,数仓分层体系设计,数仓分析主题设计,多维分析实现,ETL任务脚本开发,ETL任务调度,数据生命周期管理等;4. 数据治理:涉及数据资产查询管理,数据质量监控管理,atlas元数据管理系统,atlas数据血缘管理等;5. 用户画像系统:涉及画像标签体系设计,标签体系层级关系设计,各类标签计算实现,兴趣类标签的衰减合并,模型标签的机器学习算法应用及特征提取、模型训练等;6. OLAP即席分析平台:涉及OLAP平台的整体架构设计,技术选型,底层存储实现,Presto查询引擎搭建,数据服务接口开发等;7. 数据服务:涉及数据服务的整体设计理念,架构搭建,各类数据访问需求的restapi开发等;课程所涉及的技术: 整个项目课程中,将涉及到一个大型数据系统中所用到的几乎所有主要技术,具体来,包含但不限于如下技术组件:l Hadoopl Hivel HBasel SparkCore /SparkSQL/ Spark GRAPHX / Spark Mllibl Sqoopl Azkabanl Flumel lasal Kafkal Zookeeperl Solrl Prestop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值