blob: 6ff7d590ea3865173c09dde22704de7390131753 [file] [log] [blame]
set hive.druid.broker.address.default=localhost.test;
CREATE EXTERNAL TABLE druid_table_1_n3
STORED BY 'org.apache.hadoop.hive.druid.QTestDruidStorageHandler'
TBLPROPERTIES ("druid.datasource" = "wikipedia");
-- DESCRIBE FORMATTED druid_table_1_n3;
-- GRANULARITY: ALL
EXPLAIN SELECT count(`__time`) from druid_table_1_n3 where `__time` >= '2010-01-01 00:00:00 UTC' AND `__time` <= '2012-03-01 00:00:00 UTC' OR added <= 0;
EXPLAIN SELECT count(`__time`) from druid_table_1_n3 where `__time` <= '2010-01-01 00:00:00 UTC';
EXPLAIN
SELECT max(added), sum(variation)
FROM druid_table_1_n3;
-- GRANULARITY: NONE
EXPLAIN
SELECT `__time`, max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY `__time`;
-- GRANULARITY: YEAR
EXPLAIN
SELECT floor_year(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_year(`__time`);
-- @TODO FIXME https://issues.apache.org/jira/browse/CALCITE-2222
-- The current plan of this query is not optimal it can be planned as time series instead of scan
-- GRANULARITY: QUARTER
EXPLAIN
SELECT floor_quarter(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_quarter(`__time`);
-- GRANULARITY: MONTH
EXPLAIN
SELECT floor_month(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_month(`__time`);
-- GRANULARITY: WEEK
EXPLAIN
SELECT floor_week(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_week(`__time`);
-- GRANULARITY: DAY
EXPLAIN
SELECT floor_day(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_day(`__time`);
-- GRANULARITY: HOUR
EXPLAIN
SELECT floor_hour(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_hour(`__time`);
-- GRANULARITY: MINUTE
EXPLAIN
SELECT floor_minute(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_minute(`__time`);
-- GRANULARITY: SECOND
EXPLAIN
SELECT floor_second(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
GROUP BY floor_second(`__time`);
-- WITH FILTER ON DIMENSION
EXPLAIN
SELECT floor_hour(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
WHERE robot='1'
GROUP BY floor_hour(`__time`);
-- WITH FILTER ON TIME
EXPLAIN
SELECT floor_hour(`__time`), max(added), sum(variation)
FROM druid_table_1_n3
WHERE floor_hour(`__time`)
BETWEEN CAST('2010-01-01 00:00:00' AS TIMESTAMP WITH LOCAL TIME ZONE)
AND CAST('2014-01-01 00:00:00' AS TIMESTAMP WITH LOCAL TIME ZONE)
GROUP BY floor_hour(`__time`);
-- WITH FILTER ON TIME
EXPLAIN
SELECT subq.h, subq.m, subq.s
FROM
(
SELECT floor_hour(`__time`) as h, max(added) as m, sum(variation) as s
FROM druid_table_1_n3
GROUP BY floor_hour(`__time`)
) subq
WHERE subq.h BETWEEN CAST('2010-01-01 00:00:00' AS TIMESTAMP WITH LOCAL TIME ZONE)
AND CAST('2014-01-01 00:00:00' AS TIMESTAMP WITH LOCAL TIME ZONE);
-- Simplification of count(__time) as count(*) since time column is not null
EXPLAIN SELECT count(`__time`) from druid_table_1_n3;
EXPLAIN SELECT count(`__time`) from druid_table_1_n3 where `__time` <= '2010-01-01 00:00:00 UTC';
EXPLAIN SELECT count(`__time`) from druid_table_1_n3 where `__time` >= '2010-01-01 00:00:00';
EXPLAIN SELECT count(`__time`) from druid_table_1_n3 where `__time` <= '2010-01-01 00:00:00' OR `__time` <= '2012-03-01 00:00:00';