滴滴海量離線資料的線上化 — FastLoad
桔妹導讀:滴滴自成立以來,有海量的資料儲存在離線平臺,離線資料雖然儲存便宜,壓縮比高,但不適用於線上使用。為此,我們提供了一鍵式DTS平臺——FastLoad,幫助業務往線上儲存系統搬運離線資料,目前主要針對滴滴自研分散式儲存Fusion,Fusion以RocksDB為儲存引擎,服務線上叢集500+,承載業務資料1600TB+,總QPS峰值1200W+,是一個成熟穩定的分散式NoSQL/NewSQL解決方案。
0.
目錄
1. 業務背景:雄關漫道真如鐵
2. 技術探討:工欲善其事必先利其器
Ingest SST
Map/Reduce產出全域性有序檔案
3. 系統架構:千磨萬擊還堅勁
4. 總結展望:直掛雲帆濟滄海
基於FastLoad的資料傳輸給業務帶來的收益
發展規劃
1.
業務背景:雄關漫道真如鐵
定時更新
快速更新
穩定性
多表隔離
2.
技術探討:工欲善其事必先利其器
▍Ingest SST
檢查需要匯入的SST是否合法,包括檔案之間Key值是否有重疊,檔案是否為空,ColumnFamilyID是否合法等等。
阻塞DB例項的寫入操作,對可能與Ingest檔案有重疊的MemTable進行刷盤操作。阻止RocksDB執行新的Compact任務導致LSM結構更新。
確定Ingest的檔案應該在磁碟LSM結構中的哪一層,RocksDB會盡可能地將檔案放在Key值不重疊的最底層。如上圖所示,Key值範圍為[E, F]的SST檔案將Ingest匯入到了L1層;隨後,根據當前存在的快照、LSM組織形式等設定SST檔案的元資訊。
將之前設定的阻塞標記全部刪除。
▍Map/Reduce產出全域性有序檔案
3.
系統架構:千磨萬擊還堅勁
控制檯服務:對外提供控制檯表單和OpenAPI方式接入,提供建立任務、Schema轉換規則等服務。
大資料排程模組:依賴Hadoop的計算資源,將Hive資料匯出為我們需要的中間檔案,在經過Map/Reduce的構建,生成全域性有序的SST檔案。
檔案下載模組:根據分散式儲存的路由表,將SST檔案下載到不同的儲存節點。
檔案匯入和DB切換:依賴上文提及的Ingest SST的方式,將檔案一次性匯入DB例項。為了避免上述提及的堵塞,我們提供往新DB例項導資料的選項,這樣就可以避免因線上寫而導致的堵塞,空資料也可以避免Compact。假如選擇了新DB匯入的選項,最後還會有一次DB新舊例項的切換,相當於一次連結對映。
4.
總結展望:直掛雲帆濟滄海
▍基於FastLoad的資料傳輸給業務帶來的收益
大大縮短業務導資料耗時,1TB資料平均匯入時間為1小時;
線上服務業務300+,每天執行次數1000+,每天導資料量30TB+;
服務穩定性達到99.99%,上線執行2年無任何重大事故;
高頻運維操作一鍵自助完成,90% 的問題,5 分鐘完成定位;
▍發展規劃
架構最佳化,整體架構目前依賴Hadoop,可以考慮遷移到Spark,提升執行效率;
管控最佳化,提供更細緻更全面的FastLoad監控和報表;
多產品應用,目前FastLoad主要針對NoSQL和NewSQL兩種場景,同比可以應用在ES、MQ等場景;
新場景支援,離線資料的實時讀取不僅對OLTP場景提供了更好的支援,也為接下來大熱的HTAP場景提供了無限的可能。
趙銳 滴滴 | 高階工程師 從事分散式儲存NoSQL/NewSQL的相關研發,參與從零開始構建滴滴分散式儲存Fusion,有PB級別儲存、千萬QPS的儲存經驗。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69908606/viewspace-2657976/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 線上過期資料遷移到離線資料庫資料庫
- 滴滴處理海量資料的祕訣是什麼?
- sql海量資料優化SQL優化
- RDS讀寫分離,海量資料一鍵搞定
- ZT 利用rowid快速線上更新海量資料
- 泛化索引---海量資料檢索的救星索引
- 阿里IM技術分享(七):閒魚IM的線上、離線聊天資料同步機制優化實踐阿里優化
- 海量資料處理_表分割槽(線上重定義)
- FastloadAST
- MongoDB安裝以及資料初始化海量資料MongoDB
- 表空間離線與資料檔案離線的區別
- 磁碟離線資料恢復資料恢復
- fastload(2)AST
- 【Redis 技術探索】「資料遷移實戰」手把手教你如何實現線上 + 離線模式進行遷移Redis資料實戰指南(離線同步資料)Redis模式
- 海量資料相似度計算之simhash和海明距離
- 離線查詢與線上查詢
- Kaldi 離線線上解碼應用
- 大資料5.1 - hive離線分析大資料Hive
- 離線資料處理-DataSet物件物件
- 大資料與海量資料的區別大資料
- “大資料”與“海量資料”的區別大資料
- 海量資料找缺失的值
- 線上文字實體抽取能力,助力應用解析海量文字資料
- 海量資料處理
- Web應用中的離線資料儲存Web
- MySQL 海量資料的 5 種分頁方法和優化技巧MySql優化
- 關於海量資料常用的資料結構資料結構
- Datax離線資料抽取(MySQL--MySQL)MySql
- Datax離線資料抽取(Oracle--MySQL)OracleMySql
- Datax離線資料抽取(MySQL--Oracle)MySqlOracle
- 社會化海量資料採集爬蟲框架搭建爬蟲框架
- 海量資料的併發處理
- Laravel-Echo 線上離線檢測判斷Laravel
- Markdown線上、離線編輯器與使用教程
- oracle logminer分析線上 離線日誌方法Oracle
- ServiceWorker 快取離線化快取
- 阿里海量大資料平臺的運維智慧化實踐阿里大資料運維
- 海量資料處理2