Class DynamoDbCatalog

java.lang.Object
org.apache.iceberg.BaseMetastoreCatalog
org.apache.iceberg.aws.dynamodb.DynamoDbCatalog
All Implemented Interfaces:
Closeable, AutoCloseable, org.apache.hadoop.conf.Configurable, org.apache.iceberg.catalog.Catalog, org.apache.iceberg.catalog.SupportsNamespaces

public class DynamoDbCatalog extends org.apache.iceberg.BaseMetastoreCatalog implements org.apache.iceberg.catalog.SupportsNamespaces, org.apache.hadoop.conf.Configurable
DynamoDB implementation of Iceberg catalog
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.apache.iceberg.BaseMetastoreCatalog

    org.apache.iceberg.BaseMetastoreCatalog.BaseMetastoreCatalogTableBuilder

    Nested classes/interfaces inherited from interface org.apache.iceberg.catalog.Catalog

    org.apache.iceberg.catalog.Catalog.TableBuilder
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    void
    createNamespace(org.apache.iceberg.catalog.Namespace namespace, Map<String,String> metadata)
     
    static String
    The property used to set a default location for tables in a namespace.
    protected String
    defaultWarehouseLocation(org.apache.iceberg.catalog.TableIdentifier tableIdentifier)
     
    boolean
    dropNamespace(org.apache.iceberg.catalog.Namespace namespace)
     
    boolean
    dropTable(org.apache.iceberg.catalog.TableIdentifier identifier, boolean purge)
     
    org.apache.hadoop.conf.Configuration
     
    void
    initialize(String name, Map<String,String> properties)
     
    List<org.apache.iceberg.catalog.Namespace>
    listNamespaces(org.apache.iceberg.catalog.Namespace namespace)
     
    List<org.apache.iceberg.catalog.TableIdentifier>
    listTables(org.apache.iceberg.catalog.Namespace namespace)
     
    loadNamespaceMetadata(org.apache.iceberg.catalog.Namespace namespace)
     
     
    protected org.apache.iceberg.TableOperations
    newTableOps(org.apache.iceberg.catalog.TableIdentifier tableIdentifier)
     
    protected Map<String,String>
     
    boolean
    removeProperties(org.apache.iceberg.catalog.Namespace namespace, Set<String> properties)
     
    void
    renameTable(org.apache.iceberg.catalog.TableIdentifier from, org.apache.iceberg.catalog.TableIdentifier to)
     
    void
    setConf(org.apache.hadoop.conf.Configuration conf)
     
    boolean
    setProperties(org.apache.iceberg.catalog.Namespace namespace, Map<String,String> properties)
     

    Methods inherited from class org.apache.iceberg.BaseMetastoreCatalog

    buildTable, fullTableName, isValidIdentifier, isValidMetadataIdentifier, 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, registerTable, tableExists

    Methods inherited from interface org.apache.iceberg.catalog.SupportsNamespaces

    createNamespace, listNamespaces, namespaceExists
  • Constructor Details

    • DynamoDbCatalog

      public DynamoDbCatalog()
  • Method Details

    • initialize

      public void initialize(String name, Map<String,String> properties)
      Specified by:
      initialize in interface org.apache.iceberg.catalog.Catalog
    • name

      public String name()
      Specified by:
      name in interface org.apache.iceberg.catalog.Catalog
    • newTableOps

      protected org.apache.iceberg.TableOperations newTableOps(org.apache.iceberg.catalog.TableIdentifier tableIdentifier)
      Specified by:
      newTableOps in class org.apache.iceberg.BaseMetastoreCatalog
    • defaultWarehouseLocation

      protected String defaultWarehouseLocation(org.apache.iceberg.catalog.TableIdentifier tableIdentifier)
      Specified by:
      defaultWarehouseLocation in class org.apache.iceberg.BaseMetastoreCatalog
    • createNamespace

      public void createNamespace(org.apache.iceberg.catalog.Namespace namespace, Map<String,String> metadata)
      Specified by:
      createNamespace in interface org.apache.iceberg.catalog.SupportsNamespaces
    • listNamespaces

      public List<org.apache.iceberg.catalog.Namespace> listNamespaces(org.apache.iceberg.catalog.Namespace namespace) throws org.apache.iceberg.exceptions.NoSuchNamespaceException
      Specified by:
      listNamespaces in interface org.apache.iceberg.catalog.SupportsNamespaces
      Throws:
      org.apache.iceberg.exceptions.NoSuchNamespaceException
    • loadNamespaceMetadata

      public Map<String,String> loadNamespaceMetadata(org.apache.iceberg.catalog.Namespace namespace) throws org.apache.iceberg.exceptions.NoSuchNamespaceException
      Specified by:
      loadNamespaceMetadata in interface org.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:
      dropNamespace in interface org.apache.iceberg.catalog.SupportsNamespaces
      Throws:
      org.apache.iceberg.exceptions.NamespaceNotEmptyException
    • setProperties

      public boolean setProperties(org.apache.iceberg.catalog.Namespace namespace, Map<String,String> properties) throws org.apache.iceberg.exceptions.NoSuchNamespaceException
      Specified by:
      setProperties in interface org.apache.iceberg.catalog.SupportsNamespaces
      Throws:
      org.apache.iceberg.exceptions.NoSuchNamespaceException
    • removeProperties

      public boolean removeProperties(org.apache.iceberg.catalog.Namespace namespace, Set<String> properties) throws org.apache.iceberg.exceptions.NoSuchNamespaceException
      Specified by:
      removeProperties in interface org.apache.iceberg.catalog.SupportsNamespaces
      Throws:
      org.apache.iceberg.exceptions.NoSuchNamespaceException
    • listTables

      public List<org.apache.iceberg.catalog.TableIdentifier> listTables(org.apache.iceberg.catalog.Namespace namespace)
      Specified by:
      listTables in interface org.apache.iceberg.catalog.Catalog
    • dropTable

      public boolean dropTable(org.apache.iceberg.catalog.TableIdentifier identifier, boolean purge)
      Specified by:
      dropTable in interface org.apache.iceberg.catalog.Catalog
    • renameTable

      public void renameTable(org.apache.iceberg.catalog.TableIdentifier from, org.apache.iceberg.catalog.TableIdentifier to)
      Specified by:
      renameTable in interface org.apache.iceberg.catalog.Catalog
    • setConf

      public void setConf(org.apache.hadoop.conf.Configuration conf)
      Specified by:
      setConf in interface org.apache.hadoop.conf.Configurable
    • getConf

      public org.apache.hadoop.conf.Configuration getConf()
      Specified by:
      getConf in interface org.apache.hadoop.conf.Configurable
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class org.apache.iceberg.BaseMetastoreCatalog
      Throws:
      IOException
    • defaultLocationProperty

      public static String defaultLocationProperty()
      The property used to set a default location for tables in a namespace. Call setProperties(Namespace, Map) to set a path value using this property for a namespace, then all tables in the namespace will have default table root path under that given path.
      Returns:
      default location property key
    • properties

      protected Map<String,String> properties()
      Overrides:
      properties in class org.apache.iceberg.BaseMetastoreCatalog