public class CatalogUtil
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ICEBERG_CATALOG_HADOOP |
static java.lang.String |
ICEBERG_CATALOG_HIVE |
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 through
CatalogProperties.CATALOG_IMPL . |
static java.lang.String |
ICEBERG_CATALOG_TYPE_HADOOP |
static java.lang.String |
ICEBERG_CATALOG_TYPE_HIVE |
Modifier and Type | Method and Description |
---|---|
static Catalog |
buildIcebergCatalog(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> options,
java.lang.Object conf)
Build an Iceberg
Catalog 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 custom
FileIO implementation. |
public static final java.lang.String ICEBERG_CATALOG_TYPE
CatalogProperties.CATALOG_IMPL
.
Currently the following type to implementation mappings are supported:
public static final java.lang.String ICEBERG_CATALOG_TYPE_HADOOP
public static final java.lang.String ICEBERG_CATALOG_TYPE_HIVE
public static final java.lang.String ICEBERG_CATALOG_HIVE
public static final java.lang.String ICEBERG_CATALOG_HADOOP
public static void dropTableData(FileIO io, TableMetadata metadata)
This should be called by dropTable implementations to clean up table files once the table has been dropped in the metastore.
io
- a FileIO to use for deletesmetadata
- the last valid TableMetadata instance for a dropped table.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)
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.
impl
- catalog implementation full class namecatalogName
- catalog nameproperties
- catalog propertieshadoopConf
- hadoop configuration if neededjava.lang.IllegalArgumentException
- if no-arg constructor not found or error during initializationpublic static Catalog buildIcebergCatalog(java.lang.String name, java.util.Map<java.lang.String,java.lang.String> options, java.lang.Object conf)
Catalog
based on a map of catalog properties and optional Hadoop configuration.
This method examines both the ICEBERG_CATALOG_TYPE
and CatalogProperties.CATALOG_IMPL
properties
to determine the catalog implementation to load.
If nothing is specified for both properties, Hive catalog will be loaded by default.
name
- catalog nameoptions
- catalog propertiesconf
- a Hadoop Configurationpublic static FileIO loadFileIO(java.lang.String impl, java.util.Map<java.lang.String,java.lang.String> properties, java.lang.Object hadoopConf)
FileIO
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.
impl
- full class name of a custom FileIO implementationhadoopConf
- a hadoop Configurationjava.lang.IllegalArgumentException
- if class path not found or
right constructor not found or
the loaded class cannot be casted to the given interface typepublic static void configureHadoopConf(java.lang.Object maybeConfigurable, java.lang.Object conf)
maybeConfigurable
- an object that may be Configurableconf
- a Configuration