栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Flink的批流统一 :Ⅳ

Flink的批流统一 :Ⅳ

序言

基于最新的v1.14.4 梳理下批流统一的用法cuiyaonan2000@163.com

官方的文档看的头晕,要把所有的都穿起来还是有难度.先基于其它码友的经验文章,在去看官网我觉得效果更好.

批流统一总的来说,使用上层的API以操作传统关系型数据库表的方式来进行计算

参考资料:

    概览 | Apache FlinkDataStream API Integration | Apache Flink流式概念 | Apache Flink大数据之flink教程-TableAPI和SQL - 十一vs十一 - 博客园Flink SQL Connector(一)- Format & Kafka - 简书   概览 | Apache Flink    --- 官方默认提供的source 和 sinkUser-defined Sources & Sinks | Apache Flink    ----自定义source和sink的方法

Planner的一些信息

Blink将批处理作业,视为流式处理的特殊情况。所以,blink不支持表和DataSet之间的转换,批处理作业将不转换为DataSet应用程序,而是跟流处理一样,转换为DataStream程序来处理。

因为批流统一,Blink planner也不支持BatchTableSource,而使用有界的StreamTableSource代替.

由上知道:

    Blink不支持 表 和 DataSet之间的转换,即批流统一不支持DataSet使用批流统一处理有界流和无界流,最终都是转换成DataStream的Api进行处理有界流使用StreamTableSource,无界流使用TableSource 作为批流统一的原始数据源.

创建表环境

创建表环境最简单的方式,就是基于流处理执行环境,调create方法直接创建:

//创建流式环境
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

//创建表环境
StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);

TableEnvironment 是 Table API 和 SQL 的核心概念。它负责:

在内部的 catalog 中注册 Table   注册外部的 catalog                          加载可插拔模块执行 SQL 查询注册自定义函数 (scalar、table 或 aggregation)将 DataStream 或 DataSet 转换成 Table  ----由此可见批流的操作对象是Table持有对 ExecutionEnvironment 或 StreamExecutionEnvironment 的引用

设置表环境环境变量

可以看到在创建表环境StreamTableEnvironment 时,可以设置表环境的配置信息

当前版本还是不稳定,之前很多可用的配置都被取消了,官方能别这么着急发版本么cuiyaonan2000@163.com

如下是创建环境信息的方法

TableEnvironment可以注册目录Catalog,并可以基于Catalog注册表. TableEnvironment会维护一个Catalog-Table表之间的map.

命名空间

表(Table)是由一个“标识符”来指定的,由3部分组成(如果没有指定目录或数据库,就使用当前的默认值):

    Catalog名  ---- 如果连接进入同一个catalog,数据库则可以共享该命名空间下的所有表cuiyaonan2000@163.com数据库(database)名对象名(表名)

表类型

常规的(Table,表): 一般可以用来描述外部数据,比如文件、数据库表或消息队列的数据,也可以直接从 DataStream转换而来虚拟的(View,视图): 可以从现有的表中创建,通常是table API或者SQL查询的一个结果

常规表

如上可知常规表,一般都是外部数据.来源可以是文件,kafka,mysql,mongodb,hive等

Flink的改变很大,很多历史博客的连接外部资源使用的是tableEnv.connect()这个方法,但是在最新的版本中该方法已经消失了. 参照官网的连接都是使用的sql方式.即以属性添加外部资源信息的方式,使用sql来注册外部资源cuiyaonan2000@163.com

 

表连接器&表格式

Filink提供了2个概念以连接外部资源(注入Kafka,Hive,Mongodb等),

    表连接器(table connector): 表连接即通过类Sql的形式连接外部资源.表格式(table format): 表格式是一种存储格式,定义了如何将外部资源的信息映射到Flink内部自定义的格式上.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/774746.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号