Apache Druid
| Apache Druid[1] | |
|---|---|
| Original author | Metamarkets |
| Developer | Apache Software Foundation |
| Stable release | |
| Repository | github.com/apache/druid |
| Written in | Java |
| Operating system | Cross-platform |
| Type | |
| License | Apache License 2.0 |
| Website | druid |
Druid is a column-oriented, open-source, distributed data store written in Java. Druid is designed to quickly ingest massive quantities of event data, and provide low-latency queries on top of the data.[3] The name Druid comes from the shapeshifting Druid class in many role-playing games, to reflect that the architecture of the system can shift to solve different types of data problems.
Druid is commonly used in business intelligence-OLAP applications to analyze high volumes of real-time and historical data.[4] Druid is used in production by technology companies such as Alibaba,[4] Airbnb,[4] Nielsen,[4] Cisco,[5] [4] eBay,[6] Lyft,[7] Netflix,[8] PayPal,[4] Pinterest,[9] Reddit,[10] Twitter,[11] Walmart,[12] Wikimedia Foundation [13] and Yahoo.[14]
History
[edit ]Druid was started in 2011 by Eric Tschetter, Fangjin Yang, Gian Merlino and Vadim Ogievetsky[15] to power the analytics product of Metamarkets. The project was open-sourced under the GPL license in October 2012,[16] [17] [18] and moved to an Apache License in February 2015.[19] [20]
Architecture
[edit ]Fully deployed, Druid runs as a cluster of specialized processes (called nodes in Druid) to support a fault-tolerant architecture[21] where data is stored redundantly, and there is no single point of failure.[22] The cluster includes external dependencies for coordination (Apache ZooKeeper), metadata storage (e.g. MySQL, PostgreSQL, or Derby), and a deep storage facility (e.g. HDFS, or Amazon S3) for permanent data backup.
Query management
[edit ]Client queries first hit broker nodes, which forward them to the appropriate data nodes (either historical or real-time). Since Druid segments may be partitioned, an incoming query can require data from multiple segments and partitions (or shards) stored on different nodes in the cluster. Brokers are able to learn which nodes have the required data, and also merge partial results before returning the aggregated result.
Cluster management
[edit ]Operations relating to data management in historical nodes are overseen by coordinator nodes. Apache ZooKeeper is used to register all nodes, manage certain aspects of internode communications, and provide for leader elections.
Features
[edit ]- Low latency (streaming) data ingestion.
- Arbitrary slice and dice data exploration.
- Sub-second analytic queries.
- Approximate and exact computations.
Performance
[edit ]In 2019, researchers compared the performance of Hive, Presto, and Druid using a denormalized Star Schema Benchmark based on the TPC-H standard. Druid was tested using both a "Druid Best" configuration using tables with hashed partitions and a "Druid Suboptimal" configuration which does not use hashed partitions.[23]
Tests were conducted by running the 13 TPC-H queries using TPC-H Scale Factor 30 (a 30GB database), Scale Factor 100 (a 100GB database), and Scale Factor 300 (a 300GB database).
| Scale Factor | Hive | Presto | Druid Best | Druid Suboptimal |
|---|---|---|---|---|
| 30 | 256s | 33s | 2.09s | 3.21s |
| 100 | 424s | 90s | 6.12s | 8.08s |
| 300 | 982s | 452s | 7.60s | 20.02s |
Druid performance was measured as at least 98% faster than Hive and at least 90% faster than Presto in each scenario, even when using the Druid Suboptimized configuration.
See also
[edit ]References
[edit ]- ^ "Apache Druid at GitHub". github.com. Retrieved 4 May 2021.
- ^ "Release 35.0.0". 18 November 2025. Retrieved 18 November 2025.
- ^ Hemsoth, Nicole. ""Druid Summons Strength in Real-Time"". Archived from the original on 2013年02月27日. Retrieved 2014年02月07日., Datanami, 8 November 2012
- ^ a b c d e f druid. "Druid | Powered by Druid". druid.apache.org. Retrieved 2016年06月29日.
- ^ Butler, Brandon (20 June 2016). "Under the hood of Cisco's Tetration Analytics platform". Archived from the original on 2024年04月26日. Retrieved 2016年06月23日.
- ^ "Druid at Pulsar - ebay的专栏 - 博客频道 - CSDN.NET". blog.csdn.net. Retrieved 2016年06月23日.
- ^ Streaming SQL and Druid by Arup Malakar, 23 August 2018, retrieved 2020年01月29日
- ^ "The Netflix Tech Blog: Announcing Suro: Backbone of Netflix's Data Pipeline". techblog.netflix.com. Retrieved 2016年06月23日.
- ^ Pinterest: Powering Ad Analytics with Apache Druid, 23 October 2019, retrieved 2020年01月29日
- ^ "Scaling Reporting at Reddit - Upvoted". www.redditinc.com. 26 February 2021. Retrieved 2022年09月13日.
- ^ "Interactive Analytics at MoPub: Querying Terabytes of Data in Seconds". blog.twitter.com. Retrieved 2020年01月29日.
- ^ Nayak, Amaresh (2018年02月23日). "Event Stream Analytics at Walmart with Druid". Medium. Retrieved 2020年01月29日.
- ^ "Conferences - O'Reilly Media".
- ^ "Complementing Hadoop at Yahoo: Interactive Analytics with Druid" . Retrieved 2016年06月23日.
- ^ "Druid: A Real-time Analytical Data Store" (PDF).
- ^ Tschetter, Eric. ""Introducing Druid"". Archived from the original on 2022年02月08日. Retrieved 2019年06月12日., druid.apache.org, 24 October 2012
- ^ Higginbotham, Stacey. ""Metamarkets open sources Druid, its in-memory database"". Archived from the original on 2021年09月18日. Retrieved 2014年02月07日., GigaOM , 24 October 2012
- ^ "Metamarkets Open Sources Druid, Streaming Real-Time Data Store". Yahoo News. 2012年10月24日. Retrieved 2023年07月24日.
- ^ Harris, Derrick (2015年02月20日). "The Druid real-time database moves to an Apache license". Archived from the original on 2015年08月22日. Retrieved 2015年08月04日.
- ^ "Druid Gets Open Source-ier Under the Apache License" . Retrieved 2015年08月04日.
- ^ "Druid Project Documentation".
- ^ Yang, Fangjin; Tschetter, Eric; Léauté, Xavier; Ray, Nelson; Merlino, Gian; Ganguli, Deep. ""Druid: A Real-time Analytical Data Store"" (PDF)., Metamarkets , retrieved 6 February 2014
- ^ Correia, José; Costa, Carlos; Santos, Maribel Yasmina (2019). "Challenging SQL-on-Hadoop Performance with Apache Druid". In Abramowicz, Witold; Corchuelo, Rafael (eds.). Business Information Systems. Lecture Notes in Business Information Processing. Vol. 353. Cham: Springer International Publishing. pp. 149–161. doi:10.1007/978-3-030-20485-3_12. hdl:1822/66785 . ISBN 978-3-030-20485-3. S2CID 190005302.