回覆列表
-
1 # 使用者6145112930890
-
2 # 使用者508392477201
選擇原則:根據選定的儲存引擎,確定如何選擇合適的資料型別。 下面的選擇方法按儲存引擎分類: MyISAM 資料儲存引擎和資料列:MyISAM資料表,最好使用固定長度(CHAR)的資料列代替可變長度(VARCHAR)的資料列。 MEMORY儲存引擎和資料列:MEMORY資料表目前都使用固定長度的資料行儲存,因此無論使用CHAR或VARCHAR列都沒有關係。兩者都是作為CHAR型別處理的。 InnoDB 儲存引擎和資料列:建議使用 VARCHAR型別。
還是要結合具體的應用場景來選型,舉例來說:
hdfs適用於那些非結構化的資料,它的優點是分散式且和上層的計算框架(spark/mapreduce)結合的非常好,這就為以後針對這些資料進行處理計算挖掘提供了非常好的基礎。無論是字元型文字檔案還是像照片,音影片等多媒體檔案都可以簡單放上去,並通過後期呼叫API編碼的方式進行處理,它對順序寫有很好的支援,對隨機寫的支援稍欠一些。
HBASE是k-v型的資料庫,後臺是依託於hdfs來承接資料儲存。主要適用於那些鍵值型的寫入和查詢,由於其良好的資料按key拆分策略,列式儲存,後臺寫時WAL,LSM tree等精巧的設計,使其擁有很強的擴充套件能力,吞吐能力和實時查詢反應能力,在諸如網際網路評論反饋這種系統中就比較適合,檢索時的條件不是動態變化而是設定的
MongoDB屬於文件型,主要對付那些資料schema不固定的甚至多層巢狀的文件型或者叫物件型資料,這是相對於RDBMS的那種行平列直的二維資料儲存格式而言的,比如在反欺詐系統中拿到人的基本資訊中可能包含聯絡方式,而聯絡方式又包含地址,電話,郵箱,地址可能又巢狀其它的資訊,這種資料schema及其不固定的情況
其它的諸如hive+hdfs對付穩定批處理任務
elasticsearch對付全文檢索
spark steaming+kafka+hdfs對付流式處理情況
hbase+titan 對付圖儲存和檢索
等等
當然這其中具體的硬體節點規劃,容量規劃,底層構成,開發,運營等等細節很多,我不是老師,也就不扯那麼細了