Интеграция с Региональной витриной данных
Project description
Проект "Интеграция с Региональной витриной данных"
Описание концепции
Принцип работы
Требования к окружению
Разворачивание
Параметры конфигурационного файла
В разных проектах существуют различные способы добавления настроек, где-то через плагины, где-то напрямую в settings.py. Будет рассмотрен подход указания настроек в settings.py и указания параметров в конфигурационном файле.
Для возможности конфигурирования необходимо проделать ряд действий. В settings.py нужно добавить:
-
Определение значений по умолчанию настроек:
PROJECT_DEFAULT_CONFIG.update({ # Настройки РВД ('rdm_general', 'EXPORT_ENTITY_ID_PREFIX'): '', # Дефолтное значение нужно изменить на специфическое системе ('rdm_general', 'COLLECT_CHUNK_SIZE'): 500, ('rdm_general', 'EXPORT_CHUNK_SIZE'): 500, ('rdm_transfer_task', 'MINUTE'): '0', ('rdm_transfer_task', 'HOUR'): '*/4', ('rdm_transfer_task', 'TRANSFER_TASK_DAY_OF_WEEK'): '*', ('rdm_transfer_task', 'TIMEDELTA'): 3600, ('rdm_upload_status_task', 'MINUTE'): '*/30', ('rdm_upload_status_task', 'HOUR'): '*', ('rdm_upload_status_task', 'DAY_OF_WEEK'): '*', ('uploader_client', 'URL'): 'http://localhost:8090', ('uploader_client', 'DATAMART_NAME'): '', ('uploader_client', 'REQUEST_RETRIES'): 10, ('uploader_client', 'REQUEST_TIMEOUT'): 10, ('uploader_client', 'ENABLE_REQUEST_EMULATION'): False, }) -
Получение значений настроек из конфигурационного файла:
# Ссылка на каталог с файлами для загрузки UPLOADS = 'uploads' # ============================================================================= # Интеграция с Региональной витриной данных (РВД) # ============================================================================= # Префикс идентификаторов записей сущностей специфический для продукта RDM_EXPORT_ENTITY_ID_PREFIX = conf.get('rdm_general', 'EXPORT_ENTITY_ID_PREFIX') # Количество записей моделей ЭШ обрабатываемых за одну итерацию сбора данных RDM_COLLECT_CHUNK_SIZE = conf.get_int('rdm_general', 'COLLECT_CHUNK_SIZE') # Количество записей моделей обрабатываемых за одну итерацию экспорта данных RDM_EXPORT_CHUNK_SIZE = conf.get_int('rdm_general', 'EXPORT_CHUNK_SIZE') # Настройка запуска периодической задачи выгрузки данных: RDM_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task', 'MINUTE') RDM_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task', 'HOUR') RDM_TRANSFER_TASK_DAY_OF_WEEK = conf.get('rdm_transfer_task', 'DAY_OF_WEEK') RDM_TRANSFER_TASK_TIMEDELTA = conf.get_int('rdm_transfer_task', 'TIMEDELTA') # Настройка запуска периодической задачи статуса загрузки данных в витрину: RDM_UPLOAD_STATUS_TASK_MINUTE = conf.get('rdm_upload_status_task', 'MINUTE') RDM_UPLOAD_STATUS_TASK_HOUR = conf.get('rdm_upload_status_task', 'HOUR') RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK = conf.get('rdm_upload_status_task', 'DAY_OF_WEEK') # Загрузка данных в Региональную витрину данных (РВД) # Адрес витрины (schema://host:port) RDM_UPLOADER_CLIENT_URL = conf.get('uploader_client', 'URL') # Мнемоника Витрины RDM_UPLOADER_CLIENT_DATAMART_NAME = conf.get('uploader_client', 'DATAMART_NAME') # Количество повторных попыток запроса RDM_UPLOADER_CLIENT_REQUEST_RETRIES = conf.get_int('uploader_client', 'REQUEST_RETRIES') # Таймаут запроса, сек RDM_UPLOADER_CLIENT_REQUEST_TIMEOUT = conf.get_int('uploader_client', 'REQUEST_TIMEOUT') # Включить эмуляцию отправки запросов RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION = conf.get_bool('uploader_client', 'ENABLE_REQUEST_EMULATION')
В дефолтный конфиг проекта необходимо добавить:
# Общие настройки интеграции с РВД
[rmd_general]
# Префикс идентификаторов записей сущностей специфический для продукта. Указывается в settings.py и не должен
# изменяться. Возможность изменения через конфигурационный файл оставлена для экстренных случаев.
# EXPORT_ENTITY_ID_PREFIX =
# Количество записей моделей обрабатываемых за одну итерацию экспорта данных
EXPORT_CHUNK_SIZE = 500
# Количество записей моделей ЭШ обрабатываемых за одну итерацию сбора данных
COLLECT_CHUNK_SIZE = 500
# Настройка запуска периодической задачи выгрузки данных
[rdm_transfer_task]
MINUTE=*/2
HOUR=*
DAY_OF_WEEK=*
# Дельта между прошлым и текущим запуском, сек
TIMEDELTA=120
# Настройка запуска периодической задачи статуса загрузки данных в витрину
[rdm_upload_status_task]
MINUTE=*/2
HOUR=*
DAY_OF_WEEK=*
[uploader_client]
# Адрес витрины
URL = http://localhost:8090
# Мнемоника Витрины
DATAMART_NAME = test
# Количество повторных попыток запроса
REQUEST_RETRIES = 10
# Таймаут запроса, сек
REQUEST_TIMEOUT = 10
# Включить эмуляцию отправки запросов
ENABLE_REQUEST_EMULATION = True
На основе дефолтного конфига произвести конфигурирование приложений.
Перечень настроек в settings.py указан в таблице ниже.
| Название настройки в settings | Описание | Значение по умолчанию |
|---|---|---|
| UPLOADS | Основная директория в MEDIA, в которой будет создана директория edu_rdm_integration для сохранения файлов для дальнейшей выгрузки | 500 |
| RDM_COLLECT_CHUNK_SIZE | Количество записей моделей обрабатываемых за одну итерацию сбора данных | 500 |
| RDM_EXPORT_CHUNK_SIZE | Количество записей моделей обрабатываемых за одну итерацию экспорта | 500 |
| RDM_UPLOADER_CLIENT_URL | Адрес витрины (schema://host:port) | 'http://localhost:8090' |
| RDM_UPLOADER_CLIENT_DATAMART_NAME | Мнемоника Витрины | 'test' |
| RDM_UPLOADER_CLIENT_REQUEST_RETRIES | Количество повторных попыток запроса | 10 |
| RDM_UPLOADER_CLIENT_REQUEST_TIMEOUT | Таймаут запроса, сек | 10 |
| RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION | Включить эмуляцию отправки запросов | True |
| RDM_TRANSFER_TASK_MINUTE | Настройка запуска периодической задачи выгрузки данных. Минута | '0' |
| RDM_TRANSFER_TASK_HOUR | Настройка запуска периодической задачи выгрузки данных. Час | '*/4' |
| RDM_TRANSFER_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи выгрузки данных. День недели | '*' |
| RDM_TRANSFER_TASK_TIMEDELTA | Дельта между предыдущим и следующим запуском периодической задачи в секундах | 3600 |
| RDM_UPLOAD_STATUS_TASK_MINUTE | Настройка запуска периодической задачи статуса загрузки данных в витрину. Минута | '*/30' |
| RDM_UPLOAD_STATUS_TASK_HOUR | Настройка запуска периодической задачи статуса загрузки данных в витрину. Час | '*' |
| RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи статуса загрузки данных в витрину. День недели | '*' |
Сборка и распространение
Инструкция для разработчика
Настройка PyCharm для работы
Запуск в системе
Запуск в контейнере
Правила внесения изменений
История изменений
Все изменения проекта должны быть отражены в этом файле.
Формат основан на Keep a Changelog и проект следует Семантическому версионированию.
[x.y.z] - гггг-мм-дд
Здесь должно быть расширенное описание того, что было сделано, какие есть планы у команды по дальнейшему развитию. Желательно будущие цели привязывать к конкретным задачам. Т.е. на каждую цель нужно поставить отдельную задачу и отразить ее номер здесь.
Добавлено
-
ПРОЕКТ-ZZZZ PATCH Название задачи или изменения.
-
ПРОЕКТ-YYYY MINOR Название задачи или изменения.
-
ПРОЕКТ-XXXX MAJOR Название задачи или изменения.
Изменено
Исправлено
[0.2.2] - 2023-08-06
Для API РВД добавлена поддержка параметра типа операции для загрузки данных.
Добавлено
- EDUSCHL-19920 PATCH Для API РВД добавлена поддержка параметра типа операции для загрузки данных.
[0.2.1] - 2023-08-05
Восстановление сборки пакета после ухода с poetry.
Добавлено
Изменено
Исправлено
- EDUSCHL-19919 PATCH Восстановление сборки пакета после миграции с poetry.
[0.2.0] - 2023-08-04
Перенос стратегий формирования Функций используемых в генерации исходников.
Добавлено
- EDUSCHL-19919 MINOR Перенесены стратегии создания Функций из ЭШ.
Изменено
Исправлено
[0.1.4] - 2023-08-03
Возвращение ранее удаленных зависимостей миграции
Добавлено
Изменено
-
EDUSCHL-20209 PATCH Возвращение зависимостей миграции.
-
EDUSCHL-20209 PATCH Доработки по формированию документации.
-
EDUSCHL-20200 Закреплены версии зависимостей, добавлена ссылка на uploader-client
Исправлено
[0.1.3] - 2023-07-24
Для раскатки миграций на ЭШ, пришлось закомментировать зависимости в initial-миграции.
Добавлено
Изменено
- EDUSCHL-19919 PATCH Вынести общую часть для работы с РВД из ЭШ для использования в ЭК.
Исправлено
[0.1.2] - 2023-07-23
Внесены изменения в кодовую базу после переноса механизма логирования из ЭШ в educommon.
Добавлено
Изменено
- EDUSCHL-19919 PATCH Вынести общую часть для работы с РВД из ЭШ для использования в ЭК.
Исправлено
[0.1.0] - 2023-07-18
Внесены изменения в кодовую базу после переноса механизма логирования из ЭШ в educommon.
Добавлено
- EDUSCHL-19919 MINOR Перенос базовых компонентов интеграции с РВД из ЭШ.
Изменено
Исправлено
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 edu-rdm-integration-0.2.2.tar.gz.
File metadata
- Download URL: edu-rdm-integration-0.2.2.tar.gz
- Upload date:
- Size: 52.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e7a202f4ffa4e1d35984885c3ee42618a7d39d5c5ee831832fad478f08ef53a
|
|
| MD5 |
83b2f75d680e3df6f5a2cd75a74057be
|
|
| BLAKE2b-256 |
bb12c9344320bf226e02265a2149615f1b0b89f6ae8e00cb5232f4566a2de4c7
|
File details
Details for the file edu_rdm_integration-0.2.2-py3-none-any.whl.
File metadata
- Download URL: edu_rdm_integration-0.2.2-py3-none-any.whl
- Upload date:
- Size: 78.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f98d85778c86cb7165975a13fdbb31eb219de866895f343dff236d4389fc527
|
|
| MD5 |
26af17f3b7f53f4567f850e1542687c8
|
|
| BLAKE2b-256 |
25cbded28f934619de62a46aa932484646c2bbf01304d228ab776e9bcb131d11
|