1. 程式人生 > >資料儲存優化 (二):具體優化方式

資料儲存優化 (二):具體優化方式

通過上一篇文章的分析發現在大資料的應用中proto在儲存方面優於Json。資料都進行壓縮,proto約為json的1/3

資料來源

1、日誌由前端SDK收集,
2、格式為Json,Json有多種型別,子節的各異
3、不同版本的SDK,Json類別也不同
4、每天的資料量為1.5T(備份3份)

優化方式

1、原始資料保留1一個月(Json)
2、從原始資料中抽取可能用到的字端保留5個月(ProtocolBuffer)

具體實現

1、由前端SDK組提供具體Json格式
2、討論構建資料倉庫需要的Json的具體欄位
3、依據已定的格式進行儲存格式轉換Json->ProtocolBuffer
4、重跑歷史資料,儲存格式轉換ProtocolBuffer->Json

預期效果

1、相容歷史的程式
2、減少資料的儲存空間
3、可以實現歷史資料的重跑

測試結果

沒有達到預期的效果

分析原因:
1、pro格式的轉換的只是節點、符號
2、資料來源中某個字端的資料量過大佔據每條資料的95%

優化總結

1、優先分析日誌量大原因,分析方向:內容,結構
2、內容過多可以通過改變壓縮格式來降低儲存
3、結構原因可以通過改變結構來實現優化

相關推薦

資料儲存優化 ()具體優化方式

通過上一篇文章的分析發現在大資料的應用中proto在儲存方面優於Json。資料都進行壓縮,proto約為json的1/3 資料來源 1、日誌由前端SDK收集, 2、格式為Json

Spark優化()複用RDD

儘可能複用同一個RDD 除了要避免在開發過程中對一份完全相同的資料建立多個RDD之外,在對不同的資料執行運算元操作時還要儘可能地複用一個RDD。   比如說,有一個RDD的資料格式是key-value型別的,另一個是單value型別的,這兩個RDD的value資料是完全一樣的,

最全iOS資料儲存方法介紹FMDB,SQLite3 ,Core Data,Plist,Preference偏好設定,NSKeyedArchiver歸檔,Realm

專案準備運用的Core Data進行本地資料儲存,本來打算只寫一下Core Data的,不過既然說到了資料儲存,乾脆來個資料儲存基礎大總結! 本文將對以下幾個模組進行敘述。 沙盒 Plist Preference偏好設定 NSKeyedArchiver

Android進階網路與資料儲存—步驟1Android網路與通訊(第2小節Handler)

內容概覽 Handler是什麼 為什麼要使用Handler Handler/Looper/MessageQueue/Message Handler如何去實現(三種實現:1、下載檔案並更新進度條 2、倒計時 3、打地鼠的遊戲實現) 工作原理 如果更好的使用 擴充套

Android進階網路與資料儲存—步驟1Android網路與通訊(第3小節ListView上)

內容概要: 一、課程介紹 二、ListView的準備工作 ListView簡介 ListView的實現步驟 三、ListView簡單應用 Adapter的資料繫結 最簡單ListView效果演示 獲取系統已安裝應用列表 優化效能 一、課程介紹 什麼是List

Android進階網路與資料儲存—步驟1Android網路與通訊(第4小節ListView下)

內容概括: 一、網路下載資料並顯示在ListView上 使用非同步訪問網路 解析獲取的Json資料 載入資料到ListView上 二、不同item的引用 引用不同行佈局 一、網路下載資料並顯示在ListView上 1.1-使用非同步訪問網路 //非同步訪問網路

Android進階網路與資料儲存—步驟1Android網路與通訊(第6小節GridView)

內容概要: GirdView(網格檢視)顯示本地資料 GirdView屬性簡介 案例一:用GirdView展示文字 案例二:用GridView顯示已安裝應用 GridView顯示網路 用GridView載入網路圖片(上) 用GridView載入網路圖片(下) 一、

Android進階網路與資料儲存—步驟1Android網路與通訊(第7小節CadView)

內容概要: CardView基礎 CardView介紹 CardVie常用屬性 CardView屬性效果展示 CardView案例實現 CardVie基本操作 案例-佈局搭建 案例-實體類建立 案例-功能實現 案例-適配 CardView開發注意事項 一、Ca

程式碼效能優化3函式優化

程式碼中函式呼叫無時無刻,那麼哪些函式會產生gc呢? 1.自己寫的函式中有new物件被頻繁呼叫 2.Unity自帶的函式和自己新增的第三方外掛中不知道的new物件 接下來的介紹中用自定義函式和第三方函式區分 自定義函式分為: 1.每隔一段時間呼叫的 2.多個物件中

Unity實戰篇實現連連看死局判定(具體實現)

要做死局判定,我們要明確在什麼時候檢察地圖是否死局。 剛剛初始化地圖 每次消除之後  檢查死局前我們也要同步更新有向鄰接表字典和地圖陣列 我們約定,陣列值為-1代表此處為空 遍歷字典,找到要去除的元素,從字典刪除 避免異常,刪除元素後即退出函

Redis服務端優化實踐配置優化、主從切換、持久化

Redis是部門業務重要的核心業務元件,被廣泛應用在行情繫統、推送服務、資料中心、投顧、圈子、量化分析等平臺。在使用Redis的過程中遇到了很多問題,涉及到開發者使用API時的一些注意事項,以及如何通過優化服務端配置提高Redis的健壯性、容錯性。 本文通過案例分析的方式分享一下我們在Redis服務

資料基礎知識()Shell命令

Shell命令Shell是系統的使用者介面,提供了使用者與核心進行互動操作的一種介面。它接收使用者輸入的命令並把它送入核心去執行 [1] 。實際上Shell是一個命令直譯器,它解釋由使用者輸入的命令並且把它們送到核心。不僅如此,Shell有自己的程式語言用於對命令的編輯,它允

玩轉大資料系列之資料分析與處理

經過了資料採集和同步之後,就可以在阿里雲上進行資料分析和處理,來玩轉您的資料了。本文向您介紹在阿里雲大資料各產品中,以及各產品之間怎樣來完成您的資料處理和資料分析。 MaxCompute 基於MaxCompute的大資料計算(MaxCompute + RDS) 使用MaxCompute分析IP

Java效能優化設計優化和程式優化,開發必備優化技巧!

現代大規模關鍵性系統中的Java效能調優,是一項富有挑戰的任務。你需要關注各種問題,包括演算法結構、記憶體分配模式以及磁碟和檔案I/O的使用方式。效能調優最困難的通常是找到問題所在,即便是經驗豐富的人也會被他們的直覺所誤導。效能殺手總是隱藏在最意想不到的地方。 Java效能問題一直困擾著廣大程式

資料結構筆記線性表

1. 線性表的邏輯結構 2. 線性表包括的基本操作 3. 線性表的順序儲存結構 4. 線性表的鏈式儲存結構

JSON 格式資料儲存問題

1.要求將ArrayList <String>型別的資料存入資料庫中的data欄位,並且可讀出為ArrayList<String>型別的資料: @Override     public void setNonNullParameter(Prepa

OC資料儲存本地()-----iOS----屬性列表plist 寫如何儲存和讀取

屬性列別 plist檔案:這個檔案可以儲存陣列,可以吧陣列中的元素儲存這個檔案中 將陣列的資訊,儲存到plist檔案中,就會將陣列的所有元素儲存到這個檔案中  - (BOOL)writeToF

Android進階網路與資料儲存—步驟1Android網路與通訊(第1小節網路操作)

網路操作 課程介紹: 掌握Android中操作網路的方式,和相關的許可權設定,以及資料解析。 一、網路的基礎知識 1.1客戶端與服務端 什麼是客戶端(Client)?         享受服務的每一個使用者 什麼是服務端(Server)?         為客戶端

Android資料儲存)File 資料內部儲存

Java提供了一套完整的IO流體系,用來對檔案進行操作。Android同樣支援以這種方式來訪問手機儲存器上的檔案,包括內部儲存器和外部儲存器 Android中可以在裝置本身的儲存裝置或者外接的儲存裝置中建立用於儲存資料的檔案。預設情況下,檔案是不能在不同的程式間共享的。當

APP效能優化系列記憶體優化-記憶體洩露詳解

  做了較長時間的android開發了,發現其實android應用開發入門容易,但是進階或者成為高階工程師,需要具備的基礎能力還是非常高的:效能優化、記憶體洩露、apk瘦身、熱修復等等,這些都非常的考驗一個人的能力。android成長之路還很長,自己會持續的走下