日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实时OLAP分析利器Druid介绍

發布時間:2024/1/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实时OLAP分析利器Druid介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

前言

Druid介紹

主要特性

基礎概念

數據格式

數據攝入

數據存儲

數據查詢

查詢類型

架構

運維

OLAP方案對比

使用場景

使用建議

參考

近期主題

?


前言

項目早期、數據(報表分析)的生產、存儲和獲取業務,MySQL基本上可以滿足需要,但是隨著業務的快速增長,數據量翻至億為單位時,MySQL無法滿足例如:快速實時返回“分組+聚合計算+排序聚合指標”查詢需求。記得還是2017年之后,對當時的幾款OLAP進行了調研,用線上數據訓練。當時Druid在性能和功能上基本上能夠滿足需要,下面介紹一下Apache Druid。

Druid介紹

Apache Druid 是一個高性能實時分析數據庫,在復雜的海量數據下進行交互式實時數據展現的OLAP工具。能夠處理TB級別數據,毫秒級響應。目前國內在使用的公司有:阿里、滴滴、知乎、360、eBay,Hulu等。官方網址:http://druid.io

主要特性

  • 開源、列式存儲,預聚合
  • 實時流式和批量數據攝入
  • 靈活的數據模式、支持SQL查詢
  • 擴展方便,容易運維
  • TB,PB級別的數據處理
  • 基礎概念

    數據格式

    ? ? 數據源:datasource,datasource的結構有:時間列(timestamp)、維度列(Dimension)和指標列(Metric)

    ? ? 時間列:將時間相近的一些數據聚合在一起,查詢的時候指定時間范圍

    ? ? 維度列:標識一些統計的維度,比如:名稱、類別等

    ? ? 指標列:用于聚合和計算的列,比如:訪問總數、合計金額等

    timestamp

    demensions

    metric

    date

    userid

    username

    age

    sex

    visits

    costs

    2020-01-01T00:00:00Z

    100001

    張三

    20

    201

    20.10

    2020-01-01T00:00:00Z

    100002

    李四

    21

    160

    16.00

    2020-01-01T00:00:00Z

    100003

    王五

    20

    100

    10.00

    數據攝入

    ? ? 同時支持流式和批量數據攝入。通常通過像 Kafka 這樣的消息總線(加載流式數據)或通過像 HDFS 這樣的分布式文件系統(加載批量數據)來連接原始數據源。

    Druid 通過 Indexing 處理將原始數據以 segment 的方式存儲在數據節點,segment 是一種查詢優化的數據結構。

    數據存儲

    Druid 采用列式存儲。根據不同列的數據類型(string,number 等),Druid 對其使用不同的壓縮和編碼方式。Druid 也會針對不同的列類型構建不同類型的索引。

    類似于檢索系統,Druid 為 string 列創建反向索引,以達到更快速的搜索和過濾。類似于時間序列數據庫,Druid 基于時間對數據進行智能分區,以達到更快的基于時間的查詢。

    不像大多數傳統系統,Druid 可以在數據攝入前對數據進行預聚合。這種預聚合操作被稱之為 rollup,這樣就可以顯著的節省存儲成本。

    數據查詢

    ? ? 支持兩種查詢:JSON-HTTP,SQL兩種方式

    查詢類型

    ? ? Timeseries:基于時間范圍查詢的類型

    ? ? TopN:基于單維度的排名查詢

    ? ? GroupBy:基于多維度的分組查詢

    架構

    運維

    Druid是非常健壯的系統,Druid 擁有數據副本、獨立服務、自動數據備份和滾動更新,以確保長期運行,并保證數據不丟失。

    OLAP方案對比

    ?

    Druid

    Kylin

    Elasticsearch

    Spark SQL

    數據規模

    超大

    超大

    中等

    超大

    查詢效率

    中等

    并發度

    SQL支持

    靈活度

    Druid:是一個實時處理時序數據的OLAP數據庫,因為它的索引首先按照時間分片,查詢的時候也是按照時間線去路由索引。

    Kylin:核心是Cube,Cube是一種預計算技術,基本思路是預先對數據作多維索引,查詢時只掃描索引而不訪問原始數據從而提速。

    ES:最大的特點是使用了倒排索引解決索引問題。根據研究,ES在數據獲取和聚集用的資源比在Druid高。

    Spark SQL:基于Spark平臺上的一個OLAP框架,基本思路是增加機器來并行計算,從而提高查詢速度。

    使用場景

    • 廣告數據分析
    • 風控分析
    • 服務器指標存儲
    • 應用性能指標
    • 實時在線分析系統 OLAP
    • 實時報表分析
    • 離線+實時數據源
    • 行為數據分析

    使用建議

  • 時序化數據:所有行記錄中必須有日期指標
  • OLAP并發有限,不適合OLTP查詢,建議首次回源加Cache
  • 目前不支持JOIN操作,不支持數據更新
  • 離線數據替換前一天實時數據
  • 分頁支持的不夠完善
  • 另外、Druid在項目中已經投產多年,用OLAP方案解決業務上的問題,整理技術點為了方便相似業務同學參考和使用。

    參考

    https://druid.apache.org/docs/latest/design/

    近期主題:

    • Druid在數據分析需求中的學習和應用

    • Druid多種應用場景的實戰

    • 定時任務到分布式服務的演變

    ?

    總結

    以上是生活随笔為你收集整理的实时OLAP分析利器Druid介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。