2、Flink 在 DataStream 和 Table 之间进行转换

1.概述

Table API 和 DataStream API 都可以处理有界流和无界流。

  • DataStream API 提供了流处理的基础(时间、状态和数据流管理);
  • Table API 抽象了许多内部内容,并提供了一个结构化和声明性的 API;

在处理历史数据时,需要管理有边界的流;无边界流出现在实时处理场景中,这些场景可能需要先使用历史数据进行初始化。

  • 为了高效执行,这两个 API 都以优化的批处理执行模式处理有界流。
  • 由于批处理只是流的一种特殊情况,因此也可以在常规流执行模式下运行有界流的批处理。

混合使用 Table API 和 DataStream API 的场景

  • 在 DataStream API 实现主程序之前,使用 Table API 访问目录或连接到外部系统;
  • 在 DataStream API 实现主程序之前,访问一些 SQL 函数以进行无状态数据的规范化和清理;
  • 如果 Table API 中没有更低级的操作(例如定时器),则无需切换到 DataStream API。

注意:在 DataStream 和 Table API 之间切换会增加一些转换开

你可能感兴趣的:(Flink,SQL,flink,大数据)