Apache Flink:如何使用Table API查询关系数据库?

Ami*_*ass 2 apache-flink flink-streaming flink-sql

以下代码段摘自该博客文章

val sensorTable = ??? // can be a CSV file, Kafka topic, database, or ...

// register the table source
tEnv.registerTableSource("sensors", sensorTable)
Run Code Online (Sandbox Code Playgroud)

我想从关系数据库中读取数据。Flink是否有TableSource用于JDBC数据库的?

Fab*_*ske 5

在其当前版本(1.4.0,2017年12月)中,Flink不提供内置的TableSource从关系数据库中提取数据的功能。

但是,有一个JDBCInputFormat可以使用。你可以

  • 使用它来使用DataSet API从数据库中读取数据并将其注册DataSetTable
  • 实现JdbcTableSource包装的JdbcInputFormat。一个简单的实现JdbcTableSource应该很容易实现。实现对并行读取,投影或过滤器下推的支持需要更多的精力。