/gpbhack_not_set

Primary LanguagePythonMIT LicenseMIT

rtdm_analyze

CLI-утилита анализа взаимосвязей кампаний SAS RTDM и дата-процессов, которые используются в этих кампаниях.
Визуализирует графы отношений "кампания -> дата-процесс" и "дата-процесс -> кампания" (общий и для каждой кампании и каждого дата-процесса), записывает данные в БД (сущности и связи) и выводит список названий неиспользуемых дата-процессов.
Утилита может работать из под win/mac/linux, запускается из командной строки.

Зависимости

  • python >= 3.9
  • graphviz = 2.47.2 (https://graphviz.org/download/ - необходимо установить на ОС, для генерации файлов визуализации графов)
  • requirements.txt – список Python-библиотек, необходимых для работы утилиты

Установка

  1. Скачать саму утилиту: git clone https://github.com/vasyanch/gpbhack_not_set.git
  2. Подготовить для нее окружение и установить:
    • перейти в папку проекта
    • выполнить python -v venv venv –> создание виртуального окружения python для изоляции от глобальных библиотек, в результате создаться директория venv в папке из которой была запущенна команда
    • ативировать виртуальное окружение, выполнить команду:
      • windows: venv\Scripts\activate.bat
      • linux/mac: source venv/bin/activate
    • выполнить
      pip install -e . –> установка пакета и зависимостей

Запуск

  1. Заполнить файл конфигурации rtdm_analyze/config.yaml
  2. Задать переменные окружения с паролями к 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

Результат выполнения

  1. В папке rtdm_analyze/visualized_results/campaigns появляются визуализации взаимосвязей "Кампании -> Дата-процессы".
    Общий по всем полученным кампаниям (all_campaigns.gv.pdf) и отдельный для каждой кампании (например, campaign_HACK1_MAIN.gv.pdf)
  2. В папке rtdm_analyze/visualized_results/data_processes появляются визуализации взаимосвязей "Дата-процессы -> Кампании".
    Общий по всем полученным кампаниям (all_data_processes.gv.pdf) и отдельный для каждой кампании (например, data_process_CLIENT.gv.pdf)
  3. В операционной БД в схеме RTDM_TECH заполняются 4 таблицы, которые хранят зависимости между Кампаниями –> Блоками –> Дата-процессами:
  • campaigns
  • campaigns_blocks
  • campaigns_blocks_data_processes_association
  • data_processes
  1. Если был передан путь к log-файлу SAS ExportPackage, то в stdout выведутся названия неиспользуемых дата-процессов, например:
...
Found 5 unused data-processes:
CLIENT_v1
READ_ADDRESS_v1
READ_G_CHECKS
GRID_CLIENT
READ_DOCUMENT_v1.5