专栏 大数据 数据处理原理。如果对你有帮助求个赞或者关注,谢谢谢谢。
什么是大数据
以下摘自维基百科。
Big data primarily refers to data sets that are too large or complex to be dealt with by traditional data-processing application software.
然而这个定义过于模糊,看了和没看好像没什么区别。与操作系统类似,大数据其实并没有一个较为严谨且合适的定义,似乎也并不需要一个非常严谨的定义。jyy老师说过:过于追求严谨的定义并不是一件很有意义的事情。(十分推荐南京大学jyy老师的操作系统课,收获颇丰)
大数据这一门课,主要是用来解决大量数据处理所产生的问题的,什么是大量数据会随着时代的变化而不断变化(处理器,存储都在迅速发展)。
我们学大数据在学什么
我认为学习大数据,就是在学习如何 使用 工具 在 可以接受的时间内 来 存储,管理,和操作 这些数据。
- 工具:将要使用的软件或者各种框架
- 可以接受的时间:根据业务不同,可接受的时间不同
- 存储/管理: 我们如何存储并且如何将这些数据从磁盘中取出来
- 操作:通过计算来获得我们需要的结果
大数据的特征
- Volume: 数据的量
- Variety: 数据的种类多变
- Structured:拥有特定格式,MP4,MP3,JPG等
- semi-structured: 维基百科的页面:有文字还有链接
- unstructured
- Velocity:处理或者存储文件的速度
- Veracity: 这些数据是否是“真的”数据?有没有错误?有没有被更改?
- Variability: 数据量在不同时间的变化量大不大?数据流的高峰期与低谷期的差距? 只要有以上两个问题,可能就到了大数据发挥作用的时间
硬件介绍
与大数据相关的硬件相关概念
- 通用计算: 没有特定的目标,啥活都能干。比如CPU能完几乎任意计算机上的任务。可以通过各种benchmark对处理性能进行一个大致评估。
- 专用硬件: 针对某些问题进行专门优化。比如H100有巨大的显存,可以用于AI训练,但是游戏性能可能不如的RTX40系列显卡,尤其是在光追性能上。还有Quantum Core等。
- 存储:永久性存储(磁盘,SSD等),GPU的显存、CPU的多级缓存。读写速度从快到慢:CPU的寄存器,CPU的L1 - L3缓存,RAM,SSD,磁盘等。
- 网络:由于大数据经常需要多台电脑同步进行计算,因此数据需要通过网络传输,网络也经常是计算问题中的瓶颈。
大数据分类
- Batch
- 批量处理
- 主要由static data组成,就是已经存好的数据块一起处理。比如有很多数据,怎么进行分析
- 主要关注处理完成的时间
- Streaming
- 流式处理
- 实时处理数据
- 主要关注数据处理的延迟
如何让我们的处理大数据的速度更快?
两种方式,横向和纵向扩展
- 横向扩展(Horizontal scaling)
- 将计算任务分发给多个计算机同时进行计算,也就是我们熟悉的并行计算(Parallel Computing:)
- 好处是理论上可以无限提高计算性能(现实当然是不可能,因为计算机之间交流有开销,并且设计数量越多开销越大),所以对如何调度计算提出了新的要求。
- 纵向扩展(Vertical scaling)
- 简单粗暴,买更好的机器就行
- 但是几乎无法升级,而且可能价格极其昂贵
下一步是什么
介绍MapReduce