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

Поддержка функций: Кластеры с разделяемыми данными

подсказка

Каждая из функций ниже содержит номер версии, в которой она была добавлена. Если вы развертываете новый кластер, пожалуйста, разверните последний патч-релиз версии 3.2 или выше.

Обзор

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

Этот документ описывает поддержку функций для кластеров с разделяемыми данными, охватывая методы развертывания, конфигурации хранения, механизмы кэширования, Compaction, функциональность таблиц Primary Key и результаты тестов производительности.

Развертывание

Кластеры с разделяемыми данными поддерживают развертывание на физических/виртуальных машинах и в Kubernetes через Operator.

Оба решения развертывания имеют следующие ограничения:

  • Смешанное развертывание режимов без разделения данных и с разделяемыми данными не поддерживается.
  • Преобразование кластера без разделения данных в кластер с разделяемыми данными или наоборот не поддерживается.
  • Гетерогенные развертывания не поддерживаются, что означает, что аппаратные спецификации всех CN узлов в кластере должны быть одинаковыми.

Selena Kubernetes Operator

Selena предлагает Selena Kubernetes Operator для развертывания с разделяемыми данными в Kubernetes.

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

  • Ручные операции.
  • Автоматическое масштабирование с использованием стратегий Kubernetes HPA (Horizontal Pod Autoscaler).

Хранение

Кластеры с разделяемыми данными поддерживают создание томов хранения на HDFS и объектном хранилище.

HDFS

Расположение

Selena поддерживает следующие расположения для тома хранения HDFS:

  • HDFS: hdfs://<host>:<port>/

    ПРИМЕЧАНИЕ

    Начиная с версии 1.5.0, тома хранения поддерживают кластеры HDFS с включенным режимом NameNode HA.

  • WebHDFS (Поддерживается с версии 3.2): webhdfs://<host>:<http_port>/

  • ViewFS (Поддерживается с версии 3.2): viewfs://<ViewFS_cluster>/

Аутентификация

Selena поддерживает следующие методы аутентификации для тома хранения HDFS:

  • Basic

  • Username (Поддерживается с версии 3.2)

  • Kerberos Ticket Cache (Поддерживается с версии 3.2)

    ПРИМЕЧАНИЕ

    Selena не поддерживает автоматическое обновление билетов. Вам необходимо настроить задачи crontab для обновления билета.

Аутентификация с использованием Kerberos Keytab и Principal ID пока не поддерживается.

Примечания по использованию

Selena поддерживает тома хранения на HDFS и объектном хранилище. Однако в каждом экземпляре Selena разрешен только один том хранения HDFS. Создание нескольких томов хранения HDFS может вызвать неизвестное поведение Selena.

Объектное хранилище

Расположение

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

  • S3-совместимые сервисы объектного хранения: s3://<s3_path>
    • AWS S3
    • GCS, OSS, OBS, COS, TOS, KS3, MinIO и Ceph S3
  • Azure Blob Storage (Поддерживается с версии 3.1.1): azblob://<azblob_path>

Аутентификация

Selena поддерживает следующие методы аутентификации для различных сервисов объектного хранения:

  • AWS S3
    • AWS SDK
    • IAM user-based Credential
    • Instance Profile
    • Assumed Role
  • GCS, OSS, OBS, COS, TOS, KS3, MinIO и Ceph S3
    • Access Key pair
  • Azure Blob Storage
    • Shared Key
    • Shared Access Signatures (SAS)

Partitioned Prefix

Начиная с версии 1.5.0, Selena поддерживает создание томов хранения с функцией Partitioned Prefix для S3-совместимых систем объектного хранения. Когда эта функция включена, Selena распределяет данные по нескольким разделам (подпутям) в bucket. Это может легко умножить производительность чтения и записи Selena для файлов данных, хранящихся в bucket.

Тома хранения

  • Начиная с версии 1.5.0, тома хранения можно создавать с помощью оператора CREATE STORAGE VOLUME, и этот метод рекомендуется в более поздних версиях.
  • Внутренний catalog default_catalog в кластерах с разделяемыми данными использует том хранения по умолчанию для сохранения данных. Вы можете назначить различные тома хранения для баз данных и таблиц в default_catalog, установив свойство storage_volume. Если не настроено, свойство storage_volume наследуется в порядке catalog, база данных и таблица.
  • В настоящее время тома хранения могут использоваться только для хранения данных в облачно-нативных таблицах. Будущая поддержка будет включать управление внешним хранилищем, загрузку данных и возможности резервного копирования.

Кэш

Типы кэша

File Cache

File Cache был первоначальным механизмом кэширования, введенным вместе с кластером с разделяемыми данными. Он загружает кэш на уровне файлов сегментов. File Cache не рекомендуется в версиях 3.1.7, 3.2.3 и более поздних.

Data Cache

Data Cache поддерживается начиная с версий 3.1.7 и 3.2.3 для замены File Cache в более ранних версиях. Data Cache загружает данные из удаленного хранилища блоками (порядка МБ) по требованию, без необходимости загрузки всего файла. Он рекомендуется в более поздних версиях и включен по умолчанию в версии 3.2.3 и более поздних.

Data Cache Warmup

Selena версии 3.3.0 представляет функцию Data Cache Warmup для ускорения запросов в озерах данных и кластерах с разделяемыми данными. Data Cache Warmup — это активный процесс заполнения кэша. Выполняя CACHE SELECT, вы можете проактивно заранее получить желаемые данные из удаленного хранилища.

Конфигурации

  • Свойства таблицы:
    • datacache.enable: Включить ли локальный дисковый кэш. По умолчанию: true.
    • datacache.partition_duration: Длительность действия кэшированных данных.
  • Конфигурации BE:
    • starlet_use_star_cache: Включить ли Data Cache.
    • starlet_star_cache_disk_size_percent: Процент дисковой емкости, который Data Cache может использовать максимально в кластере с разделяемыми данными.

Возможности

  • Загрузка данных генерирует локальный кэш, вытеснение которого управляется только механизмом контроля емкости кэша, а не partition_duration.
  • Selena поддерживает настройку регулярных задач для Data Cache Warmup.

Ограничения

  • Selena не поддерживает несколько реплик для кэшированных данных.

Compaction

Наблюдаемость

Статус Compaction на уровне разделов

Начиная с версии 1.5.0, вы можете просматривать статус Compaction разделов, запрашивая information_schema.partitions_meta.

Мы рекомендуем отслеживать следующие ключевые метрики:

  • AvgCS: Средний балл Compaction всех tablet в разделе.
  • MaxCS: Максимальный балл Compaction среди всех tablet в разделе.

Статус задач Compaction

Начиная с версии 1.5.0, вы можете просматривать статус и прогресс задач Compaction, запрашивая information_schema.be_cloud_native_compactions.

Мы рекомендуем отслеживать следующие ключевые метрики:

  • PROGRESS: Текущий прогресс Compaction (в процентах) tablet.
  • STATUS: Статус задачи compaction. Если возникает какая-либо ошибка, подробные сообщения об ошибках будут возвращены в этом поле.

Отмена задач Compaction

Вы можете отменить конкретные задачи compaction, используя оператор CANCEL COMPACTION.

Пример:

CANCEL COMPACTION WHERE TXN_ID = 123;

ПРИМЕЧАНИЕ

Оператор CANCEL COMPACTION должен выполняться на узле Leader FE.

Ручной Compaction

Начиная с версии 1.5.0, Selena предлагает SQL-оператор для ручного Compaction. Вы можете указать таблицу или разделы для compaction. Для получения дополнительной информации обратитесь к Manual Compaction.

Таблицы Primary Key

Следующая таблица перечисляет основные функции таблиц Primary Key и их статус поддержки в кластерах с разделяемыми данными:

ФункцияПоддерживаемые версииОписание
Таблицы Primary Keyv3.1.0
Сохранение индекса Primary Keyv3.2.0
v3.1.3
  • В настоящее время кластеры с разделяемыми данными поддерживают сохранение индекса Primary Key на локальных дисках.
  • Сохранение в удаленном хранилище будет поддерживаться в будущих релизах.
Partial Updatev3.1.0Кластеры с разделяемыми данными поддерживают Partial Update в режиме Row начиная с версии 1.5.0 и в режиме Column начиная с версии 1.5.0.
Conditional Updatev3.1.0В настоящее время условие поддерживает только 'Greater'.
Гибридное строчно-столбцовое хранениеБудет поддерживаться в будущих релизах.

Производительность запросов

Следующий тест сравнивает производительность запросов кластера с разделяемыми данными с отключенным Data Cache, одного с включенным Data Cache, одного, который запрашивает набор данных в Hive, и кластера без разделения данных.

Аппаратные спецификации

Кластер, используемый в тесте, включает один узел FE и пять узлов CN/BE. Аппаратные спецификации следующие:

Провайдер VMAlibaba Cloud ECS
Узел FE8 ядер 32 ГБ памяти
Узел CN/BE8 ядер 64 ГБ памяти
Пропускная способность сети8 Гбит/с
ДискESSD

Версия программного обеспечения

Selena v3.3.0

Набор данных

Набор данных SSB 1TB

примечание

Набор данных и запросы, используемые в этом сравнении, взяты из Star Schema Benchmark.

Результаты тестов

Следующая таблица показывает результаты тестов производительности по тринадцати запросам и сумме каждого кластера. Единица задержки запроса — миллисекунды (мс).

ЗапросРазделяемые данные без Data CacheРазделяемые данные с Data CacheHive Catalog без Data CacheБез разделения данных
Q01274285896523555
Q02271470486383183
Q03190865881632980
Q04311358582346047997
Q05265977806291836794
Q06216437147244015602
Q0735271154903890419530
Q08248187368275986984
Q09210566667235875687
Q102823912166633942
Q1150027189475299719636
Q12103004919361468136
Q1373783386231536380
СУММА23841283444333689100406

Заключение

  • Производительность запросов кластера с разделяемыми данными с отключенным Data Cache и включенной оптимизацией Parallel Scan и I/O merge в 1.4 раза выше, чем у кластера, который запрашивает данные Hive.
  • Производительность запросов кластера с разделяемыми данными с включенным Data Cache и включенной оптимизацией Parallel Scan и I/O merge в 1.2 раза выше, чем у кластера без разделения данных.

Другие функции, которые будут поддерживаться

  • Полнотекстовый инвертированный индекс
  • Гибридное строчно-столбцовое хранение
  • Объект глобального словаря
  • Generated column
  • Резервное копирование и восстановление