Flink SQL - 如何使用自定义模式解析TIMESTAMP?

时间:2018-05-06 04:15:34

标签: apache-flink flink-streaming sql-timestamp flink-sql

从文档中可以看出,Flink的SQL只能解析某种格式的时间戳,即:

  

TIMESTAMP字符串:以" yy-mm-dd hh:mm:ss.fff"形式解析时间戳字符串。到SQL时间戳。

有没有办法传递自定义DateTimeFormatter来解析不同类型的时间戳格式?

1 个答案:

答案 0 :(得分:3)

您可以使用用户定义的标量函数(UDF)实现任何解析逻辑。

这将在Scala中看到如下。

class TsParser extends ScalarFunction {
  def eval(s: String): Timestamp = {
    // your logic
  }
}

一旦定义,该功能必须在TableEnvironment

注册
tableEnv.registerFunction("tsParser", new TsParser())

现在您可以像使用任何内置函数一样使用函数tsParser

有关详细信息,请参阅documentation