Skip to content

Delegated Warehouse

Bases: IcebergWarehouse, FrozenModel

Delegate configuring Iceberg warehouse to Iceberg catalog. |support_hooks|

Used by some Iceberg catalog implementations like:

  • Lakekeeper <https://docs.lakekeeper.io/docs/latest/storage/#s3>_
  • Polaris <https://polaris.apache.org/in-dev/unreleased/polaris-spark-client/>_
  • Apache Gravitino <https://gravitino.apache.org/docs/1.0.0/security/credential-vending/>_
  • Databricks Unity Catalog <https://docs.databricks.com/aws/en/external-access/iceberg#use-iceberg-tables-with-apache-spark>_

.. versionadded:: 0.15.0

Parameters:

  • name (str) –

    Warehouse name/alias, if supported by specific Iceberg catalog

  • access_delegation ('vended-credentials' | 'remote-signing') –

    Value of X-Iceberg-Access-Delegation <https://github.com/apache/iceberg/blob/apache-iceberg-1.10.0/open-api/rest-catalog-open-api.yaml#L1854>_ header.

  • extra (Dict[str, str], default: {} ) –

    Additional configuration parameters

Examples:

.. tabs::

.. code-tab:: python S3 client with vended credentials

    from onetl.connection import Iceberg

    warehouse = Iceberg.DeletatedWarehouse(
        name="my-warehouse",
        access_delegation="vended-credentials",
        # other params passed to S3 client (optional)
        extra={"client.region": "us-east-1"},
    )

.. code-tab:: python S3 client with remote signing

    from onetl.connection import Iceberg

    warehouse = Iceberg.DeletatedWarehouse(
        name="my-warehouse",
        access_delegation="remote-signing",
        # other params passed to S3 client (optional)
        extra={"client.region": "us-east-1"},
    )

get_config()

Return flat dict with warehouse configuration.