数仓建模【埋点设计与管理】
埋点设计与管理
埋点的作用
- 分析用户转化以及留存:
- 分析用户偏好
- 收集市场反馈
- 保障用户数据安全
- 定位异常
- 其他作用
埋点数仓设计
数据进入数仓之前我们就需要设计好数仓表,埋点表的数据有几个特点:
- 数据量非常大,可能是所有数据集成渠道里面,流量最大的了
- 数据不存在更新,这是埋点表的数据特点
面对这两个特点,我们需要做一些设计,当然还有一些其他设计方面的点需要注意以下,首先因为量大,而且我们往往关注的是昨天的数据,所以我们的表肯定是分区表,其次因为我们使用的特点,例如关注的是页面浏览或者是按钮点击,所以我们在实践分区的基础上按照事件进行分区。这样我们可以在数据擦汗寻的时候过滤掉大量的数据从而提高查询性能。
其次,就是埋点表作为数据报表的数据来源的时候,可能会大概率遇到计算延迟,或者一些其他的问题,所以在宽表的设计或者报表展示种,请尽量得将集成进行后延,从而更好的保证稳定性和可用性。
小程序端的埋点表
web端的埋点表
埋点的类型
埋点:在期望的点位,埋设一个记录的标记。这个点位,一般多是指用户与产品进行一次次交互的接触点, 从而可以在用户和产品交互的时候,将用户的数据进行上报。
通过收集这些标记点的数据,可以帮助产品运营及开发同学了解功能的整体使用、运行情况,并通过数据基础上做出下一步调整或优化的方向。遇事不拍脑袋,而是用数据说话,这是数据埋点最大的价值。
在AB测试的场景,数据埋点是为实验组的效果提供数据支持,其本质也是数据决策的基础。
根据目前常见的数据埋点形式,可以将数据埋点分为:全埋点、代码埋点(自定义埋点),当然我们也可以按照产品的类型划分为:APP埋点、Web埋点、小程序埋点。
- 全埋点:全埋点的逻辑,实质数据采集sdk无区别的对待所有事件的,将所有事件(页面加载成功实践、控件的浏览和点击事件)全部获取后先存下来,到使用的时候,再根据具体的页面路径和控件名称,去捞取相应的数据。
- 优点:其优点和特点是功能上线时,不需要开发做额外的埋点定义工作,用的时候再根据需求去获取对应的数据,因此也叫无埋点。
- 缺点:耗费用户流量、占存储空间;一旦版本迭代,对页面的路径做了修改,或者空间位置、文案有修改,原来的圈选数据可能就会出错,需要重新圈选,之前利用圈选指标谁当的分析模型都要替换;圈选指标无法区分细部参数,比如:商品详情页,无法通过圈选数据来区分是哪一个商品或哪一个类目;对web的页面数据处理一直不好,尤其是设计到app的内嵌H5页时,非常痛苦。
- 因此,全埋点适用于业务多变、经常调整,且分析诉求比较轻量级的场景。对于通用的功能,形态相对比较固定,且对数据分析颗粒度、下钻深度、聚合程度要求较高,那就需要用到代码埋点。
- 可视化埋点:基于此,可视化埋点是指在全埋点部署成功、已经可以获得全量数据的基础上,以可视化的方式,然后进行数据选择。这种方案的弊端之一是耗流量和存储空间,全埋点采集的数据一般会根据情况设定一个销毁时限,比如7天。即:全采集过来的数据,如果7天之内没有被使用,则会被销毁。而一旦对圈选数据做了圈选定义之后,则被定义的页面数据、控件数据,则会一直采集,且不会删除。
- 代码埋点:代码埋点也叫自定义埋点 ,从字面上是针对想要的点位单独定义,并可以通过变量丰富埋点的信息,以支持上下游分析。代码埋点分为前端埋点和后端埋点:
- 前端埋点:包括但不限于APP客户端、H5、微信小程序、PC网页,是指对具体的功能场景(如加载成功、浏览、点击等)进行明确的定义,由前端触发,采集上来的数据相比于全埋点,更准确、稳定,且通过变量字段,能够实现更细粒度的数据拆分、聚合和下钻。
- 后端埋点:指触发了服务端接口调用(如:接口回调成功触发)的事件埋点,如最典型的注册成功事件、付款成功事件。后端埋点对数据的准确度要求更高,同时也可以通过变量字段的扩展支持数据拆分、聚合和下钻。需要强调的是,后端事件一般采集的是一登陆状态下的用户行为,如果像使用后端事件作为流程分析的其中一环(如漏斗分析),则可能出现未登录的用户会漏掉的情况。
埋点上报方式
-
图片请求 :优势没有跨域问题;不会阻塞页面加载;在所有图片中,简单、安全;
-
Get请求:GET把参数包含在URL中,也就是说我们的上报数据是在一个url参数中或者是几个参数中。GETA请求最大的特点就是简单,但是同时也带来了很多其他的问题,首先是安全问题因为GET请求参数被暴露在IURL中,GET请求只能进行url编码,而POST支持多种编码方式,其次get请求在URL中传送的参数是由长度限制的,也就是如果你上报的数据内容比较多,可能会被截断。
-
Post请求:相比于GET请求首先就是更加安全,其次是支持多种编码,而且所能发送的数量页更大,看起来是不错的选择,但是还是不如图片请求好。
埋点管理设计
整个埋点的事件我们可以使用4W1H进行表示
下面是APP端的一个例子
事件模型
我们使用”事件模型(Event模型)“来面熟用户的各种行为,事件模型包括事件和用户两个核心实体。整个埋点的属性,我们可以分为两个大类,第一类是事件属性,第二类是用户属性。
为什么这两个实体结合在一起就可以清晰的描述清除用户行为?实际上,我们在描述用户行为时,往往只需要描述清除几个要点,即可将整个行为描述清除,要点包括:是谁、什么时间、什么地点、以什么方式、干了什么。而事件和用户这两个实体结合在一起就可以达到目的。下面介绍以下这两个实体。
事件的设计
基本规范
预置属性
设计原则
整个埋点的设计我们应该遵循以下几个原则,从而可以更好的维护和管理整个埋点系统。
- 通用基础事件:埋点事件能通用则不单独埋点,不是说单独埋点越多越好,我们应该尽可能地从上层设计比较通用地事件,这样方便复用。
- 重要事件:重要事件要单独处理,统一上报,保证采集的可用性
- 业务主流程:对于主要的业务流程,我们可以设计独立的事件,从而方便更好的分析;
数据从生产到应用的流程
首先是基于一定的需求出发,然后产品、业务、分析时对需求进行评审,主要就是需求同步,信息对齐,接下来就是埋点的开发与测试,埋点上线之后,数据同学开始进行数据需求开发在此过程中对埋点进行验收,最后对数据需求进行交付
这个过程,需要专门投入专人去做这件事,企业需要定制顶层的业务规范,上面的流程中有一个环节是没有的,那就是埋点的下线。
数据产品和数据分析师不仅要考虑到业务需求和数据分析的工作,还要站在业务线数据体系和数据应用负责人的角度,对埋点实施、管理、迭代、文档、交付、支持进行掌控和维护。
埋点系统的设计
其实很多公司针对埋点会维护单独的一个系统,这个系统主要维护了公司的全部埋点,其实你可以将其理解为和jira类似的一套系统,下面看系统的核心。
埋点列表
埋点注册
埋点详情
属性管理
在埋点元数据中维护产品、业务层面的通用属性,由数据团队统一维护,所有可见的属性,都可以在注册、编辑埋点是添加属性时搜索到,自定义属性相对于通用属性,是某个事件下特有的属性,由业务方根据埋点方案维护。
表设计
字段名称 | 备注 |
埋点ID | 表的自增ID即可 |
埋点域 | 是APP埋点还是web埋点还是都是 |
埋点中文名称 | |
埋点英文名称 | |
埋点位置 | 这个位置我们要求使用图片进行展示+文字说明 这里的图片展示很重要,因为这样很形象 |
埋点开发负责人 | 谁负责开发,很多时候会涉及到APP和WEB同时开发 |
埋点业务负责人 | 谁提的需求 |
埋点数据负责人 | 谁负责该埋点对应数据需求的处理,完成最终的埋点的验收 |
埋点业务含义 | 为什么埋点,关于埋点的具体数据计算逻辑是什么 |
埋点所属事件 | 买单所属的事件,一般情况下我们都可以将一个买单归到我们已经定义的埋点事件中去,如果没有合适的埋点事件,需要先定义事件,再定义该埋点 |
埋点通用属性 | 一旦归类到某个埋点事件下面,我们要求上报该事件的全部属性 |
自定义属性 | 该埋点的自定义属性 |
埋点代码git的PR | 是一个url。方便追踪埋点代码 |
埋点的jira | 埋点需求的jira跟踪 |
埋点的状态 | 上线、测试、开发、下线、不可见等状态 |
埋点的创建时间 | |
埋点的上线时间 | |
埋点的更新时间 |
数据丢失如何处理
总结
- 埋点是数据平台很重要的一部分,如果只有业务数据没有埋点数据,那么用户在我们平台上的一切行为对我们来说都是黑盒,所以我们想要做到精细化运维埋点是必须的;
- 优于埋点的数据从产生使用链路很长,而且很复杂,这就需要我们做好设计和管理工作。
相关文章:

数仓建模【埋点设计与管理】
埋点设计与管理 埋点的作用 分析用户转化以及留存:分析用户偏好收集市场反馈保障用户数据安全定位异常其他作用 埋点数仓设计 数据进入数仓之前我们就需要设计好数仓表,埋点表的数据有几个特点: 数据量非常大,可能是所有数据集…...
Spring Clound介绍
Spring Cloud 是一系列框架的集合,它利用 Spring Boot 的开发便利性简化了分布式系统(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话和集群状态)的开发。Spring Cloud 旨在为开发者…...
Redhat Linux忘记密码解决方案
1、重启系统 2、将光标移动到要启动的内核 3、按e编辑当前条目 4、将光标移动以Linux开头的行,此为内核命令行 5、在末尾添加人的rd.break 6、按ctrlx继续启动,如果发现输入的rd.break不能进入到伪系统,那么改为 rd.break consoletty0 (按ctr…...

对于子数组问题的动态规划
前言 先讲讲我对于这个问题的理解吧 当谈到解决子数组问题时,动态规划(DP)是一个强大的工具,它在处理各种算法挑战时发挥着重要作用。动态规划是一种思想,它通过将问题分解成更小的子问题并以一种递归的方式解决它们,然后利用这些…...

Instal IIS on Windows Server 2022 Datacenter
和以往版本一样,没有什么不同,So easy! WinR - ServerManager.exe 打开服务器管理器,点击【添加角色和功能】,选择自己想要的角色和功能。 一、开始之前:帮助说明,点击【下一步】;…...
飞天使-k8s知识点30-kubernetes安装1.28.0版本-使用containerd方式
文章目录 安装前准备containerd 配置内核参数优化安装nerdctl以上是所有机器全部安装开始安装初始化,这步骤容易出问题! 安装前准备 内核升级包的md5,本人已验证,只要是这个md5值,放心升级 1ea91ea41eedb35c5da12fe7030f4347 ke…...
Oracle 误操作insert delete update 数据回滚
查询回滚数据 select * from tablename AS OF TIMESTAMP TO_TIMESTAMP(2023-12-29 10:29:00,yyyy-mm-dd hh24:mi:ss) where not exists (select 1 from tablename A where A.xh tablename.xh and A.TIME tablename.TIME); TO_TIMESTAMP(2023-12-29 10:29:00,yyyy-mm-dd h…...

Linux系统(CentOS)下安装配置 Nginx 超详细图文教程
一、下载并安装 1.打开nginx官网并点击右侧的download,Nginx官网下载地址 2.选择稳定版本 我放在/usr/local/nginx/下,新建文件夹 mkdir /usr/local/nginx/ 通过xftp传输到Linux的服务器上,这里方法不过多复述。 或者如果Linux联网…...

追求完美用户体验,从变量名设计的细节抓起
在一个安静的办公室里,卧龙和凤雏正坐在电脑前忙碌地工作着。阳光透过窗户洒在他们的脸上,映照出专注的神情。 “变量命名让人摸不着头脑,光看变量名很难搞清楚它的用途。”卧龙眉头紧皱,表情严肃地说道。 “哦?具体是…...
matlab实现K均值聚类
在MATLAB中实现聚类分析,可以使用MATLAB内置的聚类函数,如kmeans(用于K均值聚类),linkage和cluster(用于层次聚类),或者使用MATLAB的统计和机器学习工具箱中的其他函数。 以下是一个…...

详解BOM编程
华子目录 BOM编程window对象常见的window对象的属性常见的window对象的方法注意 history对象history对象的属性history对象的方法 screen 对象navigator 对象属性方法 location对象属性方法示例 BOM编程 JavaScript本质是在浏览器中运行,所以JavaScript提供了BOM&a…...

情感分类学习笔记(1)
文本情感分类(二):深度学习模型 - 科学空间|Scientific Spaces 一、代码理解 cw lambda x: list(jieba.cut(x)) #定义分词函数 您给出的代码定义了一个使用 jieba 分词库的分词函数。jieba 是一个用于中文分词的 Python 库。该函数 cw 是…...

EtherCAT运动控制器Delta机械手应用
ZMC406硬件介绍 ZMC406是正运动推出的一款多轴高性能EtherCAT总线运动控制器,具有EtherCAT、EtherNET、RS232、CAN和U盘等通讯接口,ZMC系列运动控制器可应用于各种需要脱机或联机运行的场合。 ZMC406支持6轴运动控制,最多可扩展至32轴&#…...

物联网杀虫灯—新型的环保杀虫设备
型号推荐:云境天合TH-FD2S】物联网杀虫灯是一种新型环保杀虫设备,其中风吸式太阳能杀虫灯作为其一种特殊类型,展现了独特的工作原理和优势。 风吸式太阳能杀虫灯以太阳能电池板为电源,白天储存电源,晚上为杀虫灯提供电…...
加盟零食店的真是大冤种
关注卢松松,会经常给你分享一些我的经验和观点。 我一朋友,在老家县城去年失业没事干,手里有一点钱但不多,就想着自己干点啥 。最后经多方打听考察,加盟了一个零食店,前前后后花去了近五六十万,…...

力扣刷题--数组--第三天
今天再做两道二分查找的题目,关于二分查找的知识可看我前两篇博客。话不多说,直接开干! 题目1:69.x 的平方根 题目详情: 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数&#…...

开源即时通讯IM框架 MobileIMSDK v6.5 发布
一、更新内容简介 本次更新为次要版本更新,进行了bug修复和优化升级(更新历史详见:码云 Release Notes、Github Release Notes)。 MobileIMSDK 可能是市面上唯一同时支持 UDPTCPWebSocket 三种协议的同类开源IM框架。轻量级、高…...
React 第二十七章 Hook useMemo
useMemo 函数可以用于缓存计算结果,以避免不必要的重复计算。 在React的函数组件中,当组件重新渲染时,函数组件内的所有代码都会重新执行。有些计算可能是非常消耗资源的,例如进行复杂的计算或进行网络请求。如果这些计算的结果在…...

自己写的爬虫小案例
网址:aHR0cDovL2pzc2NqZ3B0Lmp4d3JkLmdvdi5jbi8/dXJsPS92aWV3L3dvcmtpbmdVbml0L3dvcmtpbmdVbml0Lmh0bWw 这串代码能够爬取勘察单位企业的详细信息。 import requests import time import csv f open(勘察单位公司信息.csv,w,encodingutf-8,newline) csv_writer …...
Kafka 环境搭建和使用之单机模式详细教程
上一篇:Kakfa 简介及相关组件介绍 下一篇:Kafka 环境搭建之伪分布式集群详细教程 Kafka 环境搭建 Kafka的环境搭建可以根据不同的需求和场景采取不同的模式,主要包括以下几种: 单机模式(Standalone Mode): 在这种模式下,Kafka、Zookeeper 以及生产者和消费者都在同一…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇
根据 QYResearch 发布的市场报告显示,全球市场规模预计在 2031 年达到 9848 万美元,2025 - 2031 年期间年复合增长率(CAGR)为 3.7%。在竞争格局上,市场集中度较高,2024 年全球前十强厂商占据约 74.0% 的市场…...