Этот проект демонстрирует, как использовать 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
Это необязательный шаг, потому что 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';"