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:
Closeable,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.BaseViewBuilderNested classes/interfaces inherited from class org.apache.iceberg.BaseMetastoreCatalog
BaseMetastoreCatalog.BaseMetastoreCatalogTableBuilderNested classes/interfaces inherited from interface org.apache.iceberg.catalog.Catalog
Catalog.TableBuilder -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuildTable(TableIdentifier identifier, Schema schema) Instantiate a builder to either create a table or start a create/replace transaction.buildView(TableIdentifier identifier) Instantiate a builder to create or replace a SQL view.voidcreateNamespace(Namespace namespace, Map<String, String> meta) Create a namespace in the catalog.protected 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(String inputName, Map<String, String> properties) Initialize a view catalog given a custom name and a map of catalog properties.protected booleanisValidIdentifier(TableIdentifier tableIdentifier) listNamespaces(Namespace namespace) List child namespaces from the namespace.listTables(Namespace namespace) Return all the identifiers under this 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) protected ViewOperationsnewViewOps(TableIdentifier identifier) booleanremoveProperties(Namespace namespace, Set<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, Map<String, String> properties) Set a collection of properties on a namespace in the catalog.booleantableExists(TableIdentifier identifier) Check whether table or metadata table exists.toString()booleanviewExists(TableIdentifier viewIdentifier) Check whether view exists.Methods inherited from class org.apache.iceberg.view.BaseMetastoreViewCatalog
loadViewMethods inherited from class org.apache.iceberg.BaseMetastoreCatalog
close, fullTableName, isValidMetadataIdentifier, loadTable, metricsReporter, registerTableMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.iceberg.catalog.Catalog
createTable, createTable, createTable, createTable, dropTable, invalidateTable, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransactionMethods inherited from interface org.apache.iceberg.catalog.SupportsNamespaces
createNamespace, listNamespaces, namespaceExistsMethods inherited from interface org.apache.iceberg.catalog.ViewCatalog
invalidateView
-
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: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
Description copied from interface:CatalogInstantiate 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
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
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
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
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
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
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
Description copied from interface:CatalogRename a table.- Specified by:
renameTablein interfaceCatalog- Parameters:
from- identifier of the table to renameoriginalTo- new table name
-
renameView
Description copied from interface:ViewCatalogRename a view.- Specified by:
renameViewin interfaceViewCatalog- Parameters:
from- identifier of the view to renameto- new view identifier
-
tableExists
Check whether table or metadata table exists.Note: If a hive table with the same identifier exists in catalog, this method will return
false.- Specified by:
tableExistsin interfaceCatalog- Parameters:
identifier- a table identifier- Returns:
- true if the table exists, false otherwise
-
viewExists
Description copied from interface:ViewCatalogCheck whether view exists.- Specified by:
viewExistsin interfaceViewCatalog- Parameters:
viewIdentifier- a view identifier- Returns:
- true if the view exists, false otherwise
-
createNamespace
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
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
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
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
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
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
- Overrides:
isValidIdentifierin classBaseMetastoreCatalog
-
newTableOps
- Specified by:
newTableOpsin classBaseMetastoreCatalog
-
newViewOps
- Specified by:
newViewOpsin classBaseMetastoreViewCatalog
-
defaultWarehouseLocation
- Specified by:
defaultWarehouseLocationin classBaseMetastoreCatalog
-
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
- Overrides:
propertiesin classBaseMetastoreCatalog
-