Druid介紹

 

When should I use Druid?
Druid is used by many companies of various sizes for many different use cases. Check out the Powered by Apache Druid page

Druid is likely a good choice if your use case fits a few of the following descriptors:

Insert rates are very high, but updates are less common.
Most of your queries are aggregation and reporting queries ("group by" queries). You may also have searching and scanning queries.
You are targeting query latencies of 100ms to a few seconds.
Your data has a time component (Druid includes optimizations and design choices specifically related to time).
You may have more than one table, but each query hits just one big distributed table. Queries may potentially hit more than one smaller "lookup" table.
You have high cardinality data columns (e.g. URLs, user IDs) and need fast counting and ranking over them.
You want to load data from Kafka, HDFS, flat files, or object storage like Amazon S3.
Situations where you would likely not want to use Druid include:

You need low-latency updates of existing records using a primary key. Druid supports streaming inserts, but not streaming updates (updates are done using background batch jobs).
You are building an offline reporting system where query latency is not very important.
You want to do "big" joins (joining one big fact table to another big fact table) and you are okay with these queries taking a long time to complete.

druid選擇理由
druid已經在很多大公司應用了。如果你的需求場景滿足一下條件,可以選擇druid.
需求場景:
1. 大部分是數據插入,極少的修改
2. 查詢都需要group by查詢
3. 查詢的響應時間要求極高,100ms甚至更低
4. 數據是時間片維度
5. 你能接受一個大寬表
6  你需要快速計算列的數據
以上場景選druid,能解決你的問題。如果你的需求場景中update比較頻繁,需要表join,請不要選擇druid.

 

發佈了147 篇原創文章 · 獲贊 41 · 訪問量 72萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章