public class JdbcCatalog extends BaseMetastoreViewCatalog implements Configurable<java.lang.Object>, SupportsNamespaces
| Modifier and Type | Class and Description |
|---|---|
protected class |
JdbcCatalog.ViewAwareTableBuilder
The purpose of this class is to add view detection only when SchemaVersion.V1 schema is used
when replacing a table.
|
BaseMetastoreViewCatalog.BaseMetastoreViewCatalogTableBuilder, BaseMetastoreViewCatalog.BaseViewBuilderBaseMetastoreCatalog.BaseMetastoreCatalogTableBuilderCatalog.TableBuilder| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
PROPERTY_PREFIX |
| Constructor and Description |
|---|
JdbcCatalog() |
JdbcCatalog(java.util.function.Function<java.util.Map<java.lang.String,java.lang.String>,FileIO> ioBuilder,
java.util.function.Function<java.util.Map<java.lang.String,java.lang.String>,JdbcClientPool> clientPoolBuilder,
boolean initializeCatalogTables) |
| Modifier and Type | Method and Description |
|---|---|
Catalog.TableBuilder |
buildTable(TableIdentifier identifier,
Schema schema)
/** Instantiate a builder to either create a table or start a create/replace transaction.
|
void |
close() |
void |
createNamespace(Namespace namespace,
java.util.Map<java.lang.String,java.lang.String> metadata)
Create a namespace in the catalog.
|
protected java.lang.String |
defaultWarehouseLocation(TableIdentifier table) |
boolean |
dropNamespace(Namespace namespace)
Drop a namespace.
|
boolean |
dropTable(TableIdentifier identifier,
boolean purge)
Drop a table; optionally delete data and metadata files.
|
boolean |
dropView(TableIdentifier identifier)
Drop a view.
|
void |
initialize(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> properties)
Initialize a view catalog given a custom name and a map of catalog properties.
|
java.util.List<Namespace> |
listNamespaces()
List top-level namespaces from the catalog.
|
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.String |
name()
Return the name for this catalog.
|
boolean |
namespaceExists(Namespace namespace)
Checks whether the Namespace exists.
|
protected TableOperations |
newTableOps(TableIdentifier tableIdentifier) |
protected ViewOperations |
newViewOps(TableIdentifier viewIdentifier) |
protected java.util.Map<java.lang.String,java.lang.String> |
properties() |
boolean |
removeProperties(Namespace namespace,
java.util.Set<java.lang.String> properties)
Remove a set of property keys from a namespace in the catalog.
|
void |
renameTable(TableIdentifier from,
TableIdentifier to)
Rename a table.
|
void |
renameView(TableIdentifier from,
TableIdentifier to)
Rename a view.
|
void |
setConf(java.lang.Object conf) |
boolean |
setProperties(Namespace namespace,
java.util.Map<java.lang.String,java.lang.String> properties)
Set a collection of properties on a namespace in the catalog.
|
buildView, loadViewfullTableName, isValidIdentifier, loadTable, metricsReporter, registerTable, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcreateNamespaceinvalidateView, viewExistscreateTable, createTable, createTable, createTable, dropTable, invalidateTable, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, tableExistspublic static final java.lang.String PROPERTY_PREFIX
public JdbcCatalog()
public JdbcCatalog(java.util.function.Function<java.util.Map<java.lang.String,java.lang.String>,FileIO> ioBuilder, java.util.function.Function<java.util.Map<java.lang.String,java.lang.String>,JdbcClientPool> clientPoolBuilder, boolean initializeCatalogTables)
public void initialize(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> properties)
ViewCatalogA 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.
initialize in interface Cataloginitialize in interface ViewCataloginitialize in class BaseMetastoreViewCatalogname - a custom name for the catalogproperties - catalog propertiesprotected TableOperations newTableOps(TableIdentifier tableIdentifier)
newTableOps in class BaseMetastoreCatalogprotected ViewOperations newViewOps(TableIdentifier viewIdentifier)
newViewOps in class BaseMetastoreViewCatalogprotected java.lang.String defaultWarehouseLocation(TableIdentifier table)
defaultWarehouseLocation in class BaseMetastoreCatalogpublic boolean dropTable(TableIdentifier identifier, boolean purge)
CatalogIf purge is set to true the implementation should delete all data and metadata files.
public java.util.List<TableIdentifier> listTables(Namespace namespace)
CataloglistTables in interface Catalognamespace - a namespacepublic void renameTable(TableIdentifier from, TableIdentifier to)
CatalogrenameTable in interface Catalogfrom - identifier of the table to renameto - new table namepublic java.lang.String name()
ViewCatalogname in interface Catalogname in interface ViewCatalogname in class BaseMetastoreViewCatalogpublic void setConf(java.lang.Object conf)
setConf in interface Configurable<java.lang.Object>public void createNamespace(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> metadata)
SupportsNamespacescreateNamespace in interface SupportsNamespacesnamespace - a multi-part namespacemetadata - a string Map of properties for the given namespacepublic java.util.List<Namespace> listNamespaces()
SupportsNamespacesIf an object such as a table, view, or function exists, its parent namespaces must also exist and must be returned by this discovery method. For example, if table a.b.t exists, this method must return ["a"] in the result array.
listNamespaces in interface SupportsNamespacesNamespace namespublic java.util.List<Namespace> listNamespaces(Namespace namespace) throws NoSuchNamespaceException
SupportsNamespacesFor two existing tables named 'a.b.c.table' and 'a.b.d.table', this method returns:
Namespace.empty()
Namespace.of("a")
Namespace.of("a")
Namespace.of("a", "b")
Namespace.of("a", "b")
Namespace.of("a", "b", "c") and Namespace.of("a", "b", "d")
Namespace.of("a", "b", "c")
listNamespaces in interface SupportsNamespacesNamespace names from the given namespaceNoSuchNamespaceException - If the namespace does not exist (optional)public java.util.Map<java.lang.String,java.lang.String> loadNamespaceMetadata(Namespace namespace) throws NoSuchNamespaceException
SupportsNamespacesloadNamespaceMetadata in interface SupportsNamespacesnamespace - a namespace. NamespaceNoSuchNamespaceException - If the namespace does not exist (optional)public boolean dropNamespace(Namespace namespace) throws NamespaceNotEmptyException
SupportsNamespacesdropNamespace in interface SupportsNamespacesnamespace - a namespace. NamespaceNamespaceNotEmptyException - If the namespace is not emptypublic boolean setProperties(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> properties) throws NoSuchNamespaceException
SupportsNamespacesProperties that are not in the given map are not modified or removed by this method.
setProperties in interface SupportsNamespacesnamespace - a namespace. Namespaceproperties - a collection of metadata to apply to the namespaceNoSuchNamespaceException - If the namespace does not exist (optional)public boolean removeProperties(Namespace namespace, java.util.Set<java.lang.String> properties) throws NoSuchNamespaceException
SupportsNamespacesProperties that are not in the given set are not modified or removed by this method.
removeProperties in interface SupportsNamespacesnamespace - a namespace. Namespaceproperties - a collection of metadata to apply to the namespaceNoSuchNamespaceException - If the namespace does not exist (optional)public void close()
close in interface java.io.Closeableclose in interface java.lang.AutoCloseableclose in class BaseMetastoreCatalogpublic boolean namespaceExists(Namespace namespace)
SupportsNamespacesnamespaceExists in interface SupportsNamespacesnamespace - a namespace. Namespacepublic boolean dropView(TableIdentifier identifier)
ViewCatalogdropView in interface ViewCatalogidentifier - a view identifierpublic java.util.List<TableIdentifier> listViews(Namespace namespace)
ViewCataloglistViews in interface ViewCatalognamespace - a namespacepublic void renameView(TableIdentifier from, TableIdentifier to)
ViewCatalogrenameView in interface ViewCatalogfrom - identifier of the view to renameto - new view identifierprotected java.util.Map<java.lang.String,java.lang.String> properties()
properties in class BaseMetastoreCatalogpublic Catalog.TableBuilder buildTable(TableIdentifier identifier, Schema schema)
CatalogbuildTable in interface CatalogbuildTable in class BaseMetastoreViewCatalogidentifier - a table identifierschema - a schema