CLI-утилита анализа взаимосвязей кампаний SAS RTDM и дата-процессов, которые используются в этих кампаниях.
Визуализирует графы отношений "кампания -> дата-процесс" и "дата-процесс -> кампания"
(общий и для каждой кампании и каждого дата-процесса), записывает данные в БД (сущности и связи)
и выводит список названий неиспользуемых дата-процессов.
Утилита может работать из под win/mac/linux, запускается из командной строки.
- python >= 3.9
- graphviz = 2.47.2 (https://graphviz.org/download/ - необходимо установить на ОС, для генерации файлов визуализации графов)
- requirements.txt – список Python-библиотек, необходимых для работы утилиты
- Скачать саму утилиту:
git clone https://github.com/vasyanch/gpbhack_not_set.git
- Подготовить для нее окружение и установить:
- перейти в папку проекта
- выполнить
python -v venv venv
–> создание виртуального окружения python для изоляции от глобальных библиотек, в результате создаться директория venv в папке из которой была запущенна команда - ативировать виртуальное окружение, выполнить команду:
- windows:
venv\Scripts\activate.bat
- linux/mac:
source venv/bin/activate
- windows:
- выполнить
pip install -e .
–> установка пакета и зависимостей
- Заполнить файл конфигурации rtdm_analyze/config.yaml
- Задать переменные окружения с паролями к SAS, серверу SAS и URL подключения БД для SqlAlchemy.
Список необходимых переменных лежит в файле rtdm_analyze/example.env
Утилита имеет command-line интерфейс и принимает следующие аргументы командной строки:
- campaign_name –> имя SAS кампании которую необходимо проанализировать, обязательная аргумент
- -l, --local –> булевый флаг, необязательная аргумент, с помощью нее указывается где запускается утилита:
- При отсутствие флага: на рабочей машине (будет подключаться по ssh к серверу для получения .xml файлов с описанием SAS диаграмм),
- При наличие флага: непосредственно на сервере с SAS RTDM
- --export-package-log-file путь до лог-файла, полученного после запуска утилиты SAS ExportPackage, необязательный аргумент, используется для того, чтобы показать неиспользуемые дата-процессы в анализируемой кампании. Необходимо получить лог-файл на сервере, скачать его на машину, где запускается утилита, передать путь до него через этот аргумент и программа выведет в stdout список названий неиспользуемых дата-процессов
Пример запуска (из папки rtdm_analyze):
python main.py HACK1_MAIN --export-package-log-file tmp\MetaDataObjects.txt
- В папке rtdm_analyze/visualized_results/campaigns появляются визуализации взаимосвязей "Кампании -> Дата-процессы".
Общий по всем полученным кампаниям (all_campaigns.gv.pdf) и отдельный для каждой кампании (например, campaign_HACK1_MAIN.gv.pdf) - В папке rtdm_analyze/visualized_results/data_processes появляются визуализации взаимосвязей "Дата-процессы -> Кампании".
Общий по всем полученным кампаниям (all_data_processes.gv.pdf) и отдельный для каждой кампании (например, data_process_CLIENT.gv.pdf) - В операционной БД в схеме RTDM_TECH заполняются 4 таблицы, которые хранят зависимости между Кампаниями –> Блоками –> Дата-процессами:
- campaigns
- campaigns_blocks
- campaigns_blocks_data_processes_association
- data_processes
- Если был передан путь к log-файлу SAS ExportPackage, то в stdout выведутся названия неиспользуемых дата-процессов, например:
...
Found 5 unused data-processes:
CLIENT_v1
READ_ADDRESS_v1
READ_G_CHECKS
GRID_CLIENT
READ_DOCUMENT_v1.5