1、面向行为分析的数据治理和应用贾毅宁2022-08-27v常见的数据分析场景v数仓建模方法v数仓建模方法的优劣势v面向行为分析的分析方法-概念v面向行为分析的分析方法-整体架构v面向行为分析的分析方法-分析举例目录常见的数据分析场景业务数据行为数据做了什么-指用户使用产品上的各种行为v 网站行为:浏览页面、停留时长、页面的浏览路径、点击行为 等v 广告行为:请求、曝光、点击、广告浏览时长 等v App行为:登陆、注册、功能使用、客服支持 等v 游戏行为:完成教程、过关、付费、升级 等结果如何-指用户行为之后,实际产生的结果业务数据会落库业务数据表。分析业务数据的意义,可以衡量商业价值,是业务最终
2、呈现结果,用以推动公司业务的发展。v 电商指标:PV、UV、成交用户数、成交订单数、GMV、客单价、退款率 等v 广告指标:点击率、转化率、参竞率、竞得率 等v 金融指标:资产负债率、净利润、流动比率、毛利率 等v 游戏指标:付费金额、付费人数、付费率、首充人数、首充金额、ARPU、LTV 等工程实现-面向行为分析的数据加工和分析v 主要分析方式:漏斗分析、留存分析、Segment分析、Cohort分析、用户会话分析、用户行为路径分析 等v 服务的团队:增长团队,存量经营团队,产品团队工程实现:数仓建模v 工程关键词:数据仓库、数据集市、星形数据模型、雪花形数据模型、纬度表建模、多维分析、MP
3、P数据库 等v 服务的团队:各个业务团队、公司决策层、产品团队数仓建模方法用户空间点击曝光请求用户ID登陆时间登陆方式用户ID注册时间会员等级数仓建模主题应用广告主题宽表用户登陆主题宽表会员注册主题宽表ODSDWD维度表报表建设特征挖掘机器学习OneID增长团队存量经营团队产品团队数仓建模方法的优劣势优势v 方法论成熟:已经在无数的公司中被验证过,更有像阿里巴巴大数据实践Building The Data Warehouse等优秀的指导书籍。v 技术栈成熟:无论是从消息中间件、数据ETL管路,数据湖、数据仓库、数据集市的各种选型等,工业界已经诞生了无数优秀的框架和数据库。v 技术供应商支持完善
4、:Google,Amazon,Microsoft,阿里云,腾讯云均提供几乎一站式的服务。v 技术人才供给:各个互联网公司都有数据仓库建模的需求,人才供应充分,培养体系完备。v 公司推动阻力小:数仓的重要性经历了充分的市场教育,推动起来会比较顺畅,投入产出比也比较好阐述。v 应用场景:适合指标类的多维分析数据运算劣势v 建设链条长:数据采集-ODS-DWD-DWT-数据报表和应用。v 数据一致性保证有挑战:不同数据主题之间会有指标和字段的重合,在工程和业务之间,不同的工程团队之间都可能造成理解的偏差。v 扩展字段流程复杂:表结构需要预先定义,扩展新字段往往需要较长的开发周期和回溯数据周期。v 工
5、程实现很难统一:架构评估往往取决于承接的工程团队的过往经验和喜好,同样需求的实现差异较大。v 不适合时序形的行为数据分析:因为需要按照用户维度shuffle和开窗,用户行为分析往往比较耗资源。v 预聚合不够灵活:当维度不能命中预聚合的维度时,查询会退化成全表聚合。面向行为分析的分析方法 概念用户空间用户群计算事件抽象用户事件序列活跃用户群新增用户群满足X条件用户群一个例子-7日Andoird用户的留存率传统数仓的解决方案行为分析的解决方案1.使用数据的底表和表的字段2.定义中间表的创建逻辑(过滤条件,分组条件,指标计算)3.最终结果的业务逻辑4.查询优化(过滤前置,数据倾斜,shuffle,关
6、联方式)1.加载Android用户人群_A;加载T的活跃用户人群_B;加载T-7新增用户人群_C2.(A,B,C)用户群求交=用户人群_D3.(A,C)用户群求交=用户人群_ E4.(D,E)用户群 计算覆盖率整体架构v 查询接入层:负责将一个复杂查询语句拆解成原子的子查询语句。v 查询结果聚合层:负责将用户数据访问层的结果聚合返回v 查询缓存层:每个子查询语句因为其不变形,都可以保存在缓存中v 实时层:处理实时数据v IDMapping:设备ID和用户ID的关联,用户ID和用户ID的关联v 用户数据访问层:执行真正的子查询语句,并行的访问用户数据v 元数据层:记录文件和事件事件的关系,列在文
7、件中的偏移量v 列存储层:列存的方式存储数据,通过Delta encoding 和 Dictionary encoding优化体积和访问速度一个例子-7日Andoird用户的留存率将相对事件翻译成绝对事件,查询是否子查询的结果已经存储在缓存中。将查询拆解成计算以下几个子任务:1.T-7:的新增用户2.T-7:的android活跃用户3.T日的活跃用户对于没有命中缓存的字查询,分布式执行查询计划。根据查询的时间范围和查询列,加载存储文件到计算节点中。返回需要参与计算的数据。返回:用户ID-用户ID;用户ID-设备ID 两种mapping关系对。汇总子查询的返回结果和Mapping对,最终返回查询
8、结果。(1)(2)(3)(4)(5)(6)(7)列存储Metadata HeaderBloomFilter 过滤User_IDDelta encoding 时间戳列Dictionary encoded user_id 列.其他 Dictionary-encoded 属性列v Metadata Header:文件头,记录时间的开始和结束,以及每一个列的偏移量v Delta encoding:差分编码,减少时间戳的存储体积。v BloomFilter:布隆过滤器,快速判断是否一个用户在当前文件中。v Dictionary-encoded:属性字段用字典编码,减少体积,提高过滤和GroupBy的查询
9、效率。v 字典:0:Beijing,1:Shanghai,2:Shenzhenv 编码后的维度值:通过编码的方式,统一存储大小,提高访问效率。减少存储体积。v 倒排索引:通过属性值快速定位行索引,更高效的支持 过滤条件 和 And/OR 等逻辑条件。Dictionary-encodedselect city,sum(click_cnt)from table_twhere category=0 or category=1group by city元数据文件元数据v文件保持相对固定的大小,并按照时间动态分区。时间久远,稀疏的文件按照高时间密度做聚合。时间近,但稠密的文件按照低时间密度聚合。v单个文
10、件内部按照用户ID和时间排序。列元数据v 行元素按照v 一般的查询,只会访问 816列属性值v 减少从存储层到计算层之间加载的数据量OneIDv 追踪用户的设备变化,还原用户事件的最真实状态一个用户在多个设备上使用同一个应用,需要对该用户的唯一性进行标识,进而把用户的行为归属到同一个用户上。多个用户在同一台设备上操作同一个应用。同一个APP内,注册用户前的行为 和 注册用户后的行为进行关联。不同App之间,用户行为进行关联。v IDMapping:User_id:Device_id:用来追踪用户的设备使用情况。如广告中的排除老用户场景Device_id:Deivce_id:用来追踪同一步设备或
11、者同一个用户的多部设备。User_id:User_id:用来追踪同一个用户的ID的变化,具体场景取决于业务模式。v ID Encodingv 为每个OneID赋予一个bit位,用来在bit数组中唯一的标识这个用户。v 在计算人群时,可以通过返回bit数组来进行标识。v 多个人群之间的集合运算可以通过bit数组的与/或/非 进行快速的计算。缓存层v时间版本号:数据可能会因为回填等原因引入新数据,通过时间版本号的方式可以自动刷新缓存。v查询的时间范围:【启始时间、结束时间)用来表识查询的时间范围,一般来说,时间越近,可支持的粒度越小。v查询过滤条件:相当于SQL中的Where条件子句。v人群分组条
12、件:相当于Group条件,表示在过滤条件下,按照分组条件对人群进行重新的划分。用户数据访问层1.用户请求:时间范围,过滤条件,用户群聚合条件。2.请求元数据:确定需要访问文件的位置和列的偏移量3.加载数据到计算节点:加载时序数据到计算节点,并缓存到本地磁盘。可以采用LRU的方式进行淘汰。4.用户分区计算:根据加载的用户活跃度进行分区,并行计算符合查询条件的用户群。5.聚合计算:对每个用户群算子的返回结果进行二次聚合,形成最终用户群。行为分析的应用 用户留存分析Day(行时间+偏移量)的活跃用户群Jul 29 Aug 08新增用户群计算T-1 的每日新增用户群和活跃用户群,那么就可以做任意一段时
13、间新增用户的任意一个时间点的留存分析Day(行时间+偏移量)的活跃用户群行为分析的应用 漏斗分析播放歌曲收藏歌曲购买歌曲下载歌曲v时序严格的转化漏斗(水平切)同一个session内(播放-收藏-购买-下载)用户群同一个session内(播放-收藏-购买)用户群同一个session内(播放-收藏)用户群同一个session内(播放)用户群v非时序严格的转化漏斗(垂直切)播放歌曲用户群收藏歌曲用户群购买歌曲用户群下载歌曲用户群行为分析的应用 路径分析v事件的入度:一个事件发生时,其在时间轴上的前一个事件。v事件的出度:一个事件发生后,其在时间轴上的后一个事件。v计算方式1.计算某一个事件的人群2.按照前一个事件类型进行划分,得到出度。3.按照后一个事件类型进行划分,得到入度。4.对于出度人群和入度人群,分别进行N次迭代计算,最终得到N层深的路径分析,回顾v分析了行为分析和指标分析的主要差异v阐述了数仓建模方式的优劣势,更适合用来做指标分析v阐述了行为分析的主要概念和分析思路的不同v阐述了行为分析系统建设的主要层次v阐述了行为分析系统每个层次的主要应用的技术v阐述了行为分析的主要支持的三个分析场景Thanks