Перейти к основному содержимому

Поддержка функций: Аналитика озера данных

Начиная с версии 1.5.0, Selena поддерживает управление внешними источниками данных и анализ данных в озерах данных через external catalog.

Этот документ описывает поддержку функций для external catalog и поддерживаемые версии соответствующих функций.

Универсальные функции

В этом разделе перечислены универсальные функции external catalog, включая системы хранения, средства чтения файлов, учетные данные, привилегии и Data Cache.

Внешние системы хранения

Система храненияПоддерживаемая версия
HDFSv2.3+
AWS S3v2.3+
Microsoft Azure Storagev3.0+
Google GCSv3.0+
Alibaba Cloud OSSv3.1+
Huawei Cloud OBSv3.1+
Tencent Cloud COSv3.1+
Volcengine TOSv3.1+
Kingsoft Cloud KS3v3.1+
MinIOv3.1+
Ceph S3v3.1+

В дополнение к встроенной поддержке систем хранения, перечисленных выше, Selena также поддерживает следующие типы сервисов объектного хранения:

  • HDFS-совместимые сервисы объектного хранения, такие как COS Cloud HDFS, OSS-HDFS и OBS PFS
    • Описание: Необходимо указать префикс URI объектного хранения в параметре конфигурации BE fallback_to_hadoop_fs_list и загрузить .jar пакет, предоставленный поставщиком облачных услуг, в каталог /lib/hadoop/hdfs/. Обратите внимание, что вы должны создать external catalog, используя префикс, указанный в fallback_to_hadoop_fs_list.
    • Поддерживаемые версии: v3.1.9+, v3.2.4+
  • S3-совместимые сервисы объектного хранения, отличные от перечисленных выше
    • Описание: Необходимо указать префикс URI объектного хранения в параметре конфигурации BE s3_compatible_fs_list. Обратите внимание, что вы должны создать external catalog, используя префикс, указанный в s3_compatible_fs_list.
    • Поддерживаемые версии: v3.1.9+, v3.2.4+

Форматы сжатия

В этом разделе перечислены только форматы сжатия, поддерживаемые каждым форматом файлов. Для форматов файлов, поддерживаемых каждым external catalog, обратитесь к разделу о соответствующем external catalog.

Формат файлаФорматы сжатия
ParquetNO_COMPRESSION, SNAPPY, LZ4, ZSTD, GZIP, LZO (v3.1.5+)
ORCNO_COMPRESSION, ZLIB, SNAPPY, LZO, LZ4, ZSTD
TextNO_COMPRESSION, LZO (v3.1.5+)
AvroNO_COMPRESSION (v3.2.1+), DEFLATE (v3.2.1+), SNAPPY (v3.2.1+), BZIP2 (v3.2.1+)
RCFileNO_COMPRESSION (v3.2.1+), DEFLATE (v3.2.1+), SNAPPY (v3.2.1+), GZIP (v3.2.1+)
SequenceFileNO_COMPRESSION (v3.2.1+), DEFLATE (v3.2.1+), SNAPPY (v3.2.1+), BZIP2 (v3.2.1+), GZIP (v3.2.1+)
примечание

Форматы файлов Avro, RCFile и SequenceFile читаются через Java Native Interface (JNI) вместо встроенных средств чтения в Selena. Поэтому производительность чтения для этих форматов файлов может быть не такой хорошей, как у Parquet и ORC.

Управление, учетные данные и контроль доступа

ФункцияОписаниеПоддерживаемые версии
Information SchemaПоддерживает Information Schema для external catalog.v3.2+
Контроль доступа к озеру данныхПоддерживает встроенную модель RBAC Selena для external catalog. Вы можете управлять привилегиями баз данных, таблиц и представлений (в настоящее время только представления Hive и Iceberg) в external catalog так же, как и в catalog по умолчанию Selena.v3.0+
Повторное использование внешних сервисов на Apache RangerПоддерживает повторное использование внешнего сервиса (например, Hive Service) на Apache Ranger для контроля доступа.v3.1.9+
Аутентификация KerberosПоддерживает аутентификацию Kerberos для HDFS или Hive Metastore.v2.3+

Data Cache

ФункцияОписаниеПоддерживаемые версии
Data Cache (Block Cache)Начиная с v2.5, Selena поддерживает функцию Data Cache (тогда называемую Block Cache), реализованную с использованием CacheLib, что привело к ограниченному потенциалу оптимизации для ее расширяемости. Начиная с v3.0, Selena переработала реализацию кэша и добавила новые функции в Data Cache, что привело к улучшению производительности с каждой последующей версией.v2.5+
Перебалансировка данных между локальными дискамиПоддерживает стратегию перебалансировки данных для обеспечения того, чтобы перекос данных контролировался в пределах 10%.v3.2+
Замена Block Cache на Data CacheИзменения параметров
Конфигурации BE:
  • Замените block_cache_enable на datacache_enable.
  • Замените block_cache_mem_size на datacache_mem_size.
  • Замените block_cache_disk_size на datacache_disk_size.
  • Замените block_cache_disk_path на datacache_disk_path.
  • Замените block_cache_meta_path на datacache_meta_path.
  • Замените block_cache_block_size на datacache_block_size.
Переменные сессии:
  • Замените enable_scan_block_cache на enable_scan_datacache.
  • Замените enable_populate_block_cache на enable_populate_datacache.
После обновления кластера до версии, где доступен Data Cache, параметры Block Cache по-прежнему действуют. Новые параметры переопределят старые после включения Data Cache. Смешанное использование обеих групп параметров не допускается. В противном случае некоторые параметры не будут действовать.
v3.2+
Новые метрики для API мониторинга Data CacheПоддерживает отдельный API для мониторинга Data Cache, включая емкость кэша и попадания. Вы можете просматривать метрики Data Cache через интерфейс http://${BE_HOST}:${BE_HTTP_PORT}/api/datacache/stat.v3.2.3+
Memory Tracker для Data CacheПоддерживает Memory Tracker для Data Cache. Вы можете просматривать метрики, связанные с памятью, через интерфейс http://${BE_HOST}:${BE_HTTP_PORT}/mem_tracker.v3.1.8+
Предварительная загрузка Data CacheВыполняя CACHE SELECT, вы можете проактивно заполнить кэш желаемыми данными из удаленного хранилища заранее, чтобы предотвратить слишком долгое выполнение первого запроса при получении данных. CACHE SELECT не будет выводить данные или выполнять вычисления. Он только получает данные.v3.3+

Hive Catalog

Метаданные

Поддержка Hive Catalog для Hive Metastore (HMS) и AWS Glue в основном совпадает, за исключением того, что функция автоматического инкрементального обновления для HMS не рекомендуется. В большинстве случаев рекомендуется конфигурация по умолчанию.

Производительность получения метаданных во многом зависит от производительности HMS или HDFS NameNode пользователя. Пожалуйста, учитывайте все факторы и основывайте свое суждение на результатах тестирования.

  • [По умолчанию и рекомендуется] Лучшая производительность с допустимостью несогласованности данных на уровне минут
    • Конфигурация: Вы можете использовать настройку по умолчанию. Данные, обновленные в течение 10 минут (по умолчанию), не видны. Старые данные будут возвращаться запросам в течение этого времени.
    • Преимущество: Лучшая производительность запросов.
    • Недостаток: Несогласованность данных, вызванная задержкой.
    • Поддерживаемые версии: v2.5.5+ (Отключено по умолчанию в v2.5 и включено по умолчанию в v3.0+)
  • Мгновенная видимость вновь загруженных данных (файлов) без ручного обновления
    • Конфигурация: Отключите кэш для метаданных базовых файлов данных, установив свойство catalog enable_remote_file_cache в false.
    • Преимущество: Видимость изменений файлов без задержки.
    • Недостаток: Более низкая производительность при отключенном кэше метаданных файлов. Каждый запрос должен обращаться к списку файлов.
    • Поддерживаемые версии: v2.5.5+
  • Мгновенная видимость изменений разделов без ручного обновления
    • Конфигурация: Отключите кэш для имен разделов Hive, установив свойство catalog enable_cache_list_names в false.
    • Преимущество: Видимость изменений разделов без задержки
    • Недостаток: Более низкая производительность при отключенном кэше имен разделов. Каждый запрос должен обращаться к списку разделов.
    • Поддерживаемые версии: v2.5.5+
подсказка

Если вы требуете обновления данных в реальном времени при изменениях данных, но производительность вашего HMS не оптимизирована, вы можете включить кэш, отключить автоматическое инкрементальное обновление и вручную обновлять метаданные (используя REFRESH EXTERNAL TABLE) через систему планирования всякий раз, когда происходит изменение данных выше по потоку.

Система хранения

ФункцияОписаниеПоддерживаемые версии
Рекурсивный список подкаталоговВключите рекурсивный список подкаталогов, установив свойство catalog enable_recursive_listing в true. Когда рекурсивный список включен, Selena будет читать данные из таблицы и ее разделов, а также из подкаталогов в физических местоположениях таблицы и ее разделов. Эта функция предназначена для решения проблемы многоуровневых вложенных каталогов.v2.5.9+
v3.0.4+ (Отключено по умолчанию в v2.5 и v3.0, и включено по умолчанию в v3.1+)

Форматы файлов и типы данных

Форматы файлов

ФункцияПоддерживаемые форматы файлов
ЧтениеParquet, ORC, TEXT, Avro, RCFile, SequenceFile
ЗаписьParquet (v3.2+), ORC (v3.3+), TEXT (v3.3+)

Типы данных

Типы INTERVAL, BINARY и UNION не поддерживаются.

Таблица Hive в формате TEXT не поддерживает типы MAP и STRUCT.

Представления Hive

Selena поддерживает запросы к представлениям Hive начиная с версии 1.5.0.

Во время выполнения запросов к представлению Hive, Selena попытается разобрать определение представления, используя синтаксис Selena и Trino. Ошибка будет возвращена, если Selena не сможет разобрать определение представления. Существует вероятность того, что Selena не сможет разобрать представления Hive, созданные с функциями, эксклюзивными для Hive или Spark.

Интерфейсы статистики запросов

ФункцияПоддерживаемые версии
Поддерживает SHOW CREATE TABLE для просмотра схемы таблицы Hivev3.0+
Поддерживает ANALYZE для сбора статистикиv3.2+
Поддерживает сбор гистограмм и статистики подполей STRUCTv3.3+

Запись данных

ФункцияПоддерживаемые версииПримечание
CREATE DATABASEv3.2+Вы можете выбрать, указывать ли местоположение для базы данных, созданной в Hive, или нет. Если вы не указываете местоположение для базы данных, вам нужно будет указать местоположение для таблиц, созданных в этой базе данных. В противном случае будет возвращена ошибка. Если вы указали местоположение для базы данных, таблицы без указанного местоположения унаследуют местоположение базы данных. И если вы указали местоположения как для базы данных, так и для таблицы, местоположение таблицы в конечном итоге будет действовать.
CREATE TABLEv3.2+Для разделенных и неразделенных таблиц.
CREATE TABLE AS SELECTv3.2+
INSERT INTO/OVERWRITEv3.2+Для разделенных и неразделенных таблиц.
CREATE TABLE LIKEv3.2.4+
Размер файла записиv3.3+Вы можете определить максимальный размер каждого файла данных для записи, используя переменную сессии connector_sink_target_max_file_size.

Iceberg Catalog

Метаданные

Iceberg Catalog поддерживает HMS, Glue и Tabular в качестве metastore. В большинстве случаев рекомендуется конфигурация по умолчанию.

Обратите внимание, что значение по умолчанию переменной сессии enable_iceberg_metadata_cache было изменено для различных сценариев:

  • С v3.2.1 до v3.2.3 этот параметр установлен в true по умолчанию, независимо от того, какой сервис metastore используется.
  • В v3.2.4 и позже, если кластер Iceberg использует AWS Glue в качестве metastore, этот параметр по-прежнему по умолчанию равен true. Однако, если кластер Iceberg использует другие сервисы metastore, такие как Hive metastore, этот параметр по умолчанию равен false.
  • Начиная с v3.3.0, значение по умолчанию этого параметра снова установлено в true, поскольку Selena поддерживает новую структуру метаданных Iceberg. Iceberg Catalog и Hive Catalog теперь используют один и тот же механизм опроса метаданных и параметр конфигурации FE background_refresh_metadata_interval_millis.
ФункцияПоддерживаемые версии
Распределенный план метаданных (Рекомендуется для сценариев с большим объемом метаданных)v3.3+
Manifest Cache (Рекомендуется для сценариев с небольшим объемом метаданных, но высокими требованиями к задержке)v3.3+

Начиная с v3.3.0, Selena поддерживает политики чтения и кэширования метаданных, описанные выше. Система автоматически настроит выбор политики в соответствии с машинами в вашем кластере. Обычно вам не нужно это изменять. Поскольку кэширование метаданных включено, возможно, что свежесть метаданных может быть скомпрометирована из-за соображений производительности. Поэтому вы можете настроить это в соответствии с вашими конкретными требованиями к запросам:

  • [По умолчанию и рекомендуется] Оптимальная производительность с допустимостью несогласованности данных на уровне минут
    • Настройка: Дополнительная настройка не требуется. По умолчанию данные, обновленные в течение 10 минут, не видны. В течение этого времени запросы будут возвращать старые данные.
    • Преимущества: Лучшая производительность запросов.
    • Недостаток: несогласованность данных, вызванная задержками.
  • Новые файлы данных, созданные импортом, и добавления или удаления разделов видны немедленно, и ручное обновление не требуется
    • Настройка: Установите свойство catalog iceberg_table_cache_ttl_sec в 0, чтобы позволить Selena получать новый снимок для каждого запроса.
    • Преимущества: Изменения файлов и разделов видны без задержки.
    • Недостаток: Более низкая производительность из-за поведения получения снимка для каждого запроса.

Форматы файлов

ФункцияПоддерживаемые форматы файлов
ЧтениеParquet, ORC
ЗаписьParquet
  • Таблицы Iceberg V1 в форматах Parquet и ORC поддерживают position deletes и equality deletes.
  • Таблицы Iceberg V2 в формате ORC поддерживают position deletes с v3.0.0, а в формате Parquet поддерживают position deletes с v3.1.0.
  • Таблицы Iceberg V2 в формате ORC поддерживают equality deletes с v3.1.8 и v3.2.3, а в формате Parquet поддерживают equality deletes с v3.2.5.

Представления Iceberg

Selena поддерживает запросы к представлениям Iceberg начиная с версии 1.5.0. В настоящее время поддерживаются только представления Iceberg, созданные через Selena.

Интерфейсы статистики запросов

ФункцияПоддерживаемые версии
Поддерживает SHOW CREATE TABLE для просмотра схемы таблицы Icebergv3.0+
Поддерживает ANALYZE для сбора статистикиv3.2+
Поддерживает сбор гистограмм и статистики подполей STRUCTv3.3+

Запись данных

ФункцияПоддерживаемые версииПримечание
CREATE DATABASEv3.1+Вы можете выбрать, указывать ли местоположение для базы данных, созданной в Iceberg, или нет. Если вы не указываете местоположение для базы данных, вам нужно будет указать местоположение для таблиц, созданных в этой базе данных. В противном случае будет возвращена ошибка. Если вы указали местоположение для базы данных, таблицы без указанного местоположения унаследуют местоположение базы данных. И если вы указали местоположения как для базы данных, так и для таблицы, местоположение таблицы в конечном итоге будет действовать.
CREATE TABLEv3.1+Для разделенных и неразделенных таблиц.
CREATE TABLE AS SELECTv3.1+
INSERT INTO/OVERWRITEv3.1+Для разделенных и неразделенных таблиц.

Разная поддержка

ФункцияПоддерживаемые версии
Поддерживает чтение форматов разделов типа TIMESTAMP yyyy-MM-ddTHH:mm и yyyy-MM-dd HH:mm.v2.5.19+
v3.1.9+
v3.2.3+

Hudi Catalog

  • Selena поддерживает запросы к данным в формате Parquet в Hudi и поддерживает форматы сжатия SNAPPY, LZ4, ZSTD, GZIP и NO_COMPRESSION для файлов Parquet.
  • Selena полностью поддерживает таблицы Copy On Write (COW) и Merge On Read (MOR) Hudi.
  • Selena поддерживает SHOW CREATE TABLE для просмотра схемы таблицы Hudi начиная с версии 1.5.0.

Delta Lake Catalog

  • Selena поддерживает запросы к данным в формате Parquet в Delta Lake и поддерживает форматы сжатия SNAPPY, LZ4, ZSTD, GZIP и NO_COMPRESSION для файлов Parquet.
  • Selena не поддерживает запросы к данным типов MAP и STRUCT в Delta Lake.
  • Selena поддерживает SHOW CREATE TABLE для просмотра схемы таблицы Delta Lake начиная с версии 1.5.0.
  • В настоящее время catalog Delta Lake поддерживают следующие функции таблиц:
    • V2 Checkpoint (Начиная с v3.3.0)
    • Timestamp without Timezone (Начиная с v3.3.1)
    • Column mapping (Начиная с v3.3.6)
    • Deletion Vector (Начиная с v3.4.1)

JDBC Catalog

Тип catalogПоддерживаемые версии
MySQLv3.0+
PostgreSQLv3.0+
ClickHousev3.3+
Oraclev3.2.9+
SQL Serverv3.2.9+

MySQL

ФункцияПоддерживаемые версии
Кэш метаданныхv3.3+

Соответствие типов данных

MySQLSelenaПоддерживаемые версии
BOOLEANBOOLEANv2.3+
BITBOOLEANv2.3+
SIGNED TINYINTTINYINTv2.3+
UNSIGNED TINYINTSMALLINTv3.0.6+
v3.1.2+
SIGNED SMALLINTSMALLINTv2.3+
UNSIGNED SMALLINTINTv3.0.6+
v3.1.2+
SIGNED INTEGERINTv2.3+
UNSIGNED INTEGERBIGINTv3.0.6+
v3.1.2+
SIGNED BIGINTBIGINTv2.3+
UNSIGNED BIGINTLARGEINTv3.0.6+
v3.1.2+
FLOATFLOATv2.3+
REALFLOATv3.0.1+
DOUBLEDOUBLEv2.3+
DECIMALDECIMAL32v2.3+
CHARVARCHAR(columnsize)v2.3+
VARCHARVARCHARv2.3+
TEXTVARCHAR(columnsize)v3.0.1+
DATEDATEv2.3+
TIMETIMEv3.1.9+
v3.2.4+
TIMESTAMPDATETIMEv2.3+

PostgreSQL

Соответствие типов данных

MySQLSelenaПоддерживаемые версии
BITBOOLEANv2.3+
SMALLINTSMALLINTv2.3+
INTEGERINTv2.3+
BIGINTBIGINTv2.3+
REALFLOATv2.3+
DOUBLEDOUBLEv2.3+
NUMERICDECIMAL32v2.3+
CHARVARCHAR(columnsize)v2.3+
VARCHARVARCHARv2.3+
TEXTVARCHAR(columnsize)v2.3+
DATEDATEv2.3+
TIMESTAMPDATETIMEv2.3+

ClickHouse

Поддерживается начиная с версии 1.5.0.

Oracle

Поддерживается начиная с версии 1.5.0.

SQL Server

Поддерживается начиная с версии 1.5.0.

Elasticsearch Catalog

Elasticsearch Catalog поддерживается начиная с версии 1.5.0.

Paimon Catalog

Paimon Catalog поддерживается начиная с версии 1.5.0.

MaxCompute Catalog

MaxCompute Catalog поддерживается начиная с версии 1.5.0.

Kudu Catalog

Kudu Catalog поддерживается начиная с версии 1.5.0.