DataStore поддерживает гибкую настройку выбора движка выполнения, режима совместимости, логирования, кэширования, данных профилирования и коррекции dtype.
from chdb.datastore.config import config
# Быстрые предустановки конфигурации
config.enable_debug() # Включить подробное логирование
config.use_chdb() # Принудительно использовать движок ClickHouse
config.use_pandas() # Принудительно использовать движок pandas
config.use_auto() # Автоматический выбор движка (по умолчанию)
config.use_performance_mode() # SQL в приоритете, максимальная пропускная способность
config.use_pandas_compat() # Полная совместимость с pandas (по умолчанию)
config.enable_profiling() # Включить профилирование производительности
Все параметры конфигурации
| Категория | Параметр | Значения | По умолчанию | Описание |
|---|
| Логирование | log_level | DEBUG/INFO/WARNING/ERROR | WARNING | Уровень подробности логов |
| log_format | ”simple”, “verbose" | "simple” | Формат сообщений лога |
| Кэш | cache_enabled | True/False | True | Включить кэширование результатов |
| cache_ttl | float (seconds) | 0.0 | Срок time-to-live кэша |
| Движок | execution_engine | ”auto”, “chdb”, “pandas" | "auto” | Движок выполнения |
| cross_datastore_engine | ”auto”, “chdb”, “pandas" | "auto” | Операции между DataStore |
| Совместимость | compat_mode | ”pandas”, “performance" | "pandas” | Совместимость с pandas или производительность с приоритетом SQL |
| Профилирование | profiling_enabled | True/False | False | Включить профилирование |
| Dtype | correction_level | NONE/CRITICAL/HIGH/MEDIUM/ALL | HIGH | Уровень коррекции Dtype |
from chdb.datastore.config import config
import logging
# Установить уровень логирования
config.set_log_level(logging.DEBUG)
config.set_log_level(logging.INFO)
config.set_log_level(logging.WARNING) # По умолчанию
config.set_log_level(logging.ERROR)
# Установить формат логирования
config.set_log_format("simple") # По умолчанию
config.set_log_format("verbose") # Подробный вывод
# Быстрое включение режима отладки
config.enable_debug() # Устанавливает уровень DEBUG + подробный формат логирования
Подробности см. в разделе Логирование.
# Включить/отключить кэширование
config.set_cache_enabled(True) # По умолчанию
config.set_cache_enabled(False) # Отключить кэширование
# Задать TTL кэша (time-to-live)
config.set_cache_ttl(60.0) # Кэш истекает через 60 секунд
config.set_cache_ttl(0.0) # Без срока действия (по умолчанию)
# Проверить текущие настройки
print(config.cache_enabled)
print(config.cache_ttl)
# Установить движок выполнения
config.set_execution_engine('auto') # Автовыбор (по умолчанию)
config.set_execution_engine('chdb') # Принудительно ClickHouse
config.set_execution_engine('pandas') # Принудительно pandas
# Быстрые пресеты
config.use_auto() # Автовыбор
config.use_chdb() # Принудительно ClickHouse
config.use_pandas() # Принудительно pandas
# Движок между DataStore (для операций между разными DataStore)
config.set_cross_datastore_engine('auto')
config.set_cross_datastore_engine('chdb')
config.set_cross_datastore_engine('pandas')
# Проверить текущий движок
print(config.execution_engine)
Подробнее см. в разделе Движок выполнения.
# Режим производительности: SQL в приоритете, без накладных расходов на совместимость с pandas
config.use_performance_mode()
# или: config.set_compat_mode('performance')
# Режим совместимости с pandas (по умолчанию)
config.use_pandas_compat()
# или: config.set_compat_mode('pandas')
# Проверка текущего режима
print(config.compat_mode) # 'pandas' или 'performance'
Подробнее см. в разделе Режим производительности.
Конфигурация данных профилирования
# Включить сбор данных профилирования
config.enable_profiling()
config.set_profiling_enabled(True)
# Отключить сбор данных профилирования
config.set_profiling_enabled(False)
# Проверить, включены ли данные профилирования
print(config.profiling_enabled)
Подробнее см. в разделе данные профилирования.
from chdb.datastore.dtype_correction.config import CorrectionLevel
# Установить уровень коррекции
config.set_correction_level(CorrectionLevel.NONE) # Без коррекции
config.set_correction_level(CorrectionLevel.CRITICAL) # Только критические типы
config.set_correction_level(CorrectionLevel.HIGH) # По умолчанию
config.set_correction_level(CorrectionLevel.MEDIUM) # Больше коррекций
config.set_correction_level(CorrectionLevel.ALL) # Все коррекции
Использование объекта config
Объект config — singleton, который управляет всеми настройками:
from chdb.datastore.config import config
# Чтение настроек
print(config.log_level)
print(config.execution_engine)
print(config.cache_enabled)
print(config.profiling_enabled)
# Изменение настроек
config.set_log_level(logging.DEBUG)
config.set_execution_engine('chdb')
config.set_cache_enabled(False)
config.enable_profiling()
Конфигурация отдельных скриптов
from chdb import datastore as pd
from chdb.datastore.config import config
# Настройка в начале скрипта
config.enable_debug()
config.use_chdb()
config.enable_profiling()
# Ваш код DataStore
ds = pd.read_csv("data.csv")
result = ds.filter(ds['age'] > 25).groupby('city').agg({'salary': 'mean'})
Менеджер Context (в разработке)
# Запланированная возможность: временная конфигурация
with config.override(execution_engine='pandas'):
result = ds.process()
# Исходные настройки восстановлены
Типовые сценарии конфигурации
from chdb.datastore.config import config
config.enable_debug() # Подробное логирование
config.enable_profiling() # Отслеживание производительности
config.set_cache_enabled(False) # Отключить кэширование для получения актуальных результатов
from chdb.datastore.config import config
import logging
config.set_log_level(logging.WARNING) # Минимальное логирование
config.set_execution_engine('auto') # Оптимальный выбор движка
config.set_cache_enabled(True) # Включить кэширование
config.set_profiling_enabled(False) # Отключить сбор данных профилирования
Максимальная пропускная способность
from chdb.datastore.config import config
config.use_performance_mode() # SQL в приоритете, без накладных расходов pandas
config.set_cache_enabled(False) # Отключить кэш для стриминга
Тестирование производительности
from chdb.datastore.config import config
config.use_chdb() # Принудительно использовать ClickHouse для бенчмарков
config.enable_profiling() # Отслеживать производительность
config.set_cache_enabled(False) # Отключить кэш для точного измерения времени
Тестирование совместимости с Pandas
from chdb.datastore.config import config
config.use_pandas() # Принудительно использовать движок pandas
config.enable_debug() # Показать, какие операции используются
Последнее изменение 10 июня 2026 г.