<!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 | Lookups</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.16.1-incubating/">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="lookups">Lookups</h1>

<div class="note caution">
Lookups are an <a href="../development/experimental.html">experimental</a> feature.
</div>

<p>Lookups are a concept in Apache Druid (incubating) where dimension values are (optionally) replaced with new values, allowing join-like
functionality. Applying lookups in Druid is similar to joining a dimension table in a data warehouse. See
<a href="../querying/dimensionspecs.html">dimension specs</a> for more information. For the purpose of these documents, a &quot;key&quot;
refers to a dimension value to match, and a &quot;value&quot; refers to its replacement. So if you wanted to map
<code>appid-12345</code> to <code>Super Mega Awesome App</code> then the key would be <code>appid-12345</code> and the value would be
<code>Super Mega Awesome App</code>.</p>

<p>It is worth noting that lookups support not just use cases where keys map one-to-one to unique values, such as country
code and country name, but also support use cases where multiple IDs map to the same value, e.g. multiple app-ids
mapping to a single account manager. When lookups are one-to-one, Druid is able to apply additional optimizations at
query time; see <a href="#query-execution">Query execution</a> below for more details.</p>

<p>Lookups do not have history. They always use the current data. This means that if the chief account manager for a 
particular app-id changes, and you issue a query with a lookup to store the app-id to account manager relationship, 
it will return the current account manager for that app-id REGARDLESS of the time range over which you query.</p>

<p>If you require data time range sensitive lookups, such a use case is not currently supported dynamically at query time, 
and such data belongs in the raw denormalized data for use in Druid.</p>

<p>Very small lookups (count of keys on the order of a few dozen to a few hundred) can be passed at query time as a &quot;map&quot; 
lookup as per <a href="../querying/dimensionspecs.html">dimension specs</a>.</p>

<p>Other lookup types are available as extensions, including:</p>

<ul>
<li>Globally cached lookups from local files, remote URIs, or JDBC through <a href="../development/extensions-core/lookups-cached-global.html">lookups-cached-global</a>.</li>
<li>Globally cached lookups from a Kafka topic through <a href="../development/extensions-core/kafka-extraction-namespace.html">kafka-extraction-namespace</a>.</li>
</ul>

<h2 id="query-syntax">Query Syntax</h2>

<p>In <a href="sql.html">Druid SQL</a>, lookups can be queried using the <code>LOOKUP</code> function, for example:</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>SELECT LOOKUP(column_name, &#39;lookup-name&#39;), COUNT(*) FROM datasource GROUP BY 1
</code></pre></div>
<p>In native queries, lookups can be queried with <a href="dimensionspecs.html">dimension specs or extraction functions</a>.</p>

<h2 id="query-execution">Query Execution</h2>

<p>When executing an aggregation query involving lookups, Druid can decide to apply lookups either while scanning and
aggregating rows, or to apply them after aggregation is complete. It is more efficient to apply lookups after
aggregation is complete, so Druid will do this if it can. Druid decides this by checking if the lookup is marked
as &quot;injective&quot; or not. In general, you should set this property for any lookup that is naturally one-to-one, to allow
Druid to run your queries as fast as possible.</p>

<p>Injective lookups should include <em>all</em> possible keys that may show up in your dataset, and should also map all keys to
<em>unique values</em>. This matters because non-injective lookups may map different keys to the same value, which must be
accounted for during aggregation, lest query results contain two result values that should have been aggregated into
one.</p>

<p>This lookup is injective (assuming it contains all possible keys from your data):</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>1 -&gt; Foo
2 -&gt; Bar
3 -&gt; Billy
</code></pre></div>
<p>But this one is not, since both &quot;2&quot; and &quot;3&quot; map to the same key:</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>1 -&gt; Foo
2 -&gt; Bar
3 -&gt; Bar
</code></pre></div>
<p>To tell Druid that your lookup is injective, you must specify <code>&quot;injective&quot; : true</code> in the lookup configuration. Druid
will not detect this automatically.</p>

<h2 id="dynamic-configuration">Dynamic Configuration</h2>

<div class="note caution">
Dynamic lookup configuration is an <a href="../development/experimental.html">experimental</a> feature. Static
configuration is no longer supported.
</div>

<p>The following documents the behavior of the cluster-wide config which is accessible through the Coordinator.
The configuration is propagated through the concept of &quot;tier&quot; of servers.
A &quot;tier&quot; is defined as a group of services which should receive a set of lookups.
For example, you might have all Historicals be part of <code>__default</code>, and Peons be part of individual tiers for the datasources they are tasked with.
The tiers for lookups are completely independent of Historical tiers.</p>

<p>These configs are accessed using JSON through the following URI template</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>http://&lt;COORDINATOR_IP&gt;:&lt;PORT&gt;/druid/coordinator/v1/lookups/config/{tier}/{id}
</code></pre></div>
<p>All URIs below are assumed to have <code>http://&lt;COORDINATOR_IP&gt;:&lt;PORT&gt;</code> prepended.</p>

<p>If you have NEVER configured lookups before, you MUST post an empty json object <code>{}</code> to <code>/druid/coordinator/v1/lookups/config</code> to initialize the configuration.</p>

<p>These endpoints will return one of the following results:</p>

<ul>
<li>404 if the resource is not found</li>
<li>400 if there is a problem in the formatting of the request</li>
<li>202 if the request was accepted asynchronously (<code>POST</code> and <code>DELETE</code>)</li>
<li>200 if the request succeeded (<code>GET</code> only)</li>
</ul>

<h2 id="configuration-propagation-behavior">Configuration propagation behavior</h2>

<p>The configuration is propagated to the query serving processes (Broker / Router / Peon / Historical) by the Coordinator.
The query serving processes have an internal API for managing lookups on the process and those are used by the Coordinator.
The Coordinator periodically checks if any of the processes need to load/drop lookups and updates them appropriately.</p>

<h1 id="api-for-configuring-lookups">API for configuring lookups</h1>

<h2 id="bulk-update">Bulk update</h2>

<p>Lookups can be updated in bulk by posting a JSON object to <code>/druid/coordinator/v1/lookups/config</code>. The format of the json object is as follows:</p>
<div class="highlight"><pre><code class="language-json" data-lang="json"><span></span><span class="p">{</span>
    <span class="nt">&quot;&lt;tierName&gt;&quot;</span><span class="p">:</span> <span class="p">{</span>
        <span class="nt">&quot;&lt;lookupName&gt;&quot;</span><span class="p">:</span> <span class="p">{</span>
          <span class="nt">&quot;version&quot;</span><span class="p">:</span> <span class="s2">&quot;&lt;version&gt;&quot;</span><span class="p">,</span>
          <span class="nt">&quot;lookupExtractorFactory&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;&lt;someExtractorFactoryType&gt;&quot;</span><span class="p">,</span>
            <span class="nt">&quot;&lt;someExtractorField&gt;&quot;</span><span class="p">:</span> <span class="s2">&quot;&lt;someExtractorValue&gt;&quot;</span>
          <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<p>Note that &quot;version&quot; is an arbitrary string assigned by the user, when making updates to existing lookup then user would need to specify a lexicographically higher version.</p>

<p>For example, a config might look something like:</p>
<div class="highlight"><pre><code class="language-json" data-lang="json"><span></span><span class="p">{</span>
  <span class="nt">&quot;__default&quot;</span><span class="p">:</span> <span class="p">{</span>
    <span class="nt">&quot;country_code&quot;</span><span class="p">:</span> <span class="p">{</span>
      <span class="nt">&quot;version&quot;</span><span class="p">:</span> <span class="s2">&quot;v0&quot;</span><span class="p">,</span>
      <span class="nt">&quot;lookupExtractorFactory&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;map&quot;</span><span class="p">,</span>
        <span class="nt">&quot;map&quot;</span><span class="p">:</span> <span class="p">{</span>
          <span class="nt">&quot;77483&quot;</span><span class="p">:</span> <span class="s2">&quot;United States&quot;</span>
        <span class="p">}</span>
      <span class="p">}</span>
    <span class="p">},</span>
    <span class="nt">&quot;site_id&quot;</span><span class="p">:</span> <span class="p">{</span>
      <span class="nt">&quot;version&quot;</span><span class="p">:</span> <span class="s2">&quot;v0&quot;</span><span class="p">,</span>
      <span class="nt">&quot;lookupExtractorFactory&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;cachedNamespace&quot;</span><span class="p">,</span>
        <span class="nt">&quot;extractionNamespace&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;jdbc&quot;</span><span class="p">,</span>
          <span class="nt">&quot;connectorConfig&quot;</span><span class="p">:</span> <span class="p">{</span>
            <span class="nt">&quot;createTables&quot;</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
            <span class="nt">&quot;connectURI&quot;</span><span class="p">:</span> <span class="s2">&quot;jdbc:mysql:\/\/localhost:3306\/druid&quot;</span><span class="p">,</span>
            <span class="nt">&quot;user&quot;</span><span class="p">:</span> <span class="s2">&quot;druid&quot;</span><span class="p">,</span>
            <span class="nt">&quot;password&quot;</span><span class="p">:</span> <span class="s2">&quot;diurd&quot;</span>
          <span class="p">},</span>
          <span class="nt">&quot;table&quot;</span><span class="p">:</span> <span class="s2">&quot;lookupTable&quot;</span><span class="p">,</span>
          <span class="nt">&quot;keyColumn&quot;</span><span class="p">:</span> <span class="s2">&quot;country_id&quot;</span><span class="p">,</span>
          <span class="nt">&quot;valueColumn&quot;</span><span class="p">:</span> <span class="s2">&quot;country_name&quot;</span><span class="p">,</span>
          <span class="nt">&quot;tsColumn&quot;</span><span class="p">:</span> <span class="s2">&quot;timeColumn&quot;</span>
        <span class="p">},</span>
        <span class="nt">&quot;firstCacheTimeout&quot;</span><span class="p">:</span> <span class="mi">120000</span><span class="p">,</span>
        <span class="nt">&quot;injective&quot;</span><span class="p">:</span> <span class="kc">true</span>
      <span class="p">}</span>
    <span class="p">},</span>
    <span class="nt">&quot;site_id_customer1&quot;</span><span class="p">:</span> <span class="p">{</span>
      <span class="nt">&quot;version&quot;</span><span class="p">:</span> <span class="s2">&quot;v0&quot;</span><span class="p">,</span>
      <span class="nt">&quot;lookupExtractorFactory&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;map&quot;</span><span class="p">,</span>
        <span class="nt">&quot;map&quot;</span><span class="p">:</span> <span class="p">{</span>
          <span class="nt">&quot;847632&quot;</span><span class="p">:</span> <span class="s2">&quot;Internal Use Only&quot;</span>
        <span class="p">}</span>
      <span class="p">}</span>
    <span class="p">},</span>
    <span class="nt">&quot;site_id_customer2&quot;</span><span class="p">:</span> <span class="p">{</span>
      <span class="nt">&quot;version&quot;</span><span class="p">:</span> <span class="s2">&quot;v0&quot;</span><span class="p">,</span>
      <span class="nt">&quot;lookupExtractorFactory&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;map&quot;</span><span class="p">,</span>
        <span class="nt">&quot;map&quot;</span><span class="p">:</span> <span class="p">{</span>
          <span class="nt">&quot;AHF77&quot;</span><span class="p">:</span> <span class="s2">&quot;Home&quot;</span>
        <span class="p">}</span>
      <span class="p">}</span>
    <span class="p">}</span>
  <span class="p">},</span>
  <span class="nt">&quot;realtime_customer1&quot;</span><span class="p">:</span> <span class="p">{</span>
    <span class="nt">&quot;country_code&quot;</span><span class="p">:</span> <span class="p">{</span>
      <span class="nt">&quot;version&quot;</span><span class="p">:</span> <span class="s2">&quot;v0&quot;</span><span class="p">,</span>
      <span class="nt">&quot;lookupExtractorFactory&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;map&quot;</span><span class="p">,</span>
        <span class="nt">&quot;map&quot;</span><span class="p">:</span> <span class="p">{</span>
          <span class="nt">&quot;77483&quot;</span><span class="p">:</span> <span class="s2">&quot;United States&quot;</span>
        <span class="p">}</span>
      <span class="p">}</span>
    <span class="p">},</span>
    <span class="nt">&quot;site_id_customer1&quot;</span><span class="p">:</span> <span class="p">{</span>
      <span class="nt">&quot;version&quot;</span><span class="p">:</span> <span class="s2">&quot;v0&quot;</span><span class="p">,</span>
      <span class="nt">&quot;lookupExtractorFactory&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;map&quot;</span><span class="p">,</span>
        <span class="nt">&quot;map&quot;</span><span class="p">:</span> <span class="p">{</span>
          <span class="nt">&quot;847632&quot;</span><span class="p">:</span> <span class="s2">&quot;Internal Use Only&quot;</span>
        <span class="p">}</span>
      <span class="p">}</span>
    <span class="p">}</span>
  <span class="p">},</span>
  <span class="nt">&quot;realtime_customer2&quot;</span><span class="p">:</span> <span class="p">{</span>
    <span class="nt">&quot;country_code&quot;</span><span class="p">:</span> <span class="p">{</span>
      <span class="nt">&quot;version&quot;</span><span class="p">:</span> <span class="s2">&quot;v0&quot;</span><span class="p">,</span>
      <span class="nt">&quot;lookupExtractorFactory&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;map&quot;</span><span class="p">,</span>
        <span class="nt">&quot;map&quot;</span><span class="p">:</span> <span class="p">{</span>
          <span class="nt">&quot;77483&quot;</span><span class="p">:</span> <span class="s2">&quot;United States&quot;</span>
        <span class="p">}</span>
      <span class="p">}</span>
    <span class="p">},</span>
    <span class="nt">&quot;site_id_customer2&quot;</span><span class="p">:</span> <span class="p">{</span>
      <span class="nt">&quot;version&quot;</span><span class="p">:</span> <span class="s2">&quot;v0&quot;</span><span class="p">,</span>
      <span class="nt">&quot;lookupExtractorFactory&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;map&quot;</span><span class="p">,</span>
        <span class="nt">&quot;map&quot;</span><span class="p">:</span> <span class="p">{</span>
          <span class="nt">&quot;AHF77&quot;</span><span class="p">:</span> <span class="s2">&quot;Home&quot;</span>
        <span class="p">}</span>
      <span class="p">}</span>
    <span class="p">}</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<p>All entries in the map will UPDATE existing entries. No entries will be deleted.</p>

<h2 id="update-lookup">Update Lookup</h2>

<p>A <code>POST</code> to a particular lookup extractor factory via <code>/druid/coordinator/v1/lookups/config/{tier}/{id}</code> will update that specific extractor factory.</p>

<p>For example, a post to <code>/druid/coordinator/v1/lookups/config/realtime_customer1/site_id_customer1</code> might contain the following:</p>
<div class="highlight"><pre><code class="language-json" data-lang="json"><span></span><span class="p">{</span>
  <span class="nt">&quot;version&quot;</span><span class="p">:</span> <span class="s2">&quot;v1&quot;</span><span class="p">,</span>
  <span class="nt">&quot;lookupExtractorFactory&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;map&quot;</span><span class="p">,</span>
    <span class="nt">&quot;map&quot;</span><span class="p">:</span> <span class="p">{</span>
      <span class="nt">&quot;847632&quot;</span><span class="p">:</span> <span class="s2">&quot;Internal Use Only&quot;</span>
    <span class="p">}</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<p>This will replace the <code>site_id_customer1</code> lookup in the <code>realtime_customer1</code> with the definition above.</p>

<h2 id="get-all-lookups">Get All Lookups</h2>

<p>A <code>GET</code> to <code>/druid/coordinator/v1/lookups/config/all</code> will return all known lookup specs for all tiers.</p>

<h2 id="get-lookup">Get Lookup</h2>

<p>A <code>GET</code> to a particular lookup extractor factory is accomplished via <code>/druid/coordinator/v1/lookups/config/{tier}/{id}</code></p>

<p>Using the prior example, a <code>GET</code> to <code>/druid/coordinator/v1/lookups/config/realtime_customer2/site_id_customer2</code> should return</p>
<div class="highlight"><pre><code class="language-json" data-lang="json"><span></span><span class="p">{</span>
  <span class="nt">&quot;version&quot;</span><span class="p">:</span> <span class="s2">&quot;v1&quot;</span><span class="p">,</span>
  <span class="nt">&quot;lookupExtractorFactory&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;map&quot;</span><span class="p">,</span>
    <span class="nt">&quot;map&quot;</span><span class="p">:</span> <span class="p">{</span>
      <span class="nt">&quot;AHF77&quot;</span><span class="p">:</span> <span class="s2">&quot;Home&quot;</span>
    <span class="p">}</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<h2 id="delete-lookup">Delete Lookup</h2>

<p>A <code>DELETE</code> to <code>/druid/coordinator/v1/lookups/config/{tier}/{id}</code> will remove that lookup from the cluster.</p>

<h2 id="list-tier-names">List tier names</h2>

<p>A <code>GET</code> to <code>/druid/coordinator/v1/lookups/config</code> will return a list of known tier names in the dynamic configuration.
To discover a list of tiers currently active in the cluster in addition to ones known in the dynamic configuration, the parameter <code>discover=true</code> can be added as per <code>/druid/coordinator/v1/lookups/config?discover=true</code>.</p>

<h2 id="list-lookup-names">List lookup names</h2>

<p>A <code>GET</code> to <code>/druid/coordinator/v1/lookups/config/{tier}</code> will return a list of known lookup names for that tier.</p>

<h1 id="additional-api-related-to-status-of-configured-lookups">Additional API related to status of configured lookups</h1>

<p>These end points can be used to get the propagation status of configured lookups to processes using lookups such as Historicals.</p>

<h2 id="list-load-status-of-all-lookups">List load status of all lookups</h2>

<p><code>GET /druid/coordinator/v1/lookups/status</code> with optional query parameter <code>detailed</code>.</p>

<h2 id="list-load-status-of-lookups-in-a-tier">List load status of lookups in a tier</h2>

<p><code>GET /druid/coordinator/v1/lookups/status/{tier}</code> with optional query parameter <code>detailed</code>.</p>

<h2 id="list-load-status-of-single-lookup">List load status of single lookup</h2>

<p><code>GET /druid/coordinator/v1/lookups/status/{tier}/{lookup}</code> with optional query parameter <code>detailed</code>.</p>

<h2 id="list-lookup-state-of-all-processes">List lookup state of all processes</h2>

<p><code>GET /druid/coordinator/v1/lookups/nodeStatus</code> with optional query parameter <code>discover</code> to discover tiers from zookeeper or configured lookup tiers are listed.</p>

<h2 id="list-lookup-state-of-processes-in-a-tier">List lookup state of processes in a tier</h2>

<p><code>GET /druid/coordinator/v1/lookups/nodeStatus/{tier}</code></p>

<h2 id="list-lookup-state-of-single-process">List lookup state of single process</h2>

<p><code>GET /druid/coordinator/v1/lookups/nodeStatus/{tier}/{host:port}</code></p>

<h1 id="internal-api">Internal API</h1>

<p>The Peon, Router, Broker, and Historical processes all have the ability to consume lookup configuration.
There is an internal API these processes use to list/load/drop their lookups starting at <code>/druid/listen/v1/lookups</code>.
These follow the same convention for return values as the cluster wide dynamic configuration. Following endpoints
can be used for debugging purposes but not otherwise.</p>

<h2 id="get-lookups">Get Lookups</h2>

<p>A <code>GET</code> to the process at <code>/druid/listen/v1/lookups</code> will return a json map of all the lookups currently active on the process.
The return value will be a json map of the lookups to their extractor factories.</p>
<div class="highlight"><pre><code class="language-json" data-lang="json"><span></span><span class="p">{</span>
  <span class="nt">&quot;site_id_customer2&quot;</span><span class="p">:</span> <span class="p">{</span>
    <span class="nt">&quot;version&quot;</span><span class="p">:</span> <span class="s2">&quot;v1&quot;</span><span class="p">,</span>
    <span class="nt">&quot;lookupExtractorFactory&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;map&quot;</span><span class="p">,</span>
      <span class="nt">&quot;map&quot;</span><span class="p">:</span> <span class="p">{</span>
        <span class="nt">&quot;AHF77&quot;</span><span class="p">:</span> <span class="s2">&quot;Home&quot;</span>
      <span class="p">}</span>
    <span class="p">}</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<h2 id="get-lookup">Get Lookup</h2>

<p>A <code>GET</code> to the process at <code>/druid/listen/v1/lookups/some_lookup_name</code> will return the LookupExtractorFactory for the lookup identified by <code>some_lookup_name</code>.
The return value will be the json representation of the factory.</p>
<div class="highlight"><pre><code class="language-json" data-lang="json"><span></span><span class="p">{</span>
  <span class="nt">&quot;version&quot;</span><span class="p">:</span> <span class="s2">&quot;v1&quot;</span><span class="p">,</span>
  <span class="nt">&quot;lookupExtractorFactory&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;map&quot;</span><span class="p">,</span>
    <span class="nt">&quot;map&quot;</span><span class="p">:</span> <span class="p">{</span>
      <span class="nt">&quot;AHF77&quot;</span><span class="p">:</span> <span class="s2">&quot;Home&quot;</span>
    <span class="p">}</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<h1 id="configuration">Configuration</h1>

<p>See <a href="../configuration/index.html#lookups-dynamic-configuration">Lookups Dynamic Configuration</a> for Coordinator configuration.</p>

<p>To configure a Broker / Router / Historical / Peon to announce itself as part of a lookup tier, use the <code>druid.zk.paths.lookupTier</code> property.</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.lookup.lookupTier</code></td>
<td>The tier for <strong>lookups</strong> for this process. This is independent of other tiers.</td>
<td><code>__default</code></td>
</tr>
<tr>
<td><code>druid.lookup.lookupTierIsDatasource</code></td>
<td>For some things like indexing service tasks, the datasource is passed in the runtime properties of a task. This option fetches the tierName from the same value as the datasource for the task. It is suggested to only use this as Peon options for the indexing service, if at all. If true, <code>druid.lookup.lookupTier</code> MUST NOT be specified</td>
<td><code>&quot;false&quot;</code></td>
</tr>
</tbody></table>

<p>To configure the behavior of the dynamic configuration manager, use the following properties on the Coordinator:</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.manager.lookups.hostTimeout</code></td>
<td>Timeout (in ms) PER HOST for processing request</td>
<td><code>2000</code>(2 seconds)</td>
</tr>
<tr>
<td><code>druid.manager.lookups.allHostTimeout</code></td>
<td>Timeout (in ms) to finish lookup management on all the processes.</td>
<td><code>900000</code>(15 mins)</td>
</tr>
<tr>
<td><code>druid.manager.lookups.period</code></td>
<td>How long to pause between management cycles</td>
<td><code>120000</code>(2 mins)</td>
</tr>
<tr>
<td><code>druid.manager.lookups.threadPoolSize</code></td>
<td>Number of service processes that can be managed concurrently</td>
<td><code>10</code></td>
</tr>
</tbody></table>

<h2 id="saving-configuration-across-restarts">Saving configuration across restarts</h2>

<p>It is possible to save the configuration across restarts such that a process will not have to wait for Coordinator action to re-populate its lookups. To do this the following property is set:</p>

<table><thead>
<tr>
<th>Property</th>
<th>Description</th>
<th>Default</th>
</tr>
</thead><tbody>
<tr>
<td><code>druid.lookup.snapshotWorkingDir</code></td>
<td>Working path used to store snapshot of current lookup configuration, leaving this property null will disable snapshot/bootstrap utility</td>
<td>null</td>
</tr>
<tr>
<td><code>druid.lookup.enableLookupSyncOnStartup</code></td>
<td>Enable the lookup synchronization process with Coordinator on startup. The queryable processes will fetch and load the lookups from the Coordinator instead of waiting for the Coordinator to load the lookups for them. Users may opt to disable this option if there are no lookups configured in the cluster.</td>
<td>true</td>
</tr>
<tr>
<td><code>druid.lookup.numLookupLoadingThreads</code></td>
<td>Number of threads for loading the lookups in parallel on startup. This thread pool is destroyed once startup is done. It is not kept during the lifetime of the JVM</td>
<td>Available Processors / 2</td>
</tr>
<tr>
<td><code>druid.lookup.coordinatorFetchRetries</code></td>
<td>How many times to retry to fetch the lookup bean list from Coordinator, during the sync on startup.</td>
<td>3</td>
</tr>
<tr>
<td><code>druid.lookup.lookupStartRetries</code></td>
<td>How many times to retry to start each lookup, either during the sync on startup, or during the runtime.</td>
<td>3</td>
</tr>
<tr>
<td><code>druid.lookup.coordinatorRetryDelay</code></td>
<td>How long to delay (in millis) between retries to fetch lookup list from the Coordinator during the sync on startup.</td>
<td>60_000</td>
</tr>
</tbody></table>

<h2 id="introspect-a-lookup">Introspect a Lookup</h2>

<p>The Broker provides an API for lookup introspection if the lookup type implements a <code>LookupIntrospectHandler</code>. </p>

<p>A <code>GET</code> request to <code>/druid/v1/lookups/introspect/{lookupId}</code> will return the map of complete values. </p>

<p>ex: <code>GET /druid/v1/lookups/introspect/nato-phonetic</code>
```
{
    &quot;A&quot;: &quot;Alfa&quot;,
    &quot;B&quot;: &quot;Bravo&quot;,
    &quot;C&quot;: &quot;Charlie&quot;,
    ...
    &quot;Y&quot;: &quot;Yankee&quot;,
    &quot;Z&quot;: &quot;Zulu&quot;,
    &quot;-&quot;: &quot;Dash&quot;
}</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>The list of keys can be retrieved via `GET` to `/druid/v1/lookups/introspect/{lookupId}/keys&quot;`

ex: `GET /druid/v1/lookups/introspect/nato-phonetic/keys`
</code></pre></div>
<p>[
    &quot;A&quot;,
    &quot;B&quot;,
    &quot;C&quot;,
    ...
    &quot;Y&quot;,
    &quot;Z&quot;,
    &quot;-&quot;
]
```</p>

<p>A <code>GET</code> request to <code>/druid/v1/lookups/introspect/{lookupId}/values&quot;</code> will return the list of values.</p>

<p>ex: <code>GET /druid/v1/lookups/introspect/nato-phonetic/values</code>
<code>
[
    &quot;Alfa&quot;,
    &quot;Bravo&quot;,
    &quot;Charlie&quot;,
    ...
    &quot;Yankee&quot;,
    &quot;Zulu&quot;,
    &quot;Dash&quot;
]
</code></p>

<h2 id="druid-version-0-10-0-to-0-10-1-upgrade-downgrade">Druid version 0.10.0 to 0.10.1 upgrade/downgrade</h2>

<p>Overall druid cluster lookups configuration is persisted in metadata store and also individual lookup processes optionally persist a snapshot of loaded lookups on disk.
If upgrading from druid version 0.10.0 to 0.10.1, then migration for all persisted metadata is handled automatically.
If downgrading from 0.10.1 to 0.9.0 then lookups updates done via Coordinator while 0.10.1 was running, would be lost.</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="Download via Apache" href="https://www.apache.org/dyn/closer.cgi?path=/incubator/druid/0.16.1-incubating/apache-druid-0.16.1-incubating-bin.tar.gz" target="_blank"><span class="fas fa-feather"></span></a>&ensp;·&ensp;
    <a title="GitHub" href="https://github.com/apache/incubator-druid" target="_blank"><span class="fab fa-github"></span></a>
  </div>
  <div class="text-center license">
    Copyright © 2019 <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.1-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>
