本文翻译自官网: User-defined Sources & Sinks  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/sourceSinks.html Flink Table Api & SQL 翻译目录 TableSource提供对存储在外部系统(数据库,键值存储,消息队列)或文件中的数据的访问.在TableEnvironment中注册TableSource后,可以通过Table API或…
Flink 官网 Table Api & SQL  相关文档的翻译终于完成,这里整理一个安装官网目录顺序一样的目录 [翻译]Flink Table Api & SQL —— Overview [翻译]Flink Table Api & SQL —— 概念与通用API [翻译]Flink Table Api & SQL —— 数据类型 [翻译]Flink Table Api & SQL —Streaming概念 [翻译]Flink Table Api & SQ…
本文翻译自官网:SQL Client Beta  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/sqlClient.html Flink Table Api & SQL 翻译目录 Flink的Table&SQL API使使用SQL语言编写的查询成为可能,但是这些查询需要嵌入用Java或Scala编写的表程序中. 此外,在将这些程序提交给集群之前,需要将它们与构建工具打包在一起. 这或多或少地将Fl…
本文翻译自官网:https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/common.html Flink Table Api & SQL 翻译目录 Table API和SQL集成在共同API中.该API的中心概念是Table,用作查询的输入和输出.本文档介绍了使用Table API和SQL查询的程序的通用结构,如何注册 Table,如何查询Table以及如何发出 Table(数据). 两个 planner 之间…
本文翻译自官网:Connect to External Systems  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/connect.html Flink Table Api & SQL 翻译目录 注:本文对应代码段为多种格式,影响文章篇幅,所以只选取其中一种类似列入,全部内容见官网对应页面 Flink 的 Table API 和 SQL 程序可以连接到其他外部系统,以读取和写入批处理表和流式表.表源…
本文翻译自官网:https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/types.html Flink Table Api & SQL 翻译目录 由于历史原因,在 Flink 1.9之前,Flink 的  Table和SQL API 数据类型与 Flink TypeInformation 紧密相关.TypeInformation 在 DataStream 和 DataSet API 中使用,并且足以描述在分布式…
本文翻译自官网:SQL https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/sql.html Flink Table Api & SQL 翻译目录 这是Flink 支持的 数据定义语言(DDL) 和数据操纵语言的完整列表. 查询 指定查询 支持语法 操作 DDL 指定 DDL 创建表 删除表 Data Types Reserved保留关键字 查询 SQL查询使用TableEnvironment 的 sqlQu…
本文翻译自官网:Configuration https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/config.html Flink Table Api & SQL 翻译目录 默认情况下,Table&SQL API已预先配置为产生具有可接受性能的准确结果. 根据表程序的要求,可能需要调整某些参数以进行优化.例如,无界流程序可能需要确保所需的状态大小是有上限的(请参阅流概念). 总览 执行选项 优化器选项…
本文翻译自官网:Hive Functions  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/hive/hive_functions.html Flink Table Api & SQL 翻译目录 用户可以在Flink中使用 Hive 现有的自定义函数. 支持的UDF类型包括: UDF GenericUDF GenericUDTF UDAF GenericUDAFResolver2 根据查询的计划和执行…
本文翻译自官网:https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/ Flink Table Api & SQL 翻译目录 一直没有用 flink 的 table 或 sql api,最近开始要使用这部分功能了,先把官网对应的文档翻译一遍,方便自己慢慢查看 ----------------------------------------------- Apache Flink 具有两个关联 API-Table…
本文翻译自官网: Time Attributes   https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/streaming/time_attributes.html Flink Table Api & SQL 翻译目录 Flink能够根据不同的时间概念处理流数据. Process time 是指正在执行相应操作的机器的系统时间(也称为“挂钟时间”). Event time 是指基于附在每行上的时间戳对流数据…
本文翻译自官网:Detecting Patterns in Tables Beta  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/streaming/match_recognize.html Flink Table Api & SQL 翻译目录 搜索一组事件模式是一种常见的用例,尤其是在数据流的情况下.Flink带有一个复杂的事件处理(CEP)库 ,该库允许在事件流中进行模式检测.此外,Flink的S…
本文翻译自官网:Query Configuration  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/streaming/query_configuration.html Flink Table Api & SQL 翻译目录 表API和SQL查询具有相同的语义,无论其输入是有界批处理输入还是无界流输入.在许多情况下,对流输入的连续查询能够计算与脱机计算的结果相同的准确结果. 但是,这在一般情况下是不可…
本文翻译自官网:Built-In Functions  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/functions.html Flink Table Api & SQL 翻译目录 Flink Table API和SQL为用户提供了一组用于数据转换的内置函数.此页面简要概述了它们.如果尚不支持所需的功能,则可以实现用户定义的功能.如果您认为该功能足够通用,请为此打开Jira问题,并提供详细说明. 标…
本文翻译自官网:User-defined Functions  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/udfs.html Flink Table Api & SQL 翻译目录 用户定义函数是一项重要功能,因为它们显着扩展了查询的表达能力. 注册用户定义的函数 标量函数 表函数 聚合函数 表格汇总函数 实施UDF的最佳做法 将UDF与运行时集成 注册用户定义的函数 在大多数情况下,必须先注册用户定…
本文翻译自官网:Catalogs Beta  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/catalogs.html Flink Table Api & SQL 翻译目录 Catalogs 提供元数据,例如数据库,表,分区,视图以及访问存储在数据库或其他外部系统中的数据所需的功能和信息. 数据处理的最关键方面之一是管理元数据.它可能是临时元数据,例如临时表,或者是针对表环境注册的 UDF.或永久性元数…
本文翻译自官网:Streaming Concepts  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/streaming/ Flink Table Api & SQL 翻译目录 Flink的Table API和SQL支持是用于批处理和流处理的统一API.这意味着Table API和SQL查询具有相同的语义,无论它们的输入是有界批处理输入还是无界流输入.因为关系代数和SQL最初是为批处理而设计的,所以对无…
本文翻译自官网:Streaming Aggregation  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/tuning/streaming_aggregation_optimization.html Flink Table Api & SQL 翻译目录 SQL是用于数据分析的最广泛使用的语言.Flink的Table API和SQL使用户能够以更少的时间和精力定义高效的流分析应用程序.而且,Flink…
本文翻译自官网:Use Hive connector in scala shell  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/hive/scala_shell_hive.html Flink Table Api & SQL 翻译目录 Flink Scala Shell 是尝试 flink 的便捷方法. 您也可以在 scala shell 中使用 hive,而不是在pom文件中指定 hive 依赖关…
本文翻译自官网:Reading & Writing Hive Tables  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/hive/read_write_hive.html Flink Table Api & SQL 翻译目录 使用HiveCatalog和Flink的Hive连接器,Flink可以读取和写入Hive数据,以替代Hive的批处理引擎.确保遵循说明在您的应用程序中包括正确的依赖项.…
本文翻译自官网:Flink Table Api & SQL 动态表 https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/streaming/dynamic_tables.html Flink Table Api & SQL 翻译目录 SQL和关系代数在设计时并未考虑流数据.所以,关系代数(和SQL)与流处理之间在概念上有一些差距. 本页讨论了这些差异,并说明了Flink如何在无界数据上实现与常规数据库引…
本文翻译自官网 :  Joins in Continuous Queries   https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/streaming/joins.html Flink Table Api & SQL 翻译目录 Join 是批量数据处理中连接两个关系行的常见且易于理解的操作.但是,动态表上的 join 语义不那么明显,甚至令人困惑. 因此,有一些方法可以使 Table API或SQL实际执行…
本文翻译自官网: Temporal Tables https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/streaming/temporal_tables.html Flink Table Api & SQL 翻译目录 时态表(注:Temporal Table , 我翻译为时态表,可以访问表在不同时间的内容)表示一直在修改的表上的(参数化)视图的概念,该视图返回表在特定时间点的内容. 更改表可以是跟踪表的修改历…
本文翻译自官网:Table API  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/tableApi.html Flink Table Api & SQL 翻译目录 Table API是用于流和批处理的统一的关系API. Table API查询可以在批处理或流输入上运行而无需修改. Table API是SQL语言的超集,是专门为与Apache Flink配合使用而设计的. Table API是用于Sca…
本文翻译自官网:Hive Beta https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/hive/ Flink Table Api & SQL 翻译目录 Apache Hive已将自己确立为数据仓库生态系统的焦点. 它不仅充当用于大数据分析和ETL的SQL引擎,而且也是数据发现, 定义和演变数据的数据管理平台. Flink提供了与Hive的双重集成. 首先是利用Hive的Metastore作为持久性 cata…
本文翻译自官网:Streaming 概念  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/streaming/ Flink Table Api & SQL 翻译目录 Flink的 Table API 和 SQL 支持 是用于批处理和流处理的统一API.这意味着Table API和SQL查询具有相同的语义,无论它们的输入是有界批处理输入还是无界流输入.因为关系代数和SQL最初是为批处理而设计的,所以对无边…
概述 Flink具有Table API和SQL-用于统一流和批处理. Table API是用于Scala和Java的语言集成查询API,它允许以非常直观的方式组合来自关系运算符(例如选择,过滤和联接)的查询. Flink的SQL支持基于实现SQL标准的Apache Calcite.无论输入是批处理输入(DataSet)还是流输入(DataStream),在两个接口中指定的查询都具有相同的语义并指定相同的结果. Table API和SQL尚未完成所有功能,正在积极开发中,支持程度需查看 官方文档…
一.概述 上图是flink的分层模型,Table API 和 SQL 处于最顶端,是 Flink 提供的高级 API 操作.Flink SQL 是 Flink 实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准 SQL 语义的开发语言. Flink 在编程模型上提供了 DataStream 和 DataSet 两套 API,并没有做到事实上的批流统一,因为用户和开发者还是开发了两套代码.正是因为 Flink Table & SQL 的加入,可以说 Flink 在某种程度上做到了…
1 意义 1.1 分层的 APIs & 抽象层次 Flink提供三层API. 每个API在简洁性和表达性之间提供不同的权衡,并针对不同的用例. 而且Flink提供不同级别的抽象来开发流/批处理应用程序 最低级抽象只提供有状态流.它通过Process Function嵌入到DataStream API中.它允许用户自由处理来自一个或多个流的事件,并使用一致的容错状态.此外,用户可以注册事件时间和处理时间回调,允许程序实现复杂的计算. 实际上,大多数应用程序不需要上述低级抽象,而是针对Core AP…
[源码分析] 带你梳理 Flink SQL / Table API内部执行流程 目录 [源码分析] 带你梳理 Flink SQL / Table API内部执行流程 0x00 摘要 0x01 Apache Calcite 1. Calcite 概念 2. Calcite 处理流程 0x02 Flink SQL综述 1. Flink关系型API执行原理 2. Flink Sql 执行流程 3. Flink Table Api 执行流程 4. Flink Table/SQL 执行流程的异同 0x03…