В прошлый раз, в первой части нашего гида по Apache Cloudberry™, мы поговорили об истории проекта, его архитектуре, ядре СУБД и функциях платформы. 

Но помимо ядра СУБД, мы также хотим использовать data‑lakehouse‑запросы. В Data Lakehouse есть некоторые проблемы: мы не можем получать данные оттуда напрямую. В Cloudberry разработана технология, с помощью которой можно это делать, так что поговорим об этом подробнее. А также рассмотрим ещё несколько интересных возможностей и расскажем о планах проекта.

Унифицированная архитектура Lakehouse для работы с данными

  • Cloudberry синхронизирует метаданные озера данных через коннектор Data Lake, который преобразует их в форматы каталогов, понятные Cloudberry.

  • Cloudberry использует оптимизатор для построения наилучшего плана выполнения.

  • Исполнители (executors) получают этот план и следуют ему для загрузки файлов из HDFS/OSS, их сканирования и разбора.

Векторная база данных: pgvector

  • Поддержка различных метрик расстояния, таких как евклидово расстояние, косинусное расстояние и так далее Это позволяет полноценно решать задачи поиска и анализа сходства векторных данных.

  • Поддержка высоких размерностей: до 16 000 измерений.

  • Ускорение поиска: предоставляет эффективные методы индексирования векторных данных, например поиск k ближайших соседей (k‑NN). Даже на очень больших наборах данных это обеспечивает быстрый отклик на запросы при сохранении высокой точности.

  • Стандартный доступ через SQL: для операций с векторами используется привычный синтаксис SQL‑запросов. Пользователям со знанием SQL не нужно осваивать новые языки или системы.

  • Интеграция с HashML (закрытый код): обеспечивает бесшовную работу с HashML в роли движка хранения, предоставляя сервисы сохранения векторных данных и поиска по сходству. Это помогает получать ценные инсайты и прогнозы для задач ML и AI.

  • Надёжность и безопасность: наследует все возможности устойчивости и защиты, позволяя безопасно хранить векторные данные и управлять ими.

Fulltext Search Enhancement: ZomboDB

ZomboDB — опенсорс-проект. У Cloudberry есть свой движок, но с большим количеством текста ZomboID работает лучше. 

  • Cloudberry интегрирует плагин ZomboDB, чтобы объединить Cloudberry и Elasticsearch, предоставляя возможности мощного полнотекстового поиска и текстового анализа Elasticsearch.  

  • Основные моменты архитектуры:  

    • ZomboDB фактически является внешним индексом таблиц данных

    • Пользователи могут создавать индексы (ES‑индексы) для ZomboDB на существующих базах данных и таблицах Cloudberry, используя синтаксис создания индексов

    • Поддерживаются ZQL‑ и ES JSON‑запросы, а также сегментация и извлечение информации на нескольких языках

  • Сценарии использования:  

    • Базы знаний, интеллектуальные робот‑консультанты для обслуживания клиентов

    • Анализ транзакций для оптимизации алгоритмов и стратегий программной торговли

    • Интеллектуальные объявления и интерпретация документов

Cloudberry Central Console: панель управления  

Центральная консоль Cloudberry — интерфейс, через который можно проводить мониторинг системы. Состоит из нескольких частей. 

Первая часть — дашборд с общей информацией

  • Отображение общего состояния системы, включая количество таблиц, табличных пространств, состояние кластера и так далее 

  • Отображение использования CPU, памяти и диска с течением времени. Пользователи могут задавать конкретный временной интервал для исторических запросов, чтобы оценить общую историческую нагрузку на кластер.

  • Переход на разные страницы через левую навигационную панель. 

  • Интернационализация: двуязычная поддержка (китайский и английский).

Вторая часть — мониторинг пользовательских запросов.

Cloudberry Central Console: мониторинг запросов  

  • Пользователи могут выбрать запрос, который выполняется в данный момент, и кликнуть по нему, чтобы увидеть статус выполнения в реальном времени в графическом виде: количество полученных результатов, время выполнения, текущую загрузку CPU, использование памяти, файлы подкачки (spill files) и другую информацию.

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

  • Пользователи могут просмотреть план выполнения запроса, соответствующий SQL‑оператору, в текстовом формате.

Cloudberry Central Console: мониторинг кластеров

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

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

  • Пользователи получают конкретные данные и статистику по таблицам на основе заданных условий, таких как размер таблицы, её тип (является ли она секционированной) и время последнего анализа.

По клику на общее пространство БД можно увидеть, какое пространство занимает каждая БД. 

На дашборде можно увидеть мониторинг использования дискового пространства, CPU и памяти.

В меню слева можно провалиться в метрики кластера. Там же можно посмотреть, как менялось использование ресурсов CPU, памяти, дисков с течением времени. А также просматривать статус, роль и режим репликации сегментов.

Платформа собирает информацию об исполняемых запросах и их метриках. Можно посмотреть, как идёт процесс обработки запроса, какой объём процессора и памяти расходуется на это.

Предложение дорожной карты Cloudberry (черновик на 2025-й и последующие годы)

Улучшение ядра  

  • Постоянное обновление ядра до версии 15.8 (целевой уровень обновления PostgreSQL будет отставать на две версии от последней официально выпущенной)

  • Рефакторинг кода для упрощения будущих обновлений и обеспечения возможности подключения компонентов MPP (диспетчер, подсистема соединений, планировщик, управление транзакциями и др.)

  • Вклад в реализацию гибридного хранения PAX (строчно‑столбцового)

  • Вклад в разработку векторизованного исполнительного движка

  • Добавление параллельных операторов и обеспечение паритета возможностей ORCA с традиционным планировщиком

  • Рефакторинг логики диспетчера для повышения эффективности

  • Материализованные представления и переписывание запросов для внешних таблиц

  • Поддержка динамических таблиц

Непрерывное обеспечение качества  

  • Изучение дополнительных фреймворков и методологий тестирования с открытым исходным кодом. Например, внедрение автоматической генерации SQL‑тестов, SQLancer, стресс‑тестирования (Chaos testing) для проверки устойчивости системы

  • Выбор отдельных коммитов из Greenplum для Cloudberry, особенно исправлений ошибок

  • Рефакторинг существующих сценариев ICW для сокращения времени выполнения, которое сейчас занимаете около одного часа

  • Поддержка инструментов для обновления «на месте»

  • Тесты «бинарного обмена» между минорными версиями

  • Настройка пайплайна бенчмарков TPC‑H/TPC‑DS и подготовка отчётов

Удобство использования (юзабилити)

  • Автоматическое и визуальное развёртывание, что особенно полезно для начинающих пользователей

  • Удобные средства аварийного восстановления (DR), крайне важные для эксплуатации в боевом окружении и для повышения возможностей off‑site‑восстановления

  • Поддержка интерактивного развёртывания на Kubernetes 

Центральная консоль Cloudberry  

  • Сводная информация о процессах для каждого хоста

  • Менеджер рабочих нагрузок и сводка по CPU и памяти

  • Настройка пользователей и ролей (аутентификация и права доступа к ресурсам, например таблицам и базам данных)

  • Конфигурация оповещений по правилам с поддержкой email или СМС 

  • Восстановление сегментов через веб‑консоль

  • Отчёты об истории операций DDL/DML/DCL

  • Визуализация зависимостей блокировок

  • Визуализация перекоса данных (data skew) по таблице

  • Статистика «грязных» страниц для heap‑таблиц

  • Интеллектуальные рекомендации по DDL (например, предложения по столбцам распределения или партиционирования на основании истории запросов)

  • Интеграция очередей и групп ресурсов

Расширения, экосистема и инструменты  

  • DBeaver для Cloudberry

  • Поддержка PGRX для возможности написания разработчиками UDF на Rust в Cloudberry

  • Активация kafka_fdw в Cloudberry в MPP‑режиме

  • Интеграция Flink CDC для поддержки «почти реального» времени при подгрузке данных

  • Поддержка Lakehouse (например, Apache Hudi, Apache Iceberg и др.)

  • Cherry‑pick последних коммитов для инструментов (pxf, gpbackup и др.)

  • JDBC/ODBC‑драйверы для Cloudberry

  • Контейнерный сервис для выполнения UDF в песочнице  

Релизы и пайплайны  

  • Рефакторинг текущих ICW‑кейсов для сокращения времени ожидания pull‑request

  • Настройка процессов сборки, тестирования и деплоя Cloudberry на базе GitHub Actions и Docker

  • Поддержка большого числа ОС‑матриц и артефактов, Docker‑образов (Rocky Linux, Debian, Ubuntu)

  • Поддержка дополнительных архитектур CPU (x86_64, ARM, RISC‑V, LoongArch)

  • Исключение из CI/CD‑тестов файлов и папок (*.txt, .md, .mdx, *.png, /doc) для экономии ресурсов

  • Добавление git pre‑commit workflow для проверки соответствия сообщений коммитов принятому формату

  • Ansible‑playbook для облачных провайдеров

AI/ML 

  • Непрерывное обновление pgvector

  • Интеграция с Ray для поддержки нагрузок в области AI/ML

Обратная связь 

Любые вопросы о работе в Cloudberry можно задавать в соцсетях:

Список разработчиков (Dev Mailing list): dev@cloudberry.apache.org  

Песочница (Sandbox): чтобы быстро оценить возможности Cloudberry  

Комментарии (0)