Skip to content

AlexVenem/Lab3FinR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LAB3BD

Задача: создание и испытание бенчмарков, реализованных на пяти библиотеках(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-ух наборах данных.

tiny

image image

Big

image image

Мнение о библиотеках

Изучение этой темы встретило меня не очень дружелюбно. Однако по итогу я могу сказать, что результат оказался познавательным. DuckDB показала себя, как самая быстрая система (быстрее SQLite3, как и утверждают источники рекламирующие DuckDB). Psycopg2, Pandas показали себя лучше на большом наборе данных. Итоги SQLite и SQLAlchemy схожи из-за того, что последнее базируется на своём собрате. Каждая библиотека имеет свои плюсы и минусы, что в сумме даёт весьма хорошую базу для работы с наукой о данных. Python является, по моему мнению, лучшим из общеизвестных языков для работы с большими базами данных.

А ещё изначально csv файлы были немного поломаны, колонка airport_fee была разделена на две колонки.

Примеры работы программы

SQLite image Pandas image image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages