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-2024.8.30.7.tar.gz (48.8 kB view details)

Uploaded Source

Built Distribution

File details

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

File metadata

File hashes

Hashes for profcomff_definitions-2024.8.30.7.tar.gz
Algorithm Hash digest
SHA256 0e7e2edfffeb8d55e23022c76d15d0584155fcbc10555b427965aa5879a68d3a
MD5 cfbb5205019b9e01f557175060cef4cb
BLAKE2b-256 68bb70215eb45302442944f128bff4570e375ef38ad4b15c646ed6f530ae72a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for profcomff_definitions-2024.8.30.7-py3-none-any.whl
Algorithm Hash digest
SHA256 d6e1e2401dc1493c3406dda9c69208fc0673fe322295e4215deada1eab526900
MD5 3d1fcbe320400fadba624af654d35be1
BLAKE2b-256 219aba46c3434263027c01cc45796e078f7ef06950177e97de3952309eddadfd

See more details on using hashes here.

Supported by

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