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.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.

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