zoukankan      html  css  js  c++  java
  • Flink基础

      一、抽象层次

                 Flink提供不同级别的抽象来开发流/批处理应用程序。

                                                                                 

    •  最低级抽象只提供状态流 通过Process Function嵌入到DataStream API中它允许用户自由处理来自一个或多个流的事件,并使用一致的容错状态此外,用户可以注册事件时间和处理时间回调,允许程序实现复 杂的计算。
    •  实际上,大多数应用程序不需要上述低级抽象,而是针对Core API编程, 如DataStream API(有界/无界流)和DataSet API (有界数据集)。这些流畅的API提供了用于数据处理的通用构建块,例如各种形式的用户指定的转换,连接,聚合,窗口,状态等。在这些API中处理的数据类型在相应的编程语言中表示为类。

      低级Process FunctionDataStream API集成,因此只能对某些 算子操作进行低级抽象。数据集API提供的有限数据集的其他原语,如循环/迭代。

    •  Table API是为中心的声明性DSL ,其可被动态地改变的表(表示流时)。 Table API遵循(扩展)关系模型:表有一个模式连接(类似于在关系数据库中的表)和API提供可比的 算子操作,如选择,项目,连接,分组依据,聚合等 Table API程序以声明方式定义应该执行的逻辑 算子操作,而不是准确指定 算子操作代码的外观虽然 Table API可以通过各种类型的用户定义函数进行扩展,但它的表现力不如Core API,但使用更简洁(编写的代码更少)。此外, Table API程序还会通过优化程序,在执行之前应用优化规则。

      可以在表和DataStream / DataSet之间无缝转换,允许程序混合 Table API以及DataStream 和DataSet API。

    • Flink提供的最高级抽象是SQL这种抽象在语义和表达方面类似于 Table API,但是将程序表示为SQL查询表达式。SQL抽象与 Table API紧密地相互作用,和SQL查询可以通过定义表来执行 Table API

    二、程序和数据流

     

  • 相关阅读:
    网页设计~老生常谈~浏览器兼容2个主要问题的解决
    谈谈网页功能测试
    从PMP学习中浅谈公司行政工作
    肉肉谈对需求设计的想法到底是功能驱动界面?还是界面驱动功能?
    jndi和rmi学习
    mysql赋值变量:=的使用
    用Cookies和HashTable制作购物车
    nginx实现简单的反向代理
    .net Form认证扩展保存 Object 类型
    基于Docker搭建私有镜像仓库
  • 原文地址:https://www.cnblogs.com/tongxupeng/p/10269132.html
Copyright © 2011-2022 走看看