You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by dz...@apache.org on 2021/08/22 18:27:49 UTC

[drill-site] branch asf-site updated: Website update.

This is an automated email from the ASF dual-hosted git repository.

dzamo pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/drill-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 6bead72  Website update.
6bead72 is described below

commit 6bead724c5b91f9f802d241da04be0c035fc028d
Author: James Turton <ja...@somecomputer.xyz>
AuthorDate: Sun Aug 22 20:27:33 2021 +0200

    Website update.
---
 .../08/05/drill-provider-for-airflow/index.html    | 215 ++++++
 blog/index.html                                    |   5 +
 data/index.html                                    |   6 +
 docs/about-sql-function-examples/index.html        |   4 +
 docs/about-the-mapr-sandbox/index.html             |   4 +
 .../index.html                                     |   4 +
 docs/adding-custom-functions-to-drill/index.html   |   4 +
 .../aggregate-and-aggregate-statistical/index.html |   4 +
 docs/aggregate-window-functions/index.html         |   4 +
 docs/alter-system/index.html                       |   4 +
 docs/analyze-table-compute-statistics/index.html   |   4 +
 docs/analyze-table-refresh-metadata/index.html     |   4 +
 .../index.html                                     |   6 +-
 docs/analyzing-highly-dynamic-datasets/index.html  |   4 +
 docs/analyzing-social-media/index.html             |   4 +
 .../analyzing-the-yelp-academic-dataset/index.html |   4 +
 docs/apache-drill-0-4-0-release-notes/index.html   |   4 +
 docs/apache-drill-0-5-0-release-notes/index.html   |   4 +
 docs/apache-drill-0-6-0-release-notes/index.html   |   4 +
 docs/apache-drill-0-7-0-release-notes/index.html   |   4 +
 docs/apache-drill-0-8-0-release-notes/index.html   |   4 +
 docs/apache-drill-0-9-0-release-notes/index.html   |   4 +
 docs/apache-drill-1-0-0-release-notes/index.html   |   4 +
 docs/apache-drill-1-1-0-release-notes/index.html   |   4 +
 docs/apache-drill-1-10-0-release-notes/index.html  |   4 +
 docs/apache-drill-1-11-0-release-notes/index.html  |   4 +
 docs/apache-drill-1-12-0-release-notes/index.html  |   4 +
 docs/apache-drill-1-13-0-release-notes/index.html  |   4 +
 docs/apache-drill-1-14-0-release-notes/index.html  |   4 +
 docs/apache-drill-1-15-0-release-notes/index.html  |   4 +
 docs/apache-drill-1-16-0-release-notes/index.html  |   4 +
 docs/apache-drill-1-17-0-release-notes/index.html  |   4 +
 docs/apache-drill-1-18-0-release-notes/index.html  |   4 +
 docs/apache-drill-1-19-0-release-notes/index.html  |   4 +
 docs/apache-drill-1-2-0-release-notes/index.html   |   4 +
 docs/apache-drill-1-3-0-release-notes/index.html   |   4 +
 docs/apache-drill-1-4-0-release-notes/index.html   |   4 +
 docs/apache-drill-1-5-0-release-notes/index.html   |   4 +
 docs/apache-drill-1-6-0-release-notes/index.html   |   4 +
 docs/apache-drill-1-7-0-release-notes/index.html   |   4 +
 docs/apache-drill-1-8-0-release-notes/index.html   |   4 +
 docs/apache-drill-1-9-0-release-notes/index.html   |   4 +
 .../index.html                                     |   4 +
 docs/apache-drill-contribution-ideas/index.html    |   4 +
 .../index.html                                     |   4 +
 docs/appendix-a-release-note-issues/index.html     |   4 +
 docs/appendix-b-drill-env-sh-settings/index.html   |   4 +
 docs/appendix-c-troubleshooting/index.html         |   4 +
 .../index.html                                     |   4 +
 docs/architecture-introduction/index.html          |   4 +
 docs/architecture/index.html                       |   4 +
 docs/asynchronous-parquet-reader/index.html        |   4 +
 docs/azure-blob-storage-plugin/index.html          |   4 +
 docs/browsing-data-and-defining-views/index.html   |   4 +
 docs/case/index.html                               |   4 +
 docs/cassandra-storage-plugin/index.html           |   4 +
 docs/choosing-a-storage-format/index.html          |   4 +
 docs/compiling-drill-from-source/index.html        |   4 +
 docs/configuration-options-introduction/index.html |   4 +
 docs/configuration-options/index.html              |   4 +
 docs/configuration-reference/index.html            |   4 +
 docs/configure-drill-introduction/index.html       |   4 +
 docs/configure-drill/index.html                    |   4 +
 .../index.html                                     |   4 +
 docs/configuring-a-multitenant-cluster/index.html  |   4 +
 .../index.html                                     |   4 +
 .../index.html                                     |   4 +
 docs/configuring-drill-memory/index.html           |   4 +
 .../index.html                                     |   4 +
 docs/configuring-inbound-impersonation/index.html  |   4 +
 docs/configuring-index-planning/index.html         |   4 +
 docs/configuring-jreport-with-drill/index.html     |   4 +
 docs/configuring-kerberos-security/index.html      |   4 +
 docs/configuring-multitenant-resources/index.html  |   4 +
 docs/configuring-odbc-on-linux/index.html          |   4 +
 docs/configuring-odbc-on-mac-os-x/index.html       |   4 +
 docs/configuring-odbc-on-windows/index.html        |   4 +
 docs/configuring-odbc/index.html                   |   4 +
 docs/configuring-plain-security/index.html         |   4 +
 .../index.html                                     |   4 +
 docs/configuring-ssl-tls-for-encryption/index.html |   4 +
 docs/configuring-storage-plugins/index.html        |   4 +
 docs/configuring-the-drill-shell/index.html        |   4 +
 .../index.html                                     |   4 +
 .../index.html                                     |   4 +
 docs/configuring-user-impersonation/index.html     |   4 +
 docs/configuring-user-security/index.html          |   4 +
 .../index.html                                     |   4 +
 docs/connect-a-data-source-introduction/index.html |   4 +
 docs/connect-a-data-source/index.html              |   4 +
 docs/connecting-drill-explorer-to-data/index.html  |   4 +
 docs/contribute-to-drill/index.html                |   4 +
 .../index.html                                     |   4 +
 docs/core-modules/index.html                       |   4 +
 docs/create-function-using-jar/index.html          |   4 +
 docs/create-or-replace-schema/index.html           |   4 +
 docs/create-table-as-ctas/index.html               |   4 +
 docs/create-temporary-table-as-cttas/index.html    |   4 +
 docs/create-view/index.html                        |   4 +
 docs/creating-a-basic-drill-cluster/index.html     |   4 +
 docs/creating-custom-authenticators/index.html     |   4 +
 docs/cryptography-functions/index.html             |   4 +
 docs/custom-function-interfaces/index.html         |   4 +
 .../index.html                                     |   4 +
 docs/data-sources-and-file-formats/index.html      |   4 +
 docs/data-type-conversion/index.html               |   4 +
 docs/data-type-functions/index.html                |   4 +
 docs/data-types/index.html                         |   4 +
 docs/date-time-and-timestamp/index.html            |   4 +
 docs/date-time-functions-and-arithmetic/index.html |   4 +
 docs/deploying-and-using-a-hive-udf/index.html     |   4 +
 docs/describe/index.html                           |   4 +
 docs/design-docs/index.html                        |   4 +
 docs/designing-indexes-for-your-queries/index.html |   4 +
 .../index.html                                     |   4 +
 docs/develop-custom-functions/index.html           |   4 +
 docs/develop-drill/index.html                      |   4 +
 docs/developer-information/index.html              |   4 +
 docs/developing-a-simple-function/index.html       |   4 +
 docs/developing-an-aggregate-function/index.html   |   4 +
 docs/distributed-mode-prerequisites/index.html     |   4 +
 docs/drill-default-input-format/index.html         |   4 +
 docs/drill-explorer-introduction/index.html        |   4 +
 docs/drill-iceberg-metastore/index.html            |   4 +
 docs/drill-in-10-minutes/index.html                |   4 +
 docs/drill-introduction/index.html                 |   4 +
 docs/drill-metastore/index.html                    |   4 +
 docs/drill-on-yarn-command-line-tool/index.html    |   4 +
 docs/drill-on-yarn-introduction/index.html         |   4 +
 docs/drill-on-yarn/index.html                      |   6 +-
 docs/drill-plan-syntax/index.html                  |   4 +
 docs/drill-query-execution/index.html              |   4 +
 docs/drop-function-using-jar/index.html            |   4 +
 docs/drop-table/index.html                         |   4 +
 docs/drop-view/index.html                          |   4 +
 docs/druid-storage-plugin/index.html               |   4 +
 docs/dynamic-udfs/index.html                       |   4 +
 docs/ecosystem/index.html                          |   4 +
 docs/elasticsearch-storage-plugin/index.html       |   4 +
 docs/embedded-mode-prerequisites/index.html        |   4 +
 docs/enabling-query-queuing/index.html             |   4 +
 docs/enabling-web-ui-security/index.html           |   4 +
 docs/enron-emails/index.html                       |   4 +
 docs/error-messages/index.html                     |   4 +
 docs/esri-shapefile-format-plugin/index.html       |   4 +
 docs/excel-format-plugin/index.html                |   4 +
 docs/explain/index.html                            |   4 +
 docs/file-system-storage-plugin/index.html         |   4 +
 docs/flatten/index.html                            |   4 +
 docs/from-clause/index.html                        |   4 +
 docs/functions-for-handling-nulls/index.html       |   4 +
 docs/getting-started/index.html                    |   4 +
 docs/getting-to-know-the-drill-sandbox/index.html  |   4 +
 docs/gis-functions/index.html                      |   4 +
 docs/global-query-list/index.html                  |   4 +
 docs/group-by-clause/index.html                    |   4 +
 .../index.html                                     |   4 +
 docs/handling-different-data-types/index.html      |   4 +
 docs/having-clause/index.html                      |   4 +
 docs/hbase-storage-plugin/index.html               |   4 +
 docs/hdf5-format-plugin/index.html                 |   4 +
 docs/hive-metadata-caching/index.html              |   4 +
 docs/hive-storage-plugin/index.html                |   4 +
 docs/hive-to-drill-data-type-mapping/index.html    |   4 +
 docs/how-to-partition-data/index.html              |   4 +
 docs/http-storage-plugin/index.html                |   6 +-
 docs/httpd-format-plugin/index.html                |   4 +
 .../index.html                                     |   4 +
 docs/identifying-performance-issues/index.html     |   4 +
 docs/image-metadata-format-plugin/index.html       |   4 +
 docs/index-selection/index.html                    |   4 +
 docs/index.html                                    |   4 +
 docs/install-drill-introduction/index.html         |   4 +
 docs/install-drill/index.html                      |   4 +
 .../index.html                                     |   4 +
 docs/installing-drill-in-embedded-mode/index.html  |   4 +
 .../index.html                                     |   4 +
 docs/installing-drill-on-the-cluster/index.html    |   6 +-
 docs/installing-drill-on-windows/index.html        |   4 +
 .../installing-the-apache-drill-sandbox/index.html |   4 +
 docs/installing-the-driver-on-linux/index.html     |   4 +
 docs/installing-the-driver-on-mac-os-x/index.html  |   4 +
 docs/installing-the-driver-on-windows/index.html   |   4 +
 docs/installing-the-odbc-driver/index.html         |   4 +
 docs/interfaces-introduction/index.html            |   4 +
 docs/ip-networking-functions/index.html            |   4 +
 docs/join-planning-guidelines/index.html           |   4 +
 docs/json-data-model/index.html                    |   4 +
 docs/kafka-storage-plugin/index.html               |   4 +
 docs/kvgen/index.html                              |   4 +
 docs/lateral-join/index.html                       |   4 +
 docs/launch-drill-under-yarn/index.html            |   4 +
 docs/learn-drill-with-the-mapr-sandbox/index.html  |   4 +
 docs/lesson-1-learn-about-the-data-set/index.html  |   4 +
 docs/lesson-2-run-queries-with-ansi-sql/index.html |   4 +
 .../index.html                                     |   4 +
 docs/lexical-structure/index.html                  |   4 +
 docs/limit-clause/index.html                       |   4 +
 docs/log-and-debug-introduction/index.html         |   4 +
 docs/log-and-debug/index.html                      |   4 +
 docs/logfile-plugin/index.html                     |   4 +
 docs/logging-and-tracing/index.html                |   4 +
 docs/ltsv-format-plugin/index.html                 |   4 +
 .../index.html                                     |   4 +
 docs/mapr-db-format/index.html                     |   4 +
 docs/math-and-trig/index.html                      |   4 +
 docs/migrating-parquet-data/index.html             |   4 +
 docs/modify-logback-xml/index.html                 |   4 +
 docs/modifying-query-planning-options/index.html   |   4 +
 docs/mongodb-storage-plugin/index.html             |   4 +
 .../index.html                                     |   4 +
 docs/monitoring-metrics/index.html                 |   4 +
 docs/multiple-drill-clusters/index.html            |   4 +
 docs/nested-data-functions/index.html              |   4 +
 docs/nested-data-limitations/index.html            |   4 +
 docs/odbc-configuration-reference/index.html       |   4 +
 docs/odbc-jdbc-interfaces/index.html               |   4 +
 docs/offset-clause/index.html                      |   4 +
 docs/opentsdb-storage-plugin/index.html            |   4 +
 docs/operators/index.html                          |   4 +
 .../optimizing-parquet-metadata-reading/index.html |   4 +
 .../index.html                                     | 513 ++++++++------
 docs/order-by-clause/index.html                    |   4 +
 docs/parquet-filter-pushdown/index.html            |   4 +
 docs/parquet-format/index.html                     |   4 +
 docs/partition-by-clause/index.html                |   4 +
 docs/partition-pruning-introduction/index.html     |   4 +
 docs/partition-pruning/index.html                  |   4 +
 docs/performance-tuning-introduction/index.html    |   4 +
 docs/performance-tuning-reference/index.html       |   4 +
 docs/performance-tuning/index.html                 |   4 +
 docs/performance/index.html                        |   4 +
 docs/persistent-configuration-storage/index.html   |   4 +
 docs/phonetic-functions/index.html                 |   4 +
 docs/physical-operators/index.html                 |   4 +
 docs/planning-and-execution-options/index.html     |   4 +
 docs/plugin-configuration-basics/index.html        |   4 +
 docs/ports-used-by-drill/index.html                |   4 +
 docs/project-bylaws/index.html                     |   4 +
 .../index.html                                     |   4 +
 docs/query-audit-logging/index.html                |   4 +
 docs/query-data-introduction/index.html            |   4 +
 docs/query-data/index.html                         |   4 +
 docs/query-directory-functions/index.html          |   4 +
 .../query-plans-and-tuning-introduction/index.html |   4 +
 docs/query-plans-and-tuning/index.html             |   4 +
 docs/query-plans/index.html                        |   4 +
 docs/query-profile-column-descriptions/index.html  |   4 +
 docs/query-profiles/index.html                     |   4 +
 docs/query-stages/index.html                       |   4 +
 .../querying-a-file-system-introduction/index.html |   4 +
 docs/querying-a-file-system/index.html             |   4 +
 docs/querying-avro-files/index.html                |   4 +
 docs/querying-complex-data-introduction/index.html |   4 +
 docs/querying-complex-data/index.html              |   4 +
 docs/querying-directories/index.html               |   4 +
 docs/querying-hbase/index.html                     |   4 +
 docs/querying-hive/index.html                      |   4 +
 docs/querying-indexes-introduction/index.html      |   4 +
 docs/querying-indexes/index.html                   |   4 +
 docs/querying-json-files/index.html                |   4 +
 docs/querying-parquet-files/index.html             |   4 +
 docs/querying-plain-text-files/index.html          |   4 +
 docs/querying-sequence-files/index.html            |   4 +
 docs/querying-system-tables/index.html             |   4 +
 docs/querying-the-information-schema/index.html    |   4 +
 docs/ranking-window-functions/index.html           |   4 +
 docs/rdbms-metastore/index.html                    |   4 +
 docs/rdbms-storage-plugin/index.html               |   4 +
 docs/refresh-table-metadata/index.html             |   4 +
 docs/release-notes/index.html                      |   4 +
 docs/repeated-contains/index.html                  |   4 +
 docs/repeated-count/index.html                     |   4 +
 docs/reserved-keywords/index.html                  |   4 +
 docs/reset/index.html                              |   4 +
 docs/rest-api-introduction/index.html              |   4 +
 docs/rest-api/index.html                           |   4 +
 docs/review-the-java-stack-trace/index.html        |   4 +
 docs/roles-and-privileges/index.html               |   4 +
 docs/rpc-overview/index.html                       |   4 +
 docs/running-drill-on-docker/index.html            |   4 +
 docs/s3-storage-plugin/index.html                  |   4 +
 docs/sample-data-donuts/index.html                 |   4 +
 docs/sample-datasets/index.html                    |   4 +
 docs/secure-communication-paths/index.html         |   4 +
 docs/securing-drill-introduction/index.html        |   4 +
 docs/securing-drill/index.html                     |   4 +
 docs/select-list/index.html                        |   4 +
 docs/select/index.html                             |   4 +
 docs/selecting-flat-data/index.html                |   4 +
 .../index.html                                     |   4 +
 docs/selecting-nested-data-for-a-column/index.html |   4 +
 docs/sequence-files/index.html                     |   4 +
 docs/set/index.html                                |   4 +
 docs/show-databases-and-show-schemas/index.html    |   4 +
 docs/show-files/index.html                         |   4 +
 docs/show-tables/index.html                        |   4 +
 .../index.html                                     |   4 +
 docs/splunk-storage-plugin/index.html              |   4 +
 docs/spss-format-plugin/index.html                 |   4 +
 docs/sql-commands/index.html                       |   4 +
 docs/sql-conditional-expressions/index.html        |   4 +
 .../sql-dialect-compatibility-functions/index.html |   4 +
 docs/sql-extensions/index.html                     |   4 +
 docs/sql-functions/index.html                      |   4 +
 docs/sql-reference-introduction/index.html         |   4 +
 docs/sql-reference/index.html                      |   4 +
 docs/sql-window-functions-examples/index.html      |   4 +
 docs/sql-window-functions-introduction/index.html  |   4 +
 docs/sql-window-functions/index.html               |   4 +
 docs/start-up-options/index.html                   |   4 +
 docs/starting-drill-in-distributed-mode/index.html |   4 +
 .../index.html                                     |   4 +
 docs/starting-drill-on-windows/index.html          |   4 +
 docs/starting-the-web-ui/index.html                |   4 +
 docs/stopping-drill/index.html                     |   4 +
 docs/storage-plugin-configuration/index.html       |   4 +
 docs/storage-plugin-registration/index.html        |   4 +
 docs/string-distance-functions/index.html          |   4 +
 docs/string-manipulation/index.html                |   4 +
 .../index.html                                     |   4 +
 docs/summary/index.html                            |   4 +
 docs/supported-data-types/index.html               |   4 +
 docs/supported-sql-commands/index.html             |   4 +
 docs/syslog-format-plugin/index.html               |   4 +
 docs/tableau-examples/index.html                   |   4 +
 docs/testing-the-odbc-connection/index.html        |   4 +
 docs/text-files-csv-tsv-psv/index.html             |   4 +
 docs/throttling/index.html                         |   4 +
 docs/time-series-analysis-functions/index.html     |   4 +
 docs/troubleshooting/index.html                    |   4 +
 docs/tutorial-develop-a-simple-function/index.html |   4 +
 docs/tutorials-introduction/index.html             |   4 +
 docs/tutorials/index.html                          |   7 +
 docs/types-of-indexes/index.html                   |   4 +
 docs/union-set-operator/index.html                 |   4 +
 .../index.html                                     |   4 +
 docs/use/index.html                                |   4 +
 .../index.html                                     |   4 +
 docs/useful-research/index.html                    |   4 +
 .../index.html                                     |   4 +
 .../index.html                                     |   4 +
 .../index.html                                     |   4 +
 docs/using-custom-functions-in-queries/index.html  |   4 +
 docs/using-drill-explorer/index.html               |   4 +
 docs/using-drill-metastore/index.html              |   4 +
 .../index.html                                     |   4 +
 docs/using-drill-with-bi-tools/index.html          |   4 +
 .../index.html                                     |   4 +
 .../using-jdbc-with-squirrel-on-windows/index.html |   4 +
 .../using-jpam-as-the-pam-authenticator/index.html |   4 +
 .../index.html                                     |   4 +
 .../index.html                                     |   4 +
 docs/using-qlik-sense-with-drill/index.html        |   4 +
 .../index.html                                     |   4 +
 .../index.html                                     |   4 +
 docs/using-the-drill-on-yarn-web-ui/index.html     |   4 +
 docs/using-the-jdbc-driver/index.html              |   4 +
 .../index.html                                     |   4 +
 docs/value-vectors/index.html                      |   4 +
 docs/value-window-functions/index.html             |   4 +
 docs/verifying-index-use/index.html                |   4 +
 docs/where-clause/index.html                       |   4 +
 docs/why-drill/index.html                          |   4 +
 docs/wikipedia-edit-history/index.html             |   4 +
 docs/with-clause/index.html                        |   4 +
 docs/workspaces/index.html                         |   4 +
 docs/xml-format-plugin/index.html                  |   4 +
 feed.xml                                           |  48 +-
 index.html                                         |   4 +-
 zh/.asf.yaml                                       |   3 +
 .../08/05/drill-provider-for-airflow/index.html    | 215 ++++++
 zh/blog/index.html                                 |   5 +
 zh/data/index.html                                 |   6 +
 zh/docs/about-sql-function-examples/index.html     |   4 +
 zh/docs/about-the-mapr-sandbox/index.html          |   4 +
 .../index.html                                     |   4 +
 .../adding-custom-functions-to-drill/index.html    |   4 +
 .../aggregate-and-aggregate-statistical/index.html |   4 +
 zh/docs/aggregate-window-functions/index.html      |   4 +
 zh/docs/alter-system/index.html                    |   4 +
 .../analyze-table-compute-statistics/index.html    |   4 +
 zh/docs/analyze-table-refresh-metadata/index.html  |   4 +
 .../index.html                                     |  46 +-
 .../analyzing-highly-dynamic-datasets/index.html   |  48 +-
 zh/docs/analyzing-social-media/index.html          | 229 +++---
 .../analyzing-the-yelp-academic-dataset/index.html |   4 +
 .../apache-drill-0-4-0-release-notes/index.html    |   4 +
 .../apache-drill-0-5-0-release-notes/index.html    |   4 +
 .../apache-drill-0-6-0-release-notes/index.html    |   4 +
 .../apache-drill-0-7-0-release-notes/index.html    |   4 +
 .../apache-drill-0-8-0-release-notes/index.html    |   4 +
 .../apache-drill-0-9-0-release-notes/index.html    |   4 +
 .../apache-drill-1-0-0-release-notes/index.html    |   4 +
 .../apache-drill-1-1-0-release-notes/index.html    |   4 +
 .../apache-drill-1-10-0-release-notes/index.html   |   4 +
 .../apache-drill-1-11-0-release-notes/index.html   |   4 +
 .../apache-drill-1-12-0-release-notes/index.html   |   4 +
 .../apache-drill-1-13-0-release-notes/index.html   |   4 +
 .../apache-drill-1-14-0-release-notes/index.html   |   4 +
 .../apache-drill-1-15-0-release-notes/index.html   |   4 +
 .../apache-drill-1-16-0-release-notes/index.html   |   4 +
 .../apache-drill-1-17-0-release-notes/index.html   |   4 +
 .../apache-drill-1-18-0-release-notes/index.html   |   4 +
 .../apache-drill-1-19-0-release-notes/index.html   |   4 +
 .../apache-drill-1-2-0-release-notes/index.html    |   4 +
 .../apache-drill-1-3-0-release-notes/index.html    |   4 +
 .../apache-drill-1-4-0-release-notes/index.html    |   4 +
 .../apache-drill-1-5-0-release-notes/index.html    |   4 +
 .../apache-drill-1-6-0-release-notes/index.html    |   4 +
 .../apache-drill-1-7-0-release-notes/index.html    |   4 +
 .../apache-drill-1-8-0-release-notes/index.html    |   4 +
 .../apache-drill-1-9-0-release-notes/index.html    |   4 +
 .../index.html                                     |   4 +
 zh/docs/apache-drill-contribution-ideas/index.html |   4 +
 .../index.html                                     |   4 +
 zh/docs/appendix-a-release-note-issues/index.html  |   4 +
 .../appendix-b-drill-env-sh-settings/index.html    |   4 +
 zh/docs/appendix-c-troubleshooting/index.html      |   4 +
 .../index.html                                     |   4 +
 zh/docs/architecture-introduction/index.html       |   4 +
 zh/docs/architecture/index.html                    |   4 +
 zh/docs/asynchronous-parquet-reader/index.html     |   4 +
 zh/docs/azure-blob-storage-plugin/index.html       |   4 +
 .../browsing-data-and-defining-views/index.html    |   4 +
 zh/docs/case/index.html                            |   4 +
 zh/docs/cassandra-storage-plugin/index.html        |   4 +
 zh/docs/choosing-a-storage-format/index.html       |   4 +
 zh/docs/compiling-drill-from-source/index.html     |   4 +
 .../configuration-options-introduction/index.html  |   4 +
 zh/docs/configuration-options/index.html           |   4 +
 zh/docs/configuration-reference/index.html         |   4 +
 zh/docs/configure-drill-introduction/index.html    |   4 +
 zh/docs/configure-drill/index.html                 |   4 +
 .../index.html                                     |   4 +
 .../configuring-a-multitenant-cluster/index.html   |   4 +
 .../index.html                                     |   4 +
 .../index.html                                     |   4 +
 zh/docs/configuring-drill-memory/index.html        |   4 +
 .../index.html                                     |   4 +
 .../configuring-inbound-impersonation/index.html   |   4 +
 zh/docs/configuring-index-planning/index.html      |   4 +
 zh/docs/configuring-jreport-with-drill/index.html  |   4 +
 zh/docs/configuring-kerberos-security/index.html   |   4 +
 .../configuring-multitenant-resources/index.html   |   4 +
 zh/docs/configuring-odbc-on-linux/index.html       |   4 +
 zh/docs/configuring-odbc-on-mac-os-x/index.html    |   4 +
 zh/docs/configuring-odbc-on-windows/index.html     |   4 +
 zh/docs/configuring-odbc/index.html                |   4 +
 zh/docs/configuring-plain-security/index.html      |   4 +
 .../index.html                                     |   4 +
 .../configuring-ssl-tls-for-encryption/index.html  |   4 +
 zh/docs/configuring-storage-plugins/index.html     |   4 +
 zh/docs/configuring-the-drill-shell/index.html     |   4 +
 .../index.html                                     |   4 +
 .../index.html                                     |   4 +
 zh/docs/configuring-user-impersonation/index.html  |   4 +
 zh/docs/configuring-user-security/index.html       |   4 +
 .../index.html                                     |   4 +
 .../connect-a-data-source-introduction/index.html  |   4 +
 zh/docs/connect-a-data-source/index.html           |   4 +
 .../connecting-drill-explorer-to-data/index.html   |   4 +
 zh/docs/contribute-to-drill/index.html             |   4 +
 .../index.html                                     |   4 +
 zh/docs/core-modules/index.html                    |   4 +
 zh/docs/create-function-using-jar/index.html       |   4 +
 zh/docs/create-or-replace-schema/index.html        |   4 +
 zh/docs/create-table-as-ctas/index.html            |   4 +
 zh/docs/create-temporary-table-as-cttas/index.html |   4 +
 zh/docs/create-view/index.html                     |   4 +
 zh/docs/creating-a-basic-drill-cluster/index.html  |   4 +
 zh/docs/creating-custom-authenticators/index.html  |   4 +
 zh/docs/cryptography-functions/index.html          |   4 +
 zh/docs/custom-function-interfaces/index.html      |   4 +
 .../index.html                                     |   4 +
 zh/docs/data-sources-and-file-formats/index.html   |   4 +
 zh/docs/data-type-conversion/index.html            |   4 +
 zh/docs/data-type-functions/index.html             |   4 +
 zh/docs/data-types/index.html                      |   4 +
 zh/docs/date-time-and-timestamp/index.html         |   4 +
 .../date-time-functions-and-arithmetic/index.html  |   4 +
 zh/docs/deploying-and-using-a-hive-udf/index.html  |   4 +
 zh/docs/describe/index.html                        |   4 +
 zh/docs/design-docs/index.html                     |   4 +
 .../designing-indexes-for-your-queries/index.html  |   4 +
 .../index.html                                     |   4 +
 zh/docs/develop-custom-functions/index.html        |   4 +
 zh/docs/develop-drill/index.html                   |   4 +
 zh/docs/developer-information/index.html           |   4 +
 zh/docs/developing-a-simple-function/index.html    |   4 +
 .../developing-an-aggregate-function/index.html    |   4 +
 zh/docs/distributed-mode-prerequisites/index.html  |   4 +
 zh/docs/drill-default-input-format/index.html      |   4 +
 zh/docs/drill-explorer-introduction/index.html     |   4 +
 zh/docs/drill-iceberg-metastore/index.html         |   4 +
 zh/docs/drill-in-10-minutes/index.html             |   4 +
 zh/docs/drill-introduction/index.html              |   4 +
 zh/docs/drill-metastore/index.html                 |   4 +
 zh/docs/drill-on-yarn-command-line-tool/index.html |   4 +
 zh/docs/drill-on-yarn-introduction/index.html      |   4 +
 zh/docs/drill-on-yarn/index.html                   |   6 +-
 zh/docs/drill-plan-syntax/index.html               |   4 +
 zh/docs/drill-query-execution/index.html           |   4 +
 zh/docs/drop-function-using-jar/index.html         |   4 +
 zh/docs/drop-table/index.html                      |   4 +
 zh/docs/drop-view/index.html                       |   4 +
 zh/docs/druid-storage-plugin/index.html            |   4 +
 zh/docs/dynamic-udfs/index.html                    |   4 +
 zh/docs/ecosystem/index.html                       |   4 +
 zh/docs/elasticsearch-storage-plugin/index.html    |   4 +
 zh/docs/embedded-mode-prerequisites/index.html     |   4 +
 zh/docs/enabling-query-queuing/index.html          |   4 +
 zh/docs/enabling-web-ui-security/index.html        |   4 +
 zh/docs/enron-emails/index.html                    |   4 +
 zh/docs/error-messages/index.html                  |   4 +
 zh/docs/esri-shapefile-format-plugin/index.html    |   4 +
 zh/docs/excel-format-plugin/index.html             |   4 +
 zh/docs/explain/index.html                         |   4 +
 zh/docs/file-system-storage-plugin/index.html      |   4 +
 zh/docs/flatten/index.html                         |   4 +
 zh/docs/from-clause/index.html                     |   4 +
 zh/docs/functions-for-handling-nulls/index.html    |   4 +
 zh/docs/getting-started/index.html                 |   4 +
 .../getting-to-know-the-drill-sandbox/index.html   |   4 +
 zh/docs/gis-functions/index.html                   |   4 +
 zh/docs/global-query-list/index.html               |   4 +
 zh/docs/group-by-clause/index.html                 |   4 +
 .../index.html                                     |   4 +
 zh/docs/handling-different-data-types/index.html   |   4 +
 zh/docs/having-clause/index.html                   |   4 +
 zh/docs/hbase-storage-plugin/index.html            |   4 +
 zh/docs/hdf5-format-plugin/index.html              |   4 +
 zh/docs/hive-metadata-caching/index.html           |   4 +
 zh/docs/hive-storage-plugin/index.html             |   4 +
 zh/docs/hive-to-drill-data-type-mapping/index.html |   4 +
 zh/docs/how-to-partition-data/index.html           |   4 +
 zh/docs/http-storage-plugin/index.html             |   6 +-
 zh/docs/httpd-format-plugin/index.html             |   4 +
 .../index.html                                     |   4 +
 zh/docs/identifying-performance-issues/index.html  |   4 +
 zh/docs/image-metadata-format-plugin/index.html    |   4 +
 zh/docs/index-selection/index.html                 |   4 +
 zh/docs/index.html                                 |   4 +
 zh/docs/install-drill-introduction/index.html      |   4 +
 zh/docs/install-drill/index.html                   |   4 +
 .../index.html                                     |   4 +
 .../installing-drill-in-embedded-mode/index.html   |   4 +
 .../index.html                                     |   4 +
 zh/docs/installing-drill-on-the-cluster/index.html |   6 +-
 zh/docs/installing-drill-on-windows/index.html     |   4 +
 .../installing-the-apache-drill-sandbox/index.html |   4 +
 zh/docs/installing-the-driver-on-linux/index.html  |   4 +
 .../installing-the-driver-on-mac-os-x/index.html   |   4 +
 .../installing-the-driver-on-windows/index.html    |   4 +
 zh/docs/installing-the-odbc-driver/index.html      |   4 +
 zh/docs/interfaces-introduction/index.html         |   4 +
 zh/docs/ip-networking-functions/index.html         |   4 +
 zh/docs/join-planning-guidelines/index.html        |   4 +
 zh/docs/json-data-model/index.html                 |   4 +
 zh/docs/kafka-storage-plugin/index.html            |   4 +
 zh/docs/kvgen/index.html                           |   4 +
 zh/docs/lateral-join/index.html                    |   4 +
 zh/docs/launch-drill-under-yarn/index.html         |   4 +
 .../learn-drill-with-the-mapr-sandbox/index.html   |   4 +
 .../lesson-1-learn-about-the-data-set/index.html   |   4 +
 .../lesson-2-run-queries-with-ansi-sql/index.html  |   4 +
 .../index.html                                     |   4 +
 zh/docs/lexical-structure/index.html               |   4 +
 zh/docs/limit-clause/index.html                    |   4 +
 zh/docs/log-and-debug-introduction/index.html      |   4 +
 zh/docs/log-and-debug/index.html                   |   4 +
 zh/docs/logfile-plugin/index.html                  |   4 +
 zh/docs/logging-and-tracing/index.html             |   4 +
 zh/docs/ltsv-format-plugin/index.html              |   4 +
 .../index.html                                     |   4 +
 zh/docs/mapr-db-format/index.html                  |   4 +
 zh/docs/math-and-trig/index.html                   |   4 +
 zh/docs/migrating-parquet-data/index.html          |   4 +
 zh/docs/modify-logback-xml/index.html              |   4 +
 .../modifying-query-planning-options/index.html    |   4 +
 zh/docs/mongodb-storage-plugin/index.html          |   4 +
 .../index.html                                     |   4 +
 zh/docs/monitoring-metrics/index.html              |   4 +
 zh/docs/multiple-drill-clusters/index.html         |   4 +
 zh/docs/nested-data-functions/index.html           |   4 +
 zh/docs/nested-data-limitations/index.html         |   4 +
 zh/docs/odbc-configuration-reference/index.html    |   4 +
 zh/docs/odbc-jdbc-interfaces/index.html            |   4 +
 zh/docs/offset-clause/index.html                   |   4 +
 zh/docs/opentsdb-storage-plugin/index.html         |   4 +
 zh/docs/operators/index.html                       |   4 +
 .../optimizing-parquet-metadata-reading/index.html |   4 +
 .../index.html                                     | 788 ++++++++-------------
 zh/docs/order-by-clause/index.html                 |   4 +
 zh/docs/parquet-filter-pushdown/index.html         |   4 +
 zh/docs/parquet-format/index.html                  |   4 +
 zh/docs/partition-by-clause/index.html             |   4 +
 zh/docs/partition-pruning-introduction/index.html  |   4 +
 zh/docs/partition-pruning/index.html               |   4 +
 zh/docs/performance-tuning-introduction/index.html |   4 +
 zh/docs/performance-tuning-reference/index.html    |   4 +
 zh/docs/performance-tuning/index.html              |   4 +
 zh/docs/performance/index.html                     |   4 +
 .../persistent-configuration-storage/index.html    |   4 +
 zh/docs/phonetic-functions/index.html              |   4 +
 zh/docs/physical-operators/index.html              |   4 +
 zh/docs/planning-and-execution-options/index.html  |   4 +
 zh/docs/plugin-configuration-basics/index.html     |   4 +
 zh/docs/ports-used-by-drill/index.html             |   4 +
 zh/docs/project-bylaws/index.html                  |   4 +
 .../index.html                                     |   4 +
 zh/docs/query-audit-logging/index.html             |   4 +
 zh/docs/query-data-introduction/index.html         |   4 +
 zh/docs/query-data/index.html                      |   4 +
 zh/docs/query-directory-functions/index.html       |   4 +
 .../query-plans-and-tuning-introduction/index.html |   4 +
 zh/docs/query-plans-and-tuning/index.html          |   4 +
 zh/docs/query-plans/index.html                     |   4 +
 .../query-profile-column-descriptions/index.html   |   4 +
 zh/docs/query-profiles/index.html                  |   4 +
 zh/docs/query-stages/index.html                    |   4 +
 .../querying-a-file-system-introduction/index.html |   4 +
 zh/docs/querying-a-file-system/index.html          |   4 +
 zh/docs/querying-avro-files/index.html             |   4 +
 .../querying-complex-data-introduction/index.html  |   4 +
 zh/docs/querying-complex-data/index.html           |   4 +
 zh/docs/querying-directories/index.html            |   4 +
 zh/docs/querying-hbase/index.html                  |   4 +
 zh/docs/querying-hive/index.html                   |   4 +
 zh/docs/querying-indexes-introduction/index.html   |   4 +
 zh/docs/querying-indexes/index.html                |   4 +
 zh/docs/querying-json-files/index.html             |   4 +
 zh/docs/querying-parquet-files/index.html          |   4 +
 zh/docs/querying-plain-text-files/index.html       |   4 +
 zh/docs/querying-sequence-files/index.html         |   4 +
 zh/docs/querying-system-tables/index.html          |   4 +
 zh/docs/querying-the-information-schema/index.html |   4 +
 zh/docs/ranking-window-functions/index.html        |   4 +
 zh/docs/rdbms-metastore/index.html                 |   4 +
 zh/docs/rdbms-storage-plugin/index.html            |   4 +
 zh/docs/refresh-table-metadata/index.html          |   4 +
 zh/docs/release-notes/index.html                   |   4 +
 zh/docs/repeated-contains/index.html               |   4 +
 zh/docs/repeated-count/index.html                  |   4 +
 zh/docs/reserved-keywords/index.html               |   4 +
 zh/docs/reset/index.html                           |   4 +
 zh/docs/rest-api-introduction/index.html           |   4 +
 zh/docs/rest-api/index.html                        |   4 +
 zh/docs/review-the-java-stack-trace/index.html     |   4 +
 zh/docs/roles-and-privileges/index.html            |   4 +
 zh/docs/rpc-overview/index.html                    |   4 +
 zh/docs/running-drill-on-docker/index.html         |   4 +
 zh/docs/s3-storage-plugin/index.html               |   4 +
 zh/docs/sample-data-donuts/index.html              |   4 +
 zh/docs/sample-datasets/index.html                 |   4 +
 zh/docs/secure-communication-paths/index.html      |   4 +
 zh/docs/securing-drill-introduction/index.html     |   4 +
 zh/docs/securing-drill/index.html                  |   4 +
 zh/docs/select-list/index.html                     |   4 +
 zh/docs/select/index.html                          |   4 +
 zh/docs/selecting-flat-data/index.html             |   4 +
 .../index.html                                     |   4 +
 .../selecting-nested-data-for-a-column/index.html  |   4 +
 zh/docs/sequence-files/index.html                  |   4 +
 zh/docs/set/index.html                             |   4 +
 zh/docs/show-databases-and-show-schemas/index.html |   4 +
 zh/docs/show-files/index.html                      |   4 +
 zh/docs/show-tables/index.html                     |   4 +
 .../index.html                                     |   4 +
 zh/docs/splunk-storage-plugin/index.html           |   4 +
 zh/docs/spss-format-plugin/index.html              |   4 +
 zh/docs/sql-commands/index.html                    |   4 +
 zh/docs/sql-conditional-expressions/index.html     |   4 +
 .../sql-dialect-compatibility-functions/index.html |   4 +
 zh/docs/sql-extensions/index.html                  |   4 +
 zh/docs/sql-functions/index.html                   |   4 +
 zh/docs/sql-reference-introduction/index.html      |   4 +
 zh/docs/sql-reference/index.html                   |   4 +
 zh/docs/sql-window-functions-examples/index.html   |   4 +
 .../sql-window-functions-introduction/index.html   |   4 +
 zh/docs/sql-window-functions/index.html            |   4 +
 zh/docs/start-up-options/index.html                |   4 +
 .../starting-drill-in-distributed-mode/index.html  |   4 +
 .../index.html                                     |   4 +
 zh/docs/starting-drill-on-windows/index.html       |   4 +
 zh/docs/starting-the-web-ui/index.html             |   4 +
 zh/docs/stopping-drill/index.html                  |   4 +
 zh/docs/storage-plugin-configuration/index.html    |   4 +
 zh/docs/storage-plugin-registration/index.html     |   4 +
 zh/docs/string-distance-functions/index.html       |   4 +
 zh/docs/string-manipulation/index.html             |   4 +
 .../index.html                                     |   4 +
 zh/docs/summary/index.html                         |   4 +
 zh/docs/supported-data-types/index.html            |   4 +
 zh/docs/supported-sql-commands/index.html          |   4 +
 zh/docs/syslog-format-plugin/index.html            |   4 +
 zh/docs/tableau-examples/index.html                |   4 +
 zh/docs/testing-the-odbc-connection/index.html     |   4 +
 zh/docs/text-files-csv-tsv-psv/index.html          |   4 +
 zh/docs/throttling/index.html                      |   4 +
 zh/docs/time-series-analysis-functions/index.html  |   4 +
 zh/docs/troubleshooting/index.html                 |   4 +
 .../tutorial-develop-a-simple-function/index.html  |   4 +
 zh/docs/tutorials-introduction/index.html          |   4 +
 zh/docs/tutorials/index.html                       |   7 +
 zh/docs/types-of-indexes/index.html                |   4 +
 zh/docs/union-set-operator/index.html              |   4 +
 .../index.html                                     |   4 +
 zh/docs/use/index.html                             |   4 +
 .../index.html                                     |   4 +
 zh/docs/useful-research/index.html                 |   4 +
 .../index.html                                     |   4 +
 .../index.html                                     |   4 +
 .../index.html                                     |   4 +
 .../using-custom-functions-in-queries/index.html   |   4 +
 zh/docs/using-drill-explorer/index.html            |   4 +
 zh/docs/using-drill-metastore/index.html           |   4 +
 .../index.html                                     |   4 +
 zh/docs/using-drill-with-bi-tools/index.html       |   4 +
 .../index.html                                     |   4 +
 .../using-jdbc-with-squirrel-on-windows/index.html |   4 +
 .../using-jpam-as-the-pam-authenticator/index.html |   4 +
 .../index.html                                     |   4 +
 .../index.html                                     |   4 +
 zh/docs/using-qlik-sense-with-drill/index.html     |   4 +
 .../index.html                                     |   4 +
 .../index.html                                     |   4 +
 zh/docs/using-the-drill-on-yarn-web-ui/index.html  |   4 +
 zh/docs/using-the-jdbc-driver/index.html           |   4 +
 .../index.html                                     |   4 +
 zh/docs/value-vectors/index.html                   |   4 +
 zh/docs/value-window-functions/index.html          |   4 +
 zh/docs/verifying-index-use/index.html             |   4 +
 zh/docs/where-clause/index.html                    |   4 +
 zh/docs/why-drill/index.html                       |   4 +
 zh/docs/wikipedia-edit-history/index.html          |   4 +
 zh/docs/with-clause/index.html                     |   4 +
 zh/docs/workspaces/index.html                      |   4 +
 zh/docs/xml-format-plugin/index.html               |   4 +
 zh/feed.xml                                        |  48 +-
 zh/index.html                                      |   4 +-
 741 files changed, 4209 insertions(+), 894 deletions(-)

diff --git a/blog/2021/08/05/drill-provider-for-airflow/index.html b/blog/2021/08/05/drill-provider-for-airflow/index.html
new file mode 100644
index 0000000..0eeb7b9
--- /dev/null
+++ b/blog/2021/08/05/drill-provider-for-airflow/index.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+
+<meta charset="UTF-8">
+<meta name=viewport content="width=device-width, initial-scale=1">
+
+
+<title>Drill provider for Airflow - Apache Drill</title>
+
+<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css"/>
+<link href='https://fonts.googleapis.com/css?family=PT+Sans' rel='stylesheet' type='text/css'/>
+<link href="/css/site.css" rel="stylesheet" type="text/css"/>
+
+<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/>
+<link rel="icon" href="/favicon.ico" type="image/x-icon"/>
+
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" language="javascript" type="text/javascript"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js" language="javascript" type="text/javascript"></script>
+<script language="javascript" type="text/javascript" src="/js/modernizr.custom.js"></script>
+<script language="javascript" type="text/javascript" src="/js/script.js"></script>
+<script language="javascript" type="text/javascript" src="/js/drill.js"></script>
+
+</head>
+
+
+<body onResize="resized();">
+  <div class="page-wrap">
+    <div class="bui"></div>
+
+<div id="menu" class="mw">
+<ul>
+  <li class='toc-categories'>
+  <a class="expand-toc-icon" href="javascript:void(0);"><i class="fa fa-bars"></i></a>
+  </li>
+  <li class="logo"><a href="/"></a></li>
+  <li class='expand-menu'>
+  <a href="javascript:void(0);"><span class='menu-text'>Menu</span><span class='expand-icon'><i class="fa fa-bars"></i></span></a>
+  </li>
+  <li class="clear-float"></li>
+  <li class="nav">
+	<a>Language</a>
+	<ul>
+		
+		<li>
+			<a style="font-weight: bold;" href="/blog/2021/08/05/drill-provider-for-airflow/" >en</a>
+		</li>
+		
+		<li>
+			<a  href="/zh/blog/2021/08/05/drill-provider-for-airflow/" >zh</a>
+		</li>
+		
+	</ul>
+  </li>
+  <li class="apache-link">
+    <a href="/apacheASF/">Apache</a>
+  </li>
+  <li class="poweredby">
+    <a href="/poweredBy">Powered By</a>
+  </li>
+  <li class="documentation-menu">
+    <a href="/docs/">Documentation</a>
+    <ul>
+      
+        <li><a href="/docs/getting-started/">Getting Started</a></li>
+      
+        <li><a href="/docs/architecture/">Architecture</a></li>
+      
+        <li><a href="/docs/tutorials/">Tutorials</a></li>
+      
+        <li><a href="/docs/drill-on-yarn/">Drill-on-YARN</a></li>
+      
+        <li><a href="/docs/install-drill/">Install Drill</a></li>
+      
+        <li><a href="/docs/configure-drill/">Configure Drill</a></li>
+      
+        <li><a href="/docs/connect-a-data-source/">Connect a Data Source</a></li>
+      
+        <li><a href="/docs/odbc-jdbc-interfaces/">ODBC/JDBC Interfaces</a></li>
+      
+        <li><a href="/docs/query-data/">Query Data</a></li>
+      
+        <li><a href="/docs/performance-tuning/">Performance Tuning</a></li>
+      
+        <li><a href="/docs/log-and-debug/">Log and Debug</a></li>
+      
+        <li><a href="/docs/sql-reference/">SQL Reference</a></li>
+      
+        <li><a href="/docs/data-sources-and-file-formats/">Data Sources and File Formats</a></li>
+      
+        <li><a href="/docs/develop-custom-functions/">Develop Custom Functions</a></li>
+      
+        <li><a href="/docs/troubleshooting/">Troubleshooting</a></li>
+      
+        <li><a href="/docs/developer-information/">Developer Information</a></li>
+      
+        <li><a href="/docs/release-notes/">Release Notes</a></li>
+      
+        <li><a href="/docs/sample-datasets/">Sample Datasets</a></li>
+      
+        <li><a href="/docs/project-bylaws/">Project Bylaws</a></li>
+      
+        <li><a href="/docs/ecosystem/">Ecosystem</a></li>
+      
+    </ul>
+  </li>
+  <li class='nav'>
+    <a href="/community-resources/">Community</a>
+    <ul>
+      <li><a href="/team/">Team</a></li>
+      <li><a href="/mailinglists/">Mailing Lists</a></li>
+      <li><a href="/community-resources/">Community Resources</a></li>
+    </ul>
+  </li>
+  <li class='nav'><a href="/faq/">FAQ</a></li>
+  <li class='nav'><a href="/blog/">Blog</a></li>
+  <li class="social-menu-item"><a href="https://twitter.com/apachedrill" title="apachedrill on twitter" target="_blank"><img src="/images/twitter_32_26_white.png" alt="twitter logo" align="center"></a> </li>
+  <li class="social-menu-item"><a href="https://join.slack.com/t/apache-drill/shared_invite/enQtNTQ4MjM1MDA3MzQ2LTJlYmUxMTRkMmUwYmQ2NTllYmFmMjU4MDk0NjYwZjBmYjg0MDZmOTE2ZDg0ZjBlYmI3Yjc4Y2I2NTQyNGVlZTc" title="Apache Drill Slack channels"
+      target="_blank"><img src="/images/slack-logo.svg" alt="Slack logo" align="center"></a> </li>
+  <li class='search-bar'>
+    <form id="drill-search-form">
+      <input type="text" placeholder="Search Apache Drill" id="drill-search-term" />
+      <button type="submit">
+        <i class="fa fa-search"></i>
+      </button>
+    </form>
+  </li>
+  <li class="d">
+    <a href="/download/">
+      <i class="fa fa-cloud-download"></i> Download
+    </a>
+  </li>
+</ul>
+</div>
+
+    <link href="/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">Drill provider for Airflow</h1>
+    </div>
+    <p class="post-meta">
+    
+      
+      
+      <strong>Author:</strong> James Turton (Committer, Apache Software Foundation)<br />
+    
+<strong>Date:</strong> Aug 5, 2021
+</p>
+  </header>
+  <div class="addthis_sharing_toolbox"></div>
+
+  <article class="post-content">
+    <p>You’re building a new report, visualisation or ML model.  Most of the data involved comes from sources well known to you but a new source has become available, allowing your team to measure and model new variables.  Eager to get to a prototype and an early sense of what the new analytics look like, you head straight for the first order of business and start to construct a first version of the dataset upon which your final output will be based.</p>
+
+<p>The data sources you need to combine are immediately accessible but heteregenous: transactional data in PostgreSQL must be combined with data from another team that uses Splunk, lookup data maintained by operational team in an Excel spreadsheet, thousands of XML exports received from a partner and some Parquet files already in your big data environment just for good measure.</p>
+
+<p>Using Drill iteratively you query and join in each data source one at a time, applying grouping, filtering and other intensive transformations as you go, finally producing a dataset with the fields and grain you need.  You store it by adding CREATE TABLE AS in front of your final SELECT then write a few counting and summing queries against the original data sources and your transformed dataset to check that your code produces the expected outputs.</p>
+
+<p>Apart from possibly configuring some new storage plugins in the Drill web UI, you have so far not left your SQL editor.  The onerous data exploration and plumbing parts of your project have flashed by in a blaze of SQL, and you move your dataset into the next tool for visualisation or modelling.  The results are good and you know that your users will immediately ask for the outputs to incorporate new data on a regular schedule.</p>
+
+<p>While Drill can assemble your dataset on the fly, as it did while you prototyped,  doing that for the full set takes over 40 minutes, places more load than you’d like in office hours on to your data sources and limits you to the history that the sources keep, in some cases only a few weeks.</p>
+
+<p>It’s time for ETL, you concede.  In the past that meant you had to choose between keeping your working Drill SQL and scheduling it using 70s Unix tools like Cron and Bash, seeing what you could jury-rig using some ETL software and interfaces to Drill like like ODBC and JDBC, or recreating your Drill SQL entirely in (perhaps multiple) other tools and languages, perhaps Spark and Python.  But this time you can do things differently…</p>
+
+<p><a href="https://airflow.apache.org">Apache Airflow</a> is a workflow engine built in the Python programming ecosystem that has grown into a leading choice for orchestrating big data pipelines, amongst its other applications.  Perhaps the first point to understand about Airflow in the context of ETL is that it is designed only for workflow <em>control</em>, and not for data flow.  This makes it different from some of the ETL tools you might have encountered like Microsoft’s SSIS or Pe [...]
+
+<p>In contrast Airflow is, unless you’re doing it wrong, used only to instruct other software like Spark, Beam, PostgreSQL, Bash, Celery, Scikit-learn scripts, Slack, (… the list of providers is long and varied) to kick off actions at scheduled times.  While Airflow does load its schedules from the crontab format, a comparison to cron stops there.  Airflow can resolve and execute complex job DAGs with options for clustering, parallelism, retries, backfilling and performance monitoring.</p>
+
+<p>The exciting news for Drill users is that <a href="https://pypi.org/project/apache-airflow-providers-apache-drill/">a new provider package adding support for Drill</a> was added to Airflow this month.  This provider is based on the <a href="https://pypi.org/project/sqlalchemy-drill/">sqlalchemy-drill package</a> which provides Drill connectivity for Python programs.  This means that you can add tasks which execute queries on Drill to your Airflow DAGs without any hacky intermediate sh [...]
+
+<p>A new tutorial that walks through the development of a simple Airflow DAG that uses the Drill provider <a href="/docs/orchestrating-queries-with-airflow/">is available here</a>.</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="https://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-2020 The Apache Software Foundation, licensed under the Apache License, Version 2.0.<br>
+Apache and the Apache feather logo are trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.<br/><br/>
+</div>
+</div>
+
+  <script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-53379651-1', 'auto');
+ga('send', 'pageview');
+</script>
+<script type="text/javascript" src="https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-548b2caa33765e8d" async="async"></script>
+
+</body>
+</html>
diff --git a/blog/index.html b/blog/index.html
index bbbd986..e0a6ee0 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -140,6 +140,11 @@
 </div>
 
 <div class="int_text" align="left"><!-- previously: site.posts -->
+<p><a class="post-link" href="/blog/2021/08/05/drill-provider-for-airflow/">Drill provider for Airflow</a><br/>
+<span class="post-date">Posted on Aug 5, 2021
+by James Turton</span>
+<br/>In its provider package release this month, the Apache Airflow project added a provider for interacting with Apache Drill.  This allows data engineers and data scientists to incorporate Drill queries in their Airflow DAGs, enabling the automation of big data and data science workflows.</p>
+<!-- previously: site.posts -->
 <p><a class="post-link" href="/blog/2021/07/09/streaming-data-from-the-rest-api/">Streaming data from the Drill REST API</a><br/>
 <span class="post-date">Posted on Jul 9, 2021
 by James Turton</span>
