Скрипт разработан на языке python и предназначен для разбора (парсинга) технологического журнала и дальнейшей загрузки его в базу данных. Скрипт способен разбирать полный технологический журнал без фильтров с планами запросов. Пример конфигурационного файла для тестов находится в папке проекта "full_logcfg.xml".
В результате работы скрипта ба базе данных заполняется одна единственная таблица. Каждый параметр загружается в отдельную колонку.
Дальше для анализа журнала можно использовать все средства СУБД для выборки данных.
Выгрузка поддерживается в следующие СУБД: MSSQL, Postgres, SQLight
Скачайте и установите python по ссылке: https://www.python.org/downloads/
Клонируйте репозиторий
git clone https://github.com/free-archer/read-tj-pl.git
или скачайте архив с кодом
https://github.com/free-archer/read-tj-pl/archive/refs/tags/v1.0.0.zip
После распаковки архива необходимо создать виртуальное окружение python, чтобы не засорять модулями систему. Выполните команду:
python -m virtualenv env
Активируйте виртуальное окружение:
.\env\Scripts\activate.bat
После установите необходимы зависимости из файла:
pip install -r .\requirements.txt
Параметры запуска и параметры подключения к СУБД вынесены в переменные окружения, чтобы не держать их в коде.
Все параметры содержаться в файле start.bat.simple
Переименуйте файл удалив ".simple". Останется "start.bat".
Задайте в файле необходимые параметры, они вполне понятны.
@echo off
REM Путь к файлу с логами технологического журнала 1С
set filename=21103114.log
REM Параметры соединения с базой данных. Для MSSQL и postgres совпадают.
set sql_type=sqlight
REM sql_type может принимать заначения: mssql, postgres, sqlight
set server=localhost
set database=tempdb
set username=sa
set password=pass
set table=table_name
REM Для SQLight достаточно указать только имя или путь к файлу. Файл будет создан в текущей директории запуска.
set db_file=foo2.db
После чего выполните запуск bat-файла.
Пример файла сделан для windows, но его несложно изменить для Linux.
Для просмотра результата SQLight базы удобно использовать бесплатную программу: https://sqlitebrowser.org/
Был взят полный технологический журнал property=all
размером 1032 Мб
Количество строк в журнале: 290760
(сейчас тот скрипт не используется, находится в папке /deprecated/parse.py)
Время выполнения: 0:04:10
Потребление памяти 3,344 Gb
Время выполнения: 0:09:39 mssql сервер
Время выполнения: 0:09:28 postgres сервер
Время выполнения: 0:41:00 Sqlight
Потребление памяти 3,365 Gb
Изначально проект начинал реализовываться на языке perl. В том числе чтобы сравнить perl и python. Из за сложностей в реализации проект на perl заброшен. Хотя скрипт работает. Скрипт остался в папке /deprecated/parse.pl.