大数据,不仅仅是数据量大,同时在其他方面,也有一定的特点。
之一,大数据数据体量非常大,传统的单机存储系统,已经无法在存储这么大量的数据,此时需要用到分布式存储技术。
第二,大数据的数据种类非常多,数据的格式也会变得复杂,比如数据种类有视频、文档、图片、消息记录等等。
第三,大数据中潜藏着非常重要的价值,通过数据分析技术,对商业决策做出智能化以及数据化的支持。
大数据最主要的功能,就是为公司上层提供商业化决策支持,让公司能够结合历史数据,往正确的方向发展。大数据技术主要分为两类:大数据计算和大数据存储。
大数据计算主要分为离线计算和实时计算,具体使用要看业务场景对于数据产出时延的要求
离线计算对于数据的产出会有一定的时延,具体时延可以是15分钟、小时或者天级别的。离线任务一般会对数据进行全局批计算,这一次运行完就运行完了,不会像实时计算那样,除非你自己停止实时任务,否则实时程序会一直运行。
实时计算数据是不断产生的,一般数据产出的延迟会很低,最多是秒级别的。比如我们的数据大屏、实时数据流的加工处理等,这些场景对于数据的产出的时延要求很低。
离线计算的话,一般对于数据的产出时延没有那么高的要求,只要数据最终产出即可,具体使用像现在很多公司离线业务报表。目前大多数公司离线计算引擎使用的是Hive或者Spark,实时计算引擎目前主要是Flink。
大数据存储需要数据分布式存储,单机不能够在存储这么多巨量数据
在传统的关系型数据库中,当一个表非常大时,会使用分库分表技术,将表分布式的存储在不同的机器上面。分库分表技术可以使用开源工具TDDL。
在非关系型NoSQL数据库中,一般更底层的文件存储系统可以选择HDFS。HDFS文件系统将文件按照块来进行存储,一个块的大小为128兆,同时每个块会存储三份,对数据进行容灾存储,即使其中一个块坏了,可以选择其他块进行数据恢复。
分布式数据库系统可以对数据表进行水平分割和垂直分割。比如HBase数据库,水平分割使用的是Region,垂直分割则是使用的列族。
分布式数据存储技术,需要不同机器一起协同工作,每台机器存储整体数据的一个子集。在未来大数据时代,肯定都会使用分布式数据存储,分布式数据库,会成为大数据系统的标配。