Class DynamoDbCatalog

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.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
      DynamoDbCatalog()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      void createNamespace​(org.apache.iceberg.catalog.Namespace namespace, java.util.Map<java.lang.String,​java.lang.String> metadata)  
      static java.lang.String defaultLocationProperty()
      The property used to set a default location for tables in a namespace.
      protected java.lang.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 getConf()  
      void initialize​(java.lang.String name, java.util.Map<java.lang.String,​java.lang.String> properties)  
      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.String name()  
      protected org.apache.iceberg.TableOperations newTableOps​(org.apache.iceberg.catalog.TableIdentifier tableIdentifier)  
      protected java.util.Map<java.lang.String,​java.lang.String> properties()  
      boolean removeProperties​(org.apache.iceberg.catalog.Namespace namespace, java.util.Set<java.lang.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, java.util.Map<java.lang.String,​java.lang.String> properties)  
      • Methods inherited from class org.apache.iceberg.BaseMetastoreCatalog

        buildTable, fullTableName, isValidIdentifier, 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
      • Methods inherited from interface org.apache.iceberg.catalog.SupportsNamespaces

        createNamespace, listNamespaces, namespaceExists
    • Constructor Detail

      • DynamoDbCatalog

        public DynamoDbCatalog()
    • Method Detail

      • initialize

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

        public java.lang.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 java.lang.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,
                                    java.util.Map<java.lang.String,​java.lang.String> metadata)
        Specified by:
        createNamespace in interface org.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:
        listNamespaces in interface org.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:
        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,
                                     java.util.Map<java.lang.String,​java.lang.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,
                                        java.util.Set<java.lang.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 java.util.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 java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class org.apache.iceberg.BaseMetastoreCatalog
        Throws:
        java.io.IOException
      • defaultLocationProperty

        public static java.lang.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 java.util.Map<java.lang.String,​java.lang.String> properties()
        Overrides:
        properties in class org.apache.iceberg.BaseMetastoreCatalog