首页 > 大数据 > Hadoop > Flink - Catalog 的介绍
Catalog 是存储元数据的组件,可以管理和访问数据库、表、视图、函数等信息。
Catalog 可以提供一个统一的 API,让用户可以从 Table API 和 SQL 查询语句中使用元数据。
Catalog 可以引用外部系统中的元数据,不需要在 Flink 中重复定义,也可以将 Flink 中的元数据存储到外部系统中。
Catalog 可以简化用户使用 Flink 的步骤,提升用户体验。
目前 Flink 包含了以下四种 Catalog :
GenericInMemoryCatalog:基于内存实现的 Catalog,所有元数据只在session 的生命周期(即一个 Flink 任务一次运行生命周期内)内可用。默认自动创建,会有名为“default_catalog”的内存Catalog,这个Catalog默认只有一个名为“default_database”的数据库。这种 Catalog 适合用于测试或者临时的数据处理。
JdbcCatalog:JdbcCatalog 使得用户可以将 Flink 通过 JDBC 协议连接到关系数据库,并使用数据库中的元数据。Postgres Catalog和MySQL Catalog是目前仅有的两种JDBC Catalog实现,它们可以让用户直接访问 Postgres 或 MySQL 中的数据库、表、视图等。这种 Catalog 适合用于与现有的关系数据库集成或者利用数据库的持久化能力。
HiveCatalog:HiveCatalog 使得用户可以将 Flink 连接到 Hive MetaStore,并使用 Hive 中的元数据。HiveCatalog 有两个用途,一是单纯作为 Flink 元数据的持久化存储,二是作为读写现有 Hive 元数据的接口。注意:Hive MetaStore 以小写形式存储所有元数据对象名称,而 GenericInMemoryCatalog会区分大小写。这种 Catalog 适合用于与现有的 Hive 环境集成或者利用 Hive 的丰富功能。
用户自定义 Catalog:用户可以实现 Catalog 接口实现自定义 Catalog,以满足特定的需求或场景。从Flink1.16开始引入了用户类加载器,通过CatalogFactory.Context#getClassLoader访问,否则会报错ClassNotFoundException。这种 Catalog 适合用于扩展 Flink 的元数据管理能力或者与其他系统集成。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70024433/viewspace-2965706/ ,如需转载,请注明出处,否则将追究法律责任。