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

Миграция одной строкой

Самый простой вариант — заменить import:
Вот и всё! Большая часть кода pandas работает без изменений.

Пошаговая миграция

1

Установите chDB

2

Измените импорт

3

Проверьте свой код

Запустите существующий код. Большинство операций работают без изменений:
4

Учтите различия

Некоторые операции работают иначе. См. раздел Ключевые различия ниже.

Что остается без изменений

Загрузка данных

Фильтрация

Выборка

GroupBy и агрегирование

Сортировка

Операции со строками

Operations с типом «дата и время»

Операции ввода-вывода


Основные различия

1. Отложенное вычисление

Операции DataStore выполняются отложенно — они не запускаются, пока не понадобятся результаты. pandas:
DataStore:

2. Возвращаемые типы

3. Параметр inplace не поддерживается

DataStore не поддерживает inplace=True. Всегда используйте возвращаемое значение: pandas:
DataStore:

4. Сравнение объектов DataStore

pandas не распознаёт объекты DataStore, поэтому для сравнения используйте to_pandas():

5. Порядок строк

DataStore может не сохранять порядок строк для файловых источников данных (например, SQL-баз данных). Используйте явную сортировку:

Сценарии миграции

Шаблон 1: чтение, анализ, запись

Шаблон 2: DataFrame с операциями в pandas

Если вам нужны возможности, специфичные для pandas, выполните преобразование в конце:

Сценарий 3: Смешанный процесс работы


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

DataStore работает значительно быстрее на больших наборах данных: Бенчмарк на 10 млн строк

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

Проблема: Операция не работает

Некоторые операции pandas могут не поддерживаться. Проверьте следующее:
  1. Есть ли эта операция в списке совместимости?
  2. Попробуйте сначала преобразовать данные в pandas: ds.to_df().operation()

Проблема: Разные результаты

Включите отладочное журналирование, чтобы понять, что происходит:

Проблема: Низкая производительность

Проверьте, как выполняется процесс:

Проблема: несоответствие типов

DataStore может по-разному определять типы:

Стратегия поэтапной миграции

Неделя 1: Проверка совместимости

Неделя 2: Переведите простые скрипты

Начните со скриптов, которые:
  • Читают большие файлы
  • Выполняют фильтрацию и агрегацию
  • Не используют пользовательские функции apply

Неделя 3: Разбор сложных случаев

Для скриптов с пользовательскими функциями:

Неделя 4: Полная миграция

Переведите все скрипты на импорт из DataStore.

FAQ

Можно ли использовать и pandas, и DataStore?

Да! Вы можете свободно преобразовывать их друг в друга:

Будут ли мои тесты по-прежнему проходить?

Большинство тестов должно проходить. Для тестов на сравнение преобразуйте данные в pandas:

Можно ли использовать DataStore в Jupyter?

Да! DataStore работает в Jupyter Notebook:

Как сообщить о проблемах?

Если вы столкнулись с проблемами совместимости, сообщите о них здесь: https://github.com/chdb-io/chdb/issues