大数据数仓建模(3)
大数据数仓建模(3)
2.2.6 人员配置参考
1.旁敲侧击的问你到底做过没有
2.你们大概规模,数据量
1整体架构
属于研发部/技术部/数据部/基础平台部,我们属于大数据组,其他还有后端项目组,前端组, 移动开发、测试组、UI组等。其他的还有产品部、运营部、人事部、财务部、行政部,市场部,销售部等。
和it技术相关的岗位
销售,售前,产品,后端,前端,数据,ui,测试,运维,售后一个人搞定,没钱。
大数据开发工程师=>大数据组组长=》项目经理=>部门经理=》技术总监
2.职级等级与晋升规则
职级就分初级,中级,高级。晋升规则不一定,看公司效益和职位空缺。
京东:T1、T2应届生;T3 14k左右 T4 18K左右 T5 24k-28k左右
阿里:p5、p6、p7、p8, p9
和it技术相关的岗位
销售,售前,产品,后端,前端,数据,ui,测试,运维,售后一个人搞定,没钱。
华为:非外包员工。13级起步,武汉2019年待遇。 应届生是20万一年,15级之前不如互联网。
14k 14薪,税前20万...
大部分的人15-17级之间,牛逼18级以上,月薪2.5-3万。30-40万 年终奖,30-40万(看部门),tpu:10-100万,看你什么时候加入华为,工资只是零花钱...
3.人员配置参考
小型公司(3人左右):组长1人,剩余组员无明确分工,并且可能兼顾javaEE和前端。
中小型公司(3~6人左右):组长1人,离线2人左右,实时1人左右(离线一般多于实时),组长兼顾和javaEE、前端。
中型公司(5~10人左右):组长1人,离线3~5人左右(离线处理、数仓),实时2人左右,组长和技术大牛兼顾和javaEE、前端。
中大型公司(10~20人左右):组长1人,离线5~10人(离线处理、数仓),实时5人左右,JavaEE1人左右(负责对接JavaEE业务),前端1人(有或者没有人单独负责前端)。(发展比较良好的中大型公司可能大数据部门已经细化拆分,分成多个大数据组,分别负责不同业务)
算法组,
画像标签组,(标签a组,标签b组...)
数据建模组(数仓)...不要写你熟悉的那个小地方...写项目的时候,首先选公司,查一下这个公司的的所有信息,包括这个公司做什么行业的,具体业务是什么,靠什么赚钱,目前的发展状况,公司的地址(精确到哪个城市,哪个区,哪条街哪栋楼宇,哪一层,几号),你住在哪里,坐几路公交车...公司有多少人,重点是技术部门,你的项目组的人员分布....
上面只是参考配置,因为公司之间差异,具体的业务不一样,而且对大数据的价值重视程度不一样,具体差异极大,例如ofo大数据部门只有5个人左右,因此根据所选公司规模确定一个合理范围,在面试前必须将这个人员配置考虑清楚,回答时要非常确定。
IOS多少人 安卓多少人 前端多少人 JavaEE多少人 测试多少人
(IOS、安卓) 1-2个人 前端1-3个人; JavaEE一般是大数据的1-1.5倍,测试:有的有,有的没有。1个左右。 产品经理1个、产品助理1-2个,运营1-3个
公司划分:
0-50 小公司
50-500 中等
500-1000 大公司
1000以上 大厂,独角兽, 领军的存在
第3章 数据生成模块
数据是通过埋点的方式获取的,一般来说,都是需要你们公司自己开发一些sdk(数据采集用户的行为程序,js埋点,Java埋点)加密压缩转码发给nginx服务器,服务器后端会做解码,解压,解密,有一些第三方是公司,友盟,神策提供了一些全埋点的方案。
日志发送的时机:启动的时候,退出的时候发送,定时发送,还有可能网络情况发送(3-5年前需要重点考虑的,现在不用要了,因为流量不值钱了...)
退出和定时发送,发送的都是多个用户行为.
启动时,发送发送就是用户启动的行为,可以理解为单个行为.
3.1 埋点数据基本格式
- 公共字段:基本所有安卓手机都包含的字段
- 业务字段:埋点上报的字段,有具体的业务类型
下面就是一个示例,表示业务字段的上传。
{
"ap":"xxxxx",//项目数据来源 app pc
"cm": { //公共字段"mid": "", // (String) 设备唯一标识"uid": "", // (String) 用户标识"vc": "1", // (String) versionCode,程序版本号"vn": "1.0", // (String) versionName,程序版本名"l": "zh", // (String) language系统语言"sr": "", // (String) 渠道号,应用从哪个渠道来的。"os": "7.1.1", // (String) Android系统版本"ar": "CN", // (String) area区域"md": "BBB100-1", // (String) model手机型号"ba": "blackberry", // (String) brand手机品牌"sv": "V2.2.1", // (String) sdkVersion"g": "", // (String) gmail"hw": "1620x1080", // (String) heightXwidth,屏幕宽高"t": "1506047606608", // (String) 客户端日志产生时的时间"nw": "WIFI", // (String) 网络模式"ln": 0, // (double) lng经度"la": 0 // (double) lat 纬度},
"et": [ //事件{"ett": "1506047605364", //客户端事件产生时间"en": "display", //事件名称"kv": { //事件结果,以key-value形式自行定义"goodsid": "236","action": "1","extend1": "1",
"place": "2",
"category": "75"}}]
}
示例日志(服务器时间戳)
1540934156385|{"ap": "gmall", "cm": {"uid": "1234", "vc": "2", "vn": "1.0", "la": "EN", "sr": "", "os": "7.1.1", "ar": "CN", "md": "BBB100-1", "ba": "blackberry", "sv": "V2.2.1", "g": "abc@gmail.com", "hw": "1620x1080", "t": "1506047606608", "nw": "WIFI", "ln": 0}, "et": [{"ett": "1506047605364", //客户端事件产生时间"en": "display", //事件名称"kv": { //事件结果,以key-value形式自行定义"goodsid": "236","action": "1","extend1": "1",
"place": "2",
"category": "75"}},{"ett": "1552352626835","en": "active_background","kv": {"active_source": "1"}}]}
}
下面是各个埋点日志格式。其中商品点击属于信息流的范畴
知道json解析,有两个包,一个fastjson,gson,如何从一个json里面获取数据,能够把你的数据写入到json结构
https://wenku.baidu.com/view/a7807afc0aa1284ac850ad02de80d4d8d15a01c2.html?fr=aladdin664466&ind=1
https://blog.csdn.net/gududedabai/article/details/78637186
3.2 事件日志数据
3.2.1 商品列表页(loading)
事件名称:loading
标签 |
含义 |
action |
动作:开始加载=1,加载成功=2,加载失败=3 |
loading_time |
加载时长:计算下拉开始到接口返回数据的时间,(开始加载报0,加载成功或加载失败才上报时间) |
loading_way |
加载类型:1-读取缓存,2-从接口拉新数据 |
extend1 |
扩展字段 Extend1 |
extend2 |
扩展字段 Extend2 |
type |
加载类型:自动加载=1,用户下拽加载=2,底部加载=3(底部条触发点击底部提示条/点击返回顶部加载) |
type1 |
加载失败码:把加载失败状态码报回来(报空为加载成功,没有失败) |
3.2.2 商品点击(display)
事件标签:display
标签 |
含义 |
|
action |
动作:曝光商品=1,点击商品=2, |
|
goodsid |
商品ID(服务端下发的ID) |
|
place |
顺序(第几条商品,第一条为0,第二条为1,如此类推) |
|
extend1 |
曝光类型:1 - 首次曝光 2-重复曝光 |
|
category |
分类ID(服务端定义的分类ID) |
3.2.3 商品详情页(newsdetail)
事件标签:newsdetail
标签 |
含义 |
|
entry |
页面入口来源:应用首页=1、push=2、详情页相关推荐=3 |
|
action |
动作:开始加载=1,加载成功=2(pv),加载失败=3, 退出页面=4 |
|
goodsid |
商品ID(服务端下发的ID) |
|
show_style |
商品样式:0、无图、1、一张大图、2、两张图、3、三张小图、4、一张小图、5、一张大图两张小图 |
|
news_staytime |
页面停留时长:从商品开始加载时开始计算,到用户关闭页面所用的时间。若中途用跳转到其它页面了,则暂停计时,待回到详情页时恢复计时。或中途划出的时间超过10分钟,则本次计时作废,不上报本次数据。如未加载成功退出,则报空。 |
|
loading_time |
加载时长:计算页面开始加载到接口返回数据的时间 (开始加载报0,加载成功或加载失败才上报时间) |
|
type1 |
加载失败码:把加载失败状态码报回来(报空为加载成功,没有失败) |
|
category |
分类ID(服务端定义的分类ID) |
3.2.4 广告(ad)
搜索广告
信息流广告 (抖音,今日头条)
开屏广告
视频广告(切片和角标)
精准推荐,精准广告...直接赚钱的行业
事件名称:ad
标签 |
含义 |
entry |
入口:商品列表页=1 应用首页=2 商品详情页=3 |
action |
动作: 广告展示=1 广告点击=2 |
contentType |
Type: 1 商品 2 营销活动 |
displayMills |
展示时长 毫秒数 |
itemId |
商品id |
activityId |
营销活动id |
3.2.5 消息通知(notification)
事件标签:notification
标签 |
含义 |
action |
动作:通知产生=1,通知弹出=2,通知点击=3,常驻通知展示(不重复上报,一天之内只报一次)=4 |
type |
通知id:预警通知=1,天气预报(早=2,晚=3),常驻=4 |
ap_time |
客户端弹出时间 |
content |
备用字段 |
3.2.6 用户后台活跃(active_background)
事件标签: active_background
标签 |
含义 |
active_source |
1=upgrade,2=download(下载),3=plugin_upgrade |
3.2.7 评论(comment)
描述:评论表
序号 |
字段名称 |
字段描述 |
字段类型 |
长度 |
允许空 |
缺省值 |
1 |
comment_id |
评论表 |
int |
10,0 |
||
2 |
userid |
用户id |
int |
10,0 |
√ |
0 |
3 |
p_comment_id |
父级评论id(为0则是一级评论,不为0则是回复) |
int |
10,0 |
√ |
|
4 |
content |
评论内容 |
string |
1000 |
√ |
|
5 |
addtime |
创建时间 |
string |
√ |
||
6 |
other_id |
评论的相关id |
int |
10,0 |
√ |
|
7 |
praise_count |
点赞数量 |
int |
10,0 |
√ |
0 |
8 |
reply_count |
回复数量 |
int |
10,0 |
√ |
0 |
3.2.8 收藏(favorites)
描述:收藏
序号 |
字段名称 |
字段描述 |
字段类型 |
长度 |
允许空 |
缺省值 |
1 |
id |
主键 |
int |
10,0 |
||
2 |
course_id |
商品id |
int |
10,0 |
√ |
0 |
3 |
userid |
用户ID |
int |
10,0 |
√ |
0 |
4 |
add_time |
创建时间 |
string |
√ |
3.2.9 点赞(praise)
描述:所有的点赞表
序号 |
字段名称 |
字段描述 |
字段类型 |
长度 |
允许空 |
缺省值 |
1 |
id |
主键id |
int |
10,0 |
||
2 |
userid |
用户id |
int |
10,0 |
√ |
|
3 |
target_id |
点赞的对象id |
int |
10,0 |
√ |
|
4 |
type |
点赞类型 1问答点赞 2问答评论点赞 3 文章点赞数4 评论点赞 |
int |
10,0 |
√ |
|
5 |
add_time |
添加时间 |
string |
√ |
3.2.10 错误日志
errorBrief |
错误摘要 |
errorDetail |
错误详情 |
3.3 启动日志数据
事件标签: start
标签 |
含义 |
entry |
入口: push=1,widget=2,icon=3,notification=4, lockscreen_widget =5 |
open_ad_type |
开屏广告类型: 开屏原生广告=1, 开屏插屏广告=2 |
action |
状态:成功=1 失败=2 |
loading_time |
加载时长:计算下拉开始到接口返回数据的时间,(开始加载报0,加载成功或加载失败才上报时间) |
detail |
失败码(没有则上报空) |
extend1 |
失败的message(没有则上报空) |
en |
日志类型start |
{"action":"1","ar":"MX","ba":"HTC","detail":"","en":"start","entry":"2","extend1":"","g":"43R2SEQX@gmail.com","hw":"640*960","l":"en","la":"20.4","ln":"-99.3","loading_time":"2","md":"HTC-2","mid":"995","nw":"4G","open_ad_type":"2","os":"8.1.2","sr":"B","sv":"V2.0.6","t":"1561472502444","uid":"995","vc":"10","vn":"1.3.4"
}
3.4 数据生成脚本
未完待续。。。
大数据数仓建模(3)相关推荐
- 大数据数仓建模 - 维度建模 实战及思路过程 (两年数仓建模经验 纯干货)
数仓维度建模 维度建模方法论: 维度建模 是以业务过程为驱动 先确定某些业务过程 围绕业务过程去建立模型 通常采用自底向上的方法 从明确关键业务过程开始 再到明确粒度 再到明确维度 最后明确事实 在 ...
- 大数据/数仓面试灵魂30问
1.什么是数据仓库?如何构建数据仓库?(如果这个问题回答的好,后面很多问题都不需要再问) 2.如何建设数据中台?可简单说下理解与思路 3.数据仓库.数据中台.数据湖的理解 4.传统数仓的程度(建模工具 ...
- 大数据/数仓面试灵魂30问(转)
1.什么是数据仓库?如何构建数据仓库?(如果这个问题回答的好,后面很多问题都不需要再问) 2.如何建设数据中台?可简单说下理解与思路 3.数据仓库.数据中台.数据湖的理解 4.传统数仓的程度(建模工具 ...
- Python + 大数据 - 数仓实战之智能电商分析平台
Python + 大数据 - 数仓实战之智能电商分析平台 1. 项目架构 2. 数据仓库维度模型设计-事实表 事实表的特征:表里没有存放实际的内容,他是一堆主键的集合,这些ID分别能对应到维度表中的一 ...
- 大数据数仓高级面试题整理
大家好,给大家整理了一下大数据数仓高级面试题,希望大侠们能够喜欢. 数仓高内聚低耦合是怎么做的 定义 高内聚:强调模块内部的相对独立性,要求模块内部的元素尽可能的完成一个功能,不混杂其他功能,从而使模 ...
- Python+大数据-数仓实战之滴滴出行(二)
Python+大数据-数仓实战之滴滴出行(二) 1. 数据转移 #验证sqoop是否工作 /export/server/sqoop-1.4.7/bin/sqoop list-databases \ - ...
- Python+大数据-数仓实战之滴滴出行(一)
Python+大数据-数仓实战之滴滴出行(一) 1. 项目架构图 1.1 数据流程处理 1.2 数仓分层 1.3 创建数据库 在Hive中创建数据库-- 创建ods库 create database ...
- 【大数据数仓项目集群配置 一】
本文用于记录我的第一次内网大数据集群配置过程. 本篇主要实现基础配置. 配置使用的软件版本和脚本参考自尚硅谷,链接如下: 链接: https://www.bilibili.com/video/BV1r ...
- 数据查询和业务流分开_传统数仓和大数据数仓的区别是什么?
概念与容器 为什么先说这个,其实很简单:因为绝大多数人都把这两个概念混为一谈.然后就会出现各种各样的问题:oracle不是数据库么,怎么又是数据仓库?Hive不是数据仓库么?怎么又是数据库? 数据仓库 ...
最新文章
- 互联网金融如何助力实体经济?
- Parallel并行计算合计数据时错误的原因和解决办法
- 深入浅出Powershell——拷贝GAC中dll文件
- 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- kvm 虚拟机 实用工具笔记(方便查看ip 磁盘复制和修改文件等)
- Linux下CURL设置请求超时时间
- 2020 ICPC NAC
- 【新书推荐】机器学习算法竞赛实战,Kaggle Grandmaster倾力打造,涵盖Kaggle、天池等赛题...
- redis查看某一个key的大小_Redis笔记
- Python实现小球游戏
- Python学习:Mysql(二)
- 推荐几个顶级的IT技术公众号
- 线性代数及其应用(第三版)1.4节习题解答
- 【裴礼文数学分析】例1.2.4
- 视频教程-玩转Python-Python3基础入门-Python
- 3种顺序排序方法。简单排序是指时间复杂度为O(n^2)的排序方法。
- BREDR之inquiry及page
- 抑郁症自我测试皮肤软件,皮肤瘙痒像虫子爬竟是抑郁症
- win10平板续航测试软件,Win10平板必备工具!触摸屏虚拟鼠标应用推荐
- 【OpenCV 例程300篇】40. 图像分段线性灰度变换