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

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

EngineDescriptionBest For
autoАвтоматически выбирает оптимальный движок для каждой операцииОбщее применение (по умолчанию)
chDBПринудительно направляет все операции через ClickHouse SQLБольшие датасеты, агрегации
pandasПринудительно направляет все операции через pandasТестирование совместимости, возможности pandas

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

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

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


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

В режиме 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
  • Единообразное поведение при всех операциях

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

Тип операцииПроизводительность
GroupBy/АгрегацияОтличная (до 20 раз быстрее)
Сложная фильтрацияОтличная
СортировкаОчень хорошая
Простые одиночные фильтрыХорошая (небольшие накладные расходы)

Ограничения

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

Режим pandas

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

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

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

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

Тип операцииПроизводительность
Простые одиночные операцииХорошая
Пользовательские функцииОтличная
Сложные агрегацииМедленнее, чем в chDB
Крупные датасетыВысокое потребление памяти

Движок Cross-DataStore

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

Пример


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

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

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

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

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

Результаты бенчмарка на 10 млн строк:
Операцияpandas (мс)chdb (мс)Ускорение
Подсчет в GroupBy3471719.93x
Комбинированные операции1,5352346.56x
Сложный конвейер2,0473805.39x
Filter+Sort+Head1,5373504.40x
Агрегация в GroupBy4061412.88x
Одиночный фильтр2765260.52x
Ключевые выводы:
  • chDB особенно хорошо показывает себя на агрегациях и в сложных конвейерах
  • pandas немного быстрее при простых одиночных операциях
  • Используйте режим auto, чтобы получить преимущества обоих вариантов

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

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

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

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

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


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

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

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

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

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