Hi!

你可以定义一个计算列,DDL 就写成:

CREATE TABLE myTable (
  ...,
  server_end_time TIMESTAMP(3),
  server_end_time_not_null AS IF(server_end_time IS NOT NULL,
server_end_time, 默认值),
  WATERMARK FOR server_end_time_not_null AS server_end_time_not_nul
) WITH (
  ...
)

45329722 <45329...@qq.com.invalid> 于2021年12月17日周五 18:42写道:

> 请教:
> java.lang.RuntimeException: RowTime field should not be null, please
> convert it to a non-null long value.
>
>
> 说明:源数据表中有一个时间字段:server_end_time,&nbsp;MySQL,有Null值,但源数据不能修改,
> &nbsp;String order_sql = "create TABLE sd_service_order (" +
> &nbsp;"server_end_time TIMESTAMP(3)," +
> "WATERMARK FOR server_end_time AS server_end_time)&nbsp;With ......"
> 通过&nbsp; &nbsp;tEnv.executeSql(order_sql);&nbsp;注册:
>
>
> &nbsp;server_end_time&nbsp;&nbsp;实际数据中有空值(NULL),&nbsp;请问:
>
>
> 1、executeSql&nbsp;中能不能给个默认值?
> 2、 String out = "insert into out_data_1 " +
> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " select " +
> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "
> TUMBLE_START(server_end_time, INTERVAL '1' DAY) as window_start," +
> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "
> TUMBLE_END(server_end_time, INTERVAL '1' DAY) as window_end," +
> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " corp_id,
> county_id, area_id, area_name, station_id, station_name, " +
> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " service_id,
> service_name, item_id, item_name, " +
> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " sum(item_cost)
> as item_cost_sum, " +
> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " count(item_id)
> as item_id_count " +
> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " from
> sd_service_order " +
> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " where
> server_end_time is not null" +
> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; " group by
> TUMBLE(server_end_time, INTERVAL '1' DAY)," +
> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "&nbsp;
> &nbsp;corp_id, county_id, area_id, area_name, station_id, station_name, " +
> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "&nbsp;
> &nbsp;service_id, service_name, item_id, item_name";
> &nbsp; &nbsp; &nbsp; &nbsp; tEnv.executeSql(out);
>
>
> &nbsp; &nbsp; &nbsp;使用 " where server_end_time is not null"&nbsp;
> 过滤问题数据,但是好像没有起作用,报错信息:
> where=[CAST(server_end_time) IS NOT NULL]) (3/4)#24
> (4c7c6a76b34efb3f70df2d8e19cf3f08) switched from RUNNING to FAILED with
> failure cause: java.lang.RuntimeException: RowTime field should not be
> null, please convert it to a non-null long value.
>
>
> 请教一下这种数据怎么处理过滤掉?
> 谢谢!
>
>
>
>
> 45329...@qq.com
>
>
> &nbsp;

回复