Flink之Table API 与 SQL

Table API 是流处理和批处理通用的关系型 API,Table API 可以基于流输入或者批输入来运行而不需要进行任何修改。Table API 是 SQL 语言的超集并专门为 Apache Flink 设计的,Table API 是 Scala 和 Java 语言集成式的 API。与常规 SQL 语言中将查询指定为字符串不同,Table API 查询是以 Java 或 Scala 中的语言嵌入样式来定义的,具有 IDE 支持如:自动完成语法检测

一、需要引入的 pom 依赖

<dependency>
	<groupId>org.apache.flink</groupId>
	<artifactId>flink-table-planner_2.12</artifactId>
	<version>1.10.1</version>
</dependency>
<dependency>
	<groupId>org.apache.flink</groupId>
	<artifactId>flink-table-api-scala-bridge_2.12</artifactId>
	<version>1.10.1</version>
</dependency>

二、简单了解 TableAPI

def main(args: Array[String]): Unit = {
   
  val env = StreamExecutionEnvironment.getExecutionEnvironment
  env.setParallelism(1)
  val inputStream = env.readTextFile("..\\sensor.txt")
  val dataStream = inputStream
    .map( data => {
   
      val dataArray = data.split(",")
      SensorReading(dataArray(0).trim, dataArray(1).trim.toLong,
        dataArray(2).trim.toDouble)
    }
    )
// 基于 env 创建 tableEnv
val settings: EnvironmentSettings =
  EnvironmentSettings.newInstance().useOldPlanner().inStreamingMode().build()
  val tableEnv: StreamTableEnvironment = StreamTableEnvironment.create(env,
    settings)
  // 从一条流创建一张表
  val dataTable: Table = tableEnv.fromDataStream(dataStream)
  // 从表里选取特定的数据
  val selectedTable: Table = dataTable.s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值