Package: profcomff-definitions
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_tableimportTestВ строчку c __all__ = [] необходимо добавить название импортированной таблицы в кавычках. В нашем случае файл __init__.py будет выглядеть так:from.test_tableimportTest__all__=["Test"]Если у вас несколько таблиц, то в __all__ их надо перечислять через запятую. К примеру:from.test_file_firstimportTestFirst,TestTrirdfrom.test_file_secondimportTestSecond__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-Работа-с-данными