Data warehouse definitions and schemas
Project description
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-Работа-с-данными
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for profcomff_definitions-2024.5.7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f80e23498df7e8c086bff7f52df0d916c72420e9cc014c22dfd746ab6f6b6d7 |
|
MD5 | d1f0ce5dfacbe20f80a8a2cde79be798 |
|
BLAKE2b-256 | 3badcbe50962969fe15e57118da29b0f0fbb0bad97cf741ef20e9b7341dc776d |
Hashes for profcomff_definitions-2024.5.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99db7e7c45474ae7d38311cb619ab04a6e2452b78dc86a624ba5baad69d9b4d1 |
|
MD5 | e68a649b2f15c282f02ab579d7cef977 |
|
BLAKE2b-256 | b8d9df07313f78ae761179178bea1705cc8861ccd80c9c6f794ba9af848ff888 |