Repository: drill Updated Branches: refs/heads/gh-pages 5b1089c39 -> ae07d7f8f
edits to put headings in order Project: http://git-wip-us.apache.org/repos/asf/drill/repo Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/ae07d7f8 Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/ae07d7f8 Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/ae07d7f8 Branch: refs/heads/gh-pages Commit: ae07d7f8f25f3b527a2723acfa9a9adf83209972 Parents: 5b1089c Author: Bridget Bevens <[email protected]> Authored: Wed Feb 7 18:32:54 2018 -0800 Committer: Bridget Bevens <[email protected]> Committed: Wed Feb 7 18:32:54 2018 -0800 ---------------------------------------------------------------------- _data/docs.json | 71 +++++++++++++++++--- .../070-configuring-user-security.md | 16 +++-- .../080-drill-default-input-format.md | 4 +- .../plugins/080-rdbms-storage-plugin.md | 16 ++--- .../plugins/110-s3-storage-plugin.md | 8 +-- .../plugins/112-opentsdb-storage-plugin.md | 8 ++- .../050-analyzing-highly-dynamic-datasets.md | 14 ++-- .../030-lesson-1-learn-about-the-data-set.md | 14 ++-- 8 files changed, 103 insertions(+), 48 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/drill/blob/ae07d7f8/_data/docs.json ---------------------------------------------------------------------- diff --git a/_data/docs.json b/_data/docs.json index d28de30..e25ef47 100644 --- a/_data/docs.json +++ b/_data/docs.json @@ -2467,14 +2467,31 @@ } ], "children": [], - "next_title": "ODBC/JDBC Interfaces", - "next_url": "/docs/odbc-jdbc-interfaces/", + "next_title": "OpenTSDB Storage Plugin", + "next_url": "/docs/opentsdb-storage-plugin/", "parent": "Connect a Data Source", "previous_title": "S3 Storage Plugin", "previous_url": "/docs/s3-storage-plugin/", "relative_path": "_docs/connect-a-data-source/plugins/111-httpd-storage-plugin.md", "title": "HTTPD Storage Plugin", "url": "/docs/httpd-storage-plugin/" + }, + { + "breadcrumbs": [ + { + "title": "Connect a Data Source", + "url": "/docs/connect-a-data-source/" + } + ], + "children": [], + "next_title": "ODBC/JDBC Interfaces", + "next_url": "/docs/odbc-jdbc-interfaces/", + "parent": "Connect a Data Source", + "previous_title": "HTTPD Storage Plugin", + "previous_url": "/docs/httpd-storage-plugin/", + "relative_path": "_docs/connect-a-data-source/plugins/112-opentsdb-storage-plugin.md", + "title": "OpenTSDB Storage Plugin", + "url": "/docs/opentsdb-storage-plugin/" } ], "next_title": "Connect a Data Source Introduction", @@ -4268,8 +4285,8 @@ } ], "children": [], - "next_title": "ODBC/JDBC Interfaces", - "next_url": "/docs/odbc-jdbc-interfaces/", + "next_title": "OpenTSDB Storage Plugin", + "next_url": "/docs/opentsdb-storage-plugin/", "parent": "Connect a Data Source", "previous_title": "S3 Storage Plugin", "previous_url": "/docs/s3-storage-plugin/", @@ -6602,8 +6619,8 @@ "next_title": "Interfaces Introduction", "next_url": "/docs/interfaces-introduction/", "parent": "", - "previous_title": "HTTPD Storage Plugin", - "previous_url": "/docs/httpd-storage-plugin/", + "previous_title": "OpenTSDB Storage Plugin", + "previous_url": "/docs/opentsdb-storage-plugin/", "relative_path": "_docs/060-odbc-jdbc-interfaces.md", "title": "ODBC/JDBC Interfaces", "url": "/docs/odbc-jdbc-interfaces/" @@ -6650,6 +6667,23 @@ "title": "ORDER BY Clause", "url": "/docs/order-by-clause/" }, + "OpenTSDB Storage Plugin": { + "breadcrumbs": [ + { + "title": "Connect a Data Source", + "url": "/docs/connect-a-data-source/" + } + ], + "children": [], + "next_title": "ODBC/JDBC Interfaces", + "next_url": "/docs/odbc-jdbc-interfaces/", + "parent": "Connect a Data Source", + "previous_title": "HTTPD Storage Plugin", + "previous_url": "/docs/httpd-storage-plugin/", + "relative_path": "_docs/connect-a-data-source/plugins/112-opentsdb-storage-plugin.md", + "title": "OpenTSDB Storage Plugin", + "url": "/docs/opentsdb-storage-plugin/" + }, "Operators": { "breadcrumbs": [ { @@ -15406,14 +15440,31 @@ } ], "children": [], - "next_title": "ODBC/JDBC Interfaces", - "next_url": "/docs/odbc-jdbc-interfaces/", + "next_title": "OpenTSDB Storage Plugin", + "next_url": "/docs/opentsdb-storage-plugin/", "parent": "Connect a Data Source", "previous_title": "S3 Storage Plugin", "previous_url": "/docs/s3-storage-plugin/", "relative_path": "_docs/connect-a-data-source/plugins/111-httpd-storage-plugin.md", "title": "HTTPD Storage Plugin", "url": "/docs/httpd-storage-plugin/" + }, + { + "breadcrumbs": [ + { + "title": "Connect a Data Source", + "url": "/docs/connect-a-data-source/" + } + ], + "children": [], + "next_title": "ODBC/JDBC Interfaces", + "next_url": "/docs/odbc-jdbc-interfaces/", + "parent": "Connect a Data Source", + "previous_title": "HTTPD Storage Plugin", + "previous_url": "/docs/httpd-storage-plugin/", + "relative_path": "_docs/connect-a-data-source/plugins/112-opentsdb-storage-plugin.md", + "title": "OpenTSDB Storage Plugin", + "url": "/docs/opentsdb-storage-plugin/" } ], "next_title": "Connect a Data Source Introduction", @@ -16038,8 +16089,8 @@ "next_title": "Interfaces Introduction", "next_url": "/docs/interfaces-introduction/", "parent": "", - "previous_title": "HTTPD Storage Plugin", - "previous_url": "/docs/httpd-storage-plugin/", + "previous_title": "OpenTSDB Storage Plugin", + "previous_url": "/docs/opentsdb-storage-plugin/", "relative_path": "_docs/060-odbc-jdbc-interfaces.md", "title": "ODBC/JDBC Interfaces", "url": "/docs/odbc-jdbc-interfaces/" http://git-wip-us.apache.org/repos/asf/drill/blob/ae07d7f8/_docs/configure-drill/securing-drill/070-configuring-user-security.md ---------------------------------------------------------------------- diff --git a/_docs/configure-drill/securing-drill/070-configuring-user-security.md b/_docs/configure-drill/securing-drill/070-configuring-user-security.md index f25b457..2f13311 100644 --- a/_docs/configure-drill/securing-drill/070-configuring-user-security.md +++ b/_docs/configure-drill/securing-drill/070-configuring-user-security.md @@ -1,9 +1,9 @@ --- title: "Configuring User Security" -date: 2017-05-17 01:38:49 UTC +date: 2018-02-08 02:32:55 UTC parent: "Securing Drill" --- -### Authentication +## Authentication Authentication is the process of establishing confidence of authenticity. A Drill client user is authenticated when a drillbit process running in a Drill cluster confirms the identity it is presented with. Drill supports several authentication mechanisms through which users can prove their identity before accessing cluster data: @@ -13,7 +13,7 @@ Authentication is the process of establishing confidence of authenticity. A Dril These authentication options are available through JDBC and ODBC interfaces. -### Encryption +## Encryption Drill 1.11 introduces client-to-drillbit encryption for over-the-wire security using the Kerberos to: @@ -23,19 +23,21 @@ Drill 1.11 introduces client-to-drillbit encryption for over-the-wire security u See [Configuring Kerberos Security]({{site.baseurl}}/docs/configuring-kerberos-security/) for information about how to enable a drillbit for encryption. -{% include startnote.html %}The Plain mechanism does not support encryption.{% include endnote.html %} -#### Cipher Strength +{% include startnote.html %}The Plain mechanism does not support encryption.{% include endnote.html %} + +**Cipher Strength** By default, the highest security level is negotiated during the SASL handshake for each client-to-drillbit connection so that the AES-256 ciper is used when supported by key distribution center (KDC) encryption types. See [Encryption Types](http://web.mit.edu/kerberos/krb5-1.13/doc/admin/enctypes.html](http://web.mit.edu/kerberos/krb5-1.13/doc/admin/enctypes.html "Encryption Types") in the MIT Kerberos documentation for details about specific combinations of cipher algorithms. -#### Client Compatibility +**Client Compatibility** + The following table shows Drill client version compatibility with secure Drill clusters enabled with encryption. Drill 1.10 clients and lower do not support encryption and will not be allowed to connect to a drillbit with encryption enabled.  See *Client Encryption* in [Configuring Kerberos Security]({{site.baseurl}}/docs/server-communication-paths/#configuring-kerberos-security#client-encryption) for the client connection string parameter, `sasl_encrypt` usage information. -### Impersonation +## Impersonation Enabling both user impersonation and authentication is recommended to restrict access to data and improve security. When user impersonation is enabled, Drill executes the client requests as the authenticated user. Otherwise, Drill executes client requests as the user that started the drillbit process. http://git-wip-us.apache.org/repos/asf/drill/blob/ae07d7f8/_docs/connect-a-data-source/080-drill-default-input-format.md ---------------------------------------------------------------------- diff --git a/_docs/connect-a-data-source/080-drill-default-input-format.md b/_docs/connect-a-data-source/080-drill-default-input-format.md index 3cbca1b..1105670 100644 --- a/_docs/connect-a-data-source/080-drill-default-input-format.md +++ b/_docs/connect-a-data-source/080-drill-default-input-format.md @@ -1,6 +1,6 @@ --- title: "Drill Default Input Format" -date: +date: 2018-02-08 02:32:55 UTC parent: "Storage Plugin Configuration" --- You can define a default input format to tell Drill what file type exists in a @@ -30,7 +30,7 @@ To define a default input format for a workspace: 3. Click **Update** next to the storage plugin configuration for which you want to define a default input format for a workspace. 4. In the Configuration area, locate the workspace, and change the `defaultInputFormat` attribute to any of the supported file types. -### Example of Defining a Default Input Format +## Example of Defining a Default Input Format ``` { http://git-wip-us.apache.org/repos/asf/drill/blob/ae07d7f8/_docs/connect-a-data-source/plugins/080-rdbms-storage-plugin.md ---------------------------------------------------------------------- diff --git a/_docs/connect-a-data-source/plugins/080-rdbms-storage-plugin.md b/_docs/connect-a-data-source/plugins/080-rdbms-storage-plugin.md index 22faa00..982c32d 100644 --- a/_docs/connect-a-data-source/plugins/080-rdbms-storage-plugin.md +++ b/_docs/connect-a-data-source/plugins/080-rdbms-storage-plugin.md @@ -1,13 +1,13 @@ --- title: "RDBMS Storage Plugin" -date: 2017-07-25 01:09:40 UTC +date: 2018-02-08 02:32:56 UTC parent: "Connect a Data Source" --- Apache Drill supports querying a number of RDBMS instances. This allows you to connect your traditional databases to your Drill cluster so you can have a single view of both your relational and NoSQL datasources in a single system. As with any source, Drill supports joins within and between all systems. Drill additionally has powerful pushdown capabilities with RDBMS sources. This includes support to push down join, where, group by, intersect and other SQL operations into a particular RDBMS source (as appropriate). -### Using the RDBMS Storage Plugin +## Using the RDBMS Storage Plugin Drill is designed to work with any relational datastore that provides a JDBC driver. Drill is actively tested with Postgres, MySQL, Oracle, MSSQL and Apache Derby. For each system, you will follow three basic steps for setup: @@ -16,7 +16,7 @@ Drill is designed to work with any relational datastore that provides a JDBC dri 3. Restart Drill. See [Starting Drill in Distributed Mode]({{site.baseurl}}/docs/starting-drill-in-distributed-mode/). 4. Add a new storage configuration to Drill through the Web Console. Example configurations for [Oracle](#Example-Oracle-Configuration), [SQL Server](#Example-SQL-Server-Configuration), [MySQL](#Example-MySQL-Configuration) and [Postgres](#Example-Postgres-Configuration) are provided below. -## Example: Working with MySQL +**Example: Working with MySQL** Drill communicates with MySQL through the JDBC driver using the configuration that you specify in the Web Console or through the [REST API]({{site.baseurl}}/docs/plugin-configuration-basics/#storage-plugin-rest-api). @@ -62,7 +62,7 @@ You can use the performance_schema database, which is installed with MySQL to qu ## Example Configurations -### Example Oracle Configuration +**Example Oracle Configuration** Download and install Oracle's Thin [ojdbc7.12.1.0.2.jar](http://www.oracle.com/technetwork/database/features/jdbc/default-2280470.html) driver and copy it to all nodes in your cluster. @@ -73,7 +73,7 @@ Download and install Oracle's Thin [ojdbc7.12.1.0.2.jar](http://www.oracle.com/t url:"jdbc:oracle:thin:user/[email protected]:1521/ORCL" } -### Example SQL Server Configuration +**Example SQL Server Configuration** For SQL Server, Drill has been tested with Microsoft's [sqljdbc41.4.2.6420.100.jar](https://www.microsoft.com/en-US/download/details.aspx?id=11774) driver. Copy this jar file to all Drillbits. @@ -88,7 +88,7 @@ For SQL Server, Drill has been tested with Microsoft's [sqljdbc41.4.2.6420.100. password:"password" } -### Example MySQL Configuration +**Example MySQL Configuration** For MySQL, Drill has been tested with MySQL's [mysql-connector-java-5.1.37-bin.jar](http://dev.mysql.com/downloads/connector/j/) driver. Copy this to all nodes. @@ -99,9 +99,9 @@ For MySQL, Drill has been tested with MySQL's [mysql-connector-java-5.1.37-bin.j url:"jdbc:mysql://1.2.3.4", username:"user", password:"password" - } + } -### Example Postgres Configuration +**Example Postgres Configuration** For Postgres, Drill has been tested with Postgres's [9.1-901-1.jdbc4](http://central.maven.org/maven2/org/postgresql/postgresql/) driver (any recent driver should work). Copy this driver file to all nodes. http://git-wip-us.apache.org/repos/asf/drill/blob/ae07d7f8/_docs/connect-a-data-source/plugins/110-s3-storage-plugin.md ---------------------------------------------------------------------- diff --git a/_docs/connect-a-data-source/plugins/110-s3-storage-plugin.md b/_docs/connect-a-data-source/plugins/110-s3-storage-plugin.md index 4f9e0b1..064939b 100644 --- a/_docs/connect-a-data-source/plugins/110-s3-storage-plugin.md +++ b/_docs/connect-a-data-source/plugins/110-s3-storage-plugin.md @@ -1,6 +1,6 @@ --- title: "S3 Storage Plugin" -date: +date: 2018-02-08 02:32:56 UTC parent: "Connect a Data Source" --- Drill works with data stored in the cloud. With a few simple steps, you can configure the S3 storage plugin for Drill and be off to the races running queries. @@ -11,7 +11,7 @@ Starting with version 1.3.0, Drill has the ability to query files stored on Amaz There are two simple steps to follow: (1) provide your AWS credentials (2) configure S3 storage plugin with S3 bucket -#### (1) AWS credentials +**(1) AWS credentials** To enable Drill's S3a support, edit the file conf/core-site.xml in your Drill install directory, replacing the text ENTER_YOUR_ACESSKEY and ENTER_YOUR_SECRETKEY with your AWS credentials. @@ -31,7 +31,7 @@ To enable Drill's S3a support, edit the file conf/core-site.xml in your Drill in </configuration> ``` -#### (2) Configure S3 Storage Plugin +**(2) Configure S3 Storage Plugin** Enable S3 storage plugin if you already have one configured or you can add a new plugin by following these steps: @@ -43,7 +43,7 @@ Enable S3 storage plugin if you already have one configured or you can add a new You should now be able to talk to data stored on S3 using the S3a library. -## Example S3 Storage Plugin +**Example S3 Storage Plugin** ``` { http://git-wip-us.apache.org/repos/asf/drill/blob/ae07d7f8/_docs/connect-a-data-source/plugins/112-opentsdb-storage-plugin.md ---------------------------------------------------------------------- diff --git a/_docs/connect-a-data-source/plugins/112-opentsdb-storage-plugin.md b/_docs/connect-a-data-source/plugins/112-opentsdb-storage-plugin.md index 75af1af..690bccb 100644 --- a/_docs/connect-a-data-source/plugins/112-opentsdb-storage-plugin.md +++ b/_docs/connect-a-data-source/plugins/112-opentsdb-storage-plugin.md @@ -1,6 +1,6 @@ --- title: "OpenTSDB Storage Plugin" -date: 2018-02-06 21:49:40 UTC +date: 2018-02-08 02:32:57 UTC parent: "Connect a Data Source" --- @@ -12,8 +12,9 @@ The following sections describe how to enable the OpenTSDB storage plugin in Dri ##Enabling the OpenTSDB Storage Plugin -To enable the OpenTSDB storage plugin, enter the following URL in the address bar of your browser to access the Storage page in the Drill Web Console: -http://<drill-node-ip-address>:8047/storage/ +To enable the OpenTSDB storage plugin, enter the following URL in the address bar of your browser to access the Storage page in the Drill Web Console: + + http://<drill-node-ip-address>:8047/storage/ In the Disabled Storage Plugins section, click **Enable** next to OpenTSDB. OpenTSDB moves to the Enabled Storage Plugins section. Click **Update** to see the default configuration: @@ -48,6 +49,7 @@ The following table lists the required request parameters: ###Optional Request Parameters The following table lists optional request parameters: + | **Name** | **Data Type** | **Description** | |------------|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | downsample | string | An optional downsampling function to reduce the amount of data returned. | http://git-wip-us.apache.org/repos/asf/drill/blob/ae07d7f8/_docs/tutorials/050-analyzing-highly-dynamic-datasets.md ---------------------------------------------------------------------- diff --git a/_docs/tutorials/050-analyzing-highly-dynamic-datasets.md b/_docs/tutorials/050-analyzing-highly-dynamic-datasets.md index 5e7b7e2..bc17acf 100644 --- a/_docs/tutorials/050-analyzing-highly-dynamic-datasets.md +++ b/_docs/tutorials/050-analyzing-highly-dynamic-datasets.md @@ -1,6 +1,6 @@ --- title: "Analyzing Highly Dynamic Datasets" -date: 2017-12-16 06:24:23 UTC +date: 2018-02-08 02:32:57 UTC parent: "Tutorials" --- @@ -24,7 +24,7 @@ This tutorial shows you how to natively query dynamic datasets, such as JSON, an It is worth repeating the comment at the bottom of this snippet: - # if there was no checkin for a hour-day block it will not be in the dataset. + If there was no checkin for a hour-day block it will not be in the dataset. The element names that you see in the `checkin_info` 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. @@ -105,7 +105,7 @@ You can get value from the data quickly by applying both KVGEN and FLATTEN funct On the output of flattened data, you use standard SQL functionality such as filters , aggregates, and sort. Letâs see a few examples. -### Get the total number of check-ins recorded in the Yelp dataset +**Get the total number of check-ins recorded in the Yelp dataset** 0: jdbc:drill:zk=local> SELECT SUM(checkintbl.checkins.`value`) AS TotalCheckins FROM ( . . . . . . . . . . . > SELECT FLATTEN(KVGEN(checkin_info)) checkins FROM dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_checkin.json` ) checkintbl @@ -116,7 +116,7 @@ On the output of flattened data, you use standard SQL functionality such as filt | 4713811 | +---------------+ -### Get the number of check-ins specifically for Sunday midnights +**Get the number of check-ins specifically for Sunday midnights** 0: jdbc:drill:zk=local> SELECT SUM(checkintbl.checkins.`value`) AS SundayMidnightCheckins FROM ( . . . . . . . . . . . > SELECT FLATTEN(KVGEN(checkin_info)) checkins FROM dfs.`/users/nrentachintala/Downloads/yelp/yelp_academic_dataset_checkin.json` ) checkintbl WHERE checkintbl.checkins.key='23-0'; @@ -125,8 +125,8 @@ On the output of flattened data, you use standard SQL functionality such as filt +------------------------+ | 8575 | +------------------------+ - -### Get the number of check-ins per day of the week + +**Get the number of check-ins per day of the week** 0: jdbc:drill:zk=local> SELECT `right`(checkintbl.checkins.key,1) WeekDay,sum(checkintbl.checkins.`value`) TotalCheckins from ( . . . . . . . . . . . > 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; @@ -142,7 +142,7 @@ On the output of flattened data, you use standard SQL functionality such as filt | 5 | 937201 | +------------+---------------+ -### Get the number of check-ins per hour of the day +**Get the number of check-ins per hour of the day** 0: jdbc:drill:zk=local> SELECT SUBSTR(checkintbl.checkins.key,1,strpos(checkintbl.checkins.key,'-')-1) AS HourOfTheDay ,SUM(checkintbl.checkins.`value`) TotalCheckins FROM ( . . . . . . . . . . . > 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; http://git-wip-us.apache.org/repos/asf/drill/blob/ae07d7f8/_docs/tutorials/learn-drill-with-the-mapr-sandbox/030-lesson-1-learn-about-the-data-set.md ---------------------------------------------------------------------- diff --git a/_docs/tutorials/learn-drill-with-the-mapr-sandbox/030-lesson-1-learn-about-the-data-set.md b/_docs/tutorials/learn-drill-with-the-mapr-sandbox/030-lesson-1-learn-about-the-data-set.md index 5c56057..43b3418 100644 --- a/_docs/tutorials/learn-drill-with-the-mapr-sandbox/030-lesson-1-learn-about-the-data-set.md +++ b/_docs/tutorials/learn-drill-with-the-mapr-sandbox/030-lesson-1-learn-about-the-data-set.md @@ -1,6 +1,6 @@ --- title: "Lesson 1: Learn about the Data Set" -date: +date: 2018-02-08 02:32:57 UTC parent: "Learn Drill with the MapR Sandbox" --- ## Goal @@ -282,7 +282,7 @@ setup beyond the definition of a workspace. ### Query nested clickstream data -#### Set the workspace to dfs.clicks: +### Set the workspace to dfs.clicks: 0: jdbc:drill:> use dfs.clicks; +-------+-----------------------------------------+ @@ -304,7 +304,7 @@ Any file or directory that you want to query in this path can be referenced relative to this path. The clicks directory referred to in the following query is directly below the nested directory. -#### Select 2 rows from the clicks.json file: +### Select 2 rows from the clicks.json file: 0: jdbc:drill:> select * from `clicks/clicks.json` limit 2; +-----------+-------------+-----------+---------------------------------------------------+-------------------------------------------+ @@ -323,7 +323,7 @@ The only special requirement is the use of back ticks to enclose the file path. This is necessary whenever the file path contains Drill reserved words or characters. -#### Select 2 rows from the campaign.json file: +### Select 2 rows from the campaign.json file: 0: jdbc:drill:> select * from `clicks/clicks.campaign.json` limit 2; +-----------+-------------+-----------+---------------------------------------------------+---------------------+----------------------------------------+ @@ -356,7 +356,7 @@ The files in the logs directory and its subdirectories are JSON files. There are many of these files, but you can use Drill to query them all as a single data source, or to query a subset of the files. -#### Set the workspace to dfs.logs: +### Set the workspace to dfs.logs: 0: jdbc:drill:> use dfs.logs; +-------+---------------------------------------+ @@ -366,7 +366,7 @@ data source, or to query a subset of the files. +-------+---------------------------------------+ 1 row selected -#### Select 2 rows from the logs directory: +### Select 2 rows from the logs directory: 0: jdbc:drill:> select * from logs limit 2; +-------+-------+-----------+-------------+-----------+----------+---------+--------+----------+-----------+----------+-------------+ @@ -386,7 +386,7 @@ The column names dir0 and dir1 are special Drill variables that identify subdirectories below the logs directory. In Lesson 3, you will do more complex queries that leverage these dynamic variables. -#### Find the total number of rows in the logs directory (all files): +### Find the total number of rows in the logs directory (all files): 0: jdbc:drill:> select count(*) from logs; +---------+
