Iceberg catalog
Для быстрого старта с Selena см. раздел Быстрый старт.
Iceberg catalog — это тип external catalog, который поддерживается Selena начиная с версии 1.5.0. С помощью Iceberg catalogs вы можете:
- Напрямую запрашивать данные, хранящиеся в Iceberg, без необходимости вручную создавать таблицы.
- Использовать INSERT INTO или асинхронные материализованные представления (которые поддерживаются начиная с v1.5.2) для обработки данных, хранящихся в Iceberg, и загрузки данных в Selena.
- Выполнять операции в Selena для создания или удаления баз данных и таблиц Iceberg, или выгружать данные из таблиц Selena в таблицы Iceberg в формате Parquet с помощью INSERT INTO (эта функция поддерживается начиная с v1.5.2).
Чтобы обеспечить успешное выполнение SQL-запросов в вашем кластере Iceberg, ваш кластер Selena должен иметь доступ к системе хранения и metastore вашего кластера Iceberg. Selena поддерживает следующие системы хранения и metastore:
-
Распр еделенная файловая система (HDFS) или объектное хранилище, такое как AWS S3, Microsoft Azure Storage, Google GCS или другая S3-совместимая система хранения (например, MinIO)
-
Metastore, такой как Hive metastore, AWS Glue или Tabular
- Если вы выбираете AWS S3 в качестве хранилища, вы можете использовать HMS или AWS Glue в качестве metastore. Если вы выбираете любую другую систему хранения, вы можете использовать только HMS в качестве metastore.
- Если вы выбираете Tabular в качестве metastore, вам необходимо использовать Iceberg REST catalog.
Примечания по использованию
Обратите внимание на следующие моменты при использовании Selena для запроса данных из Iceberg:
| Формат файла | Формат сжатия | Версия таблицы Iceberg |
|---|---|---|
| Parquet | SNAPPY, LZ4, ZSTD, GZIP, и NO_COMPRESSION |
|
| ORC | ZLIB, SNAPPY, LZO, LZ4, ZSTD, и NO_COMPRESSION |
|
Подготовка к интеграции
Перед созданием Iceberg catalog убедитесь, что ваш кластер Selena может интегрирова ться с системой хранения и metastore вашего кластера Iceberg.
Хранилище
Выберите вкладку, соответствующую вашему типу хранилища:
- AWS S3
- HDFS
Если ваш кластер Iceberg использует AWS S3 в качестве хранилища или AWS Glue в качестве metastore, выберите подходящий метод аутентификации и выполните необходимые приготовления, чтобы обеспечить доступ вашего кластера Selena к соответствующим облачным ресурсам AWS.
Рекомендуются следующие методы аутентификации:
- Instance profile
- Assumed role
- IAM user
Из вышеупомянутых трех методов аутентификации instance profile используется наиболее широко.
Для получения дополнительной информации см. Подготовка к аутентификации в AWS IAM.
Если вы выбираете HDFS в качестве хранилища, настройте ваш кластер Selena следующим образом:
-
(Опционально) Установите имя пользователя, которое используется для доступа к вашему кластеру HDFS и Hive metastore. По умолчанию Selena использует имя пользователя процессов FE и BE или CN для доступа к вашему кластеру HDFS и Hive metastore. Вы также можете установить имя пользователя, добавив
export HADOOP_USER_NAME="<user_name>"в начало файла fe/conf/hadoop_env.sh каждого FE и в начало файла be/conf/hadoop_env.sh каждого BE или файла cn/conf/hadoop_env.sh каждого CN. После установки имени пользователя в этих файлах перезапустите каждый FE и каждый BE или CN, чтобы настройки параметров вступили в силу. Вы можете установить только одно имя пользователя для каждого кластера Selena. -
При запросе данных Iceberg FE и BE или CN вашего кластера Selena используют клиент HDFS для доступа к вашему кластеру HDFS. В большинстве случаев вам не нужно настраивать ваш кластер Selena для достижения этой цели, и Selena запускает клиент HDFS, используя конфигурации по умолчанию. Вам нужно настроить ваш кластер Selena только в следующих ситуациях:
- Высокая доступность (HA) включена для вашего кластера HDFS: Добавьте файл hdfs-site.xml вашего кластера HDFS в путь $FE_HOME/conf каждого FE и в путь $BE_HOME/conf каждого BE или путь $CN_HOME/conf каждого CN.
- View File System (ViewFs) включена для вашего кластера HDFS: Добавьте файл core-site.xml вашего кластера HDFS в путь $FE_HOME/conf каждого FE и в путь $BE_HOME/conf каждого BE или путь $CN_HOME/conf каждого CN.
Если при отправке запроса возвращается ошибка, указывающая на неизвестный хост, вы должны добавить сопоставление между именами хостов и IP-адресами узлов вашего кластера HDFS в путь /etc/hosts.