FLINK1.12的Hbase的DATE,TIME,TIMESTAMP类型学习
类型 |
解释 |
---|---|
DATE | 从 1970-01-01 00:00:00 UTC 开始的天数,int 值。 |
TIME |
从 1970-01-01 00:00:00 UTC 开始天的毫秒数,int 值。 |
TIMESTAMP |
从 1970-01-01 00:00:00 UTC 开始的毫秒数,long 值。 |
1.1 DATE
从上述可以看出类型
DATE的底层存储为Int值,且该Int值表示从 1970-01-01 00:00:00 UTC 开始的天数。
1.1.2 当日期定义为INT时
CREATE TABLE ODS_TEST_LEW ( rowkey STRING ,f ROW<`c1` DOUBLE,`c2` DOUBLE, `c3` INT, `c4` INT>,PRIMARY KEY (rowkey) NOT ENFORCED )WITH( 'connector' = 'hbase-1.4', 'table-name' = 'ODS_TEST_LEW', 'null-string-literal' = '', 'zookeeper.quorum' = 'xxx:2181');
查询
select rowkey,c4 from ODS_TEST_LEW;
显示
rowkey | c4 |
---|---|
1002 | 18874 |
111 | 18895 |
112 | 18855 |
113 | 18875 |
1.1.3 当日期定义为DATE时
CREATE TABLE ODS_TEST_LEW ( rowkey STRING ,f ROW<`c1` DOUBLE,`c2` DOUBLE, `c3` INT, `c4` DATE>,PRIMARY KEY (rowkey) NOT ENFORCED )WITH( 'connector' = 'hbase-1.4', 'table-name' = 'ODS_TEST_LEW', 'null-string-literal' = '', 'zookeeper.quorum' = 'xxx1:2181,xxx2:2181,xxx3:2181');
查询
select rowkey,c4 from ODS_TEST_LEW;
显示
rowkey | c4 |
---|---|
1002 | 2021-09-04 |
111 | 2021-09-25 |
112 | 2021-08-16 |
113 | 2021-09-05 |
需要注意的是当Create Table语句中定义为INT或者DATE时,要按其定义的类型插入数据,即定义为INT时,插入中该字段也要是INT,当定义为DATE时,插入中该字段也要是DATE(例如cast('2021-09-01' as DATE)转成DATE)