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 не поддерживает:
Делегирование доступа через механизм
vended-credentials
Делегирование доступа через механизм
remote-signing
Сбор метрик (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 для S3X-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.