初识大数据
初识大数据
1. 大数据概述
大数据(Big Data):是指规模巨大、类型复杂多样,在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,也可以理解为是涉及到数据的采集、存储、处理、分析和可视化等多个方面的复杂系统。
通常包括以下四个特征(4V):
- Volume(体量大):数据的规模非常大,从 TB(太字节)到 PB(拍字节)甚至更多。
- Velocity(速度快):数据的生成和处理速度非常快,需要实时或近实时的处理能力。
- Variety(种类多):数据类型繁多,包括结构化数据、半结构化数据和非结构化数据(如文本、图片、视频等)。
- Veracity(真实性):数据的质量和准确性,确保数据的真实性和可信度。
基于大数据的发展,也衍生出了很多大数据处理技术。
大数据技术:是通过获取、存储、分析,从大容量数据中挖掘价值的一种全新的技术架构。
相关的处理技术包括:
- 分布式存储:如 Hadoop 的 HDFS,用于存储大规模数据集。
- 分布式计算:如 MapReduce、Spark 和 Flink,用于处理大规模数据集。
- 数据挖掘和机器学习:使用算法和技术从数据中发现模式和洞察。
- 实时处理:如 Apache Storm 和 Apache Samza,用于实时数据流的处理。
目前,大数据已经成为推动技术创新和业务发展的关键因素,它的影响遍及各个行业和领域。随着技术的进步,大数据的处理和分析能力也在不断提升,为解决复杂的业务问题提供了新的解决方案。
2. 相关概念
2.1 数据仓库
数据库主要用于「事务处理」,特别强调每秒能干多少事儿:QPS(每秒查询数)、TPS(每秒事务数)、IOPS(每秒读写数)等等。
而当业务发展到一定规模后,希望从大量的应用系统、业务数据中,进行关联分析,帮助业务更好地发展。但是数据库擅长事务性工作,不擅长分析性工作,于是就产生了「数据仓库」。
数据仓库相当于一个集成化数据管理的平台,从多个数据源抽取有价值的数据,在仓库内转换和流动,并提供给 BI 等分析工具进行处理。
因为分析型业务需要大量的 “读” 操作,所以数据仓库通过 “Denormalized” 化的方式优化表结构,减少表间联接,牺牲空间来换取读性能。并使用列式存储优化,来进一步提高查询速度、降低开销。
2.2 数据湖
企业在持续发展过程中,数据也在不断堆积,重要的关键数据可以存储在数据库、数据仓库中。但是企业中还存在大量的与业务没有直接关联的辅助型数据,希望都能够完整保存下来,这时候就需要「数据湖」来做。
数据湖,本质上是由 “数据存储架构 + 数据处理工具” 组成的解决方案,而不是某个单一产品。
数据存储架构,要有足够的扩展性和可靠性,要满足企业能把所有原始数据都 “囤” 起来,存得下、存得久。
数据处理工具,分为两大类:
- 治理工具,解决的问题是如何把数据 “搬到” 湖里,包括定义数据源、制定数据访问策略和安全策略,并移动数据、编制数据目录等等。
- 分析工具,解决的问题是如何对数据进行分析、挖掘和利用,包括对数据进行查询,应用数据解决实际问题等。
数据库 VS 数据仓库
- 数据上:
- 数据仓库里的数据精挑细选,价值密度更高,含金量更高;
- 数据湖将数据照单全收,更有一种 “兜底” 的感觉,一股脑全部接收。
- 产品上:
- 数据仓库可以是独立的标准化产品;
- 数据湖则是一种架构,通常以对象存储为基础,结合一系列数据管理工具。
2.3 湖仓一体
数据湖起步成本很低,但随着数据体量增大,TCO 成本会加速飙升;数仓则恰恰相反,前期建设开支很大。一个后期成本高,一个前期成本高,对于既想修湖、又想建仓的用户来说,难以抉择。
所以,根据两者的特点,都是拿数据为业务服务,数据湖和数仓作为两大“数据集散地”,人们尝试着将彼此整合一下,让数据流动起来,少点重复建设。
于是,为推动数仓和数据湖的打通融合,诞生了「Lake House」,即湖仓一体。
Lake House 架构最重要的一点,是实现 “湖里” 和 “仓里” 的数据/元数据能够无缝打通,并且 “自由” 流动。湖里的 “新鲜” 数据可以流到仓里,甚至可以直接被数仓使用,而仓里的 “不新鲜” 数据,也可以流到湖里,低成本长久保存,供未来的数据挖掘使用。
通常需要满足以下要求:
- 可以将数据湖中最近几个月的 “热数据” 摄取到数仓中;
- 反过来,也可以轻松将大量冷门历史数据从数仓转移至成本更低廉的数据湖内,同时这些移到湖里的数据,仍然可以被数仓查询使用;
- 处理数仓内的热数据与数据湖中的历史数据,生成丰富的数据集,全程无需执行任何数据移动操作;
- 生成的新数据集可以插入到数仓中的表内,或者直接插入由数据湖托管的外部表中。
不仅如此,把数据湖和数据仓库集成起来只是第一步,还要把湖、仓以及所有其他数据处理服务组成统一且连续的整体,即「智能湖仓」。
智能湖仓并非单一产品,它描述的是一种架构。这套架构,以数据湖为中心,把数据湖作为中央存储库,再围绕数据湖建立专用 “数据服务环”,环上的服务包括了 数仓、机器学习、大数据处理、日志分析,甚至 RDS 和 NoSQL 服务等等。
大家 “环湖而饲”,既可以直接操纵湖内数据,也可以从湖中摄取数据,还可以向湖中回注数据,同时环湖的服务彼此之间也可以轻松交换数据。
任何热门的数据处理服务,都在湖边建好了,任何对口的数据都能召之即来、挥之则去。依靠这种无缝集成和数据移动机制,用户就能从容地用对的工具从对的数据中,挖出干货!
从数据获取到数据应用到完整流程上,AWS 官方给出了智能湖仓的参考架构:
2.4 OLTP 与 OLAP
事务(OLTP)、分析(OLAP)