2020-10-07【学习笔记】【企业数据湖】八、基于Apache Flink处理数据(3)

    科技2025-01-14  17

    四、Flink的API

    Flink中的基本操作可以用简单的术语进行表述

    Flink连接到数据源,然后执行业务逻辑相关操作

    最后将结果输出到sink

    Flink可以处理两种形式的数据(实时,批量)

    所以其有两种api

    DataStream API:实时数据流分析,JAVA和scala语言可以调用

    DataSet API:批量数据处理,Java,scala,python可以调用该api

    1、DataStreamAPI

    范例:

    首先获取StreamExecutionEnvironment对象

    从适当的数据源加载初始数据

    对加载后的数据做一下转换

    确定转换后数据的存储目的地

    触发程序执行

    2、DataSet api

    首先获取ExecutionEnvironment对象

    加载数据

    对加载的数据进行转换操作

    写入转换好的数据

    触发程序执行

    3、Flink领域相关库

    Gelly(Graph库):可处理图数据库数据

    FlinkMl(机器学习库):借鉴scikit-learn的流水线风格的处理机制

    FlinkCEP(复杂事件处理库):允许用户对数据流中的事件模式进行处理来解决复杂问题

    五、Flink运行范例

    暂不做介绍,请查看官方文档

    六、适合使用Flink的场景

    用户需要高性能

    用户需要用到机器学习

    用户的案例中需要用到图处理

    用户需要有一致性保障前提下的高吞吐率

    用户对每条消息只需要处理一次时

    用户希望避免手动处理内存

    用户需要对中间结果进行处理

    用户需要较少的配置

    用户需要使用同一套框架处理流式和批量数据

    用户需要不同的部署选项

    七、不适合使用Flink的场景

    需要一个成熟的框架

    需要支持java,scala之外的编程语言api

    八、其他选项

    1、spark

    2、storm

    3、Tez

     

    Processed: 0.011, SQL: 8