public class HadoopCatalog extends BaseMetastoreCatalog implements java.io.Closeable, SupportsNamespaces
Catalog.createTable(org.apache.iceberg.catalog.TableIdentifier, org.apache.iceberg.Schema, org.apache.iceberg.PartitionSpec, java.lang.String, java.util.Map<java.lang.String, java.lang.String>)
,
Catalog.dropTable(org.apache.iceberg.catalog.TableIdentifier)
, the Catalog.renameTable(org.apache.iceberg.catalog.TableIdentifier, org.apache.iceberg.catalog.TableIdentifier)
is not supported yet.
Note: The HadoopCatalog requires that the underlying file system supports atomic rename.Constructor and Description |
---|
HadoopCatalog(org.apache.hadoop.conf.Configuration conf)
The constructor of the HadoopCatalog.
|
HadoopCatalog(org.apache.hadoop.conf.Configuration conf,
java.lang.String warehouseLocation)
The constructor of the HadoopCatalog.
|
HadoopCatalog(java.lang.String name,
org.apache.hadoop.conf.Configuration conf,
java.lang.String warehouseLocation)
The constructor of the HadoopCatalog.
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
createNamespace(Namespace namespace,
java.util.Map<java.lang.String,java.lang.String> meta)
Create a namespace in the catalog.
|
Table |
createTable(TableIdentifier identifier,
Schema schema,
PartitionSpec spec,
java.lang.String location,
java.util.Map<java.lang.String,java.lang.String> properties)
Create a table.
|
protected java.lang.String |
defaultWarehouseLocation(TableIdentifier tableIdentifier) |
boolean |
dropNamespace(Namespace namespace)
Drop a namespace.
|
boolean |
dropTable(TableIdentifier identifier,
boolean purge)
Drop a table; optionally delete data and metadata files.
|
protected boolean |
isValidIdentifier(TableIdentifier identifier) |
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.
|
protected java.lang.String |
name() |
protected TableOperations |
newTableOps(TableIdentifier identifier) |
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 a table.
|
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.
|
dropTableData, 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 HadoopCatalog(java.lang.String name, org.apache.hadoop.conf.Configuration conf, java.lang.String warehouseLocation)
name
- The catalog nameconf
- The Hadoop configurationwarehouseLocation
- The location used as warehouse directorypublic HadoopCatalog(org.apache.hadoop.conf.Configuration conf, java.lang.String warehouseLocation)
conf
- The Hadoop configurationwarehouseLocation
- The location used as warehouse directorypublic HadoopCatalog(org.apache.hadoop.conf.Configuration conf)
fs.defaultFS
property
from the passed Hadoop configuration as its default file system, and use the default directory
iceberg/warehouse
as the warehouse directory.conf
- The Hadoop configurationprotected java.lang.String name()
name
in class BaseMetastoreCatalog
public java.util.List<TableIdentifier> listTables(Namespace namespace)
Catalog
listTables
in interface Catalog
namespace
- a namespacepublic Table createTable(TableIdentifier identifier, Schema schema, PartitionSpec spec, java.lang.String location, java.util.Map<java.lang.String,java.lang.String> properties)
Catalog
createTable
in interface Catalog
createTable
in class BaseMetastoreCatalog
identifier
- a table identifierschema
- a schemaspec
- a partition speclocation
- a location for the table; leave null if unspecifiedproperties
- a string map of table propertiesprotected boolean isValidIdentifier(TableIdentifier identifier)
isValidIdentifier
in class BaseMetastoreCatalog
protected TableOperations newTableOps(TableIdentifier identifier)
newTableOps
in class BaseMetastoreCatalog
protected java.lang.String defaultWarehouseLocation(TableIdentifier tableIdentifier)
defaultWarehouseLocation
in class BaseMetastoreCatalog
public 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)
Catalog
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> meta)
SupportsNamespaces
createNamespace
in interface SupportsNamespaces
namespace
- a multi-part namespacemeta
- a string Map of properties for the given namespacepublic java.util.List<Namespace> listNamespaces(Namespace namespace)
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
namespublic boolean dropNamespace(Namespace namespace)
SupportsNamespaces
dropNamespace
in interface SupportsNamespaces
namespace
- a namespace. Namespace
public boolean setProperties(Namespace namespace, java.util.Map<java.lang.String,java.lang.String> properties)
SupportsNamespaces
setProperties
in interface SupportsNamespaces
namespace
- a namespace. Namespace
properties
- a collection of metadata to apply to the namespacepublic boolean removeProperties(Namespace namespace, java.util.Set<java.lang.String> properties)
SupportsNamespaces
removeProperties
in interface SupportsNamespaces
namespace
- a namespace. Namespace
properties
- a collection of metadata to apply to the namespacepublic java.util.Map<java.lang.String,java.lang.String> loadNamespaceMetadata(Namespace namespace)
SupportsNamespaces
loadNamespaceMetadata
in interface SupportsNamespaces
namespace
- a namespace. Namespace
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
java.io.IOException