问题描述
我正在将Flink sql流作业写入磁盘,并希望按年,月和日对数据进行分区。
给出以下表格定义:
CREATE TABLE `MyTable` (
`timestamp` TIMESTAMP(3),`MachineID` STRING,`data` STRING
)
是否可以使用以下PARTITIONED BY
语句,特别是以这种(或类似方式)使用EXTRACT:
PARTITIONED BY (EXTRACT(YEAR FROM `timestamp`),EXTRACT(MONTH FROM `timestamp`),EXTRACT(DAY FROM `timestamp`))
WITH (
'connector' = 'filesystem','path' = '/path/to/datadir/','format' = 'parquet'
)
这样做会遇到
Caused by: org.apache.flink.sql.parser.impl.ParseException: Encountered "EXTRACT" at line 25,column 17.
Was expecting one of:
<BRACKET_QUOTED_IDENTIFIER> ...
<QUOTED_IDENTIFIER> ...
<BACK_QUOTED_IDENTIFIER> ...
<IDENTIFIER> ...
<UNICODE_QUOTED_IDENTIFIER> ...
我已经设法通过预先创建年,月和日的列并将其添加到表定义中来完成这项工作,但这似乎有点冗长,因为我只需要它们用于分区。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)