You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by ts...@apache.org on 2015/05/19 14:01:27 UTC
[1/3] drill-site git commit: Website update
Repository: drill-site
Updated Branches:
refs/heads/asf-site 763d5b9d1 -> 1e0ae3431
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/feed.xml
----------------------------------------------------------------------
diff --git a/feed.xml b/feed.xml
index f6b13ba..60b7d81 100644
--- a/feed.xml
+++ b/feed.xml
@@ -1,16 +1,109 @@
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
- <title>Apache Drill - Self-Service Data Exploration</title>
+ <title>Apache Drill - Schema-free SQL Query Engine for Hadoop, NoSQL and Cloud Storage</title>
<description>Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description.
</description>
<link>/</link>
<atom:link href="/feed.xml" rel="self" type="application/rss+xml"/>
- <pubDate>Mon, 18 May 2015 16:35:27 -0700</pubDate>
- <lastBuildDate>Mon, 18 May 2015 16:35:27 -0700</lastBuildDate>
+ <pubDate>Mon, 18 May 2015 23:51:33 -0700</pubDate>
+ <lastBuildDate>Mon, 18 May 2015 23:51:33 -0700</lastBuildDate>
<generator>Jekyll v2.5.1</generator>
<item>
+ <title>The Apache Software Foundation Announces Apache Drill 1.0</title>
+ <description><p><strong>Thousands of users adopt Open Source, enterprise-grade, schema-free SQL query engine for Apache Hadoop®, NoSQL and Cloud storage</strong></p>
+
+<p>Forest Hill, MD --19 May 2015-- The Apache Software Foundation (ASF), the all-volunteer developers, stewards, and incubators of more than 350 Open Source projects and initiatives, announced today the availability of Apache™ Drill™ 1.0, the schema-free SQL query engine for Apache Hadoop®, NoSQL and Cloud storage.</p>
+
+<p>&quot;The production-ready 1.0 release represents a significant milestone for the Drill project,&quot; said Tomer Shiran, member of the Apache Drill Project Management Committee. &quot;It is the outcome of almost three years of development involving dozens of engineers from numerous companies. Apache Drill&#39;s flexibility and ease-of-use have attracted thousands of users, and the enterprise-grade reliability, security and performance in the 1.0 release will further accelerate adoption.&quot;</p>
+
+<p>With the exponential growth of data in recent years, and the shift towards rapid application development, new data is increasingly being stored in non-relational, schema-free datastores including Hadoop, NoSQL and Cloud storage. Apache Drill revolutionizes data exploration and analytics by enabling analysts, business users, data scientists and developers to explore and analyze this data without sacrificing the flexibility and agility offered by these datastores. Drill processes the data in-situ without requiring users to define schemas or transform data.</p>
+
+<p>&quot;Drill introduces the JSON document model to the world of SQL-based analytics and BI&quot; said Jacques Nadeau, Vice President of Apache Drill. &quot;This enables users to query fixed-schema, evolving-schema and schema-free data stored in a variety of formats and datastores. The architecture of relational query engines and databases is built on the assumption that all data has a simple and static structure that’s known in advance, and this 40-year-old assumption is simply no longer valid. We designed Drill from the ground up to address the new reality.”</p>
+
+<p>Apache Drill&#39;s architecture is unique in many ways. It is the only columnar execution engine that supports complex and schema-free data, and the only execution engine that performs data-driven query compilation (and re-compilation, also known as schema discovery) during query execution. These unique capabilities enable Drill to achieve record-breaking performance with the flexibility offered by the JSON document model.</p>
+
+<p>The business intelligence (BI) partner ecosystem is embracing the power of Apache Drill. Organizations such as Information Builders, JReport (Jinfonet Software), MicroStrategy, Qlik®, Simba, Tableau, and TIBCO, are working closely with the Drill community to interoperate BI tools with Drill through standard ODBC and JDBC connectivity. This collaboration enables end users to explore data by leveraging sophisticated visualization tools and advanced analytics.</p>
+
+<p>&quot;We&#39;ve been using Apache Drill for the past six months,&quot; said Andrew Hamilton, CTO of Cardlytics. &quot;Its ease of deployment and use along with its ability to quickly process trillions of records has made it an invaluable tool inside Cardlytics. Queries that were previously insurmountable are now common occurrence. Congratulations to the Drill community on this momentous occasion.&quot;</p>
+
+<p>&quot;Drill&#39;s columnar execution engine and optimizer take full advantage of Apache Parquet&#39;s columnar storage to achieve maximum performance,&quot; said Julien Le Dem, Technical Lead of Data Processing at Twitter and Vice President of Apache Parquet. &quot;The Drill team has been a key contributor to the Parquet project, including recent enhancements to Parquet types and vectorization. The Drill team’s involvement in the Parquet community is instrumental in driving the standard.&quot;</p>
+
+<p>&quot;Apache Drill 1.0 raises the bar for secure, reliable and scalable SQL-on-Hadoop,&quot; said Piyush Bhargava, distinguished engineer, IT, Cisco Systems. &quot;Because Drill integrates with existing data virtualization and visualization tools, we expect it will improve adoption of self-service data exploration and large-scale BI queries on our advanced Hadoop platform at Cisco.&quot;</p>
+
+<p>&quot;MicroStrategy recognized early on the value of Apache Drill and is one of the first analytic platforms to certify Drill,&quot; said Tim Lang, senior executive vice president and chief technology officer at MicroStrategy Incorporated. &quot;Because Drill is designed to be used with a minimal learning curve, it opens up more complex data sets to the end user who can immediately visualize and analyze new information using MicroStrategy’s advanced capabilities.&quot;</p>
+
+<p>&quot;Apache Drill closes a gap around self-service SQL queries in Hadoop, especially on complex, dynamic NoSQL data types,&quot; said Mike Foster, Strategic Alliances Technology Officer at Qlik. &quot;Drill&#39;s performance advantages for Hadoop data access, combined with the Qlik associative experience, enables our customers to continue discovering business value from a wide range of data. Congratulations to the Apache Drill community.&quot;</p>
+
+<p>&quot;Apache Drill empowers people to access data that is traditionally difficult to work with,&quot; said Jeff Feng, product manager, Tableau. &quot;Direct access within a centralized data repository and without pre-generating metadata definitions encourages data democracy which is essential for data-driven organizations. Additionally, Drill&#39;s instant and secure access to complex data formats, such as JSON, opens up extended analytical opportunities.&quot;</p>
+
+<p>&quot;Congratulations to the Apache Drill community on the availability of 1.0,&quot; said Karl Van den Bergh, Vice President, Products and Cloud at TIBCO. &quot;Drill promises to bring low-latency access to data stored in Hadoop and HBase via standard SQL semantics. This innovation is in line with the value of Fast Data analysis, which TIBCO customers welcome and appreciate.&quot;</p>
+
+<p>&quot;The community&#39;s accomplishment is a testament to The Apache Software Foundation&#39;s ability to bring together diverse companies to work towards a common goal. None of this would have been possible without the contribution of engineers with advanced degrees and experience in relational databases, data warehousing, MPP, query optimization, Hadoop and NoSQL,&quot; added Nadeau. &quot;Our community&#39;s strength is what will solidify Apache Drill as a key data technology for the next decade. We welcome interested individuals to learn more about Drill by joining the community&#39;s mailing lists, attending upcoming talks by Drill code committers at various conferences including Hadoop Summit, NoSQL Now, Hadoop World, or at a local Apache Drill MeetUp.&quot;</p>
+
+<p>Availability and Oversight
+Apache Drill 1.0 is available immediately as a free download from <a href="http://drill.apache.org/download/">http://drill.apache.org/download/</a>. Documentation is available at <a href="http://drill.apache.org/docs/">http://drill.apache.org/docs/</a>. As with all Apache products, Apache Drill software is released under the Apache License v2.0, and is overseen by a self-selected team of active contributors to the project. A Project Management Committee (PMC) guides the project&#39;s day-to-day operations, including community development and product releases. For ways to become involved with Apache Drill, visit <a href="http://drill.apache.org/">http://drill.apache.org/</a> and @ApacheDrill on Twitter.</p>
+
+<p>About The Apache Software Foundation (ASF)
+Established in 1999, the all-volunteer Foundation oversees more than 350 leading Open Source projects, including Apache HTTP Server --the world&#39;s most popular Web server software. Through the ASF&#39;s meritocratic process known as &quot;The Apache Way,&quot; more than 500 individual Members and 4,500 Committers successfully collaborate to develop freely available enterprise-grade software, benefiting millions of users worldwide: thousands of software solutions are distributed under the Apache License; and the community actively participates in ASF mailing lists, mentoring initiatives, and ApacheCon, the Foundation&#39;s official user conference, trainings, and expo. The ASF is a US 501(c)(3) charitable organization, funded by individual donations and corporate sponsors including Bloomberg, Budget Direct, Cerner, Citrix, Cloudera, Comcast, Facebook, Google, Hortonworks, HP, IBM, InMotion Hosting, iSigma, Matt Mullenweg, Microsoft, Pivotal, Produban, WANdisco,
and Yahoo. For more information, visit <a href="http://www.apache.org/">http://www.apache.org/</a> or follow @TheASF on Twitter.</p>
+
+<p>© The Apache Software Foundation. &quot;Apache&quot;, &quot;Apache Drill&quot;, &quot;Drill&quot;, &quot;Apache Hadoop&quot;, &quot;Hadoop&quot;, &quot;Apache Parquet&quot;, &quot;Parquet&quot;, and &quot;ApacheCon&quot;, are registered trademarks or trademarks of The Apache Software Foundation. All other brands and trademarks are the property of their respective owners.</p>
+
+<p># # #</p>
+</description>
+ <pubDate>Tue, 19 May 2015 00:00:00 -0700</pubDate>
+ <link>/blog/2015/05/19/the-apache-software-foundation-announces-apache-drill-1.0/</link>
+ <guid isPermaLink="true">/blog/2015/05/19/the-apache-software-foundation-announces-apache-drill-1.0/</guid>
+
+
+ <category>blog</category>
+
+ </item>
+
+ <item>
+ <title>Drill 1.0 Released</title>
+ <description><p>We embarked on the Drill project in late 2012 with two primary objectives:</p>
+
+<ul>
+<li>Enable agility by getting rid of all the traditional overhead - namely, the need to load data, create and maintain schemas, transform data, etc. We wanted to develop a system that would support the speed and agility at which modern organizations want (or need) to operate in this era.</li>
+<li>Unlock the data housed in non-relational datastores like NoSQL, Hadoop and cloud storage, making it available not only to developers, but also business users, analysts, data scientists and anyone else who can write a SQL query or use a BI tool. Non-relational datastores are capturing an increasing share of the world&#39;s data, and it&#39;s incredibly hard to explore and analyze this data.</li>
+</ul>
+
+<p>Today we&#39;re happy to announce the availability of the production-ready Drill 1.0 release. This release addresses <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12313820&amp;version=12325568">228 JIRAs</a> on top of the 0.9 release earlier this month. Highlights include:</p>
+
+<ul>
+<li>Substantial improvements in stability, memory handling and performance</li>
+<li>Improvements in Drill CLI experience with addition of convenience shortcuts and improved colors/alignment</li>
+<li>Substantial additions to documentation including coverage of troubleshooting, performance tuning and many additions to the SQL reference</li>
+<li>Enhancements in join planning to facilitate high speed planning of large and complicated joins</li>
+<li>Add support for new context functions including <code>CURRENT_USER</code> and <code>CURRENT_SCHEMA</code></li>
+<li>Ability to treat all numbers as approximate decimals when reading JSON</li>
+<li>Enhancements in Drill&#39;s text and CSV handling to support first row skipping, configurable field/line delimiters and configurable quoting</li>
+<li>Improved JDBC compatibility (and tracing proxy for easy debugging).</li>
+<li>Ability to do JDBC connections with direct urls (avoiding ZooKeeper)</li>
+<li>Automatic selection of spooling or back-pressure exchange semantics to avoid distributed deadlocks in complex sort-heavy queries</li>
+<li>Improvements in query profile reporting</li>
+<li>Addition of <code>ILIKE(VARCHAR, PATTERN)</code> and <code>SUBSTR(VARCHAR, REGEX)</code> functions</li>
+</ul>
+
+<p>We would not have been able to reach this milestone without the tremendous effort by all the <a href="/team/">committers</a> and contributors, and we would like to congratulate the entire community on achieving this milestone. While 1.0 is an exciting milestone, it&#39;s really just the beginning of the journey. We&#39;ll release 1.1 next month, and continue with our 4-6 week release cycle, so you can count on many additional enhancements over the coming months.</p>
+
+<p>Also be sure to check out the <a href="/blog/2015/05/19/the-apache-software-foundation-announces-apache-drill-1.0/">Apache Software Foundation&#39;s press release</a>.</p>
+
+<p>Happy Drilling!<br>
+Tomer Shiran and Jacques Nadeau</p>
+</description>
+ <pubDate>Tue, 19 May 2015 00:00:00 -0700</pubDate>
+ <link>/blog/2015/05/19/drill-1.0-released/</link>
+ <guid isPermaLink="true">/blog/2015/05/19/drill-1.0-released/</guid>
+
+
+ <category>blog</category>
+
+ </item>
+
+ <item>
<title>Drill 0.9 Released</title>
<description><p>It has been about a month since the release of Drill 0.8, which included <a href="/blog/drill-0.8-released/">more than 240 improvements</a>. Today we&#39;re happy to announce the availability of Drill 0.9, providing additional enhancements and bug fixes. In fact, this release includes <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12313820&amp;version=12328813">200 resolved JIRAs</a>. Some of the noteworthy features in Drill 0.9 are:</p>
@@ -406,141 +499,5 @@ Tomer Shiran</p>
</item>
- <item>
- <title>Running SQL Queries on Amazon S3</title>
- <description><p>The functionality and sheer usefulness of Drill is growing fast. If you&#39;re a user of some of the popular BI tools out there like Tableau or SAP Lumira, now is a good time to take a look at how Drill can make your life easier, especially if you&#39;re faced with the task of quickly getting a handle on large sets of unstructured data. With schema generated on the fly, you can save a lot of time and headaches by running SQL queries on the data where it rests without knowing much about columns or formats. There&#39;s even more good news: Drill also works with data stored in the cloud. With a few simple steps, you can configure the S3 storage plugin for Drill and be off to the races running queries. In this post we&#39;ll look at how to configure Drill to access data stored in an S3 bucket.</p>
-
-<p>If you&#39;re more of a visual person, you can skip this article entirely and <a href="https://www.youtube.com/watch?v=w8gZ2nn_ZUQ">go straight to a video</a> I put together that walks through an end-to-end example with Tableau. This example is easily extended to other BI tools, as the steps are identical on the Drill side.</p>
-
-<p>At a high level, configuring Drill to access S3 bucket data is accomplished with the following steps on each node running a drillbit.</p>
-
-<ul>
-<li>Download and install the <a href="http://www.jets3t.org/">JetS3t</a> JAR files and enable them.</li>
-<li>Add your S3 credentials in the relevant XML configuration file.</li>
-<li>Configure and enable the S3 storage plugin through the Drill web interface.</li>
-<li>Connect your BI tool of choice and query away.</li>
-</ul>
-
-<p>Consult the <a href="https://cwiki.apache.org/confluence/display/DRILL/Architectural+Overview">Architectural Overview</a> for a refresher on the architecture of Drill.</p>
-
-<h3 id="prerequisites">Prerequisites</h3>
-
-<p>These steps assume you have a <a href="https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+in+10+Minutes">typical Drill cluster and ZooKeeper quorum</a> configured and running. To access data in S3, you will need an S3 bucket configured and have the required Amazon security credentials in your possession. An <a href="http://blogs.aws.amazon.com/security/post/Tx1R9KDN9ISZ0HF/Where-s-my-secret-access-key">Amazon blog post</a> has more information on how to get these from your account.</p>
-
-<h3 id="configuration-steps">Configuration Steps</h3>
-
-<p>To connect Drill to S3, all of the drillbit nodes will need to access code in the JetS3t library developed by Amazon. As of this writing, 0.9.2 is the latest version but you might want to check <a href="https://jets3t.s3.amazonaws.com/toolkit/toolkit.html">the main page</a> to see if anything has been updated. Be sure to get version 0.9.2 or later as earlier versions have a bug relating to reading Parquet data.</p>
-<div class="highlight"><pre><code class="language-bash" data-lang="bash">wget http://bitbucket.org/jmurty/jets3t/downloads/jets3t-0.9.2.zip
-cp jets3t-0.9.2/jars/jets3t-0.9.2.jar <span class="nv">$DRILL_HOME</span>/jars/3rdparty
-</code></pre></div>
-<p>Next, enable the plugin by editing the file:</p>
-<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nv">$DRILL_HOME</span>/bin/hadoop_excludes.txt
-</code></pre></div>
-<p>and removing the line <code>jets3t</code>.</p>
-
-<p>Drill will need to know your S3 credentials in order to access data there. These credentials will need to be placed in the core-site.xml file for your installation. If you already have a core-site.xml file configured for your environment, add the following parameters to it, otherwise create the file from scratch. If you do end up creating it from scratch you will need to wrap these parameters with <code>&lt;configuration&gt;</code> and <code>&lt;/configuration&gt;</code>.</p>
-<div class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="nt">&lt;property&gt;</span>
- <span class="nt">&lt;name&gt;</span>fs.s3.awsAccessKeyId<span class="nt">&lt;/name&gt;</span>
- <span class="nt">&lt;value&gt;</span>ID<span class="nt">&lt;/value&gt;</span>
-<span class="nt">&lt;/property&gt;</span>
-
-<span class="nt">&lt;property&gt;</span>
- <span class="nt">&lt;name&gt;</span>fs.s3.awsSecretAccessKey<span class="nt">&lt;/name&gt;</span>
- <span class="nt">&lt;value&gt;</span>SECRET<span class="nt">&lt;/value&gt;</span>
-<span class="nt">&lt;/property&gt;</span>
-
-<span class="nt">&lt;property&gt;</span>
- <span class="nt">&lt;name&gt;</span>fs.s3n.awsAccessKeyId<span class="nt">&lt;/name&gt;</span>
- <span class="nt">&lt;value&gt;</span>ID<span class="nt">&lt;/value&gt;</span>
-<span class="nt">&lt;/property&gt;</span>
-
-<span class="nt">&lt;property&gt;</span>
- <span class="nt">&lt;name&gt;</span>fs.s3n.awsSecretAccessKey<span class="nt">&lt;/name&gt;</span>
- <span class="nt">&lt;value&gt;</span>SECRET<span class="nt">&lt;/value&gt;</span>
-<span class="nt">&lt;/property&gt;</span>
-</code></pre></div>
-<p>The steps so far give Drill enough information to connect to the S3 service. Remember, you have to do this on all the nodes running drillbit.</p>
-
-<p>Next, let&#39;s go into the Drill web interface and enable the S3 storage plugin. In this case you only need to connect to <strong>one</strong> of the nodes because Drill&#39;s configuration is synchronized across the cluster. Complete the following steps:</p>
-
-<ol>
-<li>Point your browser to <code>http://&lt;host&gt;:8047</code></li>
-<li>Select the &#39;Storage&#39; tab.</li>
-<li>A good starting configuration for S3 can be entirely the same as the <code>dfs</code> plugin, except the connection parameter is changed to <code>s3://bucket</code>. So first select the <code>Update</code> button for <code>dfs</code>, then select the text area and copy it into the clipboard (on Windows, ctrl-A, ctrl-C works).</li>
-<li>Press <code>Back</code>, then create a new plugin by typing the name into the <code>New Storage Plugin</code>, then press <code>Create</code>. You can choose any name, but a good convention is to use <code>s3-&lt;bucketname&gt;</code> so you can easily identify it later.</li>
-<li>In the configuration area, paste the configuration you just grabbed from &#39;dfs&#39;. Change the line <code>connection: &quot;file:///&quot;</code> to <code>connection: &quot;s3://&lt;bucket&gt;&quot;</code>.</li>
-<li>Click <code>Update</code>. You should see a message that indicates success.</li>
-</ol>
-
-<p>At this point you can run queries on the data directly and you have a couple of options on how you want to access it. You can use Drill Explorer and create a custom view (based on an SQL query) that you can then access in Tableau or other BI tools, or just use Drill directly from within the tool.</p>
-
-<p>You may want to check out the <a href="http://www.youtube.com/watch?v=jNUsprJNQUg">Tableau demo</a>.</p>
-
-<p>With just a few lines of configuration, you&#39;ve just opened the vast world of data available in the Amazon cloud and reduced the amount of work you have to do in advance to access data stored there with SQL. There are even some <a href="https://aws.amazon.com/datasets">public datasets</a> available directly on S3 that are great for experimentation.</p>
-
-<p>Happy Drilling!</p>
-</description>
- <pubDate>Tue, 09 Dec 2014 10:50:01 -0800</pubDate>
- <link>/blog/2014/12/09/running-sql-queries-on-amazon-s3/</link>
- <guid isPermaLink="true">/blog/2014/12/09/running-sql-queries-on-amazon-s3/</guid>
-
-
- <category>blog</category>
-
- </item>
-
- <item>
- <title>Apache Drill Graduates to a Top-Level Project</title>
- <description><p>The Apache Software Foundation has just announced that it has promoted Drill to a top-level project at Apache, similar to other well-known projects like Apache Hadoop and httpd (the world&#39;s most popular Web server). This marks a significant accomplishment for the Drill community, and I wanted to personally thank everyone who has contributed to the project. It takes many people, and countless hours, to develop something as complex and innovative as Drill.</p>
-
-<p>In this post I wanted to reflect on the past and future of Drill.</p>
-
-<h2 id="why-we-started-drill">Why We Started Drill</h2>
-
-<h3 id="the-evolution-of-application-development-and-data">The Evolution of Application Development and Data</h3>
-
-<p>Over the last decade, organizations have been striving to become more agile and data-driven, seeking to gain competitive advantage in their markets. This trend has led to dramatic changes in the way applications are built and delivered, and in the type and volume of data that is being leveraged.</p>
-
-<p><strong>Applications</strong>: In previous decades, software development was a carefully orchestrated and planned process. The release cycles were often measured in years, and upgrades were infrequent. Today, Web and mobile applications are developed in a much more iterative fashion. The release cycles are measured in days or weeks, and upgrades are a non-issue. (What version of Salesforce.com or Google Maps are you using?)</p>
-
-<p><strong>Data</strong>: In previous decades, data was measured in MBs or GBs, and it was highly structured and denormalized. Today&#39;s data is often measured in TBs or PBs, and it tends to be multi-structured — a combination of unstructured, semi-structured and structured. The data comes from many different sources, including a variety of applications, devices and services, and its structure changes much more frequently.</p>
-
-<h3 id="a-new-generation-of-datastores">A New Generation of Datastores</h3>
-
-<p>The relational database, which was invented in 1970, was not designed for these new processes and data volumes and structures. As a result, a new generation of datastores has emerged, including HDFS, NoSQL (HBase, MongoDB, etc.) and search (Elasticsearch, Solr). These systems are schema-free (also known as &quot;dynamic schema&quot;). Applications, as opposed to DBAs, control the data structure, enabling more agility and flexibility. For example, an application developer can independently evolve the data structure with each application release (which could be daily or weekly) without filing a ticket with IT and waiting for the schema of the databae to be modified.</p>
-
-<h2 id="the-need-for-a-new-query-engine">The Need for a New Query Engine</h2>
-
-<p>With data increasingly being stored in schema-free datastores (HDFS, HBase, MongoDB, etc.) and a variety of cloud services, users need a way to explore and analyze this data, and a way to visualize it with BI tools (reports, dashboards, etc.). In 2012 we decided to embark on a journey to create the world&#39;s next-generation SQL engine. We had several high-level requirements in mind:</p>
-
-<ul>
-<li><strong>A schema-free data model.</strong> Schema-free datastores (HDFS, NoSQL, search) need a schema-free SQL engine. These datastores became popular for a reason, and we shouldn&#39;t expect organizations to sacrifice those advantages in order to enjoy SQL-based analytics and BI. Today&#39;s organizations need agility and flexibility to cope with the volume, variety and velocity associated with modern applications and data.<br></li>
-<li><strong>A standalone query engine that supports multiple data sources.</strong> Most companies now use a variety of best-of-breed datastores and services to store data. This is true not just for large Global 2000 companies, but also for small startups. For example, it is not uncommon for a startup to have data in MySQL, MongoDB, HBase and HDFS, as well as a variety of online services. ETL was hard even 10 years ago when data was static and 100x smaller than it is today, and in today&#39;s era of Big Data it&#39;s often impractical or impossible to ingest all the data into a single system.</li>
-<li><strong>Ease of use.</strong> The SQL engine can&#39;t be hard to setup and use. Analysts and developers should be able to download and use it without deploying any complex infrastructure such as Hadoop.</li>
-<li><strong>Scalability and performance.</strong> The SQL engine must support interactive queries. It can&#39;t be batch-oriented like Hive. In addition, it must be able to scale linearly from a small laptop or virtual machine to a large cluster with hundreds or thousands of powerful servers.</li>
-</ul>
-
-<p>With these requirements in mind, we decided to incubate a new project in 2012 in the Apache Software Foundation so that a community of vendors and developers could come together and develop the technology. (One little known fact is that the name &quot;Drill&quot; was actually suggested by Google engineers due to its inspiration from Google&#39;s Dremel execution engine.)</p>
-
-<p>After almost two years of research and development, we released Drill 0.4 in August, and continued with monthly releases since then.</p>
-
-<h2 id="what&#39;s-next">What&#39;s Next</h2>
-
-<p>Graduating to a top-level project is a significant milestone, but it&#39;s really just the beginning of the journey. In fact, we&#39;re currently wrapping up Drill 0.7, which includes hundreds of fixes and enhancements, and we expect to release that in the next couple weeks.</p>
-
-<p>Drill is currently being used by dozens of organizations, ranging from small startups to some of the largest Fortune 100s. These organizations are already gaining tremendous business value with Drill. As we march towards a 1.0 release early next year, these organizations are helping us shape the project and ensure that it meets the needs of a broad range of organizations as well as users (business analysts, technical analysts, data scientists and application developers). I would like to encourage you to join the ride today by <a href="http://drill.apache.org/download/">downloading Drill</a> and <a href="mailto:user@drill.apache.org">letting us know</a> what you think.</p>
-
-<p>Happy Drilling!<br>
-Tomer Shiran</p>
-</description>
- <pubDate>Tue, 02 Dec 2014 08:00:00 -0800</pubDate>
- <link>/blog/2014/12/02/drill-top-level-project/</link>
- <guid isPermaLink="true">/blog/2014/12/02/drill-top-level-project/</guid>
-
-
- <category>blog</category>
-
- </item>
-
</channel>
</rss>
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index a1e2bdc..40d0b98 100644
--- a/index.html
+++ b/index.html
@@ -7,7 +7,7 @@
<meta name=viewport content="width=device-width, initial-scale=1">
-<title>Apache Drill - Self-Service Data Exploration</title>
+<title>Apache Drill - Schema-free SQL Query Engine for Hadoop, NoSQL and Cloud Storage</title>
<link href="//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"/>
@@ -135,7 +135,7 @@ $(document).ready(function() {
this.href = url
}
});
-
+
$('div#video-slider').slick({
autoplay: true,
autoplaySpeed: 5000,
@@ -163,7 +163,7 @@ $(document).ready(function() {
<div class="slide"><a class="various fancybox.iframe" href="//www.youtube.com/watch?v=6pGeQOXDdD8"><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 Cloud Storage</h2>
+ <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>
@@ -171,7 +171,7 @@ $(document).ready(function() {
</div><!-- header -->
<div class="alertbar">
- <div class="news">News:</div><div><a href="/blog/2015/05/04/drill-0.9-released/">Drill 0.9 Released</a><br/><span>(Tomer Shiran, Jacques Nadeau)</span></div><div><a href="/blog/2015/04/30/apache-parquet-graudates-to-a-top-level-project/">Apache Parquet Graduates to a Top-Level Project</a><br/><span>(Tomer Shiran)</span></div>
+ <div class="news">News:</div><div><a href="/blog/2015/05/19/the-apache-software-foundation-announces-apache-drill-1.0/">The ASF Announces Drill 1.0</a><br/><span>(Tomer Shiran)</span></div><div><a href="/blog/2015/05/19/drill-1.0-released/">Drill 1.0 Released</a><br/><span>(Tomer Shiran, Jacques Nadeau)</span></div>
</div>
<div class="mw introWrapper">
[3/3] drill-site git commit: Website update
Posted by ts...@apache.org.
Website update
Project: http://git-wip-us.apache.org/repos/asf/drill-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill-site/commit/1e0ae343
Tree: http://git-wip-us.apache.org/repos/asf/drill-site/tree/1e0ae343
Diff: http://git-wip-us.apache.org/repos/asf/drill-site/diff/1e0ae343
Branch: refs/heads/asf-site
Commit: 1e0ae3431cd2520736dca8234d447e2448131aa4
Parents: 763d5b9
Author: Tomer Shiran <ts...@gmail.com>
Authored: Mon May 18 23:54:53 2015 -0700
Committer: Tomer Shiran <ts...@gmail.com>
Committed: Mon May 18 23:54:53 2015 -0700
----------------------------------------------------------------------
blog/2015/05/19/drill-1.0-released/index.html | 63 ++---
.../index.html | 213 ++++++++++++++++
blog/index.html | 10 +
css/site.css | 2 +-
docs/data-type-conversion/index.html | 6 +-
docs/date-time-and-timestamp/index.html | 74 +++---
.../index.html | 46 ++--
docs/img/loginSandBox.png | Bin 67090 -> 26594 bytes
docs/img/vbImport.png | Bin 85744 -> 95211 bytes
docs/img/vbMaprSetting.png | Bin 56436 -> 77126 bytes
docs/img/vbNetwork.png | Bin 30826 -> 61818 bytes
.../index.html | 51 +---
.../index.html | 250 ++++++++++---------
.../index.html | 223 ++++++++---------
.../index.html | 234 +++++++++--------
docs/supported-data-types/index.html | 42 ++--
download/index.html | 12 +-
feed.xml | 235 +++++++----------
index.html | 8 +-
19 files changed, 818 insertions(+), 651 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/blog/2015/05/19/drill-1.0-released/index.html
----------------------------------------------------------------------
diff --git a/blog/2015/05/19/drill-1.0-released/index.html b/blog/2015/05/19/drill-1.0-released/index.html
index 18d1587..842ab64 100644
--- a/blog/2015/05/19/drill-1.0-released/index.html
+++ b/blog/2015/05/19/drill-1.0-released/index.html
@@ -146,59 +146,30 @@
<li>Unlock the data housed in non-relational datastores like NoSQL, Hadoop and cloud storage, making it available not only to developers, but also business users, analysts, data scientists and anyone else who can write a SQL query or use a BI tool. Non-relational datastores are capturing an increasing share of the world's data, and it's incredibly hard to explore and analyze this data.</li>
</ul>
-<p>Today we're happy to announce the availability of the production-ready Drill 1.0 release. This release addresses <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12313820&version=12325568">228 JIRAs</a> on top of the 0.9 release earlier this month.</p>
+<p>Today we're happy to announce the availability of the production-ready Drill 1.0 release. This release addresses <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12313820&version=12325568">228 JIRAs</a> on top of the 0.9 release earlier this month. Highlights include:</p>
+
+<ul>
+<li>Substantial improvements in stability, memory handling and performance</li>
+<li>Improvements in Drill CLI experience with addition of convenience shortcuts and improved colors/alignment</li>
+<li>Substantial additions to documentation including coverage of troubleshooting, performance tuning and many additions to the SQL reference</li>
+<li>Enhancements in join planning to facilitate high speed planning of large and complicated joins</li>
+<li>Add support for new context functions including <code>CURRENT_USER</code> and <code>CURRENT_SCHEMA</code></li>
+<li>Ability to treat all numbers as approximate decimals when reading JSON</li>
+<li>Enhancements in Drill's text and CSV handling to support first row skipping, configurable field/line delimiters and configurable quoting</li>
+<li>Improved JDBC compatibility (and tracing proxy for easy debugging).</li>
+<li>Ability to do JDBC connections with direct urls (avoiding ZooKeeper)</li>
+<li>Automatic selection of spooling or back-pressure exchange semantics to avoid distributed deadlocks in complex sort-heavy queries</li>
+<li>Improvements in query profile reporting</li>
+<li>Addition of <code>ILIKE(VARCHAR, PATTERN)</code> and <code>SUBSTR(VARCHAR, REGEX)</code> functions</li>
+</ul>
<p>We would not have been able to reach this milestone without the tremendous effort by all the <a href="/team/">committers</a> and contributors, and we would like to congratulate the entire community on achieving this milestone. While 1.0 is an exciting milestone, it's really just the beginning of the journey. We'll release 1.1 next month, and continue with our 4-6 week release cycle, so you can count on many additional enhancements over the coming months.</p>
-<p>We have included the press release issued by the Apache Software Foundation below.</p>
+<p>Also be sure to check out the <a href="/blog/2015/05/19/the-apache-software-foundation-announces-apache-drill-1.0/">Apache Software Foundation's press release</a>.</p>
<p>Happy Drilling!<br>
Tomer Shiran and Jacques Nadeau</p>
-<hr />
-
-<h1 id="the-apache-software-foundation-announces-apache™-drill™-1.0">The Apache Software Foundation Announces Apache™ Drill™ 1.0</h1>
-
-<h2 id="thousands-of-users-adopt-open-source,-enterprise-grade,-schema-free-sql-query-engine-for-apache-hadoop®,-nosql-and-cloud-storage.">Thousands of users adopt Open Source, enterprise-grade, schema-free SQL query engine for Apache Hadoop®, NoSQL and Cloud storage.</h2>
-
-<p>Forest Hill, MD --19 May 2015-- The Apache Software Foundation (ASF), the all-volunteer developers, stewards, and incubators of more than 350 Open Source projects and initiatives, announced today the availability of Apache™ Drill™ 1.0, the schema-free SQL query engine for Apache Hadoop®, NoSQL and Cloud storage.</p>
-
-<p>"The production-ready 1.0 release represents a significant milestone for the Drill project," said Tomer Shiran, member of the Apache Drill Project Management Committee. "It is the outcome of almost three years of development involving dozens of engineers from numerous companies. Apache Drill's flexibility and ease-of-use have attracted thousands of users, and the enterprise-grade reliability, security and performance in the 1.0 release will further accelerate adoption."</p>
-
-<p>With the exponential growth of data in recent years, and the shift towards rapid application development, new data is increasingly being stored in non-relational, schema-free datastores including Hadoop, NoSQL and Cloud storage. Apache Drill revolutionizes data exploration and analytics by enabling analysts, business users, data scientists and developers to explore and analyze this data without sacrificing the flexibility and agility offered by these datastores. Drill processes the data in-situ without requiring users to define schemas or transform data.</p>
-
-<p>"Drill introduces the JSON document model to the world of SQL-based analytics and BI" said Jacques Nadeau, Vice President of Apache Drill. "This enables users to query fixed-schema, evolving-schema and schema-free data stored in a variety of formats and datastores. The architecture of relational query engines and databases is built on the assumption that all data has a simple and static structure that’s known in advance, and this 40-year-old assumption is simply no longer valid. We designed Drill from the ground up to address the new reality.”</p>
-
-<p>Apache Drill's architecture is unique in many ways. It is the only columnar execution engine that supports complex and schema-free data, and the only execution engine that performs data-driven query compilation (and re-compilation, also known as schema discovery) during query execution. These unique capabilities enable Drill to achieve record-breaking performance with the flexibility offered by the JSON document model.</p>
-
-<p>The business intelligence (BI) partner ecosystem is embracing the power of Apache Drill. Organizations such as Information Builders, JReport (Jinfonet Software), MicroStrategy, Qlik®, Simba, Tableau, and TIBCO, are working closely with the Drill community to interoperate BI tools with Drill through standard ODBC and JDBC connectivity. This collaboration enables end users to explore data by leveraging sophisticated visualization tools and advanced analytics.</p>
-
-<p>"We've been using Apache Drill for the past six months," said Andrew Hamilton, CTO of Cardlytics. "Its ease of deployment and use along with its ability to quickly process trillions of records has made it an invaluable tool inside Cardlytics. Queries that were previously insurmountable are now common occurrence. Congratulations to the Drill community on this momentous occasion."</p>
-
-<p>"Drill's columnar execution engine and optimizer take full advantage of Apache Parquet's columnar storage to achieve maximum performance," said Julien Le Dem, Technical Lead of Data Processing at Twitter and Vice President of Apache Parquet. "The Drill team has been a key contributor to the Parquet project, including recent enhancements to Parquet types and vectorization. The Drill team’s involvement in the Parquet community is instrumental in driving the standard."</p>
-
-<p>"Apache Drill 1.0 raises the bar for secure, reliable and scalable SQL-on-Hadoop," said Piyush Bhargava, distinguished engineer, IT, Cisco Systems. "Because Drill integrates with existing data virtualization and visualization tools, we expect it will improve adoption of self-service data exploration and large-scale BI queries on our advanced Hadoop platform at Cisco."</p>
-
-<p>"MicroStrategy recognized early on the value of Apache Drill and is one of the first analytic platforms to certify Drill," said Tim Lang, senior executive vice president and chief technology officer at MicroStrategy Incorporated. "Because Drill is designed to be used with a minimal learning curve, it opens up more complex data sets to the end user who can immediately visualize and analyze new information using MicroStrategy’s advanced capabilities."</p>
-
-<p>"Apache Drill closes a gap around self-service SQL queries in Hadoop, especially on complex, dynamic NoSQL data types," said Mike Foster, Strategic Alliances Technology Officer at Qlik. "Drill's performance advantages for Hadoop data access, combined with the Qlik associative experience, enables our customers to continue discovering business value from a wide range of data. Congratulations to the Apache Drill community."</p>
-
-<p>"Apache Drill empowers people to access data that is traditionally difficult to work with," said Jeff Feng, product manager, Tableau. "Direct access within a centralized data repository and without pre-generating metadata definitions encourages data democracy which is essential for data-driven organizations. Additionally, Drill's instant and secure access to complex data formats, such as JSON, opens up extended analytical opportunities."</p>
-
-<p>"Congratulations to the Apache Drill community on the availability of 1.0," said Karl Van den Bergh, Vice President, Products and Cloud at TIBCO. "Drill promises to bring low-latency access to data stored in Hadoop and HBase via standard SQL semantics. This innovation is in line with the value of Fast Data analysis, which TIBCO customers welcome and appreciate."</p>
-
-<p>"The community's accomplishment is a testament to The Apache Software Foundation's ability to bring together diverse companies to work towards a common goal. None of this would have been possible without the contribution of engineers with advanced degrees and experience in relational databases, data warehousing, MPP, query optimization, Hadoop and NoSQL," added Nadeau. "Our community's strength is what will solidify Apache Drill as a key data technology for the next decade. We welcome interested individuals to learn more about Drill by joining the community's mailing lists, attending upcoming talks by Drill code committers at various conferences including Hadoop Summit, NoSQL Now, Hadoop World, or at a local Apache Drill MeetUp."</p>
-
-<p>Availability and Oversight
-Apache Drill 1.0 is available immediately as a free download from <a href="http://drill.apache.org/download/">http://drill.apache.org/download/</a>. Documentation is available at <a href="http://drill.apache.org/docs/">http://drill.apache.org/docs/</a>. As with all Apache products, Apache Drill software is released under the Apache License v2.0, and is overseen by a self-selected team of active contributors to the project. A Project Management Committee (PMC) guides the project's day-to-day operations, including community development and product releases. For ways to become involved with Apache Drill, visit <a href="http://drill.apache.org/">http://drill.apache.org/</a> and @ApacheDrill on Twitter.</p>
-
-<p>About The Apache Software Foundation (ASF)
-Established in 1999, the all-volunteer Foundation oversees more than 350 leading Open Source projects, including Apache HTTP Server --the world's most popular Web server software. Through the ASF's meritocratic process known as "The Apache Way," more than 500 individual Members and 4,500 Committers successfully collaborate to develop freely available enterprise-grade software, benefiting millions of users worldwide: thousands of software solutions are distributed under the Apache License; and the community actively participates in ASF mailing lists, mentoring initiatives, and ApacheCon, the Foundation's official user conference, trainings, and expo. The ASF is a US 501(c)(3) charitable organization, funded by individual donations and corporate sponsors including Bloomberg, Budget Direct, Cerner, Citrix, Cloudera, Comcast, Facebook, Google, Hortonworks, HP, IBM, InMotion Hosting, iSigma, Matt Mullenweg, Microsoft, Pivotal, Produban, WANdisco, and Yahoo. For more
information, visit <a href="http://www.apache.org/">http://www.apache.org/</a> or follow @TheASF on Twitter.</p>
-
-<p>© The Apache Software Foundation. "Apache", "Apache Drill", "Drill", "Apache Hadoop", "Hadoop", "Apache Parquet", "Parquet", and "ApacheCon", are registered trademarks or trademarks of The Apache Software Foundation. All other brands and trademarks are the property of their respective owners.</p>
-
-<h1 id="#">#</h1>
-
</article>
<div id="disqus_thread"></div>
<script type="text/javascript">
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/blog/2015/05/19/the-apache-software-foundation-announces-apache-drill-1.0/index.html
----------------------------------------------------------------------
diff --git a/blog/2015/05/19/the-apache-software-foundation-announces-apache-drill-1.0/index.html b/blog/2015/05/19/the-apache-software-foundation-announces-apache-drill-1.0/index.html
new file mode 100644
index 0000000..37a9cb3
--- /dev/null
+++ b/blog/2015/05/19/the-apache-software-foundation-announces-apache-drill-1.0/index.html
@@ -0,0 +1,213 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+
+<meta charset="UTF-8">
+<meta name=viewport content="width=device-width, initial-scale=1">
+
+
+<title>The Apache Software Foundation Announces Apache Drill 1.0 - Apache Drill</title>
+
+<link href="//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="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" language="javascript" type="text/javascript"></script>
+<script src="//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="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/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/query-audit-logging/">Query Audit Logging</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/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/archived-pages/">Archived Pages</a></li>
+
+ <li><a href="/docs/progress-reports/">Progress Reports</a></li>
+
+ <li><a href="/docs/project-bylaws/">Project Bylaws</a></li>
+
+ <li><a href="/docs/log-and-debug/">Log and Debug</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 id="twitter-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='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="/css/content.css" rel="stylesheet" type="text/css">
+
+<div class="post int_text">
+ <header class="post-header">
+ <div class="int_title">
+ <h1 class="post-title">The Apache Software Foundation Announces Apache Drill 1.0</h1>
+ </div>
+ <p class="post-meta">
+
+
+
+ <strong>Author:</strong> Tomer Shiran (Founder, PMC Member and Committer, Apache Drill)<br />
+
+<strong>Date:</strong> May 19, 2015
+</p>
+ </header>
+ <div class="addthis_sharing_toolbox"></div>
+
+ <article class="post-content">
+ <p><strong>Thousands of users adopt Open Source, enterprise-grade, schema-free SQL query engine for Apache Hadoop®, NoSQL and Cloud storage</strong></p>
+
+<p>Forest Hill, MD --19 May 2015-- The Apache Software Foundation (ASF), the all-volunteer developers, stewards, and incubators of more than 350 Open Source projects and initiatives, announced today the availability of Apache™ Drill™ 1.0, the schema-free SQL query engine for Apache Hadoop®, NoSQL and Cloud storage.</p>
+
+<p>"The production-ready 1.0 release represents a significant milestone for the Drill project," said Tomer Shiran, member of the Apache Drill Project Management Committee. "It is the outcome of almost three years of development involving dozens of engineers from numerous companies. Apache Drill's flexibility and ease-of-use have attracted thousands of users, and the enterprise-grade reliability, security and performance in the 1.0 release will further accelerate adoption."</p>
+
+<p>With the exponential growth of data in recent years, and the shift towards rapid application development, new data is increasingly being stored in non-relational, schema-free datastores including Hadoop, NoSQL and Cloud storage. Apache Drill revolutionizes data exploration and analytics by enabling analysts, business users, data scientists and developers to explore and analyze this data without sacrificing the flexibility and agility offered by these datastores. Drill processes the data in-situ without requiring users to define schemas or transform data.</p>
+
+<p>"Drill introduces the JSON document model to the world of SQL-based analytics and BI" said Jacques Nadeau, Vice President of Apache Drill. "This enables users to query fixed-schema, evolving-schema and schema-free data stored in a variety of formats and datastores. The architecture of relational query engines and databases is built on the assumption that all data has a simple and static structure that’s known in advance, and this 40-year-old assumption is simply no longer valid. We designed Drill from the ground up to address the new reality.”</p>
+
+<p>Apache Drill's architecture is unique in many ways. It is the only columnar execution engine that supports complex and schema-free data, and the only execution engine that performs data-driven query compilation (and re-compilation, also known as schema discovery) during query execution. These unique capabilities enable Drill to achieve record-breaking performance with the flexibility offered by the JSON document model.</p>
+
+<p>The business intelligence (BI) partner ecosystem is embracing the power of Apache Drill. Organizations such as Information Builders, JReport (Jinfonet Software), MicroStrategy, Qlik®, Simba, Tableau, and TIBCO, are working closely with the Drill community to interoperate BI tools with Drill through standard ODBC and JDBC connectivity. This collaboration enables end users to explore data by leveraging sophisticated visualization tools and advanced analytics.</p>
+
+<p>"We've been using Apache Drill for the past six months," said Andrew Hamilton, CTO of Cardlytics. "Its ease of deployment and use along with its ability to quickly process trillions of records has made it an invaluable tool inside Cardlytics. Queries that were previously insurmountable are now common occurrence. Congratulations to the Drill community on this momentous occasion."</p>
+
+<p>"Drill's columnar execution engine and optimizer take full advantage of Apache Parquet's columnar storage to achieve maximum performance," said Julien Le Dem, Technical Lead of Data Processing at Twitter and Vice President of Apache Parquet. "The Drill team has been a key contributor to the Parquet project, including recent enhancements to Parquet types and vectorization. The Drill team’s involvement in the Parquet community is instrumental in driving the standard."</p>
+
+<p>"Apache Drill 1.0 raises the bar for secure, reliable and scalable SQL-on-Hadoop," said Piyush Bhargava, distinguished engineer, IT, Cisco Systems. "Because Drill integrates with existing data virtualization and visualization tools, we expect it will improve adoption of self-service data exploration and large-scale BI queries on our advanced Hadoop platform at Cisco."</p>
+
+<p>"MicroStrategy recognized early on the value of Apache Drill and is one of the first analytic platforms to certify Drill," said Tim Lang, senior executive vice president and chief technology officer at MicroStrategy Incorporated. "Because Drill is designed to be used with a minimal learning curve, it opens up more complex data sets to the end user who can immediately visualize and analyze new information using MicroStrategy’s advanced capabilities."</p>
+
+<p>"Apache Drill closes a gap around self-service SQL queries in Hadoop, especially on complex, dynamic NoSQL data types," said Mike Foster, Strategic Alliances Technology Officer at Qlik. "Drill's performance advantages for Hadoop data access, combined with the Qlik associative experience, enables our customers to continue discovering business value from a wide range of data. Congratulations to the Apache Drill community."</p>
+
+<p>"Apache Drill empowers people to access data that is traditionally difficult to work with," said Jeff Feng, product manager, Tableau. "Direct access within a centralized data repository and without pre-generating metadata definitions encourages data democracy which is essential for data-driven organizations. Additionally, Drill's instant and secure access to complex data formats, such as JSON, opens up extended analytical opportunities."</p>
+
+<p>"Congratulations to the Apache Drill community on the availability of 1.0," said Karl Van den Bergh, Vice President, Products and Cloud at TIBCO. "Drill promises to bring low-latency access to data stored in Hadoop and HBase via standard SQL semantics. This innovation is in line with the value of Fast Data analysis, which TIBCO customers welcome and appreciate."</p>
+
+<p>"The community's accomplishment is a testament to The Apache Software Foundation's ability to bring together diverse companies to work towards a common goal. None of this would have been possible without the contribution of engineers with advanced degrees and experience in relational databases, data warehousing, MPP, query optimization, Hadoop and NoSQL," added Nadeau. "Our community's strength is what will solidify Apache Drill as a key data technology for the next decade. We welcome interested individuals to learn more about Drill by joining the community's mailing lists, attending upcoming talks by Drill code committers at various conferences including Hadoop Summit, NoSQL Now, Hadoop World, or at a local Apache Drill MeetUp."</p>
+
+<p>Availability and Oversight
+Apache Drill 1.0 is available immediately as a free download from <a href="http://drill.apache.org/download/">http://drill.apache.org/download/</a>. Documentation is available at <a href="http://drill.apache.org/docs/">http://drill.apache.org/docs/</a>. As with all Apache products, Apache Drill software is released under the Apache License v2.0, and is overseen by a self-selected team of active contributors to the project. A Project Management Committee (PMC) guides the project's day-to-day operations, including community development and product releases. For ways to become involved with Apache Drill, visit <a href="http://drill.apache.org/">http://drill.apache.org/</a> and @ApacheDrill on Twitter.</p>
+
+<p>About The Apache Software Foundation (ASF)
+Established in 1999, the all-volunteer Foundation oversees more than 350 leading Open Source projects, including Apache HTTP Server --the world's most popular Web server software. Through the ASF's meritocratic process known as "The Apache Way," more than 500 individual Members and 4,500 Committers successfully collaborate to develop freely available enterprise-grade software, benefiting millions of users worldwide: thousands of software solutions are distributed under the Apache License; and the community actively participates in ASF mailing lists, mentoring initiatives, and ApacheCon, the Foundation's official user conference, trainings, and expo. The ASF is a US 501(c)(3) charitable organization, funded by individual donations and corporate sponsors including Bloomberg, Budget Direct, Cerner, Citrix, Cloudera, Comcast, Facebook, Google, Hortonworks, HP, IBM, InMotion Hosting, iSigma, Matt Mullenweg, Microsoft, Pivotal, Produban, WANdisco, and Yahoo. For more
information, visit <a href="http://www.apache.org/">http://www.apache.org/</a> or follow @TheASF on Twitter.</p>
+
+<p>© The Apache Software Foundation. "Apache", "Apache Drill", "Drill", "Apache Hadoop", "Hadoop", "Apache Parquet", "Parquet", and "ApacheCon", are registered trademarks or trademarks of The Apache Software Foundation. All other brands and trademarks are the property of their respective owners.</p>
+
+<p># # #</p>
+
+ </article>
+ <div id="disqus_thread"></div>
+ <script type="text/javascript">
+ /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
+ var disqus_shortname = 'drill'; // required: replace example with your forum shortname
+
+ /* * * DON'T EDIT BELOW THIS LINE * * */
+ (function() {
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+ dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+ </script>
+ <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
+
+</div>
+<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-548b2caa33765e8d" async="async"></script>
+
+ </div>
+ <p class="push"></p>
+<div id="footer" class="mw">
+<div class="wrapper">
+Copyright © 2012-2014 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','//www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-53379651-1', 'auto');
+ga('send', 'pageview');
+</script>
+
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/blog/index.html
----------------------------------------------------------------------
diff --git a/blog/index.html b/blog/index.html
index 2bb1cbb..04294e1 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -119,6 +119,16 @@
</div>
<div class="int_text" align="left"><!-- previously: site.posts -->
+<p><a class="post-link" href="/blog/2015/05/19/the-apache-software-foundation-announces-apache-drill-1.0/">The Apache Software Foundation Announces Apache Drill 1.0</a><br/>
+<span class="post-date">Posted on May 19, 2015
+by Tomer Shiran</span>
+<br/>The Apache Software Foundation announced today the availability of Apache Drill 1.0, the schema-free SQL query engine for Apache Hadoop, NoSQL and cloud storage.</p>
+<!-- previously: site.posts -->
+<p><a class="post-link" href="/blog/2015/05/19/drill-1.0-released/">Drill 1.0 Released</a><br/>
+<span class="post-date">Posted on May 19, 2015
+by Tomer Shiran, Jacques Nadeau</span>
+<br/>Drill 1.0 has been released, representing a major milestone for the Drill community. Drill in now production-ready, making it easier than ever to explore and analyze data in non-relational datastores.</p>
+<!-- previously: site.posts -->
<p><a class="post-link" href="/blog/2015/05/04/drill-0.9-released/">Drill 0.9 Released</a><br/>
<span class="post-date">Posted on May 4, 2015
by Tomer Shiran, Jacques Nadeau</span>
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/css/site.css
----------------------------------------------------------------------
diff --git a/css/site.css b/css/site.css
index 52b4519..6a0af9e 100644
--- a/css/site.css
+++ b/css/site.css
@@ -1 +1 @@
-*{outline:none}html{height:100%}body{font-family:'PT Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;padding:0;margin:0;height:100%}.page-wrap{min-height:100%;margin-bottom:-60px}.mw{min-width:999px;width:100%}.nw{white-space:nowrap}a.anchor{display:none;font-size:0px;position:absolute;margin-top:-50px}.home_txt a.anchor{margin-top:-90px}#menu{position:fixed;top:0;width:100%;z-index:5}#menu ul{background:#051221;display:block;font-size:0px;list-style:none;overflow:hidden;padding:0;text-align:right}#menu ul li{display:inline-block;font-size:14px;margin:0;padding:0}#menu ul li.logo{float:left;padding-left:30px}#menu ul li.logo:hover{background:none}#menu ul li.logo a{background:url(../images/apachedrill.png) no-repeat center;background-size:auto 27px;display:block;height:50px;padding:0;width:80px}#menu ul li a{color:#FFF;text-decoration:none;line-height:50px;padding:14px 20px}#menu ul li.d,#menu ul li.d:hover{background-color:#4aaf4c;font-size:12px;text-transform:uppercase}#menu
ul li.d a .fam{position:relative;right:8px;font-size:14px}#menu ul li.d:hover{background-color:#348436}#menu ul li.d *{cursor:pointer}#menu ul li.d a{padding:0px 30px 0 40px;display:block}#menu ul li.l{cursor:pointer}#menu ul li.l span{background:url(../images/len.png) no-repeat center;background-size:auto 16px;display:block;line-height:50px;padding:0 20px;width:16px}#menu ul li.l.open{background-color:#145aa8}#menu ul li#twitter-menu-item{width:30px;padding-left:2px;padding-right:10px}#menu ul li#twitter-menu-item a{padding:10px}#menu ul li#twitter-menu-item img{width:22px}#menu ul li ul{background:#1a6bc7;display:none;margin:0;padding:0;position:absolute;text-align:left}#menu ul li ul li{display:block}#menu ul li ul li a{display:block;line-height:30px;padding:3px 20px}#menu ul li ul li a:hover{background:#145aa8}#menu ul li:hover{background:#1a6bc7}#menu ul li:hover ul{display:block}#menu ul li.clear-float{display:none}#subhead{background:#145aa8;color:#FFF;font-size:12px;font-we
ight:bold;height:40px;line-height:40px;left:0px;letter-spacing:1px;right:0px;position:fixed;text-align:center;text-transform:uppercase;top:10px;z-index:4;-webkit-transition:all 0.3s;transition:all 0.3s}#subhead.show{top:50px}#subhead ul{list-style:none;margin:0;padding:0}#subhead ul li{display:inline-block;list-style:none;margin:0;padding:0 35px 0 35px}#subhead ul li a{background-size:16px auto;background-position:left center;background-repeat:no-repeat;color:#FFF;display:block;padding:0 0 0 25px;text-decoration:none}#subhead ul li.ag a{background-image:url(../images/agility-w.png)}#subhead ul li.fl a{background-image:url(../images/flexibility-w.png)}#subhead ul li.fam a{background-image:url(../images/familiarity-w.png)}#header{background:url(../images/reel-bg.png) no-repeat;background-size:cover;height:300px;overflow:hidden;position:relative}#header .scroller{margin-left:0px;overflow:hidden}#header .scroller .item{float:left;height:300px;position:relative;width:100%;z-index:1}#head
er .scroller .item p a{color:#FFF;font-weight:bold;overflow:hidden;text-decoration:none;position:relative;display:inline-block;outline:none;vertical-align:bottom;text-decoration:none;white-space:nowrap}#header .scroller .item p a::before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;background:rgba(149,165,166,0.4);content:'';-webkit-transition:-webkit-transform 0.3s;transition:transform 0.3s;-webkit-transform:scaleY(0.618) translateX(-100%);transform:scaleY(0.618) translateX(-100%)}#header .scroller .item p a:hover::before,#header .scroller .item p a:focus::before{-webkit-transform:scaleY(0.618) translateX(0);transform:scaleY(0.618) translateX(0)}#header .scroller .item .tc{color:#FFF;margin-left:80px;position:relative;width:900px;margin:0 auto}#header .scroller .item .tc h1,#header .scroller .item .tc h2{font-size:36px;font-weight:lighter;margin:0 0 8px 0;padding:0}#header .scroller .item .tc h2{font-size:18px}#header .scroller .item .tc p{font-size:14px;font-we
ight:lighter;line-height:24px;margin:0;padding:0}#header .scroller .item .btn{background:none;border:2px solid #fff;cursor:pointer;color:#FFF;display:inline-block;font-size:12px;font-weight:bold;outline:none;margin-top:18px;position:relative;padding:5px 30px;text-decoration:none;text-transform:uppercase;-webkit-transition:all 0.3s;-moz-transition:all 0.3s;transition:all 0.3s}#header .scroller .item .btn:after{content:'';position:absolute;z-index:-1;-webkit-transition:all 0.3s;-moz-transition:all 0.3s;transition:all 0.3s}#header .scroller .item .btn-1c:after{width:0%;height:100%;top:0;left:0;background:#fff}#header .scroller .item .btn-1c:hover,#header .scroller .item .btn-1c:active{color:#0e83cd}#header .scroller .item .btn-1c:hover:after,#header .scroller .item .btn-1c:active:after{width:100%}#header .aLeft{cursor:pointer;height:30px;left:20px;margin-top:-15px;position:absolute;top:50%;width:30px;z-index:2}#header .aRight{cursor:pointer;height:30px;right:20px;margin-top:-15px;posit
ion:absolute;top:50%;width:30px;z-index:2}.dots{bottom:30px;right:80px;position:absolute;z-index:2}.dots .dot{border-radius:50%;background-color:transparent;box-shadow:inset 0 0 0 2px white;-webkit-transition:box-shadow 0.3s ease;transition:box-shadow 0.3s ease;cursor:pointer;display:inline-block;height:10px;margin-left:10px;width:10px}.dots .dot:hover,.dots .dot:focus{box-shadow:inset 0 0 0 2px rgba(255,255,255,0.6)}.dots .dot.sel{box-shadow:inset 0 0 0 8px white}div.alertbar{background-color:#ffc;text-align:center;display:block;padding:10px;border-bottom:solid 1px #cc9}div.alertbar .hor-bar:after{content:"|"}span.strong{font-weight:bold}.introWrapper{border-bottom:1px solid #CCC}table.intro{background:url(../images/intro-bg.gif) no-repeat center;table-layout:fixed;text-align:center;width:940px}table.intro td{background-position:center 25px;background-repeat:no-repeat;background-size:25px auto;padding:65px 0 0 0;position:relative;vertical-align:top}table.intro td.ag{background-imag
e:url(../images/agility.png)}table.intro td.fl{background-image:url(../images/flexibility.png)}table.intro td.fam{background-image:url(../images/familiarity.png)}table.intro h1{font-size:36px;font-weight:normal;margin:0;padding:0}table.intro p{font-size:16px;font-weight:lighter;line-height:22px;margin:0;padding:2px 35px 30px 35px}table.intro span{bottom:30px;display:block;position:absolute;width:100%}table.intro a{color:#1a6bc7;font-size:12px;font-weight:bold}#blu{display:table;font-size:12px;font-weight:lighter;line-height:28px;table-layout:fixed}#blu a{color:#FFF;text-decoration:none}#blu .cell{color:#FFF;display:table-cell;padding:40px 0;overflow:hidden;vertical-align:middle}#blu .cell.left{background:#1b2b3e;padding-right:54px}#blu .cell.left .wrapper{float:right}#blu .cell.right{background:#184f8d;padding-left:54px}#blu .cell.right .wrapper{float:left}#blu .cell .wrapper{width:425px}#blu h2{font-size:24px;font-weight:lighter;margin:0 0 10px 0;padding:0}.page-wrap:after{display:
block;content:""}#footer{color:black;background-color:white;font-size:9px;font-weight:lighter;line-height:20px;padding:30px 0;text-align:center}#footer,.page-wrap:after{height:60px}#footer .wrapper{padding:0 80px}.bui{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.8);z-index:4}.disclaimer{background:#f6f5f5;font-size:12px;font-weight:lighter;line-height:24px;text-align:center}.disclaimer .wrapper{margin:auto;padding:50px 0 50px 0;width:780px}.disclaimer h2{font-size:24px;font-weight:lighter;margin:0 0 10px 0;padding:0}.int_text{margin:40px auto 30px auto;width:780px}div.post.int_text{margin:40px auto 60px auto}.int_text a,.int_title a{color:#1a6bc7}.int_text p,.int_text ul,.int_text ol{font-size:16px;line-height:28px}.int_text p.l1{padding-left:30px}.int_text h2{font-size:24px;font-weight:normal;margin:30px 0 0 0}.int_text img{display:block;margin:30px auto}ul.num{list-style:decimal}.int_title{font-size:16px;font-weight:lighter;margin:auto;margin-t
op:80px;padding:0 0 15px 0;position:relative;text-align:center;width:600px}.int_title.int_title_img{background-position:center top;background-repeat:no-repeat;background-size:25px auto;padding-top:40px}.int_title.int_title_img.architecture{background-image:url(../images/architecture.png)}.int_title.int_title_img.community{background-image:url(../images/community.png)}.int_title.int_title_img.download{background-image:url(../images/download.png)}.int_title p{line-height:30px;margin:10px 0 25px 0}.int_title h1{font-size:36px;margin:20px 0px 20px 0px}.int_title:after{background:#1a6bc7;bottom:24px;content:" ";height:5px;left:275px;position:absolute;width:50px}table.intro a:before,table.intro a:after{backface-visibility:hidden;pointer-events:none}table.intro a,.int_title a{display:inline-block;overflow:hidden;outline:medium none;position:relative;text-decoration:none;vertical-align:bottom;white-space:nowrap}#header .dots,.aLeft,.aRight{display:none}p.info{background-color:#ffc;border:so
lid 1px #cc9;padding:5px}li p{margin-top:0px}.hidden{display:none}#menu .search-bar{line-height:30px;margin:0 20px 0 20px}#menu .search-bar form{border-radius:6px;border:solid 1px black;background-color:#1A6BC7}#menu .search-bar input[type='text']{border:none;color:white;background-color:transparent !important;font-size:14px;font-weight:inherit;padding:0 0 0 8px;line-height:20px;width:50px}#menu .search-bar input[placeholder]{opacity:.7}#menu .search-bar:hover{background-color:black}#menu .search-bar button[type='submit']{display:inline;border:none;background:none;position:relative;color:white;font-size:14px;cursor:pointer;width:33px}#menu .search-bar ::-webkit-input-placeholder{color:white}#menu .search-bar :-moz-placeholder{color:white}#menu .search-bar ::-moz-placeholder{color:white}#menu .search-bar :-ms-input-placeholder{color:white}.int_text table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.int_text table caption{color:#000;font-style:i
talic;padding:1em 0;text-align:center}.int_text table td,.int_text table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:.5em 1em}.int_text table td:first-child,.int_text table th:first-child{border-left-width:0}.int_text table thead{background-color:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.int_text table td{background-color:transparent}.int_text table-odd td{background-color:#f2f2f2}.int_text table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.int_text table-bordered td{border-bottom:1px solid #cbcbcb}.int_text table-bordered tbody>tr:last-child>td{border-bottom-width:0}.int_text table-horizontal td,.int_text table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #cbcbcb}.int_text table-horizontal tbody>tr:last-child>td{border-bottom-width:0}div.alertbar{line-height:1;text-align:center}div.alertbar div{display:inline-block;vertical-align:middle;padding:0 10px}div.alertbar div:nth-child(
2){border-right:solid 1px #cc9}div.alertbar div.news{font-weight:bold}div.alertbar div span{font-size:65%;color:#aa7}div.home-row{border-bottom:solid 1px #ccc;margin:0 auto;text-align:center}div.home-row div{display:inline-block;vertical-align:middle;text-align:left}div.home-row:nth-child(odd) div.big{width:300px}div.home-row:nth-child(odd) div.description{margin-left:40px;width:580px}div.home-row:nth-child(even) div.description{width:580px}div.home-row:nth-child(even) div.big{margin-left:40px;width:300px}.home-row h1{font-size:24px;margin:24px 0;font-weight:bold}.home-row h2{font-size:20px;margin:20px 0;font-weight:bold}.home-row p{font-size:16px;line-height:22px}.home-row div.small{display:none}.home-row div.big{display:inline-block}div.home-row div pre{background:#f3f5f7;color:#2a333c;border:solid 1px #aaa;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;line-height:1.5}div.home-row div pre span.code-underline{font-weight:bold;color:#000;text-decoration:un
derline}.int_text p a.post-link{font-size:22px}.int_text p span.post-date{font-style:italic}#menu ul li.toc-categories{display:none}#menu ul li.menu-break{display:none}.mobile-break{display:none}@media (min-width: 1025px){#menu ul li.expand-menu{display:none}}@media (max-width: 1024px){table.intro{width:940px}.mw{min-width:0px}.breadcrumbs li:first-of-type{margin-left:8px}#menu ul li.logo{padding-left:30px}#menu ul li.expand-menu{display:none}#menu ul li,#menu ul li.d{display:none}.home_txt p{width:auto}.int_title{text-align:left;width:auto;margin:80px 20px 0px 20px}.int_title:after{left:0px}.int_text{width:auto;margin:20px 10px 100px 20px}#menu.force-expand ul li,#menu.force-expand ul li.d{display:inline-block}#menu.force-expand ul li.toc-categories{display:none}#menu.force-expand ul li ul li{display:block}#menu.force-expand ul li.nav,#menu.force-expand ul li#twitter-menu-item{clear:both;margin:0 auto}#menu ul li.logo{display:block}#menu ul li.expand-menu{display:inline-block;float
:right}#menu ul br.menu-break{display:block}#menu ul li.expand-menu,#menu ul li.expand-menu a{height:50px;width:110px}#menu ul li.expand-menu span.expand-icon{font-size:24px}#menu ul li.expand-menu span.menu-text{margin-right:7px;position:relative;bottom:3px}#menu ul li.pull-right{float:right;margin-right:10px}div.post.int_text{margin:40px 20px 20px 20px}div.post .post-header .int_title{margin-left:0px}div.home-row{width:100%}div.home-row:nth-child(odd) div.small{width:300px}div.home-row:nth-child(odd) div.description{margin-left:20px;width:auto}div.home-row:nth-child(even) div.description{margin-left:20px;width:auto}div.home-row:nth-child(even) div.small{margin:0 0 15px 0;width:300px}div.home-row div.big{display:none}div.home-row div.small{display:inline-block}table.intro{width:100%;background:none}}@media (max-width: 768px){#menu.force-expand ul li.nav{clear:both;margin:0 auto}#menu.force-expand ul li.search-bar{clear:both}div.headlines.tc{margin-left:35px}br.mobile-break{display:
block}img{max-width:100%}div.int_search{width:100%}}@media (max-width: 570px){#menu.force-expand ul li.nav,#menu.force-expand ul li#twitter-menu-item{clear:both;width:100%;margin:auto}#menu.force-expand ul li{display:block}#menu ul li.clear-float{clear:both;width:0px;display:block}#menu ul li.search-bar{margin:0 11px 0 20px;float:right}#menu ul li.d{margin:10px;clear:both;float:right}#menu.force-expand{position:relative}#header .scroller .item .tc h1{font-size:40px}#header .scroller .item .tc h2{font-size:24px;line-height:32px}#header .scroller .item div.headlines.tc{margin-left:30px}div.headlines a.download-headline{font-size:.7em}#header .scroller .item div.headlines .btn{font-size:16px}div.alertbar{text-align:left;padding:0 25px}div.alertbar div{display:block;padding:10px 0}div.alertbar div:nth-child(1){border-right:none;border-bottom:solid 1px #cc9}div.alertbar div:nth-child(2){border-right:none;border-bottom:solid 1px #cc9}table.intro{width:100%;background:none}table.intro td{d
isplay:block;padding:25px 0 5px 0}table.intro td h1{font-size:24px;text-align:left;padding-left:60px}table.intro td.ag,table.intro td.fl,table.intro td.fam{background-position:20px 23%}table.intro p{font-size:16px;line-height:24px;padding:2px 25px 15px 20px;text-align:left}table.intro span{position:relative;bottom:10px;padding-left:20px;text-align:left}}.int_search{margin:50px auto 0 auto;width:780px;font-family:'PT Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif}.int_search .gsc-control-cse,.int_search .gsc-control-cse .gsc-table-result{font-family:'PT Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif}.nav-circlepop a{width:50px;height:50px}.nav-circlepop a::before{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;background:#fff;content:'';opacity:0;-webkit-transition:-webkit-transform 0.3s, opacity 0.3s;transition:transform 0.3s, opacity 0.3s;-webkit-transform:scale(0.9);transform:scale(0.9)}.nav-circlepop .icon-wrap{position:relative;display:block
;margin:10% 0 0 10%;width:80%;height:80%}.nav-circlepop a.next .icon-wrap{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.nav-circlepop .icon-wrap::before,.nav-circlepop .icon-wrap::after{position:absolute;left:25%;width:3px;height:50%;background:#fff;content:'';-webkit-transition:-webkit-transform 0.3s, background-color 0.3s;transition:transform 0.3s, background-color 0.3s;-webkit-backface-visibility:hidden;backface-visibility:hidden}.nav-circlepop .icon-wrap::before{-webkit-transform:translateX(-50%) rotate(30deg);transform:translateX(-50%) rotate(30deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.nav-circlepop .icon-wrap::after{top:50%;-webkit-transform:translateX(-50%) rotate(-30deg);transform:translateX(-50%) rotate(-30deg);-webkit-transform-origin:0 0;transform-origin:0 0}.nav-circlepop a:hover::before{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.nav-circlepop a:hover .icon-wrap::before,.nav-circlepop a:hover .icon-wrap::after{background:#4a
af4c}.nav-circlepop a:hover .icon-wrap::before{-webkit-transform:translateX(-50%) rotate(45deg);transform:translateX(-50%) rotate(45deg)}.nav-circlepop a:hover .icon-wrap::after{-webkit-transform:translateX(-50%) rotate(-45deg);transform:translateX(-50%) rotate(-45deg)}
+*{outline:none}html{height:100%}body{font-family:'PT Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;padding:0;margin:0;height:100%}.page-wrap{min-height:100%;margin-bottom:-60px}.mw{min-width:999px;width:100%}.nw{white-space:nowrap}a.anchor{display:none;font-size:0px;position:absolute;margin-top:-50px}.home_txt a.anchor{margin-top:-90px}#menu{position:fixed;top:0;width:100%;z-index:5}#menu ul{background:#051221;display:block;font-size:0px;list-style:none;overflow:hidden;padding:0;text-align:right}#menu ul li{display:inline-block;font-size:14px;margin:0;padding:0}#menu ul li.logo{float:left;padding-left:30px}#menu ul li.logo:hover{background:none}#menu ul li.logo a{background:url(../images/apachedrill.png) no-repeat center;background-size:auto 27px;display:block;height:50px;padding:0;width:80px}#menu ul li a{color:#FFF;text-decoration:none;line-height:50px;padding:14px 20px}#menu ul li.d,#menu ul li.d:hover{background-color:#4aaf4c;font-size:12px;text-transform:uppercase}#menu
ul li.d a .fam{position:relative;right:8px;font-size:14px}#menu ul li.d:hover{background-color:#348436}#menu ul li.d *{cursor:pointer}#menu ul li.d a{padding:0px 30px 0 40px;display:block}#menu ul li.l{cursor:pointer}#menu ul li.l span{background:url(../images/len.png) no-repeat center;background-size:auto 16px;display:block;line-height:50px;padding:0 20px;width:16px}#menu ul li.l.open{background-color:#145aa8}#menu ul li#twitter-menu-item{width:30px;padding-left:2px;padding-right:10px}#menu ul li#twitter-menu-item a{padding:10px}#menu ul li#twitter-menu-item img{width:22px}#menu ul li ul{background:#1a6bc7;display:none;margin:0;padding:0;position:absolute;text-align:left}#menu ul li ul li{display:block}#menu ul li ul li a{display:block;line-height:30px;padding:3px 20px}#menu ul li ul li a:hover{background:#145aa8}#menu ul li:hover{background:#1a6bc7}#menu ul li:hover ul{display:block}#menu ul li.clear-float{display:none}#subhead{background:#145aa8;color:#FFF;font-size:12px;font-we
ight:bold;height:40px;line-height:40px;left:0px;letter-spacing:1px;right:0px;position:fixed;text-align:center;text-transform:uppercase;top:10px;z-index:4;-webkit-transition:all 0.3s;transition:all 0.3s}#subhead.show{top:50px}#subhead ul{list-style:none;margin:0;padding:0}#subhead ul li{display:inline-block;list-style:none;margin:0;padding:0 35px 0 35px}#subhead ul li a{background-size:16px auto;background-position:left center;background-repeat:no-repeat;color:#FFF;display:block;padding:0 0 0 25px;text-decoration:none}#subhead ul li.ag a{background-image:url(../images/agility-w.png)}#subhead ul li.fl a{background-image:url(../images/flexibility-w.png)}#subhead ul li.fam a{background-image:url(../images/familiarity-w.png)}#header{background:url(../images/reel-bg.png) no-repeat;background-size:cover;height:300px;overflow:hidden;position:relative}#header .scroller{margin-left:0px;overflow:hidden}#header .scroller .item{float:left;height:300px;position:relative;width:100%;z-index:1}#head
er .scroller .item p a{color:#FFF;font-weight:bold;overflow:hidden;text-decoration:none;position:relative;display:inline-block;outline:none;vertical-align:bottom;text-decoration:none;white-space:nowrap}#header .scroller .item p a::before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;background:rgba(149,165,166,0.4);content:'';-webkit-transition:-webkit-transform 0.3s;transition:transform 0.3s;-webkit-transform:scaleY(0.618) translateX(-100%);transform:scaleY(0.618) translateX(-100%)}#header .scroller .item p a:hover::before,#header .scroller .item p a:focus::before{-webkit-transform:scaleY(0.618) translateX(0);transform:scaleY(0.618) translateX(0)}#header .scroller .item .tc{color:#FFF;margin-left:80px;position:relative;width:900px;margin:0 auto}#header .scroller .item .tc h1,#header .scroller .item .tc h2{font-size:36px;font-weight:lighter;margin:0 0 8px 0;padding:0}#header .scroller .item .tc h2{font-size:16px}#header .scroller .item .tc p{font-size:14px;font-we
ight:lighter;line-height:24px;margin:0;padding:0}#header .scroller .item .btn{background:none;border:2px solid #fff;cursor:pointer;color:#FFF;display:inline-block;font-size:12px;font-weight:bold;outline:none;margin-top:18px;position:relative;padding:5px 30px;text-decoration:none;text-transform:uppercase;-webkit-transition:all 0.3s;-moz-transition:all 0.3s;transition:all 0.3s}#header .scroller .item .btn:after{content:'';position:absolute;z-index:-1;-webkit-transition:all 0.3s;-moz-transition:all 0.3s;transition:all 0.3s}#header .scroller .item .btn-1c:after{width:0%;height:100%;top:0;left:0;background:#fff}#header .scroller .item .btn-1c:hover,#header .scroller .item .btn-1c:active{color:#0e83cd}#header .scroller .item .btn-1c:hover:after,#header .scroller .item .btn-1c:active:after{width:100%}#header .aLeft{cursor:pointer;height:30px;left:20px;margin-top:-15px;position:absolute;top:50%;width:30px;z-index:2}#header .aRight{cursor:pointer;height:30px;right:20px;margin-top:-15px;posit
ion:absolute;top:50%;width:30px;z-index:2}.dots{bottom:30px;right:80px;position:absolute;z-index:2}.dots .dot{border-radius:50%;background-color:transparent;box-shadow:inset 0 0 0 2px white;-webkit-transition:box-shadow 0.3s ease;transition:box-shadow 0.3s ease;cursor:pointer;display:inline-block;height:10px;margin-left:10px;width:10px}.dots .dot:hover,.dots .dot:focus{box-shadow:inset 0 0 0 2px rgba(255,255,255,0.6)}.dots .dot.sel{box-shadow:inset 0 0 0 8px white}div.alertbar{background-color:#ffc;text-align:center;display:block;padding:10px;border-bottom:solid 1px #cc9}div.alertbar .hor-bar:after{content:"|"}span.strong{font-weight:bold}.introWrapper{border-bottom:1px solid #CCC}table.intro{background:url(../images/intro-bg.gif) no-repeat center;table-layout:fixed;text-align:center;width:940px}table.intro td{background-position:center 25px;background-repeat:no-repeat;background-size:25px auto;padding:65px 0 0 0;position:relative;vertical-align:top}table.intro td.ag{background-imag
e:url(../images/agility.png)}table.intro td.fl{background-image:url(../images/flexibility.png)}table.intro td.fam{background-image:url(../images/familiarity.png)}table.intro h1{font-size:36px;font-weight:normal;margin:0;padding:0}table.intro p{font-size:16px;font-weight:lighter;line-height:22px;margin:0;padding:2px 35px 30px 35px}table.intro span{bottom:30px;display:block;position:absolute;width:100%}table.intro a{color:#1a6bc7;font-size:12px;font-weight:bold}#blu{display:table;font-size:12px;font-weight:lighter;line-height:28px;table-layout:fixed}#blu a{color:#FFF;text-decoration:none}#blu .cell{color:#FFF;display:table-cell;padding:40px 0;overflow:hidden;vertical-align:middle}#blu .cell.left{background:#1b2b3e;padding-right:54px}#blu .cell.left .wrapper{float:right}#blu .cell.right{background:#184f8d;padding-left:54px}#blu .cell.right .wrapper{float:left}#blu .cell .wrapper{width:425px}#blu h2{font-size:24px;font-weight:lighter;margin:0 0 10px 0;padding:0}.page-wrap:after{display:
block;content:""}#footer{color:black;background-color:white;font-size:9px;font-weight:lighter;line-height:20px;padding:30px 0;text-align:center}#footer,.page-wrap:after{height:60px}#footer .wrapper{padding:0 80px}.bui{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.8);z-index:4}.disclaimer{background:#f6f5f5;font-size:12px;font-weight:lighter;line-height:24px;text-align:center}.disclaimer .wrapper{margin:auto;padding:50px 0 50px 0;width:780px}.disclaimer h2{font-size:24px;font-weight:lighter;margin:0 0 10px 0;padding:0}.int_text{margin:40px auto 30px auto;width:780px}div.post.int_text{margin:40px auto 60px auto}.int_text a,.int_title a{color:#1a6bc7}.int_text p,.int_text ul,.int_text ol{font-size:16px;line-height:28px}.int_text p.l1{padding-left:30px}.int_text h2{font-size:24px;font-weight:normal;margin:30px 0 0 0}.int_text img{display:block;margin:30px auto}ul.num{list-style:decimal}.int_title{font-size:16px;font-weight:lighter;margin:auto;margin-t
op:80px;padding:0 0 15px 0;position:relative;text-align:center;width:600px}.int_title.int_title_img{background-position:center top;background-repeat:no-repeat;background-size:25px auto;padding-top:40px}.int_title.int_title_img.architecture{background-image:url(../images/architecture.png)}.int_title.int_title_img.community{background-image:url(../images/community.png)}.int_title.int_title_img.download{background-image:url(../images/download.png)}.int_title p{line-height:30px;margin:10px 0 25px 0}.int_title h1{font-size:36px;margin:20px 0px 20px 0px}.int_title:after{background:#1a6bc7;bottom:24px;content:" ";height:5px;left:275px;position:absolute;width:50px}table.intro a:before,table.intro a:after{backface-visibility:hidden;pointer-events:none}table.intro a,.int_title a{display:inline-block;overflow:hidden;outline:medium none;position:relative;text-decoration:none;vertical-align:bottom;white-space:nowrap}#header .dots,.aLeft,.aRight{display:none}p.info{background-color:#ffc;border:so
lid 1px #cc9;padding:5px}li p{margin-top:0px}.hidden{display:none}#menu .search-bar{line-height:30px;margin:0 20px 0 20px}#menu .search-bar form{border-radius:6px;border:solid 1px black;background-color:#1A6BC7}#menu .search-bar input[type='text']{border:none;color:white;background-color:transparent !important;font-size:14px;font-weight:inherit;padding:0 0 0 8px;line-height:20px;width:50px}#menu .search-bar input[placeholder]{opacity:.7}#menu .search-bar:hover{background-color:black}#menu .search-bar button[type='submit']{display:inline;border:none;background:none;position:relative;color:white;font-size:14px;cursor:pointer;width:33px}#menu .search-bar ::-webkit-input-placeholder{color:white}#menu .search-bar :-moz-placeholder{color:white}#menu .search-bar ::-moz-placeholder{color:white}#menu .search-bar :-ms-input-placeholder{color:white}.int_text table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.int_text table caption{color:#000;font-style:i
talic;padding:1em 0;text-align:center}.int_text table td,.int_text table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:.5em 1em}.int_text table td:first-child,.int_text table th:first-child{border-left-width:0}.int_text table thead{background-color:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.int_text table td{background-color:transparent}.int_text table-odd td{background-color:#f2f2f2}.int_text table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.int_text table-bordered td{border-bottom:1px solid #cbcbcb}.int_text table-bordered tbody>tr:last-child>td{border-bottom-width:0}.int_text table-horizontal td,.int_text table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #cbcbcb}.int_text table-horizontal tbody>tr:last-child>td{border-bottom-width:0}div.alertbar{line-height:1;text-align:center}div.alertbar div{display:inline-block;vertical-align:middle;padding:0 10px}div.alertbar div:nth-child(
2){border-right:solid 1px #cc9}div.alertbar div.news{font-weight:bold}div.alertbar div span{font-size:65%;color:#aa7}div.home-row{border-bottom:solid 1px #ccc;margin:0 auto;text-align:center}div.home-row div{display:inline-block;vertical-align:middle;text-align:left}div.home-row:nth-child(odd) div.big{width:300px}div.home-row:nth-child(odd) div.description{margin-left:40px;width:580px}div.home-row:nth-child(even) div.description{width:580px}div.home-row:nth-child(even) div.big{margin-left:40px;width:300px}.home-row h1{font-size:24px;margin:24px 0;font-weight:bold}.home-row h2{font-size:20px;margin:20px 0;font-weight:bold}.home-row p{font-size:16px;line-height:22px}.home-row div.small{display:none}.home-row div.big{display:inline-block}div.home-row div pre{background:#f3f5f7;color:#2a333c;border:solid 1px #aaa;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;line-height:1.5}div.home-row div pre span.code-underline{font-weight:bold;color:#000;text-decoration:un
derline}.int_text p a.post-link{font-size:22px}.int_text p span.post-date{font-style:italic}#menu ul li.toc-categories{display:none}#menu ul li.menu-break{display:none}.mobile-break{display:none}@media (min-width: 1025px){#menu ul li.expand-menu{display:none}}@media (max-width: 1024px){table.intro{width:940px}.mw{min-width:0px}.breadcrumbs li:first-of-type{margin-left:8px}#menu ul li.logo{padding-left:30px}#menu ul li.expand-menu{display:none}#menu ul li,#menu ul li.d{display:none}.home_txt p{width:auto}.int_title{text-align:left;width:auto;margin:80px 20px 0px 20px}.int_title:after{left:0px}.int_text{width:auto;margin:20px 10px 100px 20px}#menu.force-expand ul li,#menu.force-expand ul li.d{display:inline-block}#menu.force-expand ul li.toc-categories{display:none}#menu.force-expand ul li ul li{display:block}#menu.force-expand ul li.nav,#menu.force-expand ul li#twitter-menu-item{clear:both;margin:0 auto}#menu ul li.logo{display:block}#menu ul li.expand-menu{display:inline-block;float
:right}#menu ul br.menu-break{display:block}#menu ul li.expand-menu,#menu ul li.expand-menu a{height:50px;width:110px}#menu ul li.expand-menu span.expand-icon{font-size:24px}#menu ul li.expand-menu span.menu-text{margin-right:7px;position:relative;bottom:3px}#menu ul li.pull-right{float:right;margin-right:10px}div.post.int_text{margin:40px 20px 20px 20px}div.post .post-header .int_title{margin-left:0px}div.home-row{width:100%}div.home-row:nth-child(odd) div.small{width:300px}div.home-row:nth-child(odd) div.description{margin-left:20px;width:auto}div.home-row:nth-child(even) div.description{margin-left:20px;width:auto}div.home-row:nth-child(even) div.small{margin:0 0 15px 0;width:300px}div.home-row div.big{display:none}div.home-row div.small{display:inline-block}table.intro{width:100%;background:none}}@media (max-width: 768px){#menu.force-expand ul li.nav{clear:both;margin:0 auto}#menu.force-expand ul li.search-bar{clear:both}div.headlines.tc{margin-left:35px}img{max-width:100%}div.i
nt_search{width:100%}}@media (max-width: 570px){br.mobile-break{display:block}#menu.force-expand ul li.nav,#menu.force-expand ul li#twitter-menu-item{clear:both;width:100%;margin:auto}#menu.force-expand ul li{display:block}#menu ul li.clear-float{clear:both;width:0px;display:block}#menu ul li.search-bar{margin:0 11px 0 20px;float:right}#menu ul li.d{margin:10px;clear:both;float:right}#menu.force-expand{position:relative}#header .scroller .item .tc h1{font-size:40px}#header .scroller .item .tc h2{font-size:24px;line-height:32px}#header .scroller .item div.headlines.tc{margin-left:30px}div.headlines a.download-headline{font-size:.7em}#header .scroller .item div.headlines .btn{font-size:16px}div.alertbar{text-align:left;padding:0 25px}div.alertbar div{display:block;padding:10px 0}div.alertbar div:nth-child(1){border-right:none;border-bottom:solid 1px #cc9}div.alertbar div:nth-child(2){border-right:none;border-bottom:solid 1px #cc9}table.intro{width:100%;background:none}table.intro td{d
isplay:block;padding:25px 0 5px 0}table.intro td h1{font-size:24px;text-align:left;padding-left:60px}table.intro td.ag,table.intro td.fl,table.intro td.fam{background-position:20px 23%}table.intro p{font-size:16px;line-height:24px;padding:2px 25px 15px 20px;text-align:left}table.intro span{position:relative;bottom:10px;padding-left:20px;text-align:left}}.int_search{margin:50px auto 0 auto;width:780px;font-family:'PT Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif}.int_search .gsc-control-cse,.int_search .gsc-control-cse .gsc-table-result{font-family:'PT Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif}.nav-circlepop a{width:50px;height:50px}.nav-circlepop a::before{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;background:#fff;content:'';opacity:0;-webkit-transition:-webkit-transform 0.3s, opacity 0.3s;transition:transform 0.3s, opacity 0.3s;-webkit-transform:scale(0.9);transform:scale(0.9)}.nav-circlepop .icon-wrap{position:relative;display:block
;margin:10% 0 0 10%;width:80%;height:80%}.nav-circlepop a.next .icon-wrap{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.nav-circlepop .icon-wrap::before,.nav-circlepop .icon-wrap::after{position:absolute;left:25%;width:3px;height:50%;background:#fff;content:'';-webkit-transition:-webkit-transform 0.3s, background-color 0.3s;transition:transform 0.3s, background-color 0.3s;-webkit-backface-visibility:hidden;backface-visibility:hidden}.nav-circlepop .icon-wrap::before{-webkit-transform:translateX(-50%) rotate(30deg);transform:translateX(-50%) rotate(30deg);-webkit-transform-origin:0 100%;transform-origin:0 100%}.nav-circlepop .icon-wrap::after{top:50%;-webkit-transform:translateX(-50%) rotate(-30deg);transform:translateX(-50%) rotate(-30deg);-webkit-transform-origin:0 0;transform-origin:0 0}.nav-circlepop a:hover::before{opacity:1;-webkit-transform:scale(1);transform:scale(1)}.nav-circlepop a:hover .icon-wrap::before,.nav-circlepop a:hover .icon-wrap::after{background:#4a
af4c}.nav-circlepop a:hover .icon-wrap::before{-webkit-transform:translateX(-50%) rotate(45deg);transform:translateX(-50%) rotate(45deg)}.nav-circlepop a:hover .icon-wrap::after{-webkit-transform:translateX(-50%) rotate(-45deg);transform:translateX(-50%) rotate(-45deg)}
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/docs/data-type-conversion/index.html
----------------------------------------------------------------------
diff --git a/docs/data-type-conversion/index.html b/docs/data-type-conversion/index.html
index b704777..0120ab0 100644
--- a/docs/data-type-conversion/index.html
+++ b/docs/data-type-conversion/index.html
@@ -1325,7 +1325,7 @@ use in your Drill queries as described in this section:</p>
<h3 id="format-specifiers-for-numerical-conversions">Format Specifiers for Numerical Conversions</h3>
-<p>Use the following format specifiers for converting numbers:</p>
+<p>Use the following Java format specifiers for converting numbers:</p>
<table><thead>
<tr>
@@ -1393,7 +1393,7 @@ use in your Drill queries as described in this section:</p>
<h3 id="format-specifiers-for-date/time-conversions">Format Specifiers for Date/Time Conversions</h3>
-<p>Use the following format specifiers for date/time conversions:</p>
+<p>Use the following Joda format specifiers for date/time conversions:</p>
<table><thead>
<tr>
@@ -1541,7 +1541,7 @@ use in your Drill queries as described in this section:</p>
<ul>
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html">Java DecimalFormat class</a> format specifiers </li>
-<li><a href="http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html">Java DateTimeFormat class</a> format specifiers</li>
+<li><a href="http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html">Joda DateTimeFormat class</a> format specifiers</li>
</ul>
<h2 id="to_char">TO_CHAR</h2>
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/docs/date-time-and-timestamp/index.html
----------------------------------------------------------------------
diff --git a/docs/date-time-and-timestamp/index.html b/docs/date-time-and-timestamp/index.html
index 6c94c6b..8e67441 100644
--- a/docs/date-time-and-timestamp/index.html
+++ b/docs/date-time-and-timestamp/index.html
@@ -915,42 +915,6 @@
<p>Using familiar date and time formats, listed in the <a href="/docs/data-types/data-types">SQL data types table</a>, you can construct query date and time data. You need to cast textual data to date and time data types. The format of date, time, and timestamp text in a textual data source needs to match the SQL query format for successful casting. </p>
-<p>DATE, TIME, and TIMESTAMP store values in Coordinated Universal Time (UTC). Drill supports time functions in the range 1971 to 2037.</p>
-
-<p>Currently, Drill does not support casting a TIMESTAMP with time zone, but you can use the <a href="/docs/casting/converting-data-types#to_timestamp">TO_TIMESTAMP function</a> in a query to use time stamp data having a time zone.</p>
-
-<p>Next, use the following literals in a SELECT statement. </p>
-
-<ul>
-<li><code>date</code></li>
-<li><code>time</code></li>
-<li><p><code>timestamp</code></p>
-<div class="highlight"><pre><code class="language-text" data-lang="text">SELECT date '2010-2-15' FROM sys.version;
-+------------+
-| EXPR$0 |
-+------------+
-| 2010-02-15 |
-+------------+
-1 row selected (0.083 seconds)
-
-SELECT time '15:20:30' from sys.version;
-+------------+
-| EXPR$0 |
-+------------+
-| 15:20:30 |
-+------------+
-1 row selected (0.067 seconds)
-
-SELECT timestamp '2015-03-11 6:50:08' FROM sys.version;
-+------------+
-| EXPR$0 |
-+------------+
-| 2015-03-11 06:50:08.0 |
-+------------+
-1 row selected (0.071 seconds)
-</code></pre></div></li>
-</ul>
-
<h2 id="intervalyear-and-intervalday">INTERVALYEAR and INTERVALDAY</h2>
<p>The INTERVALYEAR AND INTERVALDAY types represent a period of time. The INTERVALYEAR type specifies values from a year to a month. The INTERVALDAY type specifies values from a day to seconds.</p>
@@ -1027,6 +991,44 @@ SELECT INTERVAL '13' month FROM sys.version;
</code></pre></div>
<p>For information about casting interval data, see the <a href="/docs/data-type-conversion#cast">"CAST"</a> function.</p>
+<h2 id="date,-time,-and-timestamp">DATE, TIME, and TIMESTAMP</h2>
+
+<p>DATE, TIME, and TIMESTAMP store values in Coordinated Universal Time (UTC). Drill supports time functions in the range 1971 to 2037.</p>
+
+<p>Drill does not support TIMESTAMP with time zone; however, if your data includes the time zone, use the <a href="/docs/casting/converting-data-types#to_timestamp">TO_TIMESTAMP function</a> and <a href="/docs/data-type-conversion/#format-specifiers-for-date/time-conversions">Joda format specifiers</a> as shown the examples in section, <a href="/docs/data-type-conversion/#time-zone-limitation">"Time Zone Limitation"</a>.</p>
+
+<p>Next, use the following literals in a SELECT statement. </p>
+
+<ul>
+<li><code>date</code></li>
+<li><code>time</code></li>
+<li><p><code>timestamp</code></p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">SELECT date '2010-2-15' FROM sys.version;
++------------+
+| EXPR$0 |
++------------+
+| 2010-02-15 |
++------------+
+1 row selected (0.083 seconds)
+
+SELECT time '15:20:30' from sys.version;
++------------+
+| EXPR$0 |
++------------+
+| 15:20:30 |
++------------+
+1 row selected (0.067 seconds)
+
+SELECT timestamp '2015-03-11 6:50:08' FROM sys.version;
++------------+
+| EXPR$0 |
++------------+
+| 2015-03-11 06:50:08.0 |
++------------+
+1 row selected (0.071 seconds)
+</code></pre></div></li>
+</ul>
+
<div class="doc-nav">
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/docs/getting-to-know-the-drill-sandbox/index.html
----------------------------------------------------------------------
diff --git a/docs/getting-to-know-the-drill-sandbox/index.html b/docs/getting-to-know-the-drill-sandbox/index.html
index d1ba958..aaebf6b 100644
--- a/docs/getting-to-know-the-drill-sandbox/index.html
+++ b/docs/getting-to-know-the-drill-sandbox/index.html
@@ -922,24 +922,23 @@ Welcome to your Mapr Demo virtual machine.
</code></pre></div>
<p>Using the secure shell instead of the VM interface has some advantages. You can copy/paste commands from the tutorial and avoid mouse control problems.</p>
-<p>Drill includes a shell for connecting to relational databases and executing SQL commands. On the sandbox, the Drill shell runs in embedded mode. After logging into the sandbox, use the <code>SQLLine</code> command to start SQLLine for executing Drill queries in embedded mode. </p>
-<div class="highlight"><pre><code class="language-text" data-lang="text">[mapr@maprdemo ~]# sqlline
-sqlline version 1.1.6
+<p>Drill includes a shell for connecting to relational databases and executing SQL commands. On the sandbox, the Drill shell runs in embedded mode. After logging into the sandbox, use the <code>SQLLine</code> command. The Drill shell appears, and you can run Drill queries. </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">[mapr@maprdemo ~]$ sqlline
+apache drill 1.0.0
+"the only truly happy people are children, the creative minority and drill users"
0: jdbc:drill:>
</code></pre></div>
<p>In this tutorial you query a number of data sets, including Hive and HBase, and files on the file system, such as CSV, JSON, and Parquet files. To access these diverse data sources, you connect Drill to storage plugins. </p>
<h2 id="storage-plugin-overview">Storage Plugin Overview</h2>
-<p>This section describes storage plugins included in the sandbox. For general information about Drill storage plugins, see <a href="/docs/connect-a-data-source-introduction">"Connect to a Data Source"</a>.
-Take a look at the pre-configured storage plugins for the sandbox by opening the Storage tab in the Drill Web UI. Launch a web browser and go to: <code>http://<IP address>:8047/storage</code>. For example:</p>
-<div class="highlight"><pre><code class="language-text" data-lang="text">http://localhost:8047/storage
-</code></pre></div>
+<p>You use a <a href="/docs/connect-a-data-source-introduction">storage plugins</a> to connect to a data source, such as a file or the Hive metastore. Take a look at the storage plugin definitions by opening the Storage tab in the Drill Web UI. Launch a web browser and go to: <code>http://<IP address>:8047/storage</code>. </p>
+
<p>The control panel for managing storage plugins appears.</p>
<p><img src="/docs/img/get2kno_plugin.png" alt="sandbox plugin"></p>
-<p>You see that the following storage plugin controls:</p>
+<p>You see the following storage plugin controls:</p>
<ul>
<li>cp</li>
@@ -950,11 +949,9 @@ Take a look at the pre-configured storage plugins for the sandbox by opening the
<li>mongo</li>
</ul>
-<p>Click Update to look at a configuration. </p>
-
-<p>In some cases, the storage plugin defined for use in the sandbox differs from the default storage plugin of the same name in a Drill installation as described in the following sections. Typically you create a storage plugin or customize an existing one for analyzing a particular data source. </p>
+<p>Click Update to examine a configuration. </p>
-<p>The tutorial uses the dfs, hive, maprdb, and hbase storage plugins. </p>
+<p>If you've used an installation of Drill before using the sandbox, you might notice that a few storage plugins in the sandbox differ from the same storage plugin in a Drill installation. The sandbox version of dfs, hive, maprdb, and hbase storage plugins definitions play a role in simulating the cluster environment for running the tutorial. </p>
<h3 id="dfs">dfs</h3>
@@ -997,30 +994,33 @@ location in MapR-FS:</p>
"delimiter": ","
},
. . .
- "json": {
- "type": "json"
- }
+ "json": {
+ "type": "json"
+ },
+ "maprdb": {
+ "type": "maprdb"
}
-}
+ . . .
</code></pre></div>
<h3 id="maprdb">maprdb</h3>
<p>The maprdb storage plugin is a configuration for MapR-DB in the sandbox. You use this plugin in the sandbox to query HBase as well as MapR-DB data because the sandbox does not include HBase services. In addition to the following brief example, see the <a href="/docs/hbase-storage-plugin">Registering HBase</a> for more
information on how to configure Drill to query HBase.</p>
<div class="highlight"><pre><code class="language-text" data-lang="text">{
- "type" : "hbase",
- "enabled" : true,
- "config" : {
- "hbase.table.namespace.mappings" : "*:/tables"
- }
- }
+ "type": "hbase",
+ "config": {
+ "hbase.table.namespace.mappings": "*:/tables"
+ },
+ "size.calculator.enabled": false,
+ "enabled": true
+}
</code></pre></div>
<h3 id="hive">hive</h3>
<p>The hive storage plugin is a configuration for a Hive data warehouse within the sandbox.
Drill connects to the Hive metastore by using the configured metastore thrift
URI. Metadata for Hive tables is automatically available for users to query.</p>
-<div class="highlight"><pre><code class="language-text" data-lang="text"> {
+<div class="highlight"><pre><code class="language-text" data-lang="text">{
"type": "hive",
"enabled": true,
"configProps": {
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/docs/img/loginSandBox.png
----------------------------------------------------------------------
diff --git a/docs/img/loginSandBox.png b/docs/img/loginSandBox.png
index 5727ea4..07a6dfc 100644
Binary files a/docs/img/loginSandBox.png and b/docs/img/loginSandBox.png differ
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/docs/img/vbImport.png
----------------------------------------------------------------------
diff --git a/docs/img/vbImport.png b/docs/img/vbImport.png
index a8ed45b..197f419 100644
Binary files a/docs/img/vbImport.png and b/docs/img/vbImport.png differ
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/docs/img/vbMaprSetting.png
----------------------------------------------------------------------
diff --git a/docs/img/vbMaprSetting.png b/docs/img/vbMaprSetting.png
index b7720e3..73e0304 100644
Binary files a/docs/img/vbMaprSetting.png and b/docs/img/vbMaprSetting.png differ
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/docs/img/vbNetwork.png
----------------------------------------------------------------------
diff --git a/docs/img/vbNetwork.png b/docs/img/vbNetwork.png
index cbb36f1..db72a7f 100644
Binary files a/docs/img/vbNetwork.png and b/docs/img/vbNetwork.png differ
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/docs/installing-the-apache-drill-sandbox/index.html
----------------------------------------------------------------------
diff --git a/docs/installing-the-apache-drill-sandbox/index.html b/docs/installing-the-apache-drill-sandbox/index.html
index 148e9c0..808bbb4 100644
--- a/docs/installing-the-apache-drill-sandbox/index.html
+++ b/docs/installing-the-apache-drill-sandbox/index.html
@@ -963,15 +963,10 @@ VMware Player or VMware Fusion:</p>
<p>If you are running VMware Fusion, select <strong>Import</strong>. </p>
<p><img src="/docs/img/vmWelcome.png" alt="drill query flow"></p></li>
-<li><p>Navigate to the directory where you downloaded the MapR Sandbox with Apache Drill file, and select <code>MapR-Sandbox-For-Apache-Drill-4.0.1_VM.ova</code>.</p>
-
-<p><img src="/docs/img/vmShare.png" alt="drill query flow"></p>
-
-<p>The Import Virtual Machine dialog appears.</p></li>
-<li><p>Click <strong>Import</strong>. The virtual machine player imports the sandbox.</p>
-
-<p><img src="/docs/img/vmLibrary.png" alt="drill query flow"></p></li>
-<li><p>Select <code>MapR-Sandbox-For-Apache-Drill-4.0.1_VM</code>, and click <strong>Play virtual machine</strong>. It takes a few minutes for the MapR services to start. </p>
+<li><p>Navigate to the directory where you downloaded the MapR Sandbox with Apache Drill file, and select <code>MapR-Sandbox-For-Apache-Drill-1.0.0-4.1.0-vmware.ova</code>.<br>
+The Import Virtual Machine dialog appears.</p></li>
+<li><p>Click <strong>Import</strong>. The virtual machine player imports the sandbox. </p></li>
+<li><p>Select <code>MapR-Sandbox-For-Apache-Drill-4.1.0_VM</code>, and click <strong>Play virtual machine</strong>. It takes a few minutes for the MapR services to start. </p>
<p>After the MapR services start and installation completes, the following screen
appears:</p>
@@ -988,10 +983,7 @@ Drill.</p></li>
</ul>
<p>For example: <code>127.0.1.1 <vm_hostname></code></p></li>
-<li><p>You can navigate to the URL provided to experience Drill Web UI or you can login to the sandbox through the command line. </p>
-
-<p>a. To navigate to the MapR Sandbox with Apache Drill, enter the provided URL in your browser's address bar.<br>
-b. To login to the virtual machine and access the command line, press Alt+F2 on Windows or Option+F5 on Mac. When prompted, enter <code>mapr</code> as the login name and password.</p></li>
+<li><p>Navigate to <a href="http://localhost:8047">localhost:8047</a> to experience the Drill Web UI, or log into the sandbox through the command line. Login using ssh as described in <a href="/docs/getting-to-know-the-drill-sandbox">"Getting to Know the Sandbox"</a>. When prompted, enter <code>mapr</code> as the login name and password. Alternatively, access the command line on the VM: Press Alt+F2 on Windows or Option+F5 on Mac. </p></li>
</ol>
<h3 id="what's-next">What's Next</h3>
@@ -1015,51 +1007,28 @@ VirtualBox:</p>
<li><p>Select <strong>File > Import Appliance</strong>. The Import Virtual Appliance dialog appears.</p>
<p><img src="/docs/img/vbImport.png" alt="drill query flow"></p></li>
-<li><p>Navigate to the directory where you downloaded the MapR Sandbox with Apache Drill and click <strong>Next</strong>. The Appliance Settings window appears.</p>
+<li><p>Navigate to the directory where you downloaded the MapR Sandbox with Apache Drill, select MapR-Sandbox-For-Apache-Drill-1.0.0-4.1.0.ova, and click <strong>Next</strong>. The Appliance Settings window appears.</p>
<p><img src="/docs/img/vbApplSettings.png" alt="drill query flow"></p></li>
<li><p>Select the check box at the bottom of the screen: <strong>Reinitialize the MAC address of all network cards</strong>, then click <strong>Import</strong>. The Import Appliance imports the sandbox.</p></li>
-<li><p>When the import completes, select <strong>File > Preferences</strong>. The VirtualBox - Settings dialog appears.</p>
+<li><p>When the import completes, select <strong>Settings</strong>. The VirtualBox - Settings dialog appears.</p>
<p><img src="/docs/img/vbNetwork.png" alt="drill query flow"></p></li>
<li><p>Select <strong>Network</strong>. </p>
<p>The correct setting depends on your network connectivity when you run the
Sandbox. In general, if you are going to use a wired Ethernet connection,
-select <strong>NAT Networks</strong> and <strong>vboxnet0</strong>. If you are going to use a wireless
-network, select <strong>Host-only Networks</strong> and the <strong>VirtualBox Host-Only Ethernet
-Adapter</strong>. If no adapters appear, click the <strong>green</strong> + <strong>button</strong> to add the
-VirtualBox adapter.</p>
+select <strong>NAT Network</strong>. If you are going to use a wireless
+network, select <strong>Host-only Networks</strong> and the <strong>Host-Only Ethernet</strong>. </p>
<p><img src="/docs/img/vbMaprSetting.png" alt="drill query flow"></p></li>
<li><p>Click <strong>OK</strong> to continue.</p></li>
-<li><p>Click Settings.</p>
-
-<p><img src="/docs/img/settings.png" alt="settings icon"><br>
-The MapR-Sandbox-For-Apache-Drill - Settings dialog appears.</p>
-
-<p><img src="/docs/img/vbGenSettings.png" alt="drill query flow"> </p></li>
-<li><p>Click <strong>OK</strong> to continue.</p></li>
<li><p>Click <strong>Start</strong>. It takes a few minutes for the MapR services to start. </p>
<p>After the MapR services start and installation completes, the following screen appears:</p>
<p><img src="/docs/img/vbloginSandBox.png" alt="drill query flow"></p></li>
-<li><p>The client must be able to resolve the actual hostname of the Drill node(s) with the IP(s). Verify that a DNS entry was created on the client machine for the Drill node(s). </p>
-
-<p>If a DNS entry does not exist, create the entry for the Drill node(s).</p>
-
-<ul>
-<li>For Windows, create the entry in the %WINDIR%\system32\drivers\etc\hosts file.</li>
-<li>For Linux and Mac, create the entry in /etc/hosts.<br>
-<drill-machine-IP> <drill-machine-hostname><br></li>
-</ul>
-
-<p>Example: <code>127.0.1.1 maprdemo</code></p></li>
-<li><p>You can navigate to the URL provided or to <a href="http://localhost:8047">localhost:8047</a> to experience the Drill Web UI, or you can log into the sandbox through the command line. </p>
-
-<p>a. To navigate to the MapR Sandbox with Apache Drill, enter the provided URL in your browser's address bar.<br>
-b. To log into the virtual machine and access the command line, enter Alt+F2 on Windows or Option+F5 on Mac. When prompted, enter <code>mapr</code> as the login name and password.</p></li>
+<li><p>Navigate to <a href="http://localhost:8047">localhost:8047</a> to experience the Drill Web UI, or log into the sandbox through the command line. Login using ssh as described in <a href="/docs/getting-to-know-the-drill-sandbox">"Getting to Know the Sandbox"</a>. When prompted, enter <code>mapr</code> as the login name and password. Alternatively, access the command line on the VM: Press Alt+F2 on Windows or Option+F5 on Mac. </p></li>
</ol>
<h3 id="what's-next">What's Next</h3>
[2/3] drill-site git commit: Website update
Posted by ts...@apache.org.
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/docs/lesson-1-learn-about-the-data-set/index.html
----------------------------------------------------------------------
diff --git a/docs/lesson-1-learn-about-the-data-set/index.html b/docs/lesson-1-learn-about-the-data-set/index.html
index d0a8624..703234f 100644
--- a/docs/lesson-1-learn-about-the-data-set/index.html
+++ b/docs/lesson-1-learn-about-the-data-set/index.html
@@ -937,39 +937,50 @@ format.</p>
<h3 id="start-the-drill-shell">Start the Drill Shell</h3>
-<p>If the Drill shell is not already started, use a Terminal or Command window to log
-into the demo VM as root, then enter <code>sqlline</code>, as described in <a href="/docs/getting-to-know-the-drill-sandbox">"Getting to Know the Sandbox"</a>:</p>
+<p>If the Drill shell is not already started, use a Terminal or Command Prompt to log
+into the demo VM as mapr, then enter <code>sqlline</code>, as described in <a href="/docs/getting-to-know-the-drill-sandbox">"Getting to Know the Sandbox"</a>:</p>
<p>You can run queries to complete the tutorial. To exit from
the Drill shell, type:</p>
-<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> !quit
-</code></pre></div>
+
+<p><code>0: jdbc:drill:> !quit</code></p>
+
<p>Examples in this tutorial use the Drill shell. You can also execute queries using the Drill Web UI.</p>
+<h3 id="enable-the-decimal-data-yype">Enable the DECIMAL Data Yype</h3>
+
+<p>This tutorial uses the DECIMAL data type in some examples. The DECIMAL data type is disabled by default in this release, so enable the DECIMAL data type before proceeding:</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">alter session set `planner.enable_decimal_data_type`=true;
+
++-------+--------------------------------------------+
+| ok | summary |
++-------+--------------------------------------------+
+| true | planner.enable_decimal_data_type updated. |
++-------+--------------------------------------------+
+1 row selected
+</code></pre></div>
<h3 id="list-the-available-workspaces-and-databases:">List the available workspaces and databases:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> show databases;
-+-------------+
-| SCHEMA_NAME |
-+-------------+
-| hive.default |
-| dfs.default |
-| dfs.logs |
-| dfs.root |
-| dfs.views |
-| dfs.clicks |
-| dfs.tmp |
-| sys |
-| maprdb |
-| cp.default |
-| INFORMATION_SCHEMA |
-+-------------+
-12 rows selected
++---------------------+
+| SCHEMA_NAME |
++---------------------+
+| INFORMATION_SCHEMA |
+| cp.default |
+| dfs.clicks |
+| dfs.default |
+| dfs.logs |
+| dfs.root |
+| dfs.tmp |
+| dfs.views |
+| hive.default |
+| maprdb |
+| sys |
++---------------------+
</code></pre></div>
<p>This command exposes all the metadata available from the storage
plugins configured with Drill as a set of schemas. The Hive and
MapR-DB databases, file system, and other data are configured in the file system. As
-you run queries in the tutorial, you will switch among these schemas by
-submitting the USE command. This behavior resembles the ability to use
+you run queries in the tutorial, you run the USE command to switch among these schemas. Switching schemas in this way resembles using
different database schemas (namespaces) in a relational database system.</p>
<h2 id="query-hive-tables">Query Hive Tables</h2>
@@ -979,12 +990,13 @@ This is a Hive external table pointing to the data stored in flat files on the
MapR file system. The orders table contains 122,000 rows.</p>
<h3 id="set-the-schema-to-hive:">Set the schema to hive:</h3>
-<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use hive;
-+------------+------------+
-| ok | summary |
-+------------+------------+
-| true | Default schema changed to 'hive' |
-+------------+------------+
+<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use hive.`default`;
++-------+-------------------------------------------+
+| ok | summary |
++-------+-------------------------------------------+
+| true | Default schema changed to [hive.default] |
++-------+-------------------------------------------+
+1 row selected
</code></pre></div>
<p>You will run the USE command throughout this tutorial. The USE command sets
the schema for the current session.</p>
@@ -1026,7 +1038,7 @@ the standard LIMIT clause, which limits the result set to the specified number
of rows. You can use LIMIT with or without an ORDER BY clause.</p>
<p>Drill provides seamless integration with Hive by allowing queries on Hive
-tables defined in the metastore with no extra configuration. Note that Hive is
+tables defined in the metastore with no extra configuration. Hive is
not a prerequisite for Drill, but simply serves as a storage plugin or data
source for Drill. Drill also lets users query all Hive file formats (including
custom serdes). Additionally, any UDFs defined in Hive can be leveraged as
@@ -1044,11 +1056,10 @@ development. Every MapR-DB table has a row_key, in addition to one or more
column families. Each column family contains one or more specific columns. The
row_key value is a primary key that uniquely identifies each row.</p>
-<p>Drill allows direct queries on MapR-DB and HBase tables. Unlike other SQL on
+<p>Drill directly queries MapR-DB and HBase tables. Unlike other SQL on
Hadoop options, Drill requires no overlay schema definitions in Hive to work
-with this data. Think about a MapR-DB or HBase table with thousands of
-columns, such as a time-series database, and the pain of having to manage
-duplicate schemas for it in Hive!</p>
+with this data. Drill removes the pain of having to manage duplicate schemas in Hive when you have a MapR-DB or HBase table with thousands of
+columns typical of a time-series database.</p>
<h3 id="products-table">Products Table</h3>
@@ -1068,32 +1079,35 @@ duplicate schemas for it in Hive!</p>
<p>The customers table contains 993 rows.</p>
<h3 id="set-the-workspace-to-maprdb:">Set the workspace to maprdb:</h3>
-<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use maprdb;
-+------------+------------+
-| ok | summary |
-+------------+------------+
-| true | Default schema changed to 'maprdb' |
-+------------+------------+
+<div class="highlight"><pre><code class="language-text" data-lang="text">use maprdb;
++-------+-------------------------------------+
+| ok | summary |
++-------+-------------------------------------+
+| true | Default schema changed to [maprdb] |
++-------+-------------------------------------+
+1 row selected
</code></pre></div>
<h3 id="describe-the-tables:">Describe the tables:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> describe customers;
-+-------------+------------+-------------+
-| COLUMN_NAME | DATA_TYPE | IS_NULLABLE |
-+-------------+------------+-------------+
-| row_key | ANY | NO |
-| address | (VARCHAR(1), ANY) MAP | NO |
-| loyalty | (VARCHAR(1), ANY) MAP | NO |
-| personal | (VARCHAR(1), ANY) MAP | NO |
-+-------------+------------+-------------+
++--------------+------------------------+--------------+
+| COLUMN_NAME | DATA_TYPE | IS_NULLABLE |
++--------------+------------------------+--------------+
+| row_key | ANY | NO |
+| address | (VARCHAR(1), ANY) MAP | NO |
+| loyalty | (VARCHAR(1), ANY) MAP | NO |
+| personal | (VARCHAR(1), ANY) MAP | NO |
++--------------+------------------------+--------------+
+4 rows selected
0: jdbc:drill:> describe products;
-+-------------+------------+-------------+
-| COLUMN_NAME | DATA_TYPE | IS_NULLABLE |
-+-------------+------------+-------------+
-| row_key | ANY | NO |
-| details | (VARCHAR(1), ANY) MAP | NO |
-| pricing | (VARCHAR(1), ANY) MAP | NO |
-+-------------+------------+-------------+
++--------------+------------------------+--------------+
+| COLUMN_NAME | DATA_TYPE | IS_NULLABLE |
++--------------+------------------------+--------------+
+| row_key | ANY | NO |
+| details | (VARCHAR(1), ANY) MAP | NO |
+| pricing | (VARCHAR(1), ANY) MAP | NO |
++--------------+------------------------+--------------+
+3 rows selected
</code></pre></div>
<p>Unlike the Hive example, the DESCRIBE command does not return the full schema
up to the column level. Wide-column NoSQL databases such as MapR-DB and HBase
@@ -1108,14 +1122,16 @@ ANY.</p>
<h3 id="select-5-rows-from-the-products-table:">Select 5 rows from the products table:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select * from products limit 5;
-+------------+------------+------------+
-| row_key | details | pricing |
-+------------+------------+------------+
-| [B@a1a3e25 | {"category":"bGFwdG9w","name":"IlNvbnkgbm90ZWJvb2si"} | {"price":"OTU5"} |
-| [B@103a43af | {"category":"RW52ZWxvcGVz","name":"IzEwLTQgMS84IHggOSAxLzIgUHJlbWl1bSBEaWFnb25hbCBTZWFtIEVudmVsb3Blcw=="} | {"price":"MT |
-| [B@61319e7b | {"category":"U3RvcmFnZSAmIE9yZ2FuaXphdGlvbg==","name":"MjQgQ2FwYWNpdHkgTWF4aSBEYXRhIEJpbmRlciBSYWNrc1BlYXJs"} | {"price" |
-| [B@9bcf17 | {"category":"TGFiZWxz","name":"QXZlcnkgNDk4"} | {"price":"Mw=="} |
-| [B@7538ef50 | {"category":"TGFiZWxz","name":"QXZlcnkgNDk="} | {"price":"Mw=="} |
++--------------+----------------------------------------------------------------------------------------------------------------+-------------------+
+| row_key | details | pricing |
++--------------+----------------------------------------------------------------------------------------------------------------+-------------------+
+| [B@b01c5f8 | {"category":"bGFwdG9w","name":"U29ueSBub3RlYm9vaw=="} | {"price":"OTU5"} |
+| [B@5edfe5ad | {"category":"RW52ZWxvcGVz","name":"IzEwLTQgMS84IHggOSAxLzIgUHJlbWl1bSBEaWFnb25hbCBTZWFtIEVudmVsb3Blcw=="} | {"price":"MTY="} |
+| [B@3d5ff184 | {"category":"U3RvcmFnZSAmIE9yZ2FuaXphdGlvbg==","name":"MjQgQ2FwYWNpdHkgTWF4aSBEYXRhIEJpbmRlciBSYWNrc1BlYXJs"} | {"price":"MjEx"} |
+| [B@65e93096 | {"category":"TGFiZWxz","name":"QXZlcnkgNDk4"} | {"price":"Mw=="} |
+| [B@3074fc1f | {"category":"TGFiZWxz","name":"QXZlcnkgNDk="} | {"price":"Mw=="} |
++--------------+----------------------------------------------------------------------------------------------------------------+-------------------+
+5 rows selected
</code></pre></div>
<p>Given that Drill requires no up front schema definitions indicating data
types, the query returns the raw byte arrays for column values, just as they
@@ -1126,17 +1142,18 @@ and pricing) have the map data type and appear as JSON strings.</p>
<h3 id="select-5-rows-from-the-customers-table:">Select 5 rows from the customers table:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">+0: jdbc:drill:> select * from customers limit 5;
-+------------+------------+------------+------------+
-| row_key | address | loyalty | personal |
-+------------+------------+------------+------------+
-| [B@284bae62 | {"state":"Imt5Ig=="} | {"agg_rev":"IjEwMDEtMzAwMCI=","membership":"ImJhc2ljIg=="} | {"age":"IjI2LTM1Ig==","gender":"Ik1B |
-| [B@7ffa4523 | {"state":"ImNhIg=="} | {"agg_rev":"IjAtMTAwIg==","membership":"ImdvbGQi"} | {"age":"IjI2LTM1Ig==","gender":"IkZFTUFMRSI= |
-| [B@7d13e79 | {"state":"Im9rIg=="} | {"agg_rev":"IjUwMS0xMDAwIg==","membership":"InNpbHZlciI="} | {"age":"IjI2LTM1Ig==","gender":"IkZFT |
-| [B@3a5c7df1 | {"state":"ImtzIg=="} | {"agg_rev":"IjMwMDEtMTAwMDAwIg==","membership":"ImdvbGQi"} | {"age":"IjUxLTEwMCI=","gender":"IkZF |
-| [B@e507726 | {"state":"Im5qIg=="} | {"agg_rev":"IjAtMTAwIg==","membership":"ImJhc2ljIg=="} | {"age":"IjIxLTI1Ig==","gender":"Ik1BTEUi" |
-+------------+------------+------------+------------+
++--------------+-----------------------+-------------------------------------------------+---------------------------------------------------------------------------------------+
+| row_key | address | loyalty | personal |
++--------------+-----------------------+-------------------------------------------------+---------------------------------------------------------------------------------------+
+| [B@3ed2649e | {"state":"InZhIg=="} | {"agg_rev":"MTk3","membership":"InNpbHZlciI="} | {"age":"IjE1LTIwIg==","gender":"IkZFTUFMRSI=","name":"IkNvcnJpbmUgTWVjaGFtIg=="} |
+| [B@66cbe14a | {"state":"ImluIg=="} | {"agg_rev":"MjMw","membership":"InNpbHZlciI="} | {"age":"IjI2LTM1Ig==","gender":"Ik1BTEUi","name":"IkJyaXR0YW55IFBhcmsi"} |
+| [B@5333f5ff | {"state":"ImNhIg=="} | {"agg_rev":"MjUw","membership":"InNpbHZlciI="} | {"age":"IjI2LTM1Ig==","gender":"Ik1BTEUi","name":"IlJvc2UgTG9rZXki"} |
+| [B@785b6305 | {"state":"Im1lIg=="} | {"agg_rev":"MjYz","membership":"InNpbHZlciI="} | {"age":"IjUxLTEwMCI=","gender":"IkZFTUFMRSI=","name":"IkphbWVzIEZvd2xlciI="} |
+| [B@37c21afe | {"state":"Im1uIg=="} | {"agg_rev":"MjAy","membership":"InNpbHZlciI="} | {"age":"IjUxLTEwMCI=","gender":"Ik9USEVSIg==","name":"Ikd1aWxsZXJtbyBLb2VobGVyIg=="} |
++--------------+-----------------------+-------------------------------------------------+---------------------------------------------------------------------------------------+
+5 rows selected
</code></pre></div>
-<p>Again the table returns byte data that needs to be cast to readable data
+<p>Again, the table returns byte data that needs to be cast to readable data
types.</p>
<h2 id="query-the-file-system">Query the File System</h2>
@@ -1146,7 +1163,7 @@ schemas (such as MapR-DB and HBase), Drill offers the unique capability to
perform SQL queries directly on file system. The file system could be a local
file system, or a distributed file system such as MapR-FS, HDFS, or S3.</p>
-<p>In the context of Drill, a file or a directory is considered as synonymous to
+<p>In the context of Drill, a file or a directory is synonymous with
a relational database “table.” Therefore, you can perform SQL operations
directly on files and directories without the need for up-front schema
definitions or schema management for any model changes. The schema is
@@ -1160,7 +1177,7 @@ is in JSON format. The JSON files have the following structure:</p>
{"trans_id":33848,"date":"2014-04-10","time":"04:44:42","user_info":{"cust_id":21449,"device":"IOS6","state":"oh"},"trans_info":{"prod_id":[582],"purch_flag":"false"}}
</code></pre></div>
<p>The clicks.json and clicks.campaign.json files contain metadata as part of the
-data itself (referred to as “self-describing” data). Also note that the data
+data itself (referred to as “self-describing” data). The data
elements are complex, or nested. The initial queries below do not show how to
unpack the nested data, but they show that easy access to the data requires no
setup beyond the definition of a workspace.</p>
@@ -1168,35 +1185,37 @@ setup beyond the definition of a workspace.</p>
<h3 id="query-nested-clickstream-data">Query nested clickstream data</h3>
<h4 id="set-the-workspace-to-dfs.clicks:">Set the workspace to dfs.clicks:</h4>
-<div class="highlight"><pre><code class="language-text" data-lang="text"> 0: jdbc:drill:> use dfs.clicks;
-+------------+------------+
-| ok | summary |
-+------------+------------+
-| true | Default schema changed to 'dfs.clicks' |
-+------------+------------+
+<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use dfs.clicks;
++-------+-----------------------------------------+
+| ok | summary |
++-------+-----------------------------------------+
+| true | Default schema changed to [dfs.clicks] |
++-------+-----------------------------------------+
+1 row selected
</code></pre></div>
<p>In this case, setting the workspace is a mechanism for making queries easier
to write. When you specify a file system workspace, you can shorten references
to files in your queries. Instead of having to provide the
complete path to a file, you can provide the path relative to a directory
location specified in the workspace. For example:</p>
-<div class="highlight"><pre><code class="language-text" data-lang="text">"location": "/mapr/demo.mapr.com/data/nested"
-</code></pre></div>
+
+<p><code>"location": "/mapr/demo.mapr.com/data/nested"</code></p>
+
<p>Any file or directory that you want to query in this path can be referenced
relative to this path. The clicks directory referred to in the following query
is directly below the nested directory.</p>
<h4 id="select-2-rows-from-the-clicks.json-file:">Select 2 rows from the clicks.json file:</h4>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select * from `clicks/clicks.json` limit 2;
-+------------+------------+------------+------------+------------+
-| trans_id | date | time | user_info | trans_info |
-+------------+------------+------------+------------+------------+
-| 31920 | 2014-04-26 | 12:17:12 | {"cust_id":22526,"device":"IOS5","state":"il"} | {"prod_id":[174,2],"purch_flag":"false"} |
-| 31026 | 2014-04-20 | 13:50:29 | {"cust_id":16368,"device":"AOS4.2","state":"nc"} | {"prod_id":[],"purch_flag":"false"} |
-+------------+------------+------------+------------+------------+
-2 rows selected
++-----------+-------------+-----------+---------------------------------------------------+-------------------------------------------+
+| trans_id | date | time | user_info | trans_info |
++-----------+-------------+-----------+---------------------------------------------------+-------------------------------------------+
+| 31920 | 2014-04-26 | 12:17:12 | {"cust_id":22526,"device":"IOS5","state":"il"} | {"prod_id":[174,2],"purch_flag":"false"} |
+| 31026 | 2014-04-20 | 13:50:29 | {"cust_id":16368,"device":"AOS4.2","state":"nc"} | {"prod_id":[],"purch_flag":"false"} |
++-----------+-------------+-----------+---------------------------------------------------+-------------------------------------------+
+2 rows selected
</code></pre></div>
-<p>Note that the FROM clause reference points to a specific file. Drill expands
+<p>The FROM clause reference points to a specific file. Drill expands
the traditional concept of a “table reference” in a standard SQL FROM clause
to refer to a file in a local or distributed file system.</p>
@@ -1206,13 +1225,13 @@ or characters.</p>
<h4 id="select-2-rows-from-the-campaign.json-file:">Select 2 rows from the campaign.json file:</h4>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select * from `clicks/clicks.campaign.json` limit 2;
-+------------+------------+------------+------------+------------+------------+
-| trans_id | date | time | user_info | ad_info | trans_info |
-+------------+------------+------------+------------+------------+------------+
-| 35232 | 2014-05-10 | 00:13:03 | {"cust_id":18520,"device":"AOS4.3","state":"tx"} | {"camp_id":"null"} | {"prod_id":[7,7],"purch_flag":"true"} |
-| 31995 | 2014-05-22 | 16:06:38 | {"cust_id":17182,"device":"IOS6","state":"fl"} | {"camp_id":"null"} | {"prod_id":[],"purch_flag":"false"} |
-+------------+------------+------------+------------+------------+------------+
-2 rows selected
++-----------+-------------+-----------+---------------------------------------------------+---------------------+----------------------------------------+
+| trans_id | date | time | user_info | ad_info | trans_info |
++-----------+-------------+-----------+---------------------------------------------------+---------------------+----------------------------------------+
+| 35232 | 2014-05-10 | 00:13:03 | {"cust_id":18520,"device":"AOS4.3","state":"tx"} | {"camp_id":"null"} | {"prod_id":[7,7],"purch_flag":"true"} |
+| 31995 | 2014-05-22 | 16:06:38 | {"cust_id":17182,"device":"IOS6","state":"fl"} | {"camp_id":"null"} | {"prod_id":[],"purch_flag":"false"} |
++-----------+-------------+-----------+---------------------------------------------------+---------------------+----------------------------------------+
+2 rows selected
</code></pre></div>
<p>Notice that with a select * query, any complex data types such as maps and
arrays return as JSON strings. You will see how to unpack this data using
@@ -1239,21 +1258,23 @@ are many of these files, but you can use Drill to query them all as a single
data source, or to query a subset of the files.</p>
<h4 id="set-the-workspace-to-dfs.logs:">Set the workspace to dfs.logs:</h4>
-<div class="highlight"><pre><code class="language-text" data-lang="text"> 0: jdbc:drill:> use dfs.logs;
-+------------+------------+
-| ok | summary |
-+------------+------------+
-| true | Default schema changed to 'dfs.logs' |
-+------------+------------+
+<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use dfs.logs;
++-------+---------------------------------------+
+| ok | summary |
++-------+---------------------------------------+
+| true | Default schema changed to [dfs.logs] |
++-------+---------------------------------------+
+1 row selected
</code></pre></div>
<h4 id="select-2-rows-from-the-logs-directory:">Select 2 rows from the logs directory:</h4>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select * from logs limit 2;
-+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+----------+
-| dir0 | dir1 | trans_id | date | time | cust_id | device | state | camp_id | keywords | prod_id | purch_fl |
-+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+----------+
-| 2014 | 8 | 24181 | 08/02/2014 | 09:23:52 | 0 | IOS5 | il | 2 | wait | 128 | false |
-| 2014 | 8 | 24195 | 08/02/2014 | 07:58:19 | 243 | IOS5 | mo | 6 | hmm | 107 | false |
-+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+----------+
++-------+-------+-----------+-------------+-----------+----------+---------+--------+----------+-----------+----------+-------------+
+| dir0 | dir1 | trans_id | date | time | cust_id | device | state | camp_id | keywords | prod_id | purch_flag |
++-------+-------+-----------+-------------+-----------+----------+---------+--------+----------+-----------+----------+-------------+
+| 2012 | 8 | 109 | 08/07/2012 | 20:33:13 | 144618 | IOS5 | ga | 4 | hey | 6 | false |
+| 2012 | 8 | 119 | 08/19/2012 | 03:37:50 | 17 | IOS5 | tx | 16 | and | 50 | false |
++-------+-------+-----------+-------------+-----------+----------+---------+--------+----------+-----------+----------+-------------+
+2 rows selected
</code></pre></div>
<p>Note that this is flat JSON data. The dfs.clicks workspace location property
points to a directory that contains the logs directory, making the FROM clause
@@ -1266,11 +1287,12 @@ queries that leverage these dynamic variables.</p>
<h4 id="find-the-total-number-of-rows-in-the-logs-directory-(all-files):">Find the total number of rows in the logs directory (all files):</h4>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select count(*) from logs;
-+------------+
-| EXPR$0 |
-+------------+
-| 48000 |
-+------------+
++---------+
+| EXPR$0 |
++---------+
+| 48000 |
++---------+
+1 row selected
</code></pre></div>
<p>This query traverses all of the files in the logs directory and its
subdirectories to return the total number of rows in those files.</p>
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/docs/lesson-2-run-queries-with-ansi-sql/index.html
----------------------------------------------------------------------
diff --git a/docs/lesson-2-run-queries-with-ansi-sql/index.html b/docs/lesson-2-run-queries-with-ansi-sql/index.html
index f5c8fef..b7cd8fa 100644
--- a/docs/lesson-2-run-queries-with-ansi-sql/index.html
+++ b/docs/lesson-2-run-queries-with-ansi-sql/index.html
@@ -938,31 +938,32 @@ statement.</p>
<h2 id="aggregation">Aggregation</h2>
<h3 id="set-the-schema-to-hive:">Set the schema to hive:</h3>
-<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use hive;
-+------------+------------+
-| ok | summary |
-+------------+------------+
-| true | Default schema changed to 'hive' |
-+------------+------------+
-1 row selected
+<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use hive.`default`;
++-------+-------------------------------------------+
+| ok | summary |
++-------+-------------------------------------------+
+| true | Default schema changed to [hive.default] |
++-------+-------------------------------------------+
+1 row selected
</code></pre></div>
<h3 id="return-sales-totals-by-month:">Return sales totals by month:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select `month`, sum(order_total)
from orders group by `month` order by 2 desc;
-+------------+------------+
-| month | EXPR$1 |
-+------------+------------+
-| June | 950481 |
-| May | 947796 |
-| March | 836809 |
-| April | 807291 |
-| July | 757395 |
-| October | 676236 |
-| August | 572269 |
-| February | 532901 |
-| September | 373100 |
-| January | 346536 |
-+------------+------------+
++------------+---------+
+| month | EXPR$1 |
++------------+---------+
+| June | 950481 |
+| May | 947796 |
+| March | 836809 |
+| April | 807291 |
+| July | 757395 |
+| October | 676236 |
+| August | 572269 |
+| February | 532901 |
+| September | 373100 |
+| January | 346536 |
++------------+---------+
+10 rows selected
</code></pre></div>
<p>Drill supports SQL aggregate functions such as SUM, MAX, AVG, and MIN.
Standard SQL clauses work in the same way in Drill queries as in relational
@@ -974,31 +975,31 @@ is a reserved word in SQL.</p>
<h3 id="return-the-top-20-sales-totals-by-month-and-state:">Return the top 20 sales totals by month and state:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select `month`, state, sum(order_total) as sales from orders group by `month`, state
order by 3 desc limit 20;
-+------------+------------+------------+
-| month | state | sales |
-+------------+------------+------------+
-| May | ca | 119586 |
-| June | ca | 116322 |
-| April | ca | 101363 |
-| March | ca | 99540 |
-| July | ca | 90285 |
-| October | ca | 80090 |
-| June | tx | 78363 |
-| May | tx | 77247 |
-| March | tx | 73815 |
-| August | ca | 71255 |
-| April | tx | 68385 |
-| July | tx | 63858 |
-| February | ca | 63527 |
-| June | fl | 62199 |
-| June | ny | 62052 |
-| May | fl | 61651 |
-| May | ny | 59369 |
-| October | tx | 55076 |
-| March | fl | 54867 |
-| March | ny | 52101 |
-+------------+------------+------------+
-20 rows selected
++-----------+--------+---------+
+| month | state | sales |
++-----------+--------+---------+
+| May | ca | 119586 |
+| June | ca | 116322 |
+| April | ca | 101363 |
+| March | ca | 99540 |
+| July | ca | 90285 |
+| October | ca | 80090 |
+| June | tx | 78363 |
+| May | tx | 77247 |
+| March | tx | 73815 |
+| August | ca | 71255 |
+| April | tx | 68385 |
+| July | tx | 63858 |
+| February | ca | 63527 |
+| June | fl | 62199 |
+| June | ny | 62052 |
+| May | fl | 61651 |
+| May | ny | 59369 |
+| October | tx | 55076 |
+| March | fl | 54867 |
+| March | ny | 52101 |
++-----------+--------+---------+
+20 rows selected
</code></pre></div>
<p>Note the alias for the result of the SUM function. Drill supports column
aliases and table aliases.</p>
@@ -1009,27 +1010,28 @@ aliases and table aliases.</p>
<h3 id="set-the-workspace-to-dfs.clicks">Set the workspace to dfs.clicks</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use dfs.clicks;
-+------------+------------+
-| ok | summary |
-+------------+------------+
-| true | Default schema changed to 'dfs.clicks' |
-+------------+------------+
++-------+-----------------------------------------+
+| ok | summary |
++-------+-----------------------------------------+
+| true | Default schema changed to [dfs.clicks] |
++-------+-----------------------------------------+
1 row selected
</code></pre></div>
<h3 id="return-total-number-of-clicks-for-devices-that-indicate-high-click-throughs:">Return total number of clicks for devices that indicate high click-throughs:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select t.user_info.device, count(*) from `clicks/clicks.json` t
group by t.user_info.device
having count(*) > 1000;
-+------------+------------+
-| EXPR$0 | EXPR$1 |
-+------------+------------+
-| IOS5 | 11814 |
-| AOS4.2 | 5986 |
-| IOS6 | 4464 |
-| IOS7 | 3135 |
-| AOS4.4 | 1562 |
-| AOS4.3 | 3039 |
-+------------+------------+
++---------+---------+
+| EXPR$0 | EXPR$1 |
++---------+---------+
+| IOS5 | 11814 |
+| AOS4.2 | 5986 |
+| IOS6 | 4464 |
+| IOS7 | 3135 |
+| AOS4.4 | 1562 |
+| AOS4.3 | 3039 |
++---------+---------+
+6 rows selected
</code></pre></div>
<p>The aggregate is a count of the records for each different mobile device in
the clickstream data. Only the activity for the devices that registered more
@@ -1059,19 +1061,23 @@ duplicate rows from those files): <code>clicks.campaign.json</code> and <code>cl
<h2 id="subqueries">Subqueries</h2>
<h3 id="set-the-workspace-to-hive:">Set the workspace to hive:</h3>
-<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use hive;
-+------------+------------+
-| ok | summary |
-+------------+------------+
-| true | Default schema changed to 'hive' |
-+------------+------------+
+<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use hive.`default`;
++-------+-------------------------------------------+
+| ok | summary |
++-------+-------------------------------------------+
+| true | Default schema changed to [hive.default] |
++-------+-------------------------------------------+
+1 row selected
</code></pre></div>
<h3 id="compare-order-totals-across-states:">Compare order totals across states:</h3>
-<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select o1.cust_id, sum(o1.order_total) as ny_sales,
-(select sum(o2.order_total) from hive.orders o2
-where o1.cust_id=o2.cust_id and state='ca') as ca_sales
-from hive.orders o1 where o1.state='ny' group by o1.cust_id
-order by cust_id limit 20;
+<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select ny_sales.cust_id, ny_sales.total_orders, ca_sales.total_orders
+from
+(select o.cust_id, sum(o.order_total) as total_orders from hive.orders o where state = 'ny' group by o.cust_id) ny_sales
+left outer join
+(select o.cust_id, sum(o.order_total) as total_orders from hive.orders o where state = 'ca' group by o.cust_id) ca_sales
+on ny_sales.cust_id = ca_sales.cust_id
+order by ny_sales.cust_id
+limit 20;
+------------+------------+------------+
| cust_id | ny_sales | ca_sales |
+------------+------------+------------+
@@ -1097,26 +1103,18 @@ order by cust_id limit 20;
| 1024 | 233 | null |
+------------+------------+------------+
</code></pre></div>
-<p>This example demonstrates Drill support for correlated subqueries. This query
-uses a subquery in the select list and correlates the result of the subquery
-with the outer query, using the cust_id column reference. The subquery returns
-the sum of order totals for California, and the outer query returns the
-equivalent sum, for the same cust_id, for New York.</p>
-
-<p>The result set is sorted by the cust_id and presents the sales totals side by
-side for easy comparison. Null values indicate customer IDs that did not
-register any sales in that state.</p>
+<p>This example demonstrates Drill support for subqueries. </p>
<h2 id="cast-function">CAST Function</h2>
<h3 id="use-the-maprdb-workspace:">Use the maprdb workspace:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use maprdb;
-+------------+------------+
-| ok | summary |
-+------------+------------+
-| true | Default schema changed to 'maprdb' |
-+------------+------------+
-1 row selected
++-------+-------------------------------------+
+| ok | summary |
++-------+-------------------------------------+
+| true | Default schema changed to [maprdb] |
++-------+-------------------------------------+
+1 row selected (0.088 seconds)
</code></pre></div>
<h3 id="return-customer-data-with-appropriate-data-types">Return customer data with appropriate data types</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select cast(row_key as int) as cust_id, cast(t.personal.name as varchar(20)) as name,
@@ -1124,16 +1122,15 @@ cast(t.personal.gender as varchar(10)) as gender, cast(t.personal.age as varchar
cast(t.address.state as varchar(4)) as state, cast(t.loyalty.agg_rev as dec(7,2)) as agg_rev,
cast(t.loyalty.membership as varchar(20)) as membership
from customers t limit 5;
-+------------+------------+------------+------------+------------ +------------+------------+
-| cust_id | name | gender | age | state | agg_rev | membership |
-+------------+------------+------------+------------+------------+------------+------------+
-| 10001 | "Corrine Mecham" | "FEMALE" | "15-20" | "va" | 197.00 | "silver" |
-| 10005 | "Brittany Park" | "MALE" | "26-35" | "in" | 230.00 | "silver" |
-| 10006 | "Rose Lokey" | "MALE" | "26-35" | "ca" | 250.00 | "silver" |
-| 10007 | "James Fowler" | "FEMALE" | "51-100" | "me" | 263.00 | "silver" |
-| 10010 | "Guillermo Koehler" | "OTHER" | "51-100" | "mn" | 202.00 | "silver" |
-+------------+------------+------------+------------+------------+------------+------------+
-5 rows selected
++----------+----------------------+-----------+-----------+--------+----------+-------------+
+| cust_id | name | gender | age | state | agg_rev | membership |
++----------+----------------------+-----------+-----------+--------+----------+-------------+
+| 10001 | "Corrine Mecham" | "FEMALE" | "15-20" | "va" | 197.00 | "silver" |
+| 10005 | "Brittany Park" | "MALE" | "26-35" | "in" | 230.00 | "silver" |
+| 10006 | "Rose Lokey" | "MALE" | "26-35" | "ca" | 250.00 | "silver" |
+| 10007 | "James Fowler" | "FEMALE" | "51-100" | "me" | 263.00 | "silver" |
+| 10010 | "Guillermo Koehler" | "OTHER" | "51-100" | "mn" | 202.00 | "silver" |
++----------+----------------------+-----------+-----------+--------+----------+-------------+
</code></pre></div>
<p>Note the following features of this query:</p>
@@ -1159,11 +1156,12 @@ from customers t limit 1;
</code></pre></div>
<h2 id="create-view-command">CREATE VIEW Command</h2>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use dfs.views;
-+------------+------------+
-| ok | summary |
-+------------+------------+
-| true | Default schema changed to 'dfs.views' |
-+------------+------------+
++-------+----------------------------------------+
+| ok | summary |
++-------+----------------------------------------+
+| true | Default schema changed to [dfs.views] |
++-------+----------------------------------------+
+1 row selected
</code></pre></div>
<h3 id="use-a-mutable-workspace:">Use a mutable workspace:</h3>
@@ -1180,11 +1178,11 @@ cast(t.address.state as varchar(4)) as state,
cast(t.loyalty.agg_rev as dec(7,2)) as agg_rev,
cast(t.loyalty.membership as varchar(20)) as membership
from maprdb.customers t;
-+------------+------------+
-| ok | summary |
-+------------+------------+
-| true | View 'custview' replaced successfully in 'dfs.views' schema |
-+------------+------------+
++-------+-------------------------------------------------------------+
+| ok | summary |
++-------+-------------------------------------------------------------+
+| true | View 'custview' created successfully in 'dfs.views' schema |
++-------+-------------------------------------------------------------+
1 row selected
</code></pre></div>
<p>Drill provides CREATE OR REPLACE VIEW syntax similar to relational databases
@@ -1206,11 +1204,12 @@ supports the creation of metadata in the file system.</p>
<h3 id="query-data-from-the-view:">Query data from the view:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select * from custview limit 1;
-+------------+------------+------------+------------+------------+------------+------------+
-| cust_id | name | gender | age | state | agg_rev | membership |
-+------------+------------+------------+------------+------------+------------+------------+
-| 10001 | "Corrine Mecham" | "FEMALE" | "15-20" | "va" | 197.00 | "silver" |
-+------------+------------+------------+------------+------------+------------+------------+
++----------+-------------------+-----------+----------+--------+----------+-------------+
+| cust_id | name | gender | age | state | agg_rev | membership |
++----------+-------------------+-----------+----------+--------+----------+-------------+
+| 10001 | "Corrine Mecham" | "FEMALE" | "15-20" | "va" | 197.00 | "silver" |
++----------+-------------------+-----------+----------+--------+----------+-------------+
+1 row selected
</code></pre></div>
<p>Once the users get an idea on what data is available by exploring it directly
from file system , views can be used as a way to take the data in downstream
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/docs/lesson-3-run-queries-on-complex-data-types/index.html
----------------------------------------------------------------------
diff --git a/docs/lesson-3-run-queries-on-complex-data-types/index.html b/docs/lesson-3-run-queries-on-complex-data-types/index.html
index 372146f..6d48126 100644
--- a/docs/lesson-3-run-queries-on-complex-data-types/index.html
+++ b/docs/lesson-3-run-queries-on-complex-data-types/index.html
@@ -950,28 +950,30 @@ exist. Here is a visual example of how this works:</p>
<h3 id="set-workspace-to-dfs.logs:">Set workspace to dfs.logs:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use dfs.logs;
-+------------+------------+
-| ok | summary |
-+------------+------------+
-| true | Default schema changed to 'dfs.logs' |
-+------------+------------+
++-------+---------------------------------------+
+| ok | summary |
++-------+---------------------------------------+
+| true | Default schema changed to [dfs.logs] |
++-------+---------------------------------------+
+1 row selected
</code></pre></div>
<h3 id="query-logs-data-for-a-specific-year:">Query logs data for a specific year:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select * from logs where dir0='2013' limit 10;
-+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
-| dir0 | dir1 | trans_id | date | time | cust_id | device | state | camp_id | keywords | prod_id | purch_flag |
-+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
-| 2013 | 2 | 12115 | 02/23/2013 | 19:48:24 | 3 | IOS5 | az | 5 | who's | 6 | false |
-| 2013 | 2 | 12127 | 02/26/2013 | 19:42:03 | 11459 | IOS5 | wa | 10 | for | 331 | false |
-| 2013 | 2 | 12138 | 02/09/2013 | 05:49:01 | 1 | IOS6 | ca | 7 | minutes | 500 | false |
-| 2013 | 2 | 12139 | 02/23/2013 | 06:58:20 | 1 | AOS4.4 | ms | 7 | i | 20 | false |
-| 2013 | 2 | 12145 | 02/10/2013 | 10:14:56 | 10 | IOS5 | mi | 6 | wrong | 42 | false |
-| 2013 | 2 | 12157 | 02/15/2013 | 02:49:22 | 102 | IOS5 | ny | 5 | want | 95 | false |
-| 2013 | 2 | 12176 | 02/19/2013 | 08:39:02 | 28 | IOS5 | or | 0 | and | 351 | false |
-| 2013 | 2 | 12194 | 02/24/2013 | 08:26:17 | 125445 | IOS5 | ar | 0 | say | 500 | true |
-| 2013 | 2 | 12236 | 02/05/2013 | 01:40:05 | 10 | IOS5 | nj | 2 | sir | 393 | false |
-| 2013 | 2 | 12249 | 02/03/2013 | 04:45:47 | 21725 | IOS5 | nj | 5 | no | 414 | false |
-+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
++-------+-------+-----------+-------------+-----------+----------+---------+--------+----------+-----------+----------+-------------+
+| dir0 | dir1 | trans_id | date | time | cust_id | device | state | camp_id | keywords | prod_id | purch_flag |
++-------+-------+-----------+-------------+-----------+----------+---------+--------+----------+-----------+----------+-------------+
+| 2013 | 8 | 12104 | 08/29/2013 | 09:34:37 | 962 | IOS5 | ma | 3 | milhouse | 17 | false |
+| 2013 | 8 | 12132 | 08/23/2013 | 01:11:25 | 4 | IOS7 | mi | 11 | hi | 439 | false |
+| 2013 | 8 | 12177 | 08/14/2013 | 13:48:50 | 23 | AOS4.2 | il | 14 | give | 382 | false |
+| 2013 | 8 | 12180 | 08/03/2013 | 20:48:45 | 1509 | IOS7 | ca | 0 | i'm | 340 | false |
+| 2013 | 8 | 12187 | 08/16/2013 | 10:28:07 | 0 | IOS5 | ny | 16 | clicking | 11 | false |
+| 2013 | 8 | 12190 | 08/10/2013 | 14:16:50 | 9 | IOS5 | va | 3 | a | 495 | false |
+| 2013 | 8 | 12200 | 08/02/2013 | 20:54:38 | 42219 | IOS5 | ia | 0 | what's | 346 | false |
+| 2013 | 8 | 12210 | 08/05/2013 | 20:12:24 | 8073 | IOS5 | sc | 5 | if | 33 | false |
+| 2013 | 8 | 12235 | 08/28/2013 | 07:49:45 | 595 | IOS5 | tx | 2 | that | 51 | false |
+| 2013 | 8 | 12239 | 08/13/2013 | 03:24:31 | 2 | IOS5 | or | 6 | haw-haw | 40 | false |
++-------+-------+-----------+-------------+-----------+----------+---------+--------+----------+-----------+----------+-------------+
+10 rows selected
</code></pre></div>
<p>This query constrains files inside the subdirectory named 2013. The variable
dir0 refers to the first level down from logs, dir1 to the next level, and so
@@ -984,33 +986,33 @@ an IOS5 device in August 2013.</p>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select dir0 as yr, dir1 as mth, cust_id from logs
where dir0='2013' and dir1='8' and device='IOS5' and purch_flag='true'
order by `date`;
-+------------+------------+------------+
-| yr | mth | cust_id |
-+------------+------------+------------+
-| 2013 | 8 | 4 |
-| 2013 | 8 | 521 |
-| 2013 | 8 | 1 |
-| 2013 | 8 | 2 |
++-------+------+----------+
+| yr | mth | cust_id |
++-------+------+----------+
+| 2013 | 8 | 4 |
+| 2013 | 8 | 521 |
+| 2013 | 8 | 1 |
+| 2013 | 8 | 2 |
...
</code></pre></div>
<h3 id="return-monthly-counts-per-customer-for-a-given-year:">Return monthly counts per customer for a given year:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select cust_id, dir1 month_no, count(*) month_count from logs
where dir0=2014 group by cust_id, dir1 order by cust_id, month_no limit 10;
-+------------+------------+-------------+
-| cust_id | month_no | month_count |
-+------------+------------+-------------+
-| 0 | 1 | 143 |
-| 0 | 2 | 118 |
-| 0 | 3 | 117 |
-| 0 | 4 | 115 |
-| 0 | 5 | 137 |
-| 0 | 6 | 117 |
-| 0 | 7 | 142 |
-| 0 | 8 | 19 |
-| 1 | 1 | 66 |
-| 1 | 2 | 59 |
-+------------+------------+-------------+
++----------+-----------+--------------+
+| cust_id | month_no | month_count |
++----------+-----------+--------------+
+| 0 | 1 | 143 |
+| 0 | 2 | 118 |
+| 0 | 3 | 117 |
+| 0 | 4 | 115 |
+| 0 | 5 | 137 |
+| 0 | 6 | 117 |
+| 0 | 7 | 142 |
+| 0 | 8 | 19 |
+| 1 | 1 | 66 |
+| 1 | 2 | 59 |
++----------+-----------+--------------+
10 rows selected
</code></pre></div>
<p>This query groups the aggregate function by customer ID and month for one
@@ -1024,11 +1026,12 @@ JavaScript notation, you will already know how some of these extensions work.</p
<h3 id="set-the-workspace-to-dfs.clicks:">Set the workspace to dfs.clicks:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use dfs.clicks;
-+------------+------------+
-| ok | summary |
-+------------+------------+
-| true | Default schema changed to 'dfs.clicks' |
-+------------+------------+
++-------+-----------------------------------------+
+| ok | summary |
++-------+-----------------------------------------+
+| true | Default schema changed to [dfs.clicks] |
++-------+-----------------------------------------+
+1 row selected
</code></pre></div>
<h3 id="explore-clickstream-data:">Explore clickstream data:</h3>
@@ -1036,29 +1039,31 @@ JavaScript notation, you will already know how some of these extensions work.</p
arrays within arrays. The following queries show how to access this complex
data.</p>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select * from `clicks/clicks.json` limit 5;
-+------------+------------+------------+------------+------------+
-| trans_id | date | time | user_info | trans_info |
-+------------+------------+------------+------------+------------+
-| 31920 | 2014-04-26 | 12:17:12 | {"cust_id":22526,"device":"IOS5","state":"il"} | {"prod_id":[174,2],"purch_flag":"false"} |
-| 31026 | 2014-04-20 | 13:50:29 | {"cust_id":16368,"device":"AOS4.2","state":"nc"} | {"prod_id":[],"purch_flag":"false"} |
-| 33848 | 2014-04-10 | 04:44:42 | {"cust_id":21449,"device":"IOS6","state":"oh"} | {"prod_id":[582],"purch_flag":"false"} |
-| 32383 | 2014-04-18 | 06:27:47 | {"cust_id":20323,"device":"IOS5","state":"oh"} | {"prod_id":[710,47],"purch_flag":"false"} |
-| 32359 | 2014-04-19 | 23:13:25 | {"cust_id":15360,"device":"IOS5","state":"ca"} | {"prod_id": [0,8,170,173,1,124,46,764,30,711,0,3,25],"purch_flag":"true"} |
-+------------+------------+------------+------------+------------+
++-----------+-------------+-----------+---------------------------------------------------+---------------------------------------------------------------------------+
+| trans_id | date | time | user_info | trans_info |
++-----------+-------------+-----------+---------------------------------------------------+---------------------------------------------------------------------------+
+| 31920 | 2014-04-26 | 12:17:12 | {"cust_id":22526,"device":"IOS5","state":"il"} | {"prod_id":[174,2],"purch_flag":"false"} |
+| 31026 | 2014-04-20 | 13:50:29 | {"cust_id":16368,"device":"AOS4.2","state":"nc"} | {"prod_id":[],"purch_flag":"false"} |
+| 33848 | 2014-04-10 | 04:44:42 | {"cust_id":21449,"device":"IOS6","state":"oh"} | {"prod_id":[582],"purch_flag":"false"} |
+| 32383 | 2014-04-18 | 06:27:47 | {"cust_id":20323,"device":"IOS5","state":"oh"} | {"prod_id":[710,47],"purch_flag":"false"} |
+| 32359 | 2014-04-19 | 23:13:25 | {"cust_id":15360,"device":"IOS5","state":"ca"} | {"prod_id":[0,8,170,173,1,124,46,764,30,711,0,3,25],"purch_flag":"true"} |
++-----------+-------------+-----------+---------------------------------------------------+---------------------------------------------------------------------------+
+5 rows selected
</code></pre></div>
<h3 id="unpack-the-user_info-column:">Unpack the user_info column:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select t.user_info.cust_id as custid, t.user_info.device as device,
t.user_info.state as state
from `clicks/clicks.json` t limit 5;
-+------------+------------+------------+
-| custid | device | state |
-+------------+------------+------------+
-| 22526 | IOS5 | il |
-| 16368 | AOS4.2 | nc |
-| 21449 | IOS6 | oh |
-| 20323 | IOS5 | oh |
-| 15360 | IOS5 | ca |
-+------------+------------+------------+
++---------+---------+--------+
+| custid | device | state |
++---------+---------+--------+
+| 22526 | IOS5 | il |
+| 16368 | AOS4.2 | nc |
+| 21449 | IOS6 | oh |
+| 20323 | IOS5 | oh |
+| 15360 | IOS5 | ca |
++---------+---------+--------+
+5 rows selected (0.171 seconds)
</code></pre></div>
<p>This query uses a simple table.column.column notation to extract nested column
data. For example:</p>
@@ -1074,15 +1079,16 @@ parsed as table names by the SQL parser.</p>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select t.trans_info.prod_id as prodid, t.trans_info.purch_flag as
purchased
from `clicks/clicks.json` t limit 5;
-+------------+------------+
-| prodid | purchased |
-+------------+------------+
-| [174,2] | false |
-| [] | false |
-| [582] | false |
-| [710,47] | false |
-| [0,8,170,173,1,124,46,764,30,711,0,3,25] | true |
- 5 rows selected
++-------------------------------------------+------------+
+| prodid | purchased |
++-------------------------------------------+------------+
+| [174,2] | false |
+| [] | false |
+| [582] | false |
+| [710,47] | false |
+| [0,8,170,173,1,124,46,764,30,711,0,3,25] | true |
++-------------------------------------------+------------+
+5 rows selected
</code></pre></div>
<p>Note that this result reveals that the prod_id column contains an array of IDs
(one or more product ID values per row, separated by commas). The next step
@@ -1186,46 +1192,52 @@ quickly create a Drill table from the results of the query.</p>
<h3 id="continue-to-use-the-dfs.clicks-workspace">Continue to use the dfs.clicks workspace</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> use dfs.clicks;
-+------------+------------+
-| ok | summary |
-+------------+------------+
-| true | Default schema changed to 'dfs.clicks' |
-+------------+------------+
++-------+-----------------------------------------+
+| ok | summary |
++-------+-----------------------------------------+
+| true | Default schema changed to [dfs.clicks] |
++-------+-----------------------------------------+
+1 row selected (1.61 seconds)
</code></pre></div>
<h3 id="return-product-searches-for-high-value-customers:">Return product searches for high-value customers:</h3>
-<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select o.cust_id, o.order_total, t.trans_info.prod_id[0] as prod_id
-from hive.orders as o, `clicks/clicks.json` t
-where o.cust_id=t.user_info.cust_id
-and o.order_total > (select avg(inord.order_total)
-from hive.orders inord where inord.state = o.state);
-+------------+-------------+------------+
-| cust_id | order_total | prod_id |
-+------------+-------------+------------+
-...
-| 9650 | 69 | 16 |
-| 9650 | 69 | 560 |
-| 9650 | 69 | 959 |
-| 9654 | 76 | 768 |
-| 9656 | 76 | 32 |
-| 9656 | 76 | 16 |
-...
-+------------+-------------+------------+
-106,281 rows selected
+<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select o.cust_id, o.order_total, t.trans_info.prod_id[0] as prod_id
+from
+hive.orders as o
+join `clicks/clicks.json` t
+on o.cust_id=t.user_info.cust_id
+where o.order_total > (select avg(inord.order_total)
+ from hive.orders inord
+ where inord.state = o.state);
++----------+--------------+----------+
+| cust_id | order_total | prod_id |
++----------+--------------+----------+
+| 1328 | 73 | 26 |
+| 1328 | 146 | 26 |
+| 1328 | 56 | 26 |
+| 1328 | 91 | 26 |
+| 1328 | 74 | 26 |
+ ...
++----------+--------------+----------+
+107,482 rows selected (14.863 seconds)
</code></pre></div>
<p>This query returns a list of products that are being searched for by customers
who have made transactions that are above the average in their states.</p>
<h3 id="materialize-the-result-of-the-previous-query:">Materialize the result of the previous query:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> create table product_search as select o.cust_id, o.order_total, t.trans_info.prod_id[0] as prod_id
-from hive.orders as o, `clicks/clicks.json` t
-where o.cust_id=t.user_info.cust_id and o.order_total > (select avg(inord.order_total)
-from hive.orders inord where inord.state = o.state);
-+------------+---------------------------+
-| Fragment | Number of records written |
-+------------+---------------------------+
-| 0_0 | 106281 |
-+------------+---------------------------+
-1 row selected
+from
+hive.orders as o
+join `clicks/clicks.json` t
+on o.cust_id=t.user_info.cust_id
+where o.order_total > (select avg(inord.order_total)
+ from hive.orders inord
+ where inord.state = o.state);
++-----------+----------------------------+
+| Fragment | Number of records written |
++-----------+----------------------------+
+| 0_0 | 107482 |
++-----------+----------------------------+
+1 row selected (3.488 seconds)
</code></pre></div>
<p>This example uses a CTAS statement to create a table based on a correlated
subquery that you ran previously. This table contains all of the rows that the
@@ -1238,12 +1250,12 @@ in csv, parquet, and json formats.</p>
<p>This example simply checks that the CTAS statement worked by verifying the
number of rows in the table.</p>
<div class="highlight"><pre><code class="language-text" data-lang="text">0: jdbc:drill:> select count(*) from product_search;
-+------------+
-| EXPR$0 |
-+------------+
-| 106281 |
-+------------+
-1 row selected
++---------+
+| EXPR$0 |
++---------+
+| 107482 |
++---------+
+1 row selected (0.155 seconds)
</code></pre></div>
<h3 id="find-the-storage-file-for-the-table:">Find the storage file for the table:</h3>
<div class="highlight"><pre><code class="language-text" data-lang="text">[root@maprdemo product_search]# cd /mapr/demo.mapr.com/data/nested/product_search
@@ -1257,7 +1269,7 @@ drwxr-xr-x. 4 root root 2 Sep 15 13:41 ..
stored in the location defined by the dfs.clicks workspace:</p>
<div class="highlight"><pre><code class="language-text" data-lang="text">"location": "http://demo.mapr.com/data/nested"
</code></pre></div>
-<p>with a subdirectory that has the same name as the table you created.</p>
+<p>There is a subdirectory that has the same name as the table you created.</p>
<h2 id="what's-next">What's Next</h2>
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/docs/supported-data-types/index.html
----------------------------------------------------------------------
diff --git a/docs/supported-data-types/index.html b/docs/supported-data-types/index.html
index 0cebb90..e0dcee5 100644
--- a/docs/supported-data-types/index.html
+++ b/docs/supported-data-types/index.html
@@ -988,7 +988,7 @@
<td>2015-12-30 22:55:55.23</td>
</tr>
<tr>
-<td>CHARACTER VARYING, CHARACTER, CHAR, or VARCHAR***</td>
+<td>CHARACTER VARYING, CHARACTER, CHAR,*** or VARCHAR</td>
<td>UTF8-encoded variable-length string. The default limit is 1 character. The maximum character limit is 2,147,483,647.</td>
<td>CHAR(30) casts data to a 30-character string maximum.</td>
</tr>
@@ -1000,7 +1000,7 @@
<h2 id="enabling-the-decimal-type">Enabling the DECIMAL Type</h2>
-<p>To enable the DECIMAL type, set the <code>planner.enable_decimal_data_type</code> option to <code>true</code>. Enable the DECIMAL data type if performance is not an issue.</p>
+<p>To enable the DECIMAL type, set the <code>planner.enable_decimal_data_type</code> option to <code>true</code>. The DECIMAL type is released as an alpha feature and not recommended for production use.</p>
<div class="highlight"><pre><code class="language-text" data-lang="text"> ALTER SYSTEM SET `planner.enable_decimal_data_type` = true;
+-------+--------------------------------------------+
@@ -1039,9 +1039,12 @@ Implicitly casts Parquet data to the SQL types shown in <a href="/docs/parquet-f
Implicitly casts all textual data to VARCHAR.</li>
</ul>
-<h2 id="precedence-of-data-types">Precedence of Data Types</h2>
+<h2 id="explicit-casting-precedence-of-data-types">Explicit Casting Precedence of Data Types</h2>
-<p>The following list includes data types Drill uses in descending order of precedence. As shown in the table, you can cast a NULL value, which has the lowest precedence, to any other type; you can cast a SMALLINT (not supported in this release) value to INT. You cannot cast an INT value to SMALLINT due to possible precision loss. Drill might deviate from these precedence rules for performance reasons. Under certain circumstances, such as queries involving SUBSTR and CONCAT functions, Drill reverses the order of precedence and allows a cast to VARCHAR from a type of higher precedence than VARCHAR, such as BIGINT.</p>
+<p>The following list includes data types Drill uses in descending order of precedence. Casting precedence shown in the following table applies to the implicit casting that Drill performs. For example, Drill might implicitly cast data when a query includes a function or filter on mismatched data types:</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">SELECT myBigInt FROM mytable WHERE myBigInt = 2.5;
+</code></pre></div>
+<p>As shown in the table, you can cast a NULL value, which has the lowest precedence, to any other type; you can cast a SMALLINT (not supported in this release) value to INT. Drill might deviate from these precedence rules for performance reasons. Under certain circumstances, such as queries involving SUBSTR and CONCAT functions, Drill reverses the order of precedence and allows a cast to VARCHAR from a type of higher precedence than VARCHAR, such as BIGINT.</p>
<h3 id="casting-precedence">Casting Precedence</h3>
@@ -1116,8 +1119,8 @@ Implicitly casts all textual data to VARCHAR.</li>
<tr>
<td>21</td>
<td>NULL (lowest)</td>
-<td></td>
-<td></td>
+<td>21</td>
+<td>NULL (lowest)</td>
</tr>
</tbody></table>
@@ -1178,7 +1181,7 @@ Converts a string to TIMESTAMP.</li>
</tr>
<tr>
<td>SMALLINT*</td>
-<td></td>
+<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
@@ -1191,7 +1194,7 @@ Converts a string to TIMESTAMP.</li>
<tr>
<td>INT</td>
<td>yes</td>
-<td>no</td>
+<td>yes</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
@@ -1242,7 +1245,7 @@ Converts a string to TIMESTAMP.</li>
<td>yes</td>
<td>yes</td>
<td>yes</td>
-<td>no</td>
+<td>yes</td>
<td>yes</td>
<td>no</td>
<td>yes</td>
@@ -1255,7 +1258,7 @@ Converts a string to TIMESTAMP.</li>
<td>yes</td>
<td>yes</td>
<td>yes</td>
-<td>no</td>
+<td>char</td>
<td>yes</td>
<td>yes</td>
<td>yes</td>
@@ -1282,7 +1285,7 @@ Converts a string to TIMESTAMP.</li>
<td>yes</td>
<td>yes</td>
<td>no</td>
-<td>yes</td>
+<td>no</td>
</tr>
<tr>
<td>VARBINARY**</td>
@@ -1299,9 +1302,16 @@ Converts a string to TIMESTAMP.</li>
</tbody></table>
<p>* Not supported in this release.<br>
-** Used to cast binary data coming to/from sources such as MapR-DB/HBase.<br>
+** Used to cast binary UTF-8 data coming to/from sources such as MapR-DB/HBase.<br>
*** You cannot convert a character string having a decimal point to an INT or BIGINT. </p>
+<div class="admonition note">
+ <p class="first admonition-title">Note</p>
+ <p class="last">The CAST function does not support all representations of FIXEDBINARY. Only the UTF-8 format is supported. </p>
+</div>
+
+<p>If your FIXEDBINARY or VARBINARY data is in a format other than UTF-8, such as big endian, use the CONVERT_TO/FROM functions instead of CAST.</p>
+
<h3 id="date-and-time-data-types">Date and Time Data Types</h3>
<table><thead>
@@ -1407,12 +1417,14 @@ Converts a string to TIMESTAMP.</li>
</tr>
</tbody></table>
-<p>* Used to cast binary data coming to/from sources such as MapR-DB/HBase. </p>
+<p>* Used to cast binary UTF-8 data coming to/from sources such as MapR-DB/HBase. </p>
<h2 id="convert_to-and-convert_from-data-types">CONVERT_TO and CONVERT_FROM Data Types</h2>
-<p>You use the CONVERT_TO and CONVERT_FROM data types as arguments to the CONVERT_TO
-and CONVERT_FROM functions. CONVERT_FROM and CONVERT_TO methods transform a known binary representation/encoding to a Drill internal format. </p>
+<p>CONVERT_TO converts data to binary from the input type. CONVERT_FROM converts data from binary to the input type. For example, the following CONVERT_TO function converts an integer in big endian format to VARBINARY:</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">CONVERT_TO(mycolumn, 'INT_BE')
+</code></pre></div>
+<p>CONVERT_FROM and CONVERT_TO methods transform a known binary representation/encoding to a Drill internal format. </p>
<p>We recommend storing HBase/MapR-DB data in a binary representation rather than
a string representation. Use the *_BE types to store integer data types in an HBase or Mapr-DB table. INT is a 4-byte little endian signed integer. INT_BE is a 4-byte big endian signed integer. The comparison order of *_BE encoded bytes is the same as the integer value itself if the bytes are unsigned or positive. Using a *_BE type facilitates scan range pruning and filter pushdown into HBase scan. </p>
http://git-wip-us.apache.org/repos/asf/drill-site/blob/1e0ae343/download/index.html
----------------------------------------------------------------------
diff --git a/download/index.html b/download/index.html
index 29263b2..1eac652 100644
--- a/download/index.html
+++ b/download/index.html
@@ -119,22 +119,22 @@
</div>
<div class="int_text" align="left"><link href="/css/download.css" rel="stylesheet" type="text/css">
-<p>Drill 0.9 was released on May 4, 2015.</p>
+<p>Drill 1.0 was released on May 19, 2015.</p>
<div id="download_bar">
<div class="table">
<ul id="download_buttons">
-<li><a href="http://www.apache.org/dyn/closer.cgi/drill/drill-0.9.0/apache-drill-0.9.0.tar.gz" class="find" id="apachemirror">Find an Apache Mirror</a></li>
-<li><a href="http://getdrill.org/drill/download/apache-drill-0.9.0.tar.gz" rel="nofollow" class="dl" id="directdownload">Direct File Download</a></li>
+<li><a href="http://www.apache.org/dyn/closer.cgi/drill/drill-1.0.0/apache-drill-1.0.0.tar.gz" class="find" id="apachemirror">Find an Apache Mirror</a></li>
+<li><a href="http://getdrill.org/drill/download/apache-drill-1.0.0.tar.gz" rel="nofollow" class="dl" id="directdownload">Direct File Download</a></li>
<li><a href="/docs/interfaces-introduction/" class="dl">Client Drivers (ODBC/JDBC)</a></li>
</ul>
</div>
</div>
-<p>Additional resources for Drill 0.9:</p>
+<p>Additional resources for Drill 1.0:</p>
<ul>
-<li><a href="/docs/apache-drill-0-9-0-release-notes/">Release notes</a></li>
-<li><a href="https://github.com/apache/drill/tree/0.9.0">Source code</a></li>
+<li><a href="/docs/apache-drill-1-0-0-release-notes/">Release notes</a></li>
+<li><a href="https://github.com/apache/drill/tree/1.0.0">Source code</a></li>
</ul>
<p>If you're looking for an older release, see the <a href="/docs/release-notes/">release notes</a>.