Class CatalogUtil
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringShortcut catalog property to load a catalog implementation through a short type name, instead of specifying a full java class throughCatalogProperties.CATALOG_IMPL.static final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final String -
Method Summary
Modifier and TypeMethodDescriptionstatic CatalogBuild an IcebergCatalogbased on a map of catalog properties and optional Hadoop configuration.static voidconfigureHadoopConf(Object maybeConfigurable, Object conf) Dynamically detects whether an object is a Hadoop Configurable and calls setConf.static voiddeleteFiles(FileIO io, Iterable<String> files, String type, boolean concurrent) Helper to delete files.static voiddropTableData(FileIO io, TableMetadata metadata) Drops all data and metadata files referenced by TableMetadata.static StringfullTableName(String catalogName, TableIdentifier identifier) static CatalogLoad a custom catalog implementation.static FileIOLoad a customFileIOimplementation.static MetricsReporterloadMetricsReporter(Map<String, String> properties) Load a customMetricsReporterimplementation.
-
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.
-
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 IcebergCatalogbased on a map of catalog properties and optional Hadoop configuration.This method examines both the
ICEBERG_CATALOG_TYPEandCatalogProperties.CATALOG_IMPLproperties 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 customFileIOimplementation.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 customMetricsReporterimplementation.The implementation must have a no-arg constructor.
- Parameters:
properties- catalog properties which contains class name of a customMetricsReporterimplementation- 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
-