public class GlueCatalog extends BaseMetastoreCatalog implements java.io.Closeable, SupportsNamespaces, org.apache.hadoop.conf.Configurable
BaseMetastoreCatalog.BaseMetastoreCatalogTableBuilder
Catalog.TableBuilder
Constructor and Description |
---|
GlueCatalog()
No-arg constructor to load the catalog dynamically.
|
Modifier and Type | Method and Description |
---|---|
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 tableIdentifier)
This method produces the same result as using a HiveCatalog.
|
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(java.lang.String name,
java.util.Map<java.lang.String,java.lang.String> properties)
Initialize a catalog given a custom name and a map of catalog properties.
|
protected boolean |
isValidIdentifier(TableIdentifier tableIdentifier) |
java.util.List<Namespace> |
listNamespaces(Namespace namespace)
List namespaces from the namespace.
|
java.util.List<TableIdentifier> |
listTables(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.
|
protected TableOperations |
newTableOps(TableIdentifier tableIdentifier) |
boolean |
removeProperties(Namespace namespace,
java.util.Set<java.lang.String> properties)
Remove a set of metadata from a namespace in the catalog.
|
void |
renameTable(TableIdentifier from,
TableIdentifier to)
Rename table in Glue is a drop table and create table.
|
void |
setConf(org.apache.hadoop.conf.Configuration conf) |
boolean |
setProperties(Namespace namespace,
java.util.Map<java.lang.String,java.lang.String> properties)
Apply a set of metadata to a namespace in the catalog.
|
buildTable, createTable, fullTableName, loadTable, newCreateTableTransaction, newReplaceTableTransaction, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
createNamespace, listNamespaces, namespaceExists
createTable, createTable, createTable, dropTable, newCreateTableTransaction, newCreateTableTransaction, newCreateTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, newReplaceTableTransaction, tableExists
public GlueCatalog()
All fields are initialized by calling initialize(String, Map)
later.
public void initialize(java.lang.String name, java.util.Map<java.lang.String,java.lang.String> properties)
Catalog
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.
initialize
in interface Catalog
name
- a custom name for the catalogproperties
- catalog propertiesprotected TableOperations newTableOps(TableIdentifier tableIdentifier)
newTableOps
in class BaseMetastoreCatalog
protected java.lang.String defaultWarehouseLocation(TableIdentifier tableIdentifier)
defaultWarehouseLocation
in class BaseMetastoreCatalog
tableIdentifier
- table idpublic java.util.List<TableIdentifier> listTables(Namespace namespace)
Catalog
listTables
in interface Catalog
namespace
- a namespacepublic boolean dropTable(TableIdentifier identifier, boolean purge)
Catalog
If purge is set to true the implementation should delete all data and metadata files.
public void renameTable(TableIdentifier from, TableIdentifier to)
renameTable
in interface Catalog
from
- identifier of the table to renameto
- new table namepublic void createNamespace(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> metadata)
SupportsNamespaces
createNamespace
in interface SupportsNamespaces
namespace
- a multi-part namespacemetadata
- a string Map of properties for the given namespacepublic java.util.List<Namespace> listNamespaces(Namespace namespace) throws NoSuchNamespaceException
SupportsNamespaces
For example, if table a.b.t exists, use 'SELECT NAMESPACE IN a' this method
must return Namepace.of("a","b") Namespace
.
listNamespaces
in interface SupportsNamespaces
Namespace
namesNoSuchNamespaceException
- If the namespace does not exist (optional)public java.util.Map<java.lang.String,java.lang.String> loadNamespaceMetadata(Namespace namespace) throws NoSuchNamespaceException
SupportsNamespaces
loadNamespaceMetadata
in interface SupportsNamespaces
namespace
- a namespace. Namespace
NoSuchNamespaceException
- If the namespace does not exist (optional)public boolean dropNamespace(Namespace namespace) throws NamespaceNotEmptyException
SupportsNamespaces
dropNamespace
in interface SupportsNamespaces
namespace
- a namespace. Namespace
NamespaceNotEmptyException
- If the namespace does not emptypublic boolean setProperties(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> properties) throws NoSuchNamespaceException
SupportsNamespaces
setProperties
in interface SupportsNamespaces
namespace
- a namespace. Namespace
properties
- 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
SupportsNamespaces
removeProperties
in interface SupportsNamespaces
namespace
- a namespace. Namespace
properties
- a collection of metadata to apply to the namespaceNoSuchNamespaceException
- If the namespace does not exist (optional)protected boolean isValidIdentifier(TableIdentifier tableIdentifier)
isValidIdentifier
in class BaseMetastoreCatalog
public java.lang.String name()
Catalog
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
java.io.IOException
public void setConf(org.apache.hadoop.conf.Configuration conf)
setConf
in interface org.apache.hadoop.conf.Configurable
public org.apache.hadoop.conf.Configuration getConf()
getConf
in interface org.apache.hadoop.conf.Configurable