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

Настройка DataStore

DataStore предоставляет широкие возможности настройки для выбора движка выполнения, режима совместимости, журналирования, кеширования, профилирования и коррекции типов данных (dtype).

Краткая справка

from chdb.datastore.config import config

# Quick setup presets
config.enable_debug()           # Enable verbose logging
config.use_chdb()               # Force ClickHouse engine
config.use_pandas()             # Force pandas engine
config.use_auto()               # Auto-select engine (default)
config.use_performance_mode()   # SQL-first, max throughput
config.use_pandas_compat()      # Full pandas compatibility (default)
config.enable_profiling()       # Enable performance profiling

Все параметры конфигурации

КатегорияОпцияЗначенияПо умолчаниюОписание
Logginglog_levelDEBUG/INFO/WARNING/ERRORWARNINGУровень детализации логов
log_format"simple", "verbose""simple"Формат сообщений лога
Cachecache_enabledTrue/FalseTrueВключить кэширование результатов
cache_ttlfloat (seconds)0.0Время жизни кэша (TTL)
Engineexecution_engine"auto", "chdb", "pandas""auto"Движок выполнения
cross_datastore_engine"auto", "chdb", "pandas""auto"Операции между DataStore
Compatcompat_mode"pandas", "performance""pandas"Режим совместимости: Pandas или максимальная производительность (SQL-first)
Profilingprofiling_enabledTrue/FalseFalseВключить профилирование
Dtypecorrection_levelNONE/CRITICAL/HIGH/MEDIUM/ALLHIGHУровень коррекции Dtype

Способы настройки

Настройка логирования

from chdb.datastore.config import config
import logging

# Set log level
config.set_log_level(logging.DEBUG)
config.set_log_level(logging.INFO)
config.set_log_level(logging.WARNING)  # Default
config.set_log_level(logging.ERROR)

# Set log format
config.set_log_format("simple")   # Default
config.set_log_format("verbose")  # More details

# Quick enable debug mode
config.enable_debug()  # Sets DEBUG level + verbose format

Дополнительные сведения см. в разделе Logging.

Настройка кэша

# Enable/disable caching
config.set_cache_enabled(True)   # Default
config.set_cache_enabled(False)  # Disable caching

# Set cache TTL (time-to-live)
config.set_cache_ttl(60.0)  # Cache expires after 60 seconds
config.set_cache_ttl(0.0)   # No expiration (default)

# Check current settings
print(config.cache_enabled)
print(config.cache_ttl)

Конфигурация движка

# Set execution engine
config.set_execution_engine('auto')    # Auto-select (default)
config.set_execution_engine('chdb')    # Force ClickHouse
config.set_execution_engine('pandas')  # Force pandas

# Quick presets
config.use_auto()     # Auto-select
config.use_chdb()     # Force ClickHouse
config.use_pandas()   # Force pandas

# Cross-DataStore engine (for operations between different DataStores)
config.set_cross_datastore_engine('auto')
config.set_cross_datastore_engine('chdb')
config.set_cross_datastore_engine('pandas')

# Check current engine
print(config.execution_engine)

Подробности см. в разделе Execution Engine.

Режим совместимости

# Performance mode: SQL-first, no pandas compatibility overhead
config.use_performance_mode()
# or: config.set_compat_mode('performance')

# Pandas compatibility mode (default)
config.use_pandas_compat()
# or: config.set_compat_mode('pandas')

# Check current mode
print(config.compat_mode)  # 'pandas' or 'performance'

Подробнее см. раздел Режим производительности.

Настройка профилирования

# Enable profiling
config.enable_profiling()
config.set_profiling_enabled(True)

# Disable profiling
config.set_profiling_enabled(False)

# Check if profiling is enabled
print(config.profiling_enabled)

Подробности см. в разделе Profiling.

Коррекция типов данных

from chdb.datastore.dtype_correction.config import CorrectionLevel

# Set correction level
config.set_correction_level(CorrectionLevel.NONE)      # No correction
config.set_correction_level(CorrectionLevel.CRITICAL)  # Critical types only
config.set_correction_level(CorrectionLevel.HIGH)      # Default
config.set_correction_level(CorrectionLevel.MEDIUM)    # More corrections
config.set_correction_level(CorrectionLevel.ALL)       # All corrections

Использование объекта config

Объект config — это синглтон, который управляет всеми параметрами:

from chdb.datastore.config import config

# Read settings
print(config.log_level)
print(config.execution_engine)
print(config.cache_enabled)
print(config.profiling_enabled)

# Modify settings
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

# Configure at script start
config.enable_debug()
config.use_chdb()
config.enable_profiling()

# Your DataStore code
ds = pd.read_csv("data.csv")
result = ds.filter(ds['age'] > 25).groupby('city').agg({'salary': 'mean'})

Менеджер контекста (планируется)

# Planned feature: temporary configuration
with config.override(execution_engine='pandas'):
    result = ds.process()
# Original settings restored

Типовые сценарии настройки

Разработка и отладка

from chdb.datastore.config import config

config.enable_debug()        # Verbose logging
config.enable_profiling()    # Performance tracking
config.set_cache_enabled(False)  # Disable caching for fresh results

Продакшн-среда

from chdb.datastore.config import config
import logging

config.set_log_level(logging.WARNING)  # Minimal logging
config.set_execution_engine('auto')    # Optimal engine selection
config.set_cache_enabled(True)         # Enable caching
config.set_profiling_enabled(False)    # Disable profiling overhead

Максимальная пропускная способность

from chdb.datastore.config import config

config.use_performance_mode()    # SQL-first, no pandas overhead
config.set_cache_enabled(False)  # Disable cache for streaming

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

from chdb.datastore.config import config

config.use_chdb()            # Force ClickHouse for benchmarks
config.enable_profiling()    # Track performance
config.set_cache_enabled(False)  # Disable cache for accurate timing

Проверка совместимости с Pandas

from chdb.datastore.config import config

config.use_pandas()          # Force pandas engine
config.enable_debug()        # See what operations are used

  • Execution Engine — подробности выбора движка
  • Performance Mode — режим SQL-first для максимальной пропускной способности
  • Function Config — конфигурация движка на уровне функции
  • Logging — настройка логирования
  • Profiling — профилирование производительности