Package org.apache.iceberg.hive
Class HiveCatalog
- java.lang.Object
 - 
- org.apache.iceberg.BaseMetastoreCatalog
 - 
- org.apache.iceberg.view.BaseMetastoreViewCatalog
 - 
- org.apache.iceberg.hive.HiveCatalog
 
 
 
 
- 
- All Implemented Interfaces:
 java.io.Closeable,java.lang.AutoCloseable,org.apache.hadoop.conf.Configurable,Catalog,SupportsNamespaces,ViewCatalog
public class HiveCatalog extends BaseMetastoreViewCatalog implements SupportsNamespaces, org.apache.hadoop.conf.Configurable
 
- 
- 
Nested Class Summary
- 
Nested classes/interfaces inherited from class org.apache.iceberg.view.BaseMetastoreViewCatalog
BaseMetastoreViewCatalog.BaseMetastoreViewCatalogTableBuilder, BaseMetastoreViewCatalog.BaseViewBuilder 
- 
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
Fields Modifier and Type Field Description static java.lang.StringHMS_DB_OWNERstatic java.lang.StringHMS_DB_OWNER_TYPEstatic java.lang.StringHMS_TABLE_OWNERstatic java.lang.StringLIST_ALL_TABLESstatic java.lang.StringLIST_ALL_TABLES_DEFAULT 
- 
Constructor Summary
Constructors Constructor Description HiveCatalog() 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Catalog.TableBuilderbuildTable(TableIdentifier identifier, Schema schema)/** Instantiate a builder to either create a table or start a create/replace transaction.ViewBuilderbuildView(TableIdentifier identifier)Instantiate a builder to create or replace a SQL view.voidclose()voidcreateNamespace(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> meta)Create a namespace in the catalog.protected java.lang.StringdefaultWarehouseLocation(TableIdentifier tableIdentifier)booleandropNamespace(Namespace namespace)Drop a namespace.booleandropTable(TableIdentifier identifier, boolean purge)Drop a table; optionally delete data and metadata files.booleandropView(TableIdentifier identifier)Drop a view.org.apache.hadoop.conf.ConfigurationgetConf()voidinitialize(java.lang.String inputName, java.util.Map<java.lang.String,java.lang.String> properties)Initialize a view catalog given a custom name and a map of catalog properties.protected booleanisValidIdentifier(TableIdentifier tableIdentifier)java.util.List<Namespace>listNamespaces(Namespace namespace)List child namespaces from the namespace.java.util.List<TableIdentifier>listTables(Namespace namespace)Return all the identifiers under this namespace.java.util.List<TableIdentifier>listViews(Namespace namespace)Return all the identifiers under this namespace.java.util.Map<java.lang.String,java.lang.String>loadNamespaceMetadata(Namespace namespace)Load metadata properties for a namespace.java.lang.Stringname()Return the name for this catalog.TableOperationsnewTableOps(TableIdentifier tableIdentifier)protected ViewOperationsnewViewOps(TableIdentifier identifier)protected java.util.Map<java.lang.String,java.lang.String>properties()booleanremoveProperties(Namespace namespace, java.util.Set<java.lang.String> properties)Remove a set of property keys from a namespace in the catalog.voidrenameTable(TableIdentifier from, TableIdentifier originalTo)Rename a table.voidrenameView(TableIdentifier from, TableIdentifier to)Rename a view.voidsetConf(org.apache.hadoop.conf.Configuration conf)booleansetProperties(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> properties)Set a collection of properties on a namespace in the catalog.java.lang.StringtoString()- 
Methods inherited from class org.apache.iceberg.view.BaseMetastoreViewCatalog
loadView 
- 
Methods inherited from class org.apache.iceberg.BaseMetastoreCatalog
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 
- 
Methods inherited from interface org.apache.iceberg.catalog.ViewCatalog
invalidateView, viewExists 
 - 
 
 - 
 
- 
- 
Field Detail
- 
LIST_ALL_TABLES
public static final java.lang.String LIST_ALL_TABLES
- See Also:
 - Constant Field Values
 
 
- 
LIST_ALL_TABLES_DEFAULT
public static final java.lang.String LIST_ALL_TABLES_DEFAULT
- See Also:
 - Constant Field Values
 
 
- 
HMS_TABLE_OWNER
public static final java.lang.String HMS_TABLE_OWNER
- See Also:
 - Constant Field Values
 
 
- 
HMS_DB_OWNER
public static final java.lang.String HMS_DB_OWNER
- See Also:
 - Constant Field Values
 
 
- 
HMS_DB_OWNER_TYPE
public static final java.lang.String HMS_DB_OWNER_TYPE
- See Also:
 - Constant Field Values
 
 
 - 
 
- 
Method Detail
- 
initialize
public void initialize(java.lang.String inputName, java.util.Map<java.lang.String,java.lang.String> properties)Description copied from interface:ViewCatalogInitialize a view catalog given a custom name and a map of catalog properties.A custom view 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:
 initializein interfaceCatalog- Specified by:
 initializein interfaceViewCatalog- Overrides:
 initializein classBaseMetastoreViewCatalog- Parameters:
 inputName- a custom name for the catalogproperties- catalog properties
 
- 
buildTable
public Catalog.TableBuilder buildTable(TableIdentifier identifier, Schema schema)
Description copied from interface:Catalog/** Instantiate a builder to either create a table or start a create/replace transaction.- Specified by:
 buildTablein interfaceCatalog- Overrides:
 buildTablein classBaseMetastoreViewCatalog- Parameters:
 identifier- a table identifierschema- a schema- Returns:
 - the builder to create a table or start a create/replace transaction
 
 
- 
buildView
public ViewBuilder buildView(TableIdentifier identifier)
Description copied from interface:ViewCatalogInstantiate a builder to create or replace a SQL view.- Specified by:
 buildViewin interfaceViewCatalog- Overrides:
 buildViewin classBaseMetastoreViewCatalog- Parameters:
 identifier- a view identifier- Returns:
 - a view builder
 
 
- 
listTables
public java.util.List<TableIdentifier> listTables(Namespace namespace)
Description copied from interface:CatalogReturn all the identifiers under this namespace.- Specified by:
 listTablesin interfaceCatalog- Parameters:
 namespace- a namespace- Returns:
 - a list of identifiers for tables
 
 
- 
listViews
public java.util.List<TableIdentifier> listViews(Namespace namespace)
Description copied from interface:ViewCatalogReturn all the identifiers under this namespace.- Specified by:
 listViewsin interfaceViewCatalog- Parameters:
 namespace- a namespace- Returns:
 - a list of identifiers for views
 
 
- 
name
public java.lang.String name()
Description copied from interface:ViewCatalogReturn the name for this catalog.- Specified by:
 namein interfaceCatalog- Specified by:
 namein interfaceViewCatalog- Overrides:
 namein classBaseMetastoreViewCatalog- Returns:
 - this catalog's name
 
 
- 
dropTable
public boolean dropTable(TableIdentifier identifier, boolean purge)
Description copied from interface:CatalogDrop a table; optionally delete data and metadata files.If purge is set to true the implementation should delete all data and metadata files.
 
- 
dropView
public boolean dropView(TableIdentifier identifier)
Description copied from interface:ViewCatalogDrop a view.- Specified by:
 dropViewin interfaceViewCatalog- Parameters:
 identifier- a view identifier- Returns:
 - true if the view was dropped, false if the view did not exist
 
 
- 
renameTable
public void renameTable(TableIdentifier from, TableIdentifier originalTo)
Description copied from interface:CatalogRename a table.- Specified by:
 renameTablein interfaceCatalog- Parameters:
 from- identifier of the table to renameoriginalTo- new table name
 
- 
renameView
public void renameView(TableIdentifier from, TableIdentifier to)
Description copied from interface:ViewCatalogRename a view.- Specified by:
 renameViewin interfaceViewCatalog- Parameters:
 from- identifier of the view to renameto- new view identifier
 
- 
createNamespace
public void createNamespace(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> meta)
Description copied from interface:SupportsNamespacesCreate a namespace in the catalog.- Specified by:
 createNamespacein interfaceSupportsNamespaces- Parameters:
 namespace- a multi-part namespacemeta- a string Map of properties for the given namespace
 
- 
listNamespaces
public java.util.List<Namespace> listNamespaces(Namespace namespace)
Description copied from interface:SupportsNamespacesList 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:
 listNamespacesin interfaceSupportsNamespaces- Returns:
 - a List of child 
Namespacenames from the given namespace 
 - Given: 
 
- 
dropNamespace
public boolean dropNamespace(Namespace namespace)
Description copied from interface:SupportsNamespacesDrop a namespace. If the namespace exists and was dropped, this will return true.- Specified by:
 dropNamespacein interfaceSupportsNamespaces- Parameters:
 namespace- a namespace.Namespace- Returns:
 - true if the namespace was dropped, false otherwise.
 
 
- 
setProperties
public boolean setProperties(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> properties)
Description copied from interface:SupportsNamespacesSet 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:
 setPropertiesin interfaceSupportsNamespaces- Parameters:
 namespace- a namespace.Namespaceproperties- a collection of metadata to apply to the namespace
 
- 
removeProperties
public boolean removeProperties(Namespace namespace, java.util.Set<java.lang.String> properties)
Description copied from interface:SupportsNamespacesRemove 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:
 removePropertiesin interfaceSupportsNamespaces- Parameters:
 namespace- a namespace.Namespaceproperties- a collection of metadata to apply to the namespace
 
- 
loadNamespaceMetadata
public java.util.Map<java.lang.String,java.lang.String> loadNamespaceMetadata(Namespace namespace)
Description copied from interface:SupportsNamespacesLoad metadata properties for a namespace.- Specified by:
 loadNamespaceMetadatain interfaceSupportsNamespaces- Parameters:
 namespace- a namespace.Namespace- Returns:
 - a string map of properties for the given namespace
 
 
- 
isValidIdentifier
protected boolean isValidIdentifier(TableIdentifier tableIdentifier)
- Overrides:
 isValidIdentifierin classBaseMetastoreCatalog
 
- 
newTableOps
public TableOperations newTableOps(TableIdentifier tableIdentifier)
- Specified by:
 newTableOpsin classBaseMetastoreCatalog
 
- 
newViewOps
protected ViewOperations newViewOps(TableIdentifier identifier)
- Specified by:
 newViewOpsin classBaseMetastoreViewCatalog
 
- 
defaultWarehouseLocation
protected java.lang.String defaultWarehouseLocation(TableIdentifier tableIdentifier)
- Specified by:
 defaultWarehouseLocationin classBaseMetastoreCatalog
 
- 
toString
public java.lang.String toString()
- Overrides:
 toStringin classBaseMetastoreCatalog
 
- 
setConf
public void setConf(org.apache.hadoop.conf.Configuration conf)
- Specified by:
 setConfin interfaceorg.apache.hadoop.conf.Configurable
 
- 
getConf
public org.apache.hadoop.conf.Configuration getConf()
- Specified by:
 getConfin interfaceorg.apache.hadoop.conf.Configurable
 
- 
properties
protected java.util.Map<java.lang.String,java.lang.String> properties()
- Overrides:
 propertiesin classBaseMetastoreCatalog
 
- 
close
public void close() throws java.io.IOException- Specified by:
 closein interfacejava.lang.AutoCloseable- Specified by:
 closein interfacejava.io.Closeable- Overrides:
 closein classBaseMetastoreCatalog- Throws:
 java.io.IOException
 
 - 
 
 -