Flink Catalog是Flink的元数据管理系统,用于存储和管理与Flink相关的元数据,例如数据源、表、视图、函数等。
Catalog提供了一种统一的方式来管理和访问这些元数据,从而使Flink应用程序可以更加灵活和可重用。
在Flink Catalog里,有三种Catalog实现:
● 第一个是GenericInMemoryCatalog,是内存版的Catalog。平常在使用 Flink SQL的时候,默认是内存版的Catalog。当程序运行结束,第二次重新运行的时候,会重新生成一个Catalog实例。
eg:Create Temporary Table,临时表,它会写到内存版的Catalog里,不会持久化。所以它适合不需要共享元数据的场景,只给当前query使用。
● 第二个是HiveCatalog,Flink里比较好的支持了HiveCatalog,可以从Hive HMS里读取元数据,同时也可以往Hive里注册表,写数据到Hive里面去。
● 第三个Catalog是 VVP平台里面开发的Catalog,即VVP Catalog,它实现了Flink Catalog的接口,底层是使用的数据库,存的是数据结构,而其他的Catalog则会创建物理表。
eg:Create Table,它注册的表会写入系统Catalog里,在VVP平台上面会写到VVP Catalog中,并进行持久化,适合多个query共享元数据。详情可以参考: