时空观

我在北大学习的时候,有一位教语文的吕艺教授。忘了在课堂上,还是某一次聚会,有同学请教他一个对人生之路有所帮助的观念问题(这个同学可能就是我,但确实记不清了)。

当时他这样回答的:“遇到问题,要有时空观,拉长时间来看待这个问题,并且把它放在更广阔的环境中。”

这几天车坏了,坐地铁上班,又有时间看书,在《创始人手记:一个企业家的思想、工作和生活》这本书上,作者有一个更形象的说法。

想象一条横坐标,X 轴上,向左延伸,延伸到一颗受精卵的时候,向右延伸,一直到死亡那一刻。一个人站在某一点上,这个点和他现在的年龄有关。相较于历史长河,人的一生几乎就是短短一瞬。当遇到不决之事时,想象站在遥远的右端来看,是非对错与重要与否,就会清晰一些。

再想象一条纵坐标,Y 轴,向上无限延伸,飞机的高度,人就变得很小,继续向上,地球也变成了一个小点,到了太阳系、银河的高度,地球上这个小点,就不再重要。颇有《庄子·逍遥游》中大鹏眼下的世界。往回收,到人体的内部,存在于人体「宇宙」中的每一个分子都在积极新陈代谢,为身体生态稳定运行贡献能量。

这种空间的伸缩和时间的穿越观念,可使人的心态格局宽广起来,也会更加积极,经营好一生,更少留下遗憾。

以历史为尺度,绝大多数人是尘埃,以宇宙为尺度,我们都是尘埃。

加油少年

制定计划,固定几点干什么,在学生时代是可行的。工作环境中,如果把某件事的起止时间限定死了,很容易被其它事情插入打断,导致后面不能坚持。

一直以来,我都在寻找每天固定写作的好时段,早上、下午或晚上,固定好具体时段,只可以坚持几天,某天中断,后面就很难再持续。今天索性想,一天不择何时,只要写够一定时长,比如半小时,或许可以好坚持些。

每天要做的事包括,陪伴、教育、锻炼、更新网站、阅读、写作、编程、学习、工作任务。每项平均用 1 小时,也会用掉 9 小时,时间非常不够。执行力现如今是一种稀缺资源。

这也是职场中年的尴尬,35 岁以后,精力和注意力不如年轻时候,需要操心的事变多,既要照顾家庭、教育孩子,还得持续学习,跟上行业的节奏,不免力不从心。

星星

本周三,一颗小行星与地球擦肩而过,约为 16 倍地月距离。人类无任何感觉。

如果距离更近,地球是不是能捕获另外一颗月球?

对于星空,有几次较深的印象。

第一次是童年,姥爷给我讲牛郎织女的故事,带我到院子里,指着银河两侧两颗较亮的星星,告诉我识别的要点是牛郎星两旁有两颗小星星,三颗星近似成一条直线,那是牛郎挑的担子,里面装着的他的孩儿。银河从南到北,占据大半个天空,灰蒙蒙的一条亮带,令人心生敬畏。

再大一些,大概是七岁,在爷爷家过年,年三十晚上接神,要等东方三颗一线的星星移动到正南方的时候,点旺火、放爆竹,后来在自然课本中了解到,这三颗星属于猎户座,大概是猎户的腰带或盾牌。这是我认识的第一个星座。

还是小时候,去三姨家做客,晚上和表弟在院子里玩,每天都能看到西北方有一颗「扫帚星」,始终停留在一个位置,扫帚状的尾部异常明显。据说这是不好的征兆。现在仍不知道看见的是哪颗彗星。

我爸爱打麻将,我妈不在家,我自己一个人不敢在家睡,我只好跟着他出去打麻将。直到钱输光了叫醒我回家,大概是夜里四点,内蒙空旷平原,漫天璀璨繁星,流星接二连三,比我后来专门看的流星雨数量更多。我后来再没见过如此浩瀚的星空。

十三四岁,晚自习后先去学校食堂找我妈再回家。去食堂的路上,不经意间抬头,一颗星星炸裂,炸出拳头大的耀眼光芒,转瞬即逝,颇感震撼。并不能百分百确定是星星的异象,但应该是没有看错。如果是,这次爆炸不知道发生在多久之前,幸运地被我肉眼观察到。

高三复读那年,忘记有哪个星座的流星雨,夜里同学们哆哆嗦嗦地从宿舍出来,找一个不被楼房挡住的地方,呼市的光污染多少影响了观察,并没有看到多少。只记得,有一个男同学,蹲下来为他喜欢的女生拉好外套拉锁。

