登录    关于
马育民老师的博客

马育民的博客

QQ:65242847

flink1.12.x Table API 和 SQL介绍

介绍

Flink提供了像 一样处理的API和 像执行 SQL语句 一样把结果集进行执行。这样很 方便 的让大家进行数据处理。

  • Table API 是一套内嵌在 Java 和 Scala 语言中的查询API,它允许以非常直观的方式组合来自一些关系运算符的查询

  • Flink 的 SQL 支持基于实现了 SQL 标准的 Apache Calcite

Table API和SQL接口彼此集成

为什么需要SQL

Table API 是一种关系型API,类 SQL 的API,用户可以像操作 一样地操作数据(即关系型API),非常的直观和方便。

SQL 作为一个”人所皆知”的语言,如果一个引擎提供 SQL,它将很容易被人们接受。这已经是业界很常见的现象了。

Table & SQL API 还有另一个职责,就是流处理和批处理统一的API层

1.11之前

官方说明还不够完善

官网:https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/

Please note that the Table API and SQL are not yet feature complete and are being actively developed. Not all operations are supported by every combination of [Table API, SQL] and [stream, batch] input.

性能对比

flink SQL 还不如 spark SQL

一般程序执行耗时: spark SQL < flink SQL < hive

Blink Planner

在 Flink 1.9 中,Table 模块迎来了核心架构的升级,引入了阿里巴巴 Blink 团队贡献的诸多功能,

依赖

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-table-planner-blink_2.12</artifactId>
    <version>${flink.version}</version>
    <scope>provided</scope>
</dependency>

kafka

<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-sql-kafka_2.12</artifactId>
  <version>{flink.version}</version>
</dependency>

原文出处:https://malaoshi.top/show_1IX22fIl1Twd.html