blob: 83b42151497611f05c2a9f46a6e12777dd0502d3 [file] [log] [blame]
<!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 | DumpSegment tool</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="dumpsegment-tool">DumpSegment tool</h1>
<p>The DumpSegment tool can be used to dump the metadata or contents of an Apache Druid (incubating) segment for debugging purposes. Note that the
dump is not necessarily a full-fidelity translation of the segment. In particular, not all metadata is included, and
complex metric values may not be complete.</p>
<p>To run the tool, point it at a segment directory and provide a file for writing output:</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>java -classpath &quot;/my/druid/lib/*&quot; org.apache.druid.cli.Main tools dump-segment \
--directory /home/druid/path/to/segment/ \
--out /home/druid/output.txt
</code></pre></div>
<h3 id="output-format">Output format</h3>
<h4 id="data-dumps">Data dumps</h4>
<p>By default, or with <code>--dump rows</code>, this tool dumps rows of the segment as newline-separate JSON objects, with one
object per line, using the default serialization for each column. Normally all columns are included, but if you like,
you can limit the dump to specific columns with <code>--column name</code>.</p>
<p>For example, one line might look like this when pretty-printed:</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>{
&quot;__time&quot;: 1442018818771,
&quot;added&quot;: 36,
&quot;channel&quot;: &quot;#en.wikipedia&quot;,
&quot;cityName&quot;: null,
&quot;comment&quot;: &quot;added project&quot;,
&quot;count&quot;: 1,
&quot;countryIsoCode&quot;: null,
&quot;countryName&quot;: null,
&quot;deleted&quot;: 0,
&quot;delta&quot;: 36,
&quot;isAnonymous&quot;: &quot;false&quot;,
&quot;isMinor&quot;: &quot;false&quot;,
&quot;isNew&quot;: &quot;false&quot;,
&quot;isRobot&quot;: &quot;false&quot;,
&quot;isUnpatrolled&quot;: &quot;false&quot;,
&quot;iuser&quot;: &quot;00001553&quot;,
&quot;metroCode&quot;: null,
&quot;namespace&quot;: &quot;Talk&quot;,
&quot;page&quot;: &quot;Talk:Oswald Tilghman&quot;,
&quot;regionIsoCode&quot;: null,
&quot;regionName&quot;: null,
&quot;user&quot;: &quot;GELongstreet&quot;
}
</code></pre></div>
<h4 id="metadata-dumps">Metadata dumps</h4>
<p>With <code>--dump metadata</code>, this tool dumps metadata instead of rows. Metadata dumps generated by this tool are in the same
format as returned by the <a href="../querying/segmentmetadataquery.html">SegmentMetadata query</a>.</p>
<h4 id="bitmap-dumps">Bitmap dumps</h4>
<p>With <code>--dump bitmaps</code>, this tool dump bitmap indexes instead of rows. Bitmap dumps generated by this tool include
dictionary-encoded string columns only. The output contains a field &quot;bitmapSerdeFactory&quot; describing the type of bitmaps
used in the segment, and a field &quot;bitmaps&quot; containing the bitmaps for each value of each column. These are base64
encoded by default, but you can also dump them as lists of row numbers with <code>--decompress-bitmaps</code>.</p>
<p>Normally all columns are included, but if you like, you can limit the dump to specific columns with <code>--column name</code>.</p>
<p>Sample output:</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"><span></span>{
&quot;bitmapSerdeFactory&quot;: {
&quot;type&quot;: &quot;concise&quot;
},
&quot;bitmaps&quot;: {
&quot;isRobot&quot;: {
&quot;false&quot;: &quot;//aExfu+Nv3X...&quot;,
&quot;true&quot;: &quot;gAl7OoRByQ...&quot;
}
}
}
</code></pre></div>
<h3 id="command-line-arguments">Command line arguments</h3>
<table><thead>
<tr>
<th>argument</th>
<th>description</th>
<th>required?</th>
</tr>
</thead><tbody>
<tr>
<td>--directory file</td>
<td>Directory containing segment data. This could be generated by unzipping an &quot;index.zip&quot; from deep storage.</td>
<td>yes</td>
</tr>
<tr>
<td>--output file</td>
<td>File to write to, or omit to write to stdout.</td>
<td>yes</td>
</tr>
<tr>
<td>--dump TYPE</td>
<td>Dump either &#39;rows&#39; (default), &#39;metadata&#39;, or &#39;bitmaps&#39;</td>
<td>no</td>
</tr>
<tr>
<td>--column columnName</td>
<td>Column to include. Specify multiple times for multiple columns, or omit to include all columns.</td>
<td>no</td>
</tr>
<tr>
<td>--filter json</td>
<td>JSON-encoded <a href="../querying/filters.html">query filter</a>. Omit to include all rows. Only used if dumping rows.</td>
<td>no</td>
</tr>
<tr>
<td>--time-iso8601</td>
<td>Format __time column in ISO8601 format rather than long. Only used if dumping rows.</td>
<td>no</td>
</tr>
<tr>
<td>--decompress-bitmaps</td>
<td>Dump bitmaps as arrays rather than base64-encoded compressed bitmaps. Only used if dumping bitmaps.</td>
<td>no</td>
</tr>
</tbody></table>
</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.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>