一、多數(shù)據(jù)表,大數(shù)據(jù)量,更新頻率較高,以搜索為主的業(yè)務(wù),推薦什么搜索服務(wù)/系統(tǒng)架構(gòu)
多數(shù)據(jù)表,大數(shù)據(jù)量,更新頻率較高,以搜索為主的業(yè)務(wù),每個(gè)月1000萬(wàn)數(shù)據(jù)量的增量并不大,主要是每個(gè)表里面的冗余字段太多,導(dǎo)致文件比較大,個(gè)人覺(jué)得針對(duì)業(yè)務(wù)分離列表數(shù)據(jù)調(diào)用和搜索數(shù)據(jù)調(diào)用,另外搜索使用sphinx和lucene做實(shí)時(shí)增量索引+定時(shí)合并不影響業(yè)務(wù)和性能。
這個(gè)是分布式時(shí)序數(shù)據(jù)庫(kù)的典型場(chǎng)景。提供一個(gè)使用DolphinDB解決類似場(chǎng)景的案例。
(1) 客戶幾百個(gè)業(yè)務(wù)場(chǎng)景,每天產(chǎn)生200多億條時(shí)序日志記錄(每條記錄10個(gè)字段左右,維度+指標(biāo)),所有數(shù)據(jù)寫(xiě)入采用雙副本,并提供強(qiáng)一致性保證。每天產(chǎn)生數(shù)據(jù)2個(gè)T,雙副本大概4個(gè)T,壓縮之后1個(gè)T。數(shù)據(jù)保留15天左右。
(2)寫(xiě)入的同時(shí)有并發(fā)的查詢和計(jì)算。大概分三種。
根據(jù)業(yè)務(wù)場(chǎng)景和時(shí)間范圍,讀取原始數(shù)據(jù),每次讀取最近一個(gè)小時(shí)左右的數(shù)據(jù),約幾十萬(wàn)條數(shù)據(jù)
按設(shè)備或按業(yè)務(wù)場(chǎng)景等維度進(jìn)行分類統(tǒng)計(jì)過(guò)去24小時(shí)內(nèi)每分鐘的統(tǒng)計(jì)量(均值)
按設(shè)備或按業(yè)務(wù)場(chǎng)景等維度進(jìn)行分類統(tǒng)計(jì)過(guò)去24小時(shí)內(nèi)各種指標(biāo)的95百分位,供實(shí)時(shí)監(jiān)控使用。
這三種query涉及的數(shù)據(jù)量都比較大,每分鐘大概2000~3000個(gè)這樣的query。單個(gè)查詢和計(jì)算的延遲在幾十毫秒到2秒之間。
(3)部署了6臺(tái)(36核,256G內(nèi)存的服務(wù)器)物理機(jī)的DolphinDB集群解決上面的場(chǎng)景。實(shí)際上內(nèi)存和cpu的使用率都不是很高,可以使用更少的資源來(lái)完成。
你的場(chǎng)景數(shù)據(jù)量少很多,但是要保留更長(zhǎng)的時(shí)間。一臺(tái)16~24核,128~256G內(nèi)存,6~12個(gè)hdd硬盤(pán)的物理機(jī)(售價(jià)6~10萬(wàn)),安裝DolphinDB時(shí)序數(shù)據(jù)庫(kù)就可以搞定。你的業(yè)務(wù)場(chǎng)景非常簡(jiǎn)單,數(shù)據(jù)在DolphinDB中按照日期和設(shè)備兩個(gè)維度分區(qū)就可以了。日期采用值分區(qū),每天一個(gè),設(shè)備采用范圍或哈希分區(qū),分成100個(gè)。這樣每個(gè)分區(qū)的數(shù)據(jù)量大概在100萬(wàn)條左右,非常好的平衡了查詢延時(shí)和吞吐量。
延伸閱讀:
二、SQL是什么
Structured Query Language
‘SQL’是結(jié)構(gòu)化查詢語(yǔ)言,是一種用來(lái)操作?RDBMS?的數(shù)據(jù)庫(kù)語(yǔ)言,當(dāng)前關(guān)系型數(shù)據(jù)庫(kù)都支持使用SQL語(yǔ)言進(jìn)行操作,也就是說(shuō)可以通過(guò)?SQL?操作 oracle,sql server,mysql,sqlite 等等所有的關(guān)系型的數(shù)據(jù)庫(kù)
SQL語(yǔ)句主要分為:DQL:數(shù)據(jù)查詢語(yǔ)言,用于對(duì)數(shù)據(jù)進(jìn)行查詢,如select**
DML:數(shù)據(jù)操作語(yǔ)言,對(duì)數(shù)據(jù)進(jìn)行增加、修改、刪除,如insert、udpate、delete**
TPL:事務(wù)處理語(yǔ)言,對(duì)事務(wù)進(jìn)行處理,包括begin transaction、commit、rollback
DCL:數(shù)據(jù)控制語(yǔ)言,進(jìn)行授權(quán)與權(quán)限回收,如grant、revoke
DDL:數(shù)據(jù)定義語(yǔ)言,進(jìn)行數(shù)據(jù)庫(kù)、表的管理等,如create、drop
CCL:指針控制語(yǔ)言,通過(guò)控制指針完成表的操作,如declare cursor對(duì)于web程序員來(lái)講,重點(diǎn)是數(shù)據(jù)的crud(增刪改查),必須熟練編寫(xiě)DQL、DML,能夠編寫(xiě)DDL完成數(shù)據(jù)庫(kù)、表的操作,其它語(yǔ)言如TPL、DCL、CCL了解即可SQL 是一門(mén)特殊的語(yǔ)言,專門(mén)用來(lái)操作關(guān)系數(shù)據(jù)庫(kù)不區(qū)分大小寫(xiě)