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)

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

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

Ссылки

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

profcomff_definitions-2025.4.21.1.tar.gz (84.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

profcomff_definitions-2025.4.21.1-py3-none-any.whl (38.8 kB view details)

Uploaded Python 3

File details

Details for the file profcomff_definitions-2025.4.21.1.tar.gz.

File metadata

File hashes

Hashes for profcomff_definitions-2025.4.21.1.tar.gz
Algorithm Hash digest
SHA256 07ca2334b771da8c6adf4634ab1b8dc94aea589f3ad46d44b284787aab3de411
MD5 bb3ab100454fd3f76a8addae209e5c82
BLAKE2b-256 36c86a87ea59797e7cc88af23796cfe1e75f3347208012a261c8d654a76402b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for profcomff_definitions-2025.4.21.1.tar.gz:

Publisher: deploy_and_publish.yml on profcomff/dwh-definitions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file profcomff_definitions-2025.4.21.1-py3-none-any.whl.

File metadata

File hashes

Hashes for profcomff_definitions-2025.4.21.1-py3-none-any.whl
Algorithm Hash digest
SHA256 437fd744b18f4f41655f3739c3d9f087fbfe12c0155c2f27f12e7ea21fd28a6b
MD5 7e9c367a395f2d1e3485d5c7100778d3
BLAKE2b-256 513134a0d51b0dfaf9feef1ae4c696df0f665ee7b388847656dd7a05f52ba82a

See more details on using hashes here.

Provenance

The following attestation bundles were made for profcomff_definitions-2025.4.21.1-py3-none-any.whl:

Publisher: deploy_and_publish.yml on profcomff/dwh-definitions

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

2025.4.21.1 This release

2 files

2025.4.12

2 files

2025.2.21

2 files

2025.2.20

2 files

2024.8.30.7

2 files

2024.8.30.6

2 files

2024.8.30.4

2 files

2024.8.30.3

2 files

2024.8.30.2

2 files

2024.8.30

2 files

2024.8.28.3

2 files

2024.8.28.1

2 files

2024.8.27.1

2 files

2024.8.4.1

2 files

2024.5.10

2 files

2024.5.7.1

2 files

2024.5.7

2 files

2024.5.5.2

2 files

2024.2.8

2 files

2023.9.10

2 files

2023.8.22

2 files

2023.8.21

3 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page