Thanks, I have tried.
'format.derive-schema' = 'true' will work.
But if i insist to use format.json-schema, the CREATE TABLE must be writtten
as:
`id` DECIMAL(38,18),
`timestamp` DECIMAL(38,18)
[email protected]
From: Benchao Li
Date: 2020-04-16 16:56
To: [email protected]
CC: user
Subject: Re: FlinkSQL query error when specify json-schema.
Hi wanglei,
You don't need to specify 'format.json-schema', the format can derive schema
from the DDL.
Your exception above means the schema in 'format.json-schema' and DDL are not
match.
[email protected] <[email protected]> 于2020年4月16日周四 下午4:21写道:
CREATE TABLE user_log(
`id` INT,
`timestamp` BIGINT
) WITH (
'connector.type' = 'kafka',
'connector.version' = 'universal',
'connector.topic' = 'wanglei_jsontest',
'connector.startup-mode' = 'latest-offset',
'connector.properties.0.key' = 'zookeeper.connect',
'connector.properties.0.value' = '172.19.78.32:2181',
'connector.properties.1.key' = 'bootstrap.servers',
'connector.properties.1.value' = '172.19.78.32:9092',
'update-mode' = 'append',
'format.type' = 'json',
'format.json-schema' = '{
"type": "object",
"properties": {
"id": {"type": "integer"},
"timestamp": {"type": "number"}
}
}'
);
Then select * from user_log;
org.apache.flink.table.api.ValidationException: Type INT of table field 'id'
does not match with the physical type LEGACY('DECIMAL', 'DECIMAL') of the 'id'
field of the TableSource return type.
Seems the specified type "integer", "number" can not be mapped to INT, BIGINT
How can i solve this problem?
Thanks,
Lei
[email protected]
--
Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: [email protected]; [email protected]