前言:
什麼是apache druid?
它是一個集時間序列資料庫、資料倉儲和全文檢索系統特點於一體的分析性資料平台。
本文會為大家簡單了解一下druid的特性、使用場景、技術特點和架構等,這將有助於我們選擇資料儲存方案,深入了解druid儲存和時間序列儲存等。
概覽
一個現代化的雲端原生,流原生,分析型資料庫
Druid是為快速查詢和快速攝取資料的工作流程而設計的。 Druid強在有強大的UI,運行時可操作查詢,和高效能並發處理。 Druid可以被視為一個滿足多樣化使用者場景的資料倉儲的開源替代品。
輕鬆與現有的資料管道整合
Druid可以從訊息匯流排串流獲取資料(如Kafka,Amazon Kinesis),或從資料湖批次載入檔案(如HDFS,Amazon S3和其他同類資料來源)。
比傳統方案快100倍的效能
Druid對資料攝取和資料查詢的基準效能測試大大超過了傳統解決方案。
Druid的架構融合了資料倉庫,時間序列資料庫和檢索系統最好的特性。
解鎖新的工作流程
Druid為Clickstream,APM(應用效能管理系統),supply chain(供應鏈),網路遙測,數位行銷和其他事件驅動形式的場景解鎖了新的查詢方式和工作流程。 Druid專為即時和歷史資料的快速臨時查詢而建置。
部署在AWS/GCP/Azure,混合雲,k8s和租用伺服器上
Druid可以部署在任何*NIX環境中。無論是內部環境還是雲端環境。部署Druid是非常easy的:透過新增或刪減服務來擴容縮容。
使用場景
Apache Druid適用於對即時資料擷取,高效能查詢和高可用要求較高的場景。因此,Druid通常被作為一個具有豐富GUI的分析系統,或作為一個需要快速聚合的高並發API的後台。 Druid更適合面向事件資料。
比較常見的使用場景:
點擊流分析(web和mobile分析)
風控分析
網路遙測分析(網路效能監控)
伺服器指標儲存
供應鏈分析(製造業指標)
應用效能指標
商業智慧/即時線上分析系統OLAP
以下將詳細分析這些使用情境:
使用者活動和行為
Druid經常用在點擊流,存取流,和活動流資料上。具體場景包括:衡量用戶參與度,為產品發布追蹤A/B測試數據,並了解用戶使用方式。 Druid可以做到精確和近似計算使用者指標,例如不重複計數指標。這意味著,如日活用戶指標可以在一秒鐘計算出近似值(平均精度98%),以查看總體趨勢,或精確計算以展示給利害關係人。 Druid可以用來做“漏斗分析”,去測量有多少用戶做了某種操作,而沒有做另一個操作。這對產品追蹤用戶註冊十分有用。
網路流
Druid常用來收集和分析網路流資料。 Druid被用來管理以任意屬性切分組合的流資料。 Druid能夠提取大量網路串流記錄,並且能夠在查詢時快速對數十個屬性組合和排序,這有助於網路流程分析。這些屬性包括一些核心屬性,如IP和連接埠號,也包括一些額外添加的強化屬性,如地理位置,服務,應用,設備和ASN。 Druid能夠處理非固定模式,這意味著你可以添加任何你想要的屬性。
數位行銷
Druid常常用來儲存和查詢線上廣告資料。這些數據通常來自廣告服務商,它對衡量和理解廣告活動效果,點擊穿透率,轉換率(消耗率)等指標至關重要。
Druid最初就是被設計成一個以廣告資料為導向的強大的使用者導向的分析型應用程式。在儲存廣告資料方面,Druid已經有大量生產實踐,全世界有大量用戶在上千台伺服器上儲存了PB級資料。
應用程式效能管理
Druid常用於追蹤應用程式產生的可運作資料。和用戶活動使用場景類似,這些數據可以是關於用戶怎樣和應用程式互動的,它可以是應用程式本身上報的指標數據。 Druid可用於下鑽發現應用程式不同組件的性能如何,定位瓶頸,和發現問題。
不像許多傳統解決方案,Druid具有更小儲存容量,更小複雜度,更大資料吞吐的特性。它可以快速分析數以千計屬性的應用事件,併計算複雜的加載,性能,利用率指標。例如,基於百分之95查詢延遲的API終端。我們可以以任何臨時屬性組織和切分數據,如以天為時間切分數據,如以使用者畫像統計,如按資料中心位置統計。
物聯網與裝置指標
Driud可以作為時間序列資料庫解決方案,來儲存處理伺服器和裝置的指標資料。收集機器產生的即時數據,執行快速臨時的分析,去估量性能,優化硬體資源,和定位問題。
和許多傳統時間序列資料庫不同,Druid本質上是一個分析引擎。 Druid融合了時間序列資料庫,列式分析資料庫,和檢索系統的概念。它在單一系統中支援了基於時間分區,列式存儲,和搜尋索引。這意味著基於時間的查詢,數位聚合,和檢索過濾查詢都會特別快。
你可以在你的指標中包含百萬唯一維度值,並隨意按任何維度組合group和filter(Druid 中的 dimension維度類似於時間序列資料庫中的tag)。你可以基於tag group和rank,併計算大量複雜的指標。而且你在tag上檢索和過濾會比傳統時間序列資料庫更快。
OLAP和商業智慧
Druid常用於商業智慧場景。公司部署Druid去加速查詢和增強應用程式。和基於Hadoop的SQL引擎(如Presto或Hive)不同,Druid為高並發和亞秒級查詢而設計,透過UI強化互動式資料查詢。這使得Druid更適合做真實的視覺化互動分析。
技術
Apache Druid 是一個開源的分散式資料儲存引擎。 Druid的核心設計融合了OLAP/analytic databases,timeseries database,和search systems的概念,以創造一個適用廣泛用例的統一系統。 Druid將這三種系統的主要特性融合進Druid的ingestion layer(資料攝取層),storage format(儲存格式化層),querying layer(查詢層),和core architecture(核心架構)。
Druid的主要功能包括:
列式儲存
Druid單獨儲存並壓縮每一列資料。且查詢時只查詢特定需要查詢的數據,支援快速scan,ranking和groupBy。
原生檢索索引
Druid為string值建立反向索引以達到資料的快速搜尋和篩選。
串流與批次資料攝取
開箱即用的Apache kafka,HDFS,AWS S3連接器connectors,串流處理器。
靈活的資料模式
Druid優雅地適應不斷變化的資料模式和巢狀資料類型。
基於時間的最佳化分區
Druid基於時間對資料進行智慧分區。因此,Druid基於時間的查詢將明顯快於傳統資料庫。
支援SQL語句
除了原生的基於JSON的查詢外,Druid還支援基於HTTP和JDBC的SQL。
水平擴展能力
百萬/秒的資料攝取速率,海量資料存儲,亞秒級查詢。
易於運維
可以透過新增或移除Server來擴充和縮容。 Druid支援自動重平衡,失效轉移。
資料攝取
Druid同時支援流式和大量資料攝取。 Druid通常透過像Kafka這樣的訊息匯流排(載入串流資料)或透過像HDFS這樣的分散式檔案系統(載入批次資料)來連接原始資料來源。
Druid透過Indexing處理將原始資料以segment的方式儲存在資料節點,segment是一種查詢最佳化的資料結構。
資料儲存
就像大多數分析型資料庫一樣,Druid採用列式儲存。根據不同列的資料類型(string,number等),Druid對其使用不同的壓縮和編碼方式。 Druid也會針對不同的欄位類型建立不同類型的索引。
類似於檢索系統,Druid為string列建立反向索引,以達到更快速的搜尋和篩選。類似於時間序列資料庫,Druid基於時間對資料進行智慧分區,以達到更快的基於時間的查詢。
不像大多數傳統系統,Druid可以在資料攝取前對資料進行預先聚合。這種預聚合操作稱為rollup,這樣就可以顯著的節省儲存成本。
查詢
Druid支援JSON-over-HTTP和SQL兩種查詢方式。除了標準的SQL操作外,Druid還支援大量的唯一性操作,利用Druid提供的演算法套件可以快速的進行計數,排名和分位數計算。
架構
Druid是微服務架構,可以理解為一個拆解成多個服務的資料庫。 Druid的每一個核心服務(ingestion(攝入服務),querying(查詢服務),和coordination(協調服務))都可以單獨部署或聯合部署在商業硬體上。
Druid清晰的命名每一個服務,以確保維運人員可以根據使用情況和負載情況很好地調整對應服務的參數。例如,當負載需要時,維運人員可以給資料攝取服務更多的資源而減少資料查詢服務的資源。
Druid可以獨立失敗而不影響其他服務的運作。
維運
Drui被設計成一個健壯的系統,它需要7*24小時運作。 Druid擁有以下特性,以確保長期運行,並保證資料不會遺失。
資料副本
Druid根據配置的副本數建立多個資料副本,所以單機失效不會影響Druid的查詢。
獨立服務
Druid清晰的命名每一個主服務,每一個服務都可以根據使用情況做相應的調整。服務可以獨立失敗而不影響其他服務的正常運作。例如,如果資料攝取服務失效了,將沒有新的資料載入系統,但是已經存在的資料仍然可以被查詢。
自動資料備份
Druid自動備份所有已經indexed的資料到一個檔案系統,它可以是分散式檔案系統,例如HDFS。你可以丟失所有Druid集群的數據,並快速從備份數據中重新加載。
滾動更新
透過滾動更新,你可以在不停機的情況下更新Druid集群,這樣對用戶就是無感知的。所有Druid版本都是向後相容。
想了解時間序列資料庫與對比,可移步另一篇文章:
#相關推薦:apache伺服器
#以上是一文詳解apache druid的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Apache是一種開源Web服務器軟件,廣泛用於網站託管。安裝步驟:1.在Ubuntu上使用命令行安裝;2.配置文件位於/etc/apache2/apache2.conf或/etc/httpd/conf/httpd.conf。通過模塊擴展,Apache支持靜態和動態內容託管,優化性能和安全性。

