Визуализация угольных процессов – шаг 1

Привет! Я немного Аналитик.

Предисловие: С наступающим днем Шахтера! Эта промышленность сейчас переживает не легкие времена и я в ней работаю.

В этой небольшой статье расскажу, как заменил Power BI (далее по тексту PBI) на импортозамещённое решение, чуть не написав заново свой BI с бэкджеком и графиками.

Немного о контексте.

В 2019 пришел трудиться в аналитики угольного предприятия. На базе системы навигации «АСК» создал с нуля новую систему диспетчеризации с адаптацией под подрядчиков угольных разрезов и оптимизации многих действий. В итоге внедрив решение диспетчеризации и аналитики на 19 угольных участках (больших и маленьких) разных предприятий, меня за хантила, маленькая, но очень перспективная угольная компания. И вот о том, как делая доступным визуализацию производственной информации в любом «утюге» я расскажу ниже.

Вводная часть.

В мое "распоряжение" попала компания с 3-я участками работ и 100 единиц Горнодобывающего оборудования (Самосвалы, Экскаваторы, Бульдозеры). Система навигации от компании «Союзтехноком», 1с:ЕРП + УАТ.

Так как из предыдущего опыта я не смог применить решения, которые я использовал, это было связано со сменой вендера навигационных(телематических) данных и не готовности УАТ предоставлять достоверные данные для автоматической отчетности. В результате чего стало необходимо освоить «СТК» и внедрить УАТ.

Приручение Power BI

Те, кто работал с «СоюзТехноком» знают, что забрать данные из этой программы для аналитики ОООЧень сложно. Есть только один вменяемый путь, настроить заранее пред настроенные отчеты, что бы они по расписанию выгружались в какую-нибудь папочку Widows. Так как раньше не работал в PBI, пару месяцев изучал этот инструмент и выбирал те отчеты из навигации, которые дают максимум оперативной информации в разрезе каждой операции производства. Ну и само собой был выбран самый большой отчет с кучей информации – это Хронометраж.

Пример отчета - Хронометраж
Пример отчета - Хронометраж

Этот Хронометраж выгружался в ексель и данные в нем были скомпонованы как фарш из мясорубки. Куча объединённых ячеек и сырых данных.

С первой проблемой справился при помощи Power Qwery, со второй создания дополнительных вычисляемых полей и быстрых мер, которые говорили, берем ли данную операцию рейса для анализа объемов перевозки или экскавации и можем ли доверять этим данным.

Пример работы в Power Qwery
Пример работы в Power Qwery
Пример связей таблиц из разных источников 
Пример связей таблиц из разных источников 

На выходе получил неплохой отчет с кучей измерений, выводов и готовил систему подсказок и влияния на производственный результат.

Пример отчета в Power BI
Пример отчета в Power BI
Еще пример отчета
Еще пример отчета

Но случилось, то что случилось PBI ушел из нашей страны, и моя идея о доступности всех отчетов в телефоне, планшете и любом утюге всех участников производственного процесса ушла вместе с ней.

Не буду расписывать как я 2 месяца на Django писал сайт с ответами на вопросы жизни вселенной и всего такого так как это было долго, решение было не таким красивым, так как дизайнер из меня не очень.

Немного для тех, кто в теме

Разработал один триггер: В зоне экскаватора.

Суть триггера – Фиксируется время прибытия в гео-зону или определённый радиус в метрах экскаватора, который грузил самосвал.

Цель триггера – определение реального продолжительности времени нахождения под экскаватором. А также оценка наличия или отсутствия профицита/дефицита самосвалов

Формула применение триггера – Превышение нормы времени ожидания погрузки = Интервал времени между срабатывания триггера и первой ложки погрузки – Норма времени установки под погрузку – норма ожидания погрузки (из модели производства)

Преимущества – автоматическая фиксация простоя (Ожидание погрузки) не взирая на действия самосвалистов и диспетчеров.

Визуализируй это!

Не взирая на рыночную ситуацию с BPI и продолжая процесс до настраивания УАТа и бизнесс-процессов диспетчеризации, продолжал искать решение, которое будет способствовать повышению эффективности предприятия и снижению себестоимости через доступность на утюгах и визуализацию.

За время поиска решений я повидал многое. Видел кучу неадекватка со словами: дайте нам 100 тыс, мы вам построим пример отчета, и вы поймете, как это работает. В одну из сессий переговоров даже собрали каких-то 15 человек, которые что-то рассказывали, но не говорили суть и как их BI система умеет собирать данные. Только общие слова.

И как говорится, что дорога возникает под ногами идущего и после очередного закрытия месяца я всё-таки решил не платить, а сам грызть гранит науки и выбор пал на DataLens от Яндекса. Что бы максимально быстрой войти в контекст, обратился к сообществу в Telegramm и мне быстро и качественно помог @gennadymoscow за 2 сессии консультации я практически перешел от PBI к yDL.

4 ШАГА К УСПЕХУ: 1. Подключение; 2. Датасеты; 3. Чарты; 4. Дашборды.
4 ШАГА К УСПЕХУ: 1. Подключение; 2. Датасеты; 3. Чарты; 4. Дашборды.

Скажу сразу, что плохо в yDL:

1. Все обучалки по yDL, что я видел по аналитике продаж, яндекс.метрики и ничего про производство;

2. Не умеет соединять данные(таблички) между 2-х разных источников данных;

3. Не умеет и принципиально не будет собирать данные по API (ответ разрабов yDL).

Решить эту проблему можно при помощи озер данных, но мне бы для начала попробовать и без больших вложений.

Имея на руках доступ к SQL системы навигации «СТК» я схватился за голову и задавал себе вопрос: как это все обрабатывать?..

Основные проблемы:

1. Очень много таблиц;

2. Не понятно, как собирать нужные данные, из которых собирать отчеты;

3. Понятно, что Планирование (Плановые показатели) буду прикручивать синей изолентой.

Так как в основном отчете по хронометражу есть большая куча вычисляемых параметров, я чуть было не отчаялся и был практически готов написать на python транслятор данных из xls файлов в какую-нибудь SQL табличку на арендованных серверах, что бы все было доступно для yDL.

По общавшись техподдержкой убедил их провести следующую операцию:

1. Взять отчет хронометража;

2. Запускать его с определенными параметрами 1 раз в 15-30 минут;

3. По готовности отчета, обновлять данные в одной SQL табличке.

Несколько часов ожидания, и мне дали вожделенную мной табличку. И магия началась.

Пример полученного датасета из нужной таблицы с вычисляемыми полями
Пример полученного датасета из нужной таблицы с вычисляемыми полями

Рассказывать, как делать дашборды не вижу смысла, так как обучалок много и сообщество отзывчивое. Лишь подкачу камушек в идеологию yDL. После создания парочки дашбордов у меня скопилось столько чартов (диаграмм) в плоской папочке, что если их не именовать по всем правилам задания имен переменных в программировании, запутаться через некоторое время очень просто.

Пример паки с чартами. Их много потому что они пред настроены
Пример паки с чартами. Их много потому что они пред настроены

Результаты

В итоге имеем дашборд с кучей графиков и табличек, которые в свою очередь все интерактивны. Дашборд доступен мобильно и на текущий момент имеет актуальную информацию каждые 15-30 минут, что более чем достаточно для оперативного управления производством. Производственники и руководство пользуется всем этим и быстро принимает решение опираясь на реальные данные.

Конечно еще предстоит прикрутить еще много табличек, и много данных, но как MVP версия работает идеально и достаточно быстро.

Визуализация угольных процессов – шаг 1
Визуализация угольных процессов – шаг 1

P.S. если интересно, буду продолжать.

Начать дискуссию