Iceberg REST#

CedrusData Catalog реализует протокол Iceberg REST Catalog и позволяет управлять таблицами Iceberg.

В запущенном экземпляре CedrusData Catalog работа по протоколу Iceberg REST Catalog осуществляется по адресу http(s)://host[:port]/catalog/iceberg.

Совместимость#

CedrusData Catalog поддерживает весь функционал прокола Iceberg REST Catalog за исключением нескольких функций, описанных ниже. Вы можете работать со следующими объектами Iceberg: namespace, table и view.

CedrusData Catalog не поддерживает:

  1. Делегирование доступа через механизм vended-credentials

  2. Делегирование доступа через механизм remote-signing

  3. Сбор метрик (metrics reporting)

Расширения#

CedrusData Catalog содержит ряд расширений протокола Iceberg REST.

Передача статических ключей доступа к S3#

CedrusData Catalog позволяет движкам передавать ключи доступа к S3, которые будут использованы каталогом при выполнении операций над объектами Iceberg. Это может быть полезно, когда вы хотите, чтобы пользователи движков выполняли запросы с использованием своих ключей доступа.

Для использования данного функционала сначала необходимо задать свойство файловой системы S3 allow-override=true. Например:

catalog file-system update \
  --file-system-name my_file_system \
  -p allow-override=true

После этого вы можете передавать собственные статические ключи S3, используя следующие HTTP заголовки:

  • X-CedrusData-S3-Access-Key-Override — access key для S3

  • X-CedrusData-S3-Secret-Key-Override — secret key для S3

Способ передачи заголовков зависит от движка.

Apache Spark#

Если вы работаете с Apache Spark, заголовки можно передать через конфигурацию каталога. Например, если в Apache Spark ваш каталог называется my_catalog, то добавьте следующую конфигурацию:

spark.sql.catalog.my_catalog.header.X-CedrusData-S3-Access-Key-Override=<ваш_access_key>
spark.sql.catalog.my_catalog.header.X-CedrusData-S3-Secret-Key-Override=<ваш_secret_key>

CedrusData#

Если вы работаете с CedrusData, ключи можно передать через механизм extra credentials.