Apache Druid(一)简介
翻譯自?Apache Druid
Apache Druid(正在孵化)是一個開源的分布式數據存儲。德魯伊的核心設計結合了OLAP /分析數據庫,時間序列數據庫和搜索系統的思想,為廣泛的用例創建了一個統一的系統。Druid將這三個系統中的每個系統的關鍵特征合并到其接收層,存儲格式,查詢層和核心體系結構中。
德魯伊的主要功能包括:
列式存儲
Druid分別存儲和壓縮每一列,并且只需要讀取特定查詢所需的內容即可,這支持快速掃描,排名和groupBys。
本機搜索索引
Druid為字符串值創建倒排索引,以便快速搜索和過濾。
流式處理和批量攝取
適用于Apache Kafka,HDFS,AWS S3,流處理器等的現成連接器。
靈活的架構
德魯伊優雅地處理不斷發展的模式和嵌套數據。
時間優化的分區
Druid基于時間對數據進行智能分區,并且基于時間的查詢比傳統數據庫要快得多。
SQL支持
除了基于本機JSON的本地語言外,Druid還通過HTTP或JDBC?講SQL。
橫向可擴展性
Druid已用于生產中,每秒接收數百萬個事件,保留多年的數據并提供亞秒級的查詢。
操作簡便
只需添加或刪除服務器即可擴大或縮小規模,而Druid會自動重新平衡。容錯架構圍繞服務器故障進行路由。
積分
Druid是Apache軟件基金會中許多開源數據技術的補充,包括Apache Kafka,Apache Hadoop,Apache Flink等。
德魯伊通常位于存儲或處理層與最終用戶之間,并充當查詢層以服務于分析工作負載。
攝取
德魯伊支持流式傳輸和批量攝取。Druid連接到原始數據源,通常是消息總線,例如Apache Kafka(用于流數據加載),或分布式文件系統,例如HDFS(用于批處理數據加載)。
在調用“索引”的過程中,Druid將存儲在源中的原始數據轉換為更具讀取優化的格式(稱為Druid“段”)。
有關更多信息,請訪問我們的文檔頁面。
存儲
像許多分析數據存儲一樣,Druid將數據存儲在列中。根據列的類型(字符串,數字等),將應用不同的壓縮和編碼方法。Druid還根據列類型構建不同類型的索引。
與搜索系統類似,Druid為字符串列構建反向索引,以進行快速搜索和過濾。與時間序列數據庫類似,Druid可按時間對數據進行智能分區,以實現快速的面向時間的查詢。
與許多傳統系統不同,Druid可以選擇在提取數據時對其進行預聚合。此預聚合步驟稱為匯總,可以節省大量存儲空間。
有關更多信息,請訪問我們的文檔頁面。
查詢方式
Druid支持通過JSON-over-HTTP和SQL查詢數據。除標準SQL運算符外,Druid還支持獨特的運算符,這些運算符利用其近似算法套件來提供快速計數,排名和分位數。
有關更多信息,請訪問我們的文檔頁面。
架構
德魯伊具有基于微服務的架構,可以認為是一個反匯編的數據庫。Druid中的每個核心服務(攝取,查詢和協調)都可以單獨或聯合部署在商用硬件上。
Druid明確命名了每個主要服務,以使操作員可以根據用例和工作量對每個服務進行微調。例如,如果工作負載需要,操作員可以將更多資源分配給Druid的提取服務,而將更少的資源分配給Druid的查詢服務。
德魯伊服務可以獨立發生故障,而不會影響其他服務的運行。
有關更多信息,請訪問我們的文檔頁面。
運作方式
德魯伊旨在為需要每周7天,每天24小時不間斷運行的應用程序供電。因此,德魯伊具有多種功能來確保正常運行時間且不會丟失數據。
資料復制
Druid中的所有數據都被復制了可配置的次數,因此單個服務器故障對查詢沒有影響。
獨立服務
Druid明確命名了其所有主要服務,并且每個服務都可以根據用例進行微調。服務可以獨立發生故障,而不會影響其他服務。例如,如果提取服務失敗,則系統中不會加載任何新數據,但是現有數據仍可查詢。
自動數據備份
Druid自動將所有索引數據備份到文件系統(例如HDFS)。您可能會丟失整個Druid群集,并從此備份數據中快速還原它。
滾動更新
您可以通過滾動更新來更新Druid群集,而不會造成停機時間,也不會影響最終用戶。所有Druid版本都向后兼容先前的版本。
總結
以上是生活随笔為你收集整理的Apache Druid(一)简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop生态hive(六)Hive
- 下一篇: 搭建nas不远程访问怎么行?篇五,内网i