diff --git a/data/index.html b/data/index.html
index 3e4edc7..621a2e8 100644
--- a/data/index.html
+++ b/data/index.html
@@ -2136,6 +2136,12 @@
     "relative_path": "_docs/en/tutorials/070-analyzing-data-using-window-functions.md"
 },
 {
+    "url": "/docs/orchestrating-queries-with-airflow/",
+    "title": "Orchestrating queries with Airflow",
+    "parent": "Tutorials",
+    "relative_path": "_docs/en/tutorials/080-orchestrating-queries-with-airflow.md"
+},
+{
     "url": "/docs/about-the-mapr-sandbox/",
     "title": "About the MapR Sandbox",
     "parent": "Learn Drill with the MapR Sandbox",
diff --git a/docs/about-sql-function-examples/index.html b/docs/about-sql-function-examples/index.html
index 866d879..8ad4b99 100644
--- a/docs/about-sql-function-examples/index.html
+++ b/docs/about-sql-function-examples/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/about-the-mapr-sandbox/index.html b/docs/about-the-mapr-sandbox/index.html
index ca628bd..34851de 100644
--- a/docs/about-the-mapr-sandbox/index.html
+++ b/docs/about-the-mapr-sandbox/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/adding-custom-functions-to-drill-introduction/index.html b/docs/adding-custom-functions-to-drill-introduction/index.html
index 468248c..31da807 100644
--- a/docs/adding-custom-functions-to-drill-introduction/index.html
+++ b/docs/adding-custom-functions-to-drill-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/adding-custom-functions-to-drill/index.html b/docs/adding-custom-functions-to-drill/index.html
index bdbdce5..b06415d 100644
--- a/docs/adding-custom-functions-to-drill/index.html
+++ b/docs/adding-custom-functions-to-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/aggregate-and-aggregate-statistical/index.html b/docs/aggregate-and-aggregate-statistical/index.html
index 4f4e141..689450e 100644
--- a/docs/aggregate-and-aggregate-statistical/index.html
+++ b/docs/aggregate-and-aggregate-statistical/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/aggregate-window-functions/index.html b/docs/aggregate-window-functions/index.html
index 42e25a5..a4125e4 100644
--- a/docs/aggregate-window-functions/index.html
+++ b/docs/aggregate-window-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/alter-system/index.html b/docs/alter-system/index.html
index 0fa6754..d18dc86 100644
--- a/docs/alter-system/index.html
+++ b/docs/alter-system/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/analyze-table-compute-statistics/index.html b/docs/analyze-table-compute-statistics/index.html
index 94dfd15..d0b7135 100644
--- a/docs/analyze-table-compute-statistics/index.html
+++ b/docs/analyze-table-compute-statistics/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/analyze-table-refresh-metadata/index.html b/docs/analyze-table-refresh-metadata/index.html
index c9f5d19..f0f0ed2 100644
--- a/docs/analyze-table-refresh-metadata/index.html
+++ b/docs/analyze-table-refresh-metadata/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/analyzing-data-using-window-functions/index.html b/docs/analyzing-data-using-window-functions/index.html
index 4b79968..d416c3e 100644
--- a/docs/analyzing-data-using-window-functions/index.html
+++ b/docs/analyzing-data-using-window-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2 current"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
@@ -1685,7 +1689,7 @@
       
         <div class="doc-nav">
   
-  <span class="previous-toc"><a href="/docs/analyzing-social-media/">← Analyzing Social Media</a></span><span class="next-toc"><a href="/docs/drill-on-yarn/">Drill-on-YARN →</a></span>
+  <span class="previous-toc"><a href="/docs/analyzing-social-media/">← Analyzing Social Media</a></span><span class="next-toc"><a href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow →</a></span>
 </div>
 
     
diff --git a/docs/analyzing-highly-dynamic-datasets/index.html b/docs/analyzing-highly-dynamic-datasets/index.html
index 5186cfb..9b4e5cf 100644
--- a/docs/analyzing-highly-dynamic-datasets/index.html
+++ b/docs/analyzing-highly-dynamic-datasets/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/analyzing-social-media/index.html b/docs/analyzing-social-media/index.html
index 8a58b58..32e1bc0 100644
--- a/docs/analyzing-social-media/index.html
+++ b/docs/analyzing-social-media/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/analyzing-the-yelp-academic-dataset/index.html b/docs/analyzing-the-yelp-academic-dataset/index.html
index cdbaccd..912fd29 100644
--- a/docs/analyzing-the-yelp-academic-dataset/index.html
+++ b/docs/analyzing-the-yelp-academic-dataset/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-0-4-0-release-notes/index.html b/docs/apache-drill-0-4-0-release-notes/index.html
index 5b6f523..2772961 100644
--- a/docs/apache-drill-0-4-0-release-notes/index.html
+++ b/docs/apache-drill-0-4-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-0-5-0-release-notes/index.html b/docs/apache-drill-0-5-0-release-notes/index.html
index df2cdc2..36a2952 100644
--- a/docs/apache-drill-0-5-0-release-notes/index.html
+++ b/docs/apache-drill-0-5-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-0-6-0-release-notes/index.html b/docs/apache-drill-0-6-0-release-notes/index.html
index dc1f289..4445243 100644
--- a/docs/apache-drill-0-6-0-release-notes/index.html
+++ b/docs/apache-drill-0-6-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-0-7-0-release-notes/index.html b/docs/apache-drill-0-7-0-release-notes/index.html
index 226ec75..d9ee28f 100644
--- a/docs/apache-drill-0-7-0-release-notes/index.html
+++ b/docs/apache-drill-0-7-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-0-8-0-release-notes/index.html b/docs/apache-drill-0-8-0-release-notes/index.html
index 1d3cd7c..c8a0ce5 100644
--- a/docs/apache-drill-0-8-0-release-notes/index.html
+++ b/docs/apache-drill-0-8-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-0-9-0-release-notes/index.html b/docs/apache-drill-0-9-0-release-notes/index.html
index fe55c7a..b117cbd 100644
--- a/docs/apache-drill-0-9-0-release-notes/index.html
+++ b/docs/apache-drill-0-9-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-0-0-release-notes/index.html b/docs/apache-drill-1-0-0-release-notes/index.html
index 87ae02b..0697857 100644
--- a/docs/apache-drill-1-0-0-release-notes/index.html
+++ b/docs/apache-drill-1-0-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-1-0-release-notes/index.html b/docs/apache-drill-1-1-0-release-notes/index.html
index abbf4b3..bf71b24 100644
--- a/docs/apache-drill-1-1-0-release-notes/index.html
+++ b/docs/apache-drill-1-1-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-10-0-release-notes/index.html b/docs/apache-drill-1-10-0-release-notes/index.html
index addc8d1..a9542cf 100644
--- a/docs/apache-drill-1-10-0-release-notes/index.html
+++ b/docs/apache-drill-1-10-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-11-0-release-notes/index.html b/docs/apache-drill-1-11-0-release-notes/index.html
index 07be90b..2c66df6 100644
--- a/docs/apache-drill-1-11-0-release-notes/index.html
+++ b/docs/apache-drill-1-11-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-12-0-release-notes/index.html b/docs/apache-drill-1-12-0-release-notes/index.html
index 485c1a2..dc2372d 100644
--- a/docs/apache-drill-1-12-0-release-notes/index.html
+++ b/docs/apache-drill-1-12-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-13-0-release-notes/index.html b/docs/apache-drill-1-13-0-release-notes/index.html
index dc98b9f..2aa246a 100644
--- a/docs/apache-drill-1-13-0-release-notes/index.html
+++ b/docs/apache-drill-1-13-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-14-0-release-notes/index.html b/docs/apache-drill-1-14-0-release-notes/index.html
index a31a1a5..1692034 100644
--- a/docs/apache-drill-1-14-0-release-notes/index.html
+++ b/docs/apache-drill-1-14-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-15-0-release-notes/index.html b/docs/apache-drill-1-15-0-release-notes/index.html
index 58f33f9..46f2604 100644
--- a/docs/apache-drill-1-15-0-release-notes/index.html
+++ b/docs/apache-drill-1-15-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-16-0-release-notes/index.html b/docs/apache-drill-1-16-0-release-notes/index.html
index db779fc..d233bfd 100644
--- a/docs/apache-drill-1-16-0-release-notes/index.html
+++ b/docs/apache-drill-1-16-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-17-0-release-notes/index.html b/docs/apache-drill-1-17-0-release-notes/index.html
index ca2747f..129a45c 100644
--- a/docs/apache-drill-1-17-0-release-notes/index.html
+++ b/docs/apache-drill-1-17-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-18-0-release-notes/index.html b/docs/apache-drill-1-18-0-release-notes/index.html
index 662a6d6..f921cb4 100644
--- a/docs/apache-drill-1-18-0-release-notes/index.html
+++ b/docs/apache-drill-1-18-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-19-0-release-notes/index.html b/docs/apache-drill-1-19-0-release-notes/index.html
index 4eff4a0..d009b5d 100644
--- a/docs/apache-drill-1-19-0-release-notes/index.html
+++ b/docs/apache-drill-1-19-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-2-0-release-notes/index.html b/docs/apache-drill-1-2-0-release-notes/index.html
index f56cc67..5867a9e 100644
--- a/docs/apache-drill-1-2-0-release-notes/index.html
+++ b/docs/apache-drill-1-2-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-3-0-release-notes/index.html b/docs/apache-drill-1-3-0-release-notes/index.html
index 04f18d5..d25e62b 100644
--- a/docs/apache-drill-1-3-0-release-notes/index.html
+++ b/docs/apache-drill-1-3-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-4-0-release-notes/index.html b/docs/apache-drill-1-4-0-release-notes/index.html
index 1c9acce..47dd83b 100644
--- a/docs/apache-drill-1-4-0-release-notes/index.html
+++ b/docs/apache-drill-1-4-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-5-0-release-notes/index.html b/docs/apache-drill-1-5-0-release-notes/index.html
index 13ce8bc..c7537d9 100644
--- a/docs/apache-drill-1-5-0-release-notes/index.html
+++ b/docs/apache-drill-1-5-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-6-0-release-notes/index.html b/docs/apache-drill-1-6-0-release-notes/index.html
index 53cd8b2..6119fe5 100644
--- a/docs/apache-drill-1-6-0-release-notes/index.html
+++ b/docs/apache-drill-1-6-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-7-0-release-notes/index.html b/docs/apache-drill-1-7-0-release-notes/index.html
index 52a4bcb..297a9ed 100644
--- a/docs/apache-drill-1-7-0-release-notes/index.html
+++ b/docs/apache-drill-1-7-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-8-0-release-notes/index.html b/docs/apache-drill-1-8-0-release-notes/index.html
index 6ce3afb..c5d66ec 100644
--- a/docs/apache-drill-1-8-0-release-notes/index.html
+++ b/docs/apache-drill-1-8-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-1-9-0-release-notes/index.html b/docs/apache-drill-1-9-0-release-notes/index.html
index 261922c..d8a4283 100644
--- a/docs/apache-drill-1-9-0-release-notes/index.html
+++ b/docs/apache-drill-1-9-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-contribution-guidelines/index.html b/docs/apache-drill-contribution-guidelines/index.html
index 9b99c2b..bbca72f 100644
--- a/docs/apache-drill-contribution-guidelines/index.html
+++ b/docs/apache-drill-contribution-guidelines/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-contribution-ideas/index.html b/docs/apache-drill-contribution-ideas/index.html
index eee1860..581406d 100644
--- a/docs/apache-drill-contribution-ideas/index.html
+++ b/docs/apache-drill-contribution-ideas/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/apache-drill-m1-release-notes-apache-drill-alpha/index.html b/docs/apache-drill-m1-release-notes-apache-drill-alpha/index.html
index ad45f90..cb46a13 100644
--- a/docs/apache-drill-m1-release-notes-apache-drill-alpha/index.html
+++ b/docs/apache-drill-m1-release-notes-apache-drill-alpha/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/appendix-a-release-note-issues/index.html b/docs/appendix-a-release-note-issues/index.html
index 8ba7dd9..27dbd21 100644
--- a/docs/appendix-a-release-note-issues/index.html
+++ b/docs/appendix-a-release-note-issues/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/appendix-b-drill-env-sh-settings/index.html b/docs/appendix-b-drill-env-sh-settings/index.html
index f8b8a85..197f15d 100644
--- a/docs/appendix-b-drill-env-sh-settings/index.html
+++ b/docs/appendix-b-drill-env-sh-settings/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/appendix-c-troubleshooting/index.html b/docs/appendix-c-troubleshooting/index.html
index 84ceeae..a56d228 100644
--- a/docs/appendix-c-troubleshooting/index.html
+++ b/docs/appendix-c-troubleshooting/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/appendix-d-recreate-the-drill-archive/index.html b/docs/appendix-d-recreate-the-drill-archive/index.html
index 9cc94d6..6cf236b 100644
--- a/docs/appendix-d-recreate-the-drill-archive/index.html
+++ b/docs/appendix-d-recreate-the-drill-archive/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/architecture-introduction/index.html b/docs/architecture-introduction/index.html
index 6152ffe..4fbfc69 100644
--- a/docs/architecture-introduction/index.html
+++ b/docs/architecture-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/architecture/index.html b/docs/architecture/index.html
index dace725..62acb64 100644
--- a/docs/architecture/index.html
+++ b/docs/architecture/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/asynchronous-parquet-reader/index.html b/docs/asynchronous-parquet-reader/index.html
index bd9cff1..1c51631 100644
--- a/docs/asynchronous-parquet-reader/index.html
+++ b/docs/asynchronous-parquet-reader/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/azure-blob-storage-plugin/index.html b/docs/azure-blob-storage-plugin/index.html
index c913849..f924c66 100644
--- a/docs/azure-blob-storage-plugin/index.html
+++ b/docs/azure-blob-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/browsing-data-and-defining-views/index.html b/docs/browsing-data-and-defining-views/index.html
index 7e46d0b..ea1afee 100644
--- a/docs/browsing-data-and-defining-views/index.html
+++ b/docs/browsing-data-and-defining-views/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/case/index.html b/docs/case/index.html
index 499b466..128b25f 100644
--- a/docs/case/index.html
+++ b/docs/case/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/cassandra-storage-plugin/index.html b/docs/cassandra-storage-plugin/index.html
index 4814136..149e654 100644
--- a/docs/cassandra-storage-plugin/index.html
+++ b/docs/cassandra-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/choosing-a-storage-format/index.html b/docs/choosing-a-storage-format/index.html
index 2f845d4..7883f27 100644
--- a/docs/choosing-a-storage-format/index.html
+++ b/docs/choosing-a-storage-format/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/compiling-drill-from-source/index.html b/docs/compiling-drill-from-source/index.html
index 8e30f1e..1b5b75f 100644
--- a/docs/compiling-drill-from-source/index.html
+++ b/docs/compiling-drill-from-source/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuration-options-introduction/index.html b/docs/configuration-options-introduction/index.html
index 35dfec3..81350b7 100644
--- a/docs/configuration-options-introduction/index.html
+++ b/docs/configuration-options-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuration-options/index.html b/docs/configuration-options/index.html
index f84bd14..5fa0a4d 100644
--- a/docs/configuration-options/index.html
+++ b/docs/configuration-options/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuration-reference/index.html b/docs/configuration-reference/index.html
index 777ac8f..efce277 100644
--- a/docs/configuration-reference/index.html
+++ b/docs/configuration-reference/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configure-drill-introduction/index.html b/docs/configure-drill-introduction/index.html
index ff513ae..b107b22 100644
--- a/docs/configure-drill-introduction/index.html
+++ b/docs/configure-drill-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configure-drill/index.html b/docs/configure-drill/index.html
index 6218254..76a9fcc 100644
--- a/docs/configure-drill/index.html
+++ b/docs/configure-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-a-multitenant-cluster-introduction/index.html b/docs/configuring-a-multitenant-cluster-introduction/index.html
index 78e04c3..f0d9355 100644
--- a/docs/configuring-a-multitenant-cluster-introduction/index.html
+++ b/docs/configuring-a-multitenant-cluster-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-a-multitenant-cluster/index.html b/docs/configuring-a-multitenant-cluster/index.html
index 43aa534..ca8c8ea 100644
--- a/docs/configuring-a-multitenant-cluster/index.html
+++ b/docs/configuring-a-multitenant-cluster/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-cgroups-to-control-cpu-usage/index.html b/docs/configuring-cgroups-to-control-cpu-usage/index.html
index 5424d3c..45b1081 100644
--- a/docs/configuring-cgroups-to-control-cpu-usage/index.html
+++ b/docs/configuring-cgroups-to-control-cpu-usage/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-custom-acls-to-secure-znodes/index.html b/docs/configuring-custom-acls-to-secure-znodes/index.html
index c1cfbf9..d3ed2f6 100644
--- a/docs/configuring-custom-acls-to-secure-znodes/index.html
+++ b/docs/configuring-custom-acls-to-secure-znodes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-drill-memory/index.html b/docs/configuring-drill-memory/index.html
index 55052e0..9a34337 100644
--- a/docs/configuring-drill-memory/index.html
+++ b/docs/configuring-drill-memory/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-drill-to-use-spnego-for-http-authentication/index.html b/docs/configuring-drill-to-use-spnego-for-http-authentication/index.html
index e2e5db3..37fb398 100644
--- a/docs/configuring-drill-to-use-spnego-for-http-authentication/index.html
+++ b/docs/configuring-drill-to-use-spnego-for-http-authentication/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-inbound-impersonation/index.html b/docs/configuring-inbound-impersonation/index.html
index 8572f75..37979ab 100644
--- a/docs/configuring-inbound-impersonation/index.html
+++ b/docs/configuring-inbound-impersonation/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-index-planning/index.html b/docs/configuring-index-planning/index.html
index a0eef35..e804641 100644
--- a/docs/configuring-index-planning/index.html
+++ b/docs/configuring-index-planning/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-jreport-with-drill/index.html b/docs/configuring-jreport-with-drill/index.html
index d46f933..74b2298 100644
--- a/docs/configuring-jreport-with-drill/index.html
+++ b/docs/configuring-jreport-with-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-kerberos-security/index.html b/docs/configuring-kerberos-security/index.html
index 79fd0ca..1901919 100644
--- a/docs/configuring-kerberos-security/index.html
+++ b/docs/configuring-kerberos-security/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-multitenant-resources/index.html b/docs/configuring-multitenant-resources/index.html
index 505a010..8be0698 100644
--- a/docs/configuring-multitenant-resources/index.html
+++ b/docs/configuring-multitenant-resources/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-odbc-on-linux/index.html b/docs/configuring-odbc-on-linux/index.html
index d4da875..f7263e7 100644
--- a/docs/configuring-odbc-on-linux/index.html
+++ b/docs/configuring-odbc-on-linux/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-odbc-on-mac-os-x/index.html b/docs/configuring-odbc-on-mac-os-x/index.html
index eafd508..427d6a8 100644
--- a/docs/configuring-odbc-on-mac-os-x/index.html
+++ b/docs/configuring-odbc-on-mac-os-x/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-odbc-on-windows/index.html b/docs/configuring-odbc-on-windows/index.html
index 54532d8..ab86096 100644
--- a/docs/configuring-odbc-on-windows/index.html
+++ b/docs/configuring-odbc-on-windows/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-odbc/index.html b/docs/configuring-odbc/index.html
index cfff8f7..1c4bd1d 100644
--- a/docs/configuring-odbc/index.html
+++ b/docs/configuring-odbc/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-plain-security/index.html b/docs/configuring-plain-security/index.html
index 7880f3d..6550241 100644
--- a/docs/configuring-plain-security/index.html
+++ b/docs/configuring-plain-security/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-resources-for-a-shared-drillbit/index.html b/docs/configuring-resources-for-a-shared-drillbit/index.html
index 5edb2ab..3a9a3d4 100644
--- a/docs/configuring-resources-for-a-shared-drillbit/index.html
+++ b/docs/configuring-resources-for-a-shared-drillbit/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-ssl-tls-for-encryption/index.html b/docs/configuring-ssl-tls-for-encryption/index.html
index f9da582..f805288 100644
--- a/docs/configuring-ssl-tls-for-encryption/index.html
+++ b/docs/configuring-ssl-tls-for-encryption/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-storage-plugins/index.html b/docs/configuring-storage-plugins/index.html
index 2b579f1..ef10350 100644
--- a/docs/configuring-storage-plugins/index.html
+++ b/docs/configuring-storage-plugins/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-the-drill-shell/index.html b/docs/configuring-the-drill-shell/index.html
index 9591440..9c28e75 100644
--- a/docs/configuring-the-drill-shell/index.html
+++ b/docs/configuring-the-drill-shell/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-tibco-spotfire-server-with-drill/index.html b/docs/configuring-tibco-spotfire-server-with-drill/index.html
index c4a3fc5..9e22d8c 100644
--- a/docs/configuring-tibco-spotfire-server-with-drill/index.html
+++ b/docs/configuring-tibco-spotfire-server-with-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-user-impersonation-with-hive-authorization/index.html b/docs/configuring-user-impersonation-with-hive-authorization/index.html
index 12c4c18..21543b5 100644
--- a/docs/configuring-user-impersonation-with-hive-authorization/index.html
+++ b/docs/configuring-user-impersonation-with-hive-authorization/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-user-impersonation/index.html b/docs/configuring-user-impersonation/index.html
index daa50b8..a789222 100644
--- a/docs/configuring-user-impersonation/index.html
+++ b/docs/configuring-user-impersonation/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-user-security/index.html b/docs/configuring-user-security/index.html
index d71f4ee..f60bb50 100644
--- a/docs/configuring-user-security/index.html
+++ b/docs/configuring-user-security/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/configuring-web-ui-and-rest-api-security/index.html b/docs/configuring-web-ui-and-rest-api-security/index.html
index 0bd96ea..e6c6c89 100644
--- a/docs/configuring-web-ui-and-rest-api-security/index.html
+++ b/docs/configuring-web-ui-and-rest-api-security/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/connect-a-data-source-introduction/index.html b/docs/connect-a-data-source-introduction/index.html
index 939f4b6..d5228ab 100644
--- a/docs/connect-a-data-source-introduction/index.html
+++ b/docs/connect-a-data-source-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/connect-a-data-source/index.html b/docs/connect-a-data-source/index.html
index ad87b28..722e807 100644
--- a/docs/connect-a-data-source/index.html
+++ b/docs/connect-a-data-source/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/connecting-drill-explorer-to-data/index.html b/docs/connecting-drill-explorer-to-data/index.html
index f1a95a8..06878d6 100644
--- a/docs/connecting-drill-explorer-to-data/index.html
+++ b/docs/connecting-drill-explorer-to-data/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/contribute-to-drill/index.html b/docs/contribute-to-drill/index.html
index 5d4064e..e4f38e0 100644
--- a/docs/contribute-to-drill/index.html
+++ b/docs/contribute-to-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/controlling-parallelization-to-balance-performance-with-multi-tenancy/index.html b/docs/controlling-parallelization-to-balance-performance-with-multi-tenancy/index.html
index ecf930a..c4a5698 100644
--- a/docs/controlling-parallelization-to-balance-performance-with-multi-tenancy/index.html
+++ b/docs/controlling-parallelization-to-balance-performance-with-multi-tenancy/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/core-modules/index.html b/docs/core-modules/index.html
index 0cf2635..6a3757c 100644
--- a/docs/core-modules/index.html
+++ b/docs/core-modules/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/create-function-using-jar/index.html b/docs/create-function-using-jar/index.html
index 49ed597..d47ae75 100644
--- a/docs/create-function-using-jar/index.html
+++ b/docs/create-function-using-jar/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/create-or-replace-schema/index.html b/docs/create-or-replace-schema/index.html
index ffbf1b3..f6c6afe 100644
--- a/docs/create-or-replace-schema/index.html
+++ b/docs/create-or-replace-schema/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/create-table-as-ctas/index.html b/docs/create-table-as-ctas/index.html
index d0f6ea3..ed6f861 100644
--- a/docs/create-table-as-ctas/index.html
+++ b/docs/create-table-as-ctas/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/create-temporary-table-as-cttas/index.html b/docs/create-temporary-table-as-cttas/index.html
index 29d6d37..cb05060 100644
--- a/docs/create-temporary-table-as-cttas/index.html
+++ b/docs/create-temporary-table-as-cttas/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/create-view/index.html b/docs/create-view/index.html
index 831b676..cf7fad9 100644
--- a/docs/create-view/index.html
+++ b/docs/create-view/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/creating-a-basic-drill-cluster/index.html b/docs/creating-a-basic-drill-cluster/index.html
index b76d164..e769c62 100644
--- a/docs/creating-a-basic-drill-cluster/index.html
+++ b/docs/creating-a-basic-drill-cluster/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/creating-custom-authenticators/index.html b/docs/creating-custom-authenticators/index.html
index 233f576..93252ed 100644
--- a/docs/creating-custom-authenticators/index.html
+++ b/docs/creating-custom-authenticators/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/cryptography-functions/index.html b/docs/cryptography-functions/index.html
index 243c57d..77f67ef 100644
--- a/docs/cryptography-functions/index.html
+++ b/docs/cryptography-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/custom-function-interfaces/index.html b/docs/custom-function-interfaces/index.html
index d09bb85..c95860f 100644
--- a/docs/custom-function-interfaces/index.html
+++ b/docs/custom-function-interfaces/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/data-sources-and-file-formats-introduction/index.html b/docs/data-sources-and-file-formats-introduction/index.html
index b59bde3..9bd0e26 100644
--- a/docs/data-sources-and-file-formats-introduction/index.html
+++ b/docs/data-sources-and-file-formats-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/data-sources-and-file-formats/index.html b/docs/data-sources-and-file-formats/index.html
index d35eaf4..9d90b2b 100644
--- a/docs/data-sources-and-file-formats/index.html
+++ b/docs/data-sources-and-file-formats/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/data-type-conversion/index.html b/docs/data-type-conversion/index.html
index 4d13752..d932fc3 100644
--- a/docs/data-type-conversion/index.html
+++ b/docs/data-type-conversion/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/data-type-functions/index.html b/docs/data-type-functions/index.html
index ba4a86e..d2f9da3 100644
--- a/docs/data-type-functions/index.html
+++ b/docs/data-type-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/data-types/index.html b/docs/data-types/index.html
index 7b19a1e..437ac92 100644
--- a/docs/data-types/index.html
+++ b/docs/data-types/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/date-time-and-timestamp/index.html b/docs/date-time-and-timestamp/index.html
index 32faa6f..042a281 100644
--- a/docs/date-time-and-timestamp/index.html
+++ b/docs/date-time-and-timestamp/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/date-time-functions-and-arithmetic/index.html b/docs/date-time-functions-and-arithmetic/index.html
index b140d27..fa04b22 100644
--- a/docs/date-time-functions-and-arithmetic/index.html
+++ b/docs/date-time-functions-and-arithmetic/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/deploying-and-using-a-hive-udf/index.html b/docs/deploying-and-using-a-hive-udf/index.html
index 1fab6a7..797df6b 100644
--- a/docs/deploying-and-using-a-hive-udf/index.html
+++ b/docs/deploying-and-using-a-hive-udf/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/describe/index.html b/docs/describe/index.html
index 4ea8bed..99f8919 100644
--- a/docs/describe/index.html
+++ b/docs/describe/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/design-docs/index.html b/docs/design-docs/index.html
index 84e34be..9bab2e1 100644
--- a/docs/design-docs/index.html
+++ b/docs/design-docs/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/designing-indexes-for-your-queries/index.html b/docs/designing-indexes-for-your-queries/index.html
index c93f9fd..53d2530 100644
--- a/docs/designing-indexes-for-your-queries/index.html
+++ b/docs/designing-indexes-for-your-queries/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/develop-custom-functions-introduction/index.html b/docs/develop-custom-functions-introduction/index.html
index 8662488..2697f26 100644
--- a/docs/develop-custom-functions-introduction/index.html
+++ b/docs/develop-custom-functions-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/develop-custom-functions/index.html b/docs/develop-custom-functions/index.html
index 56b78ff..3436e6a 100644
--- a/docs/develop-custom-functions/index.html
+++ b/docs/develop-custom-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/develop-drill/index.html b/docs/develop-drill/index.html
index 10c5418..40cad36 100644
--- a/docs/develop-drill/index.html
+++ b/docs/develop-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/developer-information/index.html b/docs/developer-information/index.html
index 9fad0eb..ec9eb87 100644
--- a/docs/developer-information/index.html
+++ b/docs/developer-information/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/developing-a-simple-function/index.html b/docs/developing-a-simple-function/index.html
index f0fceba..73ca8cd 100644
--- a/docs/developing-a-simple-function/index.html
+++ b/docs/developing-a-simple-function/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/developing-an-aggregate-function/index.html b/docs/developing-an-aggregate-function/index.html
index 3f520d8..3e0eaca 100644
--- a/docs/developing-an-aggregate-function/index.html
+++ b/docs/developing-an-aggregate-function/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/distributed-mode-prerequisites/index.html b/docs/distributed-mode-prerequisites/index.html
index 1dbdc41..b573de0 100644
--- a/docs/distributed-mode-prerequisites/index.html
+++ b/docs/distributed-mode-prerequisites/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/drill-default-input-format/index.html b/docs/drill-default-input-format/index.html
index 146152b..c87c8c2 100644
--- a/docs/drill-default-input-format/index.html
+++ b/docs/drill-default-input-format/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/drill-explorer-introduction/index.html b/docs/drill-explorer-introduction/index.html
index 641edf3..5b53283 100644
--- a/docs/drill-explorer-introduction/index.html
+++ b/docs/drill-explorer-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/drill-iceberg-metastore/index.html b/docs/drill-iceberg-metastore/index.html
index 8077d06..7d4b940 100644
--- a/docs/drill-iceberg-metastore/index.html
+++ b/docs/drill-iceberg-metastore/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/drill-in-10-minutes/index.html b/docs/drill-in-10-minutes/index.html
index 8408900..4f2dd06 100644
--- a/docs/drill-in-10-minutes/index.html
+++ b/docs/drill-in-10-minutes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/drill-introduction/index.html b/docs/drill-introduction/index.html
index 7db98f4..7b4448f 100644
--- a/docs/drill-introduction/index.html
+++ b/docs/drill-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/drill-metastore/index.html b/docs/drill-metastore/index.html
index b9acf7b..d393810 100644
--- a/docs/drill-metastore/index.html
+++ b/docs/drill-metastore/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/drill-on-yarn-command-line-tool/index.html b/docs/drill-on-yarn-command-line-tool/index.html
index 3ab124f..9d12a09 100644
--- a/docs/drill-on-yarn-command-line-tool/index.html
+++ b/docs/drill-on-yarn-command-line-tool/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/drill-on-yarn-introduction/index.html b/docs/drill-on-yarn-introduction/index.html
index 807d906..843c0ae 100644
--- a/docs/drill-on-yarn-introduction/index.html
+++ b/docs/drill-on-yarn-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/drill-on-yarn/index.html b/docs/drill-on-yarn/index.html
index 399e6b9..fa3ede4 100644
--- a/docs/drill-on-yarn/index.html
+++ b/docs/drill-on-yarn/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
@@ -1455,7 +1459,7 @@
       
         <div class="doc-nav">
   
-  <span class="previous-toc"><a href="/docs/analyzing-data-using-window-functions/">← Analyzing Data Using Window Functions</a></span><span class="next-toc"><a href="/docs/drill-on-yarn-introduction/">Drill-on-YARN Introduction →</a></span>
+  <span class="previous-toc"><a href="/docs/orchestrating-queries-with-airflow/">← Orchestrating queries with Airflow</a></span><span class="next-toc"><a href="/docs/drill-on-yarn-introduction/">Drill-on-YARN Introduction →</a></span>
 </div>
 
     
diff --git a/docs/drill-plan-syntax/index.html b/docs/drill-plan-syntax/index.html
index 20f860b..e257be2 100644
--- a/docs/drill-plan-syntax/index.html
+++ b/docs/drill-plan-syntax/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/drill-query-execution/index.html b/docs/drill-query-execution/index.html
index 969cb53..0cea91d 100644
--- a/docs/drill-query-execution/index.html
+++ b/docs/drill-query-execution/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/drop-function-using-jar/index.html b/docs/drop-function-using-jar/index.html
index 3b8cd6b..72d15ac 100644
--- a/docs/drop-function-using-jar/index.html
+++ b/docs/drop-function-using-jar/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/drop-table/index.html b/docs/drop-table/index.html
index 220a9f6..a09da13 100644
--- a/docs/drop-table/index.html
+++ b/docs/drop-table/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/drop-view/index.html b/docs/drop-view/index.html
index e869c46..2664a57 100644
--- a/docs/drop-view/index.html
+++ b/docs/drop-view/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/druid-storage-plugin/index.html b/docs/druid-storage-plugin/index.html
index 2efb3e7..d933116 100644
--- a/docs/druid-storage-plugin/index.html
+++ b/docs/druid-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/dynamic-udfs/index.html b/docs/dynamic-udfs/index.html
index 7a127f1..405a8b5 100644
--- a/docs/dynamic-udfs/index.html
+++ b/docs/dynamic-udfs/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/ecosystem/index.html b/docs/ecosystem/index.html
index c939929..ee270f0 100644
--- a/docs/ecosystem/index.html
+++ b/docs/ecosystem/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/elasticsearch-storage-plugin/index.html b/docs/elasticsearch-storage-plugin/index.html
index d343ce3..b208b50 100644
--- a/docs/elasticsearch-storage-plugin/index.html
+++ b/docs/elasticsearch-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/embedded-mode-prerequisites/index.html b/docs/embedded-mode-prerequisites/index.html
index 28af12e..01e6b92 100644
--- a/docs/embedded-mode-prerequisites/index.html
+++ b/docs/embedded-mode-prerequisites/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/enabling-query-queuing/index.html b/docs/enabling-query-queuing/index.html
index 7681df0..44a69d6 100644
--- a/docs/enabling-query-queuing/index.html
+++ b/docs/enabling-query-queuing/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/enabling-web-ui-security/index.html b/docs/enabling-web-ui-security/index.html
index f1545d1..6aa9ead 100644
--- a/docs/enabling-web-ui-security/index.html
+++ b/docs/enabling-web-ui-security/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/enron-emails/index.html b/docs/enron-emails/index.html
index 4d68fdf..0eaa2fe 100644
--- a/docs/enron-emails/index.html
+++ b/docs/enron-emails/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/error-messages/index.html b/docs/error-messages/index.html
index 9250e1d..9342c41 100644
--- a/docs/error-messages/index.html
+++ b/docs/error-messages/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/esri-shapefile-format-plugin/index.html b/docs/esri-shapefile-format-plugin/index.html
index fe0faf3..89c1ece 100644
--- a/docs/esri-shapefile-format-plugin/index.html
+++ b/docs/esri-shapefile-format-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/excel-format-plugin/index.html b/docs/excel-format-plugin/index.html
index a59c41f..fbc0c69 100644
--- a/docs/excel-format-plugin/index.html
+++ b/docs/excel-format-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/explain/index.html b/docs/explain/index.html
index 7556922..63de741 100644
--- a/docs/explain/index.html
+++ b/docs/explain/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/file-system-storage-plugin/index.html b/docs/file-system-storage-plugin/index.html
index 8a487db..173c43f 100644
--- a/docs/file-system-storage-plugin/index.html
+++ b/docs/file-system-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/flatten/index.html b/docs/flatten/index.html
index 9fe51b9..81611d2 100644
--- a/docs/flatten/index.html
+++ b/docs/flatten/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/from-clause/index.html b/docs/from-clause/index.html
index 1995d76..258a47a 100644
--- a/docs/from-clause/index.html
+++ b/docs/from-clause/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/functions-for-handling-nulls/index.html b/docs/functions-for-handling-nulls/index.html
index 2840c72..6a36453 100644
--- a/docs/functions-for-handling-nulls/index.html
+++ b/docs/functions-for-handling-nulls/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html
index 9388ea6..5604db5 100644
--- a/docs/getting-started/index.html
+++ b/docs/getting-started/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/getting-to-know-the-drill-sandbox/index.html b/docs/getting-to-know-the-drill-sandbox/index.html
index 25b995f..c02c76b 100644
--- a/docs/getting-to-know-the-drill-sandbox/index.html
+++ b/docs/getting-to-know-the-drill-sandbox/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/gis-functions/index.html b/docs/gis-functions/index.html
index e8ab3bb..b0a3433 100644
--- a/docs/gis-functions/index.html
+++ b/docs/gis-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/global-query-list/index.html b/docs/global-query-list/index.html
index 6c398dc9..56a9e00 100644
--- a/docs/global-query-list/index.html
+++ b/docs/global-query-list/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/group-by-clause/index.html b/docs/group-by-clause/index.html
index f607f36..d55d703 100644
--- a/docs/group-by-clause/index.html
+++ b/docs/group-by-clause/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/guidelines-for-optimizing-aggregation/index.html b/docs/guidelines-for-optimizing-aggregation/index.html
index 27ada66..01cdeaf 100644
--- a/docs/guidelines-for-optimizing-aggregation/index.html
+++ b/docs/guidelines-for-optimizing-aggregation/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/handling-different-data-types/index.html b/docs/handling-different-data-types/index.html
index 9d55803..dfcfafb 100644
--- a/docs/handling-different-data-types/index.html
+++ b/docs/handling-different-data-types/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/having-clause/index.html b/docs/having-clause/index.html
index 127665f..f318458 100644
--- a/docs/having-clause/index.html
+++ b/docs/having-clause/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/hbase-storage-plugin/index.html b/docs/hbase-storage-plugin/index.html
index 77b355f..156ddb3 100644
--- a/docs/hbase-storage-plugin/index.html
+++ b/docs/hbase-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/hdf5-format-plugin/index.html b/docs/hdf5-format-plugin/index.html
index 99d7d30..5ecdc5b 100644
--- a/docs/hdf5-format-plugin/index.html
+++ b/docs/hdf5-format-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/hive-metadata-caching/index.html b/docs/hive-metadata-caching/index.html
index 6dce098..3680c93 100644
--- a/docs/hive-metadata-caching/index.html
+++ b/docs/hive-metadata-caching/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/hive-storage-plugin/index.html b/docs/hive-storage-plugin/index.html
index 741218a..24d2044 100644
--- a/docs/hive-storage-plugin/index.html
+++ b/docs/hive-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/hive-to-drill-data-type-mapping/index.html b/docs/hive-to-drill-data-type-mapping/index.html
index 09c8c1d..4b6f4b1 100644
--- a/docs/hive-to-drill-data-type-mapping/index.html
+++ b/docs/hive-to-drill-data-type-mapping/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/how-to-partition-data/index.html b/docs/how-to-partition-data/index.html
index 540b124..3a962f6 100644
--- a/docs/how-to-partition-data/index.html
+++ b/docs/how-to-partition-data/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/http-storage-plugin/index.html b/docs/http-storage-plugin/index.html
index d3bfd21..1da301e 100644
--- a/docs/http-storage-plugin/index.html
+++ b/docs/http-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
@@ -1935,7 +1939,7 @@ redirection.</p>
     <p>At this time, the plugin does not support any authentication other than basic authentication.</p>
   </li>
   <li>
-    <p>This plugin does not implement join filter pushdowns (only constant plushdowns are
+    <p>This plugin does not implement join filter pushdowns (only constant pushdowns are
 supported). Join pushdown has the potential to improve performance if you use the HTTP service
 joined to another table.</p>
   </li>
diff --git a/docs/httpd-format-plugin/index.html b/docs/httpd-format-plugin/index.html
index 873b9cb..694794a 100644
--- a/docs/httpd-format-plugin/index.html
+++ b/docs/httpd-format-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/identifying-multiple-drill-versions-in-a-cluster/index.html b/docs/identifying-multiple-drill-versions-in-a-cluster/index.html
index 83b2b7c..e01edc6 100644
--- a/docs/identifying-multiple-drill-versions-in-a-cluster/index.html
+++ b/docs/identifying-multiple-drill-versions-in-a-cluster/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/identifying-performance-issues/index.html b/docs/identifying-performance-issues/index.html
index 0bce664..06ab0b8 100644
--- a/docs/identifying-performance-issues/index.html
+++ b/docs/identifying-performance-issues/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/image-metadata-format-plugin/index.html b/docs/image-metadata-format-plugin/index.html
index 4d45fe8..29a06ae 100644
--- a/docs/image-metadata-format-plugin/index.html
+++ b/docs/image-metadata-format-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/index-selection/index.html b/docs/index-selection/index.html
index 05ec348..3377a4e 100644
--- a/docs/index-selection/index.html
+++ b/docs/index-selection/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/index.html b/docs/index.html
index 89abab1..924e0df 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/install-drill-introduction/index.html b/docs/install-drill-introduction/index.html
index feba629..706e10d 100644
--- a/docs/install-drill-introduction/index.html
+++ b/docs/install-drill-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/install-drill/index.html b/docs/install-drill/index.html
index 13cd075..1fef713 100644
--- a/docs/install-drill/index.html
+++ b/docs/install-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/installing-drill-in-distributed-mode/index.html b/docs/installing-drill-in-distributed-mode/index.html
index 60b5613..5e859ed 100644
--- a/docs/installing-drill-in-distributed-mode/index.html
+++ b/docs/installing-drill-in-distributed-mode/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/installing-drill-in-embedded-mode/index.html b/docs/installing-drill-in-embedded-mode/index.html
index 9fec779..411f1a2 100644
--- a/docs/installing-drill-in-embedded-mode/index.html
+++ b/docs/installing-drill-in-embedded-mode/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/installing-drill-on-linux-and-mac-os-x/index.html b/docs/installing-drill-on-linux-and-mac-os-x/index.html
index a6ecafb..ef6e255 100644
--- a/docs/installing-drill-on-linux-and-mac-os-x/index.html
+++ b/docs/installing-drill-on-linux-and-mac-os-x/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/installing-drill-on-the-cluster/index.html b/docs/installing-drill-on-the-cluster/index.html
index 055ee4c..3ba2197 100644
--- a/docs/installing-drill-on-the-cluster/index.html
+++ b/docs/installing-drill-on-the-cluster/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
@@ -1433,7 +1437,7 @@
 
 <h3 id="optional-create-the-site-directory">(Optional) Create the site directory</h3>
 
-<p>The site directory contains your site-specific files for Drill.  Putting these in a separate directory to the Drill installation means that upgrading Drill will not clobber your configuration and custom code.  It is possible to skip this step, meaning that your configuration and custom code will live in the <code class="language-plaintext highlighter-rouge">$DRILL_HOME/conf</code> and <code class="language-plaintext highlighter-rouge">$DRILL_HOME/jars/3rdparty</code> subdirectories re [...]
+<p>The site directory contains your site-specific files for Drill.  Putting these in a separate directory to the Drill installation means that upgrading Drill will not overwrite your configuration and custom code.  It is possible to skip this step, meaning that your configuration and custom code will live in the <code class="language-plaintext highlighter-rouge">$DRILL_HOME/conf</code> and <code class="language-plaintext highlighter-rouge">$DRILL_HOME/jars/3rdparty</code> subdirectories  [...]
 
 <p>Create the site directory in a suitable location, e.g.</p>
 
diff --git a/docs/installing-drill-on-windows/index.html b/docs/installing-drill-on-windows/index.html
index 54240c1..c9f16a1 100644
--- a/docs/installing-drill-on-windows/index.html
+++ b/docs/installing-drill-on-windows/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/installing-the-apache-drill-sandbox/index.html b/docs/installing-the-apache-drill-sandbox/index.html
index 001f40f..cb4bf46 100644
--- a/docs/installing-the-apache-drill-sandbox/index.html
+++ b/docs/installing-the-apache-drill-sandbox/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/installing-the-driver-on-linux/index.html b/docs/installing-the-driver-on-linux/index.html
index 8e3cc0b..f91b37f 100644
--- a/docs/installing-the-driver-on-linux/index.html
+++ b/docs/installing-the-driver-on-linux/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/installing-the-driver-on-mac-os-x/index.html b/docs/installing-the-driver-on-mac-os-x/index.html
index b193da4..7737753 100644
--- a/docs/installing-the-driver-on-mac-os-x/index.html
+++ b/docs/installing-the-driver-on-mac-os-x/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/installing-the-driver-on-windows/index.html b/docs/installing-the-driver-on-windows/index.html
index aa1c241..7aa0fc1 100644
--- a/docs/installing-the-driver-on-windows/index.html
+++ b/docs/installing-the-driver-on-windows/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/installing-the-odbc-driver/index.html b/docs/installing-the-odbc-driver/index.html
index 3a06cfa..97b7590 100644
--- a/docs/installing-the-odbc-driver/index.html
+++ b/docs/installing-the-odbc-driver/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/interfaces-introduction/index.html b/docs/interfaces-introduction/index.html
index ab50c81..45acc06 100644
--- a/docs/interfaces-introduction/index.html
+++ b/docs/interfaces-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/ip-networking-functions/index.html b/docs/ip-networking-functions/index.html
index d0393af..e52e335 100644
--- a/docs/ip-networking-functions/index.html
+++ b/docs/ip-networking-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/join-planning-guidelines/index.html b/docs/join-planning-guidelines/index.html
index 84fd59f..bdeb92d 100644
--- a/docs/join-planning-guidelines/index.html
+++ b/docs/join-planning-guidelines/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/json-data-model/index.html b/docs/json-data-model/index.html
index fb77f48..10bbca2 100644
--- a/docs/json-data-model/index.html
+++ b/docs/json-data-model/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/kafka-storage-plugin/index.html b/docs/kafka-storage-plugin/index.html
index 4f55835..9cba841 100644
--- a/docs/kafka-storage-plugin/index.html
+++ b/docs/kafka-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/kvgen/index.html b/docs/kvgen/index.html
index 827da3a..7c7d495 100644
--- a/docs/kvgen/index.html
+++ b/docs/kvgen/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/lateral-join/index.html b/docs/lateral-join/index.html
index 9a78be9..24019fc 100644
--- a/docs/lateral-join/index.html
+++ b/docs/lateral-join/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/launch-drill-under-yarn/index.html b/docs/launch-drill-under-yarn/index.html
index 310434a..e42b805 100644
--- a/docs/launch-drill-under-yarn/index.html
+++ b/docs/launch-drill-under-yarn/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/learn-drill-with-the-mapr-sandbox/index.html b/docs/learn-drill-with-the-mapr-sandbox/index.html
index c55c1b6..c4729f8 100644
--- a/docs/learn-drill-with-the-mapr-sandbox/index.html
+++ b/docs/learn-drill-with-the-mapr-sandbox/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
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 42f824a..c894e74 100644
--- a/docs/lesson-1-learn-about-the-data-set/index.html
+++ b/docs/lesson-1-learn-about-the-data-set/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
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 72e89c7..4d24e0f 100644
--- a/docs/lesson-2-run-queries-with-ansi-sql/index.html
+++ b/docs/lesson-2-run-queries-with-ansi-sql/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
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 0650160..de5147a 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
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/lexical-structure/index.html b/docs/lexical-structure/index.html
index 226358d..5c071e7 100644
--- a/docs/lexical-structure/index.html
+++ b/docs/lexical-structure/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/limit-clause/index.html b/docs/limit-clause/index.html
index 0c48f7e..560936a 100644
--- a/docs/limit-clause/index.html
+++ b/docs/limit-clause/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/log-and-debug-introduction/index.html b/docs/log-and-debug-introduction/index.html
index 48516e3..7750973 100644
--- a/docs/log-and-debug-introduction/index.html
+++ b/docs/log-and-debug-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/log-and-debug/index.html b/docs/log-and-debug/index.html
index bf802a3..6a256a3 100644
--- a/docs/log-and-debug/index.html
+++ b/docs/log-and-debug/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/logfile-plugin/index.html b/docs/logfile-plugin/index.html
index 0c4203f..b01343f 100644
--- a/docs/logfile-plugin/index.html
+++ b/docs/logfile-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/logging-and-tracing/index.html b/docs/logging-and-tracing/index.html
index 3121df4..93bb255 100644
--- a/docs/logging-and-tracing/index.html
+++ b/docs/logging-and-tracing/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/ltsv-format-plugin/index.html b/docs/ltsv-format-plugin/index.html
index 9bdeb4b..ad604e9 100644
--- a/docs/ltsv-format-plugin/index.html
+++ b/docs/ltsv-format-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/manually-adding-custom-functions-to-drill/index.html b/docs/manually-adding-custom-functions-to-drill/index.html
index bd90e10..518c165 100644
--- a/docs/manually-adding-custom-functions-to-drill/index.html
+++ b/docs/manually-adding-custom-functions-to-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/mapr-db-format/index.html b/docs/mapr-db-format/index.html
index 9e32bea..d78ff5e 100644
--- a/docs/mapr-db-format/index.html
+++ b/docs/mapr-db-format/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/math-and-trig/index.html b/docs/math-and-trig/index.html
index 270db20..bce0a30 100644
--- a/docs/math-and-trig/index.html
+++ b/docs/math-and-trig/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/migrating-parquet-data/index.html b/docs/migrating-parquet-data/index.html
index b121e27..53b68ce 100644
--- a/docs/migrating-parquet-data/index.html
+++ b/docs/migrating-parquet-data/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/modify-logback-xml/index.html b/docs/modify-logback-xml/index.html
index d60d6f0..573d95b 100644
--- a/docs/modify-logback-xml/index.html
+++ b/docs/modify-logback-xml/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/modifying-query-planning-options/index.html b/docs/modifying-query-planning-options/index.html
index c9a434f..0f11c38 100644
--- a/docs/modifying-query-planning-options/index.html
+++ b/docs/modifying-query-planning-options/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/mongodb-storage-plugin/index.html b/docs/mongodb-storage-plugin/index.html
index e82beee..c38d712 100644
--- a/docs/mongodb-storage-plugin/index.html
+++ b/docs/mongodb-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/monitoring-and-canceling-queries-in-the-drill-web-ui/index.html b/docs/monitoring-and-canceling-queries-in-the-drill-web-ui/index.html
index 43644c3..fb26ce7 100644
--- a/docs/monitoring-and-canceling-queries-in-the-drill-web-ui/index.html
+++ b/docs/monitoring-and-canceling-queries-in-the-drill-web-ui/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/monitoring-metrics/index.html b/docs/monitoring-metrics/index.html
index 6cad81e..a628345 100644
--- a/docs/monitoring-metrics/index.html
+++ b/docs/monitoring-metrics/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/multiple-drill-clusters/index.html b/docs/multiple-drill-clusters/index.html
index 958a8dc..c234228 100644
--- a/docs/multiple-drill-clusters/index.html
+++ b/docs/multiple-drill-clusters/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/nested-data-functions/index.html b/docs/nested-data-functions/index.html
index 651951e..69f3c40 100644
--- a/docs/nested-data-functions/index.html
+++ b/docs/nested-data-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/nested-data-limitations/index.html b/docs/nested-data-limitations/index.html
index 81b92fe..0e8c310 100644
--- a/docs/nested-data-limitations/index.html
+++ b/docs/nested-data-limitations/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/odbc-configuration-reference/index.html b/docs/odbc-configuration-reference/index.html
index 1373a09..1f36f7d 100644
--- a/docs/odbc-configuration-reference/index.html
+++ b/docs/odbc-configuration-reference/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/odbc-jdbc-interfaces/index.html b/docs/odbc-jdbc-interfaces/index.html
index 22cde75..800678c 100644
--- a/docs/odbc-jdbc-interfaces/index.html
+++ b/docs/odbc-jdbc-interfaces/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/offset-clause/index.html b/docs/offset-clause/index.html
index 077700b..e176a0b 100644
--- a/docs/offset-clause/index.html
+++ b/docs/offset-clause/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/opentsdb-storage-plugin/index.html b/docs/opentsdb-storage-plugin/index.html
index a524833..b691324 100644
--- a/docs/opentsdb-storage-plugin/index.html
+++ b/docs/opentsdb-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/operators/index.html b/docs/operators/index.html
index 3b243e1..c650e75 100644
--- a/docs/operators/index.html
+++ b/docs/operators/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/optimizing-parquet-metadata-reading/index.html b/docs/optimizing-parquet-metadata-reading/index.html
index 4679671..e722ef6 100644
--- a/docs/optimizing-parquet-metadata-reading/index.html
+++ b/docs/optimizing-parquet-metadata-reading/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/creating-a-basic-drill-cluster/index.html b/docs/orchestrating-queries-with-airflow/index.html
similarity index 67%
copy from docs/creating-a-basic-drill-cluster/index.html
copy to docs/orchestrating-queries-with-airflow/index.html
index b76d164..6d1dac5 100644
--- a/docs/creating-a-basic-drill-cluster/index.html
+++ b/docs/orchestrating-queries-with-airflow/index.html
@@ -7,7 +7,7 @@
 <meta name=viewport content="width=device-width, initial-scale=1">
 
 
-<title>Creating a Basic Drill Cluster - Apache Drill</title>
+<title>Orchestrating queries with Airflow - Apache Drill</title>
 
 <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css"/>
 <link href='https://fonts.googleapis.com/css?family=PT+Sans' rel='stylesheet' type='text/css'/>
@@ -44,11 +44,11 @@
 	<ul>
 		
 		<li>
-			<a style="font-weight: bold;" href="/docs/creating-a-basic-drill-cluster/" >en</a>
+			<a style="font-weight: bold;" href="/docs/orchestrating-queries-with-airflow/" >en</a>
 		</li>
 		
 		<li>
-			<a  href="/zh/docs/creating-a-basic-drill-cluster/" >zh</a>
+			<a  href="/zh/docs/orchestrating-queries-with-airflow/" >zh</a>
 		</li>
 		
 	</ul>
@@ -186,8 +186,8 @@
         
       
         
-          <li class="toctree-l1"><a href="javascript: void(0);">Tutorials</a></li>
-          <ul style="display: none">
+          <li class="toctree-l1 current_section "><a href="javascript: void(0);">Tutorials</a></li>
+          <ul class="current_section">
           
             
               <li class="toctree-l2"><a class="reference internal" href="/docs/tutorials-introduction/">Tutorials Introduction</a></li>
@@ -234,19 +234,23 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2 current"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
         
-          <li class="toctree-l1 current_section "><a href="javascript: void(0);">Drill-on-YARN</a></li>
-          <ul class="current_section">
+          <li class="toctree-l1"><a href="javascript: void(0);">Drill-on-YARN</a></li>
+          <ul style="display: none">
           
             
               <li class="toctree-l2"><a class="reference internal" href="/docs/drill-on-yarn-introduction/">Drill-on-YARN Introduction</a></li>
             
           
             
-              <li class="toctree-l2 current"><a class="reference internal" href="/docs/creating-a-basic-drill-cluster/">Creating a Basic Drill Cluster</a></li>
+              <li class="toctree-l2"><a class="reference internal" href="/docs/creating-a-basic-drill-cluster/">Creating a Basic Drill Cluster</a></li>
             
           
             
@@ -1390,9 +1394,9 @@
   <li><a href="/docs/">Docs</a></li>
  
   
-    <li><a href="/docs/drill-on-yarn/">Drill-on-YARN</a></li>
+    <li><a href="/docs/tutorials/">Tutorials</a></li>
   
-  <li>Creating a Basic Drill Cluster</li>
+  <li>Orchestrating queries with Airflow</li>
 </nav>
 
 
@@ -1400,11 +1404,11 @@
   <div class="main-content">
 
     
-      <a class="edit-link" href="https://github.com/apache/drill/blob/gh-pages/_docs/en/drill-on-yarn/020-creating-a-basic-drill-cluster.md" target="_blank"><i class="fa fa-pencil-square-o"></i></a>
+      <a class="edit-link" href="https://github.com/apache/drill/blob/gh-pages/_docs/en/tutorials/080-orchestrating-queries-with-airflow.md" target="_blank"><i class="fa fa-pencil-square-o"></i></a>
     
 
     <div class="int_title left">
-      <h1>Creating a Basic Drill Cluster</h1>
+      <h1>Orchestrating queries with Airflow</h1>
 
     </div>
 
@@ -1414,232 +1418,343 @@
 
     <div class="int_text" align="left">
       
-        <p>This topic walks you through the steps needed to create a basic Drill cluster.</p>
-
-<h2 id="the-client-machine">The Client Machine</h2>
+        <p>This tutorial walks through the development of Apache Airflow DAG that implements a basic ETL process using Apache Drill.  We’ll install Airflow into a Python virtualenv using pip before writing and testing our new DAG.  Consult the <a href="https://airflow.apache.org/docs/apache-airflow/stable/installation.html">Airflow installation documentation</a> for more information about installing Airflow.</p>
 
-<p>YARN works by launching an application using a “client” application. For Drill, this is the
-Drill-on-YARN client. The client can run on any machine that has both the Drill and Hadoop
-software. Any host from which you currently launch YARN jobs can be the client. The client is not required to be part of the YARN cluster.</p>
+<p>I’ll be issuing commands using a shell on a Debian Linux machine in this tutorial but it should be possible with a little translation to follow along on other platforms.</p>
 
-<p>When running Drill outside of YARN, you must install Drill on every node in the cluster. With YARN, you only need install Drill only on the client machine; Drill-on-YARN automatically deploys (“localizes”) Drill to the worker nodes.</p>
-
-<p>When running Drill without YARN, many users place their configuration files and custom code
-within the Drill distribution directory. When running under YARN, all your configuration and
-custom code resides in the site directory; do not change anything in the Drill install.
-(This allows Drill-on-YARN to upload your original Drill install archive without rebuilding it.)</p>
-
-<p>Complete the following steps on the client machine:</p>
-
-<h3 id="create-a-master-directory">Create a Master Directory</h3>
-
-<p>To localize Drill files, the client tool requires a copy of the original Drill distribution archive and the location of your site directory. Assume all these components reside in a single “master directory” described as $MASTER_DIR . On the client machine, create the master directory, as shown:</p>
-
-<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">MASTER_DIR</span><span class="o">=</span>/path/to/master/dir
-<span class="nb">mkdir</span> <span class="nv">$MASTER_DIR</span>
-<span class="nb">cd</span> <span class="nv">$MASTER_DIR</span>
-</code></pre></div></div>
-
-<p>To build the master directory, you will:</p>
-
-<ul>
-  <li>Download the Drill archive to $MASTER_DRILL.</li>
-  <li>Unpack the archive to create $DRILL_HOME.</li>
-  <li>Create the site directory with the required configuration files.</li>
-</ul>
-
-<p>The following steps provide the instructions for building the master directory:</p>
-
-<h3 id="install-drill">Install Drill</h3>
-
-<p>These instructions assume you are installing Drill as part of the Drill-on-YARN
-setup. You can use your existing Drill 1.8 or later install as long as it meets the required criteria.</p>
-
-<p>Follow the Drill <a href="/docs/install-drill-introduction/">install directions</a> to install Drill on your client host. The install steps are different for YARN than for the Embedded or Cluster install.</p>
+<h2 id="prerequisites">Prerequisites</h2>
 
 <ol>
-  <li>Select a Drill version. The name is used in multiple places below. For convenience, define an environment variable for the name:
-    <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">DRILL_NAME</span><span class="o">=</span>apachedrillx.y.z
-</code></pre></div>    </div>
-    <p>Replace x.y.z with the selected version.</p>
-  </li>
-  <li>Download the Drill version.
-    <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>wget http://apache.mesi.com.ar/drill/drillx.y.z/<span class="nv">$DRILL_NAME</span>.tar.gz
-</code></pre></div>    </div>
-    <p>Or use</p>
-    <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-o</span> <span class="nv">$DRILL_NAME</span>.tar.gz <span class="se">\h</span>ttp://apache.mesi.com.ar/drill/drillx.y.z/<span class="nv">$DRILL_NAME</span>.tar.gz
-</code></pre></div>    </div>
-    <p>Again, replace x.y.z with the selected version.</p>
-  </li>
-  <li>Expand the Drill distribution into this folder to create the master directory
-    <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">tar</span> <span class="nt">-xzf</span> <span class="nv">$DRILL_NAME</span>.tar.gz
-</code></pre></div>    </div>
-  </li>
-  <li>For ease of following the remaining steps, call your expanded Drill folder $DRILL_HOME :
-    <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">DRILL_HOME</span><span class="o">=</span><span class="nv">$MASTER_DIR</span>/<span class="nv">$DRILL_NAME</span>
-</code></pre></div>    </div>
-  </li>
+  <li>A Python &gt;= 3.6 installation, including pip and optionally virtualenv.</li>
+  <li>A Drill installation where you have access to run queries and add new storage providers.  I’ll be running an embedded mode Drill 1.19.</li>
 </ol>
 
-<p>Your master directory should now contain the original Drill archive along with an expanded copy of that archive. You may now follow the instructions on how to create the site directory, see <a href="/docs/installing-drill-on-the-cluster/">Installing Drill on the Cluster</a>.</p>
-
-<p>Edit the configuration files as per the Drill install instructions, and the Drill-on-YARN instructions below. Note that, under YARN, you set the Drill memory limits in drill-on-yarn.sh instead of drillenv.sh.</p>
-
-<h3 id="configure-drill-on-yarn-using-existing-settings">Configure Drill-on-YARN using Existing Settings</h3>
+<h2 id="optional-set-up-a-virtualenv">(Optional) Set up a virtualenv</h2>
 
-<p>The next step is to configure Drill. If you have used Drill, start with Drill
-in distributed mode to learn which configuration options you need. YARN is an awkward
-environment in which to learn Drill configuration. These instructions assume that you have already worked out the required configuration on a separate Drill install. Let’s call that location $PROD_DRILL_HOME.</p>
-
-<p>From $PROD_DRILL_HOME, copy the following to corresponding locations in $DRILL_SITE:</p>
-
-<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cp</span> <span class="nv">$PROD_DRILL_HOME</span>/conf/drilloverride.conf <span class="nv">$DRILL_SITE</span>
-<span class="nb">cp</span> <span class="nv">$PROD_DRILL_HOME</span>/conf/drillenv.sh <span class="nv">$DRILL_SITE</span>
-<span class="nb">cp</span> <span class="nv">$PROD_DRILL_HOME</span>/jars/3rdparty/ yourJarName .jar <span class="nv">$DRILL_SITE</span>/jars
+<p>Create and activate a new virtualenv called “airflow”.  If needed, adjust the Python interpreter path and virtualenv target path arguments for your environment.</p>
+<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">VIRT_ENV_HOME</span><span class="o">=</span>~/.local/lib/virtualenv
+virtualenv <span class="nt">-p</span> /usr/bin/python3 <span class="nv">$VIRT_ENV_HOME</span>/airflow
+<span class="nb">.</span> <span class="nv">$VIRT_ENV_HOME</span>/airflow/activate
 </code></pre></div></div>
 
-<h3 id="create-your-cluster-configuration-file">Create Your Cluster Configuration File</h3>
-
-<p>The next step is to specify additional configuration which Drill-on-YARN requires to launch your Drill cluster.</p>
+<h2 id="install-airflow">Install Airflow</h2>
 
-<p>Start by editing $DRILL_SITE/drill-on-yarn.conf using your favorite editor. This file is in the same HOCON format used by drill-override.conf.</p>
-
-<p>Consult $DRILL_HOME/conf/drill-on-yarn-example.conf as an example. However,
-do not just copy the example file; instead, copy only the specific configuration settings that you need; the others will automatically take the Drill-defined
-default values.</p>
-
-<p>The following sections discuss each configuration option that you must set.</p>
-
-<h3 id="drill-resource-configuration">Drill Resource Configuration</h3>
-
-<p>The two key Drill memory parameters are Java heap size and direct memory. In a non-YARN cluster, you set these in $DRILL_HOME/conf/drillenv.sh as follows (shown with the
-default values):</p>
-
-<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">DRILL_MAX_DIRECT_MEMORY</span><span class="o">=</span><span class="s2">"8G"</span>
-<span class="nv">DRILL_HEAP</span><span class="o">=</span><span class="s2">"4G"</span>
+<p>If you’ve read their installation guide you’ll have seen that the Airflow project provides constraints files the pin the versions of its Python package dependencies to known-good versions.  In many cases things work fine without constraints but, for the sake of reproducibility, we’ll apply the constraints file applicable to our Python version using the script 0they provide for the purpose.</p>
+<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">AIRFLOW_VERSION</span><span class="o">=</span>2.1.2
+<span class="nv">PYTHON_VERSION</span><span class="o">=</span><span class="s2">"</span><span class="si">$(</span>python <span class="nt">--version</span> | <span class="nb">cut</span> <span class="nt">-d</span> <span class="s2">" "</span> <span class="nt">-f</span> 2 | <span class="nb">cut</span> <span class="nt">-d</span> <span class="s2">"."</span> <span class="nt">-f</span> 1-2<span class="si">)</span><span class="s2">"</span>
+<span class="nv">CONSTRAINT_URL</span><span class="o">=</span><span class="s2">"https://raw.githubusercontent.com/apache/airflow/constraints-</span><span class="k">${</span><span class="nv">AIRFLOW_VERSION</span><span class="k">}</span><span class="s2">/constraints-</span><span class="k">${</span><span class="nv">PYTHON_VERSION</span><span class="k">}</span><span class="s2">.txt"</span>
+pip <span class="nb">install</span> <span class="s2">"apache-0airflow==</span><span class="k">${</span><span class="nv">AIRFLOW_VERSION</span><span class="k">}</span><span class="s2">"</span> <span class="nt">--constraint</span> <span class="s2">"</span><span class="k">${</span><span class="nv">CONSTRAINT_URL</span><span class="k">}</span><span class="s2">"</span>
+pip <span class="nb">install </span>apache-airflow-providers-apache-drill
 </code></pre></div></div>
 
-<p>Drill-on-YARN uses a different mechanism to set these values. You set the values in
-drill-on-yarn.conf , then Drill-on-YARN copies the values into the environment variables
-when launching each Drillbit.</p>
-
-<div class="language-hocon highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nl">drillbit</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-      </span><span class="nl">heap</span><span class="p">:</span><span class="w"> </span><span class="s2">"4G"</span><span class="w">
-      </span><span class="nl">max-direct-memory</span><span class="p">:</span><span class="w"> </span><span class="s2">"8G"</span><span class="w">
-    </span><span class="p">}</span><span class="w">
-</span></code></pre></div></div>
-
-<p>To create the Drill-on-YARN setup, simply copy the values directly from your pre-YARN
-drillenv.sh file into the above configuration. (Drill-on-YARN copies the values back into
-the environment variables when launching Drill.)</p>
-
-<p>Next, determine the container size needed to run Drill under YARN. Typically this size
-is simply the sum of the heap and direct memory. However, if you are using custom libraries that perform their own memory allocation, or launch sub-processes, you must account for that
-memory usage as well. The YARN memory is expressed in MB. For example, for the default
-settings above, we need 12G of memory or 12288MB:</p>
+<h2 id="initialise-airflow">Initialise Airflow</h2>
 
-<div class="language-hocon highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nl">drillbit</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-       </span><span class="nl">memory-mb</span><span class="p">:</span><span class="w"> </span><span class="mi">6144</span><span class="w">
-   </span><span class="p">}</span><span class="w">
-</span></code></pre></div></div>
+<p>We’re just experimenting here so we’ll have Airflow set up a local SQLite database and add an admin user for ourselves.</p>
+<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Optional: change Airflow's data dir from the default of ~/airflow</span>
+<span class="nb">export </span><span class="nv">AIRFLOW_HOME</span><span class="o">=</span>~/Development/airflow
+<span class="nb">mkdir</span> <span class="nt">-p</span> ~/Development/airflow/
 
