Skip to main content

dwh-definitions

Библиотека, описывающая структуру всех баз данных профкома ФФ. Реализована с помощью разделения всех баз данных в 4 категории - STG, DWH, ODS и DM.

Функционал

  • Удобное и структурированное хранение данных
  • Разграничение и удобное управление правами доступа

Разработка

Quick start

  1. Перейдите в папку проекта
  2. Создайте виртуальное окружение командой:
python3 -m venv ./venv/
  1. Установите библиотеки
pip install -r requirements.txt

Использование

В своих базах данных мы используем postgres базы данных. Для того чтобы использовать данный репозиторий необходимо сделать несколько предварительных шагов

  1. Проделай пункты из "Как начать работу локально" отсюда: https://github.com/profcomff/dwh-airflow

  2. Склонируй этот репозиторий на свой компьютер командой git clone https://github.com/profcomff/dwh-definitions

  3. Создай виртуальное окружение 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, описание базы данных в виде питона

  4. Обнови схему базы данных командой alembic upgrade head. Это создаст в базе данных все те же таблицы, что есть в production базе данных.

  5. После этого в папках из /ddl можно создавать свои схемы таблиц. Пример таблицы можно посмотреть в /ddl/STG/union_member.py

Дальнейшие шаги:

Рассмотрим дальнейшие действия на примере тестовой таблицы Test. Допустим, что она лежит в /ddl/STG/test_table.py

  1. Импортировать созданную таблицу в __init__.py файл соответствующей папки. В нашем случае в /ddl/STG/__init__.py необходимо дописать строчку:
from .test_table import Test
  1. В строчку c __all__ = [] необходимо добавить название импортированной таблицы в кавычках. В нашем случае файл __init__.py будет выглядеть так:
from .test_table import Test

__all__ = ["Test"]
  1. Если у вас несколько таблиц, то в __all__ их надо перечислять через запятую. К примеру:
from .test_file_first import TestFirst, TestTrird
from .test_file_second import TestSecond

__all__ = ["TestFirst", "TestSecond", "TestTrird"]

При этом порядок перечисления таблиц в __all__ не важен

  1. После импортирования всех таблиц проведите миграцию, чтобы создались новые таблицы. Миграцию можно провести командами:
alembic revision --autogenerate -m "название_вашей_миграции"
alembic upgrade head

Перва команда создает ревизию - скрипт для перехода на новую версию базы данных. Вторая команда обновляет базу данных (в данном случае создает новую таблицу Test)

Параметризация и плагины

Никаких настроек кроме стандартных нет

Ссылки

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)

Source distribution for profcomff-definitions 2025.4.21.1
File Size Uploaded
profcomff_definitions-2025.4.21.1.tar.gz 84.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for profcomff-definitions 2025.4.21.1
File Interpreter ABI Platform
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 log

Release 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
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page