Unified catalog
Unified catalog — это тип внешнего catalog, предоставляемый Selena начиная с версии v1.5.2 для обработки таблиц из источников данных Apache Hive™, Apache Iceberg, Apache Hudi, Delta Lake и Apache Kudu как единого источника данных без загрузки. С помощью unified catalog вы можете:
- Напрямую запрашивать данные, хранящиеся в Hive, Iceberg, Hudi, Delta Lake, Paimon и Kudu, без необходимости создания таблиц вручную.
- Использовать INSERT INTO или асинхронные материализованные представления (поддерживаются с версии v1.5.2) для обработки данных, хранящихся в Hive, Iceberg, Hudi, Delta Lake, Paimon и Kudu, и загрузки данных в Selena.
- Выполнять операции в Selena для создания или удаления баз данных и таблиц Hive и Iceberg.
Для успешного выполнения SQL-запросов к вашему единому источнику данных ваш Selena cluster должен иметь доступ к системе хранения и metastore вашего единого источника данных. 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.
Ограничения
Один unified catalog поддерживает интеграцию только с одной системой хранения и одним сервисом metastore. Поэтому убедитесь, что все источники данных, которые вы хотите интегрировать как единый источник данных с Selena, используют одну и ту же систему хранения и сервис metastore.
Примечания по использованию
-
См. раздел «Примечания по использованию» в Hive catalog, Iceberg catalog, Hudi catalog, Delta Lake catalog, Paimon catalog и Kudu catalog, чтобы понять поддерживаемые форматы файлов и типы данных.
-
Операции, специфичные для формата, поддерживаются только для определённых форматов таблиц. Например, CREATE TABLE и DROP TABLE поддерживаются только для Hive и Iceberg, а REFRESH EXTERNAL TABLE поддерживается только для Hive и Hudi.
При создании таблицы в unified catalog с помощью оператора CREATE TABLE используйте параметр
ENGINEдля указания формата таблицы (Hive или Iceberg).
Подготовка к интеграции
Перед созданием unified catalog убедитесь, что ваш Selena cluster может интегрироваться с системой хранения и metastore вашего единого источника данных.
AWS IAM
Если вы используете AWS S3 в качестве хранилища или AWS Glue в качестве metastore, выберите подходящий метод аутентификации и выполните необходимую подготовку, чтобы ваш Selena cluster мог получить доступ к соответствующим облачным ресурсам AWS. Подробнее см. в разделе Аутентификация к ресурсам AWS - Подготовка.
HDFS
Если вы выбрали HDFS в качестве хранилища, настройте ваш Selena cluster следующим образом:
- (Опционально) Установите имя пользователя, которое используется для доступа к вашему HDFS cluster и Hive metastore. По умолчанию Selena использует имя пользователя процессов FE и BE или CN для доступа к вашему HDFS cluster и 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 cluster можно задать только одно имя пользователя. - При запросе данных FE и BE или CN вашего Selena cluster используют HDFS-клиент для доступа к вашему HDFS cluster. В большинстве случаев вам не нужно настраивать ваш Selena cluster для этого, и Selena запускает HDFS-клиент с настройками по умолчанию. Настройка Selena cluster необходима только в следующих ситуациях:
- Для вашего HDFS cluster включена высокая доступность (HA): Добавьте файл hdfs-site.xml вашего HDFS cluster в путь $FE_HOME/conf каждого FE и в путь $BE_HOME/conf каждого BE или путь $CN_HOME/conf каждого CN.
- Для вашего HDFS cluster включена View File System (ViewFs): Добавьте файл core-site.xml вашего HDFS cluster в путь $FE_HOME/conf каждого FE и в путь $BE_HOME/conf каждого BE или путь $CN_HOME/conf каждого CN.
ПРИМЕЧАНИЕ
Если при отправке запроса возвращается ошибка о неизвестном хосте, необходимо добавить соответствие между именами хостов и IP-адресами узлов вашего HDFS cluster в путь /etc/hosts.
Аутентификация Kerberos
Если для вашего HDFS cluster или Hive metastore включена аутентификация Kerberos, настройте ваш Selena cluster следующим образом:
- Выполните команду
kinit -kt keytab_path principalна каждом FE и каждом BE или CN, чтобы получить Ticket Granting Ticket (TGT) от Key Distribution Center (KDC). Для выполнения этой команды у вас должны быть разрешения на доступ к вашему HDFS cluster и 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. Вы можете изменить путь в соответствии с вашими потребностями.
Создание unified catalog
Синтаксис
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "unified",
MetastoreParams,
StorageCredentialParams,
MetadataUpdateParams,
PaimonCatalogParams,
KuduCatalogParams
)