浅谈 eBay 大数据开发中的一些最佳实践
1
前 言
eBay 智能营销部门致力于打造数据驱动的业务智能中台,以支持业务部门快速开展营销活动。目前在我们正在构建一个基于eBay站外营销的业务全渠道漏斗分析指标,涉及近十个营销渠道、数十张数据源表,每天处理的数据达到上百TB。由于业务复杂、数据源异构、指标计算逻辑频繁变更、数据体量巨大,如何快速完成数据处理开发任务是一个巨大的挑战。在长时间的生产实践中,我们总结了一套基于Scala开发Spark任务的可行规范,来帮助我们写出高可读性、高可维护性和高质量的代码,提升整体开发效率。
2
基本开发规范
一、字段名规范
字段名应足够简洁清晰,使阅读者能快速理解字段内容。
相似字段名应加上数据源、级别名、细分属性加以区分,例如我们有 Google 的 click数据和内部的click数据,那么就应该使用 PARTNER_CLICK, INTERNAL_CLICK 来命名不同的点击数据。
二、业务字典
对于公司已有统一命名的专业术语,应采用此命名方式,例如 GMB。
对于公司级别命名并未统一的专业术语,在 domain 或 team 内部应有统一的命名规范。比如你的ETL任务中用到了多个系统的数据,对于用户ID,系统A里面叫user_id,系统B里面叫u_id,系统C里面叫mapped_id,当经过我们数据清洗流程后我们应该将这些字段统一成同个概念,比如USER_ID。
数据 schema 中字段名应用下划线分割,而代码变量仍旧应该采用驼峰命名法,字段与变量应该有默认对应关系。
建议维护一个业务名词库用来统一定义专业概念和术语,注明是公司级别的术语或是 domain/team 级别的术语,级别名称应在字段名上体现。
三、幂等性
一个spark任务应该是幂等的,这个任务在有同样的输入时被执行多次输出是恒定的,不应该产生副作用。
四、数值类型
在分析计算需求的时候,需要先对数值类型进行分类,不同的数值类型的计算方式也会不同。
原始数值指标:由事件带出的数值指标,在定比数据级别(ratio level),可以直接进行算数运算
浅谈 eBay 大数据开发中的一些最佳实践相关推荐
- 浅谈在游戏陪玩开发中常见的几种加密算法及实现
前言 数字签名.信息加密是游戏陪玩开发前后端都经常需要使用到的技术,应用场景包括了用户登入.交易.信息通讯.oauth 等等,不同的应用场景需要游戏陪玩开发时使用到不同的签名加密算法,或者需要搭配不一 ...
- 浅谈iPhone和iPad开发中的图标设置
浅谈iPhone和iPad开发中的图标设置 图标大小问题 我们的辛辛苦苦做出来的应用程序在iPhone上的表示仅仅是一个图标,对这个图标不可以不谨慎对待,不能因为大小不对头这些小问题而失真啊什么的. ...
- 国内大数据开发中比较受欢迎的几款工具
1.zookeeper 一个分布式的应用程序协调服务,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的工具,让Hadoop集群里面的节点可以彼此协调.ZooKeeper现在已 ...
- 决胜大数据时代:HadoopYarnSpark企业级最佳实践(3天)
Hadoop是云计算的事实标准软件框架,是云计算理念.机制和商业化的具体实现,是整个云计算技术学习中公认的核心和最具有价值内容. Yarn是目前公认的最佳的分布式集群资源管理框架: Mahout是目前 ...
- 浅谈Web大数据可视化平台开发流程
随着大数据时代的到来和数据分析技术的进步,物联网.云计算.手机.电脑以及各种传感器,无一不是数据来源或者承载的方式.微信.qq等社交平台的普及,让人们的情绪和喜好预测变成可能.在众多复杂的数据背后找到 ...
- 大数据开发中HBase高级特性和rowkey设计分析
大数据培训学习过程中,经常会使用到HBase高级特性,在阐述HBase高级特性和热点问题处理前,首先回顾一下HBase的特点:分布式.列存储.支持实时读写.存储的数据类型都是字节数组byte[ ...
- 浅谈网易大数据平台下的数据质量
大数据平台的核心理念是构建于业务之上,用数据为业务创造价值.大数据平台的搭建之初,优先满足业务的使用需求,数据质量往往是被忽视的一环.但随着业务的逐渐稳定,数据质量越来越被人们所重视. 千里之堤,溃于 ...
- 浅谈医学大数据(上)
现在无论国内外均出现了移动医疗热,所有的创业团队和投资公司均把商业模式指向了最后的医疗大数据分析.但是可以很负责任的说,90% 以上的人都不知道医疗大数据分析是什么东西,因此这是一篇扫盲贴,但是仅供专 ...
- 浅谈政务大数据的本质
导读:政务是个大市场,阿里.腾讯.电信.华为都在赔本赚吆喝.本文作者是资深从业人士,研发总监.本文开篇讲讲政务大数据的本质:后续还有一系列文章:敬请期待. 政务大数据,字面意思即政务相关的大数据,大数 ...
最新文章
- 归一化EvoNorms
- 20151217:Web之Repeater使用:添加
- html文件最后一行文字,文本多行溢出显示...之最后一行不到行尾的解决
- PHP:第四章——PHP数组array_diff计算数组差集
- 知乎高赞、高逼格 1024 程序员节礼物
- C++类型萃取之type_traits和type_info
- Windows7查看无线网络密码
- Spring声明式事务配置的两种策略SpringAop和Bean后处理器的代理BeanNameAutoProxyCreator
- 思源黑体ttf_金刚黑体最粗版丨金刚黑体Bold+San Francisco
- Linux指令部分(一)
- 人工智能的目标与进化
- 股票集合竞价什么意思?集合竞价时间及集合竞价技巧?
- 震惊!程序员一夜赚1W,没想到他就做了这个......
- UneXt 基于MLP的快速医学图像分割网络
- 中国房地产泡沫规模巨大将载入历史 面临崩溃风险
- 线性规划问题及单纯形法-单纯形法原理
- C语言编程>第三周 ④ 求100之内的素数。
- DevData Talks | 张乐、茹炳晟、应阔浩、任晶磊:研发效能实践的2022年复盘和展望
- html 360浏览器输入框自动填充,关于360浏览器自动填充表单问题以及解决方案
- itext html转换pdf,itext转换html成pdf(支持中文、图片)
热门文章
- 小程序挂服务器,小程序帮微信开挂_服务器x86服务器-中关村在线
- IDEA 显示Detects duplicates in source code警告去除办法
- English语法_程度副词-Very / Much
- [转载]打工辛酸路:我是一朵飘零的花之125
- 备案会影响服务器吗,云服务器不备案会有什么影响?云服务器备案需要多久?...
- KMIP1.0和1.1之间的详细区别
- 大话设计模型 Task03:工厂、制造、观察
- 爬虫(七):虎牙直播爬虫
- 申请百度地图开发者AK和基本使用
- java 微信抽奖_微信随机生成红包金额算法java版
- 浅谈在游戏陪玩开发中常见的几种加密算法及实现