Data warehouse definitions and schemas
Project description
dwh-definitions
Библиотека, описывающая структуру всех баз данных профкома ФФ. Реализована с помощью разделения всех баз данных в 4 категории - STG, DWH, ODS и DM.
Функционал
- Удобное и структурированное хранение данных
- Разграничение и удобное управление правами доступа
Разработка
- Backend разработка – https://github.com/profcomff/.github/wiki/%5Bdev%5D-Backend-разработка
- Работа с данными -https://github.com/profcomff/.github/wiki/%5Bdev%5D-Работа-с-данными
Quick start
- Перейдите в папку проекта
- Создайте виртуальное окружение командой:
python3 -m venv ./venv/
- Установите библиотеки
pip install -m requirements.txt
Использование
В своих базах данных мы используем postgres базы данных. Для того чтобы использовать данный репозиторий необходимо сделать несколько предварительных шагов
- Установить приложение - менеджер SQL баз данных (PG Admin 4 к примеру)
- Создать в приложении пользователя и базу данных (по умолчанию бд называется postgresql)
- В файле /migrations/env.py (34 строчка) заменить ссылку БД на свою. Формат ссылки:
postgresql://пользователь:пароль@хост:порт/название_бд
После этого в папках из /ddl можно создавать свои схемы таблиц. Пример таблицы можно посмотреть в /ddl/STG/union_member.py
Рассмотрим дальнейшие действия на примере тестовой таблицы Test. Допустим, что она лежит в /ddl/STG/test_table.py
Дальнейшие шаги:
- Импортировать созданную таблицу в __init__.py файл соответствующей папки. В нашем случае в /ddl/STG/__init__.py необходимо дописать строчку:
from .test_table import Test
- В строчку c __all__ = [] необходимо добавить название импортированной таблицы в кавычках. В нашем случае файл __init__.py будет выглядеть так:
from .test_table import Test
__all__ = ["Test"]
- Если у вас несколько таблиц, то в __all__ их надо перечислять через запятую. К примеру:
from .test_file_first import TestFirst, TestTrird
from .test_file_second import TestSecond
__all__ = ["TestFirst", "TestSecond", "TestTrird"]
При этом порядок перечисления таблиц в __all__ не важен
- После импортирования всех таблиц проведите миграцию, чтобы создались новые таблицы. Миграцию можно провести командами:
alembic revision --autogenerate -m "название_вашей_миграции"
alembic upgrade head
Перва команда создает ревизию - скрипт для перехода на новую версию базы данных. Вторая команда обновляет базу данных (в данном случае создает новую таблицу Test)
Параметризация и плагины
Никаких настроек кроме стандартных нет
Ссылки
- Backend разработка – https://github.com/profcomff/.github/wiki/%5Bdev%5D-Backend-разработка
- Работа с данными -https://github.com/profcomff/.github/wiki/%5Bdev%5D-Работа-с-данными
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for profcomff_definitions-2023.8.22.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 408342b1129c9c58529279d0d370bdc8d3f221025ccbab178cf99cb9197c2f2f |
|
MD5 | ae9d5ac637fa27e13ca73f4fa0714312 |
|
BLAKE2b-256 | 2a3a96c577c873302d934daf9b3a41eef1a5db7e9a65016881cba5a3a97f8307 |
Hashes for profcomff_definitions-2023.8.22-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ded67786049379dff4102205467b5ceb7f8c1cf5df415cbc56c6bd7cf29d01b2 |
|
MD5 | 9c02f0d8c9a24858399c9fbdd2eb5c7b |
|
BLAKE2b-256 | 0aeacfdfc7fb5afd524789093c934e994422b27ceba6339188f1713f35070b79 |