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

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages