flink原理和基本功能是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
有界与无界
有界数据集
无界数据集
flink接口结构
FLink SQL
Flink Table
Table API将内存中的DataStream和DataSet数据集在原有的基础上增加Schema信息,将数据类型统一抽象成表结构,然后通过Table API接口处理对应的数据集。
SQL API可以直接查询Table API注册表的数据。
Tabel API 提供大量接口如GroupByKey、Join等,并支持和DataStream和DataSet的相互转换。
DataStream
Stateful Stream Processing API
程序结构 DataStream API
设定运行环境,支持动态(本地和线上)启动、本地启动、远程线上启动三种。
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
//指定处理方式批处理、流处理、自适应
env.setRuntimeMode(RuntimeExecutionMode.AUTOMATIC);
指定数据源
DataSet<String> text = env.readTextFile("/path/to/file");
操作数据集
DataSet<Tuple2<String, Integer>> counts =
text.flatMap(_.toLowerCase.split(" ")) //实行map转换
.filter(_.nonEmpty) //过滤控制
.map((_,1)) //执行map转换,转换为key-value
.keyBy(0) //按照指定第一个字段key进行分区,
.sum(1); //分区后按第二个字段求和
指定结果输出
counts.writeAsCsv(outputPath, "\n", " ");
指定名称并触发
env.execute("Streaming Count");
数据类型
原生数据类型
java Tuples
scala Case class
POJOs类型
Flink Value类型
特殊数据类型
Flink作为新一代计算引擎,在实时计算领域有着及其重要的地位,同时也有这复杂的概念,时间窗口、水位线等,学习并理解成本不低。
看完上述内容,你们掌握flink原理和基本功能是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注天达云行业资讯频道,感谢各位的阅读!