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.2.8.tar.gz (69.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-2024.2.8-py3-none-any.whl (28.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: profcomff_definitions-2024.2.8.tar.gz
  • Upload date:
  • Size: 69.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for profcomff_definitions-2024.2.8.tar.gz
Algorithm Hash digest
SHA256 90d79b62ddcb6e56de3a669c7bfa34aefcc07c3aecb57bbefcc84024fca7c1a0
MD5 19c364c6fd015c331bb4f0e74ca2dabf
BLAKE2b-256 5023ab14f7d6e7a004a42656a8e60db838ea03b6d09a6dce70607a4f9a85c3bf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for profcomff_definitions-2024.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 bd887c1e87856d95080c138108b7b3bcab6a30efa1d2744a0751963f24fd6cdf
MD5 bd0fd756e5942040b8470060b744afac
BLAKE2b-256 c9b5d4cd229dad3930c8134a810be384c5dd23c4b211aad9c0001d34d9c91057

See more details on using hashes here.

Provenance

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