详解 Flink Table API 和 Flink SQL 之流处理中的表

一、关系型表和流处理表对比

关系型表/SQL 流处理表
处理的数据对象 字段元组的有界集合 字段元组的无限序列
查询(Query)对数据的访问 可以访问到完整的数据输入 无法访问所有数据,必须持续“等待”流式输入
查询终止条件 生成固定大小的结果集后终止 永不停止,根据持续收到的数据不断更新查询结果

二、动态表

  • 当流中有新数据到来,初始的表中会插入一行;而基于这个表定义的 SQL 查询,就应该在之前的基础上更新结果。这样得到的表就会不断地动态变化,被称为“动态表”(Dynamic Tables)
  • 动态表是 Flink 在 T able API 和 SQL 中的核心概念,它为流数据处理提供了表和 SQL 支持。关系型表一般用来做批处理,面向的是固定的数据集,可以认为是“静态表”;而动态表则完全不同,它里面的数据会随时间变化

三、持续查询

在这里插入图片描述

  • 动态表可以像静态的批处理表一样进行查询操作。由于数据在不断变化,因此基于它定义的 SQL 查询也不可能执行一次就得到最终结果,所以对动态表的查询就永远不会停止,一直在随着新数据的到来而继续执行。这样的查询就被称作“持续查询”(Continuous Query)

  • 动态表查询的处理过程:

    • 流(stream)被转换为动态表(dynamic table)

      在这里插入图片描述

    • 对动态表进行持续查询(continuous query),生成新的动态表

      在这里插入图片描述

    • 生成的动态表被转换成流

      在这里插入图片描述

相关推荐

  1. FlinkSQL联结函数

    2024-06-13 07:00:01       40 阅读
  2. IO-处理——缓冲

    2024-06-13 07:00:01       33 阅读
  3. 详解 Flink 处理 API

    2024-06-13 07:00:01       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-13 07:00:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-13 07:00:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-13 07:00:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-13 07:00:01       20 阅读

热门阅读

  1. c++【入门】小明买水果

    2024-06-13 07:00:01       6 阅读
  2. Hugging Face Hub 使用DuckDB进行分析

    2024-06-13 07:00:01       7 阅读
  3. mysql的双机热备

    2024-06-13 07:00:01       7 阅读
  4. Redis 分布式锁过期了,还没处理完怎么办?

    2024-06-13 07:00:01       6 阅读
  5. 远程工具向日葵的安装

    2024-06-13 07:00:01       5 阅读
  6. python scrapy爬虫学习

    2024-06-13 07:00:01       4 阅读
  7. Conda应用

    2024-06-13 07:00:01       3 阅读
  8. Python学习笔记11 -- 细碎内容

    2024-06-13 07:00:01       7 阅读
  9. Ubuntu 设置开机启动脚本

    2024-06-13 07:00:01       5 阅读