“big data” 与 “database” ?

  • 2019 年 12 月 17 日
  • 筆記

最近的大数据是非常的火,如何理解大数据与DATABASE 不同的地方,今天想瞎说八道一下,个人对大数据和数据库之间不同的一些想法。

数据被认为是原始的事实和数字。大数据通常被认为是存储和处理的非常庞大的数据量,或者当数据本身很大的时候被称为大数据。海量、不同种类的数据可以被认为是大数据。而数据库是数据的集合。我们将数据或大数据存储在某种类型的数据库中。大数据本身更偏重于能产出什么结果,数据库更偏向于功能性的程序支持功能。

数据是结构化数据有组织的存储集合,保存相关信息的集合。DATABASE以文件或一组文件的形式存储在存储介质。管理数据库是为了方便数据的存储、数据的检索、数据的修改和数据的删除。大数据是通过处理大量相关数据来分析和预测行为的一门新兴科学其中大数据包含结构化、半结构化和非结构化数据量的快速增长。

而写这篇文字的初衷是想讨论一下,到底数据库是否可以替代大数据,或者大数据是否可以替代数据库,这样的想法如果在之前可能会被认为是,“疯了吧”。但现在的数据库已经不同于之前的数据库,多种新型的数据库,或者说超大数据库,可以处理和运算的数据量已经达到了某些可以做大数据地步,例如 我们是否可以使用 TBASE ,或者 TIDB ,分布式的数据库来处理大数据的问题原理上当然是可以的,或者使用 greenplum MPP架构的东西,大数据不是只有 HADOOP技术及周边。从逻辑上讲,传统大数据也是基于分布式存储,和并发方式的数据处理。而分布式数据库,在数据可以存储的体量和处理速度上并不比现有的技术要差,同时新型的数据库方式对于在线数据的实时运算和结果的给出也有一定的优势

多表的关系复杂性的查询使用分布式数据库的处理方式也要优于目前的大数据的一些技术。之所以有大数据,是因为早起的数据库无法承受超大的数据量。而如上面的想法,大数据要的是结果,现在实施性的结果的需求量也是越来越多。

那目前的大数据处理方式对比上边提到的那些数据库或MPP架构有什么缺点

1 分析和处理数据的人员,大多是业务分析,BA 等人员,这些人员掌握的分析语言,大多是python ,或者 SQL ,而SQL 作为通用的语言,基本上普及面很广,而使用大数据,需要会的可能是 JAVA ,scala等语言,对于非IT 专业的分析和数据处理人员,属于超纲。

2 实时性, 在实时性上来说,数据库本身要比 大数据的某些技术强,因为数据库是处理OLAP OLTP 而设计出来的,大数据期初仅仅是通过数据的非实时性的处理起家的,本身两种东西的设计的初衷是不同的。所以从实时性来将目前NEW SQL , 或者 MPP 架构的产品其实本身比传统的大数据要有优势。

3 处理数据的复杂性,之前的关系型数据库在处理非结构化的数据时,是一个问题,而大数据则可以通过数据的处理和转换,对大部分,结构化,非结构化的数据进行处理,而随着数据库本身的进化,目前的数据库也是可以进行半非结构化的数据处理,并也有相关的产品。

4 最主要的一个点还是 BIG , 如果整体预估的数据量在几十个 T 左右,传统的数据库,或者NEW SQL ,以及分布式数据库处理这些并不是很大的问题,同时 MPP结构的数据仓库系统在 P级别左右的数据量的处理也不是很麻烦。但整体的维护和周边就会相对简单的多。

5 数据的精确性,与产品的设计初衷不同数据库本身就是一个数据精确的代名词,而大数据则是一个模糊的可以对精确这个意思有灰色地带的名词。

将上面的信息集合,在便利性,数据的精确性,实时性,广泛性来说,在所谓的”大数据量” 面前,其实使用分布式数据库,或者NEW SQL ,以及MPP 架构的数据仓库都可以更好的应对 “大数据”的一些需求。

闲暇和一些其他单位的大数据方面的人寒暄过,得到的反馈大多是投入不少回馈甚微,形式大于一切的居多,个人浅薄的认为大数据注重的是 数据本身提供的价值。

以上纯属个人观点,如有不同意见,欢迎沟通。