blob: 3cef847f59a59af5ed41138f694c6e16949439bd [file] [log] [blame]
--! qt:disabled:HIVE-24816
--! qt:dataset:alltypesorc
SET hive.ctas.external.tables=true;
SET hive.external.table.purge.default = true;
CREATE EXTERNAL TABLE druid_alltypesorc
STORED BY 'org.apache.hadoop.hive.druid.DruidStorageHandler'
TBLPROPERTIES ("druid.segment.granularity" = "HOUR", "druid.query.granularity" = "MINUTE")
AS
SELECT cast (`ctimestamp2` as timestamp with local time zone) as `__time`,
cstring1,
cstring2,
cdouble,
cfloat,
ctinyint,
csmallint,
cint,
cbigint,
cboolean1,
cboolean2
FROM alltypesorc where ctimestamp2 IS NOT NULL;
SELECT COUNT(*) FROM druid_alltypesorc;
INSERT INTO TABLE druid_alltypesorc
SELECT cast (`ctimestamp1` as timestamp with local time zone) as `__time`,
cstring1,
cstring2,
cdouble,
cfloat,
ctinyint,
csmallint,
cint,
cbigint,
cboolean1,
cboolean2
FROM alltypesorc where ctimestamp1 IS NOT NULL;
-- ANALYZE COLUMN STATS FOR DRUID TABLE
analyze table druid_alltypesorc compute statistics for columns;
SELECT COUNT(*) FROM druid_alltypesorc;
INSERT OVERWRITE TABLE druid_alltypesorc
SELECT cast (`ctimestamp1` as timestamp with local time zone) as `__time`,
cstring1,
cstring2,
cdouble,
cfloat,
ctinyint,
csmallint,
cint,
cbigint,
cboolean1,
cboolean2
FROM alltypesorc where ctimestamp1 IS NOT NULL;
SELECT COUNT(*) FROM druid_alltypesorc;
DROP TABLE druid_alltypesorc;
-- Test create then insert
create database druid_test_create_then_insert;
use druid_test_create_then_insert;
create table test_table_n9(`timecolumn` timestamp, `userid` string, `num_l` float);
insert into test_table_n9 values ('2015-01-08 00:00:00', 'i1-start', 4);
insert into test_table_n9 values ('2015-01-08 23:59:59', 'i1-end', 1);
CREATE EXTERNAL TABLE druid_table_n1 (`__time` timestamp with local time zone, `userid` string, `num_l` float)
STORED BY 'org.apache.hadoop.hive.druid.DruidStorageHandler'
TBLPROPERTIES ("druid.segment.granularity" = "DAY");
INSERT INTO TABLE druid_table_n1
select cast(`timecolumn` as timestamp with local time zone) as `__time`, `userid`, `num_l` FROM test_table_n9;
select count(*) FROM druid_table_n1;
DROP TABLE test_table_n9;
DROP TABLE druid_table_n1;
DROP DATABASE druid_test_create_then_insert;
-- Day light saving time test insert into test
create database druid_test_dst;
use druid_test_dst;
create table test_base_table(`timecolumn` timestamp, `userid` string, `num_l` float);
insert into test_base_table values ('2015-03-08 00:00:00', 'i1-start', 4);
insert into test_base_table values ('2015-03-08 23:59:59', 'i1-end', 1);
insert into test_base_table values ('2015-03-09 00:00:00', 'i2-start', 4);
insert into test_base_table values ('2015-03-09 23:59:59', 'i2-end', 1);
insert into test_base_table values ('2015-03-10 00:00:00', 'i3-start', 2);
insert into test_base_table values ('2015-03-10 23:59:59', 'i3-end', 2);
CREATE EXTERNAL TABLE druid_test_table_n9
STORED BY 'org.apache.hadoop.hive.druid.DruidStorageHandler'
TBLPROPERTIES ("druid.segment.granularity" = "DAY")
AS
select cast(`timecolumn` as timestamp with local time zone) as `__time`, `userid`, `num_l` FROM test_base_table;
select * FROM druid_test_table_n9;
select * from druid_test_table_n9 where `__time` = cast('2015-03-08 00:00:00' as timestamp with local time zone);
select * from druid_test_table_n9 where `__time` = cast('2015-03-08 23:59:59' as timestamp with local time zone);
select * from druid_test_table_n9 where `__time` = cast('2015-03-09 00:00:00' as timestamp with local time zone);
select * from druid_test_table_n9 where `__time` = cast('2015-03-09 23:59:59' as timestamp with local time zone);
select * from druid_test_table_n9 where `__time` = cast('2015-03-10 00:00:00' as timestamp with local time zone);
select * from druid_test_table_n9 where `__time` = cast('2015-03-10 23:59:59' as timestamp with local time zone);
explain select * from druid_test_table_n9 where `__time` = cast('2015-03-08 00:00:00' as timestamp with local time zone);
explain select * from druid_test_table_n9 where `__time` = cast('2015-03-08 23:59:59' as timestamp with local time zone);
explain select * from druid_test_table_n9 where `__time` = cast('2015-03-09 00:00:00' as timestamp with local time zone);
explain select * from druid_test_table_n9 where `__time` = cast('2015-03-09 23:59:59' as timestamp with local time zone);
explain select * from druid_test_table_n9 where `__time` = cast('2015-03-10 00:00:00' as timestamp with local time zone);
explain select * from druid_test_table_n9 where `__time` = cast('2015-03-10 23:59:59' as timestamp with local time zone);
select * from druid_test_table_n9 where `__time` = cast('2015-03-08 00:00:00' as timestamp );
select * from druid_test_table_n9 where `__time` = cast('2015-03-08 23:59:59' as timestamp );
select * from druid_test_table_n9 where `__time` = cast('2015-03-09 00:00:00' as timestamp );
select * from druid_test_table_n9 where `__time` = cast('2015-03-09 23:59:59' as timestamp );
select * from druid_test_table_n9 where `__time` = cast('2015-03-10 00:00:00' as timestamp );
select * from druid_test_table_n9 where `__time` = cast('2015-03-10 23:59:59' as timestamp );
EXPLAIN select * from druid_test_table_n9 where `__time` = cast('2015-03-08 00:00:00' as timestamp );
EXPLAIN select * from druid_test_table_n9 where `__time` = cast('2015-03-08 23:59:59' as timestamp );
EXPLAIN select * from druid_test_table_n9 where `__time` = cast('2015-03-09 00:00:00' as timestamp );
EXPLAIN select * from druid_test_table_n9 where `__time` = cast('2015-03-09 23:59:59' as timestamp );
EXPLAIN select * from druid_test_table_n9 where `__time` = cast('2015-03-10 00:00:00' as timestamp );
EXPLAIN select * from druid_test_table_n9 where `__time` = cast('2015-03-10 23:59:59' as timestamp );
-- disable rollup and insert identical rows
SET hive.druid.rollup=false;
insert into druid_test_table_n9 values
('2015-03-12 00:00:00', 'i4-1', 4),
('2015-03-12 00:00:00', 'i4-1', 2),
('2015-03-12 00:00:00', 'i4-1', 1);
select * from druid_test_table_n9 where `__time` = cast('2015-03-12 00:00:00' as timestamp );
DROP TABLE test_base_table;
DROP TABLE druid_test_table_n9;
drop database druid_test_dst;