Delta Lake catalog
Delta Lake catalog — это разновидность внешнего каталога, который позволяет выполнять запросы к данным Delta Lake без их загрузки.
Также вы можете напрямую трансформировать и загружать данные из Delta Lake с помощью INSERT INTO на основе каталогов Delta Lake. Selena под держивает каталоги Delta Lake начиная с версии v1.5.2.
Чтобы обеспечить успешное выполнение SQL-запросов в вашем cluster Delta Lake, ваш cluster Selena должен иметь доступ к системе хранения и metastore вашего cluster Delta Lake. Selena поддерживает следующие системы хранения и metastore:
-
Распределённая файловая система (HDFS) или объектное хранилище, такое как AWS S3, Microsoft Azure Storage, Google GCS или другие S3-совместимые системы хранения (например, MinIO)
-
Metastore, такой как Hive metastore или AWS Glue
Если вы выбрали AWS S3 в качестве хранилища, вы можете использовать HMS или AWS Glue в качестве metastore. Если вы выбрали любую другую систему хранения, вы можете использовать только HMS в качестве metastore.
Примечания по использованию
- Формат файлов Delta Lake, который поддерживает Selena — это Parquet. Файлы Parquet поддерживают следующие форматы сжатия: SNAPPY, LZ4, ZSTD, GZIP и NO_COMPRESSION.
- Типы данных Delta Lake, которые Selena не поддерживает — это MAP и STRUCT.
Подготовка к интеграции
Перед созданием Delta Lake catalog убедитесь, что ваш cluster Selena может интегрироваться с системой хранения и metastore вашего cluster Delta Lake.
AWS IAM
Если ваш cluster Delta Lake использует AWS S3 в качестве хранилища или AWS Glue в качестве metastore, выберите подходящий метод аутентификации и выполните необходимую подготовку, чтобы убедиться, что ваш cluster Selena м ожет получить доступ к соответствующим облачным ресурсам AWS.
Рекомендуются следующие методы аутентификации:
- Instance profile
- Assumed role
- IAM user
Из трёх вышеупомянутых методов аутентификации наиболее широко используется instance profile.
Для получения дополнительной информации см. Подготовка к аутентификации в AWS IAM.
HDFS
Если вы выбираете HDFS в качестве хранилища, настройте ваш cluster Selena следующим образом:
-
(Опционально) Установите имя пользователя, которое используется для доступа к вашему cluster HDFS и Hive metastore. По умолчанию Selena использует имя пользователя процессов FE и BE или CN для доступа к вашему cluster 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, чтобы настройки параметров вступили в силу. Вы можете установить только одно имя пользователя для каждого cluster Selena. -
При запросе данных Delta Lake узлы FE и BE или CN вашего cluster Selena используют HDFS-клиент для доступа к вашему cluster HDFS. В большинстве случаев вам не нужно настраивать ваш cluster Selena для достижения этой цели, и Selena запускает HDFS-клиент с использованием настроек по умолчанию. Вам нужно настроить ваш cluster Selena только в следующих ситуациях:
- Для вашего cluster HDFS включена высокая доступность (HA): Добавьте файл hdfs-site.xml вашего cluster HDFS в путь $FE_HOME/conf каждого FE и в путь $BE_HOME/conf каждого BE или путь $CN_HOME/conf каждого CN.
- Для вашего cluster HDFS включена View File System (ViewFs): Добавьте файл core-site.xml вашего cluster HDFS в путь $FE_HOME/conf каждого FE и в путь $BE_HOME/conf каждого BE или путь $CN_HOME/conf каждого CN.
примечаниеЕсли при отправке запроса возвращается ошибка, указывающая на неизвестный хост, вы должны добавить сопоставление между именами хостов и IP-адресами узлов вашего cluster HDFS в путь /etc/hosts.
Аутентификация Kerberos
Если для вашего cluster HDFS или Hive metastore включена аутентификация Kerberos, настройте ваш cluster Selena следующим образом:
- Выполните команду
kinit -kt keytab_path principalна каждом FE и каждом BE или CN, чтобы получить Ticket Granting Ticket (TGT) от Key Distribution Center (KDC). Для выполнения этой команды у вас должны быть разрешения на доступ к вашему cluster HDFS и Hive metastore. Обратите внимание, что доступ к KDC с помощью этой команды зависит от времени. Поэтому вам нужно использовать cron для периодического выполнения этой команды. - Добавьте
JAVA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf"в файл $FE_HOME/conf/fe.conf каждого FE и в файл $BE_HOME/conf/be.conf каждого BE или файл $CN_HOME/conf/cn.conf каждого CN. В этом примере/etc/krb5.confявляется путём сохранения файла krb5.conf. Вы можете изменить путь в соответствии с вашими потребностями.
Создание Delta Lake catalog
Синтаксис
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "deltalake",
MetastoreParams,
StorageCredentialParams,
MetadataUpdateParams
)
Параметры
catalog_name
Имя Delta Lake catalog. Соглашения об именовании следующие:
- Имя может содержать буквы, цифры (0-9) и символы подчёркивания (_). Оно должно начинаться с буквы.
- Имя чувствительно к регистру и не может превышать 1023 символа в длину.
comment
Описание Delta Lake catalog. Этот параметр является опциональным.
type
Тип вашего источника данных. Установите значение deltalake.
MetastoreParams
Набор параметров о том, как Selena интегрируется с metastore вашего источника данных.