В прикрепленном архиве готовый Docker Compose файл bi_mirror_client.tar.gz ссылки из описания относяться к содержимому архива
Docker Compose конфигурация mirror-clients для обеспечения интеграции с qlik
Интеграция выглядит следующим образом
Qlik <-- MongoDB <--> Mirror Client <-- Mirror Service
Взаимодействие Mirror Client <-- Mirror Service
требует авторизации посредством установки AUTH_TOKEN
CDB Mirror Service представлен отдельными сервисами для синхронизации объектов процедур/реестров/джобера.
В docker-compose.yml они также представлены разными сервисами
Но при этом взаимодействуют в одной MongoDB и складывают информацию в разные коллекции.
Запуск может производиться на несколько окружений PROD/NON_PROD
Для запуска требуется установить переменные окружения:
Сделать это можно либо записав его в файл соответствующего окружения .env.non_prod или .env.prod.
Либо с помощью переменной окружения
export AUTH_TOKEN=....
export CLIENT_DATABASE_NAME=....
export CLIENT_DATABASE_USERNAME=....
export CLIENT_DATABASE_PASSWORD=....
После задания переменных, можно непосредственно запустить mirror-clients выполнив:
docker-compose --env-file ./.env.non_prod up -d
- NON_PROD
docker-compose --env-file ./.env.prod up -d
- PROD
Сервисы настроены на автоматический перезапуск при возникновении проблем
Файлы .env**** содержат в себе переменные окружения необходимые для запуска
Если возникает необходимость для ручной пересинхронизации, например по какой-то причине (одному богу известной) нет каких-то объектов, то необходимо запустить следующую команду
docker-compose -f resync-docker-compose.yml --env-file ./.env.non_prod up -d
- NON_PROD
docker-compose -f resync-docker-compose.yml --env-file ./.env.prod up -d
- PROD
Сервисы пересинхронизация имеют общую сеть с базовыми сервисами и актуализируют информации в Mongo. После завершения своей работы они остануться в выключеном состоянии.
Имена Mongo коллекций, в которые помещаются объекты всегда можно увидить/изменить в конфигурационных файлах
за это отвечает значение db_collection в секции каждого объекта синхронизации.
Значение db_ts_collection и соответствующие Mongo коллекций (в названии колекции присутствует окончание _ts), являются служебными и не требуют вмешательства
В данном конфигурации будут созданы следующие коллекции содержащие информацию для qlik:
Search API endpoints принимали дату в url и производили итерацию под капотом. При работе с Mongo необходимо будет использовать следующие запросы:
для объектов процедур
db.procedures.find({"_meta.systemDateModified": {$gte: new ISODate("2012-01-12T20:15:31Z")}}).sort({"_meta.systemDateModified":1})
для остальных объектов (временно пока они не перешли на использование _meta.systemDateModified)
db.registry.find({"dateModified": {$gte: new ISODate("2012-01-12T20:15:31Z")}}).sort({"dateModified":1})
Тестування на стороні ВІ
Pavel Kuzmenko (01d81066) at 23 Jan 18:53
fix: get_initial_point mongo datetime
Pavel Kuzmenko (fc91e413) at 23 Jan 18:32
fix: get_initial_point mongo datetime
Pavel Kuzmenko (56717947) at 23 Jan 18:29
Pavel Kuzmenko (56717947) at 23 Jan 17:29
fix: operation_type rollback
Pavel Kuzmenko (ff6f2eef) at 23 Jan 16:54
fix: operation_type rollback
Pavel Kuzmenko (86d18ae9) at 23 Jan 16:51
Pavel Kuzmenko (86d18ae9) at 23 Jan 15:54
Merge branch 'kpn/serialize_date' into 'master'
Pavel Kuzmenko (d168f8e7) at 23 Jan 15:52
issue: #10
Pavel Kuzmenko (5e6d1477) at 23 Jan 15:52
Merge branch 'kpn/serialize_date' into 'master'
... and 1 more commit
issue: #10
issue: #10
Pavel Kuzmenko (d168f8e7) at 23 Jan 15:35
fix: date format in mongo stor
Pavel Kuzmenko (19e1cedf) at 22 Jan 21:11
Merge branch 'kpn/10/bi_integration' into 'master'
Pavel Kuzmenko (e7a72d5e) at 22 Jan 20:43
fix: mongo hint and index issue: #10