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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章