Package org.apache.iceberg.aws.glue
Class GlueCatalog
- java.lang.Object
-
- org.apache.iceberg.BaseMetastoreCatalog
-
- org.apache.iceberg.aws.glue.GlueCatalog
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,org.apache.iceberg.catalog.Catalog,org.apache.iceberg.catalog.SupportsNamespaces,org.apache.iceberg.hadoop.Configurable<org.apache.hadoop.conf.Configuration>
public class GlueCatalog extends org.apache.iceberg.BaseMetastoreCatalog implements org.apache.iceberg.catalog.SupportsNamespaces, org.apache.iceberg.hadoop.Configurable<org.apache.hadoop.conf.Configuration>
-
-
Constructor Summary
Constructors Constructor Description GlueCatalog()No-arg constructor to load the catalog dynamically.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voidcreateNamespace(org.apache.iceberg.catalog.Namespace namespace, java.util.Map<java.lang.String,java.lang.String> metadata)protected java.lang.StringdefaultWarehouseLocation(org.apache.iceberg.catalog.TableIdentifier tableIdentifier)This method produces the same result as using a HiveCatalog.booleandropNamespace(org.apache.iceberg.catalog.Namespace namespace)booleandropTable(org.apache.iceberg.catalog.TableIdentifier identifier, boolean purge)voidinitialize(java.lang.String name, java.util.Map<java.lang.String,java.lang.String> properties)protected booleanisValidIdentifier(org.apache.iceberg.catalog.TableIdentifier tableIdentifier)java.util.List<org.apache.iceberg.catalog.Namespace>listNamespaces(org.apache.iceberg.catalog.Namespace namespace)java.util.List<org.apache.iceberg.catalog.TableIdentifier>listTables(org.apache.iceberg.catalog.Namespace namespace)java.util.Map<java.lang.String,java.lang.String>loadNamespaceMetadata(org.apache.iceberg.catalog.Namespace namespace)java.lang.Stringname()protected org.apache.iceberg.TableOperationsnewTableOps(org.apache.iceberg.catalog.TableIdentifier tableIdentifier)protected java.util.Map<java.lang.String,java.lang.String>properties()booleanremoveProperties(org.apache.iceberg.catalog.Namespace namespace, java.util.Set<java.lang.String> properties)voidrenameTable(org.apache.iceberg.catalog.TableIdentifier from, org.apache.iceberg.catalog.TableIdentifier to)Rename table in Glue is a drop table and create table.voidsetConf(org.apache.hadoop.conf.Configuration conf)booleansetProperties(org.apache.iceberg.catalog.Namespace namespace, java.util.Map<java.lang.String,java.lang.String> properties)-
Methods inherited from class org.apache.iceberg.BaseMetastoreCatalog
buildTable, fullTableName, loadTable, metricsReporter, registerTable, toString
-
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
-
-
-
-
Constructor Detail
-
GlueCatalog
public GlueCatalog()
No-arg constructor to load the catalog dynamically.All fields are initialized by calling
initialize(String, Map)later.
-
-
Method Detail
-
initialize
public void initialize(java.lang.String name, java.util.Map<java.lang.String,java.lang.String> properties)- Specified by:
initializein interfaceorg.apache.iceberg.catalog.Catalog
-
newTableOps
protected org.apache.iceberg.TableOperations newTableOps(org.apache.iceberg.catalog.TableIdentifier tableIdentifier)
- Specified by:
newTableOpsin classorg.apache.iceberg.BaseMetastoreCatalog
-
defaultWarehouseLocation
protected java.lang.String defaultWarehouseLocation(org.apache.iceberg.catalog.TableIdentifier tableIdentifier)
This method produces the same result as using a HiveCatalog. If databaseUri exists for the Glue database URI, the default location is databaseUri/tableName. If not, the default location is warehousePath/databaseName.db/tableName- Specified by:
defaultWarehouseLocationin classorg.apache.iceberg.BaseMetastoreCatalog- Parameters:
tableIdentifier- table id- Returns:
- default warehouse path
-
listTables
public java.util.List<org.apache.iceberg.catalog.TableIdentifier> listTables(org.apache.iceberg.catalog.Namespace namespace)
- Specified by:
listTablesin interfaceorg.apache.iceberg.catalog.Catalog
-
dropTable
public boolean dropTable(org.apache.iceberg.catalog.TableIdentifier identifier, boolean purge)- Specified by:
dropTablein interfaceorg.apache.iceberg.catalog.Catalog
-
renameTable
public void renameTable(org.apache.iceberg.catalog.TableIdentifier from, org.apache.iceberg.catalog.TableIdentifier to)Rename table in Glue is a drop table and create table.- Specified by:
renameTablein interfaceorg.apache.iceberg.catalog.Catalog- Parameters:
from- identifier of the table to renameto- new table name
-
createNamespace
public void createNamespace(org.apache.iceberg.catalog.Namespace namespace, java.util.Map<java.lang.String,java.lang.String> metadata)- Specified by:
createNamespacein interfaceorg.apache.iceberg.catalog.SupportsNamespaces
-
listNamespaces
public java.util.List<org.apache.iceberg.catalog.Namespace> listNamespaces(org.apache.iceberg.catalog.Namespace namespace) throws org.apache.iceberg.exceptions.NoSuchNamespaceException- Specified by:
listNamespacesin interfaceorg.apache.iceberg.catalog.SupportsNamespaces- Throws:
org.apache.iceberg.exceptions.NoSuchNamespaceException
-
loadNamespaceMetadata
public java.util.Map<java.lang.String,java.lang.String> loadNamespaceMetadata(org.apache.iceberg.catalog.Namespace namespace) throws org.apache.iceberg.exceptions.NoSuchNamespaceException- Specified by:
loadNamespaceMetadatain interfaceorg.apache.iceberg.catalog.SupportsNamespaces- Throws:
org.apache.iceberg.exceptions.NoSuchNamespaceException
-
dropNamespace
public boolean dropNamespace(org.apache.iceberg.catalog.Namespace namespace) throws org.apache.iceberg.exceptions.NamespaceNotEmptyException- Specified by:
dropNamespacein interfaceorg.apache.iceberg.catalog.SupportsNamespaces- Throws:
org.apache.iceberg.exceptions.NamespaceNotEmptyException
-
setProperties
public boolean setProperties(org.apache.iceberg.catalog.Namespace namespace, java.util.Map<java.lang.String,java.lang.String> properties) throws org.apache.iceberg.exceptions.NoSuchNamespaceException- Specified by:
setPropertiesin interfaceorg.apache.iceberg.catalog.SupportsNamespaces- Throws:
org.apache.iceberg.exceptions.NoSuchNamespaceException
-
removeProperties
public boolean removeProperties(org.apache.iceberg.catalog.Namespace namespace, java.util.Set<java.lang.String> properties) throws org.apache.iceberg.exceptions.NoSuchNamespaceException- Specified by:
removePropertiesin interfaceorg.apache.iceberg.catalog.SupportsNamespaces- Throws:
org.apache.iceberg.exceptions.NoSuchNamespaceException
-
isValidIdentifier
protected boolean isValidIdentifier(org.apache.iceberg.catalog.TableIdentifier tableIdentifier)
- Overrides:
isValidIdentifierin classorg.apache.iceberg.BaseMetastoreCatalog
-
name
public java.lang.String name()
- Specified by:
namein interfaceorg.apache.iceberg.catalog.Catalog
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classorg.apache.iceberg.BaseMetastoreCatalog- Throws:
java.io.IOException
-
setConf
public void setConf(org.apache.hadoop.conf.Configuration conf)
- Specified by:
setConfin interfaceorg.apache.iceberg.hadoop.Configurable<org.apache.hadoop.conf.Configuration>
-
properties
protected java.util.Map<java.lang.String,java.lang.String> properties()
- Overrides:
propertiesin classorg.apache.iceberg.BaseMetastoreCatalog
-
-