Package org.apache.iceberg.hive
Class HiveCatalog
java.lang.Object
org.apache.iceberg.BaseMetastoreCatalog
org.apache.iceberg.hive.HiveCatalog
- All Implemented Interfaces:
Closeable
,AutoCloseable
,org.apache.hadoop.conf.Configurable
,Catalog
,SupportsNamespaces
public class HiveCatalog
extends BaseMetastoreCatalog
implements SupportsNamespaces, org.apache.hadoop.conf.Configurable
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.iceberg.BaseMetastoreCatalog
BaseMetastoreCatalog.BaseMetastoreCatalogTableBuilder
Nested classes/interfaces inherited from interface org.apache.iceberg.catalog.Catalog
Catalog.TableBuilder
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
createNamespace
(Namespace namespace, Map<String, String> meta) Create a namespace in the catalog.protected String
defaultWarehouseLocation
(TableIdentifier tableIdentifier) boolean
dropNamespace
(Namespace namespace) Drop a namespace.boolean
dropTable
(TableIdentifier identifier, boolean purge) Drop a table; optionally delete data and metadata files.org.apache.hadoop.conf.Configuration
getConf()
void
initialize
(String inputName, Map<String, String> properties) Initialize a catalog given a custom name and a map of catalog properties.protected boolean
isValidIdentifier
(TableIdentifier tableIdentifier) listNamespaces
(Namespace namespace) List child namespaces from the namespace.listTables
(Namespace namespace) Return all the identifiers under this namespace.loadNamespaceMetadata
(Namespace namespace) Load metadata properties for a namespace.name()
Return the name for this catalog.newTableOps
(TableIdentifier tableIdentifier) boolean
removeProperties
(Namespace namespace, Set<String> properties) Remove a set of property keys from a namespace in the catalog.void
renameTable
(TableIdentifier from, TableIdentifier originalTo) Rename a table.void
setConf
(org.apache.hadoop.conf.Configuration conf) boolean
setProperties
(Namespace namespace, Map<String, String> properties) Set a collection of properties on a namespace in the catalog.toString()
Methods inherited from class org.apache.iceberg.BaseMetastoreCatalog
buildTable, close, fullTableName, loadTable, metricsReporter, registerTable
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.iceberg.catalog.Catalog
createTable, createTable, createTable, createTable, dropTable, invalidateTable, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, tableExists
Methods inherited from interface org.apache.iceberg.catalog.SupportsNamespaces
createNamespace, listNamespaces, namespaceExists
-
Field Details
-
LIST_ALL_TABLES
- See Also:
-
LIST_ALL_TABLES_DEFAULT
- See Also:
-
HMS_TABLE_OWNER
- See Also:
-
HMS_DB_OWNER
- See Also:
-
HMS_DB_OWNER_TYPE
- See Also:
-
-
Constructor Details
-
HiveCatalog
public HiveCatalog()
-
-
Method Details
-
initialize
Description copied from interface:Catalog
Initialize a catalog given a custom name and a map of catalog properties.A custom Catalog implementation must have a no-arg constructor. A compute engine like Spark or Flink will first initialize the catalog without any arguments, and then call this method to complete catalog initialization with properties passed into the engine.
- Specified by:
initialize
in interfaceCatalog
- Parameters:
inputName
- a custom name for the catalogproperties
- catalog properties
-
listTables
Description copied from interface:Catalog
Return all the identifiers under this namespace.- Specified by:
listTables
in interfaceCatalog
- Parameters:
namespace
- a namespace- Returns:
- a list of identifiers for tables
-
name
Description copied from interface:Catalog
Return the name for this catalog. -
dropTable
Description copied from interface:Catalog
Drop a table; optionally delete data and metadata files.If purge is set to true the implementation should delete all data and metadata files.
-
renameTable
Description copied from interface:Catalog
Rename a table.- Specified by:
renameTable
in interfaceCatalog
- Parameters:
from
- identifier of the table to renameoriginalTo
- new table name
-
createNamespace
Description copied from interface:SupportsNamespaces
Create a namespace in the catalog.- Specified by:
createNamespace
in interfaceSupportsNamespaces
- Parameters:
namespace
- a multi-part namespacemeta
- a string Map of properties for the given namespace
-
listNamespaces
Description copied from interface:SupportsNamespaces
List child namespaces from the namespace.For two existing tables named 'a.b.c.table' and 'a.b.d.table', this method returns:
- Given:
Namespace.empty()
- Returns:
Namespace.of("a")
- Given:
Namespace.of("a")
- Returns:
Namespace.of("a", "b")
- Given:
Namespace.of("a", "b")
- Returns:
Namespace.of("a", "b", "c")
andNamespace.of("a", "b", "d")
- Given:
Namespace.of("a", "b", "c")
- Returns: empty list, because there are no child namespaces
- Specified by:
listNamespaces
in interfaceSupportsNamespaces
- Returns:
- a List of child
Namespace
names from the given namespace
- Given:
-
dropNamespace
Description copied from interface:SupportsNamespaces
Drop a namespace. If the namespace exists and was dropped, this will return true.- Specified by:
dropNamespace
in interfaceSupportsNamespaces
- Parameters:
namespace
- a namespace.Namespace
- Returns:
- true if the namespace was dropped, false otherwise.
-
setProperties
Description copied from interface:SupportsNamespaces
Set a collection of properties on a namespace in the catalog.Properties that are not in the given map are not modified or removed by this method.
- Specified by:
setProperties
in interfaceSupportsNamespaces
- Parameters:
namespace
- a namespace.Namespace
properties
- a collection of metadata to apply to the namespace
-
removeProperties
Description copied from interface:SupportsNamespaces
Remove a set of property keys from a namespace in the catalog.Properties that are not in the given set are not modified or removed by this method.
- Specified by:
removeProperties
in interfaceSupportsNamespaces
- Parameters:
namespace
- a namespace.Namespace
properties
- a collection of metadata to apply to the namespace
-
loadNamespaceMetadata
Description copied from interface:SupportsNamespaces
Load metadata properties for a namespace.- Specified by:
loadNamespaceMetadata
in interfaceSupportsNamespaces
- Parameters:
namespace
- a namespace.Namespace
- Returns:
- a string map of properties for the given namespace
-
isValidIdentifier
- Overrides:
isValidIdentifier
in classBaseMetastoreCatalog
-
newTableOps
- Specified by:
newTableOps
in classBaseMetastoreCatalog
-
defaultWarehouseLocation
- Specified by:
defaultWarehouseLocation
in classBaseMetastoreCatalog
-
toString
- Overrides:
toString
in classBaseMetastoreCatalog
-
setConf
public void setConf(org.apache.hadoop.conf.Configuration conf) - Specified by:
setConf
in interfaceorg.apache.hadoop.conf.Configurable
-
getConf
public org.apache.hadoop.conf.Configuration getConf()- Specified by:
getConf
in interfaceorg.apache.hadoop.conf.Configurable
-
properties
- Overrides:
properties
in classBaseMetastoreCatalog
-