Перейти к основному содержанию
DataStore может выполнять операции с помощью разных движков. В этом руководстве показано, как настроить и оптимизировать выбор движка.

Доступные движки

Настройка движка

Глобальная конфигурация

Проверка текущего движка


Автоматический режим

В режиме auto (по умолчанию) DataStore выбирает оптимальный движок для каждой операции:

Операции, выполняемые в chDB

  • SQL-совместимая фильтрация (filter(), where())
  • Выбор столбцов (select())
  • Сортировка (sort(), orderby())
  • Группировка и агрегация (groupby().agg())
  • Операции JOIN (join(), merge())
  • Удаление дубликатов (distinct(), drop_duplicates())
  • Ограничение (limit(), head(), tail())

Операции, выполняемые в pandas

  • Пользовательские функции apply (apply(custom_func))
  • Сложные сводные таблицы с пользовательскими агрегациями
  • Операции, которые невозможно выразить в SQL
  • Когда входные данные уже представлены в виде DataFrame pandas

Пример


Режим chDB

Выполнять все операции через ClickHouse SQL:

Когда использовать

  • Обработка больших объемов данных (миллионы строк)
  • Ресурсоемкие задачи агрегации
  • Когда требуется максимальная оптимизация SQL
  • Единообразное поведение при всех операциях

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

Ограничения

  • Пользовательские функции Python могут не поддерживаться
  • Для некоторых возможностей pandas требуется преобразование

Режим pandas

Все операции принудительно выполняются через pandas:

Когда использовать

  • Проверка совместимости с pandas
  • Использование возможностей pandas
  • Отладка проблем, связанных с pandas
  • Когда данные уже представлены в формате pandas

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


Движок Cross-DataStore

Настройте движок для операций, объединяющих столбцы из разных DataStore:

Пример


Логика выбора движка

Дерево решений для автоматического режима

Переопределение на уровне функций

Для некоторых функций можно явно указать движок:
Подробнее см. в разделе Конфигурация функции.

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

Результаты бенчмарка на 10 млн строк: Ключевые выводы:
  • chDB особенно хорошо показывает себя на агрегациях и в сложных конвейерах
  • pandas немного быстрее при простых одиночных операциях
  • Используйте режим auto, чтобы получить преимущества обоих вариантов

Рекомендации

1. Начните с автоматического режима

2. Сначала профилируйте, потом принудительно задавайте

3. Явно задавайте движок для конкретных рабочих нагрузок

4. Используйте explain(), чтобы понять выполнение запроса


Устранение неполадок

Проблема: Операция выполняется медленнее, чем ожидалось

Проблема: Неподдерживаемая операция в режиме chDB

Проблема: нехватка памяти при работе с большими объёмами данных

Режим производительностиЕсли вы выполняете ресурсоёмкие задачи агрегации и вам не нужна точная совместимость вывода с pandas (порядок строк, MultiIndex, исправления dtype), рассмотрите возможность использования режима производительности. Он автоматически устанавливает движок chdb и устраняет все накладные расходы, связанные с совместимостью с pandas.
Последнее изменение 3 июля 2026 г.