「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 架構的數據倉庫都可以更好的應對 「大數據」的一些需求。

閑暇和一些其他單位的大數據方面的人寒暄過,得到的反饋大多是投入不少回饋甚微,形式大於一切的居多,個人淺薄的認為大數據注重的是 數據本身提供的價值。

以上純屬個人觀點,如有不同意見,歡迎溝通。