Class NessieCatalog

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, org.apache.iceberg.catalog.Catalog, org.apache.iceberg.catalog.SupportsNamespaces, org.apache.iceberg.catalog.ViewCatalog, org.apache.iceberg.hadoop.Configurable<java.lang.Object>

    public class NessieCatalog
    extends org.apache.iceberg.view.BaseMetastoreViewCatalog
    implements org.apache.iceberg.catalog.SupportsNamespaces, org.apache.iceberg.hadoop.Configurable<java.lang.Object>
    Nessie implementation of Iceberg Catalog.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.apache.iceberg.view.BaseMetastoreViewCatalog

        org.apache.iceberg.view.BaseMetastoreViewCatalog.BaseMetastoreViewCatalogTableBuilder, org.apache.iceberg.view.BaseMetastoreViewCatalog.BaseViewBuilder
      • 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
      NessieCatalog()  
    • Method Summary

      All 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)  
      protected java.lang.String defaultWarehouseLocation​(org.apache.iceberg.catalog.TableIdentifier table)  
      boolean dropNamespace​(org.apache.iceberg.catalog.Namespace namespace)  
      boolean dropTable​(org.apache.iceberg.catalog.TableIdentifier identifier, boolean purge)  
      boolean dropView​(org.apache.iceberg.catalog.TableIdentifier identifier)  
      void initialize​(java.lang.String name, java.util.Map<java.lang.String,​java.lang.String> options)  
      void initialize​(java.lang.String name, NessieIcebergClient client, org.apache.iceberg.io.FileIO fileIO, java.util.Map<java.lang.String,​java.lang.String> catalogOptions)
      An alternative way to initialize the catalog using a pre-configured NessieIcebergClient and FileIO instance.
      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.List<org.apache.iceberg.catalog.TableIdentifier> listViews​(org.apache.iceberg.catalog.Namespace namespace)  
      java.util.Map<java.lang.String,​java.lang.String> loadNamespaceMetadata​(org.apache.iceberg.catalog.Namespace namespace)
      Load the given namespace and return its properties.
      java.lang.String name()  
      protected org.apache.iceberg.TableOperations newTableOps​(org.apache.iceberg.catalog.TableIdentifier tableIdentifier)  
      protected org.apache.iceberg.view.ViewOperations newViewOps​(org.apache.iceberg.catalog.TableIdentifier identifier)  
      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 renameView​(org.apache.iceberg.catalog.TableIdentifier from, org.apache.iceberg.catalog.TableIdentifier to)  
      void setConf​(java.lang.Object 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.view.BaseMetastoreViewCatalog

        buildTable, buildView, loadView
      • Methods inherited from class org.apache.iceberg.BaseMetastoreCatalog

        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
      • Methods inherited from interface org.apache.iceberg.catalog.ViewCatalog

        invalidateView, viewExists
    • Constructor Detail

      • NessieCatalog

        public NessieCatalog()
    • Method Detail

      • initialize

        public void initialize​(java.lang.String name,
                               java.util.Map<java.lang.String,​java.lang.String> options)
        Specified by:
        initialize in interface org.apache.iceberg.catalog.Catalog
        Specified by:
        initialize in interface org.apache.iceberg.catalog.ViewCatalog
        Overrides:
        initialize in class org.apache.iceberg.view.BaseMetastoreViewCatalog
      • initialize

        public void initialize​(java.lang.String name,
                               NessieIcebergClient client,
                               org.apache.iceberg.io.FileIO fileIO,
                               java.util.Map<java.lang.String,​java.lang.String> catalogOptions)
        An alternative way to initialize the catalog using a pre-configured NessieIcebergClient and FileIO instance.
        Parameters:
        name - The name of the catalog, defaults to "nessie" if null
        client - The pre-configured NessieIcebergClient instance to use
        fileIO - The FileIO instance to use
        catalogOptions - The catalog options to use
      • 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
      • name

        public java.lang.String name()
        Specified by:
        name in interface org.apache.iceberg.catalog.Catalog
        Specified by:
        name in interface org.apache.iceberg.catalog.ViewCatalog
        Overrides:
        name in class org.apache.iceberg.view.BaseMetastoreViewCatalog
      • 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 table)
        Specified by:
        defaultWarehouseLocation in class org.apache.iceberg.BaseMetastoreCatalog
      • 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
      • 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
        Load the given namespace and return its properties.
        Specified by:
        loadNamespaceMetadata in interface org.apache.iceberg.catalog.SupportsNamespaces
        Parameters:
        namespace - a namespace. Namespace
        Returns:
        a string map of properties for the given namespace
        Throws:
        org.apache.iceberg.exceptions.NoSuchNamespaceException - If the namespace does not exist
      • 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)
        Specified by:
        setProperties in interface org.apache.iceberg.catalog.SupportsNamespaces
      • removeProperties

        public boolean removeProperties​(org.apache.iceberg.catalog.Namespace namespace,
                                        java.util.Set<java.lang.String> properties)
        Specified by:
        removeProperties in interface org.apache.iceberg.catalog.SupportsNamespaces
      • setConf

        public void setConf​(java.lang.Object conf)
        Specified by:
        setConf in interface org.apache.iceberg.hadoop.Configurable<java.lang.Object>
      • properties

        protected java.util.Map<java.lang.String,​java.lang.String> properties()
        Overrides:
        properties in class org.apache.iceberg.BaseMetastoreCatalog
      • newViewOps

        protected org.apache.iceberg.view.ViewOperations newViewOps​(org.apache.iceberg.catalog.TableIdentifier identifier)
        Specified by:
        newViewOps in class org.apache.iceberg.view.BaseMetastoreViewCatalog
      • listViews

        public java.util.List<org.apache.iceberg.catalog.TableIdentifier> listViews​(org.apache.iceberg.catalog.Namespace namespace)
        Specified by:
        listViews in interface org.apache.iceberg.catalog.ViewCatalog
      • dropView

        public boolean dropView​(org.apache.iceberg.catalog.TableIdentifier identifier)
        Specified by:
        dropView in interface org.apache.iceberg.catalog.ViewCatalog
      • renameView

        public void renameView​(org.apache.iceberg.catalog.TableIdentifier from,
                               org.apache.iceberg.catalog.TableIdentifier to)
        Specified by:
        renameView in interface org.apache.iceberg.catalog.ViewCatalog