1. 程式人生 > >日誌儲存空間優化

日誌儲存空間優化

背景

在這個大資料時代,資料公司每天都面臨大量資料堆積,如果不能有效的利用併發掘他,繼而產生價值,那麼他同時也會成為一場災難。無序、無結構的資料堆積,給企業帶來的是令人乍舌的高額成本。

優化方式

時間優化

  • 通過時間分割槽,嚴格控制日誌的存放時間 如:定時刪除一年前的資料(業務允許的前提下)
  • ……

空間優化

檔案個數優化(HDFS儲存)

  • 減少小檔案個數
  • 合理分配單個檔案大小
  • ……

內容優化

  • 資料結構化
  • 減少不必要欄位的儲存
  • 不新增預設值,置為空
  • 去除空格、製表符用特殊符號替代,資料不要分段
  • ……

格式優化

文字檔案格式

文字檔案格式是一種由若干行字元構成的計算機檔案。文字檔案存在於計算機檔案系統中。通常,通過在文字檔案最後一行後放置檔案結束標誌來指明檔案的結束。文字檔案是指一種容器,而純文字是指一種內容。文字檔案可以包含純文字。 一般來說,計算機檔案可以分為兩類:文字檔案和二進位制檔案。如ASCII、MIME、.txt、.doc、.json…

壓縮格式

任何一個檔案儲存在電腦上都有它的格式,例如文字格式像。txt .doc,影象格式 .jpg .tif .bmp等。 所有壓縮也有壓縮的格式,一般我們看到的壓縮格式有。.rar .zip,但主要壓縮的作用就是讓某一個檔案佔用空間小點。比如它是30MB,可以壓縮到20多MB。

Protocol Buffer

protocolbuffer(以下簡稱PB)是google 的一種資料交換的格式,它獨立於語言,獨立於平臺。google 提供了多種語言的實現:java、c#、c++、go 和 python,每一種實現都包含了相應語言的編譯器以及庫檔案。由於它是一種二進位制的格式,比使用 xml 進行資料交換快許多。可以把它用於分散式應用之間的資料通訊或者異構環境下的資料交換。作為一種效率和相容性都很優秀的二進位制資料傳輸格式,可以用於諸如網路傳輸、配置檔案、資料儲存等諸多領域。

Base64

Base64是網路上最常見的用於傳輸8Bit位元組碼的編碼方式之一,Base64就是一種基於64個可列印字元來表示二進位制資料的方法。Base64編碼是從二進位制到字元的過程,可用於在HTTP環境下傳遞較長的標識資訊。例如,在Java Persistence系統Hibernate中,就採用了Base64來將一個較長的唯一識別符號(一般為128-bit的UUID)編碼為一個字串,用作HTTP表單和HTTP GET URL中的引數。在其他應用程式中,也常常需要把二進位制資料編碼為適合放在URL(包括隱藏表單域)中的形式。此時,採用Base64編碼具有不可讀性,需要解碼後才能閱讀。

優化方案(按優先順序排序)

  1. 定時清除不需要的資料
  2. 減少內容儲存
  3. 文字檔案>>>Protocol Buffer>>>Base64編碼>>>壓縮檔案
    測試資料
    • 文字檔案(100G)===>Protocol Buffer(50G) 減小0.5倍
    • Protocol Buffer(50G)===>Base64編碼(75G) 增大0.3倍(Protocol Buffer為流檔案,如果個數過多不便於儲存)
    • Base64編碼(75G)===>壓縮檔案(37.5G) 減小0.5倍
      總儲存(37.5G)大小減小0.375倍