Apache仍在被廣泛使用,但市場份額已從2010年的50%以上降至2023年的不到30%。它的優勢在於穩定性和可靠性,適合需要這些特性的企業級應用;劣勢是多進程模型在高並發下資源消耗大,Nginx在高並發處理上表現更佳。

ApacheWebServer的核心功能包括模塊化設計、虛擬主機配置、安全性設置和性能優化。 1)模塊化設計通過加載不同模塊實現靈活擴展,如mod_rewrite用於URL重寫。 2)虛擬主機配置允許在一台服務器上運行多個網站。 3)安全性設置提供SSL/TLS加密和訪問控制。 4)性能優化涉及啟用KeepAlive、調整MPM配置和啟用緩存。

Apache持續重要性的原因包括其多樣性、靈活性、強大的社區支持、在企業級應用中的廣泛使用和高可靠性,以及在新興技術領域的不斷創新。具體來說,1)Apache項目涵蓋了從Web服務器到大數據處理等多個領域,提供了豐富的解決方案;2)Apache軟件基金會(ASF)的全球性社區為項目提供了持續的支持和發展動力;3)Apache在金融、電信等企業級應用中表現出高穩定性和可擴展性;4)Apache在雲計算、大數據等新興技術領域持續創新,如ApacheFlink和ApacheArrow的突破。

