Skip to content

Inzhenerka/dbt_scooters_finance

Repository files navigation

Финансовый расчет с dbt и DuckDB

Этот проект демонстрирует, как использовать dbt и DuckDB для локального анализа чувствительных финансовых данных.

Исходные данные хранятся в файле finance_data/costs.xlsx. Этот файл содержит затраты кикшеринговой компании "Каталкин" на обслуживание самокатов и поддержание работы.

Статистика поездок и выручки подгружается из parquet-файла, который хранится в S3.

Каталог данных

Каталог dbt, который автоматически обновляется из ветки main:

https://inzhenerka.github.io/dbt_scooters_finance/

Установка зависимостей

pip install -r requirements.txt

Запуск проекта

dbt build

Анализ результатов

Итоговые таблицы выгружаются в файлы в папке output_data.

На Linux/MacOS результаты можно вывести в консоль:

chmod +x post_commands.sh
./post_commands.sh

Конвертация Excel-файла в CSV

Это необязательный шаг, потому что dbt-duckdb умеет читать Excel-файлы напрямую благодаря расширению spatial. Но для наглядности и удобства работы с данными проект использует CSV.

DuckDB позволяет удобно конвертировать данные между поддерживаемыми форматами:

duckdb -c "INSTALL spatial; LOAD spatial; COPY (FROM st_read('finance_data/costs.xlsx')) TO 'finance_data/costs.csv';"