本文整理自火山引擎开发者社区 Meetup 第四期演讲|字节跳动大规模埋点数据治理优秀实践

本文整理自火山引擎开发者社区Meetup第四期演讲 , 主要介绍了字节跳动流量平台的埋点内容解决方案和埋点链路解决方案 , 揭秘了流量平台如何支撑起字节跳动万亿+的实时数据处理 。
首先我们定义一下埋点是什么?埋点主要是描述用户在APP内触发的一系列行为 , 包括点击、侧滑等 。 基于这些行为 , 我们可以进行行为分析、个性化推荐、精准营销等很多事情 。 埋点主要描述的是哪些数据?
Who:谁操作的数据When:什么时候操作的数据Where:在哪些页面、模块的数据How:用户如何操作的What:有哪些附加信息
因为本文介绍的是埋点治理 , 所以这里再介绍一下什么是数据治理 。 数据治理是指在数据的生命周期内 , 对其进行管理的原则性方法 , 其目标是为了确保数据的安全、及时、准确、可用和易用 。 数据总是会变得无效甚至无用 , 因此就涉及到对存量数据的治理 。 但这里要强调一下 , 数据治理不只针对存量数据 , 更重要的是对增量数据的治理 , 通过一系列手段 , 能保证数据从源头开始就是正确的 。 此外 , 所有的治理都有具体的落地内容 , 一个稳定的治理链路是所有数据治理的基石 。
下面就为大家介绍字节跳动是如何治理埋点数据的 。
字节跳动流量平台
流量平台是字节跳动内部统一的埋点平台 , 覆盖埋点数据定义、采集、生产、应用、治理等埋点全生命周期 。 当前 , 流量平台已经覆盖了2000多个应用 , 管理埋点(事件)数20万 , 每天产生的埋点数据量超过万亿 , 每年能给公司节省的成本超亿元 。
本文整理自火山引擎开发者社区 Meetup 第四期演讲|字节跳动大规模埋点数据治理优秀实践
文章图片
上图是字节跳动流量平台的产品概念图 , 可以看到流量平台主要分为几块:
埋点内容:这是用户接触最多的一块 , 包括埋点生命周期的设计、开发、验证、上线、使用、乃至下线 。 埋点治理:指的是狭义的对存量数据的治理 。 涉及成本、SLA等的治理 。 链路侧:包含埋点的收集、处理和订阅的全链路 , 平台目前支持对iOS、Android等全端数据的收集 。 平台已经跟下游使用流量数据的应用进行打通 , 用户可以订阅数据 。 链路根基:即自研的动态实时计算平台 , 也是整个平台的核心技术 , 它能够支撑起字节跳动万亿+的实时数据的处理 。 埋点内容解决方案
本文整理自火山引擎开发者社区 Meetup 第四期演讲|字节跳动大规模埋点数据治理优秀实践
文章图片
埋点内容主要管理埋点生命周期 , 这里要着重强调一下上图中心位置的埋点模型其实非常重要 , 因为埋点模型设计的好坏直接影响到埋点的设计、开发、测试甚至使用 。
埋点内容用户痛点
埋点内容的用户主要是有两大类:埋点消费者和埋点生产者 。 对于埋点消费者来说 , 存在如下痛点:
查找难度大:埋点数量非常多 , 找不到自己想要的埋点 。 使用难度高:找到埋点之后 , 用户也很可能不清楚指标埋点口径 。 埋点难信任:当数据不符合预期时 , 不确定埋点数据是否可用 。
对于埋点生产者来说 , 也有一些痛点:
生产链路长:各方信息对齐、流程推动难度大;模型落地难:不知如何设计、不知是否符合规范;缺乏工具支持:设计、开发、测试纯白手起家 。
那怎么去解决用户的这些痛点呢?首先我们要弄清楚埋点的第一站是什么 。 很多公司都有埋点系统 , 对于大部分公司而言 , 埋点的第一站是埋点录入 。 但是大家会发现 , 埋点录入并不是一切的源头 , 埋点设计才是 。 埋点设计是第一手的资料 , 根据埋点的设计文稿可以将用户的需求梳理得非常细致 。 而埋点录入是第二手甚至是第N手资料 , 录入的信息肯定会有丢失 , 并且只能进行一些基本的校验 , 满足基本的准确性 。