flink使用13-开始体验 Flink SQL

SQL API 是 Flink 中最顶级的 API , 它构建了 Table API 之上, 也可以方便的和 Table 做转换, 构建 SQL 所使用的Environment 也是 Table Environment . Flink SQL 底层使用 Apache Calcite 框架, 将标准的 Flink SQL 语句解析并转换成底层的算子处理逻辑. 下面就直接用 Flink 官方仓库中的 案例 Code Link来做一个演示.

  1. 获取执行环境
// 首先同样有流处理和批处理的区别, 
// 获取对应的environment之后直接转换为Table environment ,
// 就可以使用SQL API,
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
StreamTableEnvironment tEnv = StreamTableEnvironment.create(env);
  1. 拿到要操作的表
// 将 Stream 转换为 Table, 可以采用不同的办法

// 将 DataStream 转换为 Table
Table tableA = tEnv.fromDataStream(orderA, "user, product, amount");
// 将 DataStream 注册成 Table
tEnv.registerDataStream("OrderB", orderB, "user, product, amount");
  1. 执行SQL语句
// TableEnvironment 有 SqlQuery 和 SqlUpdate 两种操作符可以使用

// union 两个 table
 Table result = tEnv.sqlQuery("SELECT * FROM " + tableA + " WHERE amount > 2 UNION ALL " +"SELECT * FROM OrderB WHERE amount > 2");

SQL可以执行许多复杂的操作,本文先简单的了解下 SQL 的API

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前篇主要介绍流式计算相关的核心概念,这篇简要聊聊Flink总体架构、运行环境及其在大数据生态系统中的位置,让大家先...
    data之道阅读 5,072评论 0 6
  • 1 意义 1.1 分层的 APIs & 抽象层次 Flink提供三层API。 每个API在简洁性和表达性之间提供...
    JavaEdge阅读 3,443评论 0 0
  • 欣欣,起床了!!! 一大早,妈妈就用她那响亮的嗓门把我叫醒了。唉,,, 我迷迷糊糊的走进了校园,忽然,有个东西...
    婉荻小公举阅读 1,469评论 0 2
  • 今天星期六。学校举行了专升本考试。 愿所有的努力都有回报,加油加油。三年,把握好,不想失望,不想后悔,真的很快,再...
    祝好好阅读 949评论 0 0
  • 「Why Buddhism is True」读后感 the writing quality and the low...
    寄我浮生阅读 715评论 0 2