blob: 8c694f80ab689cc8407e64ff0dee22ebff15e6ae [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name=viewport content="width=device-width, initial-scale=1">
<title>Apache Drill - Schema-free SQL for Hadoop, NoSQL and Cloud Storage</title>
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css"/>
<link href='https://fonts.googleapis.com/css?family=PT+Sans' rel='stylesheet' type='text/css'/>
<link href="/css/site.css" rel="stylesheet" type="text/css"/>
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/>
<link rel="icon" href="/favicon.ico" type="image/x-icon"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" language="javascript" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js" language="javascript" type="text/javascript"></script>
<script language="javascript" type="text/javascript" src="/js/modernizr.custom.js"></script>
<script language="javascript" type="text/javascript" src="/js/script.js"></script>
<script language="javascript" type="text/javascript" src="/js/drill.js"></script>
</head>
<body onResize="resized();">
<div class="page-wrap">
<div class="bui"></div>
<div id="menu" class="mw">
<ul>
<li class='toc-categories'>
<a class="expand-toc-icon" href="javascript:void(0);"><i class="fa fa-bars"></i></a>
</li>
<li class="logo"><a href="/"></a></li>
<li class='expand-menu'>
<a href="javascript:void(0);"><span class='menu-text'>Menu</span><span class='expand-icon'><i class="fa fa-bars"></i></span></a>
</li>
<li class="clear-float"></li>
<li class="nav">
<a>Language</a>
<ul>
<li>
<a style="font-weight: bold;" href="/" >en</a>
</li>
<li>
<a href="/zh/" >zh</a>
</li>
</ul>
</li>
<li class="apache-link">
<a href="/apacheASF/">Apache</a>
</li>
<li class="poweredby">
<a href="/poweredBy">Powered By</a>
</li>
<li class="documentation-menu">
<a href="/docs/">Documentation</a>
<ul>
<li><a href="/docs/getting-started/">Getting Started</a></li>
<li><a href="/docs/architecture/">Architecture</a></li>
<li><a href="/docs/tutorials/">Tutorials</a></li>
<li><a href="/docs/drill-on-yarn/">Drill-on-YARN</a></li>
<li><a href="/docs/install-drill/">Install Drill</a></li>
<li><a href="/docs/configure-drill/">Configure Drill</a></li>
<li><a href="/docs/connect-a-data-source/">Connect a Data Source</a></li>
<li><a href="/docs/odbc-jdbc-interfaces/">ODBC/JDBC Interfaces</a></li>
<li><a href="/docs/query-data/">Query Data</a></li>
<li><a href="/docs/performance-tuning/">Performance Tuning</a></li>
<li><a href="/docs/log-and-debug/">Log and Debug</a></li>
<li><a href="/docs/sql-reference/">SQL Reference</a></li>
<li><a href="/docs/data-sources-and-file-formats/">Data Sources and File Formats</a></li>
<li><a href="/docs/develop-custom-functions/">Develop Custom Functions</a></li>
<li><a href="/docs/troubleshooting/">Troubleshooting</a></li>
<li><a href="/docs/developer-information/">Developer Information</a></li>
<li><a href="/docs/release-notes/">Release Notes</a></li>
<li><a href="/docs/sample-datasets/">Sample Datasets</a></li>
<li><a href="/docs/project-bylaws/">Project Bylaws</a></li>
<li><a href="/docs/ecosystem/">Ecosystem</a></li>
</ul>
</li>
<li class='nav'>
<a href="/community-resources/">Community</a>
<ul>
<li><a href="/team/">Team</a></li>
<li><a href="/mailinglists/">Mailing Lists</a></li>
<li><a href="/community-resources/">Community Resources</a></li>
</ul>
</li>
<li class='nav'><a href="/faq/">FAQ</a></li>
<li class='nav'><a href="/blog/">Blog</a></li>
<li class="social-menu-item"><a href="https://twitter.com/apachedrill" title="apachedrill on twitter" target="_blank"><img src="/images/twitter_32_26_white.png" alt="twitter logo" align="center"></a> </li>
<li class="social-menu-item"><a href="https://join.slack.com/t/apache-drill/shared_invite/enQtNTQ4MjM1MDA3MzQ2LTJlYmUxMTRkMmUwYmQ2NTllYmFmMjU4MDk0NjYwZjBmYjg0MDZmOTE2ZDg0ZjBlYmI3Yjc4Y2I2NTQyNGVlZTc" title="Apache Drill Slack channels"
target="_blank"><img src="/images/slack-logo.svg" alt="Slack logo" align="center"></a> </li>
<li class='search-bar'>
<form id="drill-search-form">
<input type="text" placeholder="Search Apache Drill" id="drill-search-term" />
<button type="submit">
<i class="fa fa-search"></i>
</button>
</form>
</li>
<li class="d">
<a href="/download/">
<i class="fa fa-cloud-download"></i> Download
</a>
</li>
</ul>
</div>
<link href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.css" rel="stylesheet" type="text/css"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.4/slick.min.css" rel="stylesheet" type="text/css"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.4/slick-theme.min.css" rel="stylesheet" type="text/css"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.min.js" language="javascript" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.4/slick.min.js" language="javascript" type="text/javascript"></script>
<link href="/css/home.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript">
$(document).ready(function() {
$(".various").fancybox({
fitToView: true,
autoSize: true,
beforeLoad: function(){
var url= $(this.element).attr("href");
url = url.replace(new RegExp("watch\\?v=", "i"), 'v/');
url += '?fs=1&autoplay=1';
this.href = url
}
});
$('div#video-slider').slick({
autoplay: true,
autoplaySpeed: 5000,
dots: true
});
});
</script>
<div id="header" class="mw">
<div class="nav-circlepop">
<a class="aLeft prev"><span class="icon-wrap"></span></a>
<a class="aRight next"><span class="icon-wrap"></span></a>
</div>
<div class="dots"></div>
<div class="scroller">
<div class="item">
<div class="headlines tc">
<div id="video-slider" class="slider">
<div class="slide"><a class="various fancybox.iframe" href="https://www.youtube.com/embed/UOmlhExchpk"><img src="/images/thumbnail-0rurIzOkTIg.jpg" class="thumbnail" /><img src="/images/play-mq.png" class="play" /></a><div class="title">Overview of Apache Drill Query Execution</div></div>
<div class="slide"><a class="various fancybox.iframe" href="https://www.youtube.com/embed/O6WeniFSa7c"><img src="/images/thumbnail-lslA8kDr_jQ.jpg" class="thumbnail" /><img src="/images/play-mq.png" class="play" /></a><div class="title">SQL Queries on Parquet Data </div></div>
<div class="slide"><a class="various fancybox.iframe" href="https://www.youtube.com/embed/EjxCy7RRUgM"><img src="/images/thumbnail-65c42i7Xg7Q.jpg" class="thumbnail" /><img src="/images/play-mq.png" class="play" /></a><div class="title">The Rise of the Non-Relational Datastore</div></div>
<div class="slide"><a class="various fancybox.iframe" href="https://www.youtube.com/embed/hv_hf_juEiQ"><img src="/images/thumbnail-MYY51kiFPTk.jpg" class="thumbnail" /><img src="/images/play-mq.png" class="play" /></a><div class="title">Deployment Options and BI Tools</div></div>
<div class="slide"><a class="various fancybox.iframe" href="https://www.youtube.com/embed/CGkCvgRwkbs"><img src="/images/thumbnail-bhmNbH2yzhM.jpg" class="thumbnail" /><img src="/images/play-mq.png" class="play" /></a><div class="title">Connecting to Data Sources</div></div>
<div class="slide"><a class="various fancybox.iframe" href="https://www.youtube.com/embed/evQwRwXZaVk"><img src="/images/thumbnail-6pGeQOXDdD8.jpg" class="thumbnail" /><img src="/images/play-mq.png" class="play" /></a><div class="title">High Performance with a JSON Data Model</div></div>
</div>
<h1 class="main-headline">Apache Drill</h1>
<h2 id="sub-headline">Schema-free SQL Query Engine <br class="mobile-break" />for Hadoop, NoSQL and <br class="mobile-break" />Cloud Storage</h2>
<a href="/download/" class="download-headline btn btn-1 btn-1c"><span>DOWNLOAD NOW</span></a>
</div>
</div>
</div>
</div><!-- header -->
<div class="alertbar">
<div class="bookRelease">
<div><i class="fa fa-book fa-lg"></i>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__amzn.to_2N6FvPy&d=DwMFaQ&c=cskdkSMqhcnjZxdQVpwTXg&r=JHIio7I3eUbbe91YRxcNOw&m=FVOxmSwXwRbEACbYa-aH38YvJ5_op8yng62tr8g-dOQ&s=gKK9ct8VGg0pm2BRRpLzx2sXXxhW0r3i32wugQwJwdI&e=">&nbsp;Learning
Apache Drill</a>
</div>
</div>
<div class="news">News:
</div>
<div><a href="/blog/2021/08/05/drill-provider-for-airflow/">Drill provider for Airflow</a><br/><span>(James Turton)</span></div>
<div><a href="/blog/2021/07/09/streaming-data-from-the-rest-api/">Streaming data from the Drill REST API</a><br/><span>(James Turton)</span></div>
</div>
<div class="mw introWrapper">
<table class="intro" cellpadding="0" cellspacing="0" align="center">
<tbody>
<tr>
<td class="ag">
<h1>Agility</h1>
<p>Get faster insights without the overhead (data loading, schema creation and maintenance, transformations, etc.)</p>
</td>
<td class="fl">
<h1>Flexibility</h1>
<p>Analyze the multi-structured and nested data in non-relational datastores directly without transforming or restricting the data</p>
</td>
<td class="fam">
<h1>Familiarity</h1>
<p>Leverage your existing SQL skillsets and BI tools including Tableau, Qlikview, MicroStrategy, Spotfire, Excel and more</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="home-row">
<div class="big"><img src="/images/home-any.png" style="width:300px" /></div>
<div class="description">
<h1>Query any non-relational datastore (well, almost...)</h1>
<p>Drill supports a variety of NoSQL databases and file systems, including HBase, MongoDB, MapR-DB, HDFS, MapR-FS, Amazon S3, Azure Blob Storage, Google Cloud Storage, Swift, NAS and local files. A single query can join data from multiple datastores. For example, you can join a user profile collection in MongoDB with a directory of event logs in Hadoop.</p>
<p>Drill's datastore-aware optimizer automatically restructures a query plan to leverage the datastore's internal processing capabilities. In addition, Drill supports data locality, so it's a good idea to co-locate Drill and the datastore on the same nodes.</p>
</div>
<div class="small"><img src="/images/home-any.png" style="width:300px" /></div>
</div>
<div class="home-row">
<div class="description">
<h1>Kiss the overhead goodbye and enjoy data agility</h1>
<p>Traditional query engines demand significant IT intervention before data can be queried. Drill gets rid of all that overhead so that users can just query the raw data in-situ. There's no need to load the data, create and maintain schemas, or transform the data before it can be processed. Instead, simply include the path to a Hadoop directory, MongoDB collection or S3 bucket in the SQL query.</p>
<p>Drill leverages advanced query compilation and re-compilation techniques to maximize performance without requiring up-front schema knowledge.</p>
</div>
<div class="small big"><pre>SELECT * FROM <span class="code-underline">dfs.root.`/web/logs`</span>;
SELECT country, count(*)
FROM <span class="code-underline">mongodb.web.users</span>
GROUP BY country;
SELECT timestamp
FROM <span class="code-underline">s3.root.`clicks.json`</span>
WHERE user_id = 'jdoe';</pre></div>
</div>
<div class="home-row">
<div class="big"><img src="/images/home-json.png" style="width:300px" /></div>
<div class="description">
<h1>Treat your data like a table even when it's not</h1>
<p>Drill features a JSON data model that enables queries on complex/nested data as well as rapidly evolving structures commonly seen in modern applications and non-relational datastores. Drill also provides intuitive extensions to SQL so that you can easily query complex data.
<p>Drill is the only columnar query engine that supports complex data. It features an in-memory shredded columnar representation for complex data which allows Drill to achieve columnar speed with the flexibility of an internal JSON document model.</p>
</div>
<div class="small"><img src="/images/home-json.png" style="width:300px" /></div>
</div>
<div class="home-row">
<div class="description">
<h1>Keep using the BI tools you love</h1>
<p>Drill supports standard SQL. Business users, analysts and data scientists can use standard BI/analytics tools such as Tableau, Qlik, MicroStrategy, Spotfire, SAS and Excel to interact with non-relational datastores by leveraging Drill's JDBC and ODBC drivers. Developers can leverage Drill's simple REST API in their custom applications to create beautiful visualizations.</p>
<p>Drill's virtual datasets allow even the most complex, non-relational data to be mapped into BI-friendly structures which users can explore and visualize using their tool of choice.</p>
</div>
<div class="small big"><img src="/images/home-bi.png" style="width:300px" /></div>
</div>
<div class="home-row">
<div class="big"><pre>$ curl -L "&lt;url&gt;" | tar xzf -
$ cd apache-drill-&lt;version&gt;
$ bin/drill-embedded</pre></div>
<div class="description">
<h1>Scale from one laptop to 1000s of servers</h1>
<p>We made it easy to download and run Drill on your laptop. It runs on Mac, Windows and Linux, and within a minute or two you'll be exploring your data. When you're ready for prime time, deploy Drill on a cluster of commodity servers and take advantage of the world's most scalable and high performance execution engine.
<p>Drill's symmetrical architecture (all nodes are the same) and simple installation make it easy to deploy and operate very large clusters.</p>
</div>
<div class="small"><pre>$ curl &lt;url&gt; -o drill.tgz
$ tar xzf drill.tgz
$ cd apache-drill-&lt;version&gt;
$ bin/drill-embedded</pre></div>
</div>
<div class="home-row">
<div class="description">
<h1>No more waiting for coffee</h1>
<p>Drill isn't the world's first query engine, but it's the first that combines both flexibility and speed. To achieve this, Drill features a radically different architecture that enables record-breaking performance without sacrificing the flexibility offered by the JSON document model. Drill's design includes:<ul>
<li>Columnar execution engine (the first ever to support complex data!)</li>
<li>Data-driven compilation and recompilation at execution time</li>
<li>Specialized memory management that reduces memory footprint and eliminates garbage collections</li>
<li>Locality-aware execution that reduces network traffic when Drill is co-located with the datastore</li>
<li>Advanced cost-based optimizer that pushes processing into the datastore when possible</li></ul></p>
</div>
<div class="small big"><img src="/images/home-coffee.jpg" style="width:300px" /></div>
</div>
</div>
<p class="push"></p>
<div id="footer" class="mw">
<div class="wrapper">
Copyright © 2012-2020 The Apache Software Foundation, licensed under the Apache License, Version 2.0.<br>
Apache and the Apache feather logo are trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.<br/><br/>
</div>
</div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-53379651-1', 'auto');
ga('send', 'pageview');
</script>
<script type="text/javascript" src="https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-548b2caa33765e8d" async="async"></script>
</body>
</html>