Interface CatalogStoreFactory
-
- All Superinterfaces:
Factory
- All Known Implementing Classes:
FileCatalogStoreFactory
,GenericInMemoryCatalogStoreFactory
@PublicEvolving public interface CatalogStoreFactory extends Factory
A factory to create configured catalog store instances based on string-based properties. See alsoFactory
for more information.This factory is specifically designed for the Flink SQL gateway scenario, where different catalog stores need to be created for different sessions.
If the CatalogStore is implemented using JDBC, this factory can be used to create a JDBC connection pool in the open method. This connection pool can then be reused for subsequent catalog store creations.
The following examples implementation of CatalogStoreFactory using jdbc.
{@code public class JdbcCatalogStore implements CatalogStore { private JdbcConnectionPool jdbcConnectionPool; public JdbcCatalogStore(JdbcConnectionPool jdbcConnectionPool) { this.jdbcConnectionPool = jdbcConnectionPool; } ... } public class JdbcCatalogStoreFactory implements CatalogStoreFactory { private JdbcConnectionPool jdbcConnectionPool;
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
CatalogStoreFactory.Context
Context provided when a catalog store is created.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
close()
Close the CatalogStoreFactory.CatalogStore
createCatalogStore()
Creates aCatalogStore
instance from context information.void
open(CatalogStoreFactory.Context context)
Initialize the CatalogStoreFactory.-
Methods inherited from interface org.apache.flink.table.factories.Factory
factoryIdentifier, optionalOptions, requiredOptions
-
-
-
-
Method Detail
-
createCatalogStore
CatalogStore createCatalogStore()
Creates aCatalogStore
instance from context information.
-
open
void open(CatalogStoreFactory.Context context) throws CatalogException
Initialize the CatalogStoreFactory.For the use case of Flink SQL gateway, the open method will be called when starting SessionManager. It initializes common resources, such as a connection pool, for various catalog stores.
- Throws:
CatalogException
-
close
void close() throws CatalogException
Close the CatalogStoreFactory.For the use case of Flink SQL gateway, the close method will be called when closing SessionManager. It releases common resources, such as connection pool, after closing all catalog stores.
- Throws:
CatalogException
-
-