http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/75c46918/docs/build/html/topics/impala_float.html ---------------------------------------------------------------------- diff --git a/docs/build/html/topics/impala_float.html b/docs/build/html/topics/impala_float.html new file mode 100644 index 0000000..97125af --- /dev/null +++ b/docs/build/html/topics/impala_float.html @@ -0,0 +1,136 @@ +<!DOCTYPE html + SYSTEM "about:legacy-compat"> +<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><meta name="copyright" content="(C) Copyright 2017"><meta name="DC.rights.owner" content="(C) Copyright 2017"><meta name="DC.Type" content="concept"><meta name="DC.Relation" scheme="URI" content="../topics/impala_datatypes.html"><meta name="prodname" content="Impala"><meta name="prodname" content="Impala"><meta name="version" content="Impala 2.8.x"><meta name="version" content="Impala 2.8.x"><meta name="DC.Format" content="XHTML"><meta name="DC.Identifier" content="float"><link rel="stylesheet" type="text/css" href="../commonltr.css"><title>FLOAT Data Type</title></head><body id="float"><main role="main"><article role="article" aria-labelledby="ariaid-title1"> + + <h1 class="title topictitle1" id="ariaid-title1">FLOAT Data Type</h1> + + + + <div class="body conbody"> + + <p class="p"> + A single precision floating-point data type used in <code class="ph codeph">CREATE TABLE</code> and <code class="ph codeph">ALTER + TABLE</code> statements. + </p> + + <p class="p"> + <strong class="ph b">Syntax:</strong> + </p> + + <p class="p"> + In the column definition of a <code class="ph codeph">CREATE TABLE</code> statement: + </p> + +<pre class="pre codeblock"><code><var class="keyword varname">column_name</var> FLOAT</code></pre> + + <p class="p"> + <strong class="ph b">Range:</strong> 1.40129846432481707e-45 .. 3.40282346638528860e+38, positive or negative + </p> + + <p class="p"> + <strong class="ph b">Precision:</strong> 6 to 9 significant digits, depending on usage. The number of significant digits does + not depend on the position of the decimal point. + </p> + + <p class="p"> + <strong class="ph b">Representation:</strong> The values are stored in 4 bytes, using + <a class="xref" href="https://en.wikipedia.org/wiki/Single-precision_floating-point_format" target="_blank">IEEE 754 Single Precision Binary Floating Point</a> format. + </p> + + <p class="p"> + <strong class="ph b">Conversions:</strong> Impala automatically converts <code class="ph codeph">FLOAT</code> to more precise + <code class="ph codeph">DOUBLE</code> values, but not the other way around. You can use <code class="ph codeph">CAST()</code> to convert + <code class="ph codeph">FLOAT</code> values to <code class="ph codeph">TINYINT</code>, <code class="ph codeph">SMALLINT</code>, <code class="ph codeph">INT</code>, + <code class="ph codeph">BIGINT</code>, <code class="ph codeph">STRING</code>, <code class="ph codeph">TIMESTAMP</code>, or <code class="ph codeph">BOOLEAN</code>. + You can use exponential notation in <code class="ph codeph">FLOAT</code> literals or when casting from + <code class="ph codeph">STRING</code>, for example <code class="ph codeph">1.0e6</code> to represent one million. + <span class="ph">Casting an integer or floating-point value <code class="ph codeph">N</code> to + <code class="ph codeph">TIMESTAMP</code> produces a value that is <code class="ph codeph">N</code> seconds past the start of the epoch + date (January 1, 1970). By default, the result value represents a date and time in the UTC time zone. + If the setting <code class="ph codeph">-use_local_tz_for_unix_timestamp_conversions=true</code> is in effect, + the resulting <code class="ph codeph">TIMESTAMP</code> represents a date and time in the local time zone.</span> + </p> + + <p class="p"> + <strong class="ph b">Examples:</strong> + </p> + +<pre class="pre codeblock"><code>CREATE TABLE t1 (x FLOAT); +SELECT CAST(1000.5 AS FLOAT); +</code></pre> + + <p class="p"> + <strong class="ph b">Partitioning:</strong> Because fractional values of this type are not always represented precisely, when this + type is used for a partition key column, the underlying HDFS directories might not be named exactly as you + expect. Prefer to partition on a <code class="ph codeph">DECIMAL</code> column instead. + </p> + + <p class="p"> + <strong class="ph b">HBase considerations:</strong> This data type is fully compatible with HBase tables. + </p> + + <p class="p"> + <strong class="ph b">Parquet considerations:</strong> This type is fully compatible with Parquet tables. + </p> + + <p class="p"> + <strong class="ph b">Text table considerations:</strong> Values of this type are potentially larger in text tables than in tables + using Parquet or other binary formats. + </p> + + + + <p class="p"> + <strong class="ph b">Internal details:</strong> Represented in memory as a 4-byte value. + </p> + + + + <p class="p"> + <strong class="ph b">Column statistics considerations:</strong> Because this type has a fixed size, the maximum and average size + fields are always filled in for column statistics, even before you run the <code class="ph codeph">COMPUTE STATS</code> + statement. + </p> + + <p class="p"> + <strong class="ph b">Restrictions:</strong> + </p> + + + + <p class="p"> + Due to the way arithmetic on <code class="ph codeph">FLOAT</code> and <code class="ph codeph">DOUBLE</code> columns uses + high-performance hardware instructions, and distributed queries can perform these operations in different + order for each query, results can vary slightly for aggregate function calls such as <code class="ph codeph">SUM()</code> + and <code class="ph codeph">AVG()</code> for <code class="ph codeph">FLOAT</code> and <code class="ph codeph">DOUBLE</code> columns, particularly on + large data sets where millions or billions of values are summed or averaged. For perfect consistency and + repeatability, use the <code class="ph codeph">DECIMAL</code> data type for such operations instead of + <code class="ph codeph">FLOAT</code> or <code class="ph codeph">DOUBLE</code>. + </p> + + <p class="p"> + The inability to exactly represent certain floating-point values means that + <code class="ph codeph">DECIMAL</code> is sometimes a better choice than <code class="ph codeph">DOUBLE</code> + or <code class="ph codeph">FLOAT</code> when precision is critical, particularly when + transferring data from other database systems that use different representations + or file formats. + </p> + + <p class="p"> + <strong class="ph b">Kudu considerations:</strong> + </p> + <p class="p"> + Currently, the data types <code class="ph codeph">BOOLEAN</code>, <code class="ph codeph">FLOAT</code>, + and <code class="ph codeph">DOUBLE</code> cannot be used for primary key columns in Kudu tables. + </p> + + <p class="p"> + <strong class="ph b">Related information:</strong> + </p> + + <p class="p"> + <a class="xref" href="impala_literals.html#numeric_literals">Numeric Literals</a>, <a class="xref" href="impala_math_functions.html#math_functions">Impala Mathematical Functions</a>, + <a class="xref" href="impala_double.html#double">DOUBLE Data Type</a> + </p> + </div> +<nav role="navigation" class="related-links"><div class="familylinks"><div class="parentlink"><strong>Parent topic:</strong> <a class="link" href="../topics/impala_datatypes.html">Data Types</a></div></div></nav></article></main></body></html> \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/75c46918/docs/build/html/topics/impala_functions.html ---------------------------------------------------------------------- diff --git a/docs/build/html/topics/impala_functions.html b/docs/build/html/topics/impala_functions.html new file mode 100644 index 0000000..dbe1016 --- /dev/null +++ b/docs/build/html/topics/impala_functions.html @@ -0,0 +1,162 @@ +<!DOCTYPE html + SYSTEM "about:legacy-compat"> +<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><meta name="copyright" content="(C) Copyright 2017"><meta name="DC.rights.owner" content="(C) Copyright 2017"><meta name="DC.Type" content="concept"><meta name="DC.Relation" scheme="URI" content="../topics/impala_langref.html"><meta name="DC.Relation" scheme="URI" content="../topics/impala_math_functions.html"><meta name="DC.Relation" scheme="URI" content="../topics/impala_bit_functions.html"><meta name="DC.Relation" scheme="URI" content="../topics/impala_conversion_functions.html"><meta name="DC.Relation" scheme="URI" content="../topics/impala_datetime_functions.html"><meta name="DC.Relation" scheme="URI" content="../topics/impala_conditional_functions.html"><meta name="DC.Relation" scheme="URI" content="../topics/impala_string_functions.html"><meta name="DC.Relation" scheme="URI" content="../topics/impala_misc_functions.html"><meta name="DC.Relation" scheme="URI" content= "../topics/impala_aggregate_functions.html"><meta name="DC.Relation" scheme="URI" content="../topics/impala_analytic_functions.html"><meta name="DC.Relation" scheme="URI" content="../topics/impala_udf.html"><meta name="prodname" content="Impala"><meta name="prodname" content="Impala"><meta name="version" content="Impala 2.8.x"><meta name="version" content="Impala 2.8.x"><meta name="DC.Format" content="XHTML"><meta name="DC.Identifier" content="builtins"><link rel="stylesheet" type="text/css" href="../commonltr.css"><title>Impala Built-In Functions</title></head><body id="builtins"><main role="main"><article role="article" aria-labelledby="builtins__title_functions"> + + <h1 class="title topictitle1" id="builtins__title_functions">Impala Built-In Functions</h1> + + + + <div class="body conbody"> + + + + <p class="p"> + Impala supports several categories of built-in functions. These functions let you perform mathematical + calculations, string manipulation, date calculations, and other kinds of data transformations directly in + <code class="ph codeph">SELECT</code> statements. The built-in functions let a SQL query return results with all + formatting, calculating, and type conversions applied, rather than performing time-consuming postprocessing + in another application. By applying function calls where practical, you can make a SQL query that is as + convenient as an expression in a procedural programming language or a formula in a spreadsheet. + </p> + + <p class="p"> + The categories of functions supported by Impala are: + </p> + + <ul class="ul"> + <li class="li"> + <a class="xref" href="impala_math_functions.html#math_functions">Impala Mathematical Functions</a> + </li> + + <li class="li"> + <a class="xref" href="impala_conversion_functions.html#conversion_functions">Impala Type Conversion Functions</a> + </li> + + <li class="li"> + <a class="xref" href="impala_datetime_functions.html#datetime_functions">Impala Date and Time Functions</a> + </li> + + <li class="li"> + <a class="xref" href="impala_conditional_functions.html#conditional_functions">Impala Conditional Functions</a> + </li> + + <li class="li"> + <a class="xref" href="impala_string_functions.html#string_functions">Impala String Functions</a> + </li> + + <li class="li"> + Aggregation functions, explained in <a class="xref" href="impala_aggregate_functions.html#aggregate_functions">Impala Aggregate Functions</a>. + </li> + </ul> + + <p class="p"> + You call any of these functions through the <code class="ph codeph">SELECT</code> statement. For most functions, you can + omit the <code class="ph codeph">FROM</code> clause and supply literal values for any required arguments: + </p> + +<pre class="pre codeblock"><code>select abs(-1); ++---------+ +| abs(-1) | ++---------+ +| 1 | ++---------+ + +select concat('The rain ', 'in Spain'); ++---------------------------------+ +| concat('the rain ', 'in spain') | ++---------------------------------+ +| The rain in Spain | ++---------------------------------+ + +select power(2,5); ++-------------+ +| power(2, 5) | ++-------------+ +| 32 | ++-------------+ +</code></pre> + + <p class="p"> + When you use a <code class="ph codeph">FROM</code> clause and specify a column name as a function argument, the function is + applied for each item in the result set: + </p> + + + +<pre class="pre codeblock"><code>select concat('Country = ',country_code) from all_countries where population > 100000000; +select round(price) as dollar_value from product_catalog where price between 0.0 and 100.0; +</code></pre> + + <p class="p"> + Typically, if any argument to a built-in function is <code class="ph codeph">NULL</code>, the result value is also + <code class="ph codeph">NULL</code>: + </p> + +<pre class="pre codeblock"><code>select cos(null); ++-----------+ +| cos(null) | ++-----------+ +| NULL | ++-----------+ + +select power(2,null); ++----------------+ +| power(2, null) | ++----------------+ +| NULL | ++----------------+ + +select concat('a',null,'b'); ++------------------------+ +| concat('a', null, 'b') | ++------------------------+ +| NULL | ++------------------------+ +</code></pre> + + <p class="p"> + Aggregate functions are a special category with different rules. These functions calculate a return value + across all the items in a result set, so they require a <code class="ph codeph">FROM</code> clause in the query: + </p> + +<pre class="pre codeblock"><code>select count(product_id) from product_catalog; +select max(height), avg(height) from census_data where age > 20; +</code></pre> + + <p class="p"> + Aggregate functions also ignore <code class="ph codeph">NULL</code> values rather than returning a <code class="ph codeph">NULL</code> + result. For example, if some rows have <code class="ph codeph">NULL</code> for a particular column, those rows are + ignored when computing the <code class="ph codeph">AVG()</code> for that column. Likewise, specifying + <code class="ph codeph">COUNT(<var class="keyword varname">col_name</var>)</code> in a query counts only those rows where + <var class="keyword varname">col_name</var> contains a non-<code class="ph codeph">NULL</code> value. + </p> + + <p class="p"> + Aggregate functions are a special category with different rules. These functions calculate a return value + across all the items in a result set, so they do require a <code class="ph codeph">FROM</code> clause in the query: + </p> + + + +<pre class="pre codeblock"><code>select count(product_id) from product_catalog; +select max(height), avg(height) from census_data where age > 20; +</code></pre> + + <p class="p"> + Aggregate functions also ignore <code class="ph codeph">NULL</code> values rather than returning a <code class="ph codeph">NULL</code> + result. For example, if some rows have <code class="ph codeph">NULL</code> for a particular column, those rows are ignored + when computing the AVG() for that column. Likewise, specifying <code class="ph codeph">COUNT(col_name)</code> in a query + counts only those rows where <code class="ph codeph">col_name</code> contains a non-<code class="ph codeph">NULL</code> value. + </p> + + <p class="p"> + Analytic functions are a variation on aggregate functions. Instead of returning a single value, or an + identical value for each group of rows, they can compute values that vary based on a <span class="q">"window"</span> consisting + of other rows around them in the result set. + </p> + + <p class="p toc"></p> + + </div> + +<nav role="navigation" class="related-links"><ul class="ullinks"><li class="link ulchildlink"><strong><a href="../topics/impala_math_functions.html">Impala Mathematical Functions</a></strong><br></li><li class="link ulchildlink"><strong><a href="../topics/impala_bit_functions.html">Impala Bit Functions</a></strong><br></li><li class="link ulchildlink"><strong><a href="../topics/impala_conversion_functions.html">Impala Type Conversion Functions</a></strong><br></li><li class="link ulchildlink"><strong><a href="../topics/impala_datetime_functions.html">Impala Date and Time Functions</a></strong><br></li><li class="link ulchildlink"><strong><a href="../topics/impala_conditional_functions.html">Impala Conditional Functions</a></strong><br></li><li class="link ulchildlink"><strong><a href="../topics/impala_string_functions.html">Impala String Functions</a></strong><br></li><li class="link ulchildlink"><strong><a href="../topics/impala_misc_functions.html">Impala Miscellaneous Functions</ a></strong><br></li><li class="link ulchildlink"><strong><a href="../topics/impala_aggregate_functions.html">Impala Aggregate Functions</a></strong><br></li><li class="link ulchildlink"><strong><a href="../topics/impala_analytic_functions.html">Impala Analytic Functions</a></strong><br></li><li class="link ulchildlink"><strong><a href="../topics/impala_udf.html">Impala User-Defined Functions (UDFs)</a></strong><br></li></ul><div class="familylinks"><div class="parentlink"><strong>Parent topic:</strong> <a class="link" href="../topics/impala_langref.html">Impala SQL Language Reference</a></div></div></nav></article></main></body></html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/75c46918/docs/build/html/topics/impala_functions_overview.html ---------------------------------------------------------------------- diff --git a/docs/build/html/topics/impala_functions_overview.html b/docs/build/html/topics/impala_functions_overview.html new file mode 100644 index 0000000..d202600 --- /dev/null +++ b/docs/build/html/topics/impala_functions_overview.html @@ -0,0 +1,109 @@ +<!DOCTYPE html + SYSTEM "about:legacy-compat"> +<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><meta name="copyright" content="(C) Copyright 2017"><meta name="DC.rights.owner" content="(C) Copyright 2017"><meta name="DC.Type" content="concept"><meta name="DC.Relation" scheme="URI" content="../topics/impala_schema_objects.html"><meta name="prodname" content="Impala"><meta name="prodname" content="Impala"><meta name="version" content="Impala 2.8.x"><meta name="version" content="Impala 2.8.x"><meta name="DC.Format" content="XHTML"><meta name="DC.Identifier" content="functions"><link rel="stylesheet" type="text/css" href="../commonltr.css"><title>Overview of Impala Functions</title></head><body id="functions"><main role="main"><article role="article" aria-labelledby="ariaid-title1"> + + <h1 class="title topictitle1" id="ariaid-title1">Overview of Impala Functions</h1> + + + + <div class="body conbody"> + + <p class="p"> + Functions let you apply arithmetic, string, or other computations and transformations to Impala data. You + typically use them in <code class="ph codeph">SELECT</code> lists and <code class="ph codeph">WHERE</code> clauses to filter and format + query results so that the result set is exactly what you want, with no further processing needed on the + application side. + </p> + + <p class="p"> + Scalar functions return a single result for each input row. See <a class="xref" href="impala_functions.html#builtins">Impala Built-In Functions</a>. + </p> + +<pre class="pre codeblock"><code>[localhost:21000] > select name, population from country where continent = 'North America' order by population desc limit 4; +[localhost:21000] > select upper(name), population from country where continent = 'North America' order by population desc limit 4; ++-------------+------------+ +| upper(name) | population | ++-------------+------------+ +| USA | 320000000 | +| MEXICO | 122000000 | +| CANADA | 25000000 | +| GUATEMALA | 16000000 | ++-------------+------------+ +</code></pre> + <p class="p"> + Aggregate functions combine the results from multiple rows: + either a single result for the entire table, or a separate result for each group of rows. + Aggregate functions are frequently used in combination with <code class="ph codeph">GROUP BY</code> + and <code class="ph codeph">HAVING</code> clauses in the <code class="ph codeph">SELECT</code> statement. + See <a class="xref" href="impala_aggregate_functions.html#aggregate_functions">Impala Aggregate Functions</a>. + </p> + +<pre class="pre codeblock"><code>[localhost:21000] > select continent, <strong class="ph b">sum(population)</strong> as howmany from country <strong class="ph b">group by continent</strong> order by howmany desc; ++---------------+------------+ +| continent | howmany | ++---------------+------------+ +| Asia | 4298723000 | +| Africa | 1110635000 | +| Europe | 742452000 | +| North America | 565265000 | +| South America | 406740000 | +| Oceania | 38304000 | ++---------------+------------+ +</code></pre> + + <p class="p"> + User-defined functions (UDFs) let you code your own logic. They can be either scalar or aggregate functions. + UDFs let you implement important business or scientific logic using high-performance code for Impala to automatically parallelize. + You can also use UDFs to implement convenience functions to simplify reporting or porting SQL from other database systems. + See <a class="xref" href="impala_udf.html#udfs">Impala User-Defined Functions (UDFs)</a>. + </p> + +<pre class="pre codeblock"><code>[localhost:21000] > select <strong class="ph b">rot13('Hello world!')</strong> as 'Weak obfuscation'; ++------------------+ +| weak obfuscation | ++------------------+ +| Uryyb jbeyq! | ++------------------+ +[localhost:21000] > select <strong class="ph b">likelihood_of_new_subatomic_particle(sensor1, sensor2, sensor3)</strong> as probability + > from experimental_results group by experiment; +</code></pre> + + <p class="p"> + Each function is associated with a specific database. For example, if you issue a <code class="ph codeph">USE somedb</code> + statement followed by <code class="ph codeph">CREATE FUNCTION somefunc</code>, the new function is created in the + <code class="ph codeph">somedb</code> database, and you could refer to it through the fully qualified name + <code class="ph codeph">somedb.somefunc</code>. You could then issue another <code class="ph codeph">USE</code> statement + and create a function with the same name in a different database. + </p> + + <p class="p"> + Impala built-in functions are associated with a special database named <code class="ph codeph">_impala_builtins</code>, + which lets you refer to them from any database without qualifying the name. + </p> + +<pre class="pre codeblock"><code>[localhost:21000] > show databases; ++-------------------------+ +| name | ++-------------------------+ +| <strong class="ph b">_impala_builtins</strong> | +| analytic_functions | +| avro_testing | +| data_file_size | +... +[localhost:21000] > show functions in _impala_builtins like '*subs*'; ++-------------+-----------------------------------+ +| return type | signature | ++-------------+-----------------------------------+ +| STRING | substr(STRING, BIGINT) | +| STRING | substr(STRING, BIGINT, BIGINT) | +| STRING | substring(STRING, BIGINT) | +| STRING | substring(STRING, BIGINT, BIGINT) | ++-------------+-----------------------------------+ +</code></pre> + + <p class="p"> + <strong class="ph b">Related statements:</strong> <a class="xref" href="impala_create_function.html#create_function">CREATE FUNCTION Statement</a>, + <a class="xref" href="impala_drop_function.html#drop_function">DROP FUNCTION Statement</a> + </p> + </div> +<nav role="navigation" class="related-links"><div class="familylinks"><div class="parentlink"><strong>Parent topic:</strong> <a class="link" href="../topics/impala_schema_objects.html">Impala Schema Objects and Object Names</a></div></div></nav></article></main></body></html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/75c46918/docs/build/html/topics/impala_grant.html ---------------------------------------------------------------------- diff --git a/docs/build/html/topics/impala_grant.html b/docs/build/html/topics/impala_grant.html new file mode 100644 index 0000000..dafb4f3 --- /dev/null +++ b/docs/build/html/topics/impala_grant.html @@ -0,0 +1,137 @@ +<!DOCTYPE html + SYSTEM "about:legacy-compat"> +<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><meta name="copyright" content="(C) Copyright 2017"><meta name="DC.rights.owner" content="(C) Copyright 2017"><meta name="DC.Type" content="concept"><meta name="DC.Relation" scheme="URI" content="../topics/impala_langref_sql.html"><meta name="prodname" content="Impala"><meta name="prodname" content="Impala"><meta name="version" content="Impala 2.8.x"><meta name="version" content="Impala 2.8.x"><meta name="DC.Format" content="XHTML"><meta name="DC.Identifier" content="grant"><link rel="stylesheet" type="text/css" href="../commonltr.css"><title>GRANT Statement (Impala 2.0 or higher only)</title></head><body id="grant"><main role="main"><article role="article" aria-labelledby="ariaid-title1"> + + <h1 class="title topictitle1" id="ariaid-title1">GRANT Statement (<span class="keyword">Impala 2.0</span> or higher only)</h1> + + + + <div class="body conbody"> + + <p class="p"> + + + The <code class="ph codeph">GRANT</code> statement grants roles or privileges on specified objects to groups. Only Sentry + administrative users can grant roles to a group. + </p> + + <p class="p"> + <strong class="ph b">Syntax:</strong> + </p> + +<pre class="pre codeblock"><code>GRANT ROLE <var class="keyword varname">role_name</var> TO GROUP <var class="keyword varname">group_name</var> + +GRANT <var class="keyword varname">privilege</var> ON <var class="keyword varname">object_type</var> <var class="keyword varname">object_name</var> + TO [ROLE] <var class="keyword varname">roleName</var> + [WITH GRANT OPTION] + +<span class="ph">privilege ::= SELECT | SELECT(<var class="keyword varname">column_name</var>) | INSERT | ALL</span> +object_type ::= TABLE | DATABASE | SERVER | URI +</code></pre> + + <p class="p"> + Typically, the object name is an identifier. For URIs, it is a string literal. + </p> + + + + <p class="p"> + <strong class="ph b">Required privileges:</strong> + </p> + + <p class="p"> + + Only administrative users (initially, a predefined set of users specified in the Sentry service configuration + file) can use this statement. + </p> + + <p class="p"> + The <code class="ph codeph">WITH GRANT OPTION</code> clause allows members of the specified role to issue + <code class="ph codeph">GRANT</code> and <code class="ph codeph">REVOKE</code> statements for those same privileges + + Hence, if a role has the <code class="ph codeph">ALL</code> privilege on a database and the <code class="ph codeph">WITH GRANT + OPTION</code> set, users granted that role can execute <code class="ph codeph">GRANT</code>/<code class="ph codeph">REVOKE</code> + statements only for that database or child tables of the database. This means a user could revoke the + privileges of the user that provided them the <code class="ph codeph">GRANT OPTION</code>. + </p> + + <p class="p"> + + Impala does not currently support revoking only the <code class="ph codeph">WITH GRANT OPTION</code> from a privilege + previously granted to a role. To remove the <code class="ph codeph">WITH GRANT OPTION</code>, revoke the privilege and + grant it again without the <code class="ph codeph">WITH GRANT OPTION</code> flag. + </p> + + <p class="p"> + The ability to grant or revoke <code class="ph codeph">SELECT</code> privilege on specific columns is available + in <span class="keyword">Impala 2.3</span> and higher. See <span class="xref">the documentation for Apache Sentry</span> for details. + </p> + + + + + + <p class="p"> + <strong class="ph b">Compatibility:</strong> + </p> + + <div class="p"> + <ul class="ul"> + <li class="li"> + The Impala <code class="ph codeph">GRANT</code> and <code class="ph codeph">REVOKE</code> statements are available in + <span class="keyword">Impala 2.0</span> and later. + </li> + + <li class="li"> + In <span class="keyword">Impala 1.4</span> and later, Impala can make use of any roles and privileges specified by the + <code class="ph codeph">GRANT</code> and <code class="ph codeph">REVOKE</code> statements in Hive, when your system is configured to + use the Sentry service instead of the file-based policy mechanism. + </li> + + <li class="li"> + The Impala <code class="ph codeph">GRANT</code> and <code class="ph codeph">REVOKE</code> statements for privileges do not require + the <code class="ph codeph">ROLE</code> keyword to be repeated before each role name, unlike the equivalent Hive + statements. + </li> + + <li class="li"> + Currently, each Impala <code class="ph codeph">GRANT</code> or <code class="ph codeph">REVOKE</code> statement can only grant or + revoke a single privilege to or from a single role. + </li> + </ul> + </div> + + <p class="p"> + <strong class="ph b">Cancellation:</strong> Cannot be cancelled. + </p> + + <p class="p"> + <strong class="ph b">HDFS permissions:</strong> This statement does not touch any HDFS files or directories, + therefore no HDFS permissions are required. + </p> + + <p class="p"> + <strong class="ph b">Kudu considerations:</strong> + </p> + <p class="p"> + Access to Kudu tables must be granted to and revoked from roles as usual. + Only users with <code class="ph codeph">ALL</code> privileges on <code class="ph codeph">SERVER</code> can create external Kudu tables. + Currently, access to a Kudu table is <span class="q">"all or nothing"</span>: + enforced at the table level rather than the column level, and applying to all + SQL operations rather than individual statements such as <code class="ph codeph">INSERT</code>. + Because non-SQL APIs can access Kudu data without going through Sentry + authorization, currently the Sentry support is considered preliminary + and subject to change. + </p> + + <p class="p"> + <strong class="ph b">Related information:</strong> + </p> + + <p class="p"> + <a class="xref" href="impala_authorization.html#authorization">Enabling Sentry Authorization for Impala</a>, <a class="xref" href="impala_revoke.html#revoke">REVOKE Statement (Impala 2.0 or higher only)</a>, + <a class="xref" href="impala_create_role.html#create_role">CREATE ROLE Statement (Impala 2.0 or higher only)</a>, <a class="xref" href="impala_drop_role.html#drop_role">DROP ROLE Statement (Impala 2.0 or higher only)</a>, + <a class="xref" href="impala_show.html#show">SHOW Statement</a> + </p> + </div> +<nav role="navigation" class="related-links"><div class="familylinks"><div class="parentlink"><strong>Parent topic:</strong> <a class="link" href="../topics/impala_langref_sql.html">Impala SQL Statements</a></div></div></nav></article></main></body></html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/75c46918/docs/build/html/topics/impala_group_by.html ---------------------------------------------------------------------- diff --git a/docs/build/html/topics/impala_group_by.html b/docs/build/html/topics/impala_group_by.html new file mode 100644 index 0000000..585dd3a --- /dev/null +++ b/docs/build/html/topics/impala_group_by.html @@ -0,0 +1,140 @@ +<!DOCTYPE html + SYSTEM "about:legacy-compat"> +<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><meta name="copyright" content="(C) Copyright 2017"><meta name="DC.rights.owner" content="(C) Copyright 2017"><meta name="DC.Type" content="concept"><meta name="DC.Relation" scheme="URI" content="../topics/impala_select.html"><meta name="prodname" content="Impala"><meta name="prodname" content="Impala"><meta name="version" content="Impala 2.8.x"><meta name="version" content="Impala 2.8.x"><meta name="DC.Format" content="XHTML"><meta name="DC.Identifier" content="group_by"><link rel="stylesheet" type="text/css" href="../commonltr.css"><title>GROUP BY Clause</title></head><body id="group_by"><main role="main"><article role="article" aria-labelledby="ariaid-title1"> + + <h1 class="title topictitle1" id="ariaid-title1">GROUP BY Clause</h1> + + + <div class="body conbody"> + + <p class="p"> + Specify the <code class="ph codeph">GROUP BY</code> clause in queries that use aggregation functions, such as + <code class="ph codeph"><a class="xref" href="impala_count.html#count">COUNT()</a></code>, + <code class="ph codeph"><a class="xref" href="impala_sum.html#sum">SUM()</a></code>, + <code class="ph codeph"><a class="xref" href="impala_avg.html#avg">AVG()</a></code>, + <code class="ph codeph"><a class="xref" href="impala_min.html#min">MIN()</a></code>, and + <code class="ph codeph"><a class="xref" href="impala_max.html#max">MAX()</a></code>. Specify in the + <code class="ph codeph"><a class="xref" href="impala_group_by.html#group_by">GROUP BY</a></code> clause the names of all the + columns that do not participate in the aggregation operation. + </p> + + + <p class="p"> + <strong class="ph b">Complex type considerations:</strong> + </p> + + <p class="p"> + In <span class="keyword">Impala 2.3</span> and higher, the complex data types <code class="ph codeph">STRUCT</code>, + <code class="ph codeph">ARRAY</code>, and <code class="ph codeph">MAP</code> are available. These columns cannot + be referenced directly in the <code class="ph codeph">ORDER BY</code> clause. + When you query a complex type column, you use join notation to <span class="q">"unpack"</span> the elements + of the complex type, and within the join query you can include an <code class="ph codeph">ORDER BY</code> + clause to control the order in the result set of the scalar elements from the complex type. + See <a class="xref" href="impala_complex_types.html#complex_types">Complex Types (Impala 2.3 or higher only)</a> for details about Impala support for complex types. + </p> + + <p class="p"> + <strong class="ph b">Zero-length strings:</strong> For purposes of clauses such as <code class="ph codeph">DISTINCT</code> and <code class="ph codeph">GROUP + BY</code>, Impala considers zero-length strings (<code class="ph codeph">""</code>), <code class="ph codeph">NULL</code>, and space + to all be different values. + </p> + + <p class="p"> + <strong class="ph b">Examples:</strong> + </p> + + <p class="p"> + For example, the following query finds the 5 items that sold the highest total quantity (using the + <code class="ph codeph">SUM()</code> function, and also counts the number of sales transactions for those items (using the + <code class="ph codeph">COUNT()</code> function). Because the column representing the item IDs is not used in any + aggregation functions, we specify that column in the <code class="ph codeph">GROUP BY</code> clause. + </p> + +<pre class="pre codeblock"><code>select + <strong class="ph b">ss_item_sk</strong> as Item, + <strong class="ph b">count</strong>(ss_item_sk) as Times_Purchased, + <strong class="ph b">sum</strong>(ss_quantity) as Total_Quantity_Purchased +from store_sales + <strong class="ph b">group by ss_item_sk</strong> + order by sum(ss_quantity) desc + limit 5; ++-------+-----------------+--------------------------+ +| item | times_purchased | total_quantity_purchased | ++-------+-----------------+--------------------------+ +| 9325 | 372 | 19072 | +| 4279 | 357 | 18501 | +| 7507 | 371 | 18475 | +| 5953 | 369 | 18451 | +| 16753 | 375 | 18446 | ++-------+-----------------+--------------------------+</code></pre> + + <p class="p"> + The <code class="ph codeph">HAVING</code> clause lets you filter the results of aggregate functions, because you cannot + refer to those expressions in the <code class="ph codeph">WHERE</code> clause. For example, to find the 5 lowest-selling + items that were included in at least 100 sales transactions, we could use this query: + </p> + +<pre class="pre codeblock"><code>select + <strong class="ph b">ss_item_sk</strong> as Item, + <strong class="ph b">count</strong>(ss_item_sk) as Times_Purchased, + <strong class="ph b">sum</strong>(ss_quantity) as Total_Quantity_Purchased +from store_sales + <strong class="ph b">group by ss_item_sk</strong> + <strong class="ph b">having times_purchased >= 100</strong> + order by sum(ss_quantity) + limit 5; ++-------+-----------------+--------------------------+ +| item | times_purchased | total_quantity_purchased | ++-------+-----------------+--------------------------+ +| 13943 | 105 | 4087 | +| 2992 | 101 | 4176 | +| 4773 | 107 | 4204 | +| 14350 | 103 | 4260 | +| 11956 | 102 | 4275 | ++-------+-----------------+--------------------------+</code></pre> + + <p class="p"> + When performing calculations involving scientific or financial data, remember that columns with type + <code class="ph codeph">FLOAT</code> or <code class="ph codeph">DOUBLE</code> are stored as true floating-point numbers, which cannot + precisely represent every possible fractional value. Thus, if you include a <code class="ph codeph">FLOAT</code> or + <code class="ph codeph">DOUBLE</code> column in a <code class="ph codeph">GROUP BY</code> clause, the results might not precisely match + literal values in your query or from an original Text data file. Use rounding operations, the + <code class="ph codeph">BETWEEN</code> operator, or another arithmetic technique to match floating-point values that are + <span class="q">"near"</span> literal values you expect. For example, this query on the <code class="ph codeph">ss_wholesale_cost</code> + column returns cost values that are close but not identical to the original figures that were entered as + decimal fractions. + </p> + +<pre class="pre codeblock"><code>select ss_wholesale_cost, avg(ss_quantity * ss_sales_price) as avg_revenue_per_sale + from sales + group by ss_wholesale_cost + order by avg_revenue_per_sale desc + limit 5; ++-------------------+----------------------+ +| ss_wholesale_cost | avg_revenue_per_sale | ++-------------------+----------------------+ +| 96.94000244140625 | 4454.351539300434 | +| 95.93000030517578 | 4423.119941283189 | +| 98.37999725341797 | 4332.516490316291 | +| 97.97000122070312 | 4330.480601655014 | +| 98.52999877929688 | 4291.316953108634 | ++-------------------+----------------------+</code></pre> + + <p class="p"> + Notice how wholesale cost values originally entered as decimal fractions such as <code class="ph codeph">96.94</code> and + <code class="ph codeph">98.38</code> are slightly larger or smaller in the result set, due to precision limitations in the + hardware floating-point types. The imprecise representation of <code class="ph codeph">FLOAT</code> and + <code class="ph codeph">DOUBLE</code> values is why financial data processing systems often store currency using data types + that are less space-efficient but avoid these types of rounding errors. + </p> + + <p class="p"> + <strong class="ph b">Related information:</strong> + </p> + <p class="p"> + <a class="xref" href="impala_select.html#select">SELECT Statement</a>, + <a class="xref" href="impala_aggregate_functions.html#aggregate_functions">Impala Aggregate Functions</a> + </p> + + </div> +<nav role="navigation" class="related-links"><div class="familylinks"><div class="parentlink"><strong>Parent topic:</strong> <a class="link" href="../topics/impala_select.html">SELECT Statement</a></div></div></nav></article></main></body></html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/75c46918/docs/build/html/topics/impala_group_concat.html ---------------------------------------------------------------------- diff --git a/docs/build/html/topics/impala_group_concat.html b/docs/build/html/topics/impala_group_concat.html new file mode 100644 index 0000000..dcc0439 --- /dev/null +++ b/docs/build/html/topics/impala_group_concat.html @@ -0,0 +1,137 @@ +<!DOCTYPE html + SYSTEM "about:legacy-compat"> +<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><meta name="copyright" content="(C) Copyright 2017"><meta name="DC.rights.owner" content="(C) Copyright 2017"><meta name="DC.Type" content="concept"><meta name="DC.Relation" scheme="URI" content="../topics/impala_aggregate_functions.html"><meta name="prodname" content="Impala"><meta name="prodname" content="Impala"><meta name="version" content="Impala 2.8.x"><meta name="version" content="Impala 2.8.x"><meta name="DC.Format" content="XHTML"><meta name="DC.Identifier" content="group_concat"><link rel="stylesheet" type="text/css" href="../commonltr.css"><title>GROUP_CONCAT Function</title></head><body id="group_concat"><main role="main"><article role="article" aria-labelledby="ariaid-title1"> + + <h1 class="title topictitle1" id="ariaid-title1">GROUP_CONCAT Function</h1> + + + + <div class="body conbody"> + + <p class="p"> + + An aggregate function that returns a single string representing the argument value concatenated together for + each row of the result set. If the optional separator string is specified, the separator is added between + each pair of concatenated values. The default separator is a comma followed by a space. + </p> + + <p class="p"> + <strong class="ph b">Syntax:</strong> + </p> + + + +<pre class="pre codeblock"><code>GROUP_CONCAT([ALL] <var class="keyword varname">expression</var> [, <var class="keyword varname">separator</var>])</code></pre> + + <p class="p"> + <strong class="ph b">Usage notes:</strong> <code class="ph codeph">concat()</code> and <code class="ph codeph">concat_ws()</code> are appropriate for + concatenating the values of multiple columns within the same row, while <code class="ph codeph">group_concat()</code> + joins together values from different rows. + </p> + + <p class="p"> + By default, returns a single string covering the whole result set. To include other columns or values in the + result set, or to produce multiple concatenated strings for subsets of rows, include a <code class="ph codeph">GROUP + BY</code> clause in the query. + </p> + + <p class="p"> + <strong class="ph b">Return type:</strong> <code class="ph codeph">STRING</code> + </p> + + <p class="p"> + <strong class="ph b">Restrictions:</strong> + </p> + + <p class="p"> + You cannot apply the <code class="ph codeph">DISTINCT</code> operator to the argument of this function. + </p> + + <p class="p"> + This function cannot be used in an analytic context. That is, the <code class="ph codeph">OVER()</code> clause is not allowed at all with this function. + </p> + + <p class="p"> + Currently, Impala returns an error if the result value grows larger than 1 GiB. + </p> + + <p class="p"> + <strong class="ph b">Examples:</strong> + </p> + + <p class="p"> + The following examples illustrate various aspects of the <code class="ph codeph">GROUP_CONCAT()</code> function. + </p> + + <p class="p"> + You can call the function directly on a <code class="ph codeph">STRING</code> column. To use it with a numeric column, cast + the value to <code class="ph codeph">STRING</code>. + </p> + +<pre class="pre codeblock"><code>[localhost:21000] > create table t1 (x int, s string); +[localhost:21000] > insert into t1 values (1, "one"), (3, "three"), (2, "two"), (1, "one"); +[localhost:21000] > select group_concat(s) from t1; ++----------------------+ +| group_concat(s) | ++----------------------+ +| one, three, two, one | ++----------------------+ +[localhost:21000] > select group_concat(cast(x as string)) from t1; ++---------------------------------+ +| group_concat(cast(x as string)) | ++---------------------------------+ +| 1, 3, 2, 1 | ++---------------------------------+ +</code></pre> + + <p class="p"> + The optional separator lets you format the result in flexible ways. The separator can be an arbitrary string + expression, not just a single character. + </p> + +<pre class="pre codeblock"><code>[localhost:21000] > select group_concat(s,"|") from t1; ++----------------------+ +| group_concat(s, '|') | ++----------------------+ +| one|three|two|one | ++----------------------+ +[localhost:21000] > select group_concat(s,'---') from t1; ++-------------------------+ +| group_concat(s, '---') | ++-------------------------+ +| one---three---two---one | ++-------------------------+ +</code></pre> + + <p class="p"> + The default separator is a comma followed by a space. To get a comma-delimited result without extra spaces, + specify a delimiter character that is only a comma. + </p> + +<pre class="pre codeblock"><code>[localhost:21000] > select group_concat(s,',') from t1; ++----------------------+ +| group_concat(s, ',') | ++----------------------+ +| one,three,two,one | ++----------------------+ +</code></pre> + + <p class="p"> + Including a <code class="ph codeph">GROUP BY</code> clause lets you produce a different concatenated result for each group + in the result set. In this example, the only <code class="ph codeph">X</code> value that occurs more than once is + <code class="ph codeph">1</code>, so that is the only row in the result set where <code class="ph codeph">GROUP_CONCAT()</code> returns a + delimited value. For groups containing a single value, <code class="ph codeph">GROUP_CONCAT()</code> returns the original + value of its <code class="ph codeph">STRING</code> argument. + </p> + +<pre class="pre codeblock"><code>[localhost:21000] > select x, group_concat(s) from t1 group by x; ++---+-----------------+ +| x | group_concat(s) | ++---+-----------------+ +| 2 | two | +| 3 | three | +| 1 | one, one | ++---+-----------------+ +</code></pre> + </div> +<nav role="navigation" class="related-links"><div class="familylinks"><div class="parentlink"><strong>Parent topic:</strong> <a class="link" href="../topics/impala_aggregate_functions.html">Impala Aggregate Functions</a></div></div></nav></article></main></body></html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/75c46918/docs/build/html/topics/impala_hadoop.html ---------------------------------------------------------------------- diff --git a/docs/build/html/topics/impala_hadoop.html b/docs/build/html/topics/impala_hadoop.html new file mode 100644 index 0000000..dc5f7d6 --- /dev/null +++ b/docs/build/html/topics/impala_hadoop.html @@ -0,0 +1,138 @@ +<!DOCTYPE html + SYSTEM "about:legacy-compat"> +<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><meta name="copyright" content="(C) Copyright 2017"><meta name="DC.rights.owner" content="(C) Copyright 2017"><meta name="DC.Type" content="concept"><meta name="DC.Relation" scheme="URI" content="../topics/impala_concepts.html"><meta name="prodname" content="Impala"><meta name="prodname" content="Impala"><meta name="version" content="Impala 2.8.x"><meta name="version" content="Impala 2.8.x"><meta name="DC.Format" content="XHTML"><meta name="DC.Identifier" content="intro_hadoop"><link rel="stylesheet" type="text/css" href="../commonltr.css"><title>How Impala Fits Into the Hadoop Ecosystem</title></head><body id="intro_hadoop"><main role="main"><article role="article" aria-labelledby="ariaid-title1"> + + <h1 class="title topictitle1" id="ariaid-title1">How Impala Fits Into the Hadoop Ecosystem</h1> + + + + <div class="body conbody"> + + <p class="p"> + Impala makes use of many familiar components within the Hadoop ecosystem. Impala can interchange data with + other Hadoop components, as both a consumer and a producer, so it can fit in flexible ways into your ETL and + ELT pipelines. + </p> + + <p class="p toc inpage"></p> + </div> + + <nav role="navigation" class="related-links"><div class="familylinks"><div class="parentlink"><strong>Parent topic:</strong> <a class="link" href="../topics/impala_concepts.html">Impala Concepts and Architecture</a></div></div></nav><article class="topic concept nested1" aria-labelledby="ariaid-title2" id="intro_hadoop__intro_hive"> + + <h2 class="title topictitle2" id="ariaid-title2">How Impala Works with Hive</h2> + + <div class="body conbody"> + + <p class="p"> + A major Impala goal is to make SQL-on-Hadoop operations fast and efficient enough to appeal to new + categories of users and open up Hadoop to new types of use cases. Where practical, it makes use of existing + Apache Hive infrastructure that many Hadoop users already have in place to perform long-running, + batch-oriented SQL queries. + </p> + + <p class="p"> + In particular, Impala keeps its table definitions in a traditional MySQL or PostgreSQL database known as + the <strong class="ph b">metastore</strong>, the same database where Hive keeps this type of data. Thus, Impala can access tables + defined or loaded by Hive, as long as all columns use Impala-supported data types, file formats, and + compression codecs. + </p> + + <p class="p"> + The initial focus on query features and performance means that Impala can read more types of data with the + <code class="ph codeph">SELECT</code> statement than it can write with the <code class="ph codeph">INSERT</code> statement. To query + data using the Avro, RCFile, or SequenceFile <a class="xref" href="impala_file_formats.html#file_formats">file + formats</a>, you load the data using Hive. + </p> + + <p class="p"> + The Impala query optimizer can also make use of <a class="xref" href="impala_perf_stats.html#perf_table_stats">table + statistics</a> and <a class="xref" href="impala_perf_stats.html#perf_column_stats">column statistics</a>. + Originally, you gathered this information with the <code class="ph codeph">ANALYZE TABLE</code> statement in Hive; in + Impala 1.2.2 and higher, use the Impala <code class="ph codeph"><a class="xref" href="impala_compute_stats.html#compute_stats">COMPUTE + STATS</a></code> statement instead. <code class="ph codeph">COMPUTE STATS</code> requires less setup, is more + reliable, and does not require switching back and forth between <span class="keyword cmdname">impala-shell</span> + and the Hive shell. + </p> + </div> + </article> + + <article class="topic concept nested1" aria-labelledby="ariaid-title3" id="intro_hadoop__intro_metastore"> + + <h2 class="title topictitle2" id="ariaid-title3">Overview of Impala Metadata and the Metastore</h2> + + + <div class="body conbody"> + + <p class="p"> + As discussed in <a class="xref" href="impala_hadoop.html#intro_hive">How Impala Works with Hive</a>, Impala maintains information about table + definitions in a central database known as the <strong class="ph b">metastore</strong>. Impala also tracks other metadata for the + low-level characteristics of data files: + </p> + + <ul class="ul"> + <li class="li"> + The physical locations of blocks within HDFS. + </li> + </ul> + + <p class="p"> + For tables with a large volume of data and/or many partitions, retrieving all the metadata for a table can + be time-consuming, taking minutes in some cases. Thus, each Impala node caches all of this metadata to + reuse for future queries against the same table. + </p> + + <p class="p"> + If the table definition or the data in the table is updated, all other Impala daemons in the cluster must + receive the latest metadata, replacing the obsolete cached metadata, before issuing a query against that + table. In Impala 1.2 and higher, the metadata update is automatic, coordinated through the + <span class="keyword cmdname">catalogd</span> daemon, for all DDL and DML statements issued through Impala. See + <a class="xref" href="impala_components.html#intro_catalogd">The Impala Catalog Service</a> for details. + </p> + + <p class="p"> + For DDL and DML issued through Hive, or changes made manually to files in HDFS, you still use the + <code class="ph codeph">REFRESH</code> statement (when new data files are added to existing tables) or the + <code class="ph codeph">INVALIDATE METADATA</code> statement (for entirely new tables, or after dropping a table, + performing an HDFS rebalance operation, or deleting data files). Issuing <code class="ph codeph">INVALIDATE + METADATA</code> by itself retrieves metadata for all the tables tracked by the metastore. If you know + that only specific tables have been changed outside of Impala, you can issue <code class="ph codeph">REFRESH + <var class="keyword varname">table_name</var></code> for each affected table to only retrieve the latest metadata for + those tables. + </p> + </div> + </article> + + <article class="topic concept nested1" aria-labelledby="ariaid-title4" id="intro_hadoop__intro_hdfs"> + + <h2 class="title topictitle2" id="ariaid-title4">How Impala Uses HDFS</h2> + + + <div class="body conbody"> + + <p class="p"> + Impala uses the distributed filesystem HDFS as its primary data storage medium. Impala relies on the + redundancy provided by HDFS to guard against hardware or network outages on individual nodes. Impala table + data is physically represented as data files in HDFS, using familiar HDFS file formats and compression + codecs. When data files are present in the directory for a new table, Impala reads them all, regardless of + file name. New data is added in files with names controlled by Impala. + </p> + </div> + </article> + + <article class="topic concept nested1" aria-labelledby="ariaid-title5" id="intro_hadoop__intro_hbase"> + + <h2 class="title topictitle2" id="ariaid-title5">How Impala Uses HBase</h2> + + + <div class="body conbody"> + + <p class="p"> + HBase is an alternative to HDFS as a storage medium for Impala data. It is a database storage system built + on top of HDFS, without built-in SQL support. Many Hadoop users already have it configured and store large + (often sparse) data sets in it. By defining tables in Impala and mapping them to equivalent tables in + HBase, you can query the contents of the HBase tables through Impala, and even perform join queries + including both Impala and HBase tables. See <a class="xref" href="impala_hbase.html#impala_hbase">Using Impala to Query HBase Tables</a> for details. + </p> + </div> + </article> +</article></main></body></html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/75c46918/docs/build/html/topics/impala_having.html ---------------------------------------------------------------------- diff --git a/docs/build/html/topics/impala_having.html b/docs/build/html/topics/impala_having.html new file mode 100644 index 0000000..378b07c --- /dev/null +++ b/docs/build/html/topics/impala_having.html @@ -0,0 +1,39 @@ +<!DOCTYPE html + SYSTEM "about:legacy-compat"> +<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><meta name="copyright" content="(C) Copyright 2017"><meta name="DC.rights.owner" content="(C) Copyright 2017"><meta name="DC.Type" content="concept"><meta name="DC.Relation" scheme="URI" content="../topics/impala_select.html"><meta name="prodname" content="Impala"><meta name="prodname" content="Impala"><meta name="version" content="Impala 2.8.x"><meta name="version" content="Impala 2.8.x"><meta name="DC.Format" content="XHTML"><meta name="DC.Identifier" content="having"><link rel="stylesheet" type="text/css" href="../commonltr.css"><title>HAVING Clause</title></head><body id="having"><main role="main"><article role="article" aria-labelledby="ariaid-title1"> + + <h1 class="title topictitle1" id="ariaid-title1">HAVING Clause</h1> + + + <div class="body conbody"> + + <p class="p"> + Performs a filter operation on a <code class="ph codeph">SELECT</code> query, by examining the results of aggregation + functions rather than testing each individual table row. Therefore, it is always used in conjunction with a + function such as <code class="ph codeph"><a class="xref" href="impala_count.html#count">COUNT()</a></code>, + <code class="ph codeph"><a class="xref" href="impala_sum.html#sum">SUM()</a></code>, + <code class="ph codeph"><a class="xref" href="impala_avg.html#avg">AVG()</a></code>, + <code class="ph codeph"><a class="xref" href="impala_min.html#min">MIN()</a></code>, or + <code class="ph codeph"><a class="xref" href="impala_max.html#max">MAX()</a></code>, and typically with the + <code class="ph codeph"><a class="xref" href="impala_group_by.html#group_by">GROUP BY</a></code> clause also. + </p> + + <p class="p"> + <strong class="ph b">Restrictions:</strong> + </p> + + <p class="p"> + The filter expression in the <code class="ph codeph">HAVING</code> clause cannot include a scalar subquery. + </p> + + <p class="p"> + <strong class="ph b">Related information:</strong> + </p> + <p class="p"> + <a class="xref" href="impala_select.html#select">SELECT Statement</a>, + <a class="xref" href="impala_group_by.html#group_by">GROUP BY Clause</a>, + <a class="xref" href="impala_aggregate_functions.html#aggregate_functions">Impala Aggregate Functions</a> + </p> + + </div> +<nav role="navigation" class="related-links"><div class="familylinks"><div class="parentlink"><strong>Parent topic:</strong> <a class="link" href="../topics/impala_select.html">SELECT Statement</a></div></div></nav></article></main></body></html> \ No newline at end of file
