Перейти к основному содержимому
Версия: 2.0.x

Поддержка функций: аналитика Data Lake

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

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

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

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

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

Система храненияПоддерживаемая версия
HDFSv1.5.2+
AWS S3v1.5.2+
Microsoft Azure Storagev1.5.2+
Google GCSv1.5.2+
Alibaba Cloud OSSv1.5.2+
Huawei Cloud OBSv1.5.2+
Tencent Cloud COSv1.5.2+
Volcengine TOSv1.5.2+
Kingsoft Cloud KS3v1.5.2+
MinIOv1.5.2+
Ceph S3v1.5.2+

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

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

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

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

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

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

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

ФункцияОписаниеПоддерживаемые версии
Information SchemaПоддерживает Information Schema для внешних catalog.v1.5.2+
Контроль доступа к Data LakeПоддерживает нативную модель RBAC Selena для внешних catalog. Вы можете управлять привилегиями баз данных, таблиц и представлений (в настоящее время только Hive views и Iceberg views) во внешних catalog так же, как и в default catalog Selena.v1.5.2+
Повторное использование внешних сервисов на Apache RangerПоддерживает повторное использование внешнего сервиса (например, Hive Service) на Apache Ranger для контроля доступа.v1.5.2+
Аутентификация KerberosПоддерживает аутентификацию Kerberos для HDFS или Hive Metastore.v1.5.2+

Data Cache

ФункцияОписаниеПоддерживаемые версии
Data Cache (Block Cache)Начиная с версии v1.5.2, Selena поддерживала функцию Data Cache (тогда называвшуюся Block Cache), реализованную с использованием CacheLib, что приводило к ограниченному потенциалу оптимизации её расширяемости. Начиная с версии v1.5.2, Selena переработала реализацию кэша и добавила новые функции в Data Cache, что привело к улучшению производительности с каждой последующей версией.v1.5.2+
Ребалансировка данных между локальными дискамиПоддерживает стратегию ребалансировки данных для обеспечения контроля перекоса данных в пределах 10%.v1.5.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.
После обновления cluster до версии, где доступен Data Cache, параметры Block Cache по-прежнему действуют. Новые параметры переопределят старые после включения Data Cache. Смешанное использование обеих групп параметров не допускается. В противном случае некоторые параметры не вступят в силу.
v1.5.2+
Новые метрики для API мониторинга Data CacheПоддерживает отдельный API для мониторинга Data Cache, включая ёмкость кэша и попадания. Вы можете просматривать метрики Data Cache через интерфейс http://${BE_HOST}:${BE_HTTP_PORT}/api/datacache/stat.v1.5.2+
Memory Tracker для Data CacheПоддерживает Memory Tracker для Data Cache. Вы можете просматривать метрики, связанные с памятью, через интерфейс http://${BE_HOST}:${BE_HTTP_PORT}/mem_tracker.v1.5.2+
Прогрев Data CacheВыполняя CACHE SELECT, вы можете заранее активно заполнить кэш нужными данными из удалённого хранилища, чтобы первый запрос не занимал слишком много времени на получение данных. CACHE SELECT не выводит данные и не выполняет вычисления. Он только получает данные.v1.5.2+

Hive Catalog

Метаданные

При выполнении запросов к данным Hive через Hive catalog Selena будет кэшировать метаданные таблиц для снижения затрат на частый доступ к удалённому хранилищу. Этот механизм обеспечивает производительность запросов, поддерживая свежесть данных через политику асинхронного обновления и истечения срока действия.

Кэшируемые метаданные

Selena будет кэшировать следующие метаданные во время запросов:

  • Метаданные уровня таблицы или partition

    • Содержимое:
      • Информация о таблице: база данных, схема таблицы, имена столбцов и ключи partition
      • Информация о partition: список partition и расположение partition
    • Влияние: обнаружение существования таблицы (была ли таблица удалена и/или пересоздана)
    • Свойства catalog:
      • enable_metastore_cache: Управляет включением кэша metastore. Значение по умолчанию: true.
      • metastore_cache_refresh_interval_sec: Управляет интервалом времени, в течение которого кэшированные метаданные считаются свежими. Значение по умолчанию: 60. Единица измерения: секунды.
    • Расположение: Metastore (HMS или Glue)
  • Список имён partition

    • Содержимое: Список имён partition, используемый для поиска и отсечения partition. Хотя список имён partition был собран как информация о partition в разделе выше, существует отдельная конфигурация для включения или отключения этой функции в определённых обстоятельствах.
    • Влияние: обнаружение существования partition (появился ли новый partition или partition был удалён и/или пересоздан)
    • Свойства catalog:
      • enable_cache_list_names: Управляет включением кэша списка имён partition. Значение по умолчанию: true.
      • metastore_cache_refresh_interval_sec: Управляет интервалом времени, в течение которого кэшированные метаданные считаются свежими. Значение по умолчанию: 60. Единица измерения: секунды.
    • Расположение: Metastore (HMS или Glue)
  • Метаданные уровня файла

    • Содержимое: Пути к файлам в папке partition.
    • Влияние: Загрузка данных в существующий partition.
    • Свойства catalog:
      • enable_remote_file_cache: Управляет включением кэша метаданных для файлов в удалённом хранилище. Значение по умолчанию: true.
      • remote_file_cache_refresh_interval_sec: Управляет интервалом времени, в течение которого метаданные файлов считаются свежими. Значение по умолчанию: 60. Единица измерения: секунды.
      • remote_file_cache_memory_ratio: Управляет долей памяти, которая может использоваться для кэша метаданных файлов. Значение по умолчанию: 0.1 (10%).
    • Расположение: Удалённое хранилище (HDFS или S3)

Политика асинхронного обновления

Следующий параметр конфигурации FE управляет политикой асинхронного обновления метаданных:

Параметр конфигурацииЗначение по умолчаниюОписание
enable_background_refresh_connector_metadatatrue в v1.5.2
false в v1.5.2
Включать ли периодическое обновление кэша метаданных. После включения Selena опрашивает metastore и обновляет кэшированные метаданные часто используемых внешних catalog для обнаружения изменений данных. true означает включить обновление кэша метаданных Hive, false означает отключить. Это динамический параметр FE. Вы можете изменить его с помощью команды ADMIN SET FRONTEND CONFIG.
background_refresh_metadata_interval_millis600000 (10 минут)Интервал между двумя последовательными обновлениями кэша метаданных. Единица измерения: миллисекунды. Это динамический параметр FE. Вы можете изменить его с помощью команды ADMIN SET FRONTEND CONFIG.
background_refresh_metadata_time_secs_since_last_access_secs86400 (24 часа)Время истечения срока действия задачи обновления кэша метаданных. Для внешнего catalog, к которому был доступ, если к нему не обращались более указанного времени, Selena прекращает обновление его кэшированных метаданных. Для внешнего catalog, к которому не было доступа, Selena не будет обновлять его кэшированные метаданные. Единица измерения: секунды. Это динамический параметр FE. Вы можете изменить его с помощью команды ADMIN SET FRONTEND CONFIG.

Поведение кэша метаданных

В этом разделе используется поведение по умолчанию для объяснения поведения метаданных во время обновления метаданных и запросов.

По умолчанию, когда выполняется запрос к таблице, Selena кэширует метаданные таблицы, partition и файлов и поддерживает их активными в течение следующих 24 часов. В течение 24 часов система обеспечит обновление кэша не реже, чем каждые 10 минут (обратите внимание, что 10 минут — это расчётное время для раунда обновления метаданных. Если есть слишком много внешних таблиц, ожидающих обновления метаданных, общий интервал обновления метаданных может быть больше 10 минут). Если к таблице не обращались более 24 часов, Selena удаляет связанные метаданные. Другими словами, любой запрос, который вы делаете в течение 24 часов, в худшем случае будет использовать метаданные 10-минутной давности.

Поведение метаданных

Подробнее:

  1. Предположим, первый запрос затрагивает partition P1 таблицы A. Selena кэширует метаданные уровня таблицы, списки имён partition и информацию о путях к файлам в P1. Кэш заполняется синхронно во время выполнения запроса.
  2. Если второй запрос отправлен в течение 60 секунд после заполнения кэша и затрагивает partition P1 таблицы A, Selena использует кэш метаданных напрямую, и в этот момент Selena считает все кэшированные метаданные свежими (metastore_cache_refresh_interval_sec и remote_file_cache_refresh_interval_sec управляют временным окном, в течение которого Selena считает метаданные свежими).
  3. Если третий запрос отправлен через 90 секунд и затрагивает partition P1 таблицы A, Selena всё равно будет использовать кэш метаданных напрямую для завершения запроса. Однако, поскольку прошло более 60 секунд с момента последнего обновления метаданных, Selena будет считать метаданные устаревшими. Поэтому Selena запустит асинхронное обновление для устаревших метаданных. Асинхронное обновление не повлияет на результат текущего запроса, потому что запрос всё ещё будет использовать устаревшие метаданные.
  4. Поскольку был выполнен запрос к partition P1 таблицы A, ожидается, что метаданные будут обновляться каждые 10 минут (управляется background_refresh_metadata_interval_millis) в течение следующих 24 часов (управляется background_refresh_metadata_time_secs_since_last_access_secs). Фактический интервал между раундами обновления метаданных также зависит от общего количества ожидающих задач обновления в системе.
  5. Если таблица A не участвует ни в каком запросе в течение 24 часов, Selena удалит её кэш метаданных через 24 часа.

Лучшие практики

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

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

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

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

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

ФункцияОписаниеПоддерживаемые версии
Рекурсивный листинг поддиректорийВключите рекурсивный листинг поддиректорий, установив свойство catalog enable_recursive_listing в true. Когда рекурсивный листинг включён, Selena будет читать данные из таблицы и её partition, а также из поддиректорий в физических расположениях таблицы и её partition. Эта функция предназначена для решения проблемы многоуровневых вложенных директорий.v1.5.2+

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

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

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

Типы данных

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

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

Типы таблиц

Чтение транзакционных таблиц Hive не поддерживается.

Hive views

Selena поддерживает запросы к Hive views начиная с версии v1.5.2.

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

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

ФункцияПоддерживаемые версии
Поддерживает SHOW CREATE TABLE для просмотра схемы таблицы Hivev1.5.2+
Поддерживает ANALYZE для сбора статистикиv1.5.2+
Поддерживает сбор гистограмм и статистики подполей STRUCTv1.5.2+

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

ФункцияПоддерживаемые версииПримечание
CREATE DATABASEv1.5.2+Вы можете выбрать, указывать ли расположение для базы данных, созданной в Hive, или нет. Если вы не укажете расположение для базы данных, вам нужно будет указать расположение для таблиц, созданных в этой базе данных. В противном случае будет возвращена ошибка. Если вы указали расположение для базы данных, таблицы без указанного расположения унаследуют расположение базы данных. И если вы указали расположения как для базы данных, так и для таблицы, расположение таблицы будет иметь приоритет.
CREATE TABLEv1.5.2+Для партиционированных и непартиционированных таблиц.
CREATE TABLE AS SELECTv1.5.2+
INSERT INTO/OVERWRITEv1.5.2+Для партиционированных и непартиционированных таблиц.
CREATE TABLE LIKEv1.5.2+
Размер файла при записиv1.5.2+Вы можете определить максимальный размер каждого записываемого файла данных с помощью сессионной переменной connector_sink_target_max_file_size.

Iceberg Catalog

Метаданные

При выполнении запросов к данным Iceberg через Iceberg catalog Selena будет кэшировать метаданные таблиц для снижения затрат на частый доступ к удалённому хранилищу. Этот механизм обеспечивает производительность запросов, поддерживая свежесть данных через политику асинхронного обновления и истечения срока действия.

Кэшируемые метаданные

Selena будет кэшировать следующие метаданные во время запросов:

  • Кэш указателя метаданных

    • Содержимое: JSON-файл указателя метаданных
      • Snapshot ID
      • Расположение списков манифестов
    • Влияние: обнаружение изменений данных (если происходит изменение данных, Snapshot ID изменится.)
    • Свойства catalog:
      • enable_iceberg_metadata_cache: Управляет включением кэша метаданных Iceberg. Значение по умолчанию: true.
      • iceberg_table_cache_refresh_interval_sec: Управляет интервалом времени, в течение которого кэшированные метаданные считаются свежими. Значение по умолчанию: 60. Единица измерения: секунды.
  • Кэш метаданных

    • Содержимое:
      • Манифест для пути к файлу данных
      • Манифест для пути к файлу удаления
      • База данных
      • Partition (для перезаписи материализованного представления)
    • Влияние:
      • Не влияет на свежесть данных для запросов, поскольку манифесты для файлов данных или удаления не могут быть изменены.
      • Может влиять на перезапись материализованного представления, заставляя запросы пропускать материализованное представление. Метаданные partition будут удалены при обновлении Snapshot ID. Поэтому новый Snapshot ID не имеет метаданных partition, что приводит к пропуску перезаписи материализованного представления.
    • Свойства catalog:
      • enable_cache_list_names: Управляет включением кэша списка имён partition. Значение по умолчанию: true.
      • metastore_cache_refresh_interval_sec: Управляет интервалом времени, в течение которого кэшированные метаданные считаются свежими. Значение по умолчанию: 60. Единица измерения: секунды.
      • iceberg_data_file_cache_memory_usage_ratio: Управляет долей памяти, которая может использоваться для кэша метаданных файлов данных. Значение по умолчанию: 0.1 (10%).
      • iceberg_delete_file_cache_memory_usage_ratio: Управляет долей памяти, которая может использоваться для кэша метаданных файлов удаления. Значение по умолчанию: 0.1 (10%).

Политика асинхронного обновления

Следующий параметр конфигурации FE управляет политикой асинхронного обновления метаданных:

Параметр конфигурацииЗначение по умолчаниюОписание
enable_background_refresh_connector_metadatatrue в v1.5.2
false в v1.5.2
Включать ли периодическое обновление кэша метаданных. После включения Selena опрашивает metastore и обновляет кэшированные метаданные часто используемых внешних catalog для обнаружения изменений данных. true означает включить обновление кэша метаданных Hive, false означает отключить. Это динамический параметр FE. Вы можете изменить его с помощью команды ADMIN SET FRONTEND CONFIG.
background_refresh_metadata_interval_millis600000 (10 минут)Интервал между двумя последовательными обновлениями кэша метаданных. Единица измерения: миллисекунды. Это динамический параметр FE. Вы можете изменить его с помощью команды ADMIN SET FRONTEND CONFIG.
background_refresh_metadata_time_secs_since_last_access_secs86400 (24 часа)Время истечения срока действия задачи обновления кэша метаданных. Для внешнего catalog, к которому был доступ, если к нему не обращались более указанного времени, Selena прекращает обновление его кэшированных метаданных. Для внешнего catalog, к которому не было доступа, Selena не будет обновлять его кэшированные метаданные. Единица измерения: секунды. Это динамический параметр FE. Вы можете изменить его с помощью команды ADMIN SET FRONTEND CONFIG.

Поведение кэша метаданных

В этом разделе используется поведение по умолчанию для объяснения поведения метаданных во время обновления метаданных и запросов.

По умолчанию, когда выполняется запрос к таблице, Selena кэширует метаданные таблицы и поддерживает их активными в течение следующих 24 часов. В течение 24 часов система обеспечит обновление кэша не реже, чем каждые 10 минут (обратите внимание, что 10 минут — это расчётное время для раунда обновления метаданных. Если есть слишком много внешних таблиц, ожидающих обновления метаданных, общий интервал обновления метаданных может быть больше 10 минут). Если к таблице не обращались более 24 часов, Selena удаляет связанные метаданные. Другими словами, любой запрос, который вы делаете в течение 24 часов, в худшем случае будет использовать метаданные 10-минутной давности.

Поведение метаданных

Подробнее:

  1. Предположим, первый запрос затрагивает таблицу A. Selena кэширует её последний snapshot и метаданные. Кэш заполняется синхронно во время выполнения запроса.
  2. Если второй запрос отправлен в течение 60 секунд после заполнения кэша и затрагивает таблицу A, Selena использует кэш метаданных напрямую, и в этот момент Selena считает все кэшированные метаданные свежими (iceberg_table_cache_refresh_interval_sec управляет временным окном, в течение которого Selena считает метаданные свежими).
  3. Если третий запрос отправлен через 90 секунд и затрагивает таблицу A, Selena всё равно будет использовать кэш метаданных напрямую для завершения запроса. Однако, поскольку прошло более 60 секунд с момента последнего обновления метаданных, Selena будет считать метаданные устаревшими. Поэтому Selena запустит асинхронное обновление для устаревших метаданных. Асинхронное обновление не повлияет на результат текущего запроса, потому что запрос всё ещё будет использовать устаревшие метаданные.
  4. Поскольку был выполнен запрос к таблице A, ожидается, что метаданные будут обновляться каждые 10 минут (управляется background_refresh_metadata_interval_millis) в течение следующих 24 часов (управляется background_refresh_metadata_time_secs_since_last_access_secs). Фактический интервал между раундами обновления метаданных также зависит от общего количества ожидающих задач обновления в системе.
  5. Если таблица A не участвует ни в каком запросе в течение 24 часов, Selena удалит её кэш метаданных через 24 часа.

Лучшие практики

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

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

  • С версии v1.5.2 по v1.5.2 этот параметр по умолчанию установлен в true, независимо от используемого сервиса metastore.
  • В версии v1.5.2 и позже, если Iceberg cluster использует AWS Glue в качестве metastore, этот параметр по-прежнему по умолчанию true. Однако, если Iceberg cluster использует другие сервисы metastore, такие как Hive metastore, этот параметр по умолчанию false.
  • С версии v1.5.2 значение этого параметра по умолчанию снова установлено в true, поскольку Selena поддерживает новый фреймворк метаданных Iceberg. Iceberg Catalog и Hive Catalog теперь используют один и тот же механизм опроса метаданных и параметр конфигурации FE background_refresh_metadata_interval_millis.
ФункцияПоддерживаемые версии
Распределённый план метаданных (рекомендуется для сценариев с большим объёмом метаданных)v1.5.2+
Кэш манифестов (рекомендуется для сценариев с небольшим объёмом метаданных, но высокими требованиями к задержке)v1.5.2+

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

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

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

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

Iceberg views

Selena поддерживает запросы к Iceberg views начиная с версии v1.5.2 и создание Iceberg views с версии v1.5.2.

В настоящее время поддерживаются только Iceberg views, созданные через Selena. Начиная с версии v1.5.2, поддерживается добавление определений в стиле синтаксиса Selena к существующим Iceberg views.

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

ФункцияПоддерживаемые версии
Поддерживает SHOW CREATE TABLE для просмотра схемы таблицы Icebergv1.5.2+
Поддерживает ANALYZE для сбора статистикиv1.5.2+
Поддерживает сбор гистограмм и статистики подполей STRUCTv1.5.2+

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

ФункцияПоддерживаемые версииПримечание
CREATE DATABASEv1.5.2+Вы можете выбрать, указывать ли расположение для базы данных, созданной в Iceberg, или нет. Если вы не укажете расположение для базы данных, вам нужно будет указать расположение для таблиц, созданных в этой базе данных. В противном случае будет возвращена ошибка. Если вы указали расположение для базы данных, таблицы без указанного расположения унаследуют расположение базы данных. И если вы указали расположения как для базы данных, так и для таблицы, расположение таблицы будет иметь приоритет.
CREATE TABLEv1.5.2+Поддерживает партиционированные и непартиционированные таблицы. Начиная с v2.0.0, поддерживает создание таблиц со скрытыми partition.
CREATE TABLE AS SELECTv1.5.2+
INSERT INTO/OVERWRITEv1.5.2+Для партиционированных и непартиционированных таблиц.

Прочая поддержка

ФункцияПоддерживаемые версии
Поддерживает чтение форматов partition типа TIMESTAMP yyyy-MM-ddTHH:mm и yyyy-MM-dd HH:mm.v1.5.2+
Поддерживает таблицу метаданных Icebergv1.5.2+
Поддерживает Iceberg TimeTravelv1.5.2+

Hudi Catalog

  • Selena поддерживает запросы к данным в формате Parquet в Hudi и поддерживает форматы сжатия SNAPPY, LZ4, ZSTD, GZIP и NO_COMPRESSION для файлов Parquet.
  • Selena полностью поддерживает таблицы Hudi Copy On Write (COW) и Merge On Read (MOR).
  • Selena поддерживает SHOW CREATE TABLE для просмотра схемы таблицы Hudi начиная с версии v1.5.2.
  • Selena v1.5.2 поддерживает Hudi 0.15.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 начиная с версии v1.5.2.
  • В настоящее время Delta Lake catalog поддерживают следующие функции таблиц:
    • V2 Checkpoint (с версии v1.5.2)
    • Timestamp without Timezone (с версии v1.5.2)
    • Column mapping (с версии v1.5.2)
    • Deletion Vector (с версии v1.5.2)

JDBC Catalog

Тип catalogПоддерживаемые версии
MySQLv1.5.2+
PostgreSQLv1.5.2+
ClickHousev1.5.2+
Oraclev1.5.2+
SQL Serverv1.5.2+

MySQL

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

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

MySQLSelenaПоддерживаемые версии
BOOLEANBOOLEANv1.5.2+
BITBOOLEANv1.5.2+
SIGNED TINYINTTINYINTv1.5.2+
UNSIGNED TINYINTSMALLINTv1.5.2+
SIGNED SMALLINTSMALLINTv1.5.2+
UNSIGNED SMALLINTINTv1.5.2+
SIGNED INTEGERINTv1.5.2+
UNSIGNED INTEGERBIGINTv1.5.2+
SIGNED BIGINTBIGINTv1.5.2+
UNSIGNED BIGINTLARGEINTv1.5.2+
FLOATFLOATv1.5.2+
REALFLOATv1.5.2+
DOUBLEDOUBLEv1.5.2+
DECIMALDECIMAL32v1.5.2+
CHARVARCHAR(columnsize)v1.5.2+
VARCHARVARCHARv1.5.2+
TEXTVARCHAR(columnsize)v1.5.2+
DATEDATEv1.5.2+
TIMETIMEv1.5.2+
TIMESTAMPDATETIMEv1.5.2+

PostgreSQL

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

PGSQLSelenaПоддерживаемые версии
BITBOOLEANv1.5.2+
SMALLINTSMALLINTv1.5.2+
INTEGERINTv1.5.2+
BIGINTBIGINTv1.5.2+
REALFLOATv1.5.2+
DOUBLEDOUBLEv1.5.2+
NUMERICDECIMAL32v1.5.2+
CHARVARCHAR(columnsize)v1.5.2+
VARCHARVARCHARv1.5.2+
TEXTVARCHAR(columnsize)v1.5.2+
DATEDATEv1.5.2+
TIMESTAMPDATETIMEv1.5.2+
UUIDVARBINARYv1.5.2+

ClickHouse

Поддерживается с версии v1.5.2.

Oracle

Поддерживается с версии v1.5.2.

SQL Server

Поддерживается с версии v1.5.2.

Elasticsearch Catalog

Elasticsearch Catalog поддерживается с версии v1.5.2.

Paimon Catalog

Paimon Catalog поддерживается с версии v1.5.2.

MaxCompute Catalog

MaxCompute Catalog поддерживается с версии v1.5.2.

Kudu Catalog

Kudu Catalog поддерживается с версии v1.5.2.