https://github.com/inzhenerka/scooters_data_uploader
Загрузка данных в PostgreSQL в рамках курса по dbt от Инженерка.Тех
https://github.com/inzhenerka/scooters_data_uploader
data dbt postgresql
Last synced: about 2 months ago
JSON representation
Загрузка данных в PostgreSQL в рамках курса по dbt от Инженерка.Тех
- Host: GitHub
- URL: https://github.com/inzhenerka/scooters_data_uploader
- Owner: Inzhenerka
- Created: 2024-10-22T00:06:09.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-14T00:09:38.000Z (over 1 year ago)
- Last Synced: 2025-03-14T00:32:30.093Z (over 1 year ago)
- Topics: data, dbt, postgresql
- Language: Python
- Homepage: https://t.me/inzhenerka_dbt_bot
- Size: 8.79 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Scooters Data Uploader
[](https://pypi.org/project/scooters-data-uploader/)

Простой инструмент для загрузки данных о скутерах в базу данных PostgreSQL на основе DuckDB
в рамках
симулятора [Data Warehouse Analytics Engineer на базе dbt для инженеров и аналитиков данных](https://inzhenerka.tech/dbt)
от школы ИнженеркаТех.
Несмотря на то, что телеграм-бот [dbt Data Bot](https://t.me/inzhenerka_dbt_bot) позволяет проще загрузить данные
в базу данных через интернет, данный проект работает с локальными и приватными базами.
## Подготовка
Проще всего работать с приложением через пакетный менеджер `uv`. Его
нужно [установить](https://docs.astral.sh/uv/getting-started/installation/).
Один из вариантов установки:
```bash
pip install uv
```
После установки убедитесь, что `uv` доступен и работает с приложением:
```bash
uvx scooters-data-uploader
```
Использование `uvx` позволяет избежать клонирования репозитория и установки зависимостей, делая процесс простым и
чистым.
## Подготовка адреса базы данных
Нужно подготовить адрес базы данных в формате Database URI:
```
postgresql://:@:/
```
Пример (стандартный адрес для локального PostgreSQL):
```
postgresql://postgres:postgres@localhost:5432/postgres
```
## Загрузка данных
Для загрузки данных из удаленного репозитория в базу данных выполните команду `upload`,
передав адрес базы данных в качестве аргумента:
```bash
uvx scooters-data-uploader upload
```
Пример:
```bash
uvx scooters-data-uploader upload postgresql://postgres:postgres@localhost:5432/postgres
```
## Проверка свежести данных
Для проверки свежести данных в базе выполните команду `version`, передав адрес базы данных в качестве аргумента:
```bash
uvx scooters-data-uploader version
```
Пример:
```bash
uvx scooters-data-uploader version postgresql://postgres:postgres@localhost:5432/postgres
```
## Другие команды
Открыть Telegram-бота для загрузки данных через интернет:
```bash
uvx scooters-data-uploader bot
```
Скачать SQL-файл со всеми данными для загрузки через `psql`:
```bash
uvx scooters-data-uploader sql
```
## Помощь
Для получения справки по использованию утилиты выполните команды:
```bash
uvx scooters-data-uploader --help
uvx scooters-data-uploader upload --help
uvx scooters-data-uploader version --help
```
## Альтернативные способы получения данных
### Импорт из SQL-файла
Если приложение по какой-то причине не работает, можно воспользоваться штатными средствами PosgtreSQL (psql,
pg_restore),
чтобы создать схему со всеми таблицами из
файла [scooters_raw.sql](https://inzhenerka-public.s3.eu-west-1.amazonaws.com/scooters_data_generator/scooters_raw.sql).
Пример команды для загрузки данных из файла:
```bash
psql -U postgres -d postgres < scooters_raw.sql
```
### Загрузка через бота
Телеграм-бот [dbt Data Bot](https://t.me/inzhenerka_dbt_bot) позволяет загрузить данные в базу данных, доступную через
интернет.
## Источник данных
Данные созданы в симуляторе поездок [scooters_data_generator](https://github.com/Inzhenerka/scooters_data_generator).
Там же можно найти ссылки на опубликованные parquet-файлы с данными, которые использует данное приложение для загрузки в
базу.
## Другие ссылки
- [Чебоксарский кикшеринг покоряет столицу](https://vc.ru/u/206753-farya-roslovets/1103469)
- [Тренажеры по работе с данными от Инженерки](https://inzhenerka.tech/working-with-data)