「大数据」这个热词,我们都有所耳闻。但究竟什么是大数据?大数据有什么特点?大数据能用来干什么?大家又语焉不详。
从技术角度讲,大数据当然很高深,但对于我们普通人来说,了解大数据的常识和原理其实很容易,读完以下 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、硬盘资源根据需求扩展,两者具有天然的亲密性。
云计算平台作为基础设施,对大数据平台起支撑作用,大数据平台利用资源管理的组件去请求和释放云计算平台的资源,完成数据处理。
物联网的智能设备、传感器,会产生很多数据,这类数据和业务系统的数据有不同的特征,比如写多读少,一般不会更新,存储频率较稳定,每条记录一般都带时间戳,对应的有专用的时序数据库的支持。物联网产生的数据存储在大数据平台中,大数据平台完成清洗、处理,经过离线计算供分析和数据可视化使用,也有实时计算,用于监测和预测设备的异常。
大数据平台为物联网提供数据功能服务和支撑。
人工智能重点是算法平台,在机器学习的编程框架支撑下,大数据平台中的数据样本供给各个算法做训练,不断调整算法,最后选出最优算法,以达到人类一些智能活动的标准,比如图像识别,能像人一样分出猫猫狗狗,识别出图片的文字;自然语言的语义分析,能像人一样听懂人类的语言,达到较准确的程度,这是人工智能的目标。
大数据像食物一样喂养人工智能的算法。使算法越来越精确、高效和低功耗。