概念

Catalog 提供了元数据信息,例如数据库、表、分区、视图以及数据库或其他外部系统中存储的函数和信息。

数据处理最关键的方面之一是管理元数据。 元数据可以是临时的,例如临时表、或者通过 TableEnvironment 注册的 UDF。 元数据也可以是持久化的,例如 Hive Metastore 中的元数据。Catalog 提供了一个统一的API,用于管理元数据,并使其可以从 Table API 和 SQL 查询语句中来访问。

Catalog类型

  • GenericInMemoryCatalog

基于内存实现,所有元数据只在 session 的生命周期内可用

  • JdbcCatalog

可以将 Flink 通过 JDBC 协议连接到关系数据库。Postgres Catalog 和 MySQL Catalog 是目前 JDBC Catalog 仅有的两种实现

  • HiveCatalog

作为原生 Flink 元数据的持久化存储,以及作为读写现有 Hive 元数据的接口

  • 用户自定义 Catalog

用户可以通过实现 Catalog 接口来开发自定义 Catalog,除了需要实现自定义的 Catalog 之外,还需要为这个 Catalog 实现对应的 CatalogFactory 接口

设计

新的 Catalog 有三层结构,最顶层是 Catalog 的名字,中间一

层是 Database,最底层是各种 MetaObject,如 Table,Partition,Function 等

Catalog

  • 支持 Create,Drop,List,Alter,Exists 等语句
  • 支持对 Database,Table,View, Partition,Function,Statistics等的操作

CatalogManager 正如它名字一样,主要是用来管理 Catalog。

CatalogManager 支持的操作包括:

  • 注册 Catalog(registerCatalog)
  • 获取所有的 Catalog(getCatalogs)
  • 获取特定的 Catalog(getCatalog)
  • 获取当前的 Catalog(getCurrentCatalog)
  • 设置当前的 Catalog(setCurrentCatalog)
  • 获取当前的 Database(getCurrentDatabase)
  • 设置当前的 Database(setCurrentDatabase)

参考

  1. https://nightlies.apache.org/flink/flink-docs-master/zh/docs/dev/table/catalogs/

Flink Catalog的更多相关文章

  1. 终于等到你!阿里正式向 Apache Flink 贡献 Blink 源码

    摘要: 如同我们去年12月在 Flink Forward China 峰会所约,阿里巴巴内部 Flink 版本 Blink 将于 2019 年 1 月底正式开源.今天,我们终于等到了这一刻. 阿里妹导 ...

  2. 使用flink Table &Sql api来构建批量和流式应用(1)Table的基本概念

    从flink的官方文档,我们知道flink的编程模型分为四层,sql层是最高层的api,Table api是中间层,DataStream/DataSet Api 是核心,stateful Stream ...

  3. [源码分析] 带你梳理 Flink SQL / Table API内部执行流程

    [源码分析] 带你梳理 Flink SQL / Table API内部执行流程 目录 [源码分析] 带你梳理 Flink SQL / Table API内部执行流程 0x00 摘要 0x01 Apac ...

  4. [源码分析]从"UDF不应有状态" 切入来剖析Flink SQL代码生成 (修订版)

    [源码分析]从"UDF不应有状态" 切入来剖析Flink SQL代码生成 (修订版) 目录 [源码分析]从"UDF不应有状态" 切入来剖析Flink SQL代码 ...

  5. 如何跑通第一个 SQL 作业

    简介: 本文由阿里巴巴技术专家周凯波(宝牛)分享,主要介绍如何跑通第一个SQL. 一.SQL的基本概念 1.SQL 分类 SQL分为四类,分别是数据查询语言(DQL).数据操纵语言(DML).数据定义 ...

  6. 【翻译】Flink Table Api & SQL — Catalog Beta 版

    本文翻译自官网:Catalogs Beta  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/catalog ...

  7. Stream Processing for Everyone with SQL and Apache Flink

    Where did we come from? With the 0.9.0-milestone1 release, Apache Flink added an API to process rela ...

  8. Flink table&Sql中使用Calcite

    Apache Calcite是什么东东 Apache Calcite面向Hadoop新的sql引擎,它提供了标准的SQL语言.多种查询优化和连接各种数据源的能力.除此之外,Calcite还提供了OLA ...

  9. Flink UDF

    本文会主要讲三种udf: ScalarFunction TableFunction AggregateFunction 用户自定义函数是非常重要的一个特征,因为他极大地扩展了查询的表达能力.本文除了介 ...

  10. 使用flink Table &Sql api来构建批量和流式应用(2)Table API概述

    从flink的官方文档,我们知道flink的编程模型分为四层,sql层是最高层的api,Table api是中间层,DataStream/DataSet Api 是核心,stateful Stream ...

随机推荐

  1. Linux驱动|cdev_init、cdev_alloc区别

    这两个函数是字符设备初始化相关的内核函数. 要想了解这两个函数,必须要知道字符设备的架构,以及字符设备创建的流程. 关于字符设备可以参考下面这篇文章 <手把手教Linux驱动3-之字符设备架构详 ...

  2. 聊一聊SQL优化

    晚上睡不着,脑子里总想着一些问题,试着写一写对于SQL查询优化的见解. 首先,数据库有自己的查询优化器,执行一条查询SQL优化器会选择最优的方式(不走索引.走索引.走哪个索引), 所以索引不是越多越好 ...

  3. 设计模式 | 中介者模式/调停者模式(Mediator)

    定义: 用一个中介对象来封装以系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地变化他们之间的交互. 结构:(书中图,侵删) 一个抽象中介者 若干具体中介者 一个抽象 ...

  4. docker stop 容器,连接被拒绝

    docker stop 容器ID 报错,无法kill,连接被拒绝 经过网上查找以及实际情况,发现原因为: 服务器重启时,正在运行的docker内的容器正在进行处理, 因为docker没有提前关闭,导致 ...

  5. Java 1.8 Stream流原理与用法总结

    一.接口设计 从Java1.8开始提出了Stream流的概念,侧重对于源数据计算能力的封装,并且支持序列与并行两种操作方式:依旧先看核心接口的设计: BaseStream:基础接口,声明了流管理的核心 ...

  6. FFmpeg开发笔记(五十二)移动端的国产视频播放器GSYVideoPlayer

    ​GSYVideoPlayer是一个国产的移动端视频播放器,它采用了IJKPlayer.Media3(EXOPlayer).MediaPlayer.AliPlayer等四种播放器内核,支持弹幕.滤镜. ...

  7. 游戏AI行为决策——HTN(分层任务网络)

    游戏AI行为决策--HTN 前言 Hierarchical Task Network(分层任务网络),简称HTN,与行为树.GOAP一样,也是一种行为决策方法.在<地平线:零之曙光>.&l ...

  8. Angular 18+ 高级教程 – Component 组件 の Angular Component vs Web Component

    前言 在 初识 Angular 中我有提到, Angular 团队是一群不爱创新.爱 follow 标准.爱小题大做的一群人. 所以,要理解 Angular Component,我们就非得要先搞懂远古 ...

  9. Figma 学习笔记 – Keyboard Shortcut and Tips 小技巧

    参考: 10 tips to work 10x faster in Figma 15 tips to design 15X faster in Figma | Figma Tutorial 2021 ...

  10. linux 映射windows 下的共享文件夹

    linux 映射windows 下的共享文件夹     本文讯]2021年4月27日  在对接第三方系统,进行数据采集的时候,对方给了我们一个文件夹,里面全是txt文件,这个时候就要想办法获取他们数据 ...