Разработка ETL для получения данных из сервиса omnidesk https://omnidesk.ru/
Данные сохранятся в базе sqllite cases.db
.
будут созданы таблицы:
cases - таблица с обращениями
labels - таблица с метками
case_label - связь между метками и обраащениями
При каждом запуске таблицы очищаются и наполняются заного
-
Скачать репозиторий
-
Создать и активировать виртуальное окружение
-
Выполнить
pip install -r requirements.txt
-
Создать файл
.env
в корне проекта, который будет содержать 2 переменные
OMNIDESK_USER_EMAIL = <емеил, который использовался для регистрации в omnidesk>
OMNIDESK_TOKEN = <токен, который был получен в omnidesk>
Либо можно их добавить в переменные окружения перед запуском скрипта в файлеdevelop.env
содержится шаблон, можно подсмотреть там. -
В файле
config.py
присвоить переменнойOMNIDESK_API_URL
значениеhttps://[omnidesk-user].omnidesk.ru/api/
, гдеomnidesk-user
имя пользователя omnidesk -
Выполнить
alembic revision --autogenerate -m "create tables"
для создания необходимых таблиц. будет создана sqllite базаcases.db
и скрипт миграции. -
Накатить миграцию командой
alembic upgrade head
. -
Сама загрузка запускается командой
python -m omnidesk_etl --from_time YYYY-MM-DD
параметр--from_time
отвечает за то с какого момента будут загружаться обращения.