一、Flink简述

Flink个人理解

  • Flink简介
    • 1、Flink是什么
    • 2、Flink可以做什么
      • 2.1、数据处理架构有哪些
        • 2.1.1、 联机事务处理(OLTP)
        • 2.1.2、 联机分析处理(OLAP)
    • 3、Flink的特点(为什么使用)
      • 3.1、flink特点
      • 3.2、flink与Spark Streaming区别
    • 4、Flink程序使用案例WordCount
      • (1)、对字符串的处理
      • (2)、监听某个端口的数据并对其处理

Flink简介


1、Flink是什么

Apache Flink 是一个框架分布式处理引擎,用于对无界有界数据流进行状态计算。

2、Flink可以做什么

  1. 可实现有状态流处理应用程序。它以容错的方式有效地大规模运行这些应用程序。
  2. 可以对数据集采取以流的形式处理,而区别于hive(mapreduce)和spark的批处理。

2.1、数据处理架构有哪些

数据处理架构分为:事务处理(OLTP)和分析处理(OLAP)两种。

2.1.1、 联机事务处理(OLTP)

On-Line Transaction Processing,一般指高可用的在线系统,DQL次数频繁。
OLTP是传统的关系型数据库的主要应用,主要基本的、日常的事务处理,类似常用的APP(淘宝,天猫对数据库进行频繁的增删改查操作)。
常见的事务处理框架:MySQL、SQLServer、Oracle、PostgreSQL
特点:

  1. 可以及时的处理输入的数据,并及时的给出应答,响应。
  2. 可以支持大量的用户进行访问操作。类似常见的App中的大量用户对数据库进行频繁增删改查的操作。
  3. 遵循ACID,事务

OLTP事务的示例包括:

  • 网上银行业务
  • 在线购买书籍
  • 预订机票
  • 发送短信
  • 订单输入
  • 电话推销员输入电话调查结果
  • 呼叫中心工作人员查看和更新​​客户的详细信息

2.1.2、 联机分析处理(OLAP)

Online Analytical Processing,有时候也叫DSS决策支持系统,通常指数据仓库。
OLAP(在线分析处理) 是许多商业智能(BI) 应用程序背后的技术 。OLAP是一项强大的数据发现技术,包括无限制报告查看功能,复杂的分析计算功能以及预测性“假设情况”(预算,预测)计划。,OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果,多用于领导,上级做分析做决策的依赖。

常见的事务处理框架:Hive、Presto、Kylin、Impala、Sparksql、Druid、Clickhouse,
还有:Hawq、Greeplum等。

3、Flink的特点(为什么使用)

3.1、flink特点

特点:

  • 基于流的世界观
  • 传统的数据架构是基于有限的数据集的
  • 低延迟(Storm也支持)
  • 高吞吐,在压力下保持正确(Spark Streaming也支持)
  • 时间正确/语义化窗口,操作简单,表现力好
  • 事件驱动(Event-Driven)(Flink主要特点)

3.2、flink与Spark Streaming区别

数据模型

  • spark 采用 RDD 模型,spark streaming 的 DStream 实际上也就是一组组小批数据 RDD 的集合
  • flink 基本数据模型是数据流,以及事件(Event)序列

运行时架构

  • spark 是批计算,将 DAG 划分为不同的 stage,一个完成后才可以计算下一个
  • flink 是标准的流执行模式,一个事件在一个节点处理完后可以直接发往下一个节点进行处理

4、Flink程序使用案例WordCount

(1)、对字符串的处理

package com.licx;

import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.common.functions.ReduceFunction;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.datastream.KeyedStream;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment

你可能感兴趣的:(flink学习,flink,大数据,数据仓库,数据库,分布式)