<!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 | Bloom Filter</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 -->


    <div class="container doc-container">
      
      

      
      <p> Looking for the <a href="/docs/0.23.0/">latest stable documentation</a>?</p>
      

      <div class="row">
        <div class="col-md-9 doc-content">
          <p>
            <a class="btn btn-default btn-xs visible-xs-inline-block visible-sm-inline-block" href="#toc">Table of Contents</a>
          </p>
          <!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License.  You may obtain a copy of the License at
  ~
  ~   http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied.  See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->

<h1 id="bloom-filter">Bloom Filter</h1>

<p>This Apache Druid (incubating) extension adds the ability to both construct bloom filters from query results, and filter query results by testing 
against a bloom filter. Make sure to <a href="../../operations/including-extensions.html">include</a> <code>druid-bloom-filter</code> as an 
extension.</p>

<p>A BloomFilter is a probabilistic data structure for performing a set membership check. A bloom filter is a good candidate 
to use with Druid for cases where an explicit filter is impossible, e.g. filtering a query against a set of millions of
 values.</p>

<p>Following are some characteristics of BloomFilters:
- BloomFilters are highly space efficient when compared to using a HashSet.
- Because of the probabilistic nature of bloom filters, false positive results are possible (element was not actually 
inserted into a bloom filter during construction, but <code>test()</code> says true)
- False negatives are not possible (if element is present then <code>test()</code> will never say false). 
- The false positive probability of this implementation is currently fixed at 5%, but increasing the number of entries 
that the filter can hold can decrease this false positive rate in exchange for overall size.
- Bloom filters are sensitive to number of elements that will be inserted in the bloom filter. During the creation of bloom filter expected number of entries must be specified. If the number of insertions exceed
 the specified initial number of entries then false positive probability will increase accordingly.</p>

<p>This extension is currently based on <code>org.apache.hive.common.util.BloomKFilter</code> from <code>hive-storage-api</code>. Internally, 
this implementation uses Murmur3 as the hash algorithm.</p>

<p>To construct a BloomKFilter externally with Java to use as a filter in a Druid query:</p>
<div class="highlight"><pre><code class="language-java" data-lang="java"><span></span><span class="n">BloomKFilter</span> <span class="n">bloomFilter</span> <span class="o">=</span> <span class="k">new</span> <span class="n">BloomKFilter</span><span class="p">(</span><span class="mi">1500</span><span class="p">);</span>
<span class="n">bloomFilter</span><span class="p">.</span><span class="na">addString</span><span class="p">(</span><span class="s">&quot;value 1&quot;</span><span class="p">);</span>
<span class="n">bloomFilter</span><span class="p">.</span><span class="na">addString</span><span class="p">(</span><span class="s">&quot;value 2&quot;</span><span class="p">);</span>
<span class="n">bloomFilter</span><span class="p">.</span><span class="na">addString</span><span class="p">(</span><span class="s">&quot;value 3&quot;</span><span class="p">);</span>
<span class="n">ByteArrayOutputStream</span> <span class="n">byteArrayOutputStream</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ByteArrayOutputStream</span><span class="p">();</span>
<span class="n">BloomKFilter</span><span class="p">.</span><span class="na">serialize</span><span class="p">(</span><span class="n">byteArrayOutputStream</span><span class="p">,</span> <span class="n">bloomFilter</span><span class="p">);</span>
<span class="n">String</span> <span class="n">base64Serialized</span> <span class="o">=</span> <span class="n">Base64</span><span class="p">.</span><span class="na">encodeBase64String</span><span class="p">(</span><span class="n">byteArrayOutputStream</span><span class="p">.</span><span class="na">toByteArray</span><span class="p">());</span>
</code></pre></div>
<p>This string can then be used in the native or sql Druid query.</p>

<h2 id="filtering-queries-with-a-bloom-filter">Filtering queries with a Bloom Filter</h2>

<h3 id="json-specification-of-bloom-filter">JSON Specification of Bloom Filter</h3>
<div class="highlight"><pre><code class="language-json" data-lang="json"><span></span><span class="p">{</span>
  <span class="nt">&quot;type&quot;</span> <span class="p">:</span> <span class="s2">&quot;bloom&quot;</span><span class="p">,</span>
  <span class="nt">&quot;dimension&quot;</span> <span class="p">:</span> <span class="err">&lt;dime</span><span class="kc">ns</span><span class="err">io</span><span class="kc">n</span><span class="err">_</span><span class="kc">na</span><span class="err">me&gt;</span><span class="p">,</span>
  <span class="nt">&quot;bloomKFilter&quot;</span> <span class="p">:</span> <span class="err">&lt;serialized_by</span><span class="kc">tes</span><span class="err">_</span><span class="kc">f</span><span class="err">or_BloomKFil</span><span class="kc">ter</span><span class="err">&gt;</span><span class="p">,</span>
  <span class="nt">&quot;extractionFn&quot;</span> <span class="p">:</span> <span class="err">&lt;ex</span><span class="kc">tra</span><span class="err">c</span><span class="kc">t</span><span class="err">io</span><span class="kc">n</span><span class="err">_</span><span class="kc">fn</span><span class="err">&gt;</span>
<span class="p">}</span>
</code></pre></div>
<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>required?</th>
</tr>
</thead><tbody>
<tr>
<td><code>type</code></td>
<td>Filter Type. Should always be <code>bloom</code></td>
<td>yes</td>
</tr>
<tr>
<td><code>dimension</code></td>
<td>The dimension to filter over.</td>
<td>yes</td>
</tr>
<tr>
<td><code>bloomKFilter</code></td>
<td>Base64 encoded Binary representation of <code>org.apache.hive.common.util.BloomKFilter</code></td>
<td>yes</td>
</tr>
<tr>
<td><code>extractionFn</code></td>
<td><a href="../../querying/dimensionspecs.html#extraction-functions">Extraction function</a> to apply to the dimension values</td>
<td>no</td>
</tr>
</tbody></table>

<h3 id="serialized-format-for-bloomkfilter">Serialized Format for BloomKFilter</h3>

<p>Serialized BloomKFilter format:</p>

<ul>
<li>1 byte for the number of hash functions.</li>
<li>1 big endian int(That is how OutputStream works) for the number of longs in the bitset</li>
<li>big endian longs in the BloomKFilter bitset</li>
</ul>

<p>Note: <code>org.apache.hive.common.util.BloomKFilter</code> provides a serialize method which can be used to serialize bloom filters to outputStream.</p>

<h3 id="filtering-sql-queries">Filtering SQL Queries</h3>

<p>Bloom filters can be used in SQL <code>WHERE</code> clauses via the <code>bloom_filter_test</code> operator:</p>
<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span></span><span class="k">SELECT</span> <span class="k">COUNT</span><span class="p">(</span><span class="o">*</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">druid</span><span class="p">.</span><span class="n">foo</span> <span class="k">WHERE</span> <span class="n">bloom_filter_test</span><span class="p">(</span><span class="o">&lt;</span><span class="n">expr</span><span class="o">&gt;</span><span class="p">,</span> <span class="s1">&#39;&lt;serialized_bytes_for_BloomKFilter&gt;&#39;</span><span class="p">)</span>
</code></pre></div>
<h3 id="expression-and-virtual-column-support">Expression and Virtual Column Support</h3>

<p>The bloom filter extension also adds a bloom filter <a href="../../misc/math-expr.html">Druid expression</a> which shares syntax 
with the SQL operator.</p>
<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span></span><span class="n">bloom_filter_test</span><span class="p">(</span><span class="o">&lt;</span><span class="n">expr</span><span class="o">&gt;</span><span class="p">,</span> <span class="s1">&#39;&lt;serialized_bytes_for_BloomKFilter&gt;&#39;</span><span class="p">)</span>
</code></pre></div>
<h2 id="bloom-filter-query-aggregator">Bloom Filter Query Aggregator</h2>

<p>Input for a <code>bloomKFilter</code> can also be created from a druid query with the <code>bloom</code> aggregator. Note that it is very 
important to set a reasonable value for the <code>maxNumEntries</code> parameter, which is the maximum number of distinct entries 
that the bloom filter can represent without increasing the false postive rate. It may be worth performing a query using
one of the unique count sketches to calculate the value for this parameter in order to build a bloom filter appropriate 
for the query. </p>

<h3 id="json-specification-of-bloom-filter-aggregator">JSON Specification of Bloom Filter Aggregator</h3>
<div class="highlight"><pre><code class="language-json" data-lang="json"><span></span><span class="p">{</span>
      <span class="nt">&quot;type&quot;</span><span class="p">:</span> <span class="s2">&quot;bloom&quot;</span><span class="p">,</span>
      <span class="nt">&quot;name&quot;</span><span class="p">:</span> <span class="err">&lt;ou</span><span class="kc">t</span><span class="err">pu</span><span class="kc">t</span><span class="err">_</span><span class="kc">f</span><span class="err">ield_</span><span class="kc">na</span><span class="err">me&gt;</span><span class="p">,</span>
      <span class="nt">&quot;maxNumEntries&quot;</span><span class="p">:</span> <span class="err">&lt;maximum_</span><span class="kc">nu</span><span class="err">mber_o</span><span class="kc">f</span><span class="err">_eleme</span><span class="kc">nts</span><span class="err">_</span><span class="kc">f</span><span class="err">or_BloomKFil</span><span class="kc">ter</span><span class="err">&gt;</span>
      <span class="nt">&quot;field&quot;</span><span class="p">:</span> <span class="err">&lt;dime</span><span class="kc">ns</span><span class="err">io</span><span class="kc">n</span><span class="err">_spec&gt;</span>
    <span class="p">}</span>
</code></pre></div>
<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>required?</th>
</tr>
</thead><tbody>
<tr>
<td><code>type</code></td>
<td>Aggregator Type. Should always be <code>bloom</code></td>
<td>yes</td>
</tr>
<tr>
<td><code>name</code></td>
<td>Output field name</td>
<td>yes</td>
</tr>
<tr>
<td><code>field</code></td>
<td><a href="../../querying/dimensionspecs.html">DimensionSpec</a> to add to <code>org.apache.hive.common.util.BloomKFilter</code></td>
<td>yes</td>
</tr>
<tr>
<td><code>maxNumEntries</code></td>
<td>Maximum number of distinct values supported by <code>org.apache.hive.common.util.BloomKFilter</code>, default <code>1500</code></td>
<td>no</td>
</tr>
</tbody></table>

<h3 id="example">Example</h3>
<div class="highlight"><pre><code class="language-json" data-lang="json"><span></span><span class="p">{</span>
  <span class="nt">&quot;queryType&quot;</span><span class="p">:</span> <span class="s2">&quot;timeseries&quot;</span><span class="p">,</span>
  <span class="nt">&quot;dataSource&quot;</span><span class="p">:</span> <span class="s2">&quot;wikiticker&quot;</span><span class="p">,</span>
  <span class="nt">&quot;intervals&quot;</span><span class="p">:</span> <span class="p">[</span> <span class="s2">&quot;2015-09-12T00:00:00.000/2015-09-13T00:00:00.000&quot;</span> <span class="p">],</span>
  <span class="nt">&quot;granularity&quot;</span><span class="p">:</span> <span class="s2">&quot;day&quot;</span><span class="p">,</span>
  <span class="nt">&quot;aggregations&quot;</span><span class="p">:</span> <span class="p">[</span>
    <span class="p">{</span>
      <span class="nt">&quot;type&quot;</span><span class="p">:</span> <span class="s2">&quot;bloom&quot;</span><span class="p">,</span>
      <span class="nt">&quot;name&quot;</span><span class="p">:</span> <span class="s2">&quot;userBloom&quot;</span><span class="p">,</span>
      <span class="nt">&quot;maxNumEntries&quot;</span><span class="p">:</span> <span class="mi">100000</span><span class="p">,</span>
      <span class="nt">&quot;field&quot;</span><span class="p">:</span> <span class="p">{</span>
        <span class="nt">&quot;type&quot;</span><span class="p">:</span><span class="s2">&quot;default&quot;</span><span class="p">,</span>
        <span class="nt">&quot;dimension&quot;</span><span class="p">:</span><span class="s2">&quot;user&quot;</span><span class="p">,</span>
        <span class="nt">&quot;outputType&quot;</span><span class="p">:</span> <span class="s2">&quot;STRING&quot;</span>
      <span class="p">}</span>
    <span class="p">}</span>
  <span class="p">]</span>
<span class="p">}</span>
</code></pre></div>
<p>response</p>
<div class="highlight"><pre><code class="language-json" data-lang="json"><span></span><span class="p">[{</span><span class="nt">&quot;timestamp&quot;</span><span class="p">:</span><span class="s2">&quot;2015-09-12T00:00:00.000Z&quot;</span><span class="p">,</span><span class="nt">&quot;result&quot;</span><span class="p">:{</span><span class="nt">&quot;userBloom&quot;</span><span class="p">:</span><span class="s2">&quot;BAAAJhAAAA...&quot;</span><span class="p">}}]</span>
</code></pre></div>
<p>These values can then be set in the filter specification described above. </p>

<p>Ordering results by a bloom filter aggregator, for example in a TopN query, will perform a comparatively expensive 
linear scan <em>of the filter itself</em> to count the number of set bits as a means of approximating how many items have been 
added to the set. As such, ordering by an alternate aggregation is recommended if possible. </p>

<h3 id="sql-bloom-filter-aggregator">SQL Bloom Filter Aggregator</h3>

<p>Bloom filters can be computed in SQL expressions with the <code>bloom_filter</code> aggregator:</p>
<div class="highlight"><pre><code class="language-sql" data-lang="sql"><span></span><span class="k">SELECT</span> <span class="n">BLOOM_FILTER</span><span class="p">(</span><span class="o">&lt;</span><span class="n">expression</span><span class="o">&gt;</span><span class="p">,</span> <span class="o">&lt;</span><span class="k">max</span> <span class="nb">number</span> <span class="k">of</span> <span class="n">entries</span><span class="o">&gt;</span><span class="p">)</span> <span class="k">FROM</span> <span class="n">druid</span><span class="p">.</span><span class="n">foo</span> <span class="k">WHERE</span> <span class="n">dim2</span> <span class="o">=</span> <span class="s1">&#39;abc&#39;</span>
</code></pre></div>
<p>but requires the setting <code>druid.sql.planner.serializeComplexValues</code> to be set to <code>true</code>. Bloom filter results in an SQL
 response are serialized into a base64 string, which can then be used in subsequent queries as a filter.</p>

        </div>
        <div class="col-md-3">
          <div class="searchbox">
            <gcse:searchbox-only></gcse:searchbox-only>
          </div>
          <div id="toc" class="nav toc hidden-print">
          </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 -->


    <script>
    $(function() {
      $(".toc").load("/docs/0.15.0-incubating/toc.html");

      // There is no way to tell when .gsc-input will be async loaded into the page so just try to set a placeholder until it works
      var tries = 0;
      var timer = setInterval(function() {
        tries++;
        if (tries > 300) clearInterval(timer);
        var searchInput = $('input.gsc-input');
        if (searchInput.length) {
          searchInput.attr('placeholder', 'Search');
          clearInterval(timer);
        }
      }, 100);
    });
    </script>
  </body>
</html>
