Flink sql报错:Unknown identifier 'DATETIME'

提问者:帅平 问题分类:大数据
Flink sql执行的时候报错了,提示:

Caused by: org.apache.calcite.sql.validate.SqlValidatorException: Unknown identifier 'DATETIME'
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:505)
	at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:599)
	... 108 more

创建sql的语句是:
CREATE TABLE source_township ( 
	id int NOT NULL, 
	province STRING, 
	province_code STRING, 
	city STRING, 
	city_code STRING, 
	area STRING, 
	area_code STRING, 
	town STRING, 
	town_code STRING,
	created_time DATETIME,
	updated_time DATETIME,
	PRIMARY KEY (`id`) NOT ENFORCED 
) 
WITH ( 
	'connector' = 'mysql-cdc', 
	'hostname' = '192.168.31.218', 
	'port' = '33336', 
	'username' = 'root', 
	'password' = '123456', 
	'database-name' = 'test3', 
	'table-name' = 'township' 
)
1 个回答
相视而笑
相视而笑
这是因为flinksql中没有datatime这个数据类型,如果是数据导入的话,可以使用TIMESTAMP_LTZ类型,例如:
CREATE TABLE source_township ( 
	id int NOT NULL, 
	province STRING, 
	province_code STRING, 
	city STRING, 
	city_code STRING, 
	area STRING, 
	area_code STRING, 
	town STRING, 
	town_code STRING,
	created_time TIMESTAMP,
	updated_time TIMESTAMP,
	PRIMARY KEY (`id`) NOT ENFORCED 
) 
WITH ( 
	'connector' = 'mysql-cdc', 
	'hostname' = '192.168.31.218', 
	'port' = '33336', 
	'username' = 'root', 
	'password' = '123456', 
	'database-name' = 'test3', 
	'table-name' = 'township' 
);
发布于:8个月前 (09-05) IP属地:四川省
我来回答