国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

驚了! MySQL 熱冷數據分離設計還能這樣!

數據庫 MySQL
數據量的增長其實一直是隨著互聯(lián)網的發(fā)展呈現(xiàn)爆發(fā)式增長的,因為各種各樣的數據都在不斷的被原樣或者是經過少量的更改和增補后拷貝到互聯(lián)網的各個角落。為了適應互聯(lián)網數據的海量增長,在后端和架構意義上而言,數據庫的發(fā)展也大致經歷了「單庫單表 -> 主從讀寫分離 -> 分表分庫 -> NoSQL -> NewSQL」這樣的過程。

[[361087]]

數據庫發(fā)展簡介

數據量的增長其實一直是隨著互聯(lián)網的發(fā)展呈現(xiàn)爆發(fā)式增長的,因為各種各樣的數據都在不斷的被原樣或者是經過少量的更改和增補后拷貝到互聯(lián)網的各個角落。為了適應互聯(lián)網數據的海量增長,在后端和架構意義上而言,數據庫的發(fā)展也大致經歷了「單庫單表 -> 主從讀寫分離 -> 分表分庫 -> NoSQL -> NewSQL」這樣的過程。

一開始,我們把數據都堆在一個數據表里;后來為了提高性能、增加數據擴展的能力,采用了「主從讀寫分離」和「分表分庫」的方式,前者只需要在主從實例之間做數據同步而不會對既有業(yè)務有較大的影響,后者則需要用一套切合業(yè)務邏輯的方式合理的制定分表分庫的策略;再后來出現(xiàn)的 NoSQL,打破了傳統(tǒng)關系型數據庫固有的一些限制,它們有不同的類型,有的是為了解決高性能讀寫的需求,有的則是為了解決海量數據存儲的需求,還有的需要數據結構本身具備可擴展性;

NoSQL 的不同類型在不同的側重點解決了不同的問題,而如今出現(xiàn)的 NewSQL 則傾向于把數據庫看作是一個黑匣子服務,你還是可以遵照傳統(tǒng)的數據庫協(xié)議的使用方式(比如傳統(tǒng) MySQL 的使用方式)來使用它,但數據存儲服務本身既可以同時具備較高的讀寫性能又可以輕易的實現(xiàn)橫向擴展。NewSQL 并不是一個全新的東西,我們可以把它看作是之前積累的數據庫技術結合分布式技術的集大成解決方案,它使得使用數據服務的人幾乎不需要再考慮性能和擴展問題,而盡量在數據服務內部實現(xiàn)高可用、高性能、可擴展。

「熱數據」和「冷數據」

在簡單了解了數據庫發(fā)展歷程之后,再介紹一下我們目前在數據存儲上遇到的問題和一些業(yè)務背景。

作為氣象大數據服務商,隨著我們積累的數據量和數據種類越來越多,我們發(fā)現(xiàn)我們已經迫切需要一個在全局層面統(tǒng)一的數據路徑規(guī)劃和規(guī)范。很多時候,我們從數據源獲取到的數據,既需要馬上分發(fā)給線上用戶,也需要被內部項目使用,如果只是簡單的按需實現(xiàn),那數據流轉會非常混亂。基于這種考慮,我們引入了「熱數據」(「在線數據」)和「冷數據」(「離線數據」)的概念:

  • 熱數據」指的是需要即時對用戶進行分發(fā)的數據,即從數據源抓取之后經過數據清洗,需要即時存儲到可以快速分發(fā)的存儲介質(如 Redis)供 API 或直接面向用戶的系統(tǒng)使用。「熱數據」線需要重點保障服務質量和穩(wěn)定性,為了保證數據的時效性,在數據處理上也是優(yōu)先級高的數據。「熱數據」可能是臨時或短期存儲的,后來的數據可能會覆蓋已有的數據。

  • 冷數據」指的是不需要即時分發(fā)給用戶的數據,這些數據甚至可能永遠都不會原樣分發(fā)給用戶的,但它們需要經過長期的積累,使我們可以從中得出基于此的更高 level 的分析。「冷數據」典型的使用場景是供內部數據評估系統(tǒng)做數據準確度的評估分析,同時也可以給算法團隊建模使用。設立這個數據線的原則是不影響「熱數據」的服務質量,尤其是時效性和穩(wěn)定性,同時也滿足一些非線上項目的數據使用需求。

 

這其實也不是什么新鮮的概念,很多做數據服務的公司都有類似的設計,我們只是根據我們的業(yè)務特點借用了這樣的概念,不過它們的含義可能與你在其他地方看到的類似概念的含義有所不同。

