Apache Druid是開源的分布式存儲增炭,核心設計吸取了數(shù)據(jù)倉庫苗胀、時序數(shù)據(jù)、搜索系統(tǒng)思想,在實時分析體系里面創(chuàng)造了廣泛的用戶實例观游。Druid把3個系統(tǒng)的核心優(yōu)勢融入了數(shù)據(jù)抽取層,存儲格式、查詢層昼窗、核心架構。
特征
Druid的核心優(yōu)勢:
- 列存儲
Druid每一列單獨存儲和壓縮涛舍,因此當查詢時只需要讀取需要的列來支持快速掃描查詢澄惊、排序、聚合富雅。 - 原生的搜索索引
Druid通過為字符串值創(chuàng)建倒排索引來實現(xiàn)快速的搜索和過濾掸驱。 - 流數(shù)據(jù)和批數(shù)攝取
對kafka、HDFS没佑、AWS S3,流處理器等連接器開箱即用毕贼。 - 靈活的模式
Druid優(yōu)雅的處理演進的模式和嵌套結構的數(shù)據(jù)。 - 基于時間優(yōu)化的分區(qū)
Druid基于時間對數(shù)據(jù)智能分區(qū)蛤奢,因此基于時間的查詢速度比傳統(tǒng)的數(shù)據(jù)極大的提高鬼癣。 - 支持SQL
在jdbc和http上支持原生的json語言和Druid SQL。 - 橫向擴展
Druid在生產環(huán)境支持了每秒攝取100萬信息啤贩,存儲幾年的數(shù)據(jù)待秃,提供壓秒級查詢。 - 維護簡單
增加和移除服務器來上線和下線服務痹屹,Druid會自動調整章郁。容錯的架構容許服務器宕機。
用戶實例
- 實時分析和智能
- 用戶活動和行為
- 網絡流
- 應用程序性能監(jiān)控
- IOT設備指標監(jiān)控
- OLAP和商業(yè)智能
適合Druid做數(shù)據(jù)庫適用場景:
- 數(shù)據(jù)插入多志衍,更新少暖庄。
- 查詢數(shù)據(jù)中大部分是聚合和報表查詢聊替,也有搜索和掃描數(shù)據(jù)。
- 查詢在100ms到幾秒鐘
- 數(shù)據(jù)中有時間(Druid對時間進行了優(yōu)化和特別的設計)培廓。
- 每次查詢都是在一張大表中的選擇部分字段佃牛。(不支持join)。
- 有高基數(shù)列(e.g. URLs, user IDs),在此列可以快速的計數(shù)和排序医舆。
- 從Kafka俘侠、HDFS、文件系統(tǒng)蔬将、Amazon S3攝取數(shù)據(jù)爷速。
不適合Druid的場景
- 低延遲更新主鍵記錄。Druid支持流數(shù)據(jù)霞怀,但是不支持流數(shù)據(jù)更新惫东。(流數(shù)據(jù)更新可以在后臺批量更新)
- 離線報表系統(tǒng),你對數(shù)據(jù)延遲關注度不大毙石。
- 需要做大的join(實時表之間相互連接)廉沮,查詢需要很長時間完成。
翻譯:
https://druid.apache.org/technology
https://druid.apache.org/docs/latest/design/