<!DOCTYPE html>
<html lang="en">
  <head>	
    <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Apache Druid">
<meta name="keywords" content="druid,kafka,database,analytics,streaming,real-time,real time,apache,open source">
<meta name="author" content="Apache Software Foundation">

<title>Druid | Druid Blog</title>

<link rel="alternate" type="application/atom+xml" href="/feed">
<link rel="shortcut icon" href="/img/favicon.png">

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">

<link href='//fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700,300italic|Open+Sans:300italic,400italic,600italic,400,300,600,700' rel='stylesheet' type='text/css'>

<link rel="stylesheet" href="/css/bootstrap-pure.css?v=1.1">
<link rel="stylesheet" href="/css/base.css?v=1.1">
<link rel="stylesheet" href="/css/header.css?v=1.1">
<link rel="stylesheet" href="/css/footer.css?v=1.1">
<link rel="stylesheet" href="/css/syntax.css?v=1.1">
<link rel="stylesheet" href="/css/docs.css?v=1.1">

<script>
  (function() {
    var cx = '000162378814775985090:molvbm0vggm';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
        '//cse.google.com/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
  })();
</script>


  </head>
  <body>	
    <!-- Start page_header include -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

<div class="top-navigator">
  <div class="container">
    <div class="left-cont">
      <a class="logo" href="/"><span class="druid-logo"></span></a>
    </div>
    <div class="right-cont">
      <ul class="links">
        <li class=""><a href="/technology">Technology</a></li>
        <li class=""><a href="/use-cases">Use Cases</a></li>
        <li class=""><a href="/druid-powered">Powered By</a></li>
        <li class=""><a href="/docs/latest/design/">Docs</a></li>
        <li class=""><a href="/community/">Community</a></li>
        <li class="header-dropdown">
          <a>Apache</a>
          <div class="header-dropdown-menu">
            <a href="https://www.apache.org/" target="_blank">Foundation</a>
            <a href="https://www.apache.org/events/current-event" target="_blank">Events</a>
            <a href="https://www.apache.org/licenses/" target="_blank">License</a>
            <a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a>
            <a href="https://www.apache.org/security/" target="_blank">Security</a>
            <a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a>
          </div>
        </li>
        <li class=" button-link"><a href="/downloads.html">Download</a></li>
      </ul>
    </div>
  </div>
  <div class="action-button menu-icon">
    <span class="fa fa-bars"></span> MENU
  </div>
  <div class="action-button menu-icon-close">
    <span class="fa fa-times"></span> MENU
  </div>
</div>

<script type="text/javascript">
  var $menu = $('.right-cont');
  var $menuIcon = $('.menu-icon');
  var $menuIconClose = $('.menu-icon-close');

  function showMenu() {
    $menu.fadeIn(100);
    $menuIcon.fadeOut(100);
    $menuIconClose.fadeIn(100);
  }

  $menuIcon.click(showMenu);

  function hideMenu() {
    $menu.fadeOut(100);
    $menuIconClose.fadeOut(100);
    $menuIcon.fadeIn(100);
  }

  $menuIconClose.click(hideMenu);

  $(window).resize(function() {
    if ($(window).width() >= 840) {
      $menu.fadeIn(100);
      $menuIcon.fadeOut(100);
      $menuIconClose.fadeOut(100);
    }
    else {
      $menu.fadeOut(100);
      $menuIcon.fadeIn(100);
      $menuIconClose.fadeOut(100);
    }
  });
</script>

<!-- Stop page_header include -->


    <link rel="stylesheet" href="/css/blogs.css">

<div class="druid-header">
  <div class="container">
    <h1>Druid Blog</h1>
    <h4></h4>
  </div>
</div>
  
<div class="container blog">
  <div class="row">
    <div class="col-md-8 col-md-offset-2">
      
      <div class="blog-listing">
        <h2><a href="/blog/2018/06/08/druid-0-12-1.html">Druid 0.12.1 release</a></h2>
        <p class="author text-uppercase text-muted">Druid PMC · June  8, 2018</p>
        <p><p>We&#39;re excited to announce the general availability of our latest release, <a href="/downloads.html">Druid 0.12.1</a>!</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2018/06/08/druid-0-12-1.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2018/03/08/druid-0-12-0.html">Druid 0.12.0 release</a></h2>
        <p class="author text-uppercase text-muted">Druid PMC · March  8, 2018</p>
        <p><p>We&#39;re excited to announce the general availability of our latest release, <a href="/downloads.html">Druid 0.12.0</a>!</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2018/03/08/druid-0-12-0.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2017/12/04/druid-0-11-0.html">Druid 0.11.0 release</a></h2>
        <p class="author text-uppercase text-muted">Druid PMC · December  4, 2017</p>
        <p><p>We&#39;re excited to announce the general availability of our latest release, <a href="/downloads.html">Druid 0.11.0</a>!</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2017/12/04/druid-0-11-0.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2017/08/22/druid-0-10-1.html">Druid 0.10.1 release</a></h2>
        <p class="author text-uppercase text-muted">Druid PMC · August 22, 2017</p>
        <p><p>We&#39;re excited to announce the general availability of our latest release, <a href="/downloads.html">Druid 0.10.1</a>!</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2017/08/22/druid-0-10-1.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2017/04/18/druid-0-10-0.html">Druid 0.10.0 release</a></h2>
        <p class="author text-uppercase text-muted">Druid PMC · April 18, 2017</p>
        <p><p>We&#39;re excited to announce the general availability of our latest release, <a href="/downloads.html">Druid 0.10.0</a>!</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2017/04/18/druid-0-10-0.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2016/12/01/druid-0-9-2.html">Druid 0.9.2 release</a></h2>
        <p class="author text-uppercase text-muted">Druid PMC · December  1, 2016</p>
        <p><p>We&#39;re excited to announce the general availability of our latest release, <a href="/downloads.html">Druid 0.9.2</a>!</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2016/12/01/druid-0-9-2.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2016/06/28/druid-0-9-1.html">Druid 0.9.1.1 release</a></h2>
        <p class="author text-uppercase text-muted">Druid PMC · June 28, 2016</p>
        <p><p>We&#39;re excited to announce the general availability of our latest release, <a href="/downloads.html">Druid 0.9.1.1</a>!</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2016/06/28/druid-0-9-1.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2016/01/06/announcing-new-committers.html">Announcing New Committers</a></h2>
        <p class="author text-uppercase text-muted">Druid PMC · January  6, 2016</p>
        <p><p>Happy New Year everyone! We’re excited to announce that we’ve added 8 new
committers to Druid. These committers have been making sustained contributions
to the project, and we look forward to working with them to continue to develop
the project in 2016.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2016/01/06/announcing-new-committers.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2015/11/03/seeking-new-committers.html">Seeking New Committers</a></h2>
        <p class="author text-uppercase text-muted">Druid PMC · November  3, 2015</p>
        <p><p>We are excited to announce that we have formalized the governance of Druid to
be a community led project! Druid has been informally community led for some
time, with committers from various organizations regularly adding new features,
improving performance, and making things easier to use. Project committers vote
on proposals, review/write pull requests, provide community support, and help
guide the technical direction of the project. You can find more information on
the project’s goals and governance on our recently updated <a href="http://druid.io/community/">Druid webpage</a>. Druid depends upon its vibrant community of users
for their feedback with respect to features, documentation and very helpful bug
reports.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2015/11/03/seeking-new-committers.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2015/02/20/towards-a-community-led-druid.html">Towards a Community Led Druid</a></h2>
        <p class="author text-uppercase text-muted">Fangjin Yang, Xavier Léauté, and Eric Tschetter · February 20, 2015</p>
        <p><p>We are very happy to announce that Druid has changed its license to Apache 2.0.
We believe this is a change the community will welcome. As engineers, we love
to see the things we make get used and attempt to provide value to the broader
open source world that we have benefitted from for so long. By switching to the
Apache license, we believe this change will better promote the growth of the Druid
community.  We hope to send a clear message that we
are all equal participants in the Druid community, a sentiment that is very
important to us.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2015/02/20/towards-a-community-led-druid.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2014/07/23/five-tips-for-a-f-ing-great-logo.html">Five Tips for a F’ing Great Logo</a></h2>
        <p class="author text-uppercase text-muted">David Hertog &amp; Fangjin Yang · July 23, 2014</p>
        <p><p>Everyone wants a great logo, but it’s notoriously difficult work—prone to
miscommunications, heated debates and countless revisions. Still, after three
years we couldn’t put it off any longer. Druid needed a visual identity, so we
partnered with the talented folks at <a href="http://focuslabllc.com/">Focus Lab</a> for
help.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2014/07/23/five-tips-for-a-f-ing-great-logo.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2014/05/07/open-source-leaders-sound-off-on-the-rise-of-the-real-time-data-stack.html">Open Source Leaders Sound Off on the Rise of the Real-Time Data Stack</a></h2>
        <p class="author text-uppercase text-muted">Fangjin Yang &amp; Gian Merlino · May  7, 2014</p>
        <p><p>In February we were honored to speak at the O’Reilly Strata conference about
building a robust, flexible, and completely open source data analytics stack.
If you couldn’t make it, you can watch the <a href="https://www.youtube.com/watch?v=kJMYVpnW_AQ">video
here</a>. Preparing for our talk got
us thinking about all the brilliant folks working on similar problems, so we
organized a panel that same night to continue the conversation.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2014/05/07/open-source-leaders-sound-off-on-the-rise-of-the-real-time-data-stack.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2014/04/15/intro-to-pydruid.html">Introduction to pydruid</a></h2>
        <p class="author text-uppercase text-muted">Igal Levy · April 15, 2014</p>
        <p><p>We&#39;ve already written about pairing <a href="/blog/2014/02/03/rdruid-and-twitterstream.html">R with RDruid</a>, but Python has powerful and free open-source analysis tools too. Collectively, these are often referred to as the <a href="http://www.scipy.org/stackspec.html">SciPy Stack</a>. To pair SciPy&#39;s analytic power with the advantages of querying time-series data in Druid, we created the pydruid connector. This allows Python users to query Druid&mdash;and export the results to useful formats&mdash;in a way that makes sense to them.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2014/04/15/intro-to-pydruid.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2014/03/17/benchmarking-druid.html">Benchmarking Druid</a></h2>
        <p class="author text-uppercase text-muted">Xavier Léauté · March 17, 2014</p>
        <p><p>We often get asked how fast Druid is. Despite having published some benchmark
numbers in <a href="/blog/2012/01/19/scaling-the-druid-data-store.html">previous blog posts</a>, as well as in our <a href="https://speakerdeck.com/druidio/">talks</a>,
until now, we have not actually published any data to back those claims up in in a
reproducible way. This post intends to address this and make it easier for
anyone to evaluate Druid and compare it to other systems out there.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2014/03/17/benchmarking-druid.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2014/03/12/batch-ingestion.html">Batch-Loading Sensor Data into Druid</a></h2>
        <p class="author text-uppercase text-muted">Igal Levy · March 12, 2014</p>
        <p><p>Sensors are everywhere these days, and that means sensor data is big data. Ingesting and analyzing sensor data at speed is an interesting problem, especially when scale is desired. In this post, we&#39;ll access some real-world sensor data, and show how Druid can be used to store that data and make it available for immediate querying.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2014/03/12/batch-ingestion.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2014/02/18/hyperloglog-optimizations-for-real-world-systems.html">How We Scaled HyperLogLog: Three Real-World Optimizations</a></h2>
        <p class="author text-uppercase text-muted">NELSON RAY AND FANGJIN YANG · February 18, 2014</p>
        <p><p>At Metamarkets, we specialize in converting mountains of programmatic ad data
into real-time, explorable views. Because these datasets are so large and
complex, we’re always looking for ways to maximize the speed and efficiency of
how we deliver them to our clients.  In this post, we’re going to continue our
discussion of some of the techniques we use to calculate critical metrics such
as unique users and device IDs with maximum performance and accuracy.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2014/02/18/hyperloglog-optimizations-for-real-world-systems.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2014/02/03/rdruid-and-twitterstream.html">RDruid and Twitterstream</a></h2>
        <p class="author text-uppercase text-muted">Igal Levy · February  3, 2014</p>
        <p><p>What if you could combine a statistical analysis language with the power of an analytics database for instant insights into realtime data? You&#39;d be able to draw conclusions from analyzing data streams at the speed of now. That&#39;s what combining the prowess of a <a href="">Druid database</a> with the power of <a href="http://www.r-project.org">R</a> can do.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2014/02/03/rdruid-and-twitterstream.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2013/11/04/querying-your-data.html">Querying Your Data</a></h2>
        <p class="author text-uppercase text-muted">Russell Jurney · November  4, 2013</p>
        <p><p>Before we start querying druid, we&#39;re going to finish setting up a complete cluster on localhost. In our previous posts, we setup a Realtime node. In this tutorial we will also setup the other Druid node types: Compute, Master and Broker.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2013/11/04/querying-your-data.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2013/09/20/druid-at-xldb.html">Druid at XLDB</a></h2>
        <p class="author text-uppercase text-muted">Russell Jurney · September 20, 2013</p>
        <p><p>We recently attended <a href="http://www.xldb.org/">Stanford XLDB</a> and the experience was a blast. Once a year, XLDB invites speakers from different organizations to discuss the challenges of and solutions to dealing with Xtreme (with an X!) data sets. This year, Jeff Dean dropped knowledge bombs about architecting scalable systems, Michael Stonebraker provided inspiring advice about growing open source projects, CERN explained how they found the Higgs Boson, and several organizations spoke about their technology. We definitely recommend checking out the <a href="https://conf-slac.stanford.edu/xldb-2013/conference-program">slides</a> from the conference.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2013/09/20/druid-at-xldb.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2013/09/19/launching-druid-with-apache-whirr.html">Launching Druid With Apache Whirr</a></h2>
        <p class="author text-uppercase text-muted">Russell Jurney · September 19, 2013</p>
        <p><p>Without Whirr, to launch a Druid cluster, you&#39;d have to provision machines yourself, and then install each node type manually. This process is outlined <a href="https://github.com/metamx/druid/wiki/Tutorial%3A-The-Druid-Cluster">here</a>. With Whirr, you can boot a druid cluster by editing a simple configuration file and then issuing a single command!</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2013/09/19/launching-druid-with-apache-whirr.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2013/09/16/upcoming-events.html">Upcoming Events</a></h2>
        <p class="author text-uppercase text-muted">September 16, 2013</p>
        <p><p>Druid hits the road this fall, with presentations in the Bay Area, North Carolina and New York!</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2013/09/16/upcoming-events.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2013/09/12/the-art-of-approximating-distributions.html">The Art of Approximating Distributions: Histograms and Quantiles at Scale</a></h2>
        <p class="author text-uppercase text-muted">Nelson Ray · September 12, 2013</p>
        <p><p><em>I’d like to acknowledge Xavier Léauté for his extensive contributions (in
particular, for suggesting several algorithmic improvements and work on
implementation), helpful comments, and fruitful discussions.  Featured image
courtesy of CERN.</em></p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2013/09/12/the-art-of-approximating-distributions.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2013/08/30/loading-data.html">Understanding Druid Real-time Ingestion</a></h2>
        <p class="author text-uppercase text-muted">Russell Jurney · August 30, 2013</p>
        <p><p>In our last post, we got a realtime node working with example Twitter data. Now it&#39;s time to load our own data to see how Druid performs. Druid can ingest data in three ways: via Kafka and a realtime node, via the indexing service, and via the Hadoop batch loader. Data is ingested in realtime using a <a href="https://github.com/metamx/druid/wiki/Firehose">Firehose</a>. In this post we&#39;ll outline how to ingest data from Kafka in realtime using the Kafka Firehose.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2013/08/30/loading-data.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2013/08/06/twitter-tutorial.html">Understanding Druid Via Twitter Data</a></h2>
        <p class="author text-uppercase text-muted">Russell Jurney · August  6, 2013</p>
        <p><p>Druid is a rockin&#39; exploratory analytical data store capable of offering interactive query of big data in realtime - as data is ingested. Druid drives 10&#39;s of billions of events per day for the <a href="http://www.metamarkets.com">Metamarkets</a> platform, and Metamarkets is committed to building Druid in open source.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2013/08/06/twitter-tutorial.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2013/05/10/real-time-for-real.html">Real Real-Time. For Realz.</a></h2>
        <p class="author text-uppercase text-muted">Eric Tschetter · May 10, 2013</p>
        <p><p><em>Danny Yuan, Cloud System Architect at Netflix, and I recently co-presented at
the Strata Conference in Santa Clara. <a href="http://www.youtube.com/watch?v=Dlqj34l2upk">The
presentation</a> discussed how Netflix
engineers leverage <a href="http://metamarkets.com/product/technology/">Druid</a>,
Metamarkets’ open-source, distributed, real-time, analytical data store, to
ingest 150,000 events per second (billions per day), equating to about 500MB/s
of data at peak (terabytes per hour) while still maintaining real-time,
exploratory querying capabilities. Before and after the presentation, we had
some interesting chats with conference attendees. One common theme from those
discussions was curiosity around the definition of “real-time” in the real
world and how Netflix could possibly achieve it at those volumes. This post is
a summary of the learnings from those conversations and a response to some of
those questions.</em></p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2013/05/10/real-time-for-real.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2013/04/26/meet-the-druid.html">Meet the Druid and Find Out Why We Set Him Free</a></h2>
        <p class="author text-uppercase text-muted">Steve Harris · April 26, 2013</p>
        <p><p>Before jumping straight into why <a href="http://metamarkets.com/">Metamarkets</a> open
sourced <a href="https://github.com/metamx/druid/wiki">Druid</a>, I thought I would give a
brief dive into what Druid is and how it came about. For more details, check
out the <a href="http://static.druid.io/docs/druid.pdf">Druid white paper</a>.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2013/04/26/meet-the-druid.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2013/04/03/druid-r-meetup.html">Druid, R, Pizza and massively large data sets (Video)</a></h2>
        <p class="author text-uppercase text-muted">Xavier Léauté · April  3, 2013</p>
        <p><p>On April 3rd 2013 we held our first Meetup hosted by Metamarkets. The description and video follows. </p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2013/04/03/druid-r-meetup.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2013/04/03/15-minutes-to-live-druid.html">15 Minutes to Live Druid</a></h2>
        <p class="author text-uppercase text-muted">Jaypal Sethi · April  3, 2013</p>
        <p><p>Big Data reflects today’s world where data generating events are measured in
the billions and business decisions based on insight derived from this data is
measured in seconds. There are few tools that provide deep insight into both
live and stationary data as business events are occurring; Druid was designed
specifically to serve this purpose.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2013/04/03/15-minutes-to-live-druid.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2013/02/28/interactive-queries-meet-real-time-data.html">Druid: Interactive Queries Meet Real-time Data (Video)</a></h2>
        <p class="author text-uppercase text-muted">Eric Tschetter · February 28, 2013</p>
        <p><p>Eric Tschetter (lead architect of Druid) and Danny Yuan (Netflix Platform Engineering Team) co-presented at the 2013 Strata conference in Santa Clara, CA.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2013/02/28/interactive-queries-meet-real-time-data.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2012/10/24/introducing-druid.html">Introducing Druid</a></h2>
        <p class="author text-uppercase text-muted">Eric Tschetter · October 24, 2012</p>
        <p><p>In <a href="http://metamarkets.com/2011/druid-part-i-real-time-analytics-at-a-billion-rows-per-second/">April 2011</a>,
we introduced Druid, our distributed, real-time data store.  Today I am
extremely proud to announce that we are releasing the Druid data store to the
community as an open source project. To mark this special occasion, I wanted to
recap why we built Druid, and why we believe there is broader utility for Druid
beyond <a href="http://metamarkets.com/2012/metamarkets-open-sources-druid/metamarkets.com/product">Metamarkets&#39; analytical SaaS offering</a>.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2012/10/24/introducing-druid.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2012/10/24/beyond-hadoop-fast-ad-hoc-queries-on-big-data.html">Beyond Hadoop: Fast Ad-Hoc Queries on Big Data (Video)</a></h2>
        <p class="author text-uppercase text-muted">Eric Tschetter · October 24, 2012</p>
        <p><p>Eric Tschetter (lead architect of Druid)</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2012/10/24/beyond-hadoop-fast-ad-hoc-queries-on-big-data.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2012/09/21/druid-bitmap-compression.html">Maximum Performance with Minimum Storage: Data Compression in Druid</a></h2>
        <p class="author text-uppercase text-muted">Fangjin Yang · September 21, 2012</p>
        <p><p>The Metamarkets solution allows for arbitrary exploration of massive data sets. Powered by Druid, our in-house distributed data store and processor, users can filter time series and top list queries based on Boolean expressions of dimension values. Given that some of our dataset dimensions contain millions of unique values, the subset of things that may match a particular filter expression may be quite large. To design for these challenges, we needed a fast and accurate (not a fast and approximate) solution, and we once again found ourselves buried under a stack of papers, looking for an answer.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2012/09/21/druid-bitmap-compression.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2012/05/04/fast-cheap-and-98-right-cardinality-estimation-for-big-data.html">Fast, Cheap, and 98% Right: Cardinality Estimation for Big Data</a></h2>
        <p class="author text-uppercase text-muted">Fangjin Yang · May  4, 2012</p>
        <p><p>The nascent era of big data brings new challenges, which in turn require new
tools and algorithms. At Metamarkets, one such challenge focuses on cardinality
estimation: efficiently determining the number of distinct elements within a
dimension of a large-scale data set. Cardinality estimations have a wide range
of applications from monitoring network traffic to data mining. If leveraged
correctly, these algorithms can also be used to provide insights into user
engagement and growth, via metrics such as “daily active users.”</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2012/05/04/fast-cheap-and-98-right-cardinality-estimation-for-big-data.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2012/01/19/scaling-the-druid-data-store.html">Scaling the Druid Data Store</a></h2>
        <p class="author text-uppercase text-muted">Eric Tschetter · January 19, 2012</p>
        <p><blockquote>
<p><em>“Give me a lever long enough… and I shall move the world”</em>
— Archimedes</p>
</blockquote>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2012/01/19/scaling-the-druid-data-store.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2011/05/20/druid-part-deux.html">Druid, Part Deux: Three Principles for Fast, Distributed OLAP</a></h2>
        <p class="author text-uppercase text-muted">Eric Tschetter · May 20, 2011</p>
        <p><p>In a <a href="/blog/2011/04/30/introducing-druid.html">previous blog
post</a> we introduced the
distributed indexing and query processing infrastructure we call Druid. In that
post, we characterized the performance and scaling challenges that motivated us
to build this system in the first place. Here, we discuss three design
principles underpinning its architecture.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2011/05/20/druid-part-deux.html">Read More</a>
      </div>
      
      <div class="blog-listing">
        <h2><a href="/blog/2011/04/30/introducing-druid.html">Introducing Druid: Real-Time Analytics at a Billion Rows Per Second</a></h2>
        <p class="author text-uppercase text-muted">Eric Tschetter · April 30, 2011</p>
        <p><p>Here at Metamarkets we have developed a web-based analytics console that
supports drill-downs and roll-ups of high dimensional data sets – comprising
billions of events – in real-time.  This is the first of two blog posts
introducing Druid, the data store that powers our console.  Over the last twelve
months, we tried and failed to achieve scale and speed with relational databases
(Greenplum, InfoBright, MySQL) and NoSQL offerings (HBase). So instead we did
something crazy: we rolled our own database. Druid is the distributed, in-memory
OLAP data store that resulted.</p>
</p>
        <a class="btn btn-default btn-xs" href="/blog/2011/04/30/introducing-druid.html">Read More</a>
      </div>
      
    </div>
  </div>
</div>

    
    <!-- Start page_footer include -->
<footer class="druid-footer">
<div class="container">
  <div class="text-center">
    <p>
    <a href="/technology">Technology</a>&ensp;·&ensp;
    <a href="/use-cases">Use Cases</a>&ensp;·&ensp;
    <a href="/druid-powered">Powered by Druid</a>&ensp;·&ensp;
    <a href="/docs/latest/">Docs</a>&ensp;·&ensp;
    <a href="/community/">Community</a>&ensp;·&ensp;
    <a href="/downloads.html">Download</a>&ensp;·&ensp;
    <a href="/faq">FAQ</a>
    </p>
  </div>
  <div class="text-center">
    <a title="Join the user group" href="https://groups.google.com/forum/#!forum/druid-user" target="_blank"><span class="fa fa-comments"></span></a>&ensp;·&ensp;
    <a title="Follow Druid" href="https://twitter.com/druidio" target="_blank"><span class="fab fa-twitter"></span></a>&ensp;·&ensp;
    <a title="GitHub" href="https://github.com/apache/druid" target="_blank"><span class="fab fa-github"></span></a>
  </div>
  <div class="text-center license">
    Copyright © 2020 <a href="https://www.apache.org/" target="_blank">Apache Software Foundation</a>.<br>
    Except where otherwise noted, licensed under <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a>.<br>
    Apache Druid, Druid, and the Druid logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.
  </div>
</div>
</footer>

<script async src="https://www.googletagmanager.com/gtag/js?id=UA-131010415-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'UA-131010415-1');
</script>
<script>
  function trackDownload(type, url) {
    ga('send', 'event', 'download', type, url);
  }
</script>
<script src="//code.jquery.com/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="/assets/js/druid.js"></script>
<!-- stop page_footer include -->

    
  </body>
</html>