結合我們具體的業(yè)務場景來說,「熱數據」線其實已經一直在有效運轉了,即我們從數據源獲取到數據然后盡快存儲到高性能存儲介質中,再通過HTTP協(xié)議分發(fā)出去,這些數據都是即時更新的最新的數據。而其中有一些類型的數據,我們還需要在可視化項目中查看歷史變化情況,并能進行簡單的聚合和計算,這意味著數據需要積累一段時間,那我們也需要一些可以持久化存儲的介質。

拿天氣實況來舉例,我們在采集完數據之后,隨即就存儲最新的一份數據到Redis,而出于數據積累的角度考慮,我們同時也把新數據寫入MySQL。這是之前我們的做法,然而隨著數據量的極速擴大,問題很快就會出在MySQL上。對于「億」級別行數往上的MySQL單表,操作會變得越來越困難,而大范圍的抽數或者插入數據的操作都可能使得整個MySQL無法提供服務,這對于線上業(yè)務而言是不可接受的。

離線數據中心的實現(xiàn)

在提出了「冷數據」的概念之后,我們意識到那些久遠的歷史數據其實需要存放到「冷數據」的數據中心池子里,而線上MySQL只需要保留最近一段時間的數據即可。另外,為了不改變現(xiàn)有項目使用數據的方式,降低數據庫使用者的門檻,不管是對于線上數據庫還是「離線數據」的數據中心,我們都需要兼容MySQL單表的使用協(xié)議。

很快我們就開始考慮NewSQL的方案,TiDB很自然地進入了我們的視野,這是一個既可以兼容現(xiàn)有數據使用方式,又可以實現(xiàn)數據橫向擴展的完美方案,但無奈搭建一個最小版本的TiDB 數據集群的成本,相比于目前我們把它作為一個「離線數據」存儲中心的角色而言,還是有一些偏高,而我們的存量服務也基本都是基于阿里云的,所以最終我們選擇了阿里云推出不久的云數據庫PolarDB。其間我們還研究了很多其他數據庫方案,比如DRDS、OceanBase、Google Cloud Spanner、Amazon Aurora等。

數據同步和數據過期

有了離線數據存儲中心之后,我們開始考慮如何把「熱數據」轉化為「冷數據」,同時也使得線上數據庫可以自動過期超出時間窗口的歷史數據。另外,由于內部可視化項目也希望看到實時的實況數據,所以離線數據最好也能很快獲得最新的實況數據。

既然是兩個 MySQL(集群)之間的實時數據轉移,很自然的就想到了我們可以做類似主從節(jié)點之間通過 binlog 的數據同步機制,這個同步可以做到秒級延遲,在實時性上是完全可以接受的。不過這不能是簡單的數據同步,因為離線數據是不能同步線上數據的過期操作的。更具體的,我們可以概括成:MySQL 從節(jié)點同步主節(jié)點所有數據增添和數據修改的操作,而對于數據的刪除操作不做同步。

在調研之后,我們發(fā)現(xiàn)TiDB提供的同步工具Syncer可以實現(xiàn)這一點,我們只需要在配置注明過濾掉DELETE的DML語句即可,示例如下:

  1. [[skip-dmls]] 
  2. db-name = "weather_data" 
  3. tbl-name = "weather_now_history" 
  4. type = "delete" 

而數據過期方案則可以直接借助MySQL本身的EVENT和PROCEDURE機制完成。首先我們可以創(chuàng)建一個刪除數據的PROCEDURE:

  1. CREATE DEFINER=`weather`@`%` PROCEDURE `weather_data`.`del_old_data`(IN `date_inter` int
  2. BEGIN 
  3.   delete from weather_data.weather_now_history where datetime < date_sub(curdate(), interval date_inter day); 
  4. END 

這個PROCEDURE功能是刪除weather_now_history表中date_inter天之前的數據。然后我們再創(chuàng)建一個EVENT: 

  1. CREATE EVENT del_old_data 
  2. ON SCHEDULE EVERY 1 DAY 
  3. STARTS '2018-12-25 10:08:35.000' 
  4. ON COMPLETION PRESERVE 
  5. ENABLE 
  6. DO call del_old_data(30) 

這個EVENT則會每天調用一次名為del_old_data的PROCEDURE,并同時把date_inter 賦值為30。這意味數據庫每天會刪一次數據,使得線上數據庫一直只保留最近30天的數據,而全量的數據是在數據寫入時就實時同步到了離線數據中心,可謂完美。

持續(xù)改進

上述的具體業(yè)務場景更多的還是case by case的解決了「熱數據」和「冷數據」的分離和轉化問題,這意味著方案并不具有普適性,以后我們遇到其他的數據庫或者不同的數據使用場景可能就不再適用。

另外,很多時候,「熱數據」和「冷數據」的劃分并不是那么明晰的,對于「冷數據」的需求有可能轉變?yōu)椤笩釘祿剐枨螅覀冃枰梢造`活切換的機制,做到數據源只抓取一次(「熱數據」和「冷數據」不要分別抓取),而抓取到的數據可以任意自由的流淌到「熱數據」或「冷數據」線使用,這意味著我們在數據抓取和數據存儲之間應該再做一層隔離。

要實現(xiàn)數據抓取和數據存儲之間的隔離,我們可以采用「發(fā)布 / 訂閱模式」:簡單說,數據抓取服務在獲取數據之后將數據發(fā)布到消息隊列,后面的存儲服務任意訂閱這個消息隊列再做存儲,這樣數據源只需要抓取一次,我們可以把它作為熱數據使用,也可以作為冷數據使用,甚至可以即作為熱數據又作為冷數據使用,切換起來也十分簡單。這是后續(xù)系統(tǒng)架構可以改進的一個地方。

另外,離線數據中心僅僅使用 PolarDB 對于我們可能產生的數據量級而言也是遠遠不夠的,我們還需要更低成本的數據存儲方案來存儲時間更久遠、平時幾乎不大會訪問的一些需要被「歸檔」的數據,這個時候,一些基于列存儲的 NoSQL 數據庫可能可以派上用場。

數據治理需要一個長期持續(xù)的過程,我們還在結合自身的業(yè)務場景不斷的摸索當中。 

責任編輯:龐桂玉 來源: 民工哥技術之路
相關推薦

2020-05-22 10:00:08

數據庫數據庫設計軟件設計

2020-11-16 13:38:31

PostMessage

2021-07-28 06:10:47

拖拽設計器 transmat

2021-10-29 07:49:22

Spring事務管理

2021-09-05 07:55:37

前端Emoji 表情

2012-07-13 11:32:16

網絡出口

2020-09-14 11:26:54

BinlogCanal數據庫

2024-08-02 08:38:20

Controller接口地址

2022-04-29 10:48:35

IT外包IT服務IT 領導者

2021-08-25 22:40:09

數據中心IT通道

2025-08-27 09:02:00

AI模型測試

2018-06-27 15:59:33

2023-08-30 00:08:22

災難恢復備份

2025-10-15 01:55:00

系統(tǒng)架構多屬性

2020-12-01 15:06:46

KafkaFlink數據倉庫

2015-11-05 16:08:18

數據中心節(jié)能降溫

2024-05-13 00:47:37

JSON對象數據

2019-05-27 22:55:45

GitHub開源贊賞

2021-08-03 22:26:46

Go函數分頁

2020-10-16 09:09:56

代碼業(yè)務模型
點贊
收藏

51CTO技術棧公眾號

久久91亚洲精品中文字幕| 无码人妻少妇伦在线电影| 二区三区精品| 337p亚洲精品色噜噜| 国产经典视频一区| 国产人成一区二区三区影院| 97在线免费视频观看| 久久精品毛片| 国产精品一区二区三区四区五区 | 色屁屁一区二区| 麻豆av在线| 中文字幕在线不卡国产视频| 欧美日韩一道本| 国产中文字幕一区| 一区二区三区三区在线| 日本在线不卡视频一二三区| 久热国产精品视频一区二区三区| 黄色在线一区| 精品国产综合久久| 国产亚洲毛片| 欧美精品国产精品久久久| 一区二区三区成人精品| 国内精品久久国产| 免播放器亚洲| 麻豆亚洲一区| 精品一区二区三区欧美| 欧美a级黄色大片| 国产69精品久久99不卡| 97免费视频观看| 99久久99久久久精品齐齐| 国产成人无码精品久久久性色| 91在线视频观看| 羞羞网站在线观看入口免费| 亚洲综合免费观看高清完整版| 国产精品久久久久白浆| 在线看日韩精品电影| 国产一二区在线| 亚洲欧美福利视频| 亚洲精品一区二区三区在线| 国产www精品| 亚洲精品1区| 日韩a级黄色片| 中文字幕中文字幕一区| 一级毛片在线| 亚洲成人久久电影| 在线不卡一区| 欧美野外猛男的大粗鳮| 婷婷综合亚洲| 先锋影音亚洲资源| 99精品久久只有精品| 午夜影院免费| 91精品福利在线一区二区三区| 精品欧美一区二区三区在线观看| 97精品欧美一区二区三区| 99re66热这里只有精品8| 亚洲国产日韩综合一区| 久久精品亚洲麻豆av一区二区| 中文在线有码| 亚洲毛片在线免费观看| 日韩大片在线免费观看| 鲁丝片一区二区三区| 91蜜桃网址入口| 免费在线观看一级毛片| 中文字幕亚洲在线| 97精品国产福利一区二区三区| 一个色的综合| 亚洲综合男人的天堂| caoporn视频在线| 亚洲人成电影在线| 一区二区电影在线观看| 国产美女主播在线| 国产在视频线精品视频www666| 成人性做爰aaa片免费看不忠| 日本亚洲天堂网| 一区二区三区四区视频精品免费| 老司机av福利| 亚洲色大成网站www久久九九| 成人在线影视| 久久久久免费视频| 午夜一区不卡| 国产国语**毛片高清视频| 精品日韩成人av| 夜色77av精品影院| 日本a级片在线观看| 懂色av中文一区二区三区天美 | 日韩中文字幕一区二区| 亚洲欧洲综合另类在线| 蜜桃成人365av| 国产精品www| 2欧美一区二区三区在线观看视频| av资源网站在线观看| 91精品国产91久久久| 国产麻豆一精品一av一免费| 永久免费在线观看| 色综合五月天导航| 日韩精品免费视频人成| 亚洲成人观看| 性欧美在线看片a免费观看| 国产在线不卡视频| 日本精品一区二区三区在线播放| 18性欧美xxxⅹ性满足| 国产精品99久久不卡二区| 午夜小视频在线| 成人激情视频在线播放| 国产欧美精品一区二区三区四区 | 精品久久不卡| 999在线免费视频| 亚洲欧美精品一区二区| 一区二区三区国产盗摄| 九草视频在线观看| 欧美激情欧美狂野欧美精品 | 国产精品久久久久久久久免费樱桃| 极品美鲍一区| 欧美人xxxxx| 一本久久综合亚洲鲁鲁五月天| 日韩欧美ww| 精品视频无码一区二区三区| 亚洲精品视频在线观看视频| 爽好久久久欧美精品| 中国日本在线视频中文字幕| 91久久精品视频| 亚洲国产精品天堂| 国产91久久精品一区二区| 久久久久久久久久久久久国产精品| 亚洲第一中文字幕| 日韩av电影免费观看高清完整版| av基地在线| 国产专区一区二区| 欧美亚洲尤物久久| 国内精品久久久久久久97牛牛| 在线播放中文字幕| 国产精品入口尤物| 欧美日韩国产麻豆| 欧美在线黄色| 高清在线观看av| 岛国一区二区三区高清视频| 在线观看中文字幕不卡| 国自产拍偷拍福利精品免费一| 9191在线| 亚洲 国产 日韩 综合一区| 欧美不卡视频一区| 久久精品国产精品亚洲精品| 欧美男体视频| 国产极品尤物在线| 欧美精品18videos性欧美| 国产精品网站一区| 加勒比久久综合| 国产在线观看黄| 欧美日韩精品免费在线观看视频| 欧美成人a视频| 国产不卡视频一区| 亚洲精品在线a| 午夜视频国产| 国新精品乱码一区二区三区18| 精品久久久久久久久久久久久久久 | 欧美日韩一二三区| 天堂影院一区二区| 91精品店在线| 男人艹女人在线观看| 成人午夜在线观看| 91精品黄色片免费大全| 国产成人精品网址| 在线成人动漫av| 九九热视频在线观看| 热re99久久精品国99热蜜月| 在线观看精品国产视频| 亚洲丝袜精品丝袜在线| 91精品啪在线观看国产81旧版 | 亚洲色图自拍| 色综合久久悠悠| 欧美日韩国产精品一区| 日韩**一区毛片| 免费一区二区三区在线视频| 最新av电影| 日本在线观看一区二区| 久久九九免费视频| 欧美性猛交99久久久久99按摩| 麻豆精品一区二区| 亚洲大片精品免费| 韩国日本一区| 艹b视频在线观看| 福利视频久久| 日韩在线观看免费高清| 午夜精品成人在线视频| 久久福利视频一区二区| 国产videos久久| 九色porny丨入口在线| 99热在线免费| 亚洲成人a**址| 国产999精品久久久影片官网| 日韩一区二区免费在线电影| 中文字幕 久热精品 视频在线| 亚洲高清激情| 日韩欧美另类中文字幕| 老司机精品视频在线观看6| 国产成人手机视频| 美媛馆国产精品一区二区| 91国内揄拍国内精品对白| 欧美精品一区二区三区在线| 亚洲一区二区三区视频在线|