Repository: tajo Updated Branches: refs/heads/master dfb308fde -> 3cf7f24bc
TAJO-2061: Add description for EXPLAIN statement. Closes #947 Project: http://git-wip-us.apache.org/repos/asf/tajo/repo Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/3cf7f24b Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/3cf7f24b Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/3cf7f24b Branch: refs/heads/master Commit: 3cf7f24bc1133d3c0df1ef6031ce075bdf97fb7f Parents: dfb308f Author: JaeHwa Jung <[email protected]> Authored: Fri Jan 22 18:36:09 2016 +0900 Committer: JaeHwa Jung <[email protected]> Committed: Fri Jan 22 18:36:09 2016 +0900 ---------------------------------------------------------------------- CHANGES | 2 + tajo-docs/src/main/sphinx/sql_language.rst | 3 +- .../src/main/sphinx/sql_language/explain.rst | 93 ++++++++++++++++++++ 3 files changed, 97 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/3cf7f24b/CHANGES ---------------------------------------------------------------------- diff --git a/CHANGES b/CHANGES index c0801cc..6bc9635 100644 --- a/CHANGES +++ b/CHANGES @@ -8,6 +8,8 @@ Release 0.12.0 - unreleased IMPROVEMENT + TAJO-2061: Add description for EXPLAIN statement. (jaehwa) + TAJO-2060: Upgrade geoip-api-java library. (Byunghwa Yun via jinho) TAJO-2048: QueryMaster and TajoWorker should support the exception http://git-wip-us.apache.org/repos/asf/tajo/blob/3cf7f24b/tajo-docs/src/main/sphinx/sql_language.rst ---------------------------------------------------------------------- diff --git a/tajo-docs/src/main/sphinx/sql_language.rst b/tajo-docs/src/main/sphinx/sql_language.rst index ed57e50..414a0e0 100644 --- a/tajo-docs/src/main/sphinx/sql_language.rst +++ b/tajo-docs/src/main/sphinx/sql_language.rst @@ -12,4 +12,5 @@ SQL Language sql_language/queries sql_language/joins sql_language/sql_expression - sql_language/predicates \ No newline at end of file + sql_language/predicates + sql_language/explain \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tajo/blob/3cf7f24b/tajo-docs/src/main/sphinx/sql_language/explain.rst ---------------------------------------------------------------------- diff --git a/tajo-docs/src/main/sphinx/sql_language/explain.rst b/tajo-docs/src/main/sphinx/sql_language/explain.rst new file mode 100644 index 0000000..85943bd --- /dev/null +++ b/tajo-docs/src/main/sphinx/sql_language/explain.rst @@ -0,0 +1,93 @@ +************************ +EXPLAIN +************************ + +*Synopsis* + +.. code-block:: sql + + EXPLAIN [GLOBAL] statement + + +*Description* + +Show the logical or global execution plan of a statement. + + +*Examples* + +Logical plan: + +.. code-block:: sql + + default> EXPLAIN SELECT l_orderkey, count(*) FROM lineitem GROUP BY l_orderkey; + explain + ------------------------------- + GROUP_BY(1)(l_orderkey) + => exprs: (count()) + => target list: default.lineitem.l_orderkey (INT8), ?count (INT8) + => out schema:{(2) default.lineitem.l_orderkey (INT8), ?count (INT8)} + => in schema:{(1) default.lineitem.l_orderkey (INT8)} + SCAN(0) on default.lineitem + => target list: default.lineitem.l_orderkey (INT8) + => out schema: {(1) default.lineitem.l_orderkey (INT8)} + => in schema: {(16) default.lineitem.l_orderkey (INT8), default.lineitem.l_partkey (INT8), default.lineitem.l_suppkey (INT8), default.lineitem.l_linenumber (INT8), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_tax (FLOAT8), default.lineitem.l_returnflag (TEXT), default.lineitem.l_linestatus (TEXT), default.lineitem.l_shipdate (DATE), default.lineitem.l_commitdate (DATE), default.lineitem.l_receiptdate (DATE), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_comment (TEXT)} + + +Global plan: + +.. code-block:: sql + + default> EXPLAIN GLOBAL SELECT l_orderkey, count(*) FROM lineitem GROUP BY l_orderkey; + explain + ------------------------------- + ------------------------------------------------------------------------------- + Execution Block Graph (TERMINAL - eb_0000000000000_0000_000003) + ------------------------------------------------------------------------------- + |-eb_0000000000000_0000_000003 + |-eb_0000000000000_0000_000002 + |-eb_0000000000000_0000_000001 + ------------------------------------------------------------------------------- + Order of Execution + ------------------------------------------------------------------------------- + 1: eb_0000000000000_0000_000001 + 2: eb_0000000000000_0000_000002 + 3: eb_0000000000000_0000_000003 + ------------------------------------------------------------------------------- + + ======================================================= + Block Id: eb_0000000000000_0000_000001 [LEAF] + ======================================================= + + [Outgoing] + [q_0000000000000_0000] 1 => 2 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT8), num=32) + + GROUP_BY(5)(l_orderkey) + => exprs: (count()) + => target list: default.lineitem.l_orderkey (INT8), ?count_1 (INT8) + => out schema:{(2) default.lineitem.l_orderkey (INT8), ?count_1 (INT8)} + => in schema:{(1) default.lineitem.l_orderkey (INT8)} + SCAN(0) on default.lineitem + => target list: default.lineitem.l_orderkey (INT8) + => out schema: {(1) default.lineitem.l_orderkey (INT8)} + => in schema: {(16) default.lineitem.l_orderkey (INT8), default.lineitem.l_partkey (INT8), default.lineitem.l_suppkey (INT8), default.lineitem.l_linenumber (INT8), default.lineitem.l_quantity (FLOAT8), default.lineitem.l_extendedprice (FLOAT8), default.lineitem.l_discount (FLOAT8), default.lineitem.l_tax (FLOAT8), default.lineitem.l_returnflag (TEXT), default.lineitem.l_linestatus (TEXT), default.lineitem.l_shipdate (DATE), default.lineitem.l_commitdate (DATE), default.lineitem.l_receiptdate (DATE), default.lineitem.l_shipinstruct (TEXT), default.lineitem.l_shipmode (TEXT), default.lineitem.l_comment (TEXT)} + + ======================================================= + Block Id: eb_0000000000000_0000_000002 [ROOT] + ======================================================= + + [Incoming] + [q_0000000000000_0000] 1 => 2 (type=HASH_SHUFFLE, key=default.lineitem.l_orderkey (INT8), num=32) + + GROUP_BY(1)(l_orderkey) + => exprs: (count(?count_1 (INT8))) + => target list: default.lineitem.l_orderkey (INT8), ?count (INT8) + => out schema:{(2) default.lineitem.l_orderkey (INT8), ?count (INT8)} + => in schema:{(2) default.lineitem.l_orderkey (INT8), ?count_1 (INT8)} + SCAN(6) on eb_0000000000000_0000_000001 + => out schema: {(2) default.lineitem.l_orderkey (INT8), ?count_1 (INT8)} + => in schema: {(2) default.lineitem.l_orderkey (INT8), ?count_1 (INT8)} + + ======================================================= + Block Id: eb_0000000000000_0000_000003 [TERMINAL] + ======================================================= \ No newline at end of file
