Repository: drill-site Updated Branches: refs/heads/asf-site 5f1df3111 -> c93974068
Updates for Drill 1.1 Release (6/25/2015) Project: http://git-wip-us.apache.org/repos/asf/drill-site/repo Commit: http://git-wip-us.apache.org/repos/asf/drill-site/commit/c9397406 Tree: http://git-wip-us.apache.org/repos/asf/drill-site/tree/c9397406 Diff: http://git-wip-us.apache.org/repos/asf/drill-site/diff/c9397406 Branch: refs/heads/asf-site Commit: c93974068c962d15181eb1b779dc37016dd81a0b Parents: 5f1df31 Author: Bridget Bevens <[email protected]> Authored: Thu Jun 25 14:54:37 2015 -0700 Committer: Bridget Bevens <[email protected]> Committed: Thu Jun 25 14:54:37 2015 -0700 ---------------------------------------------------------------------- .../browsing-data-and-defining-views/index.html | 25 +-- docs/create-table-as-ctas/index.html | 10 +- .../persistent-configuration-storage/index.html | 4 +- docs/ports-used-by-drill/index.html | 2 +- docs/querying-parquet-files/index.html | 2 +- docs/troubleshooting/index.html | 215 +++++++++++-------- feed.xml | 4 +- 7 files changed, 150 insertions(+), 112 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/drill-site/blob/c9397406/docs/browsing-data-and-defining-views/index.html ---------------------------------------------------------------------- diff --git a/docs/browsing-data-and-defining-views/index.html b/docs/browsing-data-and-defining-views/index.html index 78fea1f..48401ab 100644 --- a/docs/browsing-data-and-defining-views/index.html +++ b/docs/browsing-data-and-defining-views/index.html @@ -1039,22 +1039,18 @@ queries generated by Drill Explorer to specify columns to return based on the fo syntax guidelines, depending on the schema type or file format.</p> <p>Specify individual columns when defining a view in Drill Explorer instead of attempting to select all, as shown in the following examples.</p> - -<p><code>SELECT CAST(account['name'] AS varchar(20)) FROM hbase.students</code></p> - -<p><code>SELECT CAST(column1 AS varchar(20)) FROM</code>dfs<code>.</code>default<code>.</code>./opt/drill/test.parquet``</p> - -<p><code>SELECT column1 FROM</code>dfs<code>.</code>default<code>.</code>./opt/drill/interval.json``</p> - +<div class="highlight"><pre><code class="language-text" data-lang="text">SELECT CAST(account['name'] AS varchar(20)) FROM hbase.students +SELECT CAST(column1 AS varchar(20)) FROM `dfs`.`default`.`./opt/drill/test.parquet` +SELECT column1 FROM `dfs`.`default`.`./opt/drill/interval.json` +</code></pre></div> <p>To query nested elements, use the following syntax, where menu is a child of column1:</p> -<p><code>SELECT column1['menu'] FROM</code>dfs<code>.</code>default<code>.</code>./opt/drill/interval.json``</p> +<p><code>SELECT column1['menu'] FROM `dfs`.`default`.`./opt/drill/interval.json</code>`</p> <p>You can query elements that are multiple levels deep. Continuing the example, if menuitem is a child of menu, then use the following syntax:</p> - -<p><code>SELECT column1['menu']['menuitem'] FROM</code>dfs<code>.</code>default<code>.</code>./opt/drill/interval.json``</p> - +<div class="highlight"><pre><code class="language-text" data-lang="text">SELECT column1['menu']['menuitem'] FROM `dfs`.`default`.`./opt/drill/interval.json` +</code></pre></div> <h2 id="casting-data-requirements">Casting Data Requirements</h2> <p>In SQL statements, you need to cast @@ -1063,15 +1059,14 @@ displays results from an HBase database in binary format:<br> <code>SELECT account['name'] FROM hbase.students</code></p> <p>The following query displays the same results in string format:<br> -<code>SELECT CAST(account['name'] AS varchar(20)) FROM -hbase.students</code></p> +<code>SELECT CAST(account['name'] AS varchar(20)) FROM hbase.students</code></p> <p>The following query displays results from a Parquet file in binary format:<br> -<code>SELECT column1 FROM</code>dfs<code>.</code>default<code>.</code>./opt/drill/test.parquet``</p> +<code>SELECT column1 FROM `dfs`.`default`.`./opt/drill/test.parquet</code>`</p> <p>The following query displays the same results in string format:</p> -<p><code>SELECT CAST(column1 AS varchar(20)) FROM</code>dfs<code>.</code>default<code>.</code>./opt/drill/test.parquet``</p> +<p><code>SELECT CAST(column1 AS varchar(20)) FROM `dfs`.`default`.`./opt/drill/test.parquet</code>`</p> <p>You can also cast the data as other data types, such as integer or date formats.</p> http://git-wip-us.apache.org/repos/asf/drill-site/blob/c9397406/docs/create-table-as-ctas/index.html ---------------------------------------------------------------------- diff --git a/docs/create-table-as-ctas/index.html b/docs/create-table-as-ctas/index.html index 748d56e..74be42b 100644 --- a/docs/create-table-as-ctas/index.html +++ b/docs/create-table-as-ctas/index.html @@ -977,11 +977,13 @@ <div class="int_text" align="left"> <p>You can create tables in Drill by using the CTAS command:</p> -<div class="highlight"><pre><code class="language-text" data-lang="text">CREATE TABLE new_table_name AS <query>; +<div class="highlight"><pre><code class="language-text" data-lang="text">CREATE TABLE <table name> AS <query>; </code></pre></div> -<p>where query is a SELECT statement. Each table you create must have a unique -name. You can include an optional column list for the new table. For example:</p> -<div class="highlight"><pre><code class="language-text" data-lang="text">create table logtable(transid, prodid) as select transaction_id, product_id from ... +<p><em>table name</em> is a unique table table, optionally prefaced by a storage plugin name, such as dfs, a workspace, such as tmp, and a path to the write location using dot notation and back ticks.<br> +<em>query</em> is a SELECT statement that can include an optional column list for the new table. </p> + +<p>Example:</p> +<div class="highlight"><pre><code class="language-text" data-lang="text">CREATE TABLE logtable(transid, prodid) AS SELECT transaction_id, product_id FROM ... </code></pre></div> <p>You can store table data in one of three formats:</p> http://git-wip-us.apache.org/repos/asf/drill-site/blob/c9397406/docs/persistent-configuration-storage/index.html ---------------------------------------------------------------------- diff --git a/docs/persistent-configuration-storage/index.html b/docs/persistent-configuration-storage/index.html index 4ebde7b..569dce7 100644 --- a/docs/persistent-configuration-storage/index.html +++ b/docs/persistent-configuration-storage/index.html @@ -1018,7 +1018,7 @@ data. The ZooKeeper PStore provider offloads query profile data to the Drill log <h3 id="why-configure-the-zookeeper-pstore">Why Configure the ZooKeeper PStore</h3> -<p>When you run multiple DrillBits, configure a specific location for ZooKeeper to offload the query profile data instead of accepting the default temporary location. All Drillbits in the cluster cannot access the temporary location. Consequently, when you do not configure a location on the distributed file system, queries sent to do some Drillbits do not appear in the Completed section of the Drill Web UI. Also, some Running links that you click to get information about the running queries are broken links.</p> +<p>When you run multiple DrillBits, configure a specific location for ZooKeeper to offload the query profile data instead of accepting the default temporary location. All Drillbits in the cluster cannot access the temporary location. Consequently, when you do not configure a location on the distributed file system, queries sent to some Drillbits do not appear in the Completed section of the Drill Web UI. Also, some Running links that you click to get information about running queries are broken links.</p> <h3 id="how-to-configure-the-zookeeper-pstore">How to Configure the ZooKeeper PStore</h3> @@ -1068,7 +1068,7 @@ override.conf</code> on each Drill node and then restart the Drillbit service.</ <div class="highlight"><pre><code class="language-text" data-lang="text">sys.store.provider: { class: "org.apache.drill.exec.store.hbase.config.HBasePStoreProvider", hbase: { - table : "/tables/drill_store", + table : "/tables/drill_store" } }, </code></pre></div> http://git-wip-us.apache.org/repos/asf/drill-site/blob/c9397406/docs/ports-used-by-drill/index.html ---------------------------------------------------------------------- diff --git a/docs/ports-used-by-drill/index.html b/docs/ports-used-by-drill/index.html index 755b610..2c983b2 100644 --- a/docs/ports-used-by-drill/index.html +++ b/docs/ports-used-by-drill/index.html @@ -992,7 +992,7 @@ type, and a description of how Drill uses the port:</p> <tr> <td>31010</td> <td>TCP</td> -<td>User port address. Used between nodes in a Drill cluster. Needed for an external client, such as Tableau, to connect into thecluster nodes. Also needed for the Drill Web UI.</td> +<td>User port address. Used between nodes in a Drill cluster. Needed for an external client, such as Tableau, to connect into the cluster nodes. Also needed for the Drill Web UI.</td> </tr> <tr> <td>31011</td> http://git-wip-us.apache.org/repos/asf/drill-site/blob/c9397406/docs/querying-parquet-files/index.html ---------------------------------------------------------------------- diff --git a/docs/querying-parquet-files/index.html b/docs/querying-parquet-files/index.html index 5d827c0..6ceb5d4 100644 --- a/docs/querying-parquet-files/index.html +++ b/docs/querying-parquet-files/index.html @@ -990,7 +990,7 @@ that you can query. Use SQL syntax to query the <code>region.parquet</code> and <h2 id="region-file">Region File</h2> <p>To view the data in the <code>region.parquet</code> file, issue the following query:</p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> SELECT * FROM dfs.`<path-to-installation>/apache-drill-<version>\sample-data\region.parquet`; +<div class="highlight"><pre><code class="language-text" data-lang="text"> SELECT * FROM dfs.`<path-to-installation>/apache-drill-<version>/sample-data/region.parquet`; </code></pre></div> <p>The query returns the following results:</p> <div class="highlight"><pre><code class="language-text" data-lang="text">+--------------+--------------+-----------------------+ http://git-wip-us.apache.org/repos/asf/drill-site/blob/c9397406/docs/troubleshooting/index.html ---------------------------------------------------------------------- diff --git a/docs/troubleshooting/index.html b/docs/troubleshooting/index.html index 22436e0..604002e 100644 --- a/docs/troubleshooting/index.html +++ b/docs/troubleshooting/index.html @@ -983,54 +983,86 @@ <h3 id="identify-the-foreman">Identify the Foreman</h3> <p>Issue the following query to identify the node running as the Foreman: </p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> SELECT host FROM sys.drillbits WHERE `` `current` `` = true; -</code></pre></div> + +<p><code>SELECT hostname FROM sys.drillbits WHERE `current` = true;</code></p> + <h3 id="identify-the-drill-version">Identify the Drill Version</h3> -<p>Issue the following query to identify the version of Drill running in your cluster: -SELECT commit_id FROM sys.version;</p> +<p>Issue the following query to identify the version of Drill running in your cluster:<br> +<code>SELECT commit_id FROM sys.version;</code></p> <h3 id="enable-verbose-errors">Enable Verbose Errors</h3> <p>You can enable the verbose errors option for a more detailed error print-out.</p> <p>Issue the following command to enable the verbose errors option: </p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> ALTER SESSION SET `exec.errors.verbose` = true -</code></pre></div> -<h2 id="troubleshooting">Troubleshooting</h2> -<p>If you have any issues in Drill, search the following list for your issue and apply the suggested solution:</p> +<p><code>ALTER SESSION SET `exec.errors.verbose` = true</code></p> -<p><strong>Query Parsing Errors</strong><br> -Symptom: </p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> PARSE ERROR: At line x, column x: ... -</code></pre></div> -<p>Solution: Verify that you are using valid syntax. See <a href="/docs/sql-reference-introduction/">SQL Reference</a>. -If you are using common words, they may be reserved words. Make sure to use back ticks -Confirm that you are using back ticks to quote identifiers when using special characters such as back slashes or periods from a file path.</p> +<h2 id="troubleshooting-problems-and-solutions">Troubleshooting Problems and Solutions</h2> + +<p>If you have any of the following problems, try the suggested solution:</p> + +<ul> +<li><a href="/docs/troubleshooting/#query-parsing-errors">Query Parsing Errors</a></li> +<li><a href="/docs/troubleshooting/#query-parsing-errors-caused-by-reserved-words">Query Parsing Errors Caused by Reserved Words</a></li> +<li><a href="/docs/troubleshooting/#table-not-found">Table Not Found</a></li> +<li><a href="/docs/troubleshooting/#access-nested-fields-without-table-name/alias">Access Nested Fields without Table Name/Alias</a></li> +<li><a href="/docs/troubleshooting/#unexpected-null-values-for-columns-in-results">Unexpected Null Values for Columns in Results</a></li> +<li><a href="/docs/troubleshooting/#using-functions-with-incorrect-data-types">Using Functions with Incorrect Data Types</a></li> +<li><a href="/docs/troubleshooting/#query-takes-a-long-time-to-return">Query Takes a Long Time to Return</a></li> +<li><a href="/docs/troubleshooting/#schema-changes">Schema Changes</a></li> +<li><a href="/docs/troubleshooting/#timestamps-and-timezones-other-than-utc">Timestamps and Timezones Other Than UTC</a></li> +<li><a href="/docs/troubleshooting/#unexpected-odbc-issues">Unexpected ODBC Issues</a></li> +<li><a href="/docs/troubleshooting/#jdbc/odbc-connection-issues-with-zookeeper">JDBC/ODBC Connection Issues with ZooKeeper</a></li> +<li><a href="/docs/troubleshooting/#metadata-queries-take-a-long-time-to-return">Metadata Queries Take a Long Time to Return</a></li> +<li><a href="/docs/troubleshooting/#unexpected-results-due-to-implicit-casting">Unexpected Results Due to Implicit Casting</a></li> +<li><a href="/docs/troubleshooting/#column-alias-causes-an-error">Column Alias Causes an Error</a></li> +<li><a href="/docs/troubleshooting/#list-(array)-contains-null">List (Array) Contains Null</a></li> +<li><a href="/docs/troubleshooting/#select-count-(*)-takes-a-long-time-to-run">SELECT COUNT (*) Takes a Long Time to Run</a></li> +<li><a href="/docs/troubleshooting/#tableau-issues">Tableau Issues</a></li> +<li><a href="/docs/troubleshooting/#group-by-using-alias">GROUP BY Using Alias</a></li> +<li><a href="/docs/troubleshooting/#casting-a-varchar-string-to-an-integer-causes-an-error">Casting a VARCHAR String to an INTEGER Causes an Error</a></li> +<li><a href="/docs/troubleshooting/#unexpected-exception-during-fragment-initialization">Unexpected Exception during Fragment Initialization</a></li> +<li><a href="/docs/troubleshooting/#queries-running-out-of-memory">Queries Running Out of Memory</a></li> +<li><a href="/docs/troubleshooting/#unclear-error-message">Unclear Error Message</a></li> +<li><a href="/docs/troubleshooting/#sqlline-error-starting-drill-in-embedded-mode">SQLLine Error Starting Drill in Embedded Mode</a></li> +</ul> + +<h3 id="query-parsing-errors">Query Parsing Errors</h3> + +<p>Symptom: </p> -<p><strong>Reserved Words</strong><br> +<p><code>PARSE ERROR: At line x, column x: ...</code><br> +Solution: Verify that you are using valid syntax. See <a href="/docs/sql-reference-introduction/">SQL Reference</a>.</p> + +<h3 id="query-parsing-errors-caused-by-reserved-words">Query Parsing Errors Caused by Reserved Words</h3> + +<p>Using a common word, such as count, which is a reserved word, as an identifier causes an error.<br> Symptom: </p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> select count from dfs.drill.`test2.json`; +<div class="highlight"><pre><code class="language-text" data-lang="text"> SELECT COUNT FROM dfs.tmp.`test2.json`; Query failed: SYSTEM ERROR: Failure parsing SQL. Encountered "count from" at line 1, column 8. Was expecting one of: "UNION" ... "INTERSECT" ... </code></pre></div> -<p>Solution: Fix with correct syntax. See <a href="/docs/reserved-keywords/">Reserved Keywords</a>.</p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> select `count` from dfs.drill.`test2.json`; -</code></pre></div> -<p><strong>Tables not found</strong><br> -Symptom:</p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> select * from dfs.drill.test2.json; +<p>Solution: Enclose keywords and <a href="/docs/lexical-structure/#identifier">identifiers that SQL cannot parse</a> in back ticks. See <a href="/docs/reserved-keywords/">Reserved Keywords</a>.</p> + +<p><code>SELECT `count` FROM dfs.tmp.`test2.json</code>`;</p> + +<h3 id="table-not-found">Table Not Found</h3> + +<p>Symptom:</p> +<div class="highlight"><pre><code class="language-text" data-lang="text"> SELECT * FROM dfs.drill.test2.json; Query failed: PARSE ERROR: From line 1, column 15 to line 1, column 17: Table 'dfs.drill.test2.json' not found </code></pre></div> <p>Solutions:</p> -<ol> +<ul> <li>Run SHOW FILES to list the files in the dfs.drill workspace. </li> <li>Check the permission of the files with those for the the Drill user.<br></li> -<li>Verify backticks added for file name: select * from dfs.drill.<code>test2.json</code>;<br></li> +<li>Enclose file and path name in back ticks:<br> +<code>SELECT * FROM dfs.drill.`test2.json`;</code><br></li> <li>Drill may not be able to determine the type of file you are trying to read. Try using Drill Default Input Format.<br></li> <li>Verify that your storage plugin is correctly configured.</li> <li>Verify that Drill can auto-detect your file format. Drill supports auto-detection for the following formats:<br> @@ -1042,26 +1074,30 @@ Symptom:</p> <li>Parquet</li> <li>JSON</li> </ul></li> -</ol> +</ul> + +<h3 id="access-nested-fields-without-table-name/alias">Access Nested Fields without Table Name/Alias</h3> -<p><strong>Access nested fields without table name/alias</strong><br> -Symptom: </p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> select x.y ⦠+<p>Symptom: </p> +<div class="highlight"><pre><code class="language-text" data-lang="text"> SELECT x.y ⦠PARSE ERROR: At line 1, column 8: Table 'x' not found </code></pre></div> <p>Solution: Add table name or alias to the field reference: </p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> select t.x.y from t -</code></pre></div> -<p><strong>Unexpected null values for columns in results</strong><br> -Symptom: The following type of query returns NULL values: </p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> select t.price from t -</code></pre></div> + +<p><code>SELECT t.x.y FROM t</code> </p> + +<h3 id="unexpected-null-values-for-columns-in-results">Unexpected Null Values for Columns in Results</h3> + +<p>Symptom: The following type of query returns NULL values: </p> + +<p><code>SELECT t.price FROM t</code> </p> + <p>Solution: Drill is schema-less system. Verify that column names are typed correctly.</p> -<p><strong>Using functions with incorrect data types</strong> </p> +<h3 id="using-functions-with-incorrect-data-types">Using Functions with Incorrect Data Types</h3> <p>Symptom: Example </p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> select trunc(c3) from t3; +<div class="highlight"><pre><code class="language-text" data-lang="text"> SELECT TRUNC(c3) FROM t3; 0: jdbc:drill:schema=dfs> select trunc(c3) from t3; Query failed: SYSTEM ERROR: Failure while trying to materialize incoming schema. Errors: @@ -1073,21 +1109,21 @@ Symptom: The following type of query returns NULL values: </p> [6e465594-4d83-4042-b88d-50e7eb207484 on atsqa4-133.qa.lab:31010] Error: exception while executing query: Failure while executing query. (state=,code=0) </code></pre></div> -<p>Solution: Ensure that the function is invoked with the correct data type parameters. In the example above, c3 is an unsupported date type. </p> +<p>Solution: Ensure that the function is invoked with the correct data type parameters. In this example, c3 is an unsupported date type. </p> -<p><strong>Query takes a long time to return</strong> </p> +<h3 id="query-takes-a-long-time-to-return">Query Takes a Long Time to Return</h3> <p>Symptom: Query takes longer to return than expected.</p> -<p>Solution: Review the <a href="/docs/query-profiles/">query profile</a> and: </p> +<p>Solution: Review the <a href="/docs/query-profiles/">query profile</a> and perform the following tasks: </p> <ul> -<li>Determine whether progress is being made (look at last update and last change times).</li> +<li>Determine whether progress is being made. Look at last update and last change times.</li> <li>Look at where Drill is currently spending time and try to optimize those operations.</li> <li>Confirm that Drill is taking advantage of the nature of your data, including things like partition pruning and projection pushdown.</li> </ul> -<p><strong>Schema changes</strong> </p> +<h3 id="schema-changes">Schema Changes</h3> <p>Symptom: </p> <div class="highlight"><pre><code class="language-text" data-lang="text"> DATA_READ ERROR: Error parsing JSON - You tried to write a XXXX type when you are using a ValueWriter of type XXXX. @@ -1095,81 +1131,82 @@ Symptom: The following type of query returns NULL values: </p> Record 2 Fragment 0:0 </code></pre></div> -<p>Solution: Drill does not fully support schema changes. In this case, you will need to either ensure that your schemas are the same or only select columns that share schema.</p> +<p>Solution: Drill does not fully support schema changes. Either ensure that your schemas are the same or only select columns that share schema.</p> -<p><strong>Timestamps and Timezones other than UTC</strong> </p> +<h3 id="timestamps-and-timezones-other-than-utc">Timestamps and Timezones Other Than UTC</h3> <p>Symptoms: Issues with timestamp and timezone. Illegal instant due to time zone offset transition (America/New_York)</p> -<p>Solution: Convert data to UTC format. You are most likely trying to import date and time data that is encoded one timezone in a different timezone. Drillâs default behavior is to use the systemâs time for converting incoming data. If you are providing UTC data and your Drillbit nodes do not run with UTC time, youâll need to run your JVM with the following system property:</p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> -Duser.timezone=UTC -</code></pre></div> -<p><code>http://www.openkb.info/2015/05/understanding-drills-timestamp-and.html</code> </p> +<p>Solution: Convert data to UTC format. You are most likely trying to import date and time data that is encoded one timezone in a different timezone. Drillâs default behavior is to use the system time for converting incoming data. If you are providing UTC data and your Drillbit nodes do not run with UTC time, youâll need to run your JVM with the following system property:</p> + +<p><code>-Duser.timezone=UTC</code> </p> + +<p><a href="http://www.openkb.info/2015/05/understanding-drills-timestamp-and.html">http://www.openkb.info/2015/05/understanding-drills-timestamp-and.html</a> </p> -<p><strong>Unexpected ODBC issues</strong> </p> +<h3 id="unexpected-odbc-issues">Unexpected ODBC Issues</h3> <p>Symptom: ODBC errors.</p> -<p>Solution: Make sure that the ODBC driver version is compatible with the server version. +<p>Solution: Make sure that the ODBC driver version is compatible with the server version. <a href="/docs/installing-the-odbc-driver">Driver installation instructions</a> include how to check the driver version. Turn on ODBC driver debug logging to better understand failure. </p> -<p><strong>Connectivity issues when connecting via ZooKeeper for JDBC/ODBC</strong> </p> +<h3 id="jdbc/odbc-connection-issues-with-zookeeper">JDBC/ODBC Connection Issues with ZooKeeper</h3> <p>Symptom: Client cannot resolve ZooKeeper host names for JDBC/ODBC.</p> -<p>Solution: Ensure that Zookeeper is up and running. Verify that Drill has the correct drill-override.conf settings for the Zookeeper quorum.</p> +<p>Solution: Ensure that Zookeeper is up and running. Verify that Drill has the correct <code>drill-override.conf</code> settings for the Zookeeper quorum.</p> -<p><strong>Metadata queries take a long time to return</strong> </p> +<h3 id="metadata-queries-take-a-long-time-to-return">Metadata Queries Take a Long Time to Return</h3> -<p>Symptom: Running SHOW databases/schemas/tables hangs (in general any information_schema queries hang).</p> +<p>Symptom: Running SHOW databases/schemas/tables hangs. In general any INFORMATION_SCHEMA queries hang.</p> <p>Solution: Disable incorrectly configured storage plugins or start appropriate services. Check compatibility matrix for the appropriate versions. </p> -<p><strong>Unexpected results due to implicit casting</strong> </p> +<h3 id="unexpected-results-due-to-implicit-casting">Unexpected Results Due to Implicit Casting</h3> -<p>Symptom: rill implicitly casts based on order of precedence.</p> +<p>Symptom: Drill implicitly casts based on order of precedence.</p> <p>Solution: Review Drill casting behaviors and explicitly cast for the expected results. See <a href="/docs/handling-different-data-types/">Data Types</a>.</p> -<p><strong>Column alias causes an error</strong> </p> +<h3 id="column-alias-causes-an-error">Column Alias Causes an Error</h3> <p>Symptom: Drill is not case sensitive, and you can provide any alias for a column name. However, if the storage type is case sensitive, the alias name may conflict and cause errors.</p> <p>Solution: Verify that the column alias does not conflict with the storage type. See <a href="/docs/lexical-structure/#case-sensitivity">Lexical Structures</a>. </p> -<p><strong>List (arrays) contains null</strong> </p> +<h3 id="list-(array)-contains-null">List (Array) Contains Null</h3> -<p>Symptom: UNSUPPORTED_OPERATION ERROR: Null values are not supported in lists by default. Please set store.json.all_text_mode to true to read lists containing nulls. Be advised that this will treat JSON null values as a string containing the word 'null'.</p> +<p>Symptom: UNSUPPORTED_OPERATION ERROR: Null values are not supported in lists by default. </p> -<p>Solution: Change Drill session settings to enable all_text_mode per message.<br> -Avoid selecting fields that are arrays containing nulls.</p> +<p>Solution: Avoid selecting fields that are arrays containing nulls. Change Drill session settings to enable all_text_mode. Set store.json.all_text_mode to true, so Drill treats JSON null values as a string containing the word 'null'.</p> -<p><strong>SELECT COUNT (*) takes a long time to run</strong> </p> +<h3 id="select-count-(*)-takes-a-long-time-to-run">SELECT COUNT (*) Takes a Long Time to Run</h3> -<p>Solution: In come cases, the underlying storage format does not have a built-in capability to return a count of records in a table. In these cases, Drill will do a full scan of the data to verify the number of records.</p> +<p>Solution: In some cases, the underlying storage format does not have a built-in capability to return a count of records in a table. In these cases, Drill does a full scan of the data to verify the number of records.</p> -<p><strong>Tableau issues</strong> </p> +<h3 id="tableau-issues">Tableau Issues</h3> <p>Symptom: You see a lot of error messages in ODBC trace files or the performance is slow.</p> <p>Solution: Verify that you have installed the TDC file shipped with the ODBC driver. </p> -<p><strong>Group by using alias</strong> </p> +<h3 id="group-by-using-alias">GROUP BY Using Alias</h3> <p>Symptom: Invalid column.</p> <p>Solution: Not supported. Use column name and/or expression directly. </p> -<p><strong>Casting a Varchar string to an integer results in an error</strong> </p> +<h3 id="casting-a-varchar-string-to-an-integer-causes-an-error">Casting a VARCHAR String to an INTEGER Causes an Error</h3> <p>Symptom: </p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> SYSTEM ERROR: java.lang.NumberFormatException -</code></pre></div> -<p>Solution: Per the ANSI SQL specification CAST to INT does not support empty strings. If you want to change this behavior, you can set Drill to use the cast empty string to null behavior. This can be done using the drill.exec.functions.cast_empty_string_to_null SESSION/SYSTEM option. </p> -<p><strong>Unexpected exception during fragment initialization</strong> </p> +<p><code>SYSTEM ERROR: java.lang.NumberFormatException</code> </p> + +<p>Solution: Per the SQL specificationm CAST to INT does not support empty strings. If you want to change this behavior, set the drill.exec.functions.cast_empty_string_to_null SESSION/SYSTEM option. </p> -<p>Symptom: The error occurred during the Foreman phase of the query. The error typically occurs due to the following common causes: </p> +<h3 id="unexpected-exception-during-fragment-initialization">Unexpected Exception during Fragment Initialization</h3> + +<p>Symptom: An error occurred during the Foreman phase of the query. The error typically occurs due to the following common causes: </p> <ul> <li>Malformed SQL that passed initial validation but failed upon further analysis</li> @@ -1178,36 +1215,40 @@ Avoid selecting fields that are arrays containing nulls.</p> <p>Solution: Enable the verbose errors option and run the query again to see if further insight is provided. </p> -<p><strong>Queries running out of memory</strong> </p> +<h3 id="queries-running-out-of-memory">Queries Running Out of Memory</h3> <p>Symptom: </p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> RESOURCE ERROR: One or more nodes ran out of memory while executing the query. -</code></pre></div> + +<p><code>RESOURCE ERROR: One or more nodes ran out of memory while executing the query.</code> </p> + <p>Solution: </p> <ul> -<li>Increase the amount of direct memory allotted to Drill</li> -<li>If using CTAS, reduce the planner.width.max_per_node setting</li> -<li>Reduce the number of concurrent queries running on the cluster using Drill query queues</li> -<li>Disable hash aggregation and hash sort for your session</li> -<li>See <a href="/docs/configuration-options-introduction/">Configuration Options</a><br></li> +<li>Increase the amount of direct memory allotted to Drill.</li> +<li>If using CTAS, reduce the planner.width.max_per_node setting.</li> +<li>Reduce the number of concurrent queries running on the cluster using Drill query queues.</li> +<li>Disable hash aggregation and hash sort for your session.</li> </ul> -<p><strong>Unclear Error Message</strong> </p> +<p>See <a href="/docs/configuration-options-introduction/">Configuration Options</a>. </p> + +<h3 id="unclear-error-message">Unclear Error Message</h3> <p>Symptom: Cannot determine issue from error message.</p> <p>Solution: Turn on verbose errors. </p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> alter session set `exec.errors.verbose`=true; -</code></pre></div> -<p>Determine your currently connected drillbit using select * from sys.drillbits. Then review logs Drill logs from that drillbit.</p> -<p><strong>SQLLine error starting Drill in embedded mode</strong> </p> +<p><code>ALTER SESSION SET `exec.errors.verbose`=true;</code> </p> + +<p>Determine your currently connected drillbit using `SELECT * FROM sys.drillbits. Then review logs Drill logs from that drillbit.</p> + +<h3 id="sqlline-error-starting-drill-in-embedded-mode">SQLLine Error Starting Drill in Embedded Mode</h3> <p>Symptom: </p> -<div class="highlight"><pre><code class="language-text" data-lang="text"> java.net.BindException: Address already in use -</code></pre></div> -<p>Solution: You can only run one Drillbit per node(embedded or daemon) using default settings. You need to either change ports used by Drillbit or stop one Drillbit before starting another.</p> + +<p><code>java.net.BindException: Address already in use</code> </p> + +<p>Solution: You can only run one Drillbit per node in embedded or distributed mode using default settings. You need to either change ports used by Drillbit or stop one Drillbit before starting another.</p> http://git-wip-us.apache.org/repos/asf/drill-site/blob/c9397406/feed.xml ---------------------------------------------------------------------- diff --git a/feed.xml b/feed.xml index 70ccca9..0f20a19 100644 --- a/feed.xml +++ b/feed.xml @@ -6,8 +6,8 @@ </description> <link>/</link> <atom:link href="/feed.xml" rel="self" type="application/rss+xml"/> - <pubDate>Tue, 23 Jun 2015 17:18:43 -0700</pubDate> - <lastBuildDate>Tue, 23 Jun 2015 17:18:43 -0700</lastBuildDate> + <pubDate>Thu, 25 Jun 2015 14:49:54 -0700</pubDate> + <lastBuildDate>Thu, 25 Jun 2015 14:49:54 -0700</lastBuildDate> <generator>Jekyll v2.5.2</generator> <item>
