收集和存储数据——数据仓库

数据产品的工作比较杂,从数据仓库建模,指标体系建立,到数据产品工具的设计,再到偶尔一些数据分析报告的撰写,甚至一些机器学习的预测模型都要有所了解。大公司可能每个职能都有专门的岗位来负责,小公司的话可能真的要你一条龙了。

其实数据产品从头到尾做的事情就是帮公司收集数据、存储数据、呈现数据、预测数据,拆分到具体的工作中,将会在下面介绍。

收集和存储数据:数据仓库

数据仓库是存放收集来的数据的地方,做数据分析现在一般尽量不在业务数据上直接取数,因为对业务数据库的压力太大,影响线上业务的稳定。

1. 数据收集的时间间隔

数据仓库里的数据按照数据收集的时间间隔大致分为两类:

一类是可以进行离线处理的数据,一般包括内部业务数据库及外部数据(比如:爬虫或第三方API);一类是需要实时处理的数据,比如:内部业务日志数据。

对于第一类一般的处理多数要求在“天”级别,比如说:一天从业务数据库更新一次数据就足够了,一般采用MapReduce等批处理框架来处理数据,批处理框架在进行大量数据的计算的时候有计算资源比较廉价等优势。

而第二类实时数据处理,需要采用一些流处理框架,例如:Storm、Spark等,来处理数据,当业务发展到一定阶段,业务人员对数据的实时性要求会越来越高,也就对大数据技术团队提出了更高的要求,当然实时处理数据所需要付出的代价也是更高的。

我们要分辨清楚,哪些数据采用批处理就可以了,哪些数据是有实时处理的价值的,并不是说所有数据都实时处理就是更好,毕竟集群资源是有限的,要合理利用计算资源。

2. 数据的分层存储

另外数据仓库的数据存储是分层级的,这个架构一方面跟数据拉取方式有关,一方面也是为了对数据进行层级的抽象处理。

一般来说数据仓库会至少分为ODS、MID、DW三个层级,当然层级的名称每个公司可能不同,这里主要是在作用上进行区分解释。

ODS层存储的是业务数据库在一个时间范围内新增或更新的数据,它的存储是线性增长的,有数据发生变化,ODS才会存储数据。MID层是经由ODS层数据计算得出的最新的完整版数据,相当于是业务数据库的一个拷贝,只不过是截止到某一个时间的。DW层是对MID层进行业务模型的抽象之后的合并层,将一些冗余的库表简化,做成比较利于数据抽取的库表。

因为MID层和DW层存储的都是完整的数据,业务数据库数据会不断增长,导致这两个层级里的数据每个切片的数据都是在增长,相当于是指数增长。

3. 数据的切片存储

数据库的存储是分时间戳的,相当于是把数据按照快照的方式存了n个版本,当你想追溯在某天某时间的数据的时候,就可以通过定位特定的时间戳,追溯到相关的数据。

这种设计避免了业务库数据会不断覆盖的问题,相当于是在数据分析的时候加了一个时间维度,提升了一个维度,看问题解决问题的角度也就被升华了。

4. 数据仓库建模

MID层向DW层抽象的过程,需要数据产品对业务库表进行建模。首先要清楚了解,你所要进行抽象的业务系统是什么样的(感觉数据产品好累,还要去了解别人的系统是怎么玩的╮(╯_╰)╭)。

比如:你所要负责的是A业务系统的DW设计,那么首先你要把A业务系统的系统逻辑搞清楚,然后它所涉及的库表都了解清楚,包括业务本身的库表以及它所依赖的中后台系统的库表,以及各个数据库之间的关系是怎样,比如:是一对一还是一对多,当前库表是否是最细粒度的数据。

一般来说建模要做到模块互相独立,粒度统一。因为考虑到后期做指标和取数的方便,在不同粒度上都有表是比较好的。

比如:一个电商分期业务,可能在订单粒度上才能取到放款等数据,但是品类等维度又只能在商品粒度上取到(考虑到购物车,一个订单可能对应多个商品),这时候就需要两个粒度都建立对应的表才能满足不同的取数需求。

原文发布于微信公众号 - java工会(javagonghui)

原文发表时间:2018-07-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

Booking.com的A/B测试实践

26410
来自专栏web前端教室

为什么你很久都找不到biu的一下就学会前端的教程?

很多人看了很多教程,但依然学不会前端开发的真正原因,在于他们的内心其实一直在寻找“拐棍”,期望拄拐就能走上前端巅峰。 现在关于前端开发方面的教程和文章,主要分...

1995
来自专栏云计算D1net

云计算专家希望获得可用性、集成性和成长空间

调研机构最近对IT决策者进行了一项调查,以了解他们如何推进存储战略和投资,其中包括数据备份、私有云、混合云,以及多云计划。为了满足当前和未来的存储需求,他们正在...

992
来自专栏互联网数据官iCDO

【精华知识】初学者的高级谷歌分析指南-Episode 4

主编前言: 这篇文章我们请朱玉雪帮我们翻译自Avinash Kaushik先生的文章。了解Avinash Kaushik先生的朋友不对他的行文风格不会陌生——内...

3356
来自专栏鹅厂网事

大型DCI网络智能运营实践

"鹅厂网事"由深圳市腾讯计算机系统有限公司技术工程事业群网络平台部运营,我们希望与业界各位志同道合的伙伴交流切磋最新的网络、服务器行业动态信息,同时分享腾讯在...

6.6K6
来自专栏大数据文摘

人工智能和机器学习领域中10个开源项目

1856
来自专栏美团技术团队

美团点评运营数据产品化实战

背景 美团点评作为全球最大的生活服务平台,承接超过千万的POI,服务于数量庞大的活跃用户。在海量数据的前提下,定位运营业务、准确找到需要数据的位置,并快速提供正...

52711
来自专栏数据的力量

说说网站用户的生命周期价值

1594
来自专栏奇点大数据

资源!吴恩达视频文字版及笔记整理

不过,这种视频在线课程也有其弊端,就跟很多人不喜欢微信语音一样,想要在视频中查找和回顾相关的知识点并不方便。

1421
来自专栏智能计算时代

[ 数据架构 ]MIKE2.0方法 : 一种信息开发的开源方法

以下显示的是信息成熟度(IM)QuickScan的示例输出。 IM QuickScan用作评估企业级组织中数据治理级别的第一步。

1331

扫码关注云+社区

领取腾讯云代金券