Skip to main content

Data warehouse definitions and schemas

Project description

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)

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

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

Ссылки

Project details


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.12.tar.gz (76.8 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.12-py3-none-any.whl (33.8 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for profcomff_definitions-2025.4.12.tar.gz
Algorithm Hash digest
SHA256 adfe61eacbdaa8b21f73e1467e9cea295b7353c3b379da05a1bcbb4997b22299
MD5 464f0f7fdc18364778861dd179266364
BLAKE2b-256 f0b91a21c4b6aa9630505a3db66d4a4fa273bb733b0ec8df413a02650d235211

See more details on using hashes here.

Provenance

The following attestation bundles were made for profcomff_definitions-2025.4.12.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.12-py3-none-any.whl.

File metadata

File hashes

Hashes for profcomff_definitions-2025.4.12-py3-none-any.whl
Algorithm Hash digest
SHA256 09eac259e10e316e0b3bba99bdf5b928af9d35ab724ed6f4e6c548ebe45514eb
MD5 be1fa34ee6e053fac18a2ea79c475e98
BLAKE2b-256 e5e5520b91afc869f432b478f55b1d63351a68216a848aa791e0ce61342281c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for profcomff_definitions-2025.4.12-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.

Supported by

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