2017-03-17 5 views
1
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

いいえ、これはできません。 JDBCInputFormatでは、結果の種類を指定する必要があります。

+1

私は回避策を得ました。私は準備されたステートメントを使用して、列の型と列名を与える列のメタデータを取得しました。 –

関連する問題