Last updated:
0 purchases
profcomffdefinitions 2024.8.30.7
dwh-definitions
Библиотека, описывающая структуру всех баз данных профкома ФФ. Реализована с помощью разделения всех баз данных в 4 категории - STG, DWH, ODS и DM.
Функционал
Удобное и структурированное хранение данных
Разграничение и удобное управление правами доступа
Разработка
Backend разработка – https://github.com/profcomff/.github/wiki/%5Bdev%5D-Backend-разработка
Работа с данными -https://github.com/profcomff/.github/wiki/%5Bdev%5D-Работа-с-данными
Quick start
Перейдите в папку проекта
Создайте виртуальное окружение командой:
python3 -m venv ./venv/
Установите библиотеки
pip install -r requirements.txt
Использование
В своих базах данных мы используем postgres базы данных. Для того чтобы использовать данный репозиторий необходимо сделать несколько предварительных шагов
Проделай пункты из "Как начать работу локально" отсюда: https://github.com/profcomff/dwh-airflow
Склонируй этот репозиторий на свой компьютер командой git clone https://github.com/profcomff/dwh-definitions
Создай виртуальное окружение Python. Для этого нужно:
Установить python3.11 (если еще не установлен): https://www.python.org/downloads/
Установить pip (если еще не установлен, команда в консоли python -m ensurepip --upgrade)
Создать в папке dwh-definitions новое виртуальное окружение python3.11 (команда в консоли python3.11 -m venv venv или python -m venv venv)
Подключиться к этому виртуальному окружению (команда консоли на windows: venv\Scripts\activate.bat, на мак/линукс: source venv/bin/activate)
Установить библиотеки командой pip install -U -r requirements.dev.txt -r requirements.txt
Теперь у тебя на компьютере есть база данных, Airflow, описание базы данных в виде питона
Обнови схему базы данных командой alembic upgrade head. Это создаст в базе данных все те же таблицы, что есть в production базе данных.
После этого в папках из /ddl можно создавать свои схемы таблиц. Пример таблицы можно посмотреть в /ddl/STG/union_member.py
Дальнейшие шаги:
Рассмотрим дальнейшие действия на примере тестовой таблицы Test. Допустим, что она лежит в /ddl/STG/test_table.py
Импортировать созданную таблицу в __init__.py файл соответствующей папки. В нашем случае в /ddl/STG/__init__.py необходимо дописать строчку:
from .test_table import Test
В строчку c __all__ = [] необходимо добавить название импортированной таблицы в кавычках. В нашем случае файл __init__.py будет выглядеть так:
from .test_table import Test
__all__ = ["Test"]
Если у вас несколько таблиц, то в __all__ их надо перечислять через запятую. К примеру:
from .test_file_first import TestFirst, TestTrird
from .test_file_second import TestSecond
__all__ = ["TestFirst", "TestSecond", "TestTrird"]
При этом порядок перечисления таблиц в __all__ не важен
После импортирования всех таблиц проведите миграцию, чтобы создались новые таблицы. Миграцию можно провести командами:
alembic revision --autogenerate -m "название_вашей_миграции"
alembic upgrade head
Перва команда создает ревизию - скрипт для перехода на новую версию базы данных.
Вторая команда обновляет базу данных (в данном случае создает новую таблицу Test)
Параметризация и плагины
Никаких настроек кроме стандартных нет
Ссылки
Backend разработка – https://github.com/profcomff/.github/wiki/%5Bdev%5D-Backend-разработка
Работа с данными -https://github.com/profcomff/.github/wiki/%5Bdev%5D-Работа-с-данными
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.