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/01/15 06:05:30 UTC

[6/6] drill git commit: Added Drill docs

Added Drill docs


Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/84b7b36d
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/84b7b36d
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/84b7b36d

Branch: refs/heads/gh-pages
Commit: 84b7b36d96875c19cef3bd3395a26e9f129c5d53
Parents: c37bc59
Author: Tomer Shiran <ts...@gmail.com>
Authored: Wed Jan 14 21:05:10 2015 -0800
Committer: Tomer Shiran <ts...@gmail.com>
Committed: Wed Jan 14 21:05:10 2015 -0800

----------------------------------------------------------------------
 _config.yml                                     |   3 +
 _docs/001-drill-docs.md                         |   4 +
 _docs/001-user-guide.md                         |   4 -
 _docs/002-admin-guide.md                        |   5 -
 _docs/drill-docs/001-arch.md                    |  58 +++
 _docs/drill-docs/002-tutorial.md                |  58 +++
 _docs/drill-docs/003-yelp.md                    | 402 ++++++++++++++++++
 _docs/drill-docs/004-install.md                 |  20 +
 _docs/drill-docs/005-connect.md                 |  49 +++
 _docs/drill-docs/006-query.md                   |  57 +++
 _docs/drill-docs/006-sql-ref.md                 |  25 ++
 _docs/drill-docs/007-dev-custom-func.md         |  47 +++
 _docs/drill-docs/008-manage.md                  |  23 +
 _docs/drill-docs/009-develop.md                 |  16 +
 _docs/drill-docs/010-rn.md                      | 192 +++++++++
 _docs/drill-docs/011-contribute.md              |  11 +
 _docs/drill-docs/012-sample-ds.md               |  11 +
 _docs/drill-docs/013-design.md                  |  14 +
 _docs/drill-docs/014-progress.md                |   9 +
 _docs/drill-docs/015-archived-pages.md          |   9 +
 _docs/drill-docs/016-bylaws.md                  | 171 ++++++++
 _docs/drill-docs/arch/001-core-mod.md           |  30 ++
 _docs/drill-docs/arch/002-arch-hilite.md        |  15 +
 .../arch/arch-hilite/001-flexibility.md         |  79 ++++
 .../arch/arch-hilite/002-performance.md         |  56 +++
 _docs/drill-docs/archive/001-how-to-demo.md     | 309 ++++++++++++++
 _docs/drill-docs/archive/002-meet-drill.md      |  41 ++
 _docs/drill-docs/connect/001-plugin-reg.md      |  39 ++
 _docs/drill-docs/connect/002-mongo-plugin.md    | 169 ++++++++
 _docs/drill-docs/connect/003-mapr-db-plugin.md  |  32 ++
 .../connect/workspaces/001-workspaces.md        |  82 ++++
 .../drill-docs/connect/workspaces/002-reg-fs.md |  69 +++
 .../connect/workspaces/003-reg-hbase.md         |  34 ++
 .../connect/workspaces/004-reg-hive.md          |  99 +++++
 .../connect/workspaces/005-default-frmt.md      |  61 +++
 _docs/drill-docs/contribute/001-guidelines.md   | 230 ++++++++++
 _docs/drill-docs/contribute/002-ideas.md        | 158 +++++++
 _docs/drill-docs/datasets/001-aol.md            |  47 +++
 _docs/drill-docs/datasets/002-enron.md          |  21 +
 _docs/drill-docs/datasets/003-wikipedia.md      | 105 +++++
 _docs/drill-docs/design/001-plan.md             |  25 ++
 _docs/drill-docs/design/002-rpc.md              |  19 +
 _docs/drill-docs/design/003-query-stages.md     |  42 ++
 _docs/drill-docs/design/004-research.md         |  48 +++
 _docs/drill-docs/design/005-value.md            | 191 +++++++++
 .../drill-docs/dev-custom-fcn/001-dev-simple.md |  51 +++
 .../dev-custom-fcn/002-dev-aggregate.md         |  59 +++
 .../drill-docs/dev-custom-fcn/003-add-custom.md |  28 ++
 .../drill-docs/dev-custom-fcn/004-use-custom.md |  55 +++
 .../dev-custom-fcn/005-cust-interface.md        |  14 +
 _docs/drill-docs/develop/001-compile.md         |  37 ++
 _docs/drill-docs/develop/002-setup.md           |   5 +
 _docs/drill-docs/develop/003-patch-tool.md      | 160 +++++++
 _docs/drill-docs/install/001-drill-in-10.md     | 395 +++++++++++++++++
 _docs/drill-docs/install/002-deploy.md          | 102 +++++
 .../drill-docs/install/003-install-embedded.md  |  30 ++
 .../install/004-install-distributed.md          |  61 +++
 .../install-embedded/001-install-linux.md       |  30 ++
 .../install/install-embedded/002-install-mac.md |  33 ++
 .../install/install-embedded/003-install-win.md |  57 +++
 _docs/drill-docs/manage/001-conf.md             |  20 +
 _docs/drill-docs/manage/002-start-stop.md       |  45 ++
 _docs/drill-docs/manage/003-ports.md            |   9 +
 _docs/drill-docs/manage/004-partition-prune.md  |  75 ++++
 _docs/drill-docs/manage/005-monitor-cancel.md   |  30 ++
 _docs/drill-docs/manage/conf/001-mem-alloc.md   |  31 ++
 _docs/drill-docs/manage/conf/002-startup-opt.md |  50 +++
 _docs/drill-docs/manage/conf/003-plan-exec.md   |  37 ++
 .../drill-docs/manage/conf/004-persist-conf.md  |  93 ++++
 _docs/drill-docs/progress/001-2014-q1.md        | 204 +++++++++
 _docs/drill-docs/query/001-query-fs.md          |  44 ++
 _docs/drill-docs/query/002-query-hbase.md       | 177 ++++++++
 _docs/drill-docs/query/003-query-hive.md        |  67 +++
 _docs/drill-docs/query/004-query-complex.md     |  63 +++
 _docs/drill-docs/query/005-query-info-skema.md  | 109 +++++
 _docs/drill-docs/query/006-query-sys-tbl.md     | 176 ++++++++
 _docs/drill-docs/query/007-interfaces.md        |  16 +
 _docs/drill-docs/query/interfaces/001-jdbc.md   | 138 ++++++
 _docs/drill-docs/query/interfaces/002-odbc.md   |  23 +
 .../query/query-complex/001-sample-donuts.md    |  40 ++
 .../query/query-complex/002-query1-select.md    |  19 +
 .../query/query-complex/003-query2-use-sql.md   |  74 ++++
 .../query/query-complex/004-query3-sel-nest.md  |  50 +++
 .../query-complex/005-query4-sel-multiple.md    |  24 ++
 .../drill-docs/query/query-fs/001-query-json.md |  41 ++
 .../query/query-fs/002-query-parquet.md         |  99 +++++
 .../drill-docs/query/query-fs/003-query-text.md | 120 ++++++
 .../drill-docs/query/query-fs/004-query-dir.md  |  90 ++++
 _docs/drill-docs/rn/001-0.5.0rn.md              |  29 ++
 _docs/drill-docs/rn/002-0.4.0rn.md              |  42 ++
 _docs/drill-docs/rn/003-alpha-rn.md             |  44 ++
 _docs/drill-docs/rn/004-0.6.0-rn.md             |  32 ++
 _docs/drill-docs/rn/005-0.7.0-rn.md             |  56 +++
 _docs/drill-docs/sql-ref/001-data-types.md      |  96 +++++
 _docs/drill-docs/sql-ref/002-operators.md       |  71 ++++
 _docs/drill-docs/sql-ref/003-functions.md       | 185 ++++++++
 _docs/drill-docs/sql-ref/004-nest-functions.md  |  10 +
 _docs/drill-docs/sql-ref/005-cmd-summary.md     |  16 +
 _docs/drill-docs/sql-ref/006-reserved-wds.md    |  16 +
 .../sql-ref/cmd-summary/001-create-table-as.md  | 134 ++++++
 .../sql-ref/cmd-summary/002-explain.md          | 166 ++++++++
 .../sql-ref/cmd-summary/003-select.md           |  85 ++++
 .../sql-ref/cmd-summary/004-show-files.md       |  65 +++
 _docs/drill-docs/sql-ref/data-types/001-date.md | 148 +++++++
 _docs/drill-docs/sql-ref/nested/001-flatten.md  |  89 ++++
 _docs/drill-docs/sql-ref/nested/002-kvgen.md    | 150 +++++++
 .../sql-ref/nested/003-repeated-cnt.md          |  34 ++
 .../drill-docs/tutorial/001-install-sandbox.md  |  56 +++
 _docs/drill-docs/tutorial/002-get2kno-sb.md     | 235 +++++++++++
 _docs/drill-docs/tutorial/003-lesson1.md        | 423 +++++++++++++++++++
 _docs/drill-docs/tutorial/004-lesson2.md        | 392 +++++++++++++++++
 _docs/drill-docs/tutorial/005-lesson3.md        | 379 +++++++++++++++++
 _docs/drill-docs/tutorial/006-summary.md        |  14 +
 .../install-sandbox/001-install-mapr-vm.md      |  55 +++
 .../install-sandbox/002-install-mapr-vb.md      |  72 ++++
 _docs/img/11.png                                | Bin 0 -> 5224 bytes
 _docs/img/18.png                                | Bin 0 -> 22253 bytes
 _docs/img/19.png                                | Bin 0 -> 22248 bytes
 _docs/img/21.png                                | Bin 0 -> 23385 bytes
 _docs/img/30.png                                | Bin 0 -> 50936 bytes
 _docs/img/4.png                                 | Bin 0 -> 41555 bytes
 _docs/img/40.png                                | Bin 0 -> 25898 bytes
 _docs/img/42.png                                | Bin 0 -> 153938 bytes
 _docs/img/46.png                                | Bin 0 -> 3597 bytes
 _docs/img/51.png                                | Bin 0 -> 64520 bytes
 _docs/img/52.png                                | Bin 0 -> 21243 bytes
 _docs/img/53.png                                | Bin 0 -> 52269 bytes
 _docs/img/54.png                                | Bin 0 -> 10704 bytes
 _docs/img/7.png                                 | Bin 0 -> 30755 bytes
 _docs/img/DrillWebUI.png                        | Bin 0 -> 53187 bytes
 _docs/img/DrillbitModules.png                   | Bin 0 -> 54907 bytes
 _docs/img/Overview.png                          | Bin 0 -> 165981 bytes
 _docs/img/StoragePluginConfig.png               | Bin 0 -> 20403 bytes
 _docs/img/drill-runtime.png                     | Bin 0 -> 78592 bytes
 _docs/img/drill2.png                            | Bin 0 -> 22806 bytes
 _docs/img/example_query.png                     | Bin 0 -> 63294 bytes
 _docs/img/loginSandBox.png                      | Bin 0 -> 53970 bytes
 _docs/img/queryFlow.png                         | Bin 0 -> 37031 bytes
 _docs/img/slide-15-638.png                      | Bin 0 -> 58477 bytes
 _docs/img/storageplugin.png                     | Bin 0 -> 7589 bytes
 _docs/img/value1.png                            | Bin 0 -> 10017 bytes
 _docs/img/value2.png                            | Bin 0 -> 13935 bytes
 _docs/img/value3.png                            | Bin 0 -> 14694 bytes
 _docs/img/value4.png                            | Bin 0 -> 20297 bytes
 _docs/img/value5.png                            | Bin 0 -> 44110 bytes
 _docs/img/value6.png                            | Bin 0 -> 13854 bytes
 _docs/img/value7.png                            | Bin 0 -> 21719 bytes
 _docs/img/vbApplSettings.png                    | Bin 0 -> 45140 bytes
 _docs/img/vbEthernet.png                        | Bin 0 -> 31861 bytes
 _docs/img/vbGenSettings.png                     | Bin 0 -> 56436 bytes
 _docs/img/vbImport.png                          | Bin 0 -> 29075 bytes
 _docs/img/vbMaprSetting.png                     | Bin 0 -> 56436 bytes
 _docs/img/vbNetwork.png                         | Bin 0 -> 32117 bytes
 _docs/img/vbloginSandBox.png                    | Bin 0 -> 52169 bytes
 _docs/img/vmLibrary.png                         | Bin 0 -> 68085 bytes
 _docs/img/vmShare.png                           | Bin 0 -> 49069 bytes
 _docs/img/vmWelcome.png                         | Bin 0 -> 39255 bytes
 _docs/user-guide/001-views.md                   |   5 -
 _docs/user-guide/002-sql-syntax.md              |   5 -
 _docs/user-guide/sql-syntax/001-ddd-ddd.md      |   7 -
 _docs/user-guide/views/001-aaa-aaa.md           |   7 -
 _docs/user-guide/views/002-bbb-bbb.md           |   7 -
 _docs/user-guide/views/003-ccc-ccc.md           |   7 -
 163 files changed, 9355 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_config.yml
----------------------------------------------------------------------
diff --git a/_config.yml b/_config.yml
index aeba641..3b254bd 100644
--- a/_config.yml
+++ b/_config.yml
@@ -13,6 +13,9 @@ baseurl: "/drill" # Base URL when hosted on GitHub Pages (drill repository under
 noindex: 1
 markdown: redcarpet
 
+redcarpet:
+  extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "tables", "with_toc_data"]
+
 collections:
   docs:
     output: true

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/001-drill-docs.md
----------------------------------------------------------------------
diff --git a/_docs/001-drill-docs.md b/_docs/001-drill-docs.md
new file mode 100644
index 0000000..382e2e1
--- /dev/null
+++ b/_docs/001-drill-docs.md
@@ -0,0 +1,4 @@
+---
+title: "Apache Drill Documentation"
+---
+The Drill documentation covers how to install, configure, and use Apache Drill.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/001-user-guide.md
----------------------------------------------------------------------
diff --git a/_docs/001-user-guide.md b/_docs/001-user-guide.md
deleted file mode 100644
index be161df..0000000
--- a/_docs/001-user-guide.md
+++ /dev/null
@@ -1,4 +0,0 @@
----
-title: "User Guide"
----
-This is a user guide!
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/002-admin-guide.md
----------------------------------------------------------------------
diff --git a/_docs/002-admin-guide.md b/_docs/002-admin-guide.md
deleted file mode 100644
index ad1ce75..0000000
--- a/_docs/002-admin-guide.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: "Admin Guide"
-nocontent: true
----
-This is an Admin Guide...
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/001-arch.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/001-arch.md b/_docs/drill-docs/001-arch.md
new file mode 100644
index 0000000..e4b26fc
--- /dev/null
+++ b/_docs/drill-docs/001-arch.md
@@ -0,0 +1,58 @@
+---
+title: "Architectural Overview"
+parent: "Apache Drill Documentation"
+---
+Apache Drill is a low latency distributed query engine for large-scale
+datasets, including structured and semi-structured/nested data. Inspired by
+Google’s Dremel, Drill is designed to scale to several thousands of nodes and
+query petabytes of data at interactive speeds that BI/Analytics environments
+require.
+
+### High-Level Architecture
+
+Drill includes a distributed execution environment, purpose built for large-
+scale data processing. At the core of Apache Drill is the ‘Drillbit’ service,
+which is responsible for accepting requests from the client, processing the
+queries, and returning results to the client.
+
+A Drillbit service can be installed and run on all of the required nodes in a
+Hadoop cluster to form a distributed cluster environment. When a Drillbit runs
+on each data node in the cluster, Drill can maximize data locality during
+query execution without moving data over the network or between nodes. Drill
+uses ZooKeeper to maintain cluster membership and health-check information.
+
+Though Drill works in a Hadoop cluster environment, Drill is not tied to
+Hadoop and can run in any distributed cluster environment. The only pre-
+requisite for Drill is Zookeeper.
+
+### Query Flow in Drill
+
+The following image represents the flow of a Drill query:
+
+![](../img/queryFlow.PNG?version=1&modifica
+tionDate=1400017845000&api=v2)  
+
+The flow of a Drill query typically involves the following steps:
+
+  1. The Drill client issues a query. Any Drillbit in the cluster can accept queries from clients. There is no master-slave concept.
+  2. The Drillbit then parses the query, optimizes it, and generates an optimized distributed query plan for fast and efficient execution.
+  3. The Drillbit that accepts the query becomes the driving Drillbit node for the request. It gets a list of available Drillbit nodes in the cluster from ZooKeeper. The driving Drillbit determines the appropriate nodes to execute various query plan fragments to maximize data locality.
+  4. The Drillbit schedules the execution of query fragments on individual nodes according to the execution plan.
+  5. The individual nodes finish their execution and return data to the driving Drillbit.
+  6. The driving Drillbit returns results back to the client.
+
+### Drill Clients
+
+You can access Drill through the following interfaces:
+
+  * Drill shell (SQLLine)
+  * Drill Web UI
+  * ODBC 
+  * JDBC
+  * C++ API
+
+Click on either of the following links to continue reading about Drill's
+architecture:
+
+  * [Core Modules within a Drillbit](/confluence/display/DRILL/Core+Modules+within+a+Drillbit)
+  * [Architectural Highlights](/confluence/display/DRILL/Architectural+Highlights)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/002-tutorial.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/002-tutorial.md b/_docs/drill-docs/002-tutorial.md
new file mode 100644
index 0000000..597f994
--- /dev/null
+++ b/_docs/drill-docs/002-tutorial.md
@@ -0,0 +1,58 @@
+---
+title: "Apache Drill Tutorial"
+parent: "Apache Drill Documentation"
+---
+This tutorial uses the MapR Sandbox, which is a Hadoop environment pre-
+configured with Apache Drill.
+
+To complete the tutorial on the MapR Sandbox with Apache Drill, work through
+the following pages in order:
+
+  * [Installing the Apache Drill Sandbox](/confluence/display/DRILL/Installing+the+Apache+Drill+Sandbox)
+  * [Getting to Know the Drill Setup](/confluence/display/DRILL/Getting+to+Know+the+Drill+Setup)
+  * [Lesson 1: Learn About the Data Set](/confluence/display/DRILL/Lesson+1%3A+Learn+About+the+Data+Set)
+  * [Lesson 2: Run Queries with ANSI SQL](/confluence/display/DRILL/Lesson+2%3A+Run+Queries+with+ANSI+SQL)
+  * [Lesson 3: Run Queries on Complex Data Types](/confluence/display/DRILL/Lesson+3%3A+Run+Queries+on+Complex+Data+Types)
+  * [Summary](/confluence/display/DRILL/Summary)
+
+# About Apache Drill
+
+Drill is an Apache open-source SQL query engine for Big Data exploration.
+Drill is designed from the ground up to support high-performance analysis on
+the semi-structured and rapidly evolving data coming from modern Big Data
+applications, while still providing the familiarity and ecosystem of ANSI SQL,
+the industry-standard query language. Drill provides plug-and-play integration
+with existing Apache Hive and Apache HBase deployments.Apache Drill 0.5 offers
+the following key features:
+
+  * Low-latency SQL queries
+
+  * Dynamic queries on self-describing data in files (such as JSON, Parquet, text) and MapR-DB/HBase tables, without requiring metadata definitions in the Hive metastore.
+
+  * ANSI SQL
+
+  * Nested data support
+
+  * Integration with Apache Hive (queries on Hive tables and views, support for all Hive file formats and Hive UDFs)
+
+  * BI/SQL tool integration using standard JDBC/ODBC drivers
+
+# MapR Sandbox with Apache Drill
+
+MapR includes Apache Drill as part of the Hadoop distribution. The MapR
+Sandbox with Apache Drill is a fully functional single-node cluster that can
+be used to get an overview on Apache Drill in a Hadoop environment. Business
+and technical analysts, product managers, and developers can use the sandbox
+environment to get a feel for the power and capabilities of Apache Drill by
+performing various types of queries. Once you get a flavor for the technology,
+refer to the [Apache Drill web site](http://incubator.apache.org/drill/) and
+[Apache Drill documentation
+](https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+Wiki)for more
+details.
+
+Note that Hadoop is not a prerequisite for Drill and users can start ramping
+up with Drill by running SQL queries directly on the local file system. Refer
+to [Apache Drill in 10 minutes](https://cwiki.apache.org/confluence/display/DR
+ILL/Apache+Drill+in+10+Minutes) for an introduction to using Drill in local
+(embedded) mode.
+

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/003-yelp.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/003-yelp.md b/_docs/drill-docs/003-yelp.md
new file mode 100644
index 0000000..b9339ed
--- /dev/null
+++ b/_docs/drill-docs/003-yelp.md
@@ -0,0 +1,402 @@
+---
+title: "Analyzing Yelp JSON Data with Apache Drill"
+parent: "Apache Drill Documentation"
+---
+[Apache Drill](https://www.mapr.com/products/apache-drill) is one of the
+fastest growing open source projects, with the community making rapid progress
+with monthly releases. The key difference is Drill’s agility and flexibility.
+Along with meeting the table stakes for SQL-on-Hadoop, which is to achieve low
+latency performance at scale, Drill allows users to analyze the data without
+any ETL or up-front schema definitions. The data could be in any file format
+such as text, JSON, or Parquet. Data could have simple types such as string,
+integer, dates, or more complex multi-structured data, such as nested maps and
+arrays. Data can exist in any file system, local or distributed, such as HDFS,
+[MapR FS](https://www.mapr.com/blog/comparing-mapr-fs-and-hdfs-nfs-and-
+snapshots), or S3. Drill, has a “no schema” approach, which enables you to get
+value from your data in just a few minutes.
+
+Let’s quickly walk through the steps required to install Drill and run it
+against the Yelp data set. The publicly available data set used for this
+example is downloadable from [Yelp](http://www.yelp.com/dataset_challenge)
+(business reviews) and is in JSON format.
+
+## Installing and Starting Drill
+
+### Step 1: Download Apache Drill onto your local machine
+
+[http://incubator.apache.org/drill/download/](http://incubator.apache.org/drill/download/)
+
+You can also [deploy Drill in clustered mode](https://cwiki.apache.org/conflue
+nce/display/DRILL/Deploying+Apache+Drill+in+a+Clustered+Environment) if you
+want to scale your environment.
+
+### Step 2 : Open the Drill tar file
+
+`tar -xvf apache-drill-0.6.0-incubating.tar`
+
+### Step 3: Launch sqlline, a JDBC application that ships with Drill
+
+`bin/sqlline -u jdbc:drill:zk=local`
+
+That’s it! You are now ready explore the data.
+
+Let’s try out some SQL examples to understand how Drill makes the raw data
+analysis extremely easy.
+
+**Note**: You need to substitute your local path to the Yelp data set in the FROM clause of each query you run.
+
+## Querying Data with Drill
+
+### **1\. View the contents of the Yelp business data**
+
+`0: jdbc:drill:zk=local> !set maxwidth 10000`
+
+``0: jdbc:drill:zk=local> select * from
+dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_business.json`
+limit 1;``
+
+    +-------------+--------------+------------+------------+------------+------------+--------------+------------+------------+------------+------------+------------+------------+------------+---------------+
+    | business_id | full_address |   hours    |     open    | categories |            city    | review_count |        name   | longitude  |   state  |   stars          |  latitude  | attributes |          type    | neighborhoods |
+    +-------------+--------------+------------+------------+------------+------------+--------------+------------+------------+------------+------------+------------+------------+------------+---------------+
+    | vcNAWiLM4dR7D2nwwJ7nCA | 4840 E Indian School Rd
+    Ste 101
+    Phoenix, AZ 85018 | {"Tuesday":{"close":"17:00","open":"08:00"},"Friday":{"close":"17:00","open":"08:00"},"Monday":{"close":"17:00","open":"08:00"},"Wednesday":{"close":"17:00","open":"08:00"},"Thursday":{"close":"17:00","open":"08:00"},"Sunday":{},"Saturday":{}} | true              | ["Doctors","Health & Medical"] | Phoenix  | 7                   | Eric Goldberg, MD | -111.983758 | AZ       | 3.5                | 33.499313  | {"By Appointment Only":true,"Good For":{},"Ambience":{},"Parking":{},"Music":{},"Hair Types Specialized In":{},"Payment Types":{},"Dietary Restrictions":{}} | business   | []                  |
+    +-------------+--------------+------------+------------+------------+------------+--------------+------------+------------+------------+------------+------------+------------+------------+---------------+
+
+**Note: **You can directly query self-describing files such as JSON, Parquet, and text. There is no need to create metadata definitions in the Hive metastore.
+
+### **2\. Explore the business data set further**
+
+#### Total reviews in the data set
+
+``0: jdbc:drill:zk=local> select sum(review_count) as totalreviews from
+dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_business.json`
+;``
+
+    +--------------+
+    | totalreviews |
+    +--------------+
+    | 1236445      |
+    +--------------+
+
+#### Top states and cities in total number of reviews
+
+``0: jdbc:drill:zk=local> select state, city, count(*) totalreviews from
+dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_business.json`
+group by state, city order by count(*) desc limit 10;``
+
+    +------------+------------+--------------+
+    |   state    |    city    | totalreviews |
+    +------------+------------+--------------+
+    | NV         | Las Vegas  | 12021        |
+    | AZ         | Phoenix    | 7499         |
+    | AZ         | Scottsdale | 3605         |
+    | EDH        | Edinburgh  | 2804         |
+    | AZ         | Mesa       | 2041         |
+    | AZ         | Tempe      | 2025         |
+    | NV         | Henderson  | 1914         |
+    | AZ         | Chandler   | 1637         |
+    | WI         | Madison    | 1630         |
+    | AZ         | Glendale   | 1196         |
+    +------------+------------+--------------+
+
+#### **Average number of reviews per business star rating**
+
+``0: jdbc:drill:zk=local> select stars,trunc(avg(review_count)) reviewsavg from
+dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_business.json`
+group by stars order by stars desc;``
+
+    +------------+------------+
+    |   stars    | reviewsavg |
+    +------------+------------+
+    | 5.0        | 8.0        |
+    | 4.5        | 28.0       |
+    | 4.0        | 48.0       |
+    | 3.5        | 35.0       |
+    | 3.0        | 26.0       |
+    | 2.5        | 16.0       |
+    | 2.0        | 11.0       |
+    | 1.5        | 9.0        |
+    | 1.0        | 4.0        |
+    +------------+------------+
+
+#### **Top businesses with high review counts (> 1000)**
+
+``0: jdbc:drill:zk=local> select name, state, city, `review_count` from
+dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_business.json`
+where review_count > 1000 order by `review_count` desc limit 10;``
+
+    +------------+------------+------------+----------------------------+
+    |    name                |   state     |    city     | review_count |
+    +------------+------------+------------+----------------------------+
+    | Mon Ami Gabi           | NV          | Las Vegas  | 4084          |
+    | Earl of Sandwich       | NV          | Las Vegas  | 3655          |
+    | Wicked Spoon           | NV          | Las Vegas  | 3408          |
+    | The Buffet             | NV          | Las Vegas  | 2791          |
+    | Serendipity 3          | NV          | Las Vegas  | 2682          |
+    | Bouchon                | NV          | Las Vegas  | 2419          |
+    | The Buffet at Bellagio | NV          | Las Vegas  | 2404          |
+    | Bacchanal Buffet       | NV          | Las Vegas  | 2369          |
+    | The Cosmopolitan of Las Vegas | NV   | Las Vegas  | 2253          |
+    | Aria Hotel & Casino    | NV          | Las Vegas  | 2224          |
+    +------------+------------+------------+----------------------------+
+
+#### **Saturday open and close times for a few businesses**
+
+``0: jdbc:drill:zk=local> select b.name, b.hours.Saturday.`open`,
+b.hours.Saturday.`close`  
+from
+dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_business.json`
+b limit 10;``
+
+    +------------+------------+----------------------------+
+    |    name                    |   EXPR$1   |   EXPR$2   |
+    +------------+------------+----------------------------+
+    | Eric Goldberg, MD          | 08:00      | 17:00      |
+    | Pine Cone Restaurant       | null       | null       |
+    | Deforest Family Restaurant | 06:00      | 22:00      |
+    | Culver's                   | 10:30      | 22:00      |
+    | Chang Jiang Chinese Kitchen| 11:00      | 22:00      |
+    | Charter Communications     | null       | null       |
+    | Air Quality Systems        | null       | null       |
+    | McFarland Public Library   | 09:00      | 20:00      |
+    | Green Lantern Restaurant   | 06:00      | 02:00      |
+    | Spartan Animal Hospital    | 07:30      | 18:00      |
+    +------------+------------+----------------------------+
+
+** **Note how Drill can traverse and refer through multiple levels of nesting.
+
+### **3\. Get the amenities of each business in the data set**
+
+Note that the attributes column in the Yelp business data set has a different
+element for every row, representing that businesses can have separate
+amenities. Drill makes it easy to quickly access data sets with changing
+schemas.
+
+First, change Drill to work in all text mode (so we can take a look at all of
+the data).
+
+    0: jdbc:drill:zk=local> alter system set `store.json.all_text_mode` = true;
+    +------------+-----------------------------------+
+    |     ok     |  summary                          |
+    +------------+-----------------------------------+
+    | true       | store.json.all_text_mode updated. |
+    +------------+-----------------------------------+
+
+Then, query the attribute’s data.
+
+    0: jdbc:drill:zk=local> select attributes from dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_business.json` limit 10;
+    +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+    | attributes                                                                                                                                                                       |
+    +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+    | {"By Appointment Only":"true","Good For":{},"Ambience":{},"Parking":{},"Music":{},"Hair Types Specialized In":{},"Payment Types":{},"Dietary Restrictions":{}} |
+    | {"Take-out":"true","Good For":{"dessert":"false","latenight":"false","lunch":"true","dinner":"false","breakfast":"false","brunch":"false"},"Caters":"false","Noise Level":"averag |
+    | {"Take-out":"true","Good For":{"dessert":"false","latenight":"false","lunch":"false","dinner":"false","breakfast":"false","brunch":"true"},"Caters":"false","Noise Level":"quiet" |
+    | {"Take-out":"true","Good For":{},"Takes Reservations":"false","Delivery":"false","Ambience":{},"Parking":{"garage":"false","street":"false","validated":"false","lot":"true","val |
+    | {"Take-out":"true","Good For":{},"Ambience":{},"Parking":{},"Has TV":"false","Outdoor Seating":"false","Attire":"casual","Music":{},"Hair Types Specialized In":{},"Payment Types |
+    | {"Good For":{},"Ambience":{},"Parking":{},"Music":{},"Hair Types Specialized In":{},"Payment Types":{},"Dietary Restrictions":{}} |
+    | {"Good For":{},"Ambience":{},"Parking":{},"Music":{},"Hair Types Specialized In":{},"Payment Types":{},"Dietary Restrictions":{}} |
+    | {"Good For":{},"Ambience":{},"Parking":{},"Wi-Fi":"free","Music":{},"Hair Types Specialized In":{},"Payment Types":{},"Dietary Restrictions":{}} |
+    | {"Take-out":"true","Good For":{"dessert":"false","latenight":"false","lunch":"false","dinner":"true","breakfast":"false","brunch":"false"},"Noise Level":"average","Takes Reserva |
+    | {"Good For":{},"Ambience":{},"Parking":{},"Music":{},"Hair Types Specialized In":{},"Payment Types":{},"Dietary Restrictions":{}} |
+    +------------+
+
+Turn off the all text mode so we can continue to perform arithmetic operations
+on data.
+
+    0: jdbc:drill:zk=local> alter system set `store.json.all_text_mode` = false;
+    +------------+------------+
+    |     ok             |  summary   |
+    +------------+------------+
+    | true              | store.json.all_text_mode updated. |
+
+**4\. Explore the restaurant businesses in the data set**
+
+#### **Number of restaurants in the data set**** **
+
+    0: jdbc:drill:zk=local> select count(*) as TotalRestaurants from dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_business.json` where true=repeated_contains(categories,'Restaurants');
+    +------------------+
+    | TotalRestaurants |
+    +------------------+
+    | 14303            |
+    +------------------+
+
+#### **Top restaurants in number of reviews**
+
+    0: jdbc:drill:zk=local> select name,state,city,`review_count` from dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_business.json` where true=repeated_contains(categories,'Restaurants') order by `review_count` desc limit 10
+    . . . . . . . . . . . > ;
+    +------------+------------+------------+--------------+
+    |    name         |   state    |    city     | review_count |
+    +------------+------------+------------+--------------+
+    | Mon Ami Gabi | NV               | Las Vegas  | 4084         |
+    | Earl of Sandwich | NV         | Las Vegas  | 3655         |
+    | Wicked Spoon | NV             | Las Vegas  | 3408         |
+    | The Buffet | NV       | Las Vegas  | 2791         |
+    | Serendipity 3 | NV              | Las Vegas  | 2682         |
+    | Bouchon       | NV         | Las Vegas  | 2419           |
+    | The Buffet at Bellagio | NV             | Las Vegas  | 2404         |
+    | Bacchanal Buffet | NV        | Las Vegas  | 2369         |
+    | Hash House A Go Go | NV                | Las Vegas  | 2201         |
+    | Mesa Grill | NV         | Las Vegas  | 2004         |
+    +------------+------------+------------+--------------+
+
+**Top restaurants in number of listed categories**
+
+    0: jdbc:drill:zk=local> select name,repeated_count(categories) as categorycount, categories from dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_business.json` where true=repeated_contains(categories,'Restaurants') order by repeated_count(categories) desc limit 10;
+    +------------+---------------+------------+
+    |    name         | categorycount | categories |
+    +------------+---------------+------------+
+    | Binion's Hotel & Casino | 10           | ["Arts & Entertainment","Restaurants","Bars","Casinos","Event Planning & Services","Lounges","Nightlife","Hotels & Travel","American (N |
+    | Stage Deli | 10        | ["Arts & Entertainment","Food","Hotels","Desserts","Delis","Casinos","Sandwiches","Hotels & Travel","Restaurants","Event Planning & Services"] |
+    | Jillian's  | 9               | ["Arts & Entertainment","American (Traditional)","Music Venues","Bars","Dance Clubs","Nightlife","Bowling","Active Life","Restaurants"] |
+    | Hotel Chocolat | 9               | ["Coffee & Tea","Food","Cafes","Chocolatiers & Shops","Specialty Food","Event Planning & Services","Hotels & Travel","Hotels","Restaurants"] |
+    | Hotel du Vin & Bistro Edinburgh | 9           | ["Modern European","Bars","French","Wine Bars","Event Planning & Services","Nightlife","Hotels & Travel","Hotels","Restaurants" |
+    | Elixir             | 9             | ["Arts & Entertainment","American (Traditional)","Music Venues","Bars","Cocktail Bars","Nightlife","American (New)","Local Flavor","Restaurants"] |
+    | Tocasierra Spa and Fitness | 8                  | ["Beauty & Spas","Gyms","Medical Spas","Health & Medical","Fitness & Instruction","Active Life","Day Spas","Restaurants"] |
+    | Costa Del Sol At Sunset Station | 8            | ["Steakhouses","Mexican","Seafood","Event Planning & Services","Hotels & Travel","Italian","Restaurants","Hotels"] |
+    | Scottsdale Silverado Golf Club | 8              | ["Fashion","Shopping","Sporting Goods","Active Life","Golf","American (New)","Sports Wear","Restaurants"] |
+    | House of Blues | 8               | ["Arts & Entertainment","Music Venues","Restaurants","Hotels","Event Planning & Services","Hotels & Travel","American (New)","Nightlife"] |
+    +------------+---------------+------------+
+
+#### **Top first categories in number of review counts**
+
+    0: jdbc:drill:zk=local> select categories[0], count(categories[0]) as categorycount from dfs.`/users/nrentachintala/Downloads/yelp_dataset_challenge_academic_dataset/yelp_academic_dataset_business.json` group by categories[0] 
+    order by count(categories[0]) desc limit 10;
+    +------------+---------------+
+    |   EXPR$0   | categorycount |
+    +------------+---------------+
+    | Food       | 4294          |
+    | Shopping   | 1885          |
+    | Active Life | 1676          |
+    | Bars       | 1366          |
+    | Local Services | 1351          |
+    | Mexican    | 1284          |
+    | Hotels & Travel | 1283          |
+    | Fast Food  | 963           |
+    | Arts & Entertainment | 906           |
+    | Hair Salons | 901           |
+    +------------+---------------+
+
+**5\. Explore the Yelp reviews dataset and combine with the businesses.**** **
+
+#### **Take a look at the contents of the Yelp reviews dataset.**** **
+
+    0: jdbc:drill:zk=local> select * from dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_review.json` limit 1;
+    +------------+------------+------------+------------+------------+------------+------------+-------------+
+    |   votes          |  user_id   | review_id  |   stars    |            date    |    text           |          type    | business_id |
+    +------------+------------+------------+------------+------------+------------+------------+-------------+
+    | {"funny":0,"useful":2,"cool":1} | Xqd0DzHaiyRqVH3WRG7hzg | 15SdjuK7DmYqUAj6rjGowg | 5            | 2007-05-17 | dr. goldberg offers everything i look for in a general practitioner.  he's nice and easy to talk to without being patronizing; he's always on time in seeing his patients; he's affiliated with a top-notch hospital (nyu) which my parents have explained to me is very important in case something happens and you need surgery; and you can get referrals to see specialists without having to see him first.  really, what more do you need?  i'm sitting here trying to think of any complaints i have about him, but i'm really drawing a blank. | review | vcNAWiLM4dR7D2nwwJ7nCA |
+    +------------+------------+------------+------------+------------+------------+------------+-------------+
+
+#### **Top businesses with cool rated reviews**
+
+Note that we are combining the Yelp business data set that has the overall
+review_count to the Yelp review data, which holds additional details on each
+of the reviews themselves.
+
+    0: jdbc:drill:zk=local> Select b.name from dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_business.json` b where b.business_id in (SELECT r.business_id FROM dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_review.json` r
+    GROUP BY r.business_id having sum(r.votes.cool) > 2000 order by sum(r.votes.cool)  desc);
+    +------------+
+    |    name         |
+    +------------+
+    | Earl of Sandwich |
+    | XS Nightclub |
+    | The Cosmopolitan of Las Vegas |
+    | Wicked Spoon |
+    +------------+
+
+**Create a view with the combined business and reviews data sets**
+
+Note that Drill views are lightweight, and can just be created in the local
+file system. Drill in standalone mode comes with a dfs.tmp workspace, which we
+can use to create views (or you can can define your own workspaces on a local
+or distributed file system). If you want to persist the data physically
+instead of in a logical view, you can use CREATE TABLE AS SELECT syntax.
+
+    0: jdbc:drill:zk=local> create or replace view dfs.tmp.businessreviews as Select b.name,b.stars,b.state,b.city,r.votes.funny,r.votes.useful,r.votes.cool, r.`date` from dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_business.json` b , dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_review.json` r where r.business_id=b.business_id
+    +------------+------------+
+    |     ok             |  summary   |
+    +------------+------------+
+    | true              | View 'businessreviews' created successfully in 'dfs.tmp' schema |
+    +------------+------------+
+
+Let’s get the total number of records from the view.
+
+    0: jdbc:drill:zk=local> select count(*) as Total from dfs.tmp.businessreviews;
+    +------------+
+    |   Total   |
+    +------------+
+    | 1125458       |
+    +------------+
+
+In addition to these queries, you can get many more deeper insights using
+Drill’s [SQL functionality](https://cwiki.apache.org/confluence/display/DRILL/
+SQL+Reference). If you are not comfortable with writing queries manually, you
+can use a BI/Analytics tools such as Tableau/MicroStrategy to query raw
+files/Hive/HBase data or Drill-created views directly using Drill ODBC/JDBC
+drivers.
+
+The goal of Apache Drill is to provide the freedom and flexibility in
+exploring data in ways we have never seen before with SQL technologies. The
+community is working on more exciting features around nested data and
+supporting data with changing schemas in upcoming releases.
+
+As an example, a new FLATTEN function is in development (an upcoming feature
+in 0.7). This function can be used to dynamically rationalize semi-structured
+data so you can apply even deeper SQL functionality. Here is a sample query:
+
+#### **Get a flattened list of categories for each business**
+
+    0: jdbc:drill:zk=local> select name, flatten(categories) as category from dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_business.json`  limit 20;
+    +------------+------------+
+    |    name         |   category   |
+    +------------+------------+
+    | Eric Goldberg, MD | Doctors          |
+    | Eric Goldberg, MD | Health & Medical |
+    | Pine Cone Restaurant | Restaurants |
+    | Deforest Family Restaurant | American (Traditional) |
+    | Deforest Family Restaurant | Restaurants |
+    | Culver's   | Food       |
+    | Culver's   | Ice Cream & Frozen Yogurt |
+    | Culver's   | Fast Food  |
+    | Culver's   | Restaurants |
+    | Chang Jiang Chinese Kitchen | Chinese    |
+    | Chang Jiang Chinese Kitchen | Restaurants |
+    | Charter Communications | Television Stations |
+    | Charter Communications | Mass Media |
+    | Air Quality Systems | Home Services |
+    | Air Quality Systems | Heating & Air Conditioning/HVAC |
+    | McFarland Public Library | Libraries  |
+    | McFarland Public Library | Public Services & Government |
+    | Green Lantern Restaurant | American (Traditional) |
+    | Green Lantern Restaurant | Restaurants |
+    | Spartan Animal Hospital | Veterinarians |
+    +------------+------------+
+
+**Top categories used in business reviews**
+
+    0: jdbc:drill:zk=local> select celltbl.catl, count(celltbl.catl) categorycnt from (select flatten(categories) catl from dfs.`/users/nrentachintala/Downloads/yelp_dataset_challenge_academic_dataset/yelp_academic_dataset_business.json` )  celltbl group by celltbl.catl order by count(celltbl.catl) desc limit 10 ;
+    +------------+-------------+
+    |    catl    | categorycnt |
+    +------------+-------------+
+    | Restaurants | 14303       |
+    | Shopping   | 6428        |
+    | Food       | 5209        |
+    | Beauty & Spas | 3421        |
+    | Nightlife  | 2870        |
+    | Bars       | 2378        |
+    | Health & Medical | 2351        |
+    | Automotive | 2241        |
+    | Home Services | 1957        |
+    | Fashion    | 1897        |
+    +------------+-------------+
+
+Stay tuned for more features and upcoming activities in the Drill community.
+
+To learn more about Drill, please refer to the following resources:
+
+  * Download Drill here:<http://incubator.apache.org/drill/download/>
+  * 10 reasons we think Drill is cool:<http://incubator.apache.org/drill/why-drill/>
+  * A simple 10-minute tutorial:<https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+in+10+Minutes>
+  * A more comprehensive tutorial:<https://cwiki.apache.org/confluence/display/DRILL/Apache+Drill+Tutorial>
+

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/004-install.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/004-install.md b/_docs/drill-docs/004-install.md
new file mode 100644
index 0000000..fe7578c
--- /dev/null
+++ b/_docs/drill-docs/004-install.md
@@ -0,0 +1,20 @@
+---
+title: "Install Drill"
+parent: "Apache Drill Documentation"
+---
+You can install Drill in embedded mode or in distributed mode. Installing
+Drill in embedded mode does not require any configuration, which means that
+you can quickly get started with Drill. If you want to use Drill in a
+clustered Hadoop environment, you can install Drill in distributed mode.
+Installing in distributed mode requires some configuration, however once you
+install you can connect Drill to your Hive, HBase, or distributed file system
+data sources and run queries on them.
+
+Click on any of the following links for more information about how to install
+Drill in embedded or distributed mode:
+
+  * [Apache Drill in 10 Minutes](/confluence/display/DRILL/Apache+Drill+in+10+Minutes)
+  * [Deploying Apache Drill in a Clustered Environment](/confluence/display/DRILL/Deploying+Apache+Drill+in+a+Clustered+Environment)
+  * [Installing Drill in Embedded Mode](/confluence/display/DRILL/Installing+Drill+in+Embedded+Mode)
+  * [Installing Drill in Distributed Mode](/confluence/display/DRILL/Installing+Drill+in+Distributed+Mode)
+

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/005-connect.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/005-connect.md b/_docs/drill-docs/005-connect.md
new file mode 100644
index 0000000..039fc78
--- /dev/null
+++ b/_docs/drill-docs/005-connect.md
@@ -0,0 +1,49 @@
+---
+title: "Connect to Data Sources"
+parent: "Apache Drill Documentation"
+---
+Apache Drill serves as a query layer that connects to data sources through
+storage plugins. Drill uses the storage plugins to interact with data sources.
+You can think of a storage plugin as a connection between Drill and a data
+source.
+
+The following image represents the storage plugin layer between Drill and a
+data source:
+
+![](../img/storageplugin.png)
+
+Storage plugins provide the following information to Drill:
+
+  * Metadata available in the underlying data source
+  * Location of data
+  * Interfaces that Drill can use to read from and write to data sources
+  * A set of storage plugin optimization rules that assist with efficient and faster execution of Drill queries, such as pushdowns, statistics, and partition awareness
+
+Storage plugins perform scanner and writer functions, and inform the metadata
+repository of any known metadata, such as:
+
+  * Schema
+  * File size
+  * Data ordering
+  * Secondary indices
+  * Number of blocks
+
+Storage plugins inform the execution engine of any native capabilities, such
+as predicate pushdown, joins, and SQL.
+
+Drill provides storage plugins for files and HBase/M7. Drill also integrates
+with Hive through a storage plugin. Hive provides a metadata abstraction layer
+on top of files and HBase/M7.
+
+When you run Drill to query files in HBase/M7, Drill can perform direct
+queries on the data or go through Hive, if you have metadata defined there.
+Drill integrates with the Hive metastore for metadata and also uses a Hive
+SerDe for the deserialization of records. Drill does not invoke the Hive
+execution engine for any requests.
+
+For information about how to connect Drill to your data sources, refer to
+storage plugin registration:
+
+  * [Storage Plugin Registration](/confluence/display/DRILL/Storage+Plugin+Registration)
+  * [MongoDB Plugin for Apache Drill](/confluence/display/DRILL/MongoDB+Plugin+for+Apache+Drill)
+  * [MapR-DB Plugin for Apache Drill](/confluence/display/DRILL/MapR-DB+Plugin+for+Apache+Drill)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/006-query.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/006-query.md b/_docs/drill-docs/006-query.md
new file mode 100644
index 0000000..4b4fda0
--- /dev/null
+++ b/_docs/drill-docs/006-query.md
@@ -0,0 +1,57 @@
+---
+title: "Query Data"
+parent: "Apache Drill Documentation"
+---
+You can query local and distributed file systems, Hive, and HBase data sources
+registered with Drill. If you connected directly to a particular schema when
+you invoked SQLLine, you can issue SQL queries against that schema. If you did
+not indicate a schema when you invoked SQLLine, you can issue the `USE
+<schema>` statement to run your queries against a particular schema. After you
+issue the `USE` statement, you can use absolute notation, such as
+`schema.table.column`.
+
+Click on any of the following links for information about various data source
+queries and examples:
+
+  * [Querying a File System](/confluence/display/DRILL/Querying+a+File+System)
+  * [Querying HBase](/confluence/display/DRILL/Querying+HBase)
+  * [Querying Hive](/confluence/display/DRILL/Querying+Hive)
+  * [Querying Complex Data](/confluence/display/DRILL/Querying+Complex+Data)
+  * [Querying the INFORMATION_SCHEMA](/confluence/display/DRILL/Querying+the+INFORMATION_SCHEMA)
+  * [Querying System Tables](/confluence/display/DRILL/Querying+System+Tables)
+  * [Drill Interfaces](/confluence/display/DRILL/Drill+Interfaces)
+
+You may need to use casting functions in some queries. For example, you may
+have to cast a string `"100"` to an integer in order to apply a math function
+or an aggregate function.
+
+You can use the EXPLAIN command to analyze errors and troubleshoot queries
+that do not run. For example, if you run into a casting error, the query plan
+text may help you isolate the problem.
+
+    0: jdbc:drill:zk=local> !set maxwidth 10000
+    0: jdbc:drill:zk=local> explain plan for select ... ;
+
+The set command increases the default text display (number of characters). By
+default, most of the plan output is hidden.
+
+You may see errors if you try to use non-standard or unsupported SQL syntax in
+a query.
+
+Remember the following tips when querying data with Drill:
+
+  * Include a semicolon at the end of SQL statements, except when you issue a command with an exclamation point `(!).   
+`Example: `!set maxwidth 10000`
+
+  * Use backticks around file and directory names that contain special characters and also around reserved words when you query a file system .   
+The following special characters require backticks:
+
+    * . (period)
+    * / (forward slash)
+    * _ (underscore)
+
+Example: ``SELECT * FROM dfs.default.`sample_data/my_sample.json`; ``
+
+  * `CAST` data to `VARCHAR` if an expression in a query returns `VARBINARY` as the result type in order to view the `VARBINARY` types as readable data. If you do not use the `CAST` function, Drill returns the results as byte data.  
+Example: `CAST (VARBINARY_expr as VARCHAR(50))`
+

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/006-sql-ref.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/006-sql-ref.md b/_docs/drill-docs/006-sql-ref.md
new file mode 100644
index 0000000..8818ca3
--- /dev/null
+++ b/_docs/drill-docs/006-sql-ref.md
@@ -0,0 +1,25 @@
+---
+title: "Develop Custom Functions"
+parent: "Apache Drill Documentation"
+---
+Drill supports the ANSI standard for SQL. You can use SQL to query your Hive,
+HBase, and distributed file system data sources. Drill can discover the form
+of the data when you submit a query. You can query text files and nested data
+formats, such as JSON and Parquet. Drill provides special operators and
+functions that you can use to _drill down _into nested data formats.
+
+Drill queries do not require information about the data that you are trying to
+access, regardless of its source system or its schema and data types. The
+sweet spot for Apache Drill is a SQL query workload against "complex data":
+data made up of various types of records and fields, rather than data in a
+recognizable relational form (discrete rows and columns).
+
+Refer to the following SQL reference pages for more information:
+
+  * [Data Types](/confluence/display/DRILL/Data+Types)
+  * [Operators](/confluence/display/DRILL/Operators)
+  * [SQL Functions](/confluence/display/DRILL/SQL+Functions)
+  * [Nested Data Functions](/confluence/display/DRILL/Nested+Data+Functions)
+  * [SQL Commands Summary](/confluence/display/DRILL/SQL+Commands+Summary)
+  * [Reserved Keywords](/confluence/display/DRILL/Reserved+Keywords)
+

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/007-dev-custom-func.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/007-dev-custom-func.md b/_docs/drill-docs/007-dev-custom-func.md
new file mode 100644
index 0000000..9bc8e65
--- /dev/null
+++ b/_docs/drill-docs/007-dev-custom-func.md
@@ -0,0 +1,47 @@
+---
+title: "Develop Custom Functions"
+parent: "Apache Drill Documentation"
+---
+
+Drill provides a high performance Java API with interfaces that you can
+implement to develop simple and aggregate custom functions. Custom functions
+are reusable SQL functions that you develop in Java to encapsulate code that
+processes column values during a query. Custom functions can perform
+calculations and transformations that built-in SQL operators and functions do
+not provide. Custom functions are called from within a SQL statement, like a
+regular function, and return a single value.
+
+### Simple Function
+
+A simple function operates on a single row and produces a single row as the
+output. When you include a simple function in a query, the function is called
+once for each row in the result set. Mathematical and string functions are
+examples of simple functions.
+
+### Aggregate Function
+
+Aggregate functions differ from simple functions in the number of rows that
+they accept as input. An aggregate function operates on multiple input rows
+and produces a single row as output. The COUNT(), MAX(), SUM(), and AVG()
+functions are examples of aggregate functions. You can use an aggregate
+function in a query with a GROUP BY clause to produce a result set with a
+separate aggregate value for each combination of values from the GROUP BY
+clause.
+
+### Process
+
+To develop custom functions that you can use in your Drill queries, you must
+complete the following tasks:
+
+  1. Create a Java program that implements Drill’s simple or aggregate interface, and compile a sources and a classes JAR file.
+  2. Add the sources and classes JAR files to Drill’s classpath.
+  3. Add the name of the package that contains the classes to Drill’s main configuration file, drill-override.conf. 
+
+Click on one of the following links to learn how to create custom functions
+for Drill:
+
+  * [Developing a Simple Function](/confluence/display/DRILL/Developing+a+Simple+Function)
+  * [Developing an Aggregate Function](/confluence/display/DRILL/Developing+an+Aggregate+Function)
+  * [Adding Custom Functions to Drill](/confluence/display/DRILL/Adding+Custom+Functions+to+Drill)
+  * [Using Custom Functions in Queries](/confluence/display/DRILL/Using+Custom+Functions+in+Queries)
+  * [Custom Function Interfaces](/confluence/display/DRILL/Custom+Function+Interfaces)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/008-manage.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/008-manage.md b/_docs/drill-docs/008-manage.md
new file mode 100644
index 0000000..e629b20
--- /dev/null
+++ b/_docs/drill-docs/008-manage.md
@@ -0,0 +1,23 @@
+---
+title: "Manage Drill"
+parent: "Apache Drill Documentation"
+---
+When using Drill, you may need to stop and restart a Drillbit on a node, or
+modify various options. For example, the default storage format for CTAS
+statements is Parquet. You can modify the default setting so that output data
+is stored in CSV or JSON format.
+
+You can use certain SQL commands to manage Drill from within the Drill shell
+(SQLLine). You can also modify Drill configuration options, such as memory
+allocation, in Drill's configuration files.
+
+Refer to the following documentation for information about managing Drill in
+your cluster:
+
+  * [Configuration Options](/confluence/display/DRILL/Configuration+Options)
+  * [Starting/Stopping Drill](/confluence/pages/viewpage.action?pageId=44994063)
+  * [Ports Used by Drill](/confluence/display/DRILL/Ports+Used+by+Drill)
+  * [Partition Pruning](/confluence/display/DRILL/Partition+Pruning)
+  * [Monitoring and Canceling Queries in the Drill Web UI](/confluence/display/DRILL/Monitoring+and+Canceling+Queries+in+the+Drill+Web+UI)
+  
+

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/009-develop.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/009-develop.md b/_docs/drill-docs/009-develop.md
new file mode 100644
index 0000000..d95f986
--- /dev/null
+++ b/_docs/drill-docs/009-develop.md
@@ -0,0 +1,16 @@
+---
+title: "Develop Drill"
+parent: "Apache Drill Documentation"
+---
+To develop Drill, you compile Drill from source code and then set up a project
+in Eclipse for use as your development environment. To review or contribute to
+Drill code, you must complete the steps required to install and use the Drill
+patch review tool.
+
+For information about contributing to the Apache Drill project, you can refer
+to the following pages:
+
+  * [Compiling Drill from Source](/confluence/display/DRILL/Compiling+Drill+from+Source)
+  * [Setting Up Your Development Environment](/confluence/display/DRILL/Setting+Up+Your+Development+Environment)
+  * [Drill Patch Review Tool](/confluence/display/DRILL/Drill+Patch+Review+Tool)
+

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/010-rn.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/010-rn.md b/_docs/drill-docs/010-rn.md
new file mode 100644
index 0000000..f196714
--- /dev/null
+++ b/_docs/drill-docs/010-rn.md
@@ -0,0 +1,192 @@
+---
+title: "Release Notes"
+parent: "Apache Drill Documentation"
+---
+## Apache Drill 0.7.0 Release Notes
+
+Apache Drill 0.7.0, the third beta release for Drill, is designed to help
+enthusiasts start working and experimenting with Drill. It also continues the
+Drill monthly release cycle as we drive towards general availability.
+
+This release is available as
+[binary](http://www.apache.org/dyn/closer.cgi/drill/drill-0.7.0/apache-
+drill-0.7.0.tar.gz) and
+[source](http://www.apache.org/dyn/closer.cgi/drill/drill-0.7.0/apache-
+drill-0.7.0-src.tar.gz) tarballs that are compiled against Apache Hadoop.
+Drill has been tested against MapR, Cloudera, and Hortonworks Hadoop
+distributions. There are associated build profiles and JIRAs that can help you
+run Drill against your preferred distribution
+
+Apache Drill 0.7.0 Key Features
+
+  * No more dependency on UDP/Multicast - Making it possible for Drill to work well in the following scenarios:
+
+    * UDP multicast not enabled (as in EC2)
+
+    * Cluster spans multiple subnets
+
+    * Cluster has multihome configuration
+
+  * New functions to natively work with nested data - KVGen and Flatten 
+
+  * Support for Hive 0.13 (Hive 0.12 with Drill is not supported any more) 
+
+  * Improved performance when querying Hive tables and File system through partition pruning
+
+  * Improved performance for HBase with LIKE operator pushdown
+
+  * Improved memory management
+
+  * Drill web UI monitoring and query profile improvements
+
+  * Ability to parse files without explicit extensions using default storage format specification
+
+  * Fixes for dealing with complex/nested data objects in Parquet/JSON
+
+  * Fast schema return - Improved experience working with BI/query tools by returning metadata quickly
+
+  * Several hang related fixes
+
+  * Parquet writer fixes for handling large datasets
+
+  * Stability improvements in ODBC and JDBC drivers
+
+Apache Drill 0.7.0 Key Notes and Limitations
+
+  * The current release supports in-memory and beyond-memory execution. However, you must disable memory-intensive hash aggregate and hash join operations to leverage this functionality.
+  * While the Drill execution engine supports dynamic schema changes during the course of a query, some operators have yet to implement support for this behavior, such as Sort. Other operations, such as streaming aggregate, may have partial support that leads to unexpected results.
+
+## Apache Drill 0.6.0 Release Notes
+
+Apache Drill 0.6.0, the second beta release for Drill, is designed to help
+enthusiasts start working and experimenting with Drill. It also continues the
+Drill monthly release cycle as we drive towards general availability.
+
+This release is available as [binary](http://www.apache.org/dyn/closer.cgi/inc
+ubator/drill/drill-0.5.0-incubating/apache-drill-0.5.0-incubating.tar.gz) and 
+[source](http://www.apache.org/dyn/closer.cgi/incubator/drill/drill-0.5.0-incu
+bating/apache-drill-0.5.0-incubating-src.tar.gz) tarballs that are compiled
+against Apache Hadoop. Drill has been tested against MapR, Cloudera, and
+Hortonworks Hadoop distributions. There are associated build profiles and
+JIRAs that can help you run Drill against your preferred distribution.
+
+Apache Drill 0.6.0 Key Features
+
+This release is primarily a bug fix release, with [more than 30 JIRAs closed](
+https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12313820&vers
+ion=12327472), but there are some notable features:
+
+  * Direct ANSI SQL access to MongoDB, using the latest [MongoDB Plugin for Apache Drill](/confluence/display/DRILL/MongoDB+Plugin+for+Apache+Drill)
+  * Filesystem query performance improvements with partition pruning
+  * Ability to use the file system as a persistent store for query profiles and diagnostic information
+  * Window function support (alpha)
+
+Apache Drill 0.6.0 Key Notes and Limitations
+
+  * The current release supports in-memory and beyond-memory execution. However, you must disable memory-intensive hash aggregate and hash join operations to leverage this functionality.
+  * While the Drill execution engine supports dynamic schema changes during the course of a query, some operators have yet to implement support for this behavior, such as Sort. Other operations, such as streaming aggregate, may have partial support that leads to unexpected results.
+
+## Apache Drill 0.5.0 Release Notes
+
+Apache Drill 0.5.0, the first beta release for Drill, is designed to help
+enthusiasts start working and experimenting with Drill. It also continues the
+Drill monthly release cycle as we drive towards general availability.
+
+The 0.5.0 release is primarily a bug fix release, with [more than 100 JIRAs](h
+ttps://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12313820&versi
+on=12324880) closed, but there are some notable features. For information
+about the features, see the [Apache Drill Blog for the 0.5.0
+release](https://blogs.apache.org/drill/entry/apache_drill_beta_release_see).
+
+This release is available as [binary](http://www.apache.org/dyn/closer.cgi/inc
+ubator/drill/drill-0.5.0-incubating/apache-drill-0.5.0-incubating.tar.gz) and 
+[source](http://www.apache.org/dyn/closer.cgi/incubator/drill/drill-0.5.0-incu
+bating/apache-drill-0.5.0-incubating-src.tar.gz) tarballs that are compiled
+against Apache Hadoop. Drill has been tested against MapR, Cloudera, and
+Hortonworks Hadoop distributions. There are associated build profiles and
+JIRAs that can help you run Drill against your preferred distribution.
+
+Apache Drill 0.5.0 Key Notes and Limitations
+
+  * The current release supports in memory and beyond memory execution. However, you must disable memory-intensive hash aggregate and hash join operations to leverage this functionality.
+  * While the Drill execution engine supports dynamic schema changes during the course of a query, some operators have yet to implement support for this behavior, such as Sort. Others operations, such as streaming aggregate, may have partial support that leads to unexpected results.
+  * There are known issues with joining text files without using an intervening view. See [DRILL-1401](https://issues.apache.org/jira/browse/DRILL-1401) for more information.
+
+## Apache Drill 0.4.0 Release Notes
+
+The 0.4.0 release is a developer preview release, designed to help enthusiasts
+start to work with and experiment with Drill. It is the first Drill release
+that provides distributed query execution.
+
+This release is built upon [more than 800
+JIRAs](https://issues.apache.org/jira/browse/DRILL/fixforversion/12324963/).
+It is a pre-beta release on the way towards Drill. As a developer snapshot,
+the release contains a large number of outstanding bugs that will make some
+use cases challenging. Feel free to consult outstanding issues [targeted for
+the 0.5.0
+release](https://issues.apache.org/jira/browse/DRILL/fixforversion/12324880/)
+to see whether your use case is affected.
+
+To read more about this release and new features introduced, please view the
+[0.4.0 announcement blog
+entry](https://blogs.apache.org/drill/entry/announcing_apache_drill_0_4).
+
+The release is available as both [binary](http://www.apache.org/dyn/closer.cgi
+/incubator/drill/drill-0.4.0-incubating/apache-drill-0.4.0-incubating.tar.gz)
+and [source](http://www.apache.org/dyn/closer.cgi/incubator/drill/drill-0.4.0-
+incubating/apache-drill-0.4.0-incubating-src.tar.gz) tarballs. In both cases,
+these are compiled against Apache Hadoop. Drill has also been tested against
+MapR, Cloudera and Hortonworks Hadoop distributions and there are associated
+build profiles or JIRAs that can help you run against your preferred
+distribution.
+
+Some Key Notes & Limitations
+
+  * The current release supports in memory and beyond memory execution. However, users must disable memory-intensive hash aggregate and hash join operations to leverage this functionality.
+  * In many cases,merge join operations return incorrect results.
+  * Use of a local filter in a join “on” clause when using left, right or full outer joins may result in incorrect results.
+  * Because of known memory leaks and memory overrun issues you may need more memory and you may need to restart the system in some cases.
+  * Some types of complex expressions, especially those involving empty arrays may fail or return incorrect results.
+  * While the Drill execution engine supports dynamic schema changes during the course of a query, some operators have yet to implement support for this behavior (such as Sort). Others operations (such as streaming aggregate) may have partial support that leads to unexpected results.
+  * Protobuf, UDF, query plan interfaces and all interfaces are subject to change in incompatible ways.
+  * Multiplication of some types of DECIMAL(28+,*) will return incorrect result.
+
+## Apache Drill M1 -- Release Notes (Apache Drill Alpha)
+
+### Milestone 1 Goals
+
+The first release of Apache Drill is designed as a technology preview for
+people to better understand the architecture and vision. It is a functional
+release tying to piece together the key components of a next generation MPP
+query engine. It is designed to allow milestone 2 (M2) to focus on
+architectural analysis and performance optimization.
+
+  * Provide a new optimistic DAG execution engine for data analysis
+  * Build a new columnar shredded in-memory format and execution model that minimizes data serialization/deserialization costs and operator complexity
+  * Provide a model for runtime generated functions and relational operators that minimizes complexity and maximizes performance
+  * Support queries against columnar on disk format (Parquet) and JSON
+  * Support the most common set of standard SQL read-only phrases using ANSI standards. Includes: SELECT, FROM, WHERE, HAVING, ORDER, GROUP BY, IN, DISTINCT, LEFT JOIN, RIGHT JOIN, INNER JOIN
+  * Support schema-on-read querying and execution
+  * Build a set of columnar operation primitives including Merge Join, Sort, Streaming Aggregate, Filter, Selection Vector removal.
+  * Support unlimited level of subqueries and correlated subqueries
+  * Provided an extensible query-language agnostic JSON-base logical data flow syntax.
+  * Support complex data type manipulation via logical plan operations
+
+### Known Issues
+
+SQL Parsing  
+Because Apache Drill is built to support late-bound changing schemas while SQL
+is statically typed, there are couple of special requirements that are
+required writing SQL queries. These are limited to the current release and
+will be correct in a future milestone release.
+
+  * All tables are exposed as a single map field that contains
+  * Drill Alpha doesn't support implicit or explicit casts outside those required above.
+  * Drill Alpha does not include, there are currently a couple of differences for how to write a query in In order to query against
+
+UDFs
+
+  * Drill currently supports simple and aggregate functions using scalar, repeated and
+  * Nested data support incomplete. Drill Alpha supports nested data structures as well repeated fields. However,
+  * asd
+

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/011-contribute.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/011-contribute.md b/_docs/drill-docs/011-contribute.md
new file mode 100644
index 0000000..282ab8a
--- /dev/null
+++ b/_docs/drill-docs/011-contribute.md
@@ -0,0 +1,11 @@
+---
+title: "Contribute to Drill"
+parent: "Apache Drill Documentation"
+---
+The Apache Drill community welcomes your support. Please read [Apache Drill
+Contribution Guidelines](https://cwiki.apache.org/confluence/display/DRILL/Apa
+che+Drill+Contribution+Guidelines) for information about how to contribute to
+the project. If you would like to contribute to the project and need some
+ideas for what to do, please read [Apache Drill Contribution
+Ideas](/confluence/display/DRILL/Apache+Drill+Contribution+Ideas).
+

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/012-sample-ds.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/012-sample-ds.md b/_docs/drill-docs/012-sample-ds.md
new file mode 100644
index 0000000..fe63f6b
--- /dev/null
+++ b/_docs/drill-docs/012-sample-ds.md
@@ -0,0 +1,11 @@
+---
+title: "Sample Datasets"
+parent: "Apache Drill Documentation"
+---
+Use any of the following sample datasets provided to test Drill:
+
+  * [AOL Search](/confluence/display/DRILL/AOL+Search)
+  * [Enron Emails](/confluence/display/DRILL/Enron+Emails)
+  * [Wikipedia Edit History](/confluence/display/DRILL/Wikipedia+Edit+History)
+
+

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/013-design.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/013-design.md b/_docs/drill-docs/013-design.md
new file mode 100644
index 0000000..57d73c1
--- /dev/null
+++ b/_docs/drill-docs/013-design.md
@@ -0,0 +1,14 @@
+---
+title: "Design Docs"
+parent: "Apache Drill Documentation"
+---
+Review the Apache Drill design docs for early descriptions of Apache Drill
+functionality, terms, and goals, and reference the research articles to learn
+about Apache Drill's history:
+
+  * [Drill Plan Syntax](/confluence/display/DRILL/Drill+Plan+Syntax)
+  * [RPC Overview](/confluence/display/DRILL/RPC+Overview)
+  * [Query Stages](/confluence/display/DRILL/Query+Stages)
+  * [Useful Research](/confluence/display/DRILL/Useful+Research)
+  * [Value Vectors](/confluence/display/DRILL/Value+Vectors)
+

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/014-progress.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/014-progress.md b/_docs/drill-docs/014-progress.md
new file mode 100644
index 0000000..2a1538c
--- /dev/null
+++ b/_docs/drill-docs/014-progress.md
@@ -0,0 +1,9 @@
+---
+title: "Progress Reports"
+parent: "Apache Drill Documentation"
+---
+Review the following Apache Drill progress reports for a summary of issues,
+progression of the project, summary of mailing list discussions, and events:
+
+  * [2014 Q1 Drill Report](/confluence/display/DRILL/2014+Q1+Drill+Report)
+

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/015-archived-pages.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/015-archived-pages.md b/_docs/drill-docs/015-archived-pages.md
new file mode 100644
index 0000000..b2a29c3
--- /dev/null
+++ b/_docs/drill-docs/015-archived-pages.md
@@ -0,0 +1,9 @@
+---
+title: "Archived Pages"
+parent: "Apache Drill Documentation"
+---
+The following pages have been archived:
+
+* How to Run Drill with Sample Data
+* Meet Apache Drill
+

http://git-wip-us.apache.org/repos/asf/drill/blob/84b7b36d/_docs/drill-docs/016-bylaws.md
----------------------------------------------------------------------
diff --git a/_docs/drill-docs/016-bylaws.md b/_docs/drill-docs/016-bylaws.md
new file mode 100644
index 0000000..6f2604f
--- /dev/null
+++ b/_docs/drill-docs/016-bylaws.md
@@ -0,0 +1,171 @@
+---
+title: "Project Bylaws"
+parent: "Apache Drill Documentation"
+---
+# Introduction
+
+This document defines the bylaws under which the Apache Drill project
+operates. It defines the roles and responsibilities of the project, who may
+vote, how voting works, how conflicts are resolved, etc.
+
+Drill is a project of the [Apache Software
+Foundation](http://www.apache.org/foundation/). The foundation holds the
+copyright on Apache code including the code in the Drill codebase. The
+[foundation FAQ](http://www.apache.org/foundation/faq.html) explains the
+operation and background of the foundation.
+
+Drill is typical of Apache projects in that it operates under a set of
+principles, known collectively as the _Apache Way_. If you are new to Apache
+development, please refer to the [Incubator
+project](http://incubator.apache.org/) for more information on how Apache
+projects operate.
+
+# Roles and Responsibilities
+
+Apache projects define a set of roles with associated rights and
+responsibilities. These roles govern what tasks an individual may perform
+within the project. The roles are defined in the following sections.
+
+## Users
+
+The most important participants in the project are people who use our
+software. The majority of our contributors start out as users and guide their
+development efforts from the user's perspective.
+
+Users contribute to the Apache projects by providing feedback to contributors
+in the form of bug reports and feature suggestions. As well, users participate
+in the Apache community by helping other users on mailing lists and user
+support forums.
+
+## Contributors
+
+All of the volunteers who are contributing time, code, documentation, or
+resources to the Drill Project. A contributor that makes sustained, welcome
+contributions to the project may be invited to become a committer, though the
+exact timing of such invitations depends on many factors.
+
+## Committers
+
+The project's committers are responsible for the project's technical
+management. Committers have access to a specified set of subproject's code
+repositories. Committers on subprojects may cast binding votes on any
+technical discussion regarding that subproject.
+
+Committer access is by invitation only and must be approved by lazy consensus
+of the active PMC members. A Committer is considered _emeritus_ by his or her
+own declaration or by not contributing in any form to the project for over six
+months. An emeritus committer may request reinstatement of commit access from
+the PMC which will be sufficient to restore him or her to active committer
+status.
+
+Commit access can be revoked by a unanimous vote of all the active PMC members
+(except the committer in question if he or she is also a PMC member).
+
+All Apache committers are required to have a signed [Contributor License
+Agreement (CLA)](http://www.apache.org/licenses/icla.txt) on file with the
+Apache Software Foundation. There is a [Committer
+FAQ](http://www.apache.org/dev/committers.html) which provides more details on
+the requirements for committers.
+
+A committer who makes a sustained contribution to the project may be invited
+to become a member of the PMC. The form of contribution is not limited to
+code. It can also include code review, helping out users on the mailing lists,
+documentation, etc.
+
+## Project Management Committee
+
+The PMC is responsible to the board and the ASF for the management and
+oversight of the Apache Drill codebase. The responsibilities of the PMC
+include
+
+  * Deciding what is distributed as products of the Apache Drill project. In particular all releases must be approved by the PMC.
+  * Maintaining the project's shared resources, including the codebase repository, mailing lists, websites.
+  * Speaking on behalf of the project.
+  * Resolving license disputes regarding products of the project.
+  * Nominating new PMC members and committers.
+  * Maintaining these bylaws and other guidelines of the project.
+
+Membership of the PMC is by invitation only and must be approved by a lazy
+consensus of active PMC members. A PMC member is considered _emeritus_ by his
+or her own declaration or by not contributing in any form to the project for
+over six months. An emeritus member may request reinstatement to the PMC,
+which will be sufficient to restore him or her to active PMC member.
+
+Membership of the PMC can be revoked by an unanimous vote of all the active
+PMC members other than the member in question.
+
+The chair of the PMC is appointed by the ASF board. The chair is an office
+holder of the Apache Software Foundation (Vice President, Apache Drill) and
+has primary responsibility to the board for the management of the projects
+within the scope of the Drill PMC. The chair reports to the board quarterly on
+developments within the Drill project.
+
+The term of the chair is one year. When the current chair's term is up or if
+the chair resigns before the end of his or her term, the PMC votes to
+recommend a new chair using lazy consensus, but the decision must be ratified
+by the Apache board.
+
+# Decision Making
+
+Within the Drill project, different types of decisions require different forms
+of approval. For example, the previous section describes several decisions
+which require 'lazy consensus' approval. This section defines how voting is
+performed, the types of approvals, and which types of decision require which
+type of approval.
+
+## Voting
+
+Decisions regarding the project are made by votes on the primary project
+development mailing list
+_[dev@drill.apache.org](mailto:dev@drill.apache.org)_. Where necessary, PMC
+voting may take place on the private Drill PMC mailing list
+[private@drill.apache.org](mailto:private@drill.apache.org). Votes are clearly
+indicated by subject line starting with [VOTE]. Votes may contain multiple
+items for approval and these should be clearly separated. Voting is carried
+out by replying to the vote mail. Voting may take four flavors.
+
+ <table class="confluenceTable"><tbody><tr><td valign="top" class="confluenceTd"><p>Vote</p></td><td valign="top" class="confluenceTd"><p> </p></td></tr><tr><td valign="top" class="confluenceTd"><p>+1</p></td><td valign="top" class="confluenceTd"><p>'Yes,' 'Agree,' or 'the action should be performed.' In general, this vote also indicates a willingness on the behalf of the voter in 'making it happen'.</p></td></tr><tr><td valign="top" class="confluenceTd"><p>+0</p></td><td valign="top" class="confluenceTd"><p>This vote indicates a willingness for the action under consideration to go ahead. The voter, however will not be able to help.</p></td></tr><tr><td valign="top" class="confluenceTd"><p>-0</p></td><td valign="top" class="confluenceTd"><p>This vote indicates that the voter does not, in general, agree with the proposed action but is not concerned enough to prevent the action going ahead.</p></td></tr><tr><td valign="top" class="confluenceTd"><p>-1</p></td><td valign="top" class="co
 nfluenceTd"><p>This is a negative vote. On issues where consensus is required, this vote counts as a <strong>veto</strong>. All vetoes must contain an explanation of why the veto is appropriate. Vetoes with no explanation are void. It may also be appropriate for a -1 vote to include an alternative course of action.</p></td></tr></tbody></table>
+  
+All participants in the Drill project are encouraged to show their agreement
+with or against a particular action by voting. For technical decisions, only
+the votes of active committers are binding. Non binding votes are still useful
+for those with binding votes to understand the perception of an action in the
+wider Drill community. For PMC decisions, only the votes of PMC members are
+binding.
+
+Voting can also be applied to changes already made to the Drill codebase.
+These typically take the form of a veto (-1) in reply to the commit message
+sent when the commit is made. Note that this should be a rare occurrence. All
+efforts should be made to discuss issues when they are still patches before
+the code is committed.
+
+## Approvals
+
+These are the types of approvals that can be sought. Different actions require
+different types of approvals.
+
+<table class="confluenceTable"><tbody><tr><td valign="top" class="confluenceTd"><p>Approval Type</p></td><td valign="top" class="confluenceTd"><p> </p></td></tr><tr><td valign="top" class="confluenceTd"><p>Consensus</p></td><td valign="top" class="confluenceTd"><p>For this to pass, all voters with binding votes must vote and there can be no binding vetoes (-1). Consensus votes are rarely required due to the impracticality of getting all eligible voters to cast a vote.</p></td></tr><tr><td valign="top" class="confluenceTd"><p>Lazy Consensus</p></td><td valign="top" class="confluenceTd"><p>Lazy consensus requires 3 binding +1 votes and no binding vetoes.</p></td></tr><tr><td valign="top" class="confluenceTd"><p>Lazy Majority</p></td><td valign="top" class="confluenceTd"><p>A lazy majority vote requires 3 binding +1 votes and more binding +1 votes that -1 votes.</p></td></tr><tr><td valign="top" class="confluenceTd"><p>Lazy Approval</p></td><td valign="top" class="confluenceTd"><p>An a
 ction with lazy approval is implicitly allowed unless a -1 vote is received, at which time, depending on the type of action, either lazy majority or lazy consensus approval must be obtained.</p></td></tr></tbody></table>  
+  
+## Vetoes
+
+A valid, binding veto cannot be overruled. If a veto is cast, it must be
+accompanied by a valid reason explaining the reasons for the veto. The
+validity of a veto, if challenged, can be confirmed by anyone who has a
+binding vote. This does not necessarily signify agreement with the veto -
+merely that the veto is valid.
+
+If you disagree with a valid veto, you must lobby the person casting the veto
+to withdraw his or her veto. If a veto is not withdrawn, the action that has
+been vetoed must be reversed in a timely manner.
+
+## Actions
+
+This section describes the various actions which are undertaken within the
+project, the corresponding approval required for that action and those who
+have binding votes over the action. It also specifies the minimum length of
+time that a vote must remain open, measured in business days. In general votes
+should not be called at times when it is known that interested members of the
+project will be unavailable.
+
+<table class="confluenceTable"><tbody><tr><td valign="top" class="confluenceTd"><p>Action</p></td><td valign="top" class="confluenceTd"><p>Description</p></td><td valign="top" class="confluenceTd"><p>Approval</p></td><td valign="top" class="confluenceTd"><p>Binding Votes</p></td><td valign="top" class="confluenceTd"><p>Minimum Length</p></td></tr><tr><td valign="top" class="confluenceTd"><p>Code Change</p></td><td valign="top" class="confluenceTd"><p>A change made to a codebase of the project and committed by a committer. This includes source code, documentation, website content, etc.</p></td><td valign="top" class="confluenceTd"><p>Consensus approval of active committers, with a minimum of one +1. The code can be committed after the first +1</p></td><td valign="top" class="confluenceTd"><p>Active committers</p></td><td valign="top" class="confluenceTd"><p>1</p></td></tr><tr><td valign="top" class="confluenceTd"><p>Release Plan</p></td><td valign="top" class="confluenceTd"><p>Define
 s the timetable and actions for a release. The plan also nominates a Release Manager.</p></td><td valign="top" class="confluenceTd"><p>Lazy majority</p></td><td valign="top" class="confluenceTd"><p>Active committers</p></td><td valign="top" class="confluenceTd"><p>3</p></td></tr><tr><td valign="top" class="confluenceTd"><p>Product Release</p></td><td valign="top" class="confluenceTd"><p>When a release of one of the project's products is ready, a vote is required to accept the release as an official release of the project.</p></td><td valign="top" class="confluenceTd"><p>Lazy Majority</p></td><td valign="top" class="confluenceTd"><p>Active PMC members</p></td><td valign="top" class="confluenceTd"><p>3</p></td></tr><tr><td valign="top" class="confluenceTd"><p>Adoption of New Codebase</p></td><td valign="top" class="confluenceTd"><p>When the codebase for an existing, released product is to be replaced with an alternative codebase. If such a vote fails to gain approval, the existing cod
 e base will continue. This also covers the creation of new sub-projects within the project.</p></td><td valign="top" class="confluenceTd"><p>2/3 majority</p></td><td valign="top" class="confluenceTd"><p>Active PMC members</p></td><td valign="top" class="confluenceTd"><p>6</p></td></tr><tr><td valign="top" class="confluenceTd"><p>New Committer</p></td><td valign="top" class="confluenceTd"><p>When a new committer is proposed for the project.</p></td><td valign="top" class="confluenceTd"><p>Lazy consensus</p></td><td valign="top" class="confluenceTd"><p>Active PMC members</p></td><td valign="top" class="confluenceTd"><p>3</p></td></tr><tr><td valign="top" class="confluenceTd"><p>New PMC Member</p></td><td valign="top" class="confluenceTd"><p>When a committer is proposed for the PMC.</p></td><td valign="top" class="confluenceTd"><p>Lazy consensus</p></td><td valign="top" class="confluenceTd"><p>Active PMC members</p></td><td valign="top" class="confluenceTd"><p>3</p></td></tr><tr><td va
 lign="top" class="confluenceTd"><p>Committer Removal</p></td><td valign="top" class="confluenceTd"><p>When removal of commit privileges is sought. <em>Note: Such actions will also be referred to the ASF board by the PMC chair.</em></p></td><td valign="top" class="confluenceTd"><p>Consensus</p></td><td valign="top" class="confluenceTd"><p>Active PMC members (excluding the committer in question if a member of the PMC).</p></td><td valign="top" class="confluenceTd"><p>6</p></td></tr><tr><td valign="top" class="confluenceTd"><p>PMC Member Removal</p></td><td valign="top" class="confluenceTd"><p>When removal of a PMC member is sought. <em>Note: Such actions will also be referred to the ASF board by the PMC chair.</em></p></td><td valign="top" class="confluenceTd"><p>Consensus</p></td><td valign="top" class="confluenceTd"><p>Active PMC members (excluding the member in question).</p></td><td valign="top" class="confluenceTd"><p>6</p></td></tr><tr><td valign="top" class="confluenceTd"><p>Mo
 difying Bylaws</p></td><td valign="top" class="confluenceTd"><p>Modifying this document.</p></td><td valign="top" class="confluenceTd"><p>2/3 majority</p></td><td valign="top" class="confluenceTd"><p>Active PMC members</p></td><td valign="top" class="confluenceTd"><p>6</p></td></tr></tbody></table>
+