Apache Flink 零基础入门(十八)Flink Table API&SQL
什么是Flink关系型API? 虽然Flink已经支持了DataSet和DataStream API,但是有没有一种更好的方式去编程,而不用关心具体的API实现?不需要去了解Java和Scala的具体实现。 Flink provides three layered APIs. Each API offers a different trade-off between conciseness and expressiveness and targets different use cases. Flink提供了三层API,每一层API提供了一个在简洁性和表达力之间的权衡 。 最低层是一个有状态的事件驱动。在这一层进行开发是非常麻烦的。 虽然很多功能基于DataSet和DataStreamAPI是可以完成的,需要熟悉这两套API,而且必须要熟悉Java和Scala,这是有一定的难度的。一个框架如果在使用的过程中没法使用SQL来处理,那么这个框架就有很大的限制。虽然对于开发人员无所谓,但是对于用户来说却不显示。因此SQL是非常面向大众语言。 好比MapReduce使用Hive SQL,Spark使用Spark SQL,Flink使用Flink SQL。 虽然Flink支持批处理/流处理,那么如何做到API层面的统一? 这样Table和SQL应运而生。 这其实就是一个关系型API