如何自动推断给定查询的行类型信息

时间:2017-03-17 08:41:47

标签: apache-flink

import org.apache.flink.api.scala._
import org.apache.flink.table.api.TableEnvironment
import org.apache.flink.api.java.io.jdbc.JDBCInputFormat
import org.apache.flink.api.java.typeutils.RowTypeInfo
import org.apache.flink.api.common.typeinfo.TypeInformation

var fieldTypes: Array[TypeInformation[_]] = Array(createTypeInformation[String],createTypeInformation[String],createTypeInformation[String])

var fieldNames: Array[String] = Array("UUID", "Name","instanceid")

val rowTypeInfo = new RowTypeInfo( fieldTypes,  fieldNames )

val inputFormat = JDBCInputFormat.buildJDBCInputFormat().setDrivername("com.vertica.jdbc.Driver").setDBUrl("jdbc:vertica://x.x.x.x:5433/hfdb").setUsername("user").setPassword("password").setQuery("select * from test").setRowTypeInfo(rowTypeInfo).finish()

val dataset = benv.createInput(inputFormat)

dataset.print()

所以在上面的代码中我们必须指定我们得到的行的类型。有没有办法在不设置行类型的情况下得到答案?

1 个答案:

答案 0 :(得分:1)

不,这是不可能的。 JDBCInputFormat要求您指定结果类型。