Class CatalogUtil
- java.lang.Object
-
- org.apache.iceberg.CatalogUtil
-
public class CatalogUtil extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ICEBERG_CATALOG_HADOOP
static java.lang.String
ICEBERG_CATALOG_HIVE
static java.lang.String
ICEBERG_CATALOG_REST
static java.lang.String
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
.static java.lang.String
ICEBERG_CATALOG_TYPE_HADOOP
static java.lang.String
ICEBERG_CATALOG_TYPE_HIVE
static java.lang.String
ICEBERG_CATALOG_TYPE_REST
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Catalog
buildIcebergCatalog(java.lang.String name, java.util.Map<java.lang.String,java.lang.String> options, java.lang.Object conf)
Build an IcebergCatalog
based on a map of catalog properties and optional Hadoop configuration.static void
configureHadoopConf(java.lang.Object maybeConfigurable, java.lang.Object conf)
Dynamically detects whether an object is a Hadoop Configurable and calls setConf.static void
dropTableData(FileIO io, TableMetadata metadata)
Drops all data and metadata files referenced by TableMetadata.static Catalog
loadCatalog(java.lang.String impl, java.lang.String catalogName, java.util.Map<java.lang.String,java.lang.String> properties, java.lang.Object hadoopConf)
Load a custom catalog implementation.static FileIO
loadFileIO(java.lang.String impl, java.util.Map<java.lang.String,java.lang.String> properties, java.lang.Object hadoopConf)
Load a customFileIO
implementation.static MetricsReporter
loadMetricsReporter(java.util.Map<java.lang.String,java.lang.String> properties)
Load a customMetricsReporter
implementation.
-
-
-
Field Detail
-
ICEBERG_CATALOG_TYPE
public static final java.lang.String 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:
- Constant Field Values
-
ICEBERG_CATALOG_TYPE_HADOOP
public static final java.lang.String ICEBERG_CATALOG_TYPE_HADOOP
- See Also:
- Constant Field Values
-
ICEBERG_CATALOG_TYPE_HIVE
public static final java.lang.String ICEBERG_CATALOG_TYPE_HIVE
- See Also:
- Constant Field Values
-
ICEBERG_CATALOG_TYPE_REST
public static final java.lang.String ICEBERG_CATALOG_TYPE_REST
- See Also:
- Constant Field Values
-
ICEBERG_CATALOG_HADOOP
public static final java.lang.String ICEBERG_CATALOG_HADOOP
- See Also:
- Constant Field Values
-
ICEBERG_CATALOG_HIVE
public static final java.lang.String ICEBERG_CATALOG_HIVE
- See Also:
- Constant Field Values
-
ICEBERG_CATALOG_REST
public static final java.lang.String ICEBERG_CATALOG_REST
- See Also:
- Constant Field Values
-
-
Method Detail
-
dropTableData
public static void dropTableData(FileIO io, TableMetadata metadata)
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.
-
loadCatalog
public static Catalog loadCatalog(java.lang.String impl, java.lang.String catalogName, java.util.Map<java.lang.String,java.lang.String> properties, java.lang.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:
java.lang.IllegalArgumentException
- if no-arg constructor not found or error during initialization
-
buildIcebergCatalog
public static Catalog buildIcebergCatalog(java.lang.String name, java.util.Map<java.lang.String,java.lang.String> options, java.lang.Object conf)
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
public static FileIO loadFileIO(java.lang.String impl, java.util.Map<java.lang.String,java.lang.String> properties, java.lang.Object hadoopConf)
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:
java.lang.IllegalArgumentException
- if class path not found or right constructor not found or the loaded class cannot be cast to the given interface type
-
configureHadoopConf
public static void configureHadoopConf(java.lang.Object maybeConfigurable, java.lang.Object conf)
Dynamically detects whether an object is a Hadoop Configurable and calls setConf.- Parameters:
maybeConfigurable
- an object that may be Configurableconf
- a Configuration
-
loadMetricsReporter
public static MetricsReporter loadMetricsReporter(java.util.Map<java.lang.String,java.lang.String> properties)
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:
java.lang.IllegalArgumentException
- if class path not found or right constructor not found or the loaded class cannot be cast to the given interface type
-
-