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-Работа-с-данными
Metadata
Release files for profcomff-definitions 2025.4.21.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| profcomff_definitions-2025.4.21.1.tar.gz | 84.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| profcomff_definitions-2025.4.21.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 123.5 kB
Release files / profcomff_definitions-2025.4.21.1.tar.gz
| Download URL | profcomff_definitions-2025.4.21.1.tar.gz |
|---|---|
| Size | 84.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
07ca2334b771da8c6adf4634ab1b8dc94aea589f3ad46d44b284787aab3de411
|
|
BLAKE2b-256 checksum How to use checksums |
36c86a87ea59797e7cc88af23796cfe1e75f3347208012a261c8d654a76402b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 21, 2025.
Transparency logRelease files / profcomff_definitions-2025.4.21.1-py3-none-any.whl
| Download URL | profcomff_definitions-2025.4.21.1-py3-none-any.whl |
|---|---|
| Size | 38.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
437fd744b18f4f41655f3739c3d9f087fbfe12c0155c2f27f12e7ea21fd28a6b
|
|
BLAKE2b-256 checksum How to use checksums |
513134a0d51b0dfaf9feef1ae4c696df0f665ee7b388847656dd7a05f52ba82a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 21, 2025.
Transparency log