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 -r requirements.txt
Использование
В своих базах данных мы используем postgres базы данных. Для того чтобы использовать данный репозиторий необходимо сделать несколько предварительных шагов
-
Проделай пункты из "Как начать работу локально" отсюда: https://github.com/profcomff/dwh-airflow
-
Склонируй этот репозиторий на свой компьютер командой
git clone https://github.com/profcomff/dwh-definitions -
Создай виртуальное окружение 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, описание базы данных в виде питона
-
Обнови схему базы данных командой
alembic upgrade head. Это создаст в базе данных все те же таблицы, что есть в production базе данных. -
После этого в папках из /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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90d79b62ddcb6e56de3a669c7bfa34aefcc07c3aecb57bbefcc84024fca7c1a0
|
|
| MD5 |
19c364c6fd015c331bb4f0e74ca2dabf
|
|
| BLAKE2b-256 |
5023ab14f7d6e7a004a42656a8e60db838ea03b6d09a6dce70607a4f9a85c3bf
|
Provenance
The following attestation bundles were made for profcomff_definitions-2024.2.8.tar.gz:
Publisher:
deploy_and_publish.yml on profcomff/dwh-definitions
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
profcomff_definitions-2024.2.8.tar.gz -
Subject digest:
90d79b62ddcb6e56de3a669c7bfa34aefcc07c3aecb57bbefcc84024fca7c1a0 - Sigstore transparency entry: 169740321
- Sigstore integration time:
-
Permalink:
profcomff/dwh-definitions@cbdc32c6351f755f0e7deb7cb9f57b43d80ccb51 -
Branch / Tag:
refs/tags/v2024.02.08 - Owner: https://github.com/profcomff
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy_and_publish.yml@cbdc32c6351f755f0e7deb7cb9f57b43d80ccb51 -
Trigger Event:
push
-
Statement type:
File details
Details for the file profcomff_definitions-2024.2.8-py3-none-any.whl.
File metadata
- Download URL: profcomff_definitions-2024.2.8-py3-none-any.whl
- Upload date:
- Size: 28.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd887c1e87856d95080c138108b7b3bcab6a30efa1d2744a0751963f24fd6cdf
|
|
| MD5 |
bd0fd756e5942040b8470060b744afac
|
|
| BLAKE2b-256 |
c9b5d4cd229dad3930c8134a810be384c5dd23c4b211aad9c0001d34d9c91057
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
profcomff_definitions-2024.2.8-py3-none-any.whl -
Subject digest:
bd887c1e87856d95080c138108b7b3bcab6a30efa1d2744a0751963f24fd6cdf - Sigstore transparency entry: 169740322
- Sigstore integration time:
-
Permalink:
profcomff/dwh-definitions@cbdc32c6351f755f0e7deb7cb9f57b43d80ccb51 -
Branch / Tag:
refs/tags/v2024.02.08 - Owner: https://github.com/profcomff
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy_and_publish.yml@cbdc32c6351f755f0e7deb7cb9f57b43d80ccb51 -
Trigger Event:
push
-
Statement type: