Class DefaultFileIOFactory
java.lang.Object
org.apache.polaris.service.catalog.io.DefaultFileIOFactory
- All Implemented Interfaces:
FileIOFactory
@ApplicationScoped
@Identifier("default")
public class DefaultFileIOFactory
extends Object
implements FileIOFactory
A default FileIO factory implementation for creating Iceberg
FileIO instances with
contextual table-level properties.
This class acts as a translation layer between Polaris properties and the properties required
by Iceberg's FileIO. For example, it evaluates storage actions and retrieves subscoped
credentials to initialize a FileIO instance with the most limited permissions necessary.
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultFileIOFactory(RealmEntityManagerFactory realmEntityManagerFactory, org.apache.polaris.core.persistence.MetaStoreManagerFactory metaStoreManagerFactory, org.apache.polaris.core.config.PolarisConfigurationStore configurationStore) -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.iceberg.io.FileIOloadFileIO(org.apache.polaris.core.context.CallContext callContext, String ioImplClassName, Map<String, String> properties, org.apache.iceberg.catalog.TableIdentifier identifier, Set<String> tableLocations, Set<org.apache.polaris.core.storage.PolarisStorageActions> storageActions, org.apache.polaris.core.persistence.PolarisResolvedPathWrapper resolvedEntityPath) Loads a FileIO implementation for a specific table in the given realm with detailed config.
-
Constructor Details
-
DefaultFileIOFactory
@Inject public DefaultFileIOFactory(RealmEntityManagerFactory realmEntityManagerFactory, org.apache.polaris.core.persistence.MetaStoreManagerFactory metaStoreManagerFactory, org.apache.polaris.core.config.PolarisConfigurationStore configurationStore)
-
-
Method Details
-
loadFileIO
public org.apache.iceberg.io.FileIO loadFileIO(@Nonnull org.apache.polaris.core.context.CallContext callContext, @Nonnull String ioImplClassName, @Nonnull Map<String, String> properties, @Nonnull org.apache.iceberg.catalog.TableIdentifier identifier, @Nonnull Set<String> tableLocations, @Nonnull Set<org.apache.polaris.core.storage.PolarisStorageActions> storageActions, @Nonnull org.apache.polaris.core.persistence.PolarisResolvedPathWrapper resolvedEntityPath) Description copied from interface:FileIOFactoryLoads a FileIO implementation for a specific table in the given realm with detailed config.This method may obtain subscoped credentials to restrict the FileIO's permissions, ensuring secure and limited access to the table's data and locations.
- Specified by:
loadFileIOin interfaceFileIOFactory- Parameters:
callContext- the call for which the FileIO is being loaded.ioImplClassName- the class name of the FileIO implementation to load.properties- configuration properties for the FileIO.identifier- the table identifier.tableLocations- locations associated with the table.storageActions- storage actions allowed for the table.resolvedEntityPath- resolved paths for the entities.- Returns:
- a configured FileIO instance.
-