Flink-1.9.1

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Flink-1.9.1

somnussuy
针对于使用 SQL查询,select current_timestamp,creaetTime from sourceTable ;其中 createTime 注册成 SQL_TIMESTMAP 类型
问题描述:
无论是流中的原有数据 createTime,还是 current_time 函数
打印的结果都出现格式的问题
2019-11-06T11:01:24.047,2019-11-06T18:53:54
请问:
如何避免格式中 T 的出现

针对于上封邮件进行补充:
做了类型检测:flink 1.9.1 对于执行完SQL之后的类型,date 使用 java.time.LocalDate;timestamp 使用 java.time.LocalDateTime
而1.7.2版本是 date 使用 java.sql.date;timestamp 使用 java.sql.timestamp
请问:
是出于什么考虑改变这个策略的?

再次补充,实在抱歉:
1. 经过测试发现是 blink_planner 的问题,flink以及采用 date 使用 java.sql.date;timestamp 使用 java.sql.timestamp 的形式;
2.对于blink_planner 的另一个问题 inner join 之后的 on 表达式过滤
(1) inner join table2 on columnOne+ColumnTwo<= 2019
flink在 DataStream<Row> dataStream = streamTableEnvironment.toAppendStream(table, Row.class);会有报错处理,无法生成执行计划
blink会执行通过
(2) inner join table2 on columnOne = 2019 and columnTwoe+ColumnThree<= 2019
flink会执行通过
blink也会执行通过,
但是对于 inner join table2 on columnOne = 2019 and columnTwoe<= 2019,执行报错
java.lang.AssertionError
at org.apache.calcite.sql2rel.SqlToRelConverter$Blackboard.getRootField(SqlToRelConverter.java:4433)
at org.apache.calcite.sql2rel.SqlToRelConverter.adjustInputRef(SqlToRelConverter.java:3750)
at org.apache.calcite.sql2rel.SqlToRelConverter.convertIdentifier(SqlToRelConverter.java:3722)
at org.apache.calcite.sql2rel.SqlToRelConverter.access$2200(SqlToRelConverter.java:217)
at org.apache.calcite.sql2rel.SqlToRelConverter$Blackboard.visit(SqlToRelConverter.java:4781)
at org.apache.calcite.sql2rel.SqlToRelConverter$Blackboard.visit(SqlToRelConverter.java:4077)
at org.apache.calcite.sql.SqlIdentifier.accept(SqlIdentifier.java:317)
at org.apache.calcite.sql2rel.SqlToRelConverter$Blackboard.convertExpression(SqlToRelConverter.java:4641)
at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectList(SqlToRelConverter.java:3924)
at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:670)
at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:627)
at org.apache.calcite.sql2rel.SqlToRelConverter.convertQueryRecursive(SqlToRelConverter.java:3166)
at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:563)
at org.apache.flink.table.planner.calcite.FlinkPlannerImpl.rel(FlinkPlannerImpl.scala:139)
at org.apache.flink.table.planner.operations.SqlToOperationConverter.toQueryOperation(SqlToOperationConverter.java:212)
at org.apache.flink.table.planner.operations.SqlToOperationConverter.convertSqlQuery(SqlToOperationConverter.java:161)
at org.apache.flink.table.planner.operations.SqlToOperationConverter.convert(SqlToOperationConverter.java:91)
at org.apache.flink.table.planner.delegation.PlannerBase.parse(PlannerBase.scala:132)
at org.apache.flink.table.api.internal.TableEnvironmentImpl.sqlQuery(TableEnvironmentImpl.java:298)
 (3) blink对于 join 之后 on 过滤的支持,具有非常大的迷惑性,一下报错,报错信息同上
    1. like 报错
    2. not like 不报错
    3. is null /is not null 均报错
    4. <>/ </ >/ </ <=/ >= 对于单个字段报错,多个字段不报错
请问一下,这个是 blink 自身的bug,还是出于什么考虑做的这么有迷惑性