CINXE.COM
Apache Drill - Schema-free SQL for Hadoop, NoSQL and Cloud Storage
<!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="/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://cdnjs.cloudflare.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="> Learning Apache Drill</a> </div> </div> <div class="news">News: </div> <div><a href="/blog/2024/06/23/drill-1.21.2-released/">Drill 1.21.2 Released</a><br/><span>(James Turton)</span></div> <div><a href="/blog/2023/04/29/drill-1.21.1-released/">Drill 1.21.1 Released</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 "<url>" | tar xzf - $ cd apache-drill-<version> $ 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 <url> -o drill.tgz $ tar xzf drill.tgz $ cd apache-drill-<version> $ 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-2022 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>