Class CatalogUtil
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
static final String
static final String
static final String
static final String
static final String
static final String
Shortcut catalog property to load a catalog implementation through a short type name, instead of specifying a full java class throughCatalogProperties.CATALOG_IMPL
.static final String
static final String
static final String
static final String
static final String
static final String
-
Method Summary
Modifier and TypeMethodDescriptionstatic Catalog
Build an IcebergCatalog
based on a map of catalog properties and optional Hadoop configuration.static void
configureHadoopConf
(Object maybeConfigurable, Object conf) Dynamically detects whether an object is a Hadoop Configurable and calls setConf.static void
deleteFiles
(FileIO io, Iterable<String> files, String type, boolean concurrent) Helper to delete files.static void
deleteRemovedMetadataFiles
(FileIO io, TableMetadata base, TableMetadata metadata) Deletes the oldest metadata files ifTableProperties.METADATA_DELETE_AFTER_COMMIT_ENABLED
is true.static void
dropTableData
(FileIO io, TableMetadata metadata) Drops all data and metadata files referenced by TableMetadata.static void
dropViewMetadata
(FileIO io, ViewMetadata metadata) Drops view metadata files referenced by ViewMetadata.static String
fullTableName
(String catalogName, TableIdentifier identifier) static Catalog
Load a custom catalog implementation.static FileIO
Load a customFileIO
implementation.static MetricsReporter
loadMetricsReporter
(Map<String, String> properties) Load a customMetricsReporter
implementation.
-
Field Details
-
ICEBERG_CATALOG_TYPE
Shortcut catalog property to load a catalog implementation through a short type name, instead of specifying a full java class throughCatalogProperties.CATALOG_IMPL
. Currently the following type to implementation mappings are supported:- hive: org.apache.iceberg.hive.HiveCatalog
- hadoop: org.apache.iceberg.hadoop.HadoopCatalog
- See Also:
-
ICEBERG_CATALOG_TYPE_HADOOP
- See Also:
-
ICEBERG_CATALOG_TYPE_HIVE
- See Also:
-
ICEBERG_CATALOG_TYPE_REST
- See Also:
-
ICEBERG_CATALOG_TYPE_GLUE
- See Also:
-
ICEBERG_CATALOG_TYPE_NESSIE
- See Also:
-
ICEBERG_CATALOG_TYPE_JDBC
- See Also:
-
ICEBERG_CATALOG_HADOOP
- See Also:
-
ICEBERG_CATALOG_HIVE
- See Also:
-
ICEBERG_CATALOG_REST
- See Also:
-
ICEBERG_CATALOG_GLUE
- See Also:
-
ICEBERG_CATALOG_NESSIE
- See Also:
-
ICEBERG_CATALOG_JDBC
- See Also:
-
-
Method Details
-
dropTableData
Drops all data and metadata files referenced by TableMetadata.This should be called by dropTable implementations to clean up table files once the table has been dropped in the metastore.
- Parameters:
io
- a FileIO to use for deletesmetadata
- the last valid TableMetadata instance for a dropped table.
-
dropViewMetadata
Drops view metadata files referenced by ViewMetadata.This should be called by dropView implementations
- Parameters:
io
- a FileIO to use for deletesmetadata
- the last valid ViewMetadata instance for a dropped view.
-
deleteFiles
Helper to delete files. Bulk deletion is used if possible.- Parameters:
io
- FileIO for deletesfiles
- files to deletetype
- type of files being deletedconcurrent
- controls concurrent deletion. Only applicable for non-bulk FileIO
-
loadCatalog
public static Catalog loadCatalog(String impl, String catalogName, Map<String, String> properties, Object hadoopConf) Load a custom catalog implementation.The catalog must have a no-arg constructor. If the class implements Configurable, a Hadoop config will be passed using Configurable.setConf.
Catalog.initialize(String catalogName, Map options)
is called to complete the initialization.- Parameters:
impl
- catalog implementation full class namecatalogName
- catalog nameproperties
- catalog propertieshadoopConf
- hadoop configuration if needed- Returns:
- initialized catalog object
- Throws:
IllegalArgumentException
- if no-arg constructor not found or error during initialization
-
buildIcebergCatalog
Build an IcebergCatalog
based on a map of catalog properties and optional Hadoop configuration.This method examines both the
ICEBERG_CATALOG_TYPE
andCatalogProperties.CATALOG_IMPL
properties to determine the catalog implementation to load. If nothing is specified for both properties, Hive catalog will be loaded by default.- Parameters:
name
- catalog nameoptions
- catalog propertiesconf
- a Hadoop Configuration- Returns:
- initialized catalog
-
loadFileIO
Load a customFileIO
implementation.The implementation must have a no-arg constructor. If the class implements Configurable, a Hadoop config will be passed using Configurable.setConf.
FileIO.initialize(Map properties)
is called to complete the initialization.- Parameters:
impl
- full class name of a custom FileIO implementationproperties
- used to initialize the FileIO implementationhadoopConf
- a hadoop Configuration- Returns:
- FileIO class
- Throws:
IllegalArgumentException
- if class path not found or right constructor not found or the loaded class cannot be cast to the given interface type
-
configureHadoopConf
Dynamically detects whether an object is a Hadoop Configurable and calls setConf.- Parameters:
maybeConfigurable
- an object that may be Configurableconf
- a Configuration
-
loadMetricsReporter
Load a customMetricsReporter
implementation.The implementation must have a no-arg constructor.
- Parameters:
properties
- catalog properties which contains class name of a customMetricsReporter
implementation- Returns:
- An initialized
MetricsReporter
. - Throws:
IllegalArgumentException
- if class path not found or right constructor not found or the loaded class cannot be cast to the given interface type
-
fullTableName
-
deleteRemovedMetadataFiles
public static void deleteRemovedMetadataFiles(FileIO io, TableMetadata base, TableMetadata metadata) Deletes the oldest metadata files ifTableProperties.METADATA_DELETE_AFTER_COMMIT_ENABLED
is true.- Parameters:
io
- FileIO instance to use for deletesbase
- table metadata on which previous versions were basedmetadata
- new table metadata with updated previous versions
-