Задача: создание и испытание бенчмарков, реализованных на пяти библиотеках(SQLite3, DuckDB, Pandas, Psycopg2, SQLAlchemy).
Для выполнения задания были дополнительно использованы Docker Engine и PGAdmin.
Проект представляет собой 5 python файлов с бенчмарками, главный файл(LAB3BD), конфиг и инит файлы.
Для проверки библиотек были использованы 4 SQL запроса:
SELECT VendorID, count(*) FROM trips GROUP BY 1;
SELECT passenger_count, avg(total_amount) FROM trips GROUP BY 1;
SELECT passenger_count, extract(year from tpep_pickup_datetime), count(*) FROM trips GROUP BY 1, 2;
SELECT passenger_count, extract(year from tpep_pickup_datetime), round(trip_distance), count(*) FROM trips GROUP BY 1, 2, 3 ORDER BY 2, 4 desc;Проверка была осуществлена на 2-ух наборах данных.
Изучение этой темы встретило меня не очень дружелюбно. Однако по итогу я могу сказать, что результат оказался познавательным. DuckDB показала себя, как самая быстрая система (быстрее SQLite3, как и утверждают источники рекламирующие DuckDB). Psycopg2, Pandas показали себя лучше на большом наборе данных. Итоги SQLite и SQLAlchemy схожи из-за того, что последнее базируется на своём собрате. Каждая библиотека имеет свои плюсы и минусы, что в сумме даёт весьма хорошую базу для работы с наукой о данных. Python является, по моему мнению, лучшим из общеизвестных языков для работы с большими базами данных.
А ещё изначально csv файлы были немного поломаны, колонка airport_fee была разделена на две колонки.