离开内蒙后,对星空就没有太多印象了。

好运气的秘诀

减少对外部事物的负面评价。

评价是我们对世界的反馈。通过我的观察发现,高段位的人,经常表现出的是正面评价,而低段位的人,总是会做出负面评价。

成为高段位,80% 的人靠运气,20% 的人靠能力。与其用尽力气提高一点点能力,不如多想办法提高运气。

人和世界的交互就是你给它反馈,它也给你反馈。

当你表达了负面的信息后,后续很难反射回具有粘合作用的正向能量。

很糟糕的事情,不做负面评价又该如何做呢?

用行动来代替评价。所谓话不要说绝,事要做绝。

牢骚、抱怨是典型的负面评价。

家有一老,如有一宝

中午,我半仰在副驾驶座上休息,天窗外天蓝清透,脑海中冒出一句话:

家有一老,如有一宝。

人随着年纪增长,见多识广,人生经验变得丰富,在关键问题上有着智者的见识。所谓「人老成精」。有些智慧只能经岁月的沉淀。可惜大多数人无法把对人生的领悟表达出来,宝贵的人生经验随肉体消亡。

我所能获得的知识和信息,超越上两代人。在处理人生问题上,未必有比他们更好的方法。

读过的书、走过的路、听过的故事,单位时间空间内,领悟了更多的智慧。

如果有了疑惑,希望不走弯路,但又咨询不了老人,那就找这个领域经验丰富的人,或者是思维能力强,认知层次高的人去交流。

老人的宝贵,还在于家庭凝聚力。老人是根,开枝散叶,大家是一棵树,根亡了,枝叶就散了。

数据存储那点事:数据湖和数据仓库

数据湖是个筐,什么都能往里装……物联网设备传感数据、网站、APP、社交媒体和业务系统的非结构化数据和结构化数据统统往里装。

数据仓库就不同了,既然是仓库,就需要事先规划,按品类分区,原料、半成品以及成品分开存储,以提高出入库、调拨的效率。

事实上确实如此,数据仓库(DW, Data Warehousing),通常分为:

  • 操作数据层(ODS, Operational Data Store)
  • 明细数据层( DWD, Data Warehouse Detail)
  • 汇总数据层(DWS , Data Warehouse Summary)
  • 应用数据层(ADS, Application Data Store)

另外还有一个公共维表层(DIM) 。

先不要被这些概念吓住,以后讲数据仓库建模的时候会详细说,先初步有个印象。

类比来看,这就是一个数据原材料——原材料半加工——半成品全加工——按需食用的过程。

  • 结构化的数据先原样存入 ODS 层。要用到数据采集、同步的技术,上篇文章有写到。这一步相当于把原材料拉进仓库里。操作数据层和数据湖有点像,但不包含半结构化、非结构化数据。
  • 明细层和汇总层,存的都是事实表,事实表又是个啥?就是反应了一项事实,比如谁什么时间花了多少钱购买了哪个商家的某个产品。这正好是一张数据表的各项字段。明细层存的是详细的事实数据,而汇总层,是按业务需求,做了一定的汇总后存放的数据,比如最近 7 天北京地区活跃的男性和女性用户数量,这是一行汇总数据,是根据明细数据汇总而成的数据。
  • 明细层的数据,是从 ODS 加工而来的,如何加工?最简单常见的就是 JOIN、UNION,写一些复杂的 SQL。这一步是半加工。
  • 我们建数据仓库,最终还是为数据分析(OLAP)、可视化等业务应用提供支撑。为了更好地调用、分析数据,数据是按主题分类的,就是后文要说的「面向主题」。
  • 公共维表层,存放用于分析时的那些维度,维度是衡量和观察业务的角度。比如省市区、年月日、用户等级等。

说清楚了数据仓库,再来回顾下数据湖和数据仓库最大的不同。

数据湖是一个庞大的混合存储库,一般是集中式的,可以存储所有结构化和非结构化数据。

而数据仓库,是一个「面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。」这是数据仓库之父Bill Inmon在 1991 年出版的《Building the Data Warehouse》一书对数据仓库所做的定义。

  • 面向主题,简单来说,就是按目的(比如分析的指标大类)把数据分类,比如电商的数据运营,会对商品、会员、销售、物流等各项指标分析,可以按以上分类把数据分表存放。
  • 集成的,意思是多个供应商(业务系统)的货(数据),我们都有序地存放在一个中央仓库(数据仓库)里,康师傅和统一的方便面,我们都放在方便面的货架里。
  • 相对稳定,这是区别于 OLTP 数据的特点,比如一条订单数据,状态会不断变化,有下单(待付款)、付款(待发货)、发货(待确认收货)……等一系列更新(UPDATE)过程,这就是不稳定,而存入数仓的数据,一般不会再更新。
  • 反应历史变化,是指要把反映过程的数据尽可能地存储下来,以便支撑更为精细的分析。这样一来存入的数据会很多,以上面的订单数据为例,在 OLTP 中只有一条记录,可能只有状态字段和时间字段更新,其它商品、用户字段不发生变化,而在数仓中,会把每次更新都存下来,这样会有多条数据。而「拉链表」就是优化这种存储场景的一种方法(以后详述),可以有效降低存储成本。

数据仓库这种「数据集合」,需要根据业务的需要,事先规划定义数据结构,因此它可以用传统的关系型数据库来搭建,因为要存储很多历史数据,所以要对单表的存储容量和性能有所要求,传统数据仓库很多都是用 Oracle 搭建的。

那么说数据仓库和大数据又有什么关系吗?数据仓库是种方法论,大数据能提供技术手段。比如 Hive,就是大数据里用来搭建数据仓库的好组件。

数据湖是不是就是一个简单的混合存储库?也不是。数据湖并不是存储方案,它的目的也是用于分析和指导决策。

  • 数据湖本身要支持运行不同类型的分析(如 SQL 查询、大数据分析、全文搜索、实时分析和机器学习),不需要将数据移至另外的分析系统。
  • 数据湖要能够对数据进行爬网、编目和建立索引来让用户了解和使用湖中的数据。这项功能的难度很高,因为数据湖中的数据更为复杂。

数据仓库可以充当用户可信任的「单一信息源。」数据湖则是以更丰富的数据格式和类型,以及更全面的分析工具,提供更广泛价值挖掘的可能性。

对于当前大部分公司的数据应用水平来说,应先建立规范的数据仓库,这是对理念和方法的考验,而不是技术和手段(用关系型数据库就能建立)。数据湖,在更先进的技术屏蔽了复杂的存储、编目和底层分析工具后,将会是趋势,可逐步关注。

关耳爷

微信号wei-talk

理解大数据本应很简单:什么是数据集成和数据治理

本文是《极简大数据》系列第二篇。

不管出于什么目的,假设你要利用一批数据。那么你期望数据是什么样的?

答案很简单:全、快、对。

当然也可以换三个词:全域数据、实时数据、高质量数据。

我个人还是喜欢上面接地气的词。

如果你关注大数据,或者是做数据产品经理,应该了解数据集成和数据治理。

它们都是手段,最终为数据的使用而服务。

经过集成和治理后的数据,我们期望是能高效使用的、高质量的、高价值的数据。

实现高价值,前提条件是数据要全和快,这是对数据集成能力的要求。

数据的主要来源有三种,一是业务发生后系统产生的数据,存放在关系型数据库或 NoSQL 数据库中,比如在淘宝剁手下单,就会产生一条订单记录,谁什么时间在哪个店铺购买了一件什么商品,付款多少钱等。

第二类是系统服务环境产生的日志文件,如 Nginx、Apache 等对于 HTTP 请求和响应生成的记录文件,在浏览器里输入淘宝网址回车,淘宝的服务器就记下哪个 IP 在什么时间访问了淘宝,打开了哪几个页面,停留了多长时间,客户端有什么特性(如分辨率大小、浏览器版本、操作系统版本等)。

第三类是从客户端(浏览器、APP)采集到的用户行为日志文件,称为埋点日志,是程序员开发出来的一小段程序,可以采集到你做了什么动作,如点击商品加入购物车、切换到评论页面等,便于运营人员更好地分析用户如何使用应用。

当然数据还有更多的来源和格式,如传感器采集到的数据等,可以看这一篇

这三类数据都要能从源服务器上采集过来。有的数据是结构化的,如关系型数据库,有的是半结构化的,如 NoSQL 数据库、日志文件。更大的范围来说,图片、音频、视频等非结构化数据,也要能够支持采集。

这是对所能采集的数据类型的要求。在采集方式上,还要能支持全量、增量采集。

全量采集就是每次都完整拉一遍。缺点很明显,需要带宽流量和时间,不符合对快的要求;增量采集,程序要记得每次采到了哪里,采过的数据如果某些发生了变化,也要能感知,在下一次采集时把变化的数据带回来。

传统上,增量采集可以用时间戳、标志位、触发器等方式搞定,这需要数据源的配合,有时候,我们没有条件干涉数据源。

大数据技术下,对于关系型数据库,可以采集数据库的日志,再解析日志还原数据,实现增量的流式采集。如 MySQL 配置好 Binlog 日志,通过 Kafka 把日志实时发送过来。其它数据库也都有类似的方法。

对于关系型数据库,Apache 社区有开源组件 Sqoop,它主要用于在关系数据库和Hadoop之间传输数据。对于日志文件的采集,开源组件有 Flume、Logstash 等。

不仅多种类型的数据能够采集,还要速度快,讲究实时、准实时,达到秒级的同步。

数据时效性的价值不言而喻。数据一旦产生,就能感知和传输过来,与之前采集的数据增量合并形成最新最完整的数据。

只有足够快,才能不错过一些重要的分析和监控,许多实时的数据业务对此都有要求,如风控、推荐等。

数据量大,要求采集吞吐率高,而吞吐率和延迟(快慢)又是一对矛盾体,意思是说,大数据规模下,想要实时,是很有挑战的,例如天猫双 11 活动的大屏,看着只是几个数字在变,这背后的技术是相当硬核的。

再来说数据的质量问题。

高质量,代表数据不多、不少、不错、一致。

展开来说就是不重复冗余,没有其它数据混杂在内造成干扰;数据不残缺,行列记录都是完整的;标准一致,代表相同意义的数据字段类型、格式最好都能统一。

这些都是数据治理功能所要解决的问题,对已经是结构化的数据从库、表、字段不同级别进行标准和质量的监控、基于规则模型去校验和纠错等。

对应的就是数据标准管理和数据质量管理。

治理的另一个范围是数据安全,包含敏感和隐私数据不能泄露,数据不能被非法访问,对数据访问进行监控和审计。涉及到脱敏、数据权限和监控审计等功能。

在 DAMA(国际数据管理协会)中,对数据治理定义了九个方面的内容。

元数据也是很重要的一部分,元数据是指「关于数据的数据。」就是全方位、多角度地描述一份数据所形成的数据。就像简历之于人的关系,如果简历内容十分丰富,那我们就可以全面地了解这个人。

对于数据也是一样,从技术(数据格式、存储大小、更新时间……)、业务(描述什么业务的数据,属于哪个信息系统等……)、管理(谁在负责该数据、安全等级……)多个角度充分地描述数据,那我们就能对这个数据有清晰的了解和认识。

我们可以通过元数据快速查找和定位数据,也可以通过分析元数据,看清数据的来龙去脉,它产生的过程,以及它对别的数据的影响,这就是所谓的数据血缘。

总结来说,数据集成和数据治理的功能范围,就是为实现上述目标所框定的。

首先确保可用性和性能,真正能把多源异构的数据接入进来,保证传输的可靠性。

原始数据落地之后,需要对它进行有效的治理,通过元数据、数据标准、数据质量、数据安全等多种手段,确保数据是精确、完整、有效的,以便于下一步数据能更好地利用。

关于数据集成和治理,我们先明确目标和架构,以后的篇幅我会细讲里面每个小的模块。

关耳爷

微信号wei-talk

— 你也可能感兴趣 —

不确定型决策

1

俗话说:「两利相权取其重,两害相权取其轻」。理论上,这属于风险型决策,与今天要说的不确定型决策有很大的区别。

风险型决策的收益、损失、成本和风险,是清楚知道的,发生的概率也是明确的,这种选择一般好做。但也有三种情况会导致决策失败。

分别是理智弱鸡、算力不足、资源匮乏。

第一种,理智打不过感性。明知道投入产出不成正比,但抵制不了诱惑,或者抱有侥幸心理,万一收益大于损失呢?赌博和出轨是比较典型的例子。以出轨为例:

收益 损失 风险
出轨 肉体、精神的短期欢愉
刺激、新鲜的体验
物质、经济、时间
心力损耗(撒谎、内疚等负面体验)
一个或两个家庭的破坏、骨肉心灵创伤
外部评价降低
经济纠纷、官司、人身风险
不出轨 家庭稳定和睦 禁忌体验 平淡

经过对比,明显不出轨从各方面来讲都比较合算。出轨被发现的概率基本是 100%,风险随之而来,善后非常麻烦,为什么还是有那么多人出轨呢,尤其是一些有地位的人,冒险不可谓不大。对于这些有身份地位的人来说,除了和常人一样的侥幸心理和难以抵制诱惑以外,还因为他们抗风险的能力要比常人更强一些。出了最坏的结果,能不能承担得起?这也是决策的底线思维。选择的自由,与实力密切相关。

第二种,算力不足。炒股很能说明这个道理,理论上,掌握了全部信息,运用各种算法分析价值指标和博弈态势,一定可以预测股票的涨跌,但现实中很难做到这样的程度。面对复杂模型,因为信息掌握不全、条件不具备,很难「权轻重」,也就容易决策错误。

现实中的算力不足,更主要是因为畏惧和厌恶「计算」,人类进化到现在,还保留着尽可能降低能量损耗以确保生存的基因,而复杂的脑力计算非常损耗能量,所以依靠右脑的直觉决策,成为很广泛地决策手段。但对于关键和复杂的选择,轻率的决策很可能造成比较糟糕的后果。

第三种,资源匮乏。这也是今年诺贝尔经济学奖得主的一个研究结论。作者在《贫穷的本质:我们为什么摆脱不了贫穷》书中写道,因为资源不足,穷人只能为改变眼下的困境做出选择,而这种选择对长远的利益是有损害的,穷人并非意识不到,但无能为力。经日累月,打破不了循环,久而久之形成了所谓的「穷人思维」。

现今老龄化社会结构趋势显著,医疗费用高,老一辈的人购买了重疾保障保险的比例非常低,除了保险意识不够之外,还因为老人在支援子女家庭建设,没有更多的经济去考虑配置医疗保险,一旦身患重病,可能卖房也难以负担;「35 岁人群」面对壮年失业风险,很多选择低成本或无成本的扩展副业,而没有选择优先购买保险抵御风险,若干年后再买,身体条件下降,保费和保险范围都不太有利。

举这两个例子是为了说明资源匮乏对于决策的影响。

2

相对于以上确定性比较高的风险型决策。真正不好做的是不确定型决策,不确定性是人生常态,人生道路上的每一个关键时刻,如择校选专业、择偶结婚、跳槽换工作,大多属于不确定型决策——无法确定每项选择的收益、损失和发生几率,不知道哪一种选择结果才是好的,往往让人陷入两难境地——如果能预知未来,该有多好!

首先,有选择是好事。有选择,就意味着自由。只有「穷人」才没有选择。这个观念一旦建立起来,选择到好结果的几率就会上升,因为排除了烦恼、焦虑、犹豫的负面情绪干扰,就能专注在决策本身上。

其次,前人已经给我们研究出了不确定型决策的准则和方法。

1)冒险法(赫威斯决策准则)

目标是获得最大收益。预估每一种选择能确定获得的最大收益,选择收益最大的那个选择。

这种方法的缺点是最后可能获得最大亏损,因而称之冒险投机的准则,有些赌的性质。

比如说,选择去可能能上市分股票的创业公司,而不考虑工作强度、压力、氛围和距离和管理情况。一旦公司上市拿到股票,就能实现财富自由。

另一个例子是改革开发初期或之前,从国营企业选择下海扔下铁饭碗的那批人。

2)保守法(瓦尔德决策准则)

目标是风险最小,避免最坏的结果。预估每种选择的最低收益,选择最低收益值最大的那个选择。

比如说,把家庭稳定当成一个重要的选择因素,从多个追求者里选了一个老实巴交的男生。就是保守法。

3)等可能性法(拉普拉斯决策准则)

通过比较每个选择的损益平均值来进行选择,在收益最大化目标下,选取择平均收益最大的选择,在成本最小化目标下选择平均成本最小的选择。

通常来说,相当于给每个选择的多个有利条件和不利条件设置权重,然后根据每个选择两方面得分,结合自己的目标去选择。

4)最小最大后悔值法(萨凡奇决策准则)

目标是确保避免较大的机会损失。这个方法不考虑收益,而考虑机会损失。确定每个选择的最大机会损失,选出最小的那个选择。

就是确定了某个选择之后,对丢失其它选择机会所能承受的后悔程度。

3

最后,无论面对什么样的选择:

1)信息一定要支撑得起决策。

对于最在意的方面,多方收集信息和探听情报,以增强决策的依据。比如选择新 Offer,如果你对工作环境的人际关系比较在意,就一定在入职前想办法打听到领导的风格,同事的人品。这不是难办的事。

2)相信经验。

无法通过科学的方法获得客观评估的情况下,依靠经验。可以看看贤哲谚语怎么说,也可以听听身边经历同样抉择的人的意见。人性不变,历史就有指导意义,你所遭遇的,世界上一定还有其他人也曾遭遇,你不是一个人。

比如说结婚自古讲究门当户对,这不是物质的世俗,而是意味着物质观、世界观和价值观一致,冲突就少,家庭就和谐。其它条件相同的情况下,选门当户对的那一个。

3)跳出已有选择

这正是不确定性的好处之一。目前的选择已经是全部的选择了吗?不得不从对立的选择中选择其一吗?《第 3 选择》全本书都在说这个问题。

这本书说,面对任何问题,大家惯用的第 1 选择就是按照「我」的方式,第 2 选择就是按照「你」的方式来进行。冲突点往往就在于,到底是你的选项比较好,还是我的。因此,不论选择哪一方,都会有人觉得受伤或牺牲。作者指出,这时不妨考虑第 3 选择:超越你的或我的方式,设法找到更高明、更好的方法,让双方都能从冲突中找到一条出路,称之为“第3选择”(The 3rd Alternative)。

如果把上段中「你」换成世界,其实就是寻求和世界和解的选择。我有我的倾向,世界给了我约束,这也是选择如此困难的本质原因。能否在这两者间找到一种更加融洽的选择?

4)不选择,也是一种选择

你大可不必立即做出选择,时间会帮你选择。如果不能等待,那就尝试模拟时间的流逝,运用终局思维的能力,辨析什么是真正重要的。想象当你年老的时候,做了什么和不做什么会让你后悔——想象是会骗人的。你要观察椅子上那个年老的你,真正的内心。

别被时代抛弃,读完这 6 点,你就明白了大数据

「大数据」这个热词,我们都有所耳闻。但究竟什么是大数据?大数据有什么特点?大数据能用来干什么?大家又语焉不详。

从技术角度讲,大数据当然很高深,但对于我们普通人来说,了解大数据的常识和原理其实很容易,读完以下 6 点,你就能明白大数据到底是什么。从而——不再只是被技术支配,还能在理解的情况下被支配:)

数据不只是数值

一提到数据,你是不是首先想到了「数字」或「数值」?那些存放在 Excel 表格中的,用于统计、分析的数字。

大数据中所说的数据,可不止是数字和数值这么简单,它包含电脑上所能存储的全部文件类型。如数据库、文本(文档)、图片、音频、视频等。

也就是说,所有能数字化的内容,全都是大数据存储、处理的对象。

什么样的数据才能称为大数据?

普通的数据肯定不能称得上大数据。几个硬盘就能装下,几台电脑短时间就能处理完的数据都不是大数据。

无法用一般技术存储、处理的数据,就称为大数据。

存储需要硬盘资源,处理需要 CPU 计算资源。单台计算机无论硬件性能有多强悍,总归是有限的,人类自古以来搞社会工程的经验非常丰富,如数万人、数百万人修建长城和金字塔,自然就想到了解决思路。

像搞人海战术一样搞「机海战术」,问题不就解决了吗?

「分布式」就是「机海战术」,蚂蚁咬大象。思路是有了,但技术实现方案相当有难度。

就拿存储来说,联合多台计算机去存储一份数据,该以什么格式存储,谁去指挥存储,谁去执行存储,任务如何分配,有的计算机存得快、有的存的慢,有的硬盘可能有故障,或存的过程正好断电了,该如何保障数据完整、没有错误、效率最高,又如何从多台电脑上读取文件……全都是问题。计算任务也面临类似问题。

Google 公司发表了三篇论文,出发点是如何利用大量廉价的低配置电脑(而非昂贵的服务器)去做海量数据的存储和运算,率先解决了分布式存储和计算的技术难题,奠定了大数据技术的基础,从此以后,大数据行业就开始发展了。

总结:大量联网的计算机,以某种协同算法,将硬盘和 CPU 联合起来,共同对多样化的数据进行存储和处理,称为大数据技术。

想想看什么情况会产生上面这种场景?

很简单,一种是周期性产生的数据量特别庞大,如 Facebook 2013 年时全球用户每天发布的照片数量达 3 亿 5 千万张,YouTube 2018 年时每分钟用户上传的视频时长达 400 小时;另一种是数据短时间内爆炸式地产生,像天猫 2016 年 双 11 大促活动,每秒钟产生 17.5 万笔订单数据。

这样规模的数据,称为海量数据,远远超过了单台设备存储和处理的物理极限。

数据从哪里产生?

目前世界上计算机存储的海量数据,都是来自于哪儿呢?大体上说,来自人的活动和机器的记录。细分为五类:

第一类是人在互联网上主动发布的数据,称为 Web 和社交媒体数据,如各种微博、博客、社交网站、电商网站中的评论内容。

第二类是机器对机器的数据,比如 RFID 数据、GPS 数据、智能仪表、监控记录数据以及其他各种传感器、监控器的数据。

第三类是系统的交易记录和行为日志数据,比如电信运营商的上网记录、信令数据,金融行业的交易记录、理财记录等,还有用户访问网站、使用 APP 系统所产生的各种行为日志。

第四类是生物计量学数据,指的是和人体识别相关的生物识别信息,如指纹、DNA、虹膜、视网膜、人脸、声音模式、笔迹等。

第五类是人工生成的数据:比如各种统计调查问卷、电子邮件、工作文档、纸质文件、扫描件、录音、摄像和电子病历等。

存储成本下降,硬件性能和网速提升,促成了大数据的繁荣。

以前存储大数据是成本和负担,现在能保留的数据尽量保留,数据成了企业、个人重要的资源和资产。

大数据有什么特点?

大数据著名的 4V 特征来了,这属于基础知识。海量(Volume )、多样(Variety)、高速(Velocity)、价值密度低(Value)。

海量和高速(实时)不细说。

多样,指的是数据类型和结构多样。数据类型在上文提到了,你能想到的所有格式的文件,都属于大数据的范畴。

结构,是指的数据的组织方式,有没有一定的规律。最有规律的,称为结构化数据,人类比较容易理解数据结构和关系,计算机也很容易读写和处理分析,像关系型数据库(MySQL、Oracle、PostgreSQL……),就是典型的结构化数据。数据有序地存储在「单元格」中,每一列都有固定的格式标准并代表相同的业务含义。

| 用户 | 商品 | 商品评价 | 物流评价 |

| —- | —————– | ——– | ——– |

| 李某 | iPhone 11 Pro Max | 好评 | 好评 |

结构化数据

结构性比结构化数据稍弱一些,但仍然保持有一定的结构的,我们称为半结构化数据。如 xml 文件和用于传输和交换数据的 json 文件等。一般是文本文件。

半结构化数据

结构化更弱的文件,如图片、视频等,以及自然语言,称为非结构化数据。但理论上非结构化数据是不存在的。

一上市我就下单了,到手后和想象的一样,屏幕贼细腻,面容识别更快了。物流小哥骑着火箭送到的。

非结构化数据

价值密度低,有点反直觉。但也容易理解,这是一个相对说法,数据量越大,无效数据也会越多,有价值的数据会稀释到整个数据池里。数据量级每上升一个等级,挖掘出的价值等比都有衰减。所以称为价值密度低。比如摄像头监控视频,连续录制,但关键的事件可能只需要其中的几分钟。

理论层面,还有一个对大数据特点的总结:那就是「全面而非抽样、效率而非精确、相关而非因果」。

传统统计学理论都是基于抽样数据建立的,这是成本所限。样本的质和量决定结果好坏。大数据利用分布式技术,可以采集和分析全量数据。这就可以比抽样数据揭示出更多的信息。

精确也是抽样数据分析所必须的,如果不够精确,放到全量数据中,偏差就会更大。而大数据是尽可能全量和实时分析,不追求个例的精确,更注重全量分析的效率。比如搜索引擎,能很快发现某时间段某地区的用户,搜索和「流感」相关关键词的趋势上升,可得出一个可能性的结论:某地区爆发了流感。

同样是由于更全面的数据,我们能发现【更多】的「因」导致的「果」,这就是所谓的相关。以往我们发现了一个现象,会假设有限的原因,再用数据验证,验证通过,因果链条就建立起来了。而大数据全量的分析,可能会找出更多影响结果的要素,它们和结果是相关的关系。

大数据能用来干什么?

你能想到最常用的一个大数据应用是什么?

答案是搜索引擎,像百度。它爬取全互联网的网页,将快照存储在服务器(相当于复制了网页内容,想象看数据量有多大),建立关键词和网页的索引关系,并排序,把排序结果也存储起来,在你输入关键词的时候,毫秒级地把相关网页排序结果展示出来。

大数据的第一个应用,就是搜索。

第二,大数据可以做画像,对一切实体做标签,最常见的是用户画像。原理是根据用户搜索的关键词、手机安装的 APP 清单、操作某应用的时段频次、手机的定位轨迹、历史的消费记录……融合起来清晰地描绘出用户的属性和行为特征,如年龄、性别、兴趣爱好、经济能力……贴上全方位的标签。这就是所谓的大数据比你自己更了解你。

第三,大数据还用来做推荐。像今日头条、抖音,根据你的行为,判断你的喜好,推荐相关信息流。电商购物,根据你的浏览、收藏和添加购物车记录,以及和你相同标签的人的购物记录,向你推荐可能感兴趣的商品。广告系统的核心也是推荐,你刚查了:「牙痛怎么办?」接下来在很多网站和应用中,你可能都会收到医院和药品广告。

第四个应用方向是风控。常见的有身份伪造、垃圾广告、虚假交易、黄牛秒杀、活动套利、数据泄露、垃圾注册、推广作弊、信用套现、账号盗用、盗卡交易、信息爬取等。互联网公司以多种方式补贴用户的推广费用,经常被黑客、羊毛党利用技术手段和专业设备套取。如何从大量正常的业务中识别这类非法操作,是大数据风控的重点。

另外比较传统的应用是分析和查询。共同之处是对延迟有较低的容忍度。传统小规模关系型数据库的查询响应一般会很快,也有比较成熟的优化方式,比如索引、缓存、读写分离、分库分表等。但大数据有非常大的不同,为了更快在海量数据中根据查询条件获得某值,可以把数据放入内存中,内存比硬盘读写更快,这就是内存计算。还设计了列式存储,预聚合等多种方法加快分析和查询的速度。预聚合就是提前把分析和查询结果处理好,等待被调用。

对于分析和查询,在本系列文章里,后面会介绍 OLAP 和交互式查询,感兴趣的同学请关注微信公众号「关耳爷」。

以上应用中,风控和推荐,属于实时计算的领域,数据连续地接入、处理、计算,像水流一样,不间断,也叫做流计算,保证业务的即时性。其它应用属于离线计算,所谓离线计算,就是可以分批次,周期性地处理历史数据,如当天处理前一天的数据,所以又称为批处理。在分析应用里,有实时也有离线。有的大数据厂商和产品,也把批流结合作为技术突破点或宣传卖点。

大数据和云计算、物联网、人工智能有什么关系?

云计算,核心是虚拟化技术。卖的是存储、计算和网络,你不知道按配置购买的主机是来自一台物理服务器分割出来的一部分,还是由多台服务器组合而来。云计算最大的优点是可以灵活地调整配置,就是所谓的弹性扩展。这是大数据所需要的一项重要功能,因为大数据技术的基础是分布式,所需要的内存、CPU、硬盘资源根据需求扩展,两者具有天然的亲密性。

云计算平台作为基础设施,对大数据平台起支撑作用,大数据平台利用资源管理的组件去请求和释放云计算平台的资源,完成数据处理。

物联网的智能设备、传感器,会产生很多数据,这类数据和业务系统的数据有不同的特征,比如写多读少,一般不会更新,存储频率较稳定,每条记录一般都带时间戳,对应的有专用的时序数据库的支持。物联网产生的数据存储在大数据平台中,大数据平台完成清洗、处理,经过离线计算供分析和数据可视化使用,也有实时计算,用于监测和预测设备的异常。

大数据平台为物联网提供数据功能服务和支撑。

人工智能重点是算法平台,在机器学习的编程框架支撑下,大数据平台中的数据样本供给各个算法做训练,不断调整算法,最后选出最优算法,以达到人类一些智能活动的标准,比如图像识别,能像人一样分出猫猫狗狗,识别出图片的文字;自然语言的语义分析,能像人一样听懂人类的语言,达到较准确的程度,这是人工智能的目标。

大数据像食物一样喂养人工智能的算法。使算法越来越精确、高效和低功耗。

Linux 内核漏洞简单解决方法:升级内核

最近阿里云安全中心提示 ECS 操作系统 Ubuntu 18.04 存在内核漏洞。如下图:

解决 Linux 内核漏洞,最简单的方式就是升级内核。方法如下:

一、检查可安裝的 Kernel 版本

apt-cache search linux-image-\*
apt-cache search linux-headers-\*

二、安装新 Kernel

apt-get install linux-image-X.X.X.X-generic
apt-get install linux-headers-X.X.X.X-generic

注意要安装相同版本的内核。

三、更新 initramfs image

update-initramfs -u -k all 

update-initramfs -u -k `uname -r`

四、更新 Grub

update-grub

更新后重启系统:

reboot

重启之后检查新内核是否生效:

uname -a

按以上步骤操作后,重新检查系统漏洞,均已消失。