<!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.22.1.</p>

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

<ul>
<li>Release date: Dec 11 2021</li>
<li>Binary download: <a href="https://www.apache.org/dyn/closer.cgi?path=/druid/0.22.1/apache-druid-0.22.1-bin.tar.gz">apache-druid-0.22.1-bin.tar.gz</a> (<a href="https://www.apache.org/dist/druid/0.22.1/apache-druid-0.22.1-bin.tar.gz.sha512">sha512</a>, <a href="https://www.apache.org/dist/druid/0.22.1/apache-druid-0.22.1-bin.tar.gz.asc">pgp</a>)</li>
<li>Source download: <a href="https://www.apache.org/dyn/closer.cgi?path=/druid/0.22.1/apache-druid-0.22.1-src.tar.gz">apache-druid-0.22.1-src.tar.gz</a> (<a href="https://www.apache.org/dist/druid/0.22.1/apache-druid-0.22.1-src.tar.gz.sha512">sha512</a>, <a href="https://www.apache.org/dist/druid/0.22.1/apache-druid-0.22.1-src.tar.gz.asc">pgp</a>)</li>
<li>Release notes: <a href="https://github.com/apache/druid/releases/tag/druid-0.22.1">0.22.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.21.</p>

<h5 id="0-21-1">0.21.1</h5>

<ul>
<li>Release date: Jun 10 2021</li>
<li>Binary download: <a href="https://www.apache.org/dyn/closer.cgi?path=/druid/0.21.1/apache-druid-0.21.1-bin.tar.gz">apache-druid-0.21.1-bin.tar.gz</a> (<a href="https://www.apache.org/dist/druid/0.21.1/apache-druid-0.21.1-bin.tar.gz.sha512">sha512</a>, <a href="https://www.apache.org/dist/druid/0.21.1/apache-druid-0.21.1-bin.tar.gz.asc">pgp</a>)</li>
<li>Source download: <a href="https://www.apache.org/dyn/closer.cgi?path=/druid/0.21.1/apache-druid-0.21.1-src.tar.gz">apache-druid-0.21.1-src.tar.gz</a> (<a href="https://www.apache.org/dist/druid/0.21.1/apache-druid-0.21.1-src.tar.gz.sha512">sha512</a>, <a href="https://www.apache.org/dist/druid/0.21.1/apache-druid-0.21.1-src.tar.gz.asc">pgp</a>)</li>
<li>Release notes: <a href="https://github.com/apache/druid/releases/tag/druid-0.21.1">0.21.1</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>
