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
 
 -