Skip to content

movAH02h/benchmark-data-base

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

benchmark-db

Подготовка:

  • Загрузить библиотки для работы с БД в Python:

    • psycopg2
    • sqlite3
    • duckdb
    • sqlalchemy
    • pandas
  • Загрузить pgadmin для работы с postgreSQL

  • После импорта csv файла в pgadmin столбцы с датами имеют тип TEXT. Нужно поменять этот тип на TIMESTAMP without timezone для работы ф-ии EXTRACT. "users" - имя таблицы:

    • ALTER TABLE users ALTER COLUMN tpep_pickup_datetime type TIMESTAMP USING create_time::TIMESTAMP;
    • ALTER TABLE users ALTER COLUMN tpep_dropoff_datetime type TIMESTAMP USING create_time::TIMESTAMP;
  • При импорте в .db из csv файла нужно поменять название столбца Airport_fee или удалить его вообще, т.к. там находятся NULL. Он выдает ошибку, потому что airport_fee (предпоследний столбец) = Airport_fee (последний столбец):

    • df.columns = [*df.columns[:-1], 'last_fee'] -> перед командой to_sql
  • Для duckdb лучше использовать отдельный файл .duckdb, чтобы не подключать сторонние штучки по типу sqlite_scanner

Объяснение:

  • db_params -> параметры базы данных postgreSQL. У каждого они свои, поэтому их тоже нужно заменить, если не совпадают с моими)

  • Все пути к файлам относительные, поэтому у каждого он свой. Прежде чем импортировать БД, нужно поменять эти пути на корректные (там где будет лежать csv файл)

  • В папке DB лежат файлы программ с тестами (файлы самого Benchmark)

  • В файле "Отчет" приведены все сравнения и мнения (которые смог)

  • В файле Last Benchmark.xlsx лежат все проделанные тесты и полученные сравнительные графики

  • В папке import в файлах import_postgresql, import_db, import_duckdb находятся программы для импорта базы данных из csv файлов, чтобы мы могли спокойно дальше с этими БД работать

  • Тесты на PostgreSQL проводятся на объеме данных 200 мб. Остальные библиотеки проходили тесты на объеме 2 гб данных

  • Файлы баз данных .db и .duckdb не "залил" на git

  • Так выглядел набор файлов:

    image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages