IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Flink--Table API 和SQL入门案例 -> 正文阅读

[大数据]Flink--Table API 和SQL入门案例

作者:>

流式表处理的过程可以描述出下图:

?1.先把流转换成动态表? ?Stream=>? table

2.表经过一定操作,转成结果表? ?table? (CRUD)=>? table

3.将表转换成流输出? ? ? table => Stream

/**
 * @program: flink
 * @description: ${description}
 * @author: Mr.G
 * @create: 2021-09-26 19:21
 **/
package com.ct.day08

import com.ct.day01.SensorSource
import org.apache.flink.streaming.api.scala.StreamExecutionEnvironment
import org.apache.flink.table.api._
import org.apache.flink.api.scala._
import org.apache.flink.table.api.scala._
import org.apache.flink.types.Row


/**
 * @ClassName: ScalarFunction
 * @Description: ${description}
 * @Author Mr.G
 * @Date 2021/9/26
 * @Version 1.0
 *
 */
object TableApiExample {

  def main(args: Array[String]): Unit = {

    val  env = StreamExecutionEnvironment.getExecutionEnvironment

    env.setParallelism(1)

    val settings = EnvironmentSettings
      .newInstance()
      .useBlinkPlanner()
      .inStreamingMode()
      .build()

    //得到表处理运行环境
    val tEnv = StreamTableEnvironment.create(env,settings)

    val stream = env.addSource(new SensorSource)


    // stream => table

    val table: Table = tEnv.fromDataStream(stream,'id,'timestamp as 'ts,'temperature)


    // TableApi 形式
    // table   CRUD   => table
    val rstable: Table = table
      .filter("id ='sensor_1'")
      .select('id)
    // table => DStream
    tEnv.toAppendStream[Row](rstable)
//      .print()


    // SQL 形式

    //先注册成一个表(视图)    Stream => table
    tEnv.createTemporaryView("sensor",stream,'id,'timestamp as 'ts,'temperature)


    //table   CRUD  => table
    tEnv.sqlQuery(" select id from sensor where id = 'sensor_1'")
      //table => Stream
      .toAppendStream[Row]
     // .toRetractStream[Row]
        .print()

    env.execute()

  }

}

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-27 14:09:28  更:2021-09-27 14:11:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:16:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码