作者:燕飞
Kyligence 大数据老司机,拥有超过15年的大数据/数据仓库领域从业经验,对大数据/数据仓库的建设规划、架构设计、技术体系、方法论及主流厂商的产品和解决方案,均有深入的研究和实践。
【开胃菜】
十五年前,刚开始工作,从帝都回老家。
某长辈和蔼的问我:“工作了啊,做什么的?”
我踌躇半天答曰:“挨踢(IT)。”
长辈不假思索的来了一句:“哦,在中关村卖光盘啊!”
我......我.....我......(叔叔,你知道的太多了)
【副菜】
五年前,一夜之间,“大数据”一词开始红遍大江南北,再碰到别人问我时,我终于可以用一个网红词来轻松回答:“做大数据的!”
(感谢移动互联网的发展,感谢各大IT厂商的炒作,感谢国家的重视和规划,感谢所有TV和AV)
但就在上个周末,跟老妈电话聊家常时,她突然很好学地问了我一个很有深度的问题: “我知道你是做大数据的,但你们大数据到底都在做些什么?”
我一时词穷,不知道该从何说起。而类似的问题在知乎上也经常被一些即将面临就业、被“大数据”三个字圈粉、希望成为数据人的莘莘学子们所追问,因为人懒,基本上都没有好好回答过。
于是,为了给普及“大数据”贡献点绵薄之力,为了让边缘人士们对大数据多一点基本理解,也是为了能回答老妈的问题,我决定写篇文章(省点电话费)来介绍一下大数据以及数据人的日常工作。
大数据虽然已经是大家耳熟能详的热词,但数据领域里的许多术语和概念仍然会让人不明就里,所以我准备从“做饭”这个普通人应该都有基本了解,老妈更是熟稔于心的领域来切入。
【主菜】
正所谓“巧妇难为无米之炊”,做饭首先得有食材,大数据也一样,没有数据说什么都是扯淡,所以数据就是数据人的食材(只要有数据,我不用吃饭)。
做饭通常都要包括“买菜~洗菜~配菜~炒菜”这几个必需环节,无论你是开饭店还是家里一日三餐,做饭的规模大小会有不同,但流程却是一样的。而这几个环节其实正好对应了数据人的日常工作内容:买菜(数据采集)~洗菜(数据清洗)~配菜(数据建模)~炒菜(数据加工)。
1、买菜(数据采集)
买菜,出门首先要考虑去哪里买,到地之后溜达溜达看看买什么食材,看中一个之后讨价、还价、交钱,肉、蛋、青菜,各种要买的食材都得按这个流程来一遍,买齐之后就走人回家了。
对于数据人来说,我们把这个买菜的过程叫做数据采集。
菜市场就是我们通常所说的数据源。
买菜的选择很多:超市(种类较少,质量上乘),农贸市场(种类较多,菜品一般),露天早市(啥都可能有,运气好还能吃到野味)。
数据源其实也一样,数据库(超市)中存储了结构化的业务数据、交易数据,传感器(农贸市场)产生大量半结构化日志数据、机器数据,网络上(早市)。
充斥着各种参差不齐的非结构化数据。
到了菜市场我们得选菜,所有的食材我都想吃,但钱永远是不够的,所以我只能有选择性的买,这个过程叫数据调研,哪些数据是有用的,哪些数据用得起,得有个筛选。
溜达了一圈,确定要买猪肉、鸡蛋和黄瓜,得跟卖家挑肥拣瘦、讨价还价、敲定斤两,这个过程叫数据接口规范。
费劲口舌,劳心劳力把菜买齐之后提菜回家,这个过程叫数据传输。
根据买菜方式、习惯的的不一样,数据采集还可以细分出很多类型:
- 肉类保质期长,一次买一周的量,可以叫全量采集。
- 青菜讲究新鲜,每次只买当天的菜,可以叫增量采集。
- 每天早上都得去买菜的,可以叫批量采集。
- 卖家每次上了新菜都主动给你往家送的(土豪专用),可以叫流式采集。
2、洗菜(数据清洗)
洗菜就很好理解了,无论哪里来的食材,都多少存在卫生或者质量问题,买回来后都得洗干净、摘清楚才能吃,不然小则影响口感,大则损害健康。
数据也是一样,拿回来之后得检查一下,数据内容有没有缺斤少两,数据值里有没有烂菜叶,不然后面的报表、分析出来的结果就全是错误结论了,我们把这个检查、纠正数据本身错误的过程叫做数据清洗。
由于数字世界里各种数据源的多样性、复杂度远远高于现实生活里的菜市场,数据清洗流程需要面对和处理的问题也就远远多于洗菜,为了解决和防范数据产生、使用过程中出现的各方面问题,数据领域细分出了一个专门的研究方向叫数据治理,比如:
- 为了了解各个菜市场的情况,我们需要记录每个菜市场、每个卖家的猪肉、鸡蛋、黄瓜等各种食材的大小、颜色、价格等特点,这个叫元数据管理。
- 记录完之后发现每家的特点都不一样,完全没有可比性,于是我们决定对猪肉、鸡蛋、黄瓜的大小、颜色、价格进行统一规定、统一定价,这个叫数据标准管理。
- 定完标准之后,我们得定期对各个菜市场进行检查,看看他们有没有按标准办事,这个叫数据质量管理。
3、配菜(数据建模)
配菜指的是根据要炒什么菜,将需要的各种食材事先搭配好放在一起,比如说我们要炒木须肉,那就把猪肉、鸡蛋、黄瓜都洗净、切好放在一个碗里,这样在炒菜的时候可以手到擒来,无需到处找食材,能够很好的提升炒菜的效率。
一般家庭做饭可能不会严格这么做,但对于餐饮行业来说,这是必备环节,想想买回来一车的食材,洗净、切好之后,如果没有一定的摆放规律,不能充分保证大厨炒菜时的效率,客户半天吃不到菜,那这个饭店的翻台率和回头率绝对高不了,还是趁早关门大吉。(老妈是个统筹规划能力很强的精细人,无论是宴请宾客还是一日三餐,都会在炒菜之前把各个菜所需要的食材进行事先搭配,所以让我得以了解。)
而在数据工程里,也同样有个专业性很强甚至被神话的配菜流程,这就是传说中的数据建模。数据建模就是建立数据存放模型,把各个数据源过来的各种数据根据一定的业务规则或者应用需求对数据重新进行规划、设计和整理。
配菜这个流程也许在做饭过程中不起眼,有时候可有可无,但是在数据工程里,数据建模却是个非常关键的环节,所以多说两句。
数据的种类之多、复杂度之高远远超过食材,比如一个银行,内部和业务、流程、管理相关的IT系统一般都超过100个,这也就是100多个菜市场,而每个菜市场能够提供的食材少则数百个,多则成千上万个,这都放在一起就是几十万个食材,再加上外部更加复杂的其他数据源,这么多不同类型、不同标准的食材放在一起,怎么才能让后面的炒菜更加高效和科学,其复杂度和可研究性也的确远远高于真正的配菜。
正因为如此,在数据发展史上出现了不少专业的建模(配菜)方法论:
- 比如说按食材种类进行摆放的(猪肉放一堆,鸡蛋放一堆,黄瓜放一堆),我们叫范式建模,你要是开个火锅店或者准备吃火锅,那肯定是采用范式建模来配菜了
- 比如按菜品种类进行摆放的(炒木须肉的放一堆,炒宫保鸡丁的放一堆),我们叫维度建模,你要是吃个家常炒菜,那采用维度建模方法来配菜就更合理了
各种方法论都有其产生背景、适用场景和支持者,为了不引起战争,这里就不做深入讨论了
在这些方法论基础上,经过不断的实践和研究,一些领先的数据厂商推出了标准的行业数据模型,什么叫行业数据模型呢,因为每个行业的业务特点不一样,比如说银行业、电信业、零售业的业务模式就有很大差异,数据也是不一样的,所以不同行业的数据怎么摆放,数据模型怎么设计,有着很强的行业独特性,所以每个行业都需要自己特定的数据模型,这叫术业有专攻。
上面这段话没看懂?没事。简单来说,行业数据模型就是“饭店筹备攻略”。
比如说你觉得川菜很赚钱,想开个川菜馆,但你只是个标准吃货,只吃过猪肉没看过猪跑,怎么办?没事,我这有本“川菜开店筹备攻略”,里面什么都有:
- 首先,攻略里会告诉你川菜里有哪些知名、流行、畅销的菜品(比如水煮肉、毛血旺等等),定期更新,图文并茂,这样菜单有了。
- 其次,每个菜品应该用什么样的食材,分别的配比是什么样的,攻略里已经终结出来了,而且是来自各大名厨的经验和终结,于是菜谱也有了。
- 再次,每种食材在后厨的摆放位置是什么样的,这么摆放能够在厨房的有限空间里最大化的提高大厨们工作效率,详细的设计图纸攻略里也给你画好了,这样厨房设计图也有了。
- 最后,我还告诉你每种食材去哪里能买到,哪里最经济实惠,连供应链都帮你打通了
所以,万事具备,只欠东风,你只要找个门面,雇两个蓝翔毕业生,我们就可以开业大吉,财源滚滚了。什么,找门面很麻烦,没事,我们连店面都可以提供,欢迎加入我们的加盟连锁计划,我们不但提供攻略,连店面也一起提供,带精装修的、锅碗瓢盆一应俱全。(传说中的一体机要出场了,当然,这是另外一个故事,先不展开了。
当然,如果不想开川菜店,我这里还有粤菜、湘菜、鲁菜......,嗯,“八大菜系开店攻略”我这里都有。
(以上内容稍微有点夸大,开个饭店不是一本攻略可以搞定的,做大数据也不是只有模型就可以的。不过很多时候,外人眼里的数据模型就是这么一本“葵花宝典”。)
说点题外话,由于数据建模的专业性太强,非常需要经验的积累,于是在数据行业里衍生了一个专门负责配菜的工种叫“模型设计师”,某全球知名厂商T公司的模型设计师就是业内各大猎头和甲方的香饽饽,T公司一度被挖成重灾区。
4、炒菜(数据加工)
炒菜相信大家都不陌生,如果配菜是个艺术活,那炒菜就绝对是个技术活了。各位大厨不但要有能力把各种食材组合起来炒熟,还得灵活运用油、盐、酱、醋等多种配料,保证菜品的色香味俱全。而且既然是开门迎客,各种消费者的需求都要能够响应,而且要响应的既快又好。
数据加工就是在炒菜,是个将各种数据进行计算、汇总、准备的流程,是为最后的数据应用和数据消费者服务的。客户的要求总是千奇百怪的,所以根据数据消费者的需求不同,数据加工的形式也是百花齐放。
- 老板们时间宝贵,注重宏观,所以一般只看重要指标,并且要求图文并茂、简单易懂。这就好比皇帝每天都吃满汉全席,所有菜品都是固定的,但是菜品得色香味俱全、上菜速度得快。所以大厨们得事先把数据加工成仪表盘、可视化大屏等让人对关键指标一目了然、并且卖相高大上的数据应用,并且采用各种技术手段保证数据应用的性能(上菜的速度),不然皇帝饿了的时候不能及时上菜,谁都背不起这个锅。
- 官员们各管一摊,每天都要面对各种日常工作和突发情况,所以他们对数据的要求是既要有常规菜品能满足日常管理需要,也要能有额外菜品来应对突发情况,而且上菜速度也不能慢,县官不如现管嘛。所以参考自助餐的模式,数据大厨们可以将数据加工成多维分析、自助分析这类数据应用,根据经验和官员们的口味爱好,将有可能用到的菜品通通提供出来,官员们饿了的时候可以根据需要随意品尝,贴心又暖胃。
- 员工们也有数据需求,但通常需求简单,难点在于人多、需求量大,所以将数据加工成报表这种类似于快餐的数据应用就是是最好的方式。
数据加工除了满足以上各种数据需求,还有个不得不提的职责就是数据创新。这就好比为了保证饭店的竞争力和消费者们的新鲜感,不时推出新菜品也是大厨们的职责所在。而在数据圈里,通过数据进行创新已经成为潮流和共识,于是,数据分析师、数据科学家这些角色开始粉末登场。
他们的工作就是通过通过尝试各种数据(食材)和参数(调料)的组合方式来探索和发掘新的业务机会。而由于食材的量实在太大,配料比例的波动范围就更是无止境,难以靠人力把各种组合方式进行穷尽。于是,随着数学理论和技术发展,通过算法让计算机自动进行食材组合、调料配比从而产生新的发现成为可能,也就是我们现场经常听到的数据挖掘、机器学习了。
【甜点】
码字很累,洋洋洒洒写了不少,但感觉有些点还没有写透,有些方面还写的比较牵强,但领会精神最重要,放张大图,大家意会一下吧。
水平一般,能力有限,抛砖引玉,欢迎各种意见和探讨。