profcomff-definitions 2024.8.30.7

Creator: railscoder56

Last updated:

Add to Cart

Description:

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-Работа-с-данными

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.