-<p>Finally, you must determine how much CPU to grant to Drill. Drill is a CPU intensive
-operation and greatly benefits from each additional core. However, you can limit Drill’s CPU usage under YARN by specifying the number of YARN virtual cores (vcores) to allocate to Drill:</p>
+<span class="c"># Create a new SQLite database for Airflow</span>
+airflow db init
 
-<div class="language-hocon highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nl">drillbit</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-       </span><span class="nl">vcores</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="w">
-</span><span class="p">}</span><span class="w">
-</span></code></pre></div></div>
+<span class="c"># Add an admin user</span>
+airflow <span class="nb">users </span>create <span class="se">\</span>
+	<span class="nt">--username</span> admin <span class="se">\</span>
+	<span class="nt">--firstname</span> FIRST_NAME <span class="se">\</span>
+	<span class="nt">--lastname</span> LAST_NAME <span class="se">\</span>
+	<span class="nt">--role</span> Admin <span class="se">\</span>
+	<span class="nt">--email</span> admin@example.org <span class="se">\</span>
+	<span class="nt">--password</span> admin
+</code></pre></div></div>
 
-<p>Note that in the above, each configuration setting was shown separately. In your actual file,
-however, they appear within a single group as follows:</p>
+<h2 id="configure-a-drill-connection">Configure a Drill connection</h2>
+
+<p>At this point we should have a working Airflow installation. Fire up the web UI with <code class="language-plaintext highlighter-rouge">airflow webserver</code> and browse to http://localhost:8080.  Click on Admin -&gt; Connections.  Add a new Drill connection called <code class="language-plaintext highlighter-rouge">drill_tutorial</code>, setting configuration according to your Drill environment.  If you’re using embedded mode Drill locally like I am then you’ll want the following co [...]
+
+<table>
+  <thead>
+    <tr>
+      <th>Setting</th>
+      <th>Value</th>
+    </tr>
+  </thead>
+  <tbody>
+    <tr>
+      <td>Conn Id</td>
+      <td>drill_tutorial</td>
+    </tr>
+    <tr>
+      <td>Conn Type</td>
+      <td>Drill</td>
+    </tr>
+    <tr>
+      <td>Host</td>
+      <td>localhost</td>
+    </tr>
+    <tr>
+      <td>Port</td>
+      <td>8047</td>
+    </tr>
+    <tr>
+      <td>Extra</td>
+      <td>{“dialect_driver”: “drill+sadrill”, “storage_plugin”: “dfs”}</td>
+    </tr>
+  </tbody>
+</table>
+
+<p>Note that the sqlalchemy-drill dialect and driver information must be specified in the <code class="language-plaintext highlighter-rouge">Extra</code> field.  See <a href="https://github.com/JohnOmernik/sqlalchemy-drill">the sqlalchemy-drill documentation</a> for more information about its configuration.</p>
+
+<p>After you’ve saved the new connection you can shut the Airflow web UI down with ctrl+c.</p>
+
+<h2 id="explore-the-source-data">Explore the source data</h2>
+
+<p>If you’ve built ETLs before you know that you can’t build anything until you’ve come to grips with the source data.  Let’s obtain a sample of the first 1m rows from the source take a look.</p>
+
+<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>curl <span class="nt">-s</span> https://data.cdc.gov/api/views/vbim-akqf/rows.csv<span class="se">\?</span>accessType<span class="se">\=</span>DOWNLOAD | pv <span class="nt">-lSs</span> 1000000 <span class="o">&gt;</span> /tmp/cdc_covid_cases.csvh
+</code></pre></div></div>
 
-<div class="language-hocon highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nl">drillbit</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-       </span><span class="nl">heap</span><span class="p">:</span><span class="w"> </span><span class="s2">"4G"</span><span class="w">
-       </span><span class="nl">max-direct-memory</span><span class="p">:</span><span class="w"> </span><span class="s2">"8G"</span><span class="w">
-       </span><span class="nl">memory-mb</span><span class="p">:</span><span class="w"> </span><span class="mi">6144</span><span class="w">
-       </span><span class="nl">vcores</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="w">
-     </span><span class="p">}</span><span class="w">
-</span></code></pre></div></div>
+<p>You can replace <code class="language-plaintext highlighter-rouge">pv -lSs 1000000</code> above with <code class="language-plaintext highlighter-rouge">head -n1000000</code> or just drop it if you don’t mind fetching the whole file.  Downloading it with a web browser will also work fine.  Note that for a default Drill installation, saving with the file extension <code class="language-plaintext highlighter-rouge">.csvh</code> does matter for what follows because it will set <code class [...]
+
+<p>It’s time to break out Drill.  Instead of dumping my entire interactive SQL session here, I’ll just list queries that I ran and the corresponding observations that I made.</p>
+<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">select</span> <span class="o">*</span> <span class="k">from</span> <span class="n">dfs</span><span class="p">.</span><span class="n">tmp</span><span class="p">.</span><span class="nv">`cdc_covid_case.csvh`</span>
+<span class="c1">-- 1. In date fields, the empty string '' can be converted to SQL NULL</span>
+<span class="c1">-- 2. Age groups can be split into two numerical fields, with the final</span>
+<span class="c1">--    group being unbounded above.</span>
+
+<span class="k">select</span> <span class="n">age_group</span><span class="p">,</span> <span class="k">count</span><span class="p">()</span> <span class="k">from</span> <span class="n">dfs</span><span class="p">.</span><span class="n">tmp</span><span class="p">.</span><span class="nv">`cdc_covid_case.csvh`</span> <span class="k">group</span> <span class="k">by</span> <span class="n">age_group</span><span class="p">;</span>
+<span class="k">select</span> <span class="n">sex</span><span class="p">,</span> <span class="k">count</span><span class="p">()</span> <span class="k">from</span> <span class="n">dfs</span><span class="p">.</span><span class="n">tmp</span><span class="p">.</span><span class="nv">`cdc_covid_case.csvh`</span> <span class="k">group</span> <span class="k">by</span> <span class="n">sex</span><span class="p">;</span>
+<span class="k">select</span> <span class="n">race_ethnicity_combined</span><span class="p">,</span> <span class="k">count</span><span class="p">()</span> <span class="k">from</span> <span class="n">dfs</span><span class="p">.</span><span class="n">tmp</span><span class="p">.</span><span class="nv">`cdc_covid_case.csvh`</span> <span class="k">group</span> <span class="k">by</span> <span class="n">race_ethnicity_combined</span><span class="p">;</span>
+<span class="c1">-- 3. The string 'Missing' can be transformed to SQL NULL</span>
+<span class="c1">-- 4. I should really uncover what the difference between 'NA' and 'Missing' is</span>
+<span class="c1">-- 	  but for this tutorial 'NA' is going to transformed to NULL too</span>
+<span class="c1">-- 5. race_ethnicity_combined could possibly be split into two fields but we'll</span>
+<span class="c1">--    leave it as is for this tutorial.</span>
+
+<span class="k">select</span> <span class="n">hosp_yn</span><span class="p">,</span> <span class="k">count</span><span class="p">()</span> <span class="k">from</span> <span class="n">dfs</span><span class="p">.</span><span class="n">tmp</span><span class="p">.</span><span class="nv">`cdc_covid_case.csvh`</span> <span class="k">group</span> <span class="k">by</span> <span class="n">hosp_yn</span><span class="p">;</span>
+<span class="c1">-- 6. In addition to 'Missing, indicator variables have three possible values</span>
+<span class="c1">--    so they cannot be transformed to nullable booleans</span>
+</code></pre></div></div>
 
-<h3 id="drillbit-cluster-configuration">Drillbit Cluster Configuration</h3>
+<p>So… this is what it feels like to be a data scientist 😆.  Jokes aside, we learned a lot of neccesary stuff pretty quickly there and it’s easy to see that we could have carried on for a long way, testing ranges, casts and regexps and even creating reports if we didn’t reign ourselves in.  Let’s skip forward to the ETL statement I ended up creating after exploring.</p>
+
+<h2 id="develop-a-ctas-create-table-as-select-etl">Develop a CTAS (Create Table As Select) ETL</h2>
+
+<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">drop</span> <span class="k">table</span> <span class="n">if</span> <span class="k">exists</span> <span class="n">dfs</span><span class="p">.</span><span class="n">tmp</span><span class="p">.</span><span class="n">cdc_covid_cases</span><span class="p">;</span>
+
+<span class="k">create</span> <span class="k">table</span> <span class="n">dfs</span><span class="p">.</span><span class="n">tmp</span><span class="p">.</span><span class="n">cdc_covid_cases</span> <span class="k">as</span>
+<span class="k">with</span> <span class="n">missing2null</span> <span class="k">as</span> <span class="p">(</span>
+<span class="k">select</span>
+	<span class="k">nullif</span><span class="p">(</span><span class="n">cdc_case_earliest_dt</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> <span class="n">cdc_case_earliest_dt</span><span class="p">,</span>
+	<span class="k">nullif</span><span class="p">(</span><span class="n">cdc_report_dt</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> <span class="n">cdc_report_dt</span><span class="p">,</span>
+	<span class="k">nullif</span><span class="p">(</span><span class="n">pos_spec_dt</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> <span class="n">pos_spec_dt</span><span class="p">,</span>
+	<span class="k">nullif</span><span class="p">(</span><span class="n">onset_dt</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> <span class="n">onset_dt</span><span class="p">,</span>
+	<span class="k">case</span> <span class="k">when</span> <span class="n">current_status</span> <span class="k">not</span> <span class="k">in</span> <span class="p">(</span><span class="s1">'Missing'</span><span class="p">,</span> <span class="s1">'NA'</span><span class="p">)</span> <span class="k">then</span> <span class="n">current_status</span> <span class="k">end</span> <span class="n">current_status</span><span class="p">,</span>
+	<span class="k">case</span> <span class="k">when</span> <span class="n">sex</span> <span class="k">not</span> <span class="k">in</span> <span class="p">(</span><span class="s1">'Missing'</span><span class="p">,</span> <span class="s1">'NA'</span><span class="p">)</span> <span class="k">then</span> <span class="n">sex</span> <span class="k">end</span> <span class="n">sex</span><span class="p">,</span>
+	<span class="k">case</span> <span class="k">when</span> <span class="n">age_group</span> <span class="k">not</span> <span class="k">in</span> <span class="p">(</span><span class="s1">'Missing'</span><span class="p">,</span> <span class="s1">'NA'</span><span class="p">)</span> <span class="k">then</span> <span class="n">age_group</span> <span class="k">end</span> <span class="n">age_group</span><span class="p">,</span>
+	<span class="k">case</span> <span class="k">when</span> <span class="n">race_ethnicity_combined</span> <span class="k">not</span> <span class="k">in</span> <span class="p">(</span><span class="s1">'Missing'</span><span class="p">,</span> <span class="s1">'NA'</span><span class="p">)</span> <span class="k">then</span> <span class="n">race_ethnicity_combined</span> <span class="k">end</span> <span class="n">race_ethnicity_combined</span><span class="p">,</span>
+	<span class="k">case</span> <span class="k">when</span> <span class="n">hosp_yn</span> <span class="k">not</span> <span class="k">in</span> <span class="p">(</span><span class="s1">'Missing'</span><span class="p">,</span> <span class="s1">'NA'</span><span class="p">)</span> <span class="k">then</span> <span class="n">hosp_yn</span> <span class="k">end</span> <span class="n">hosp_yn</span><span class="p">,</span>
+	<span class="k">case</span> <span class="k">when</span> <span class="n">icu_yn</span> <span class="k">not</span> <span class="k">in</span> <span class="p">(</span><span class="s1">'Missing'</span><span class="p">,</span> <span class="s1">'NA'</span><span class="p">)</span> <span class="k">then</span> <span class="n">icu_yn</span> <span class="k">end</span> <span class="n">icu_yn</span><span class="p">,</span>
+	<span class="k">case</span> <span class="k">when</span> <span class="n">death_yn</span> <span class="k">not</span> <span class="k">in</span> <span class="p">(</span><span class="s1">'Missing'</span><span class="p">,</span> <span class="s1">'NA'</span><span class="p">)</span> <span class="k">then</span> <span class="n">death_yn</span> <span class="k">end</span> <span class="n">death_yn</span><span class="p">,</span>
+	<span class="k">case</span> <span class="k">when</span> <span class="n">medcond_yn</span> <span class="k">not</span> <span class="k">in</span> <span class="p">(</span><span class="s1">'Missing'</span><span class="p">,</span> <span class="s1">'NA'</span><span class="p">)</span> <span class="k">then</span> <span class="n">medcond_yn</span> <span class="k">end</span> <span class="n">medcond_yn</span>
+<span class="k">from</span>
+	<span class="n">dfs</span><span class="p">.</span><span class="n">tmp</span><span class="p">.</span><span class="nv">`cdc_covid_cases.csvh`</span><span class="p">),</span>
+<span class="n">age_parse</span> <span class="k">as</span> <span class="p">(</span>
+<span class="k">select</span> 
+	<span class="o">*</span><span class="p">,</span>
+	<span class="n">regexp_replace</span><span class="p">(</span><span class="n">age_group</span><span class="p">,</span> <span class="s1">'([0-9]+)[ </span><span class="se">\-\+</span><span class="s1">]+([0-9]*) Years'</span><span class="p">,</span> <span class="s1">'$1'</span><span class="p">)</span> <span class="n">age_min_incl</span><span class="p">,</span>
+	<span class="n">regexp_replace</span><span class="p">(</span><span class="n">age_group</span><span class="p">,</span> <span class="s1">'([0-9]+)[ </span><span class="se">\-\+</span><span class="s1">]+([0-9]*) Years'</span><span class="p">,</span> <span class="s1">'$2'</span><span class="p">)</span> <span class="n">age_max_excl</span>
+<span class="k">from</span>
+<span class="n">missing2null</span><span class="p">)</span>
+<span class="k">select</span>
+	<span class="k">cast</span><span class="p">(</span><span class="n">cdc_case_earliest_dt</span> <span class="k">as</span> <span class="nb">date</span><span class="p">)</span> <span class="n">cdc_case_earliest_dt</span><span class="p">,</span>
+	<span class="k">cast</span><span class="p">(</span><span class="n">cdc_report_dt</span> <span class="k">as</span> <span class="nb">date</span><span class="p">)</span> <span class="n">cdc_report_dt</span><span class="p">,</span>
+	<span class="k">cast</span><span class="p">(</span><span class="n">pos_spec_dt</span> <span class="k">as</span> <span class="nb">date</span><span class="p">)</span> <span class="n">pos_spec_dt</span><span class="p">,</span>
+	<span class="k">cast</span><span class="p">(</span><span class="n">onset_dt</span> <span class="k">as</span> <span class="nb">date</span><span class="p">)</span> <span class="n">onset_dt</span><span class="p">,</span>
+	<span class="n">current_status</span><span class="p">,</span>
+	<span class="n">sex</span><span class="p">,</span>
+	<span class="n">age_group</span><span class="p">,</span>
+	<span class="k">cast</span><span class="p">(</span><span class="n">age_min_incl</span> <span class="k">as</span> <span class="nb">float</span><span class="p">)</span> <span class="n">age_min_incl</span><span class="p">,</span>
+	<span class="mi">1</span> <span class="o">+</span> <span class="k">cast</span><span class="p">(</span><span class="k">case</span> <span class="k">when</span> <span class="n">age_max_excl</span> <span class="o">=</span> <span class="s1">''</span> <span class="k">then</span> <span class="s1">'Infinity'</span> <span class="k">else</span> <span class="n">age_max_excl</span> <span class="k">end</span> <span class="k">as</span> <span class="nb">float</span><span class="p">)</span> <span class [...]
+	<span class="n">race_ethnicity_combined</span><span class="p">,</span>
+	<span class="n">hosp_yn</span><span class="p">,</span>
+	<span class="n">icu_yn</span><span class="p">,</span>
+	<span class="n">death_yn</span><span class="p">,</span>
+	<span class="n">medcond_yn</span>
+<span class="k">from</span>
+	<span class="n">age_parse</span><span class="p">;</span>
+</code></pre></div></div>
 
-<p>Drill-on-YARN uses the concept of a “cluster group” of Drillbits to describe the set of Drillbits to launch. A group can be one of three kinds:</p>
+<p>That’s a substantial SQL statement but it covers a fair amount of transformation work and takes us all the way to an output of one (or more) Parquet files, efficient and clean representations of our dataset that are well suited for analytical or ML work.  Consider what we have <em>not</em> done to get this far.</p>
 
 <ul>
-  <li>Basic: launches drillbits anywhere in the YARN cluster where a container is available.</li>
-  <li>Labeled: Uses YARN labels to identify the set of nodes that should run Drill.</li>
+  <li>We have no configuration hidden in the checkboxes and wizards of an ETL package,</li>
+  <li>we have not had to add another language to the SQL we used to explore and test trasformations at the outset and</li>
+  <li>we have not worried about performance or how to parallelise our data flow because we’ve left that aspect to Drill.</li>
 </ul>
 
-<p>This section describes how to create a basic group suitable for testing. See later sections for the type.</p>
-
-<p>For a basic group, you need only specify the group type and the number of Drillbits to launch:</p>
-
-<div class="language-hocon highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nl">cluster</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
-    </span><span class="p">{</span><span class="w">
-      </span><span class="nl">name</span><span class="p">:</span><span class="w"> </span><span class="s2">"mypool"</span><span class="w">
-      </span><span class="nl">type</span><span class="p">:</span><span class="w"> </span><span class="s2">"basic"</span><span class="w">
-      </span><span class="nl">count</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="w">
-   </span><span class="p">}</span><span class="w">
-</span><span class="p">]</span><span class="w">
-</span></code></pre></div></div>
-
-<p>The above syntax says that pools is a list that contains a series of pool objects contained in
-braces. In this release, however, Drill supports just one pool.</p>
-
-<h3 id="zookeeper-configuration">ZooKeeper Configuration</h3>
-
-<p>Drill uses ZooKeeper to coordinate between Drillbits. When run under YARN, the Drill
-Application Master uses ZooKeeper to monitor Drillbit health. Drill-on-YARN reads your
-$DRILL_SITE/drilloverride.conf file for ZooKeeper settings.</p>
-
-<h3 id="configure-the-drill-distribution-archive">Configure the Drill Distribution Archive</h3>
-
-<p>Next configure the name of the Drill distribution archive that you downloaded earlier.</p>
-
-<div class="language-hocon highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nl">drill-install</span><span class="p">:</span><span class="w">  </span><span class="p">{</span><span class="w">
-       </span><span class="nl">client-path</span><span class="p">:</span><span class="w"> </span><span class="s2">"archive-path"</span><span class="w">
-     </span><span class="p">}</span><span class="w">
-</span></code></pre></div></div>
-
-<p>Where archive-path is the location of your archive. In our example, this is $MASTER_DIR/apache-drill.x.y.z.tar.gz. Use the full name of the master directory, not the environment variable. (Substitute your actual version number for x.y.z.)</p>
+<p>In addition, while I’ve yet to hear of SQL winning a language beauty contest, our ETL code feels obvious, self-contained and maintainable.  I’d have no qualms with reviewing a line-by-line diff of this code to isolate a change after a hiatus of months or years, nor any with pointing a SQL-conversant colleague at it with little or even no introduction.  The veteran coder knows that these mundane advantages can swing an extended campaign.</p>
+
+<p>To complete this step, save the CTAS script above into a new file at <code class="language-plaintext highlighter-rouge">$AIRFLOW_HOME/dags/cdc_covid_cases.drill.sql</code>.  The double file extension is just a little convention I use to indicate both the dialect and the language of my SQL scripts, and entirely optional if it’s not to your taste.</p>
+
+<h2 id="develop-an-airflow-dag">Develop an Airflow DAG</h2>
+
+<p>The definition of our DAG will reside in a single Python script.  The complete listing of that script follows immediately, with my commentary continuing as inline source code comments.  You should save this script to a new file at <code class="language-plaintext highlighter-rouge">$AIRFLOW_HOME/dags/drill_tutorial.py</code>.</p>
+
+<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="s">'''
+Uses the Apache Drill provider to transform, load and report from COVID case
+data downloaded from the website of the CDC.
+
+Data source citatation.
+
+Centers for Disease Control and Prevention, COVID-19 Response. COVID-19 Case
+Surveillance Public Data Access, Summary, and Limitations.
+
+https://data.cdc.gov/Case-Surveillance/COVID-19-Case-Surveillance-Public-Use-Data/vbim-akqf
+'''</span>
+<span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">timedelta</span>
+
+<span class="kn">from</span> <span class="nn">airflow</span> <span class="kn">import</span> <span class="n">DAG</span>
+<span class="c1"># We'll use a PythonOperator to stage COVID-19 CSV file from the CDC web site
+</span><span class="kn">from</span> <span class="nn">airflow.operators.python</span> <span class="kn">import</span> <span class="n">PythonOperator</span>
+<span class="c1"># We'll use DrillOperators to kick off queries against the COVID-19 data
+</span><span class="kn">from</span> <span class="nn">airflow.providers.apache.drill.operators.drill</span> <span class="kn">import</span> <span class="n">DrillOperator</span>
+<span class="kn">from</span> <span class="nn">airflow.utils.dates</span> <span class="kn">import</span> <span class="n">days_ago</span>
+<span class="c1"># We can assume requests is present because sqlalchemy-drill requires it
+</span><span class="kn">import</span> <span class="nn">requests</span>
+<span class="c1"># These args will get passed on to each operator
+# You can override them on a per-task basis during operator initialization
+</span><span class="n">default_args</span> <span class="o">=</span> <span class="p">{</span>
+    <span class="s">'owner'</span><span class="p">:</span> <span class="s">'Joe Public'</span><span class="p">,</span>
+    <span class="s">'depends_on_past'</span><span class="p">:</span> <span class="bp">False</span><span class="p">,</span>
+    <span class="s">'email'</span><span class="p">:</span> <span class="p">[</span><span class="s">'joe@public.com'</span><span class="p">],</span>
+    <span class="s">'email_on_failure'</span><span class="p">:</span> <span class="bp">False</span><span class="p">,</span>
+    <span class="s">'email_on_retry'</span><span class="p">:</span> <span class="bp">False</span><span class="p">,</span>
+    <span class="s">'retries'</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
+    <span class="s">'retry_delay'</span><span class="p">:</span> <span class="n">timedelta</span><span class="p">(</span><span class="n">minutes</span><span class="o">=</span><span class="mi">5</span><span class="p">),</span>
+<span class="p">}</span>
+
+
+<span class="k">def</span> <span class="nf">stage_from_www</span><span class="p">(</span><span class="n">src_url</span><span class="p">,</span> <span class="n">tgt_path</span><span class="p">):</span>
+    <span class="s">'''
+    Uses the Requests lib to GET case surveillance data from CDC to a local
+    path.  If you're in a distributed environment you'll want to replace the
+    local filesystem with HDFS, S3, etc.  Another option is to configure
+    Drill's HTTP storage plugin to fetch the data directly from the source.
+    '''</span>
+    <span class="n">resp</span> <span class="o">=</span> <span class="n">requests</span><span class="p">.</span><span class="n">get</span><span class="p">(</span>
+        <span class="n">src_url</span><span class="p">,</span>
+        <span class="n">stream</span><span class="o">=</span><span class="bp">True</span>  <span class="c1"># don't buffer big datasets in memory
+</span>    <span class="p">)</span>
+    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">tgt_path</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+        <span class="n">f</span><span class="p">.</span><span class="n">write</span><span class="p">(</span><span class="n">resp</span><span class="p">.</span><span class="n">content</span><span class="p">)</span>
+
+
+<span class="k">with</span> <span class="n">DAG</span><span class="p">(</span>
+    <span class="s">'drill_tutorial'</span><span class="p">,</span>
+    <span class="n">default_args</span><span class="o">=</span><span class="n">default_args</span><span class="p">,</span>
+    <span class="n">description</span><span class="o">=</span><span class="s">'Drill tutorial that loads COVID-19 case data from the CDC.'</span><span class="p">,</span>
+    <span class="n">schedule_interval</span><span class="o">=</span><span class="n">timedelta</span><span class="p">(</span><span class="n">weeks</span><span class="o">=</span><span class="mi">2</span><span class="p">),</span>  <span class="c1"># source is updated every two weeks
+</span>    <span class="n">start_date</span><span class="o">=</span><span class="n">days_ago</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span>
+<span class="p">)</span> <span class="k">as</span> <span class="n">dag</span><span class="p">:</span>
+
+    <span class="c1"># Use this module's docstring for DAG's documentation (visible in the web UI)
+</span>    <span class="n">dag</span><span class="p">.</span><span class="n">doc_md</span> <span class="o">=</span> <span class="n">__doc__</span>
+
+    <span class="c1"># First task is a PythonOperator to GET the CSV data from the CDC website
+</span>    <span class="n">stage_from_www_task</span> <span class="o">=</span> <span class="n">PythonOperator</span><span class="p">(</span>
+        <span class="n">task_id</span><span class="o">=</span><span class="s">'stage_from_www'</span><span class="p">,</span>
+        <span class="n">python_callable</span><span class="o">=</span><span class="n">stage_from_www</span><span class="p">,</span>
+        <span class="n">op_kwargs</span><span class="o">=</span> <span class="p">{</span>
+            <span class="s">'src_url'</span><span class="p">:</span> <span class="s">'https://data.cdc.gov/api/views/vbim-akqf/rows.csv?accessType=DOWNLOAD'</span><span class="p">,</span>
+            <span class="s">'tgt_path'</span><span class="p">:</span> <span class="s">'/tmp/cdc_covid_cases.csvh'</span>
+        <span class="p">}</span>
+    <span class="p">)</span>
+
+    <span class="n">stage_from_www</span><span class="p">.</span><span class="n">doc</span> <span class="o">=</span> <span class="s">'Download COVID case CSV data from the CDC using '</span> \
+        <span class="s">'an HTTP GET'</span>
+
+    <span class="c1"># Second task is a DrillOperator the executes our CTAS ETL from an external
+</span>    <span class="c1"># script.  It's also possible to specify inline SQL, and to split  this
+</span>    <span class="c1"># multi-statement SQL script across tasks e.g. if you prefer to have
+</span>    <span class="c1"># the inital DROP TABLE be a separate task.
+</span>    <span class="n">ctas_etl_task</span> <span class="o">=</span> <span class="n">DrillOperator</span><span class="p">(</span>
+        <span class="n">drill_conn_id</span><span class="o">=</span><span class="s">'drill_tutorial'</span><span class="p">,</span>
+        <span class="n">task_id</span><span class="o">=</span><span class="s">'ctas_etl'</span><span class="p">,</span>
+        <span class="n">sql</span><span class="o">=</span><span class="s">'cdc_covid_cases.drill.sql'</span>
+    <span class="p">)</span>
+
+    <span class="n">ctas_etl_task</span><span class="p">.</span><span class="n">doc</span> <span class="o">=</span> <span class="s">'Recreate dfs.tmp.cdc_covid_cases using CTAS'</span>
+
+    <span class="c1"># Third task is a DrillOperator that produces a daily case count report.
+</span>    <span class="c1"># We just write the report back out to dfs.tmp as human-readable CSV, but
+</span>    <span class="c1"># you should imagine using Airflow to route and deliver it in any number
+</span>    <span class="c1"># of ways.
+</span>    <span class="n">daily_count_report_task</span> <span class="o">=</span> <span class="n">DrillOperator</span><span class="p">(</span>
+        <span class="n">drill_conn_id</span><span class="o">=</span><span class="s">'drill_tutorial'</span><span class="p">,</span>
+        <span class="n">task_id</span><span class="o">=</span><span class="s">'drill_report'</span><span class="p">,</span>
+        <span class="n">sql</span><span class="o">=</span><span class="s">'''
+        set `store.format` = 'csv';
+
+        drop table if exists dfs.tmp.cdc_daily_counts;
+
+        create table dfs.tmp.cdc_daily_counts as
+        select
+            cdc_case_earliest_dt,
+            count(*) as case_count
+        from
+            dfs.tmp.cdc_covid_cases
+        group by
+            cdc_case_earliest_dt
+        order by
+            cdc_case_earliest_dt;
+        '''</span>
+    <span class="p">)</span>
+
+    <span class="n">daily_count_report_task</span><span class="p">.</span><span class="n">doc</span> <span class="o">=</span> <span class="s">'Report daily case counts to CSV'</span>
+
+    <span class="c1"># Specify the edges of the DAG, i.e. the task dependencies
+</span>    <span class="n">stage_from_www_task</span> <span class="o">&gt;&gt;</span> <span class="n">ctas_etl_task</span> <span class="o">&gt;&gt;</span> <span class="n">daily_count_report_task</span>
+<span class="n">age_parse</span><span class="p">;</span>
+</code></pre></div></div>
 
-<h3 id="select-the-distributed-file-system-location">Select the Distributed File System Location</h3>
+<h2 id="manually-launch-the-airflow-dag">Manually launch the Airflow DAG</h2>
 
-<p>Drill copies your archive onto your distributed file system (such as HDFS) in a location you
-provide. Set the DFS options as follows:</p>
+<p>You can harmlessly test the Python syntax of a DAG script by running it through the interpreter.</p>
+<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>python3 <span class="nv">$AIRFLOW_HOME</span>/dags/drill-tutorial.py
+</code></pre></div></div>
 
-<div class="language-hocon highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nl">dfs</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w">
-       </span><span class="nl">connection</span><span class="p">:</span><span class="w"> </span><span class="s2">"hdfs://localhost/"</span><span class="w">
-       </span><span class="nl">dir</span><span class="p">:</span><span class="w"> </span><span class="s2">"/user/drill"</span><span class="w">
-   </span><span class="p">}</span><span class="w">
-</span></code></pre></div></div>
+<p>If all is well Python will exit without errors and you can proceed to ensure that your Drillbit is running, then launch a test run of you DAG using airflow.</p>
+<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>airflow dags <span class="nb">test </span>drill_tutorial <span class="si">$(</span><span class="nb">date</span> +%Y-%m-%d<span class="si">)</span>
+</code></pre></div></div>
 
-<p>Drill can read the connection information from your Hadoop configuration files ($HADOOP_HOME/etc/hadoop/coresite.xml ). Or, you can specify a connection directly in the Drill cluster configuration file using the connection attribute. Then, choose a DFS file system location. Drill uses “ /user/drill ” by default.</p>
+<p>After a delay while the COVID case dataset is downloaded to your machine you should start to see all of the queries executed on Drill logged to your console by sqlalchemy-drill.  The DAG execution should have produced two outputs.</p>
 
-<h3 id="hadoop-location">Hadoop Location</h3>
+<ol>
+  <li>A Parquet dataset at <code class="language-plaintext highlighter-rouge">$TMPDIR/cdc_covid_cases</code> at the individual case grain.</li>
+  <li>A CSV daily surveilled case count report at <code class="language-plaintext highlighter-rouge">$TMPDIR/cdc_daily_counts</code>.</li>
+</ol>
 
-<p>Apache Drill users must tell Drill-on-YARN the location of your Hadoop install. Set the
-HADOOP_HOME environment variable in $DRILL_SITE/drillenv.sh to point to your Hadoop installation:</p>
+<p>Try some OLAP in Drill with the first and take a look at the second in a spreadsheet or text editor.</p>
 
-<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">HADOOP_HOME</span><span class="o">=</span> /path/to/hadoop-home
-</code></pre></div></div>
+<p>Congratulations, you built an ETL using Apache Airflow and Apache Drill!</p>
 
-<p>This assumes that Hadoop configuration is in the default location:</p>
+<h2 id="next-steps">Next steps</h2>
 
-<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$HADOOP_HOME</span>/etc/hadoop
-</code></pre></div></div>
+<ul>
+  <li><a href="https://airflow.apache.org/docs/apache-airflow/1.10.1/scheduler.html">Read about Airflow scheduling</a> and run the scheduler as a daemon to have your job run automatically.</li>
+  <li>Try adapting the DAG here to work with other data sources.  If you have databases, files and web services in your own environment those will be natural choices, otherwise you can look around online for more public datasets and APIs.</li>
+  <li>Instead of replacing the target dataset, try adding new partitions to an existing dataset by aiming CTAS at date-labelled subdirectories.</li>
+  <li>Keep an eye out for data crunching steps in existing workflows, including those which are not strictly ETL pipelines, where Drill could shoulder some of the load.</li>
+</ul>
 
-<p>If your configuration is elsewhere, set HADOOP_CONF_DIR instead:</p>
+<p>Thanks for joining us for this tutorial and happy Drilling!</p>
 
-<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">HADOOP_CONF_DIR</span><span class="o">=</span> /path/to/hadoop-config
-</code></pre></div></div>
 
     
       
         <div class="doc-nav">
   
-  <span class="previous-toc"><a href="/docs/drill-on-yarn-introduction/">← Drill-on-YARN Introduction</a></span><span class="next-toc"><a href="/docs/launch-drill-under-yarn/">Launch Drill Under YARN →</a></span>
+  <span class="previous-toc"><a href="/docs/analyzing-data-using-window-functions/">← Analyzing Data Using Window Functions</a></span><span class="next-toc"><a href="/docs/drill-on-yarn/">Drill-on-YARN →</a></span>
 </div>
 
     
diff --git a/docs/order-by-clause/index.html b/docs/order-by-clause/index.html
index 69f3f15..b0f2799 100644
--- a/docs/order-by-clause/index.html
+++ b/docs/order-by-clause/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/parquet-filter-pushdown/index.html b/docs/parquet-filter-pushdown/index.html
index c8c2194..b79e15e 100644
--- a/docs/parquet-filter-pushdown/index.html
+++ b/docs/parquet-filter-pushdown/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/parquet-format/index.html b/docs/parquet-format/index.html
index ec4a89b..71bedb5 100644
--- a/docs/parquet-format/index.html
+++ b/docs/parquet-format/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/partition-by-clause/index.html b/docs/partition-by-clause/index.html
index 94f5e8a..ad40f16 100644
--- a/docs/partition-by-clause/index.html
+++ b/docs/partition-by-clause/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/partition-pruning-introduction/index.html b/docs/partition-pruning-introduction/index.html
index d668807..635f328 100644
--- a/docs/partition-pruning-introduction/index.html
+++ b/docs/partition-pruning-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/partition-pruning/index.html b/docs/partition-pruning/index.html
index 33c8b8f..b0f5f26 100644
--- a/docs/partition-pruning/index.html
+++ b/docs/partition-pruning/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/performance-tuning-introduction/index.html b/docs/performance-tuning-introduction/index.html
index d508c19..dbda6dd 100644
--- a/docs/performance-tuning-introduction/index.html
+++ b/docs/performance-tuning-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/performance-tuning-reference/index.html b/docs/performance-tuning-reference/index.html
index 2bd0d87..c8b2ac1 100644
--- a/docs/performance-tuning-reference/index.html
+++ b/docs/performance-tuning-reference/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/performance-tuning/index.html b/docs/performance-tuning/index.html
index a27e043..d12060b 100644
--- a/docs/performance-tuning/index.html
+++ b/docs/performance-tuning/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/performance/index.html b/docs/performance/index.html
index b1047cb..46232af 100644
--- a/docs/performance/index.html
+++ b/docs/performance/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/persistent-configuration-storage/index.html b/docs/persistent-configuration-storage/index.html
index b7cd306..a2c1600 100644
--- a/docs/persistent-configuration-storage/index.html
+++ b/docs/persistent-configuration-storage/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/phonetic-functions/index.html b/docs/phonetic-functions/index.html
index 24e8298..82fd9bd 100644
--- a/docs/phonetic-functions/index.html
+++ b/docs/phonetic-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/physical-operators/index.html b/docs/physical-operators/index.html
index dfbbaa1..60b4daf 100644
--- a/docs/physical-operators/index.html
+++ b/docs/physical-operators/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/planning-and-execution-options/index.html b/docs/planning-and-execution-options/index.html
index 086ba9e..cbb7d04 100644
--- a/docs/planning-and-execution-options/index.html
+++ b/docs/planning-and-execution-options/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/plugin-configuration-basics/index.html b/docs/plugin-configuration-basics/index.html
index 836da29..c39da88 100644
--- a/docs/plugin-configuration-basics/index.html
+++ b/docs/plugin-configuration-basics/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/ports-used-by-drill/index.html b/docs/ports-used-by-drill/index.html
index 61b049e..78e8250 100644
--- a/docs/ports-used-by-drill/index.html
+++ b/docs/ports-used-by-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/project-bylaws/index.html b/docs/project-bylaws/index.html
index 87298b4..4fbaa00 100644
--- a/docs/project-bylaws/index.html
+++ b/docs/project-bylaws/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/queries-that-qualify-for-index-based-query-plans/index.html b/docs/queries-that-qualify-for-index-based-query-plans/index.html
index c89fdff..1b4ee70 100644
--- a/docs/queries-that-qualify-for-index-based-query-plans/index.html
+++ b/docs/queries-that-qualify-for-index-based-query-plans/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/query-audit-logging/index.html b/docs/query-audit-logging/index.html
index 15d3602..b198392 100644
--- a/docs/query-audit-logging/index.html
+++ b/docs/query-audit-logging/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/query-data-introduction/index.html b/docs/query-data-introduction/index.html
index 1fe64f4..e7ba327 100644
--- a/docs/query-data-introduction/index.html
+++ b/docs/query-data-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/query-data/index.html b/docs/query-data/index.html
index 50e5f4c..f7e3892 100644
--- a/docs/query-data/index.html
+++ b/docs/query-data/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/query-directory-functions/index.html b/docs/query-directory-functions/index.html
index d26380c..14d5501 100644
--- a/docs/query-directory-functions/index.html
+++ b/docs/query-directory-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/query-plans-and-tuning-introduction/index.html b/docs/query-plans-and-tuning-introduction/index.html
index ea7b5b2..a867fb7 100644
--- a/docs/query-plans-and-tuning-introduction/index.html
+++ b/docs/query-plans-and-tuning-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/query-plans-and-tuning/index.html b/docs/query-plans-and-tuning/index.html
index da2f2d2..6de8bcd 100644
--- a/docs/query-plans-and-tuning/index.html
+++ b/docs/query-plans-and-tuning/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/query-plans/index.html b/docs/query-plans/index.html
index c13b683..7bab13a 100644
--- a/docs/query-plans/index.html
+++ b/docs/query-plans/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/query-profile-column-descriptions/index.html b/docs/query-profile-column-descriptions/index.html
index d33d3d1..ce65e5e 100644
--- a/docs/query-profile-column-descriptions/index.html
+++ b/docs/query-profile-column-descriptions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/query-profiles/index.html b/docs/query-profiles/index.html
index b9c730d..cf4865f 100644
--- a/docs/query-profiles/index.html
+++ b/docs/query-profiles/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/query-stages/index.html b/docs/query-stages/index.html
index e61defe..a263bbe 100644
--- a/docs/query-stages/index.html
+++ b/docs/query-stages/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-a-file-system-introduction/index.html b/docs/querying-a-file-system-introduction/index.html
index c5b99d0..0b2228c 100644
--- a/docs/querying-a-file-system-introduction/index.html
+++ b/docs/querying-a-file-system-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-a-file-system/index.html b/docs/querying-a-file-system/index.html
index 09a45cb..e1f23dd 100644
--- a/docs/querying-a-file-system/index.html
+++ b/docs/querying-a-file-system/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-avro-files/index.html b/docs/querying-avro-files/index.html
index 12699f5..4083c18 100644
--- a/docs/querying-avro-files/index.html
+++ b/docs/querying-avro-files/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-complex-data-introduction/index.html b/docs/querying-complex-data-introduction/index.html
index 958bee6..d4e9c55 100644
--- a/docs/querying-complex-data-introduction/index.html
+++ b/docs/querying-complex-data-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-complex-data/index.html b/docs/querying-complex-data/index.html
index 32cca3c..9a81f86 100644
--- a/docs/querying-complex-data/index.html
+++ b/docs/querying-complex-data/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-directories/index.html b/docs/querying-directories/index.html
index 666d177..85e1cf5 100644
--- a/docs/querying-directories/index.html
+++ b/docs/querying-directories/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-hbase/index.html b/docs/querying-hbase/index.html
index 4466e5d..40c3ffa 100644
--- a/docs/querying-hbase/index.html
+++ b/docs/querying-hbase/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-hive/index.html b/docs/querying-hive/index.html
index 68c9ef6..33b663e 100644
--- a/docs/querying-hive/index.html
+++ b/docs/querying-hive/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-indexes-introduction/index.html b/docs/querying-indexes-introduction/index.html
index 3fa8deb..0a062b2 100644
--- a/docs/querying-indexes-introduction/index.html
+++ b/docs/querying-indexes-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-indexes/index.html b/docs/querying-indexes/index.html
index eae8f68..f1aaed7 100644
--- a/docs/querying-indexes/index.html
+++ b/docs/querying-indexes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-json-files/index.html b/docs/querying-json-files/index.html
index c625698..999ce5a 100644
--- a/docs/querying-json-files/index.html
+++ b/docs/querying-json-files/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-parquet-files/index.html b/docs/querying-parquet-files/index.html
index 8276b27..1c87b79 100644
--- a/docs/querying-parquet-files/index.html
+++ b/docs/querying-parquet-files/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-plain-text-files/index.html b/docs/querying-plain-text-files/index.html
index 76824da..d3a16f9 100644
--- a/docs/querying-plain-text-files/index.html
+++ b/docs/querying-plain-text-files/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-sequence-files/index.html b/docs/querying-sequence-files/index.html
index 5e61e9b..d891a8b 100644
--- a/docs/querying-sequence-files/index.html
+++ b/docs/querying-sequence-files/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-system-tables/index.html b/docs/querying-system-tables/index.html
index 82e1205..eae6e49 100644
--- a/docs/querying-system-tables/index.html
+++ b/docs/querying-system-tables/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/querying-the-information-schema/index.html b/docs/querying-the-information-schema/index.html
index c0754fd..3ef6fd4 100644
--- a/docs/querying-the-information-schema/index.html
+++ b/docs/querying-the-information-schema/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/ranking-window-functions/index.html b/docs/ranking-window-functions/index.html
index 2497bdf..fdbe459 100644
--- a/docs/ranking-window-functions/index.html
+++ b/docs/ranking-window-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/rdbms-metastore/index.html b/docs/rdbms-metastore/index.html
index 3d246f8..e860bd0 100644
--- a/docs/rdbms-metastore/index.html
+++ b/docs/rdbms-metastore/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/rdbms-storage-plugin/index.html b/docs/rdbms-storage-plugin/index.html
index 31db2bf..11033e1 100644
--- a/docs/rdbms-storage-plugin/index.html
+++ b/docs/rdbms-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/refresh-table-metadata/index.html b/docs/refresh-table-metadata/index.html
index 5700dd5..a3324a9 100644
--- a/docs/refresh-table-metadata/index.html
+++ b/docs/refresh-table-metadata/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/release-notes/index.html b/docs/release-notes/index.html
index 95682bf..eba9753 100644
--- a/docs/release-notes/index.html
+++ b/docs/release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/repeated-contains/index.html b/docs/repeated-contains/index.html
index 0ed2bb3..458950f 100644
--- a/docs/repeated-contains/index.html
+++ b/docs/repeated-contains/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/repeated-count/index.html b/docs/repeated-count/index.html
index f5d3780..b548793 100644
--- a/docs/repeated-count/index.html
+++ b/docs/repeated-count/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/reserved-keywords/index.html b/docs/reserved-keywords/index.html
index ebfaab4..26d1f29 100644
--- a/docs/reserved-keywords/index.html
+++ b/docs/reserved-keywords/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/reset/index.html b/docs/reset/index.html
index 986a257..2ef1111 100644
--- a/docs/reset/index.html
+++ b/docs/reset/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/rest-api-introduction/index.html b/docs/rest-api-introduction/index.html
index 5efcd23..0b4ce42 100644
--- a/docs/rest-api-introduction/index.html
+++ b/docs/rest-api-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/rest-api/index.html b/docs/rest-api/index.html
index a5b8806..c89ad05 100644
--- a/docs/rest-api/index.html
+++ b/docs/rest-api/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/review-the-java-stack-trace/index.html b/docs/review-the-java-stack-trace/index.html
index e39c49a..1449722 100644
--- a/docs/review-the-java-stack-trace/index.html
+++ b/docs/review-the-java-stack-trace/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/roles-and-privileges/index.html b/docs/roles-and-privileges/index.html
index 067e4c1..155f2ed 100644
--- a/docs/roles-and-privileges/index.html
+++ b/docs/roles-and-privileges/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/rpc-overview/index.html b/docs/rpc-overview/index.html
index c024b7c..a7ac2cf 100644
--- a/docs/rpc-overview/index.html
+++ b/docs/rpc-overview/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/running-drill-on-docker/index.html b/docs/running-drill-on-docker/index.html
index 53369d3..1809b25 100644
--- a/docs/running-drill-on-docker/index.html
+++ b/docs/running-drill-on-docker/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/s3-storage-plugin/index.html b/docs/s3-storage-plugin/index.html
index 551ae6f..03ff01e 100644
--- a/docs/s3-storage-plugin/index.html
+++ b/docs/s3-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/sample-data-donuts/index.html b/docs/sample-data-donuts/index.html
index 9564b95..d8bc7c4 100644
--- a/docs/sample-data-donuts/index.html
+++ b/docs/sample-data-donuts/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/sample-datasets/index.html b/docs/sample-datasets/index.html
index c47e491..85c0c23 100644
--- a/docs/sample-datasets/index.html
+++ b/docs/sample-datasets/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/secure-communication-paths/index.html b/docs/secure-communication-paths/index.html
index 52f91b0..25477ff 100644
--- a/docs/secure-communication-paths/index.html
+++ b/docs/secure-communication-paths/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/securing-drill-introduction/index.html b/docs/securing-drill-introduction/index.html
index 95c6197..95108ea 100644
--- a/docs/securing-drill-introduction/index.html
+++ b/docs/securing-drill-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/securing-drill/index.html b/docs/securing-drill/index.html
index 50a9756..11a1152 100644
--- a/docs/securing-drill/index.html
+++ b/docs/securing-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/select-list/index.html b/docs/select-list/index.html
index 551568d..93d839b 100644
--- a/docs/select-list/index.html
+++ b/docs/select-list/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/select/index.html b/docs/select/index.html
index 0168099..17f37a6 100644
--- a/docs/select/index.html
+++ b/docs/select/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/selecting-flat-data/index.html b/docs/selecting-flat-data/index.html
index e0fcc18..cc8f206 100644
--- a/docs/selecting-flat-data/index.html
+++ b/docs/selecting-flat-data/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/selecting-multiple-columns-within-nested-data/index.html b/docs/selecting-multiple-columns-within-nested-data/index.html
index 64e9d3a..9999658 100644
--- a/docs/selecting-multiple-columns-within-nested-data/index.html
+++ b/docs/selecting-multiple-columns-within-nested-data/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/selecting-nested-data-for-a-column/index.html b/docs/selecting-nested-data-for-a-column/index.html
index 5816fc4..56596db 100644
--- a/docs/selecting-nested-data-for-a-column/index.html
+++ b/docs/selecting-nested-data-for-a-column/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/sequence-files/index.html b/docs/sequence-files/index.html
index 47761dd..0ff14dd 100644
--- a/docs/sequence-files/index.html
+++ b/docs/sequence-files/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/set/index.html b/docs/set/index.html
index 1607ac5..47f8409 100644
--- a/docs/set/index.html
+++ b/docs/set/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/show-databases-and-show-schemas/index.html b/docs/show-databases-and-show-schemas/index.html
index fa31b0a..ef4d998 100644
--- a/docs/show-databases-and-show-schemas/index.html
+++ b/docs/show-databases-and-show-schemas/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/show-files/index.html b/docs/show-files/index.html
index cbba279..69d21bc 100644
--- a/docs/show-files/index.html
+++ b/docs/show-files/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/show-tables/index.html b/docs/show-tables/index.html
index 01484f8..4d18979 100644
--- a/docs/show-tables/index.html
+++ b/docs/show-tables/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/sort-based-and-hash-based-memory-constrained-operators/index.html b/docs/sort-based-and-hash-based-memory-constrained-operators/index.html
index 90c0cb3..86e55b3 100644
--- a/docs/sort-based-and-hash-based-memory-constrained-operators/index.html
+++ b/docs/sort-based-and-hash-based-memory-constrained-operators/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/splunk-storage-plugin/index.html b/docs/splunk-storage-plugin/index.html
index db55126..7703d02 100644
--- a/docs/splunk-storage-plugin/index.html
+++ b/docs/splunk-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/spss-format-plugin/index.html b/docs/spss-format-plugin/index.html
index e346e31..91025be 100644
--- a/docs/spss-format-plugin/index.html
+++ b/docs/spss-format-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/sql-commands/index.html b/docs/sql-commands/index.html
index 3873bc2..bc9d014 100644
--- a/docs/sql-commands/index.html
+++ b/docs/sql-commands/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/sql-conditional-expressions/index.html b/docs/sql-conditional-expressions/index.html
index 0b4fa16..56ef92e 100644
--- a/docs/sql-conditional-expressions/index.html
+++ b/docs/sql-conditional-expressions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/sql-dialect-compatibility-functions/index.html b/docs/sql-dialect-compatibility-functions/index.html
index bedd12a..4b569af 100644
--- a/docs/sql-dialect-compatibility-functions/index.html
+++ b/docs/sql-dialect-compatibility-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/sql-extensions/index.html b/docs/sql-extensions/index.html
index 4d563df..16aa5ce 100644
--- a/docs/sql-extensions/index.html
+++ b/docs/sql-extensions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/sql-functions/index.html b/docs/sql-functions/index.html
index a734ee7..6ece606 100644
--- a/docs/sql-functions/index.html
+++ b/docs/sql-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/sql-reference-introduction/index.html b/docs/sql-reference-introduction/index.html
index bdaea41..0d0ff15 100644
--- a/docs/sql-reference-introduction/index.html
+++ b/docs/sql-reference-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/sql-reference/index.html b/docs/sql-reference/index.html
index 38231e7..cb13073 100644
--- a/docs/sql-reference/index.html
+++ b/docs/sql-reference/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/sql-window-functions-examples/index.html b/docs/sql-window-functions-examples/index.html
index eeb2d40..2baab1b 100644
--- a/docs/sql-window-functions-examples/index.html
+++ b/docs/sql-window-functions-examples/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/sql-window-functions-introduction/index.html b/docs/sql-window-functions-introduction/index.html
index 3bd6074..d388743 100644
--- a/docs/sql-window-functions-introduction/index.html
+++ b/docs/sql-window-functions-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/sql-window-functions/index.html b/docs/sql-window-functions/index.html
index c2d49b6..1cd0662 100644
--- a/docs/sql-window-functions/index.html
+++ b/docs/sql-window-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/start-up-options/index.html b/docs/start-up-options/index.html
index 05519ce..8f4ca2b 100644
--- a/docs/start-up-options/index.html
+++ b/docs/start-up-options/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/starting-drill-in-distributed-mode/index.html b/docs/starting-drill-in-distributed-mode/index.html
index 0c515a6..9ea1524 100644
--- a/docs/starting-drill-in-distributed-mode/index.html
+++ b/docs/starting-drill-in-distributed-mode/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/starting-drill-on-linux-and-mac-os-x/index.html b/docs/starting-drill-on-linux-and-mac-os-x/index.html
index a890b1c..4fa2fec 100644
--- a/docs/starting-drill-on-linux-and-mac-os-x/index.html
+++ b/docs/starting-drill-on-linux-and-mac-os-x/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/starting-drill-on-windows/index.html b/docs/starting-drill-on-windows/index.html
index 7b476b1..0903410 100644
--- a/docs/starting-drill-on-windows/index.html
+++ b/docs/starting-drill-on-windows/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/starting-the-web-ui/index.html b/docs/starting-the-web-ui/index.html
index a46010d..a1d1a88 100644
--- a/docs/starting-the-web-ui/index.html
+++ b/docs/starting-the-web-ui/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/stopping-drill/index.html b/docs/stopping-drill/index.html
index f5462a9..2299eb7 100644
--- a/docs/stopping-drill/index.html
+++ b/docs/stopping-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/storage-plugin-configuration/index.html b/docs/storage-plugin-configuration/index.html
index 7d32271..443aa6b 100644
--- a/docs/storage-plugin-configuration/index.html
+++ b/docs/storage-plugin-configuration/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/storage-plugin-registration/index.html b/docs/storage-plugin-registration/index.html
index 2b173cc..b23d230 100644
--- a/docs/storage-plugin-registration/index.html
+++ b/docs/storage-plugin-registration/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/string-distance-functions/index.html b/docs/string-distance-functions/index.html
index cbb8c0d..50b5170 100644
--- a/docs/string-distance-functions/index.html
+++ b/docs/string-distance-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/string-manipulation/index.html b/docs/string-manipulation/index.html
index f31ded6..91ac4d8 100644
--- a/docs/string-manipulation/index.html
+++ b/docs/string-manipulation/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/submitting-queries-from-the-rest-api-when-impersonation-is-enabled-and-authentication-is-disabled/index.html b/docs/submitting-queries-from-the-rest-api-when-impersonation-is-enabled-and-authentication-is-disabled/index.html
index 2d6b101..3595d82 100644
--- a/docs/submitting-queries-from-the-rest-api-when-impersonation-is-enabled-and-authentication-is-disabled/index.html
+++ b/docs/submitting-queries-from-the-rest-api-when-impersonation-is-enabled-and-authentication-is-disabled/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/summary/index.html b/docs/summary/index.html
index a0a32a0..f94b518 100644
--- a/docs/summary/index.html
+++ b/docs/summary/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/supported-data-types/index.html b/docs/supported-data-types/index.html
index f55a97c..d89a6b2 100644
--- a/docs/supported-data-types/index.html
+++ b/docs/supported-data-types/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/supported-sql-commands/index.html b/docs/supported-sql-commands/index.html
index 6520189..db5d5fa 100644
--- a/docs/supported-sql-commands/index.html
+++ b/docs/supported-sql-commands/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/syslog-format-plugin/index.html b/docs/syslog-format-plugin/index.html
index fc26c2d..02dd2d9 100644
--- a/docs/syslog-format-plugin/index.html
+++ b/docs/syslog-format-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/tableau-examples/index.html b/docs/tableau-examples/index.html
index 0e2e420..9354802 100644
--- a/docs/tableau-examples/index.html
+++ b/docs/tableau-examples/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/testing-the-odbc-connection/index.html b/docs/testing-the-odbc-connection/index.html
index 308c39a..8e3c97c 100644
--- a/docs/testing-the-odbc-connection/index.html
+++ b/docs/testing-the-odbc-connection/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/text-files-csv-tsv-psv/index.html b/docs/text-files-csv-tsv-psv/index.html
index c8ca062..a54cd86 100644
--- a/docs/text-files-csv-tsv-psv/index.html
+++ b/docs/text-files-csv-tsv-psv/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/throttling/index.html b/docs/throttling/index.html
index 7f857fb..2e8ed16 100644
--- a/docs/throttling/index.html
+++ b/docs/throttling/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/time-series-analysis-functions/index.html b/docs/time-series-analysis-functions/index.html
index 520b98f..f594946 100644
--- a/docs/time-series-analysis-functions/index.html
+++ b/docs/time-series-analysis-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/troubleshooting/index.html b/docs/troubleshooting/index.html
index 3efef68..2b15ec7 100644
--- a/docs/troubleshooting/index.html
+++ b/docs/troubleshooting/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/tutorial-develop-a-simple-function/index.html b/docs/tutorial-develop-a-simple-function/index.html
index 7327928..3bb3b64 100644
--- a/docs/tutorial-develop-a-simple-function/index.html
+++ b/docs/tutorial-develop-a-simple-function/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/tutorials-introduction/index.html b/docs/tutorials-introduction/index.html
index 6f2dd7a..7cc3207 100644
--- a/docs/tutorials-introduction/index.html
+++ b/docs/tutorials-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/tutorials/index.html b/docs/tutorials/index.html
index fbb2b53..c19d12c 100644
--- a/docs/tutorials/index.html
+++ b/docs/tutorials/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
@@ -1453,6 +1457,9 @@
           <li><a href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
         
       
+          <li><a href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+        
+      
       </ul>
     
       
diff --git a/docs/types-of-indexes/index.html b/docs/types-of-indexes/index.html
index f507ad2..36ddbf7 100644
--- a/docs/types-of-indexes/index.html
+++ b/docs/types-of-indexes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/union-set-operator/index.html b/docs/union-set-operator/index.html
index eba089e..4c53d57 100644
--- a/docs/union-set-operator/index.html
+++ b/docs/union-set-operator/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/use-postman-to-run-sql-queries-on-drill-data-sources/index.html b/docs/use-postman-to-run-sql-queries-on-drill-data-sources/index.html
index a3633b0..bbf33ea 100644
--- a/docs/use-postman-to-run-sql-queries-on-drill-data-sources/index.html
+++ b/docs/use-postman-to-run-sql-queries-on-drill-data-sources/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/use/index.html b/docs/use/index.html
index 132d986..21519ac 100644
--- a/docs/use/index.html
+++ b/docs/use/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/useful-information-for-drill-developers/index.html b/docs/useful-information-for-drill-developers/index.html
index d1dad5a..8775796 100644
--- a/docs/useful-information-for-drill-developers/index.html
+++ b/docs/useful-information-for-drill-developers/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/useful-research/index.html b/docs/useful-research/index.html
index 48d287f..0552ba4 100644
--- a/docs/useful-research/index.html
+++ b/docs/useful-research/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-apache-drill-with-tableau-10-2/index.html b/docs/using-apache-drill-with-tableau-10-2/index.html
index 68d8375..80a2998 100644
--- a/docs/using-apache-drill-with-tableau-10-2/index.html
+++ b/docs/using-apache-drill-with-tableau-10-2/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-apache-drill-with-tableau-9-desktop/index.html b/docs/using-apache-drill-with-tableau-9-desktop/index.html
index cbcf4db..c0b8719 100644
--- a/docs/using-apache-drill-with-tableau-9-desktop/index.html
+++ b/docs/using-apache-drill-with-tableau-9-desktop/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-apache-drill-with-tableau-9-server/index.html b/docs/using-apache-drill-with-tableau-9-server/index.html
index b99d75b..efd8464 100644
--- a/docs/using-apache-drill-with-tableau-9-server/index.html
+++ b/docs/using-apache-drill-with-tableau-9-server/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-custom-functions-in-queries/index.html b/docs/using-custom-functions-in-queries/index.html
index 6a05474..85008aa 100644
--- a/docs/using-custom-functions-in-queries/index.html
+++ b/docs/using-custom-functions-in-queries/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-drill-explorer/index.html b/docs/using-drill-explorer/index.html
index 983dbc0..8896125 100644
--- a/docs/using-drill-explorer/index.html
+++ b/docs/using-drill-explorer/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-drill-metastore/index.html b/docs/using-drill-metastore/index.html
index e7a1732..0163250 100644
--- a/docs/using-drill-metastore/index.html
+++ b/docs/using-drill-metastore/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-drill-with-bi-tools-introduction/index.html b/docs/using-drill-with-bi-tools-introduction/index.html
index 8af38d5..9a4b140 100644
--- a/docs/using-drill-with-bi-tools-introduction/index.html
+++ b/docs/using-drill-with-bi-tools-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-drill-with-bi-tools/index.html b/docs/using-drill-with-bi-tools/index.html
index e1a8ac2..e097b73 100644
--- a/docs/using-drill-with-bi-tools/index.html
+++ b/docs/using-drill-with-bi-tools/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-information-builders-webfocus-with-apache-drill/index.html b/docs/using-information-builders-webfocus-with-apache-drill/index.html
index 45fac51..e2acb5b 100644
--- a/docs/using-information-builders-webfocus-with-apache-drill/index.html
+++ b/docs/using-information-builders-webfocus-with-apache-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-jdbc-with-squirrel-on-windows/index.html b/docs/using-jdbc-with-squirrel-on-windows/index.html
index 2cfbbff..dfcb96d 100644
--- a/docs/using-jdbc-with-squirrel-on-windows/index.html
+++ b/docs/using-jdbc-with-squirrel-on-windows/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-jpam-as-the-pam-authenticator/index.html b/docs/using-jpam-as-the-pam-authenticator/index.html
index 86cad77..432c024 100644
--- a/docs/using-jpam-as-the-pam-authenticator/index.html
+++ b/docs/using-jpam-as-the-pam-authenticator/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-libpam4j-as-the-pam-authenticator/index.html b/docs/using-libpam4j-as-the-pam-authenticator/index.html
index acccf61..7008f25 100644
--- a/docs/using-libpam4j-as-the-pam-authenticator/index.html
+++ b/docs/using-libpam4j-as-the-pam-authenticator/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-microstrategy-analytics-with-apache-drill/index.html b/docs/using-microstrategy-analytics-with-apache-drill/index.html
index a92b52f..452f7df 100644
--- a/docs/using-microstrategy-analytics-with-apache-drill/index.html
+++ b/docs/using-microstrategy-analytics-with-apache-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-qlik-sense-with-drill/index.html b/docs/using-qlik-sense-with-drill/index.html
index 026f488..9385642 100644
--- a/docs/using-qlik-sense-with-drill/index.html
+++ b/docs/using-qlik-sense-with-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-saiku-analytics-with-apache-drill/index.html b/docs/using-saiku-analytics-with-apache-drill/index.html
index ba5c224..08672fb 100644
--- a/docs/using-saiku-analytics-with-apache-drill/index.html
+++ b/docs/using-saiku-analytics-with-apache-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-sql-functions-clauses-and-joins/index.html b/docs/using-sql-functions-clauses-and-joins/index.html
index 27039da..2da4b04 100644
--- a/docs/using-sql-functions-clauses-and-joins/index.html
+++ b/docs/using-sql-functions-clauses-and-joins/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-the-drill-on-yarn-web-ui/index.html b/docs/using-the-drill-on-yarn-web-ui/index.html
index 1dd1123..146413b 100644
--- a/docs/using-the-drill-on-yarn-web-ui/index.html
+++ b/docs/using-the-drill-on-yarn-web-ui/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-the-jdbc-driver/index.html b/docs/using-the-jdbc-driver/index.html
index 44e6d4f..8d60e11 100644
--- a/docs/using-the-jdbc-driver/index.html
+++ b/docs/using-the-jdbc-driver/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/using-tibco-spotfire-desktop-with-drill/index.html b/docs/using-tibco-spotfire-desktop-with-drill/index.html
index fe2c0a0..4d7f09e 100644
--- a/docs/using-tibco-spotfire-desktop-with-drill/index.html
+++ b/docs/using-tibco-spotfire-desktop-with-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/value-vectors/index.html b/docs/value-vectors/index.html
index ba2745d..3a8ada6 100644
--- a/docs/value-vectors/index.html
+++ b/docs/value-vectors/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/value-window-functions/index.html b/docs/value-window-functions/index.html
index 8b75a4a..a71c64e 100644
--- a/docs/value-window-functions/index.html
+++ b/docs/value-window-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/verifying-index-use/index.html b/docs/verifying-index-use/index.html
index 4f42438..6244f0d 100644
--- a/docs/verifying-index-use/index.html
+++ b/docs/verifying-index-use/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/where-clause/index.html b/docs/where-clause/index.html
index 30a159e..589f3d7 100644
--- a/docs/where-clause/index.html
+++ b/docs/where-clause/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/why-drill/index.html b/docs/why-drill/index.html
index c320ab6..81364f3 100644
--- a/docs/why-drill/index.html
+++ b/docs/why-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/wikipedia-edit-history/index.html b/docs/wikipedia-edit-history/index.html
index 551773d..c24b1b5 100644
--- a/docs/wikipedia-edit-history/index.html
+++ b/docs/wikipedia-edit-history/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/with-clause/index.html b/docs/with-clause/index.html
index a9d6853..9f50f7f 100644
--- a/docs/with-clause/index.html
+++ b/docs/with-clause/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/workspaces/index.html b/docs/workspaces/index.html
index 84f87ab..33fecd6 100644
--- a/docs/workspaces/index.html
+++ b/docs/workspaces/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/docs/xml-format-plugin/index.html b/docs/xml-format-plugin/index.html
index 2d11b65..a80e2c5 100644
--- a/docs/xml-format-plugin/index.html
+++ b/docs/xml-format-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/feed.xml b/feed.xml
index eb78a33..0881e03 100644
--- a/feed.xml
+++ b/feed.xml
@@ -6,11 +6,42 @@
 </description>
     <link>http://localhost:4000/</link>
     <atom:link href="http://localhost:4000/feed.xml" rel="self" type="application/rss+xml"/>
-    <pubDate>Sun, 25 Jul 2021 08:42:55 +0200</pubDate>
-    <lastBuildDate>Sun, 25 Jul 2021 08:42:55 +0200</lastBuildDate>
+    <pubDate>Sun, 22 Aug 2021 20:19:53 +0200</pubDate>
+    <lastBuildDate>Sun, 22 Aug 2021 20:19:53 +0200</lastBuildDate>
     <generator>Jekyll v3.9.0</generator>
     
       <item>
+        <title>Drill provider for Airflow</title>
+        <description>&lt;p&gt;You’re building a new report, visualisation or ML model.  Most of the data involved comes from sources well known to you but a new source has become available, allowing your team to measure and model new variables.  Eager to get to a prototype and an early sense of what the new analytics look like, you head straight for the first order of business and start to construct a first version of the dataset upon which your final output will be based.&lt;/p&gt;
+
+&lt;p&gt;The data sources you need to combine are immediately accessible but heteregenous: transactional data in PostgreSQL must be combined with data from another team that uses Splunk, lookup data maintained by operational team in an Excel spreadsheet, thousands of XML exports received from a partner and some Parquet files already in your big data environment just for good measure.&lt;/p&gt;
+
+&lt;p&gt;Using Drill iteratively you query and join in each data source one at a time, applying grouping, filtering and other intensive transformations as you go, finally producing a dataset with the fields and grain you need.  You store it by adding CREATE TABLE AS in front of your final SELECT then write a few counting and summing queries against the original data sources and your transformed dataset to check that your code produces the expected outputs.&lt;/p&gt;
+
+&lt;p&gt;Apart from possibly configuring some new storage plugins in the Drill web UI, you have so far not left your SQL editor.  The onerous data exploration and plumbing parts of your project have flashed by in a blaze of SQL, and you move your dataset into the next tool for visualisation or modelling.  The results are good and you know that your users will immediately ask for the outputs to incorporate new data on a regular schedule.&lt;/p&gt;
+
+&lt;p&gt;While Drill can assemble your dataset on the fly, as it did while you prototyped,  doing that for the full set takes over 40 minutes, places more load than you’d like in office hours on to your data sources and limits you to the history that the sources keep, in some cases only a few weeks.&lt;/p&gt;
+
+&lt;p&gt;It’s time for ETL, you concede.  In the past that meant you had to choose between keeping your working Drill SQL and scheduling it using 70s Unix tools like Cron and Bash, seeing what you could jury-rig using some ETL software and interfaces to Drill like like ODBC and JDBC, or recreating your Drill SQL entirely in (perhaps multiple) other tools and languages, perhaps Spark and Python.  But this time you can do things differently…&lt;/p&gt;
+
+&lt;p&gt;&lt;a href=&quot;https://airflow.apache.org&quot;&gt;Apache Airflow&lt;/a&gt; is a workflow engine built in the Python programming ecosystem that has grown into a leading choice for orchestrating big data pipelines, amongst its other applications.  Perhaps the first point to understand about Airflow in the context of ETL is that it is designed only for workflow &lt;em&gt;control&lt;/em&gt;, and not for data flow.  This makes it different from some of the ETL tools you might have [...]
+
+&lt;p&gt;In contrast Airflow is, unless you’re doing it wrong, used only to instruct other software like Spark, Beam, PostgreSQL, Bash, Celery, Scikit-learn scripts, Slack, (… the list of providers is long and varied) to kick off actions at scheduled times.  While Airflow does load its schedules from the crontab format, a comparison to cron stops there.  Airflow can resolve and execute complex job DAGs with options for clustering, parallelism, retries, backfilling and performance monitor [...]
+
+&lt;p&gt;The exciting news for Drill users is that &lt;a href=&quot;https://pypi.org/project/apache-airflow-providers-apache-drill/&quot;&gt;a new provider package adding support for Drill&lt;/a&gt; was added to Airflow this month.  This provider is based on the &lt;a href=&quot;https://pypi.org/project/sqlalchemy-drill/&quot;&gt;sqlalchemy-drill package&lt;/a&gt; which provides Drill connectivity for Python programs.  This means that you can add tasks which execute queries on Drill to y [...]
+
+&lt;p&gt;A new tutorial that walks through the development of a simple Airflow DAG that uses the Drill provider &lt;a href=&quot;/docs/tutorials/orchestrating-queries-with-airflow&quot;&gt;is available here&lt;/a&gt;.&lt;/p&gt;
+</description>
+        <pubDate>Thu, 05 Aug 2021 00:00:00 +0200</pubDate>
+        <link>http://localhost:4000/blog/2021/08/05/drill-provider-for-airflow/</link>
+        <guid isPermaLink="true">http://localhost:4000/blog/2021/08/05/drill-provider-for-airflow/</guid>
+        
+        
+        <category>blog</category>
+        
+      </item>
+    
+      <item>
         <title>Streaming data from the Drill REST API</title>
         <description>&lt;p&gt;Anyone who’s used a UNIX pipe, or even just watched something on Netflix, is at least a little familiar with the idea of processing data in a streaming fashion.  While your data are small in size compared to available memory and I/O speeds, streaming is something you can afford to dispense with.  But when you cannot fit an entire dataset in RAM, or when you have to download an entire 4K movie before you can start playing it, then streaming data processing ca [...]
 
@@ -295,18 +326,5 @@ In [7]: while True:
         
       </item>
     
-      <item>
-        <title>Drill Developer Day 2018</title>
-        <description>
-</description>
-        <pubDate>Tue, 16 Oct 2018 21:18:04 +0200</pubDate>
-        <link>http://localhost:4000/blog/2018/10/16/drill-developer-day/</link>
-        <guid isPermaLink="true">http://localhost:4000/blog/2018/10/16/drill-developer-day/</guid>
-        
-        
-        <category>blog</category>
-        
-      </item>
-    
   </channel>
 </rss>
diff --git a/index.html b/index.html
index 24c36ea..8c694f8 100644
--- a/index.html
+++ b/index.html
@@ -203,9 +203,9 @@ $(document).ready(function() {
   <div class="news">News:
   </div>
   
-  <div><a href="/blog/2021/07/09/streaming-data-from-the-rest-api/">Streaming data from the Drill REST API</a><br/><span>(James Turton)</span></div>
+  <div><a href="/blog/2021/08/05/drill-provider-for-airflow/">Drill provider for Airflow</a><br/><span>(James Turton)</span></div>
   
-  <div><a href="/blog/2021/06/10/drill-1.19-released/">Drill 1.19 Released</a><br/><span>(Laurent Goujon)</span></div>
+  <div><a href="/blog/2021/07/09/streaming-data-from-the-rest-api/">Streaming data from the Drill REST API</a><br/><span>(James Turton)</span></div>
 </div>
 <div class="mw introWrapper">
   <table class="intro" cellpadding="0" cellspacing="0" align="center">
diff --git a/zh/.asf.yaml b/zh/.asf.yaml
new file mode 100644
index 0000000..a717f35
--- /dev/null
+++ b/zh/.asf.yaml
@@ -0,0 +1,3 @@
+publish:
+   whoami: asf-site
+
diff --git a/zh/blog/2021/08/05/drill-provider-for-airflow/index.html b/zh/blog/2021/08/05/drill-provider-for-airflow/index.html
new file mode 100644
index 0000000..114d84c
--- /dev/null
+++ b/zh/blog/2021/08/05/drill-provider-for-airflow/index.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+
+<meta charset="UTF-8">
+<meta name=viewport content="width=device-width, initial-scale=1">
+
+
+<title>Drill provider for Airflow - Apache Drill</title>
+
+<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css"/>
+<link href='https://fonts.googleapis.com/css?family=PT+Sans' rel='stylesheet' type='text/css'/>
+<link href="/css/site.css" rel="stylesheet" type="text/css"/>
+
+<link rel="shortcut icon" href="/zh/favicon.ico" type="image/x-icon"/>
+<link rel="icon" href="/zh/favicon.ico" type="image/x-icon"/>
+
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" language="javascript" type="text/javascript"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js" language="javascript" type="text/javascript"></script>
+<script language="javascript" type="text/javascript" src="/js/modernizr.custom.js"></script>
+<script language="javascript" type="text/javascript" src="/js/script.js"></script>
+<script language="javascript" type="text/javascript" src="/js/drill.js"></script>
+
+</head>
+
+
+<body onResize="resized();">
+  <div class="page-wrap">
+    <div class="bui"></div>
+
+<div id="menu" class="mw">
+<ul>
+  <li class='toc-categories'>
+  <a class="expand-toc-icon" href="javascript:void(0);"><i class="fa fa-bars"></i></a>
+  </li>
+  <li class="logo"><a href="/zh/"></a></li>
+  <li class='expand-menu'>
+  <a href="javascript:void(0);"><span class='menu-text'>Menu</span><span class='expand-icon'><i class="fa fa-bars"></i></span></a>
+  </li>
+  <li class="clear-float"></li>
+  <li class="nav">
+	<a>Language</a>
+	<ul>
+		
+		<li>
+			<a  href="/blog/2021/08/05/drill-provider-for-airflow/" >en</a>
+		</li>
+		
+		<li>
+			<a style="font-weight: bold;" href="/zh/blog/2021/08/05/drill-provider-for-airflow/" >zh</a>
+		</li>
+		
+	</ul>
+  </li>
+  <li class="apache-link">
+    <a href="/zh/apacheASF/">Apache</a>
+  </li>
+  <li class="poweredby">
+    <a href="/zh/poweredBy">Powered By</a>
+  </li>
+  <li class="documentation-menu">
+    <a href="/zh/docs/">Documentation</a>
+    <ul>
+      
+        <li><a href="/zh/docs/getting-started/">新手开始</a></li>
+      
+        <li><a href="/zh/docs/architecture/">Architecture</a></li>
+      
+        <li><a href="/zh/docs/tutorials/">教程</a></li>
+      
+        <li><a href="/zh/docs/drill-on-yarn/">Drill-on-YARN</a></li>
+      
+        <li><a href="/zh/docs/install-drill/">Install Drill</a></li>
+      
+        <li><a href="/zh/docs/configure-drill/">Configure Drill</a></li>
+      
+        <li><a href="/zh/docs/connect-a-data-source/">Connect a Data Source</a></li>
+      
+        <li><a href="/zh/docs/odbc-jdbc-interfaces/">ODBC/JDBC Interfaces</a></li>
+      
+        <li><a href="/zh/docs/query-data/">Query Data</a></li>
+      
+        <li><a href="/zh/docs/performance-tuning/">Performance Tuning</a></li>
+      
+        <li><a href="/zh/docs/log-and-debug/">Log and Debug</a></li>
+      
+        <li><a href="/zh/docs/sql-reference/">SQL Reference</a></li>
+      
+        <li><a href="/zh/docs/data-sources-and-file-formats/">Data Sources and File Formats</a></li>
+      
+        <li><a href="/zh/docs/develop-custom-functions/">Develop Custom Functions</a></li>
+      
+        <li><a href="/zh/docs/troubleshooting/">Troubleshooting</a></li>
+      
+        <li><a href="/zh/docs/developer-information/">Developer Information</a></li>
+      
+        <li><a href="/zh/docs/release-notes/">Release Notes</a></li>
+      
+        <li><a href="/zh/docs/sample-datasets/">Sample Datasets</a></li>
+      
+        <li><a href="/zh/docs/project-bylaws/">Project Bylaws</a></li>
+      
+        <li><a href="/zh/docs/ecosystem/">Ecosystem</a></li>
+      
+    </ul>
+  </li>
+  <li class='nav'>
+    <a href="/zh/community-resources/">Community</a>
+    <ul>
+      <li><a href="/zh/team/">Team</a></li>
+      <li><a href="/zh/mailinglists/">Mailing Lists</a></li>
+      <li><a href="/zh/community-resources/">Community Resources</a></li>
+    </ul>
+  </li>
+  <li class='nav'><a href="/zh/faq/">FAQ</a></li>
+  <li class='nav'><a href="/zh/blog/">Blog</a></li>
+  <li class="social-menu-item"><a href="https://twitter.com/apachedrill" title="apachedrill on twitter" target="_blank"><img src="/images/twitter_32_26_white.png" alt="twitter logo" align="center"></a> </li>
+  <li class="social-menu-item"><a href="https://join.slack.com/t/apache-drill/shared_invite/enQtNTQ4MjM1MDA3MzQ2LTJlYmUxMTRkMmUwYmQ2NTllYmFmMjU4MDk0NjYwZjBmYjg0MDZmOTE2ZDg0ZjBlYmI3Yjc4Y2I2NTQyNGVlZTc" title="Apache Drill Slack channels"
+      target="_blank"><img src="/images/slack-logo.svg" alt="Slack logo" align="center"></a> </li>
+  <li class='search-bar'>
+    <form id="drill-search-form">
+      <input type="text" placeholder="Search Apache Drill" id="drill-search-term" />
+      <button type="submit">
+        <i class="fa fa-search"></i>
+      </button>
+    </form>
+  </li>
+  <li class="d">
+    <a href="/zh/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">Drill provider for Airflow</h1>
+    </div>
+    <p class="post-meta">
+    
+      
+      
+      <strong>Author:</strong> James Turton (Committer, Apache Software Foundation)<br />
+    
+<strong>Date:</strong> Aug 5, 2021
+</p>
+  </header>
+  <div class="addthis_sharing_toolbox"></div>
+
+  <article class="post-content">
+    <p>You’re building a new report, visualisation or ML model.  Most of the data involved comes from sources well known to you but a new source has become available, allowing your team to measure and model new variables.  Eager to get to a prototype and an early sense of what the new analytics look like, you head straight for the first order of business and start to construct a first version of the dataset upon which your final output will be based.</p>
+
+<p>The data sources you need to combine are immediately accessible but heteregenous: transactional data in PostgreSQL must be combined with data from another team that uses Splunk, lookup data maintained by operational team in an Excel spreadsheet, thousands of XML exports received from a partner and some Parquet files already in your big data environment just for good measure.</p>
+
+<p>Using Drill iteratively you query and join in each data source one at a time, applying grouping, filtering and other intensive transformations as you go, finally producing a dataset with the fields and grain you need.  You store it by adding CREATE TABLE AS in front of your final SELECT then write a few counting and summing queries against the original data sources and your transformed dataset to check that your code produces the expected outputs.</p>
+
+<p>Apart from possibly configuring some new storage plugins in the Drill web UI, you have so far not left your SQL editor.  The onerous data exploration and plumbing parts of your project have flashed by in a blaze of SQL, and you move your dataset into the next tool for visualisation or modelling.  The results are good and you know that your users will immediately ask for the outputs to incorporate new data on a regular schedule.</p>
+
+<p>While Drill can assemble your dataset on the fly, as it did while you prototyped,  doing that for the full set takes over 40 minutes, places more load than you’d like in office hours on to your data sources and limits you to the history that the sources keep, in some cases only a few weeks.</p>
+
+<p>It’s time for ETL, you concede.  In the past that meant you had to choose between keeping your working Drill SQL and scheduling it using 70s Unix tools like Cron and Bash, seeing what you could jury-rig using some ETL software and interfaces to Drill like like ODBC and JDBC, or recreating your Drill SQL entirely in (perhaps multiple) other tools and languages, perhaps Spark and Python.  But this time you can do things differently…</p>
+
+<p><a href="https://airflow.apache.org">Apache Airflow</a> is a workflow engine built in the Python programming ecosystem that has grown into a leading choice for orchestrating big data pipelines, amongst its other applications.  Perhaps the first point to understand about Airflow in the context of ETL is that it is designed only for workflow <em>control</em>, and not for data flow.  This makes it different from some of the ETL tools you might have encountered like Microsoft’s SSIS or Pe [...]
+
+<p>In contrast Airflow is, unless you’re doing it wrong, used only to instruct other software like Spark, Beam, PostgreSQL, Bash, Celery, Scikit-learn scripts, Slack, (… the list of providers is long and varied) to kick off actions at scheduled times.  While Airflow does load its schedules from the crontab format, a comparison to cron stops there.  Airflow can resolve and execute complex job DAGs with options for clustering, parallelism, retries, backfilling and performance monitoring.</p>
+
+<p>The exciting news for Drill users is that <a href="https://pypi.org/project/apache-airflow-providers-apache-drill/">a new provider package adding support for Drill</a> was added to Airflow this month.  This provider is based on the <a href="https://pypi.org/project/sqlalchemy-drill/">sqlalchemy-drill package</a> which provides Drill connectivity for Python programs.  This means that you can add tasks which execute queries on Drill to your Airflow DAGs without any hacky intermediate sh [...]
+
+<p>A new tutorial that walks through the development of a simple Airflow DAG that uses the Drill provider <a href="/zh/docs/orchestrating-queries-with-airflow/">is available here</a>.</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="https://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-2020 The Apache Software Foundation, licensed under the Apache License, Version 2.0.<br>
+Apache and the Apache feather logo are trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.<br/><br/>
+</div>
+</div>
+
+  <script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-53379651-1', 'auto');
+ga('send', 'pageview');
+</script>
+<script type="text/javascript" src="https://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-548b2caa33765e8d" async="async"></script>
+
+</body>
+</html>
diff --git a/zh/blog/index.html b/zh/blog/index.html
index 749a443..e248f91 100644
--- a/zh/blog/index.html
+++ b/zh/blog/index.html
@@ -140,6 +140,11 @@
 </div>
 
 <div class="int_text" align="left"><!-- previously: site.posts -->
+<p><a class="post-link" href="/zh/blog/2021/08/05/drill-provider-for-airflow/">Drill provider for Airflow</a><br/>
+<span class="post-date">Posted on Aug 5, 2021
+by James Turton</span>
+<br/>In its provider package release this month, the Apache Airflow project added a provider for interacting with Apache Drill.  This allows data engineers and data scientists to incorporate Drill queries in their Airflow DAGs, enabling the automation of big data and data science workflows.</p>
+<!-- previously: site.posts -->
 <p><a class="post-link" href="/zh/blog/2021/07/09/streaming-data-from-the-rest-api/">Streaming data from the Drill REST API</a><br/>
 <span class="post-date">Posted on Jul 9, 2021
 by James Turton</span>
diff --git a/zh/data/index.html b/zh/data/index.html
index 4a62e2e..44d3f04 100644
--- a/zh/data/index.html
+++ b/zh/data/index.html
@@ -2136,6 +2136,12 @@
     "relative_path": "_docs/zh/tutorials/070-analyzing-data-using-window-functions.md"
 },
 {
+    "url": "/docs/orchestrating-queries-with-airflow/",
+    "title": "Orchestrating queries with Airflow",
+    "parent": "教程",
+    "relative_path": "_docs/zh/tutorials/080-orchestrating-queries-with-airflow.md"
+},
+{
     "url": "/docs/about-the-mapr-sandbox/",
     "title": "关于 MapR 沙盒",
     "parent": "搭配 MapR Sandbox 学习 Drill",
diff --git a/zh/docs/about-sql-function-examples/index.html b/zh/docs/about-sql-function-examples/index.html
index 33d63db..a9f882e 100644
--- a/zh/docs/about-sql-function-examples/index.html
+++ b/zh/docs/about-sql-function-examples/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/about-the-mapr-sandbox/index.html b/zh/docs/about-the-mapr-sandbox/index.html
index e08e6a9..cb52312 100644
--- a/zh/docs/about-the-mapr-sandbox/index.html
+++ b/zh/docs/about-the-mapr-sandbox/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/adding-custom-functions-to-drill-introduction/index.html b/zh/docs/adding-custom-functions-to-drill-introduction/index.html
index 2b37fba..f1c4fbb 100644
--- a/zh/docs/adding-custom-functions-to-drill-introduction/index.html
+++ b/zh/docs/adding-custom-functions-to-drill-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/adding-custom-functions-to-drill/index.html b/zh/docs/adding-custom-functions-to-drill/index.html
index 917774f..a88ea39 100644
--- a/zh/docs/adding-custom-functions-to-drill/index.html
+++ b/zh/docs/adding-custom-functions-to-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/aggregate-and-aggregate-statistical/index.html b/zh/docs/aggregate-and-aggregate-statistical/index.html
index 7aef81e..cc3d010 100644
--- a/zh/docs/aggregate-and-aggregate-statistical/index.html
+++ b/zh/docs/aggregate-and-aggregate-statistical/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/aggregate-window-functions/index.html b/zh/docs/aggregate-window-functions/index.html
index ce45b37..eb1d4b6 100644
--- a/zh/docs/aggregate-window-functions/index.html
+++ b/zh/docs/aggregate-window-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/alter-system/index.html b/zh/docs/alter-system/index.html
index 62bd63a..a39d045 100644
--- a/zh/docs/alter-system/index.html
+++ b/zh/docs/alter-system/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/analyze-table-compute-statistics/index.html b/zh/docs/analyze-table-compute-statistics/index.html
index 6ccb4a7..259427c 100644
--- a/zh/docs/analyze-table-compute-statistics/index.html
+++ b/zh/docs/analyze-table-compute-statistics/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/analyze-table-refresh-metadata/index.html b/zh/docs/analyze-table-refresh-metadata/index.html
index 00b8e3a..6f6c346 100644
--- a/zh/docs/analyze-table-refresh-metadata/index.html
+++ b/zh/docs/analyze-table-refresh-metadata/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/analyzing-data-using-window-functions/index.html b/zh/docs/analyzing-data-using-window-functions/index.html
index ba5f8a9..8b01269 100644
--- a/zh/docs/analyzing-data-using-window-functions/index.html
+++ b/zh/docs/analyzing-data-using-window-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2 current"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
@@ -1414,31 +1418,31 @@
 
     <div class="int_text" align="left">
       
-        <p>This tutorial briefly introduces the analytics in Drill 1.2, namely ANSI SQL-compliant analytic and window functions. Drill supports the following SQL window functions:</p>
+        <p>本教程简要介绍了 Drill 1.2 中的分析工具,也就是符合 ANSI 标准的 SQL 分析工具和窗口函数。Drill 支持以下 SQL 窗口函数:</p>
 
 <ul>
-  <li>PARTITION BY and OVER clauses</li>
-  <li>A variety of aggregated window functions for Sum, Max, Min, Count, Avg</li>
-  <li>Analytic functions such as First_Value, Last_Value, Lead, Lag, NTile, Row_Number, and Rank</li>
+  <li>PARTITION BY 和 OVER 字句</li>
+  <li>针对 Sum, Max, Min, Count, Avg 的多种聚合窗口函数</li>
+  <li>分析函数如 First_Value, Last_Value, Lead, Lag, NTile, Row_Number 和 Rank</li>
 </ul>
 
-<p>Window functions are highly versatile. You can reduce the joins, subqueries, and explicit cursors that you need to write. Window functions solve a variety of use cases with minimal coding effort.</p>
+<p>窗口函数是高度通用的。你可以避免很多连接、子查询和显式游标的查询。窗口函数以最少的代码量解决了多种问题。</p>
 
-<p>This tutorial builds on previous tutorials, <a href="/zh/docs/analyzing-the-yelp-academic-dataset/">Analyzing the Yelp Academic Dataset</a> and <a href="/zh/docs/analyzing-highly-dynamic-datasets/">Analyzing Highly Dynamic Datasets</a>, and uses the same Yelp dataset.</p>
+<p>本教程建立在之前教程的基础上,<a href="/zh/docs/analyzing-the-yelp-academic-dataset/">分析 Yelp 学术数据集</a> 和 <a href="/zh/docs/analyzing-highly-dynamic-datasets/">分析高动态数据集</a>, 使用了相同的 Yelp 数据集。</p>
 
 <hr />
 
-<h2 id="getting-started">Getting Started</h2>
+<h2 id="准备开始">准备开始</h2>
 
 <ol>
   <li>
-    <p>To get started, download the <a href="http://www.yelp.com/dataset_challenge">Yelp</a> (business reviews) now.</p>
+    <p>下载 Yelp 商家评价数据集 <a href="http://www.yelp.com/dataset_challenge">Yelp</a>。</p>
   </li>
   <li>
-    <p><a href="/zh/docs/analyzing-the-yelp-academic-dataset/#installing-and-starting-drill">Install and start Drill</a>.</p>
+    <p><a href="/zh/docs/analyzing-the-yelp-academic-dataset/#installing-and-starting-drill">安装并启动 Drill</a>.</p>
   </li>
   <li>
-    <p>List the available schemas in Drill.</p>
+    <p>列出 Drill 中可用的 schema。</p>
 
     <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> SHOW schemas;
  |---------------------|
@@ -1457,7 +1461,7 @@
 </code></pre></div>    </div>
   </li>
   <li>
-    <p>Switch to using the workspace in which Yelp data is loaded.</p>
+    <p>切换到加载 Yelp 数据的工作区。</p>
 
     <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> USE dfs.yelp;
 
@@ -1471,7 +1475,7 @@
 </code></pre></div>    </div>
   </li>
   <li>
-    <p>Start with exploring one of the datasets available in Yelp dataset - the business information.</p>
+    <p>首先分析 Yelp 数据集中的可用数据集的 - 业务信息。</p>
 
     <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> SELECT * FROM `business.json` LIMIT 1;
 
@@ -1487,11 +1491,11 @@
 
 <hr />
 
-<h2 id="use-window-functions-for-simple-queries">Use Window Functions for Simple Queries</h2>
+<h2 id="使用窗口函数来简单查询">使用窗口函数来简单查询</h2>
 
 <ol>
   <li>
-    <p>Get the top Yelp businesses based on the number reviews in each city and the row number of the business.</p>
+    <p>根据每个城市的评论数量和商家的行号,获取排名靠前的 Yelp 商家</p>
 
     <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> SELECT name, city, review_count, row_number()
  OVER (PARTITION BY city ORDER BY review_count DESC) AS rownum 
@@ -1520,7 +1524,7 @@
 </code></pre></div>    </div>
   </li>
   <li>
-    <p>Check the number reviews for each business compared to the average number of reviews across all business in the city.</p>
+    <p>对比每个商家的评论数量与所在城市中所有商家的平均评论数量。</p>
 
     <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> SELECT name, city,review_count,
  Avg(review_count) OVER (PARTITION BY City) AS city_reviews_avg
@@ -1549,7 +1553,7 @@
 </code></pre></div>    </div>
   </li>
   <li>
-    <p>Check how the number of reviews for each business contribute to the total number of reviews for all businesses in the city.</p>
+    <p>对比每个商家的评论数量与所在城市中所有商家的评论总数。</p>
 
     <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> SELECT name, city,review_count,
  Sum(review_count) OVER (PARTITION BY City) AS city_reviews_sum
@@ -1581,11 +1585,11 @@
 
 <hr />
 
-<h2 id="use-window-functions-for-complex-queries">Use Window Functions for Complex Queries</h2>
+<h2 id="对复杂查询使用窗口函数">对复杂查询使用窗口函数</h2>
 
 <ol>
   <li>
-    <p>List Top 10 cities and their highest ranked businesses in terms of number of reviews. Use Drill window functions such as rank, dense_rank in these queries.</p>
+    <p>列出评论数排名前 10 的城市以及该城市中排名最高的商家。在这些查询中使用 Drill 窗口函数,例如 rank、dense_rank。</p>
 
     <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> WITH X
  AS
@@ -1616,7 +1620,7 @@
 </code></pre></div>    </div>
   </li>
   <li>
-    <p>Compare the number of reviews for each business with the top and bottom review counts in the city.</p>
+    <p>将每个商家的评论数与所在城市的最高和最低的评论数进行比较。</p>
 
     <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> SELECT name, city, review_count,
  FIRST_VALUE(review_count)
@@ -1648,7 +1652,7 @@
 </code></pre></div>    </div>
   </li>
   <li>
-    <p>Compare the number of reviews with the number of reviews for the previous and following businesses.</p>
+    <p>将商家评论数量与其在评论数排名中的前一位和后一位的商家评论数量进行比较。</p>
 
     <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> SELECT city, review_count, name,
  LAG(review_count, 1) OVER(PARTITION BY city ORDER BY review_count DESC) 
@@ -1685,7 +1689,7 @@
       
         <div class="doc-nav">
   
-  <span class="previous-toc"><a href="/zh/docs/analyzing-social-media/">← 分析社交媒体</a></span><span class="next-toc"><a href="/zh/docs/drill-on-yarn/">Drill-on-YARN →</a></span>
+  <span class="previous-toc"><a href="/zh/docs/analyzing-social-media/">← 分析社交媒体</a></span><span class="next-toc"><a href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow →</a></span>
 </div>
 
     
diff --git a/zh/docs/analyzing-highly-dynamic-datasets/index.html b/zh/docs/analyzing-highly-dynamic-datasets/index.html
index 5c730b0..521ed04 100644
--- a/zh/docs/analyzing-highly-dynamic-datasets/index.html
+++ b/zh/docs/analyzing-highly-dynamic-datasets/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
@@ -1414,9 +1418,9 @@
 
     <div class="int_text" align="left">
       
-        <p>Today’s data is dynamic and application-driven. The growth of a new era of business applications driven by industry trends such as web, social, mobile, and Internet of Things are generating datasets with new data types and new data models. These applications are iterative, and the associated data models typically are semi-structured, schema-less and constantly evolving. Semi-structured data models can be complex/nested, schema-less, and capable of having varying fields in ever [...]
+        <p>大数据是动态的并由应用驱动。互联网时代的商业软件的发展由不同的产业端所驱动,如网页端,媒体端,移动端,物联网。他们所生成的数据集,包含了新的数据类型和模型。这些应用都是交互式的,他们所关联的数据模型一般都是半结构化,schema-less,以及持续变化的。半结构化数据模型可以是复杂/嵌套或 schema-less,并且能够在每一行中包含不同的字段,为满足业务需求,字段会频繁修改。</p>
 
-<p>This tutorial shows you how to natively query dynamic datasets, such as JSON, and derive insights from any type of data in minutes. The dataset used in the example is from the Yelp check-ins dataset, which has the following structure:</p>
+<p>本教程将向你展示如何查询动态的原生数据集,例如 JSON,并在几分钟内从任意类型的数据中获得有效信息。示例中使用的数据集来自 Yelp 签到数据集,其结构如下:</p>
 
 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>check-in
 {
@@ -1433,35 +1437,35 @@
 }
 </code></pre></div></div>
 
-<p>It is worth repeating the comment at the bottom of this snippet:</p>
+<p>请特别注意此段代码底部的注释:</p>
 
 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>   If there was no checkin for a hour-day block it will not be in the dataset. 
 </code></pre></div></div>
 
-<p>The element names that you see in the <code class="language-plaintext highlighter-rouge">checkin_info</code> are unknown upfront and can vary for every row. The data, although simple, is highly dynamic data. To analyze the data there is no need to first represent this dataset in a flattened relational structure, as you would using any other SQL on Hadoop technology.</p>
+<p>你在 <code class="language-plaintext highlighter-rouge">checkin_info</code> 中看到的元素名称事先是未知的,并且每行都可能不同。数据虽然简单,但却是高度动态的数据。想要分析数据,无需在 Hadoop 平台上那样,需要先以扁平结构表示数据集,然后才能使用 SQL 类工具。</p>
 
 <hr />
 
-<p>Step 1: First download Drill, if you have not yet done so, onto your machine</p>
+<p>第 1 步:首先将 Drill(如果你还没有安装 Drill)下载到你的主机</p>
 
 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>http://drill.apache.org/download/
 tar -xvf apache-drill-1.19.0.tar
 </code></pre></div></div>
 
-<p>Install Drill locally on your desktop (embedded mode). You don’t need Hadoop.</p>
+<p>本地安装 Drill(嵌入式模式)。并不需要安装 Hadoop。</p>
 
 <hr />
 
-<p>Step 2: Start the Drill shell.</p>
+<p>第 2 步:嵌入式启动 Drill 。</p>
 
 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>bin/drill-embedded
 </code></pre></div></div>
 
 <hr />
 
-<p>Step 3: Start analyzing the data using SQL</p>
+<p>第 3 步:开始使用 SQL 分析数据</p>
 
-<p>First, let’s take a look at the dataset:</p>
+<p>首先,让我们查看一下数据集:</p>
 
 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>0: jdbc:drill:zk=local&gt; SELECT * FROM dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_checkin.json` limit 2;
 |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------|------------------------|
@@ -1474,14 +1478,14 @@ tar -xvf apache-drill-1.19.0.tar
 
 <div class="admonition note">
   <p class="first admonition-title">Note</p>
-  <p class="last">This document aligns Drill output for example purposes. Drill output is not aligned in this case.  </p>
+  <p class="last">本文档为了展示方便对齐了 Drill 的输出。实际上 Drill 的输出不会这样对齐。  </p>
 </div>
 
-<p>You query the data in JSON files directly. Schema definitions in Hive store are not necessary. The names of the elements within the <code class="language-plaintext highlighter-rouge">checkin_info</code> column are different between the first and second row.</p>
+<p>你可以直接查询 JSON 文件中的数据。 不必给 Hive 中的数据定义 schema。<code class="language-plaintext highlighter-rouge">checkin_info</code> 列中,第一行和第二行之间的元素名称是不同的。</p>
 
-<p>Drill provides a function called KVGEN (Key Value Generator) which is useful when working with complex data that contains arbitrary maps consisting of dynamic and unknown element names such as checkin_info. KVGEN turns the dynamic map into an array of key-value pairs where keys represent the dynamic element names.</p>
+<p>Drill 提供了一个名为 KVGEN(键值生成器)的函数,该函数在处理由动态和未知元素名称(例如 checkin_info)组成的任意映射的复杂数据时非常有用。 KVGEN 将动态映射转换为键值对数组,其中键表示动态元素名称。</p>
 
-<p>Let’s apply KVGEN on the <code class="language-plaintext highlighter-rouge">checkin_info</code> element to generate key-value pairs.</p>
+<p>让我们在 <code class="language-plaintext highlighter-rouge">checkin_info</code> 元素上利用 KVGEN 来生成键值对。</p>
 
 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>0: jdbc:drill:zk=local&gt; SELECT KVGEN(checkin_info) checkins FROM dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_checkin.json` LIMIT 2;
 |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
@@ -1492,7 +1496,7 @@ tar -xvf apache-drill-1.19.0.tar
 |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
 </code></pre></div></div>
 
-<p>Drill provides another function to operate on complex data called ‘Flatten’ to break the list of key-value pairs resulting from ‘KVGen’ into separate rows to further apply analytic functions on it.</p>
+<p>Drill 提供了另一个称为 Flatten 函数来处理复杂数据,可以将 KVGen 函数产生的键值对列表分解为单独的行,以进一步对其使用分析函数。</p>
 
 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>0: jdbc:drill:zk=local&gt; SELECT FLATTEN(KVGEN(checkin_info)) checkins FROM dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_checkin.json` LIMIT 20;
 |--------------------------|
@@ -1521,11 +1525,11 @@ tar -xvf apache-drill-1.19.0.tar
 |--------------------------|
 </code></pre></div></div>
 
-<p>You can get value from the data quickly by applying both KVGEN and FLATTEN functions on the datasets on the fly–no need for time-consuming schema definitions and data storage in intermediate formats.</p>
+<p>你可以对数据集使用 KVGEN 和 FLATTEN 函数,来快速从数据中获得有价值的信息——并且无需耗时在 schema 定义和数据存储格式。</p>
 
-<p>On the output of flattened data, you use standard SQL functionality such as filters , aggregates, and sort. Let’s see a few examples.</p>
+<p>在扁平化数据的输出中,你可以使用标准的 SQL 功能,例如过滤器、聚合和排序。让我们看几个例子。</p>
 
-<p><strong>Get the total number of check-ins recorded in the Yelp dataset</strong></p>
+<p><strong>获取 Yelp 数据集中签到记录的总数</strong></p>
 
 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>0: jdbc:drill:zk=local&gt; SELECT SUM(checkintbl.checkins.`value`) AS TotalCheckins FROM (
 . . . . . . . . . . . &gt;  SELECT FLATTEN(KVGEN(checkin_info)) checkins FROM dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_checkin.json` ) checkintbl
@@ -1537,7 +1541,7 @@ tar -xvf apache-drill-1.19.0.tar
 |---------------|
 </code></pre></div></div>
 
-<p><strong>Get the number of check-ins specifically for Sunday midnights</strong></p>
+<p><strong>获取周日午夜的签到次数</strong></p>
 
 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>0: jdbc:drill:zk=local&gt; SELECT SUM(checkintbl.checkins.`value`) AS SundayMidnightCheckins FROM (
 . . . . . . . . . . . &gt;  SELECT FLATTEN(KVGEN(checkin_info)) checkins FROM dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_checkin.json` ) checkintbl WHERE checkintbl.checkins.key='23-0';
@@ -1548,7 +1552,7 @@ tar -xvf apache-drill-1.19.0.tar
 |------------------------|
 </code></pre></div></div>
 
-<p><strong>Get the number of check-ins per day of the week</strong></p>
+<p><strong>获取一周内每天的签到次数</strong></p>
 
 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>0: jdbc:drill:zk=local&gt; SELECT `right`(checkintbl.checkins.key,1) WeekDay,sum(checkintbl.checkins.`value`) TotalCheckins from (
 . . . . . . . . . . . &gt;  select flatten(kvgen(checkin_info)) checkins FROM dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_checkin.json`  ) checkintbl GROUP BY `right`(checkintbl.checkins.key,1) ORDER BY TotalCheckins;
@@ -1565,7 +1569,7 @@ tar -xvf apache-drill-1.19.0.tar
 |---------|---------------|
 </code></pre></div></div>
 
-<p><strong>Get the number of check-ins per hour of the day</strong></p>
+<p><strong>获取一天中每小时的签到次数</strong></p>
 
 <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>0: jdbc:drill:zk=local&gt; SELECT SUBSTR(checkintbl.checkins.key,1,strpos(checkintbl.checkins.key,'-')-1) AS HourOfTheDay ,SUM(checkintbl.checkins.`value`) TotalCheckins FROM (
 . . . . . . . . . . . &gt;  SELECT FLATTEN(KVGEN(checkin_info)) checkins FROM dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_checkin.json` ) checkintbl GROUP BY SUBSTR(checkintbl.checkins.key,1,strpos(checkintbl.checkins.key,'-')-1) ORDER BY TotalCheckins;
@@ -1601,8 +1605,8 @@ tar -xvf apache-drill-1.19.0.tar
 
 <hr />
 
-<h2 id="summary">Summary</h2>
-<p>In this tutorial, you surf both structured and semi-structured data without any upfront schema management or ETL.</p>
+<h2 id="小结">小结</h2>
+<p>在本教程中,学习了如何处理结构化和半结构化数据,而无需定义 schema 或进行 ETL 预处理。</p>
 
     
       
diff --git a/zh/docs/analyzing-social-media/index.html b/zh/docs/analyzing-social-media/index.html
index bab0671..c49a821 100644
--- a/zh/docs/analyzing-social-media/index.html
+++ b/zh/docs/analyzing-social-media/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
@@ -1414,43 +1418,42 @@
 
     <div class="int_text" align="left">
       
-        <p>This tutorial covers how to analyze Twitter data in native JSON format using Apache Drill. First, you configure an environment to stream the Twitter data filtered on keywords and languages using Apache Flume, and then you analyze the data using Drill. Finally, you run interactive reports and analysis using MicroStrategy.</p>
+        <p>本教程介绍了如何使用 Apache Drill 分析原生 JSON 格式的 Twitter 数据。首先,使用 Apache Flume 处理 Twitter 数据流并过滤关键字和语言类型,然后使用 Drill 分析数据。最后,运行 MicroStrategy 以获得交互式报告和分析。</p>
 
-<h2 id="social-media-analysis-prerequisites">Social Media Analysis Prerequisites</h2>
+<h2 id="社交媒体分析所需准备">社交媒体分析所需准备</h2>
 
 <ul>
-  <li>Twitter developer account</li>
-  <li>AWS account</li>
-  <li>A MapR node on AWS</li>
-  <li>A MicroStrategy AWS instance</li>
+  <li>Twitter 开发者账户</li>
+  <li>亚马逊云服务账户</li>
+  <li>亚马逊云服务中加载一个 MapR 节点</li>
+  <li>亚马逊云服务中加载一个 MicroStrategy 实例</li>
 </ul>
 
-<h2 id="configuring-the-aws-environment">Configuring the AWS environment</h2>
+<h2 id="配置亚马逊云服务环境">配置亚马逊云服务环境</h2>
 
-<p>Configuring the environment on Amazon Web Services (AWS) consists of these tasks:</p>
+<p>在亚马逊云服务 (AWS) 上配置环境包括以下任务:</p>
 
 <ul>
-  <li>Create a Twitter Dev account and register a Twitter application</li>
-  <li>Provision a preconfigured AWS MapR node with Flume and Drill</li>
-  <li>Provision a MicroStrategy AWS instance</li>
-  <li>Configure MicroStrategy to run reports and analyses using Drill</li>
-  <li>Create a Twitter Dev account and register an application</li>
+  <li>创建一个 Twitter 开发者账户并注册一个 Twitter 应用程序</li>
+  <li>在开启的 AWS MapR 节点中配置 Flume 和 Drill</li>
+  <li>在 AWS 虚拟机中配置 MicroStrategy</li>
+  <li>配置 MicroStrategy 来使用 Drill 运行报告和分析</li>
 </ul>
 
-<p>This tutorial assumes you are familiar with MicroStrategy. For information about using MicroStrategy, see the <a href="http://www.microstrategy.com/Strategy/media/downloads/products/cloud/cloud_aws-user-guide.pdf">MicroStrategy documentation</a>.</p>
+<p>本教程假设你已熟悉 MicroStrategy。有关使用 MicroStrategy 的信息,请参考 <a href="http://www.microstrategy.com/Strategy/media/downloads/products/cloud/cloud_aws-user-guide.pdf">MicroStrategy documentation</a>。</p>
 
 <hr />
 
-<h2 id="establishing-a-twitter-feed-and-flume-credentials">Establishing a Twitter Feed and Flume Credentials</h2>
+<h2 id="订阅-twitter-新消息并建立-flume-凭证">订阅 Twitter 新消息并建立 Flume 凭证</h2>
 
-<p>The following steps establish a Twitter feed and get Twitter credentials required by Flume to set up Twitter as a data source:</p>
+<p>以下步骤订阅 Twitter 新消息并获取 Twitter 证书使 Flume 将 Twitter 设置为数据源:</p>
 
 <ol>
-  <li>Go to dev.twitter.com and sign in with your Twitter account details.</li>
-  <li>Click <strong>Manage Your Apps</strong> under Tools in the page footer.</li>
-  <li>Click <strong>Create New App</strong> and fill in the form, then create the application.</li>
-  <li>On the <strong>Keys and Access Tokens</strong> tab, create an access token, and then click <strong>Create My Access Token</strong>. If you have read-only access, you can create the token.</li>
-  <li>Copy the following credentials for the Twitter App that will be used to configure Flume:
+  <li>打开 dev.twitter.com 页面并登陆。</li>
+  <li>点击页面底部 Tools 中的 <strong>Manage Your Apps</strong>。</li>
+  <li>点击 <strong>Create New App</strong> 并填写表格,创建 App。</li>
+  <li>点击 <strong>Keys and Access Tokens</strong> 选项卡,创建一个新的秘钥,并点击 <strong>Create My Access Token</strong>。只读权限即可创建秘钥。</li>
+  <li>复制 Twitter App 中的以下证书用于配置 Flume:
     <ul>
       <li>Consumer Key</li>
       <li>Consumer Secret</li>
@@ -1462,196 +1465,192 @@
 
 <hr />
 
-<h2 id="provision-preconfigured-mapr-node-on-aws">Provision Preconfigured MapR Node on AWS</h2>
+<h2 id="在-aws-虚拟机中配置-mapr-节点">在 AWS 虚拟机中配置 MapR 节点</h2>
 
-<p>You need to provision a preconfigured MapR node on AWS named ami-4dedc47d. The AMI is already configured with Flume, Drill, and specific elements to support data streaming from Twitter and Drill query views. The AMI is publicly available under Community AMIs, has a 6GB root drive, and a 100GB data drive. Being a small node, very large volumes of data will significantly decrease the response time to Twitter data queries.</p>
+<p>你需要在 AWS 中加载名为 ami-4dedc47d 的 MapR 节点。AMI 已经配置了 Flume、Drill 和特定工具,以支持来自 Twitter 和 Drill 查询数据流。AMI 社区免费开放使用 AMI,具有 6GB 根驱动器和 100GB 数据驱动器。作为一个小节点,丰富的硬件资源将显著加快 Twitter 数据查询的响应时间。</p>
 
 <ol>
-  <li>In AWS, launch an instance.<br />
-The AMI image is preconfigured to use a m2.2xlarge instance type with 4 vCPUs and 32GB of memory.</li>
-  <li>Select the AMI id ami-4dedc47d.</li>
-  <li>Make sure that the instance has been assigned an external IP address; an Elastic IP is preferred, but not essential.</li>
-  <li>Verify that a security group is used with open TCP and UDP ports on the node. At this time, all ports are left open on the node.</li>
-  <li>After provisioning and booting up the instance, reboot the node in the AWS EC2 management interface to finalize the configuration.</li>
+  <li>在 AWS 中启动一个实例。AMI 镜像预先配置为具有4个 vCPU 和 32GB 内存的 m2.2xlarge 型实例。</li>
+  <li>选择 AMI id 为 ami-4dedc47d。</li>
+  <li>确保虚拟机已分配外部 IP 地址;弹性 IP 更好,但不是必需的。</li>
+  <li>确认安全验证是否应用于与实例上打开的 TCP 和 UDP 端口。此时,节点上的所有端口应处于打开状态。</li>
+  <li>配置并启动实例后,在 AWS EC2 管理界面中重启节点以完成配置。</li>
 </ol>
 
-<p>The node is now configured with the required Flume and Drill installation. Next, update the Flume configuration files with the required credentials and keywords.</p>
+<p>该节点配置了所需的 Flume 和 Drill。接下来,使用所需的证书和关键字更新 Flume 配置文件。</p>
 
 <hr />
 
-<h2 id="update-flume-configuration-files">Update Flume Configuration Files</h2>
+<h2 id="更新-flume-配置文件">更新 Flume 配置文件</h2>
 
 <ol>
-  <li>Log in as the ec2-user using the AWS credentials.</li>
-  <li>Switch to the mapr user on the node using <code class="language-plaintext highlighter-rouge">su – mapr.</code></li>
-  <li>Update the Flume configuration files <code class="language-plaintext highlighter-rouge">flume-env.sh</code> and <code class="language-plaintext highlighter-rouge">flume</code>.conf in the <code class="language-plaintext highlighter-rouge">&lt;FLUME HOME&gt;/conf</code> directory using the Twitter app credentials from the first section. See the <a href="https://github.com/mapr/mapr-demos/tree/master/drill-twitter-MSTR/flume">sample files</a>.</li>
-  <li>Enter the desired keywords, separated by a comma.<br />
-Separate multiple keywords using a space.</li>
-  <li>Filter tweets for specific languages, if needed, by entering the ISO 639-1 <a href="http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes">language codes</a> separated by a comma. If you need no language filtering, leave the parameter blank.</li>
-  <li>Go to the FLUME HOME directory and, as user <code class="language-plaintext highlighter-rouge">mapr</code>, type screen on the command line as user <code class="language-plaintext highlighter-rouge">mapr</code>:</li>
+  <li>使用 AWS 凭证登录 ec2-user。</li>
+  <li>使用 <code class="language-plaintext highlighter-rouge">su – mapr</code> 切换到节点上的 MapR 用户。</li>
+  <li>使用步骤一中的 Twitter App 证书更新 <code class="language-plaintext highlighter-rouge">&lt;FLUME HOME&gt;/conf</code> 目录中的 Flume 配置文件 <code class="language-plaintext highlighter-rouge">flume-env.sh</code> 和 <code class="language-plaintext highlighter-rouge">flume.conf</code>。请参考<a href="https://github.com/mapr/mapr-demos/tree/master/drill-twitter-MSTR/flume">sample files</a>。</li>
+  <li>输入所需的关键字,以逗号分隔。使用空格分隔多个关键字。</li>
+  <li>如果要过滤特定语言的推文,需要通过以逗号分隔的 ISO 639-1 <a href="http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes">语言代码</a>。如果不需要语言类型过滤,请将参数留空。</li>
+  <li>以用户 <code class="language-plaintext highlighter-rouge">MapR</code> 切换到 FLUME HOME 目录,并以用户 <code class="language-plaintext highlighter-rouge">MapR</code> 在命令行执行命令:</li>
   <li>
-    <p>Start Flume by typing the following command:</p>
+    <p>通过下命令启动 Flume:</p>
 
     <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> ./bin/flume-ng agent --conf ./conf/ -f ./conf/flume.conf -Dflume.root.logger=INFO,console -n TwitterAgent
 </code></pre></div>    </div>
   </li>
-  <li>Enter <code class="language-plaintext highlighter-rouge">CTRL+a</code> to exit, followed by <code class="language-plaintext highlighter-rouge">d</code> to detach.<br />
-To go back to the screen terminal, simply enter screen –r to reattach.<br />
-Twitter data streams into the system.</li>
+  <li>输入 <code class="language-plaintext highlighter-rouge">CTRL+a</code> 使程序退出前台,然后输入 <code class="language-plaintext highlighter-rouge">d</code> 使程序后台运行。要使程序返回屏幕终端,只需输入 screen -r 即可重新连接。Twitter 数据会加载进系统。</li>
   <li>
-    <p>Run the following command to verify volumes:</p>
+    <p>运行以下命令来查看 Twitter 数据所占磁盘空间</p>
 
     <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  du –h /mapr/drill_demo/twitter/feed.
 </code></pre></div>    </div>
   </li>
 </ol>
 
-<p>You cannot run queries until data appears in the feed directory. Allow 20-30 minutes minimum.</p>
+<p>数据加载需要等待 20-30 分钟,加载完成之后才可以开始查询数据。</p>
 
 <hr />
 
-<h2 id="provision-a-microstrategy-aws-instance">Provision a MicroStrategy AWS Instance</h2>
+<h2 id="在-aws-虚拟机中配置-microstrategy">在 AWS 虚拟机中配置 MicroStrategy</h2>
 
-<p>MicroStrategy provides an AWS instance of various sizes. It comes with a free 30-day trial for the MicroStrategy instance. AWS charges still apply for the platform and OS.</p>
+<p>MicroStrategy 为 AWS 虚拟机提供各种适配类型。MicroStrategy 有30天的免费试用。AWS 也会针对平台和操作系统收取费用。</p>
 
-<p>To provision the MicroStrategy node in AWS:</p>
+<p>如要在 AWS 中配置 MicroStrategy:</p>
 
 <ol>
-  <li>On the <a href="http://www.microstrategy.com/us/analytics/analytics-on-aws">MicroStrategy website</a>, click <strong>Get started</strong>.</li>
-  <li>Select some number of users, for example, select 25 users.</li>
-  <li>Select the AWS region. Using a MapR node and MicroStrategy instance in the same AWS region is highly recommended.</li>
-  <li>Click <strong>Continue</strong>.</li>
-  <li>On the Manual Launch tab, click <strong>Launch with EC2 Console</strong> next to the appropriate region, and select <strong>r3.large instance</strong>.<br />
-An EC2 instance of r3.large is sufficient for the 25 user version.</li>
-  <li>Click <strong>Configure Instance Details</strong>.</li>
-  <li>Select an appropriate network setting and zones, ideally within the same zone and network as the MapR node that you provisioned.</li>
-  <li>Keep the default storage.</li>
-  <li>Assign a tag to identify the instance.</li>
-  <li>Select a security group that allows sufficient access to external IPs and open all ports because security is not a concern.</li>
-  <li>In the AWS Console, launch an instance, and when the AWS reports that the instance is running, select it, and click <strong>Connect</strong>.</li>
-  <li>Click <strong>Get Password</strong> to get the OS Administrator password.</li>
+  <li>在 <a href="http://www.microstrategy.com/us/analytics/analytics-on-aws">MicroStrategy website</a>页面, 点击 <strong>Get started</strong>。</li>
+  <li>选择用户的数量,比如选择25个用户。</li>
+  <li>选择 AWS 的使用地区。强烈建议给 MapR 节点和 MicroStrategy 实例选择和 AWS 相同的使用地区。</li>
+  <li>点击 <strong>Continue</strong>。</li>
+  <li>在手动启动选项卡上, 点击 <strong>Launch with EC2 Console</strong>, 然后选择 <strong>r3.large instance</strong>
+一个 r3.large 的 EC2 实例足以满足 25 个用户的用户量。</li>
+  <li>点击 <strong>Configure Instance Details</strong>。</li>
+  <li>选择适当的网络设置和网段,最好与您配置的 MapR 节点处在相同的网络中。</li>
+  <li>保留默认存储类型。</li>
+  <li>给实例分配标签以方便识别。</li>
+  <li>选择一个允许外部 IP 访问的安全组,并打开所有端口,不必担心存在安全问题。</li>
+  <li>在 AWS 控制台中,启动一个实例,当 AWS 报告该实例正在运行时,选择该实例并单击 <strong>Connect</strong>。</li>
+  <li>点击 <strong>Get Password</strong> 来获得 OS 的管理员密码。</li>
 </ol>
 
 <div class="admonition important">
   <p class="first admonition-title">Important</p>
-  <p class="last">Make sure that the MicroStrategy instance has a Public IP; elastic IP is preferred but not essential.  </p>
+  <p class="last">确保 MicroStrategy 实例具有公共 IP;弹性 IP 更佳,但不是必需  </p>
 </div>
 
-<p>The instance is now accessible with RDP and is using the relevant AWS credentials and security.</p>
+<p>该实例现在可通过 RDP 访问并绑定 AWS 的证书和安全验证。</p>
 
 <hr />
 
-<h2 id="configure-microstrategy">Configure MicroStrategy</h2>
+<h2 id="配置-microstrategy">配置 MicroStrategy</h2>
 
-<p>You need to configure MicroStrategy to integrate with Drill using the ODBC driver. You install a MicroStrategy package with a number of useful, prebuilt reports for working with Twitter data. You can modify the reports or use the reports as a template to create new and more interesting reports and analysis models.</p>
+<p>你需要使用 ODBC 驱动程序来配置,使 MicroStrategy 可以与 Drill 集成。安装完成后的 MicroStrategy 套件,包含许多实用的 Twitter 数据报告模板。你可以修改报告模板或使用模板来创建新的报告和分析模型。</p>
 
 <ol>
-  <li>Configure a System DSN named <code class="language-plaintext highlighter-rouge">Twitter</code> with the ODBC administrator. The quick start version of the MapR ODBC driver requires the DSN.</li>
-  <li><a href="http://package.mapr.com/tools/MapR-ODBC/MapR_Drill/MapRDrill_odbc_v0.08.1.0618/MapRDrillODBC32.msi">Download the quick start version of the MapR ODBC driver for Drill</a>.</li>
-  <li><a href="http://drill.apache.org/docs/using-microstrategy-analytics-with-apache-drill">Configure the ODBC driver</a> for Drill on MicroStrategy Analytics.<br />
- The Drill object is part of the package and doesn’t need to be configured.</li>
-  <li>Use the AWS Private IP if both the MapR node and the MicroStrategy instance are located in the same region (recommended).</li>
-  <li>Download the <a href="https://github.com/mapr/mapr-demos/blob/master/drill-twitter-MSTR/MSTR/DrillTwitterProjectPackage.mmp">Drill and Twitter configuration</a> package for MicroStrategy on the Windows system using Git for Windows or the full GitHub for Windows.</li>
+  <li>使用 ODBC 管理员配置名为 <code class="language-plaintext highlighter-rouge">Twitter</code> 的 DSN 系统。MapR ODBC 驱动程序的快速入门版本需要 DSN 系统。</li>
+  <li><a href="http://package.mapr.com/tools/MapR-ODBC/MapR_Drill/MapRDrill_odbc_v0.08.1.0618/MapRDrillODBC32.msi">下载用于 Drill 的 MapR ODBC 驱动程序的快速入门版本</a>。</li>
+  <li><a href="http://drill.apache.org/docs/using-microstrategy-analytics-with-apache-drill">配置 ODBC 驱动程序</a> 使 MicroStrategy Analytics 中可以使用 Drill。
+Drill 是程序的一部分,不需要配置。</li>
+  <li>如果 MapR 节点和 MicroStrategy 实例位于同一网络,使用 AWS 虚拟机私有 IP(推荐)。</li>
+  <li>下载 <a href="https://github.com/mapr/mapr-demos/blob/master/drill-twitter-MSTR/MSTR/DrillTwitterProjectPackage.mmp">Drill 和 Twitter 配置</a> 配置 Windows 中的 MicroStrategy 可以使用 Git,同时使 Windows 全面兼容 Git。</li>
 </ol>
 
 <hr />
 
-<h2 id="import-reports">Import Reports</h2>
+<h2 id="导入报告">导入报告</h2>
 
 <ol>
-  <li>In MicroStrategy Developer, select <strong>Schema &gt; Create New Project</strong> to create a new project with MicroStrategy Developer.</li>
-  <li>Click <strong>Create Project</strong> and type a name for the new project.</li>
-  <li>Click <strong>OK</strong>.<br />
-The Project appears in MicroStrategy Developer.</li>
-  <li>Open MicroStrategy Object Manager.</li>
-  <li>Connect to the Project Source and login as Administrator.<br />
+  <li>在 MicroStrategy Developer,选择 <strong>Schema &gt; Create New Project</strong> 来创建新的项目。</li>
+  <li>点击 <strong>Create Project</strong> 给新项目命名。</li>
+  <li>点击 <strong>OK</strong>。
+新项目出现在 MicroStrategy Developer。</li>
+  <li>打开 MicroStrategy Object Manager。</li>
+  <li>连接到 Project Source 并管理员登录
 <img src="/images/docs/socialmed1.png" alt="project sources" /></li>
-  <li>In MicroStrategy Object Manager, MicroStrategy Analytics Modules, select the project for the package. For example, select <strong>Twitter analysis Apache Drill</strong>.<br />
+  <li>在 MicroStrategy Object Manager 中的 MicroStrategy Analytics Modules,选择组件所应用的项目。比如,选择 <strong>Twitter analysis Apache Drill</strong>。  <br />
 <img src="/images/docs/socialmed2.png" alt="project sources" /></li>
-  <li>Select <strong>Tools &gt; Import Configuration Package</strong>.</li>
-  <li>Open the configuration package file, and click <strong>Proceed</strong>.<br />
-<img src="/images/docs/socialmed3.png" alt="project sources" />
-The package with the reports is available in MicroStrategy.</li>
+  <li>选择 <strong>Tools &gt; Import Configuration Package</strong>。</li>
+  <li>打开组件配置文件,并点击 <strong>Proceed</strong>。<br />
+<img src="/images/docs/socialmed3.png" alt="project sources" /><br />
+项目对应的报告便会生成到 MicroStrategy 中。</li>
 </ol>
 
-<p>You can test and modify the reports in MicroStrategy Developer. Configure permissions if necessary.</p>
+<p>你可以在 MicroStrategy Developer 中测试和修改报告。并在必要时修改权限。</p>
 
 <hr />
 
-<h2 id="update-the-schema">Update the Schema</h2>
+<h2 id="更新-schema">更新 Schema</h2>
 
 <ol>
-  <li>In MicroStrategy Developer, select <strong>Schema &gt; Update Schema</strong>.</li>
-  <li>In Schema Update, select all check boxes, and click <strong>Update</strong>.<br />
+  <li>在 MicroStrategy Developer 中, 选择 <strong>Schema &gt; Update Schema</strong>。</li>
+  <li>在 Schema Update 中,勾中所有选项,并点击 <strong>Update</strong>。<br />
 <img src="/images/docs/socialmed4.png" alt="project sources" /></li>
 </ol>
 
 <hr />
 
-<h2 id="create-a-user-and-set-the-password">Create a User and Set the Password</h2>
+<h2 id="创建用户并设置密码">创建用户并设置密码</h2>
 
 <ol>
-  <li>Expand Administration.</li>
-  <li>Expand User Manager, and click <strong>Everyone</strong>.</li>
-  <li>Right-click to create a new user, or click <strong>Administrator</strong> to edit the password.</li>
+  <li>点击 Administration.</li>
+  <li>点击 User Manager, 然后点击 <strong>Everyone</strong>.</li>
+  <li>点击右键创建新用户,或点击 <strong>Administrator</strong> 来编辑密码.</li>
 </ol>
 
 <hr />
 
-<h2 id="about-the-reports">About the Reports</h2>
+<h2 id="关于报告">关于报告</h2>
 
-<p>There are 18 reports in the package. Most reports prompt you to specify date ranges, output limits, and terms as needed. The package contains reports in three main categories:</p>
+<p>组件中有18个报告模板。大多数报告会提示根据需要指定日期范围、输出条件和所需字段。该组件包包含三个主要类别的报告:</p>
 
 <ul>
-  <li>Volumes: A number of reports that show the total volume of Tweets by different date and time designations.</li>
-  <li>Top List: Displays the top Tweets, Retweets, hashtags and users are displayed.</li>
-  <li>Specific Terms: Tweets and Retweets that can be measured or listed based on terms in the text of the Tweet itself.</li>
+  <li>数量统计:指定日期和时间的推文总量。</li>
+  <li>热门列表:显示热门推文、转推、热门话题和用户。</li>
+  <li>关键字:根据推文或者转推中的内容来统计关键字。</li>
 </ul>
 
-<p>You can copy and modify the reports or use the reports as a template for querying Twitter data using Drill.</p>
+<p>你可以复制和修改报告或将报告作为模板并通过 Drill 查询 Twitter。</p>
 
-<p>You can access reports through MicroStrategy Developer or the web interface. MicroStrategy Developer provides a more powerful interface than the web interface to modify reports or add new reports, but requires RDP access to the node.</p>
+<p>你可以通过 MicroStrategy Developer 或 Web 界面访问报告。MicroStrategy Developer 提供了比 Web 界面更强大的接口来修改或添加新报告,但需要对节点进行 RDP 访问。</p>
 
 <hr />
 
-<h2 id="using-the-web-interface">Using the Web Interface</h2>
+<h2 id="使用网页界面">使用网页界面</h2>
 
 <ol>
-  <li>Using a web browser, enter the URL for the web interface:<br />
+  <li>使用 Web 浏览器,输入 Web 界面的 URL:<br />
       http://<MSTR node="" name="" or="" IP="" address="">/MicroStrategy/asp/Main.aspx</MSTR></li>
-  <li>Log in as the User you created or as Administrator, using the credentials created initially with Developer.</li>
-  <li>On the Welcome MicroStrategy Web User page, choose the project that was used to load the analysis package: <strong>Drill Twitter Analysis</strong>.<br />
+  <li>使用初始账户或管理员账户登录,并通过证书初始化 Developer。</li>
+  <li>在 MicroStrategy Web 用户页面上,选择用于加载分析组件的项目:<strong>Drill Twitter Analysis</strong>。<br />
 <img src="/images/docs/socialmed5.png" alt="choose project" /></li>
-  <li>Select <strong>Shared Reports</strong>.<br />
-The folders with the three main categories of the reports appear.
+  <li>选择 <strong>Shared Reports</strong>.<br />
+将出现包含三个主要报告类别的文件夹。
 <img src="/images/docs/socialmed6.png" alt="project sources" /></li>
-  <li>Select a report, and respond to any prompts. For example, to run the Top Tweet Languages by Date Range, enter the required Date_Start and Date_End.<br />
+  <li>选择一个报告,并按提示操作。例如,要按日期范围统计热门推文语言种类,请输入所需的 Date_Start 和 Date_End。 
 <img src="/images/docs/socialmed7.png" alt="project sources" /></li>
-  <li>Click <strong>Run Report</strong>.<br />
-A histogram report appears showing the top tweet languages by date range.
+  <li>点击 <strong>Run Report</strong>.<br />
+直方图报告会按日期范围显示排名靠前的推文语言种类。
 <img src="/images/docs/socialmed8.png" alt="project sources" /></li>
-  <li>To refresh the data or re-enter prompt values, select <strong>Data &gt; Refresh</strong> or <strong>Data &gt; Re-prompt</strong>.</li>
+  <li>要刷新数据或重新输入参数,请选择 <strong>Data &gt; Refresh</strong> 或 <strong>Data &gt; Re-prompt</strong>.</li>
 </ol>
 
-<h2 id="browsing-the-apache-drill-twitter-analysis-reports">Browsing the Apache Drill Twitter Analysis Reports</h2>
+<h2 id="浏览-apache-drill-twitter-分析报告">浏览 Apache Drill Twitter 分析报告</h2>
 
-<p>The MicroStrategy Developer reports are located in the Public Objects folder of the project you chose for installing the package.<br />
+<p>MicroStrategy Developer 报告位于组件安装路径中的 Public Objects 文件夹中
    <img src="/images/docs/socialmed9.png" alt="project sources" />
-Many of the reports require you to respond to prompts to select the desired data. For example, select the Top Hashtags report in the right-hand column. This report requires you to respond to prompts for a Start Date and End Date to specify the date range for data of interest; by default, data for the last two months, ending with the current date is selected. You can also specify the limit for the number of Top Hashtags to be returned; the default is the top 10 hashtags.<br />
+许多报告要求按提示选择合适的参数。例如,选择右侧栏中的 Top Hashtags 报告。此报告需要提供开始日期和结束日期来指定你感兴趣的时间范围;默认情况下,是以当前时间为基准最近两个月的数据。你还可以指定要返回的热门话题的数量;默认是热度前10的热门话题。<br />
    <img src="/images/docs/socialmed10.png" alt="project sources" />
-When you click <strong>Finish</strong> a bar chart report with the hashtag and number of times it appeared in the specified data range appears.<br />
+会出现一个带有热门话题和它在指定参数范围内出现次数的条形图报告。
    <img src="/images/docs/socialmed11.png" alt="project sources" /></p>
 
-<p>Other reports are available in the bundle. For example, this report shows total tweets by hour:
+<p>组件中还提供了其他报告。例如,此报告按小时显示推文总数:
    <img src="/images/docs/socialmed12.png" alt="tweets by hour" />
-This report shows top Retweets for a date range with original Tweet date and count in the date range.<br />
+此报告显示日期范围内的最高转推次数,以及该日期范围内的原始推文日期和计数。<br />
    <img src="/images/docs/socialmed13.png" alt="retweets report" /></p>
 
 <hr />
 
-<h2 id="summary">Summary</h2>
+<h2 id="总结">总结</h2>
 
-<p>In this tutorial, you learned how to configure an environment to stream Twitter data using Apache Flume. You then learned how to analyze the data in native JSON format with SQL using Apache Drill, and how to run interactive reports and analysis using MicroStrategy.</p>
+<p>在本教程中,学习了如何配置环境以使用 Apache Flume 传输 Twitter 数据流。然后学习了如何通过 Apache Drill 使用 SQL 分析原生 JSON 格式的数据,以及如何使用 MicroStrategy 运行交互式报告和分析。</p>
 
     
       
diff --git a/zh/docs/analyzing-the-yelp-academic-dataset/index.html b/zh/docs/analyzing-the-yelp-academic-dataset/index.html
index 516499f..8ef72dd 100644
--- a/zh/docs/analyzing-the-yelp-academic-dataset/index.html
+++ b/zh/docs/analyzing-the-yelp-academic-dataset/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-0-4-0-release-notes/index.html b/zh/docs/apache-drill-0-4-0-release-notes/index.html
index c8d39f0..8ac3e67 100644
--- a/zh/docs/apache-drill-0-4-0-release-notes/index.html
+++ b/zh/docs/apache-drill-0-4-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-0-5-0-release-notes/index.html b/zh/docs/apache-drill-0-5-0-release-notes/index.html
index 5583c83..edfd482 100644
--- a/zh/docs/apache-drill-0-5-0-release-notes/index.html
+++ b/zh/docs/apache-drill-0-5-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-0-6-0-release-notes/index.html b/zh/docs/apache-drill-0-6-0-release-notes/index.html
index ae4d019..43e55e2 100644
--- a/zh/docs/apache-drill-0-6-0-release-notes/index.html
+++ b/zh/docs/apache-drill-0-6-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-0-7-0-release-notes/index.html b/zh/docs/apache-drill-0-7-0-release-notes/index.html
index 28c4c7d..187803c 100644
--- a/zh/docs/apache-drill-0-7-0-release-notes/index.html
+++ b/zh/docs/apache-drill-0-7-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-0-8-0-release-notes/index.html b/zh/docs/apache-drill-0-8-0-release-notes/index.html
index 59a0b60..359a36c 100644
--- a/zh/docs/apache-drill-0-8-0-release-notes/index.html
+++ b/zh/docs/apache-drill-0-8-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-0-9-0-release-notes/index.html b/zh/docs/apache-drill-0-9-0-release-notes/index.html
index 4de1816..a79e585 100644
--- a/zh/docs/apache-drill-0-9-0-release-notes/index.html
+++ b/zh/docs/apache-drill-0-9-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-0-0-release-notes/index.html b/zh/docs/apache-drill-1-0-0-release-notes/index.html
index 51309f3..3d24948 100644
--- a/zh/docs/apache-drill-1-0-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-0-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-1-0-release-notes/index.html b/zh/docs/apache-drill-1-1-0-release-notes/index.html
index 67e22f22..40eefc6 100644
--- a/zh/docs/apache-drill-1-1-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-1-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-10-0-release-notes/index.html b/zh/docs/apache-drill-1-10-0-release-notes/index.html
index 731003c..6ce024f 100644
--- a/zh/docs/apache-drill-1-10-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-10-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-11-0-release-notes/index.html b/zh/docs/apache-drill-1-11-0-release-notes/index.html
index ef637a3..4d7fa9f 100644
--- a/zh/docs/apache-drill-1-11-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-11-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-12-0-release-notes/index.html b/zh/docs/apache-drill-1-12-0-release-notes/index.html
index 5d32c94..2907077 100644
--- a/zh/docs/apache-drill-1-12-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-12-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-13-0-release-notes/index.html b/zh/docs/apache-drill-1-13-0-release-notes/index.html
index 3497b5d..a5644bd 100644
--- a/zh/docs/apache-drill-1-13-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-13-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-14-0-release-notes/index.html b/zh/docs/apache-drill-1-14-0-release-notes/index.html
index c4349a8..17e1dcf 100644
--- a/zh/docs/apache-drill-1-14-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-14-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-15-0-release-notes/index.html b/zh/docs/apache-drill-1-15-0-release-notes/index.html
index 76da487..70792fb 100644
--- a/zh/docs/apache-drill-1-15-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-15-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-16-0-release-notes/index.html b/zh/docs/apache-drill-1-16-0-release-notes/index.html
index cc4d4cf..c092ae4 100644
--- a/zh/docs/apache-drill-1-16-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-16-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-17-0-release-notes/index.html b/zh/docs/apache-drill-1-17-0-release-notes/index.html
index edad9ba..c9296f4 100644
--- a/zh/docs/apache-drill-1-17-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-17-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-18-0-release-notes/index.html b/zh/docs/apache-drill-1-18-0-release-notes/index.html
index 3e7044a..baf836d 100644
--- a/zh/docs/apache-drill-1-18-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-18-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-19-0-release-notes/index.html b/zh/docs/apache-drill-1-19-0-release-notes/index.html
index 78c8b2a..7b76f0b 100644
--- a/zh/docs/apache-drill-1-19-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-19-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-2-0-release-notes/index.html b/zh/docs/apache-drill-1-2-0-release-notes/index.html
index 145a433..ddfe517 100644
--- a/zh/docs/apache-drill-1-2-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-2-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-3-0-release-notes/index.html b/zh/docs/apache-drill-1-3-0-release-notes/index.html
index 951563e..fbca70d 100644
--- a/zh/docs/apache-drill-1-3-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-3-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-4-0-release-notes/index.html b/zh/docs/apache-drill-1-4-0-release-notes/index.html
index fced34b..84081d1 100644
--- a/zh/docs/apache-drill-1-4-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-4-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-5-0-release-notes/index.html b/zh/docs/apache-drill-1-5-0-release-notes/index.html
index 8a28557..1944599 100644
--- a/zh/docs/apache-drill-1-5-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-5-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-6-0-release-notes/index.html b/zh/docs/apache-drill-1-6-0-release-notes/index.html
index e303600..bf8c03b 100644
--- a/zh/docs/apache-drill-1-6-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-6-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-7-0-release-notes/index.html b/zh/docs/apache-drill-1-7-0-release-notes/index.html
index 4d68df7..6cb7316 100644
--- a/zh/docs/apache-drill-1-7-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-7-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-8-0-release-notes/index.html b/zh/docs/apache-drill-1-8-0-release-notes/index.html
index a3437e3..abb75e0 100644
--- a/zh/docs/apache-drill-1-8-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-8-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-1-9-0-release-notes/index.html b/zh/docs/apache-drill-1-9-0-release-notes/index.html
index b71755f..4daf4e8 100644
--- a/zh/docs/apache-drill-1-9-0-release-notes/index.html
+++ b/zh/docs/apache-drill-1-9-0-release-notes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-contribution-guidelines/index.html b/zh/docs/apache-drill-contribution-guidelines/index.html
index 69f75a1..397e560 100644
--- a/zh/docs/apache-drill-contribution-guidelines/index.html
+++ b/zh/docs/apache-drill-contribution-guidelines/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-contribution-ideas/index.html b/zh/docs/apache-drill-contribution-ideas/index.html
index 435bb20..e52b89e 100644
--- a/zh/docs/apache-drill-contribution-ideas/index.html
+++ b/zh/docs/apache-drill-contribution-ideas/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/apache-drill-m1-release-notes-apache-drill-alpha/index.html b/zh/docs/apache-drill-m1-release-notes-apache-drill-alpha/index.html
index 185fe45..6fdeb3a 100644
--- a/zh/docs/apache-drill-m1-release-notes-apache-drill-alpha/index.html
+++ b/zh/docs/apache-drill-m1-release-notes-apache-drill-alpha/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/appendix-a-release-note-issues/index.html b/zh/docs/appendix-a-release-note-issues/index.html
index a52c250..f7ebb85 100644
--- a/zh/docs/appendix-a-release-note-issues/index.html
+++ b/zh/docs/appendix-a-release-note-issues/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/appendix-b-drill-env-sh-settings/index.html b/zh/docs/appendix-b-drill-env-sh-settings/index.html
index 457a3f7..f3c7c08 100644
--- a/zh/docs/appendix-b-drill-env-sh-settings/index.html
+++ b/zh/docs/appendix-b-drill-env-sh-settings/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/appendix-c-troubleshooting/index.html b/zh/docs/appendix-c-troubleshooting/index.html
index 07a0481..8b7b9e3 100644
--- a/zh/docs/appendix-c-troubleshooting/index.html
+++ b/zh/docs/appendix-c-troubleshooting/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/appendix-d-recreate-the-drill-archive/index.html b/zh/docs/appendix-d-recreate-the-drill-archive/index.html
index 16e191f..f79a59d 100644
--- a/zh/docs/appendix-d-recreate-the-drill-archive/index.html
+++ b/zh/docs/appendix-d-recreate-the-drill-archive/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/architecture-introduction/index.html b/zh/docs/architecture-introduction/index.html
index 75a6352..d9e48a2 100644
--- a/zh/docs/architecture-introduction/index.html
+++ b/zh/docs/architecture-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/architecture/index.html b/zh/docs/architecture/index.html
index 908ea8d..bd45726 100644
--- a/zh/docs/architecture/index.html
+++ b/zh/docs/architecture/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/asynchronous-parquet-reader/index.html b/zh/docs/asynchronous-parquet-reader/index.html
index c905d31..d6c1136 100644
--- a/zh/docs/asynchronous-parquet-reader/index.html
+++ b/zh/docs/asynchronous-parquet-reader/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/azure-blob-storage-plugin/index.html b/zh/docs/azure-blob-storage-plugin/index.html
index 45ced4f..c317936 100644
--- a/zh/docs/azure-blob-storage-plugin/index.html
+++ b/zh/docs/azure-blob-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/browsing-data-and-defining-views/index.html b/zh/docs/browsing-data-and-defining-views/index.html
index 5a20a48..94e045d 100644
--- a/zh/docs/browsing-data-and-defining-views/index.html
+++ b/zh/docs/browsing-data-and-defining-views/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/case/index.html b/zh/docs/case/index.html
index 134c270..7b0de2c 100644
--- a/zh/docs/case/index.html
+++ b/zh/docs/case/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/cassandra-storage-plugin/index.html b/zh/docs/cassandra-storage-plugin/index.html
index c03f2ae..43e5304 100644
--- a/zh/docs/cassandra-storage-plugin/index.html
+++ b/zh/docs/cassandra-storage-plugin/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/choosing-a-storage-format/index.html b/zh/docs/choosing-a-storage-format/index.html
index c0e9daa..f9718fc 100644
--- a/zh/docs/choosing-a-storage-format/index.html
+++ b/zh/docs/choosing-a-storage-format/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/compiling-drill-from-source/index.html b/zh/docs/compiling-drill-from-source/index.html
index cb31ab7..35f4cb5 100644
--- a/zh/docs/compiling-drill-from-source/index.html
+++ b/zh/docs/compiling-drill-from-source/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuration-options-introduction/index.html b/zh/docs/configuration-options-introduction/index.html
index f9ca6b0..5f949c8 100644
--- a/zh/docs/configuration-options-introduction/index.html
+++ b/zh/docs/configuration-options-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuration-options/index.html b/zh/docs/configuration-options/index.html
index c3abf04..c576710 100644
--- a/zh/docs/configuration-options/index.html
+++ b/zh/docs/configuration-options/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuration-reference/index.html b/zh/docs/configuration-reference/index.html
index fbf8f13..c0d597e 100644
--- a/zh/docs/configuration-reference/index.html
+++ b/zh/docs/configuration-reference/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configure-drill-introduction/index.html b/zh/docs/configure-drill-introduction/index.html
index 4fa3567..fc250ae 100644
--- a/zh/docs/configure-drill-introduction/index.html
+++ b/zh/docs/configure-drill-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configure-drill/index.html b/zh/docs/configure-drill/index.html
index 1c31534..7188ef6 100644
--- a/zh/docs/configure-drill/index.html
+++ b/zh/docs/configure-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-a-multitenant-cluster-introduction/index.html b/zh/docs/configuring-a-multitenant-cluster-introduction/index.html
index da02d6c..6e246aa 100644
--- a/zh/docs/configuring-a-multitenant-cluster-introduction/index.html
+++ b/zh/docs/configuring-a-multitenant-cluster-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-a-multitenant-cluster/index.html b/zh/docs/configuring-a-multitenant-cluster/index.html
index c74eb6e..5175c79 100644
--- a/zh/docs/configuring-a-multitenant-cluster/index.html
+++ b/zh/docs/configuring-a-multitenant-cluster/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-cgroups-to-control-cpu-usage/index.html b/zh/docs/configuring-cgroups-to-control-cpu-usage/index.html
index 6b9a4ac..f786c43 100644
--- a/zh/docs/configuring-cgroups-to-control-cpu-usage/index.html
+++ b/zh/docs/configuring-cgroups-to-control-cpu-usage/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-custom-acls-to-secure-znodes/index.html b/zh/docs/configuring-custom-acls-to-secure-znodes/index.html
index cc02e97..96c6cca 100644
--- a/zh/docs/configuring-custom-acls-to-secure-znodes/index.html
+++ b/zh/docs/configuring-custom-acls-to-secure-znodes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-drill-memory/index.html b/zh/docs/configuring-drill-memory/index.html
index 4a86d2c..b095ebe 100644
--- a/zh/docs/configuring-drill-memory/index.html
+++ b/zh/docs/configuring-drill-memory/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-drill-to-use-spnego-for-http-authentication/index.html b/zh/docs/configuring-drill-to-use-spnego-for-http-authentication/index.html
index 28a5647..e1f754a 100644
--- a/zh/docs/configuring-drill-to-use-spnego-for-http-authentication/index.html
+++ b/zh/docs/configuring-drill-to-use-spnego-for-http-authentication/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-inbound-impersonation/index.html b/zh/docs/configuring-inbound-impersonation/index.html
index 8179ad0..78bccec 100644
--- a/zh/docs/configuring-inbound-impersonation/index.html
+++ b/zh/docs/configuring-inbound-impersonation/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-index-planning/index.html b/zh/docs/configuring-index-planning/index.html
index 7de0f4e..f5eaf95 100644
--- a/zh/docs/configuring-index-planning/index.html
+++ b/zh/docs/configuring-index-planning/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-jreport-with-drill/index.html b/zh/docs/configuring-jreport-with-drill/index.html
index c0944a5..79cdca7 100644
--- a/zh/docs/configuring-jreport-with-drill/index.html
+++ b/zh/docs/configuring-jreport-with-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-kerberos-security/index.html b/zh/docs/configuring-kerberos-security/index.html
index fd6b133..fb251f6 100644
--- a/zh/docs/configuring-kerberos-security/index.html
+++ b/zh/docs/configuring-kerberos-security/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-multitenant-resources/index.html b/zh/docs/configuring-multitenant-resources/index.html
index e32ba4f..b627af3 100644
--- a/zh/docs/configuring-multitenant-resources/index.html
+++ b/zh/docs/configuring-multitenant-resources/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-odbc-on-linux/index.html b/zh/docs/configuring-odbc-on-linux/index.html
index 0e6c6b7..402c848 100644
--- a/zh/docs/configuring-odbc-on-linux/index.html
+++ b/zh/docs/configuring-odbc-on-linux/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-odbc-on-mac-os-x/index.html b/zh/docs/configuring-odbc-on-mac-os-x/index.html
index d61a793..d7a54de 100644
--- a/zh/docs/configuring-odbc-on-mac-os-x/index.html
+++ b/zh/docs/configuring-odbc-on-mac-os-x/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-odbc-on-windows/index.html b/zh/docs/configuring-odbc-on-windows/index.html
index 1c5b4e7..b459d55 100644
--- a/zh/docs/configuring-odbc-on-windows/index.html
+++ b/zh/docs/configuring-odbc-on-windows/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-odbc/index.html b/zh/docs/configuring-odbc/index.html
index 271215a..6831766 100644
--- a/zh/docs/configuring-odbc/index.html
+++ b/zh/docs/configuring-odbc/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-plain-security/index.html b/zh/docs/configuring-plain-security/index.html
index 2752d83..f9257b8 100644
--- a/zh/docs/configuring-plain-security/index.html
+++ b/zh/docs/configuring-plain-security/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-resources-for-a-shared-drillbit/index.html b/zh/docs/configuring-resources-for-a-shared-drillbit/index.html
index 4b6aa75..f9fd785 100644
--- a/zh/docs/configuring-resources-for-a-shared-drillbit/index.html
+++ b/zh/docs/configuring-resources-for-a-shared-drillbit/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-ssl-tls-for-encryption/index.html b/zh/docs/configuring-ssl-tls-for-encryption/index.html
index 2552ce7..baac127 100644
--- a/zh/docs/configuring-ssl-tls-for-encryption/index.html
+++ b/zh/docs/configuring-ssl-tls-for-encryption/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-storage-plugins/index.html b/zh/docs/configuring-storage-plugins/index.html
index 03e5ebf..232748a 100644
--- a/zh/docs/configuring-storage-plugins/index.html
+++ b/zh/docs/configuring-storage-plugins/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-the-drill-shell/index.html b/zh/docs/configuring-the-drill-shell/index.html
index 9c0ce8e..773479a 100644
--- a/zh/docs/configuring-the-drill-shell/index.html
+++ b/zh/docs/configuring-the-drill-shell/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-tibco-spotfire-server-with-drill/index.html b/zh/docs/configuring-tibco-spotfire-server-with-drill/index.html
index d13a2dd..c8f59c4 100644
--- a/zh/docs/configuring-tibco-spotfire-server-with-drill/index.html
+++ b/zh/docs/configuring-tibco-spotfire-server-with-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-user-impersonation-with-hive-authorization/index.html b/zh/docs/configuring-user-impersonation-with-hive-authorization/index.html
index 127f3a7..4df8e11 100644
--- a/zh/docs/configuring-user-impersonation-with-hive-authorization/index.html
+++ b/zh/docs/configuring-user-impersonation-with-hive-authorization/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-user-impersonation/index.html b/zh/docs/configuring-user-impersonation/index.html
index 445c870..c45ddd7 100644
--- a/zh/docs/configuring-user-impersonation/index.html
+++ b/zh/docs/configuring-user-impersonation/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-user-security/index.html b/zh/docs/configuring-user-security/index.html
index f0b0ef0..d7275e9 100644
--- a/zh/docs/configuring-user-security/index.html
+++ b/zh/docs/configuring-user-security/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/configuring-web-ui-and-rest-api-security/index.html b/zh/docs/configuring-web-ui-and-rest-api-security/index.html
index e484120..6e0cfc1 100644
--- a/zh/docs/configuring-web-ui-and-rest-api-security/index.html
+++ b/zh/docs/configuring-web-ui-and-rest-api-security/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/connect-a-data-source-introduction/index.html b/zh/docs/connect-a-data-source-introduction/index.html
index 4e79e35..a406603 100644
--- a/zh/docs/connect-a-data-source-introduction/index.html
+++ b/zh/docs/connect-a-data-source-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/connect-a-data-source/index.html b/zh/docs/connect-a-data-source/index.html
index 8523b2f..800fb86 100644
--- a/zh/docs/connect-a-data-source/index.html
+++ b/zh/docs/connect-a-data-source/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/connecting-drill-explorer-to-data/index.html b/zh/docs/connecting-drill-explorer-to-data/index.html
index 7fc30a7..a7b11bf 100644
--- a/zh/docs/connecting-drill-explorer-to-data/index.html
+++ b/zh/docs/connecting-drill-explorer-to-data/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/contribute-to-drill/index.html b/zh/docs/contribute-to-drill/index.html
index bfad1f4..872e131 100644
--- a/zh/docs/contribute-to-drill/index.html
+++ b/zh/docs/contribute-to-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/controlling-parallelization-to-balance-performance-with-multi-tenancy/index.html b/zh/docs/controlling-parallelization-to-balance-performance-with-multi-tenancy/index.html
index f998005..4a97064 100644
--- a/zh/docs/controlling-parallelization-to-balance-performance-with-multi-tenancy/index.html
+++ b/zh/docs/controlling-parallelization-to-balance-performance-with-multi-tenancy/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/core-modules/index.html b/zh/docs/core-modules/index.html
index a90ee20..1a6adb3 100644
--- a/zh/docs/core-modules/index.html
+++ b/zh/docs/core-modules/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/create-function-using-jar/index.html b/zh/docs/create-function-using-jar/index.html
index ff594f4..5ea93e4 100644
--- a/zh/docs/create-function-using-jar/index.html
+++ b/zh/docs/create-function-using-jar/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/create-or-replace-schema/index.html b/zh/docs/create-or-replace-schema/index.html
index b52da8a..a3e996a 100644
--- a/zh/docs/create-or-replace-schema/index.html
+++ b/zh/docs/create-or-replace-schema/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/create-table-as-ctas/index.html b/zh/docs/create-table-as-ctas/index.html
index e86e8c3..8a36994 100644
--- a/zh/docs/create-table-as-ctas/index.html
+++ b/zh/docs/create-table-as-ctas/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/create-temporary-table-as-cttas/index.html b/zh/docs/create-temporary-table-as-cttas/index.html
index 8c5d6f8..3f67363 100644
--- a/zh/docs/create-temporary-table-as-cttas/index.html
+++ b/zh/docs/create-temporary-table-as-cttas/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/create-view/index.html b/zh/docs/create-view/index.html
index b942962..a50355f 100644
--- a/zh/docs/create-view/index.html
+++ b/zh/docs/create-view/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/creating-a-basic-drill-cluster/index.html b/zh/docs/creating-a-basic-drill-cluster/index.html
index ecf5bed..2e57667 100644
--- a/zh/docs/creating-a-basic-drill-cluster/index.html
+++ b/zh/docs/creating-a-basic-drill-cluster/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/creating-custom-authenticators/index.html b/zh/docs/creating-custom-authenticators/index.html
index 6f484fc..6d4822f 100644
--- a/zh/docs/creating-custom-authenticators/index.html
+++ b/zh/docs/creating-custom-authenticators/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/cryptography-functions/index.html b/zh/docs/cryptography-functions/index.html
index 9c62570..0fb36ad 100644
--- a/zh/docs/cryptography-functions/index.html
+++ b/zh/docs/cryptography-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/custom-function-interfaces/index.html b/zh/docs/custom-function-interfaces/index.html
index 476aca4..ff00ca5 100644
--- a/zh/docs/custom-function-interfaces/index.html
+++ b/zh/docs/custom-function-interfaces/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/data-sources-and-file-formats-introduction/index.html b/zh/docs/data-sources-and-file-formats-introduction/index.html
index 6ad0d11..372ccd6 100644
--- a/zh/docs/data-sources-and-file-formats-introduction/index.html
+++ b/zh/docs/data-sources-and-file-formats-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/data-sources-and-file-formats/index.html b/zh/docs/data-sources-and-file-formats/index.html
index 0d8ecee..db235a5 100644
--- a/zh/docs/data-sources-and-file-formats/index.html
+++ b/zh/docs/data-sources-and-file-formats/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/data-type-conversion/index.html b/zh/docs/data-type-conversion/index.html
index 5719f7a..843035e 100644
--- a/zh/docs/data-type-conversion/index.html
+++ b/zh/docs/data-type-conversion/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/data-type-functions/index.html b/zh/docs/data-type-functions/index.html
index 4bbb686..6d68640 100644
--- a/zh/docs/data-type-functions/index.html
+++ b/zh/docs/data-type-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/data-types/index.html b/zh/docs/data-types/index.html
index d508dcf..d5e1eee 100644
--- a/zh/docs/data-types/index.html
+++ b/zh/docs/data-types/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/date-time-and-timestamp/index.html b/zh/docs/date-time-and-timestamp/index.html
index c9beccc..d0db8ba 100644
--- a/zh/docs/date-time-and-timestamp/index.html
+++ b/zh/docs/date-time-and-timestamp/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/date-time-functions-and-arithmetic/index.html b/zh/docs/date-time-functions-and-arithmetic/index.html
index 984ff99..2a5db5b 100644
--- a/zh/docs/date-time-functions-and-arithmetic/index.html
+++ b/zh/docs/date-time-functions-and-arithmetic/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/deploying-and-using-a-hive-udf/index.html b/zh/docs/deploying-and-using-a-hive-udf/index.html
index 8ea26be..861c5fe 100644
--- a/zh/docs/deploying-and-using-a-hive-udf/index.html
+++ b/zh/docs/deploying-and-using-a-hive-udf/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/describe/index.html b/zh/docs/describe/index.html
index 2d582a0..07abcef 100644
--- a/zh/docs/describe/index.html
+++ b/zh/docs/describe/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/design-docs/index.html b/zh/docs/design-docs/index.html
index 7901da2..0502307 100644
--- a/zh/docs/design-docs/index.html
+++ b/zh/docs/design-docs/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/designing-indexes-for-your-queries/index.html b/zh/docs/designing-indexes-for-your-queries/index.html
index 28d3c54..5b3f93d 100644
--- a/zh/docs/designing-indexes-for-your-queries/index.html
+++ b/zh/docs/designing-indexes-for-your-queries/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/develop-custom-functions-introduction/index.html b/zh/docs/develop-custom-functions-introduction/index.html
index e533ef3..763d0be 100644
--- a/zh/docs/develop-custom-functions-introduction/index.html
+++ b/zh/docs/develop-custom-functions-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/develop-custom-functions/index.html b/zh/docs/develop-custom-functions/index.html
index 6ee959c..2aaafc8 100644
--- a/zh/docs/develop-custom-functions/index.html
+++ b/zh/docs/develop-custom-functions/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/develop-drill/index.html b/zh/docs/develop-drill/index.html
index 0e3838d..d82ab25 100644
--- a/zh/docs/develop-drill/index.html
+++ b/zh/docs/develop-drill/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/developer-information/index.html b/zh/docs/developer-information/index.html
index 74d47d9..d94bafb 100644
--- a/zh/docs/developer-information/index.html
+++ b/zh/docs/developer-information/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/developing-a-simple-function/index.html b/zh/docs/developing-a-simple-function/index.html
index aa1ab1d..088865e 100644
--- a/zh/docs/developing-a-simple-function/index.html
+++ b/zh/docs/developing-a-simple-function/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/developing-an-aggregate-function/index.html b/zh/docs/developing-an-aggregate-function/index.html
index 57bb451..4f0786b 100644
--- a/zh/docs/developing-an-aggregate-function/index.html
+++ b/zh/docs/developing-an-aggregate-function/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/distributed-mode-prerequisites/index.html b/zh/docs/distributed-mode-prerequisites/index.html
index f1c608e..905c873 100644
--- a/zh/docs/distributed-mode-prerequisites/index.html
+++ b/zh/docs/distributed-mode-prerequisites/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/drill-default-input-format/index.html b/zh/docs/drill-default-input-format/index.html
index c5572d9..1f51130 100644
--- a/zh/docs/drill-default-input-format/index.html
+++ b/zh/docs/drill-default-input-format/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/drill-explorer-introduction/index.html b/zh/docs/drill-explorer-introduction/index.html
index af95076..2f19c61 100644
--- a/zh/docs/drill-explorer-introduction/index.html
+++ b/zh/docs/drill-explorer-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/drill-iceberg-metastore/index.html b/zh/docs/drill-iceberg-metastore/index.html
index b8f29e8..46f45f6 100644
--- a/zh/docs/drill-iceberg-metastore/index.html
+++ b/zh/docs/drill-iceberg-metastore/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/drill-in-10-minutes/index.html b/zh/docs/drill-in-10-minutes/index.html
index 459cefe..367802b 100644
--- a/zh/docs/drill-in-10-minutes/index.html
+++ b/zh/docs/drill-in-10-minutes/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/drill-introduction/index.html b/zh/docs/drill-introduction/index.html
index 45c1c84..b38c604 100644
--- a/zh/docs/drill-introduction/index.html
+++ b/zh/docs/drill-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/drill-metastore/index.html b/zh/docs/drill-metastore/index.html
index 5267480..71e4521 100644
--- a/zh/docs/drill-metastore/index.html
+++ b/zh/docs/drill-metastore/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/drill-on-yarn-command-line-tool/index.html b/zh/docs/drill-on-yarn-command-line-tool/index.html
index dbe2e7b..0eed90c 100644
--- a/zh/docs/drill-on-yarn-command-line-tool/index.html
+++ b/zh/docs/drill-on-yarn-command-line-tool/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/drill-on-yarn-introduction/index.html b/zh/docs/drill-on-yarn-introduction/index.html
index 4f949e8..2c1e0a1 100644
--- a/zh/docs/drill-on-yarn-introduction/index.html
+++ b/zh/docs/drill-on-yarn-introduction/index.html
@@ -234,6 +234,10 @@
               <li class="toctree-l2"><a class="reference internal" href="/zh/docs/analyzing-data-using-window-functions/">通过窗口函数分析数据集</a></li>
             
           
+            
+              <li class="toctree-l2"><a class="reference internal" href="/zh/docs/orchestrating-queries-with-airflow/">Orchestrating queries with Airflow</a></li>
+            
+          
           </ul>
         
       
diff --git a/zh/docs/drill-on-yarn/index.html b/zh/docs/drill-on-yarn/index.html
index 914226b..2d8643a 100644
--- a/zh/docs/drill-on-yarn/index.html
+++ b/zh/docs/drill-on-yarn/index.html
@@ -234,6 +234,10 @@
... 4612 lines suppressed ...