Apache在當今技術生態中依然重要。 1)在Web服務和大數據處理領域,ApacheHTTPServer、Kafka和Hadoop仍是首選。 2)未來需關注云原生化、性能優化和生態系統簡化,以保持競爭力。

ApacheHTTPServer对WebHosting和内容分发有巨大影响。1)Apache始于1995年,迅速成为市场首选,提供模块化设计和灵活性。2)在Web托管中,Apache因稳定性和安全性被广泛使用,支持多操作系统。3)内容分发方面,结合CDN使用提高了网站速度和可靠性。4)通过性能优化配置,如内容压缩和缓存头,Apache显著提升网站性能。

Apache可以服務HTML、CSS、JavaScript等文件。 1)配置虛擬主機和文檔根目錄,2)接收、處理並返回請求,3)使用.htaccess文件實現URL重寫,4)通過檢查權限、查看日誌和測試配置來調試,5)啟用緩存、壓縮文件和調整KeepAlive設置來優化性能。

ApacheHTTPServer因其模塊化設計、高度可擴展性、安全性和性能優化成為Web服務器領域的領導者。 1.模塊化設計通過加載不同模塊支持各種協議和功能。 2.高度可擴展性適應從小型到大型應用的需求。 3.安全性通過mod_security和多種認證機制保護網站。 4.性能優化通過數據壓縮和緩存提升加載速度。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

Dreamweaver CS6
視覺化網頁開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。