<!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 | Download</title>
<link rel="canonical" href="https://druid.apache.org/downloads.html" />
<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=" active 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 -->


    <div class="druid-header">
  <div class="container">
    <h1>Download</h1>
    <h4></h4>
  </div>
</div>

<div class="container">
  <div class="row">
    <div class="col-md-10 col-md-offset-1">
      <h2 id="latest-release">Latest release</h2>

<p>The latest Apache Druid stable release is 0.17.1.</p>

<p>
<a class="large-button download" href="https://www.apache.org/dyn/closer.cgi?path=/druid/0.17.1/apache-druid-0.17.1-bin.tar.gz" download onclick="trackDownload('button', 'https://www.apache.org/dyn/closer.cgi?path=/druid/0.17.1/apache-druid-0.17.1-bin.tar.gz');"><span class="fa fa-download"></span> Download 0.17.1 release</a><br>
</p>

<ul>
<li>Release date: Apr  1 2020</li>
<li>Binary download: <a href="https://www.apache.org/dyn/closer.cgi?path=/druid/0.17.1/apache-druid-0.17.1-bin.tar.gz">apache-druid-0.17.1-bin.tar.gz</a> (<a href="https://www.apache.org/dist/druid/0.17.1/apache-druid-0.17.1-bin.tar.gz.sha512">sha512</a>, <a href="https://www.apache.org/dist/druid/0.17.1/apache-druid-0.17.1-bin.tar.gz.asc">pgp</a>)</li>
<li>Source download: <a href="https://www.apache.org/dyn/closer.cgi?path=/druid/0.17.1/apache-druid-0.17.1-src.tar.gz">apache-druid-0.17.1-src.tar.gz</a> (<a href="https://www.apache.org/dist/druid/0.17.1/apache-druid-0.17.1-src.tar.gz.sha512">sha512</a>, <a href="https://www.apache.org/dist/druid/0.17.1/apache-druid-0.17.1-src.tar.gz.asc">pgp</a>)</li>
<li>Release notes: <a href="https://github.com/apache/druid/releases/tag/druid-0.17.1">0.17.1</a></li>
</ul>

<p>You should verify your download by following these <a href="https://www.apache.org/info/verification.html">procedures</a> and using these <a href="https://www.apache.org/dist/druid/KEYS">KEYS</a>.</p>

<p>To learn more about releases, please visit the <a href="/docs/latest/development/versioning.html">versioning page</a>.</p>

<h2 id="get-started">Get started</h2>

<p>To get started with Druid, visit the <a href="/docs/latest/tutorials/index.html">quickstart</a>.</p>

<h2 id="optional-dependencies">Optional dependencies</h2>

<h3 id="mysql-jdbc-driver">MySQL JDBC Driver</h3>

<p>Due to licensing considerations, the MySQL metadata store extension does not include the required MySQL JDBC driver which
must be downloaded separately. Please see the <a href="/docs/latest/development/extensions-core/mysql.html">documentation</a> for instructions on how to include this library.</p>

<h2 id="release-candidates">Release candidates</h2>

<p>Release candidates are announced on the <a href="https://lists.apache.org/list.html?dev@druid.apache.org">Druid dev mailing list</a>.</p>

<p>If you are interested in being notified of upcoming release candidates and being involved in the dev community (e.g. validating and approving RC builds), you can subscribe to the list by emailing: <strong>dev-subscribe@druid.apache.org</strong></p>

<p>Previous discussions are available in the <a href="https://lists.apache.org/list.html?dev@druid.apache.org">Apache Mail Archives</a>.</p>

<h2 id="older-releases">Older releases</h2>

<p>The previous major release branch of Apache Druid was 0.16.</p>

<h5 id="0-16-1-incubating">0.16.1-incubating</h5>

<ul>
<li>Release date: Dec 10 2019</li>
<li>Binary download: <a href="https://www.apache.org/dyn/closer.cgi?path=/druid/0.16.1-incubating/apache-druid-0.16.1-incubating-bin.tar.gz">apache-druid-0.16.1-incubating-bin.tar.gz</a> (<a href="https://www.apache.org/dist/druid/0.16.1-incubating/apache-druid-0.16.1-incubating-bin.tar.gz.sha512">sha512</a>, <a href="https://www.apache.org/dist/druid/0.16.1-incubating/apache-druid-0.16.1-incubating-bin.tar.gz.asc">pgp</a>)</li>
<li>Source download: <a href="https://www.apache.org/dyn/closer.cgi?path=/druid/0.16.1-incubating/apache-druid-0.16.1-incubating-src.tar.gz">apache-druid-0.16.1-incubating-src.tar.gz</a> (<a href="https://www.apache.org/dist/druid/0.16.1-incubating/apache-druid-0.16.1-incubating-src.tar.gz.sha512">sha512</a>, <a href="https://www.apache.org/dist/druid/0.16.1-incubating/apache-druid-0.16.1-incubating-src.tar.gz.asc">pgp</a>)</li>
<li>Release notes: <a href="https://github.com/apache/druid/releases/tag/druid-0.16.1-incubating">0.16.1-incubating</a></li>
</ul>

<p>All other releases of Apache Druid are available at the <a href="https://archive.apache.org/dist/druid/">Apache Druid release archives</a>.</p>

<p>Archived versions of releases made while Druid was under the Apache Incubator are available at <a href="https://archive.apache.org/dist/incubator/druid/">Apache Druid (incubating) release archives</a>.</p>

    </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>
