Skip to content

LeTim42/lab3

Repository files navigation

Бенчмарк "4 queries"

Установка

  1. Склонировать проект
  2. Установить Python 3.11.6
  3. Установить Разработка классических приложений на C++ с помощью Visual Studio Installer (для DuckDB)
  4. Установить библиотеки из requirements.txt с помощью pip install -r requirements.txt
  5. Установить PostgreSQL 16.1

Запуск

  1. Скопировать в папку data csv-файл с данными
  2. Изменить файл под нужный формат для работы с ними. Если данные взяты отсюда:
    • Скомпилировать файл fix.cpp (подойдет почти любой компилятор для C++)
    • Запустить программу, передав в нее в качестве аргумента название csv-файла (без расширения)
  3. Изменить файл config.json:
    • dataset: название csv-файла (без расширения)
    • libraries: библиотеки для бенчмарка (можно указывать только те, что записаны изначально)
    • queries: запросы для бенчмарка (1, 2, 3, 4)
    • postgres: параметры для входа в базу данных PostgreSQL
    • tests: количество тестов
  4. Запустить файл main.py

Выводы

Результаты и графики в results.xlsx По результатам бенчмарка на csv-файле размером 2 ГБ:

  • Быстрее всех работает DuckDB: написана на C++, обрабатывает данные параллельно
  • На втором месте Pandas: использует векторизацию, менее оптимизирована под SQL
  • Psycopg2 и SQLAlchemy работают примерно одинаковое время: схожая реализация, оба загружают данные из PostgreSQL
  • Медленнее всех работает SQLite: легкая библиотека, нет оптимизаций

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors