OLAP-аналитика в браузере, подготовка данных для для сценарного анализа с помощью имитационного моделирования

Продуктовые решения

Фронтенд / другое
Асинхронное программирование, реактивное программирование
Архитектура данных, потоки данных, версионирование
Алгоритмы и их сравнение
Продажи, конкуренция и аналитика
Аналитика / другое
GO
Инструменты

Программный комитет ещё не принял решения по этому докладу

Целевая аудитория

JavaScript и Golang разработчики, аналитики данных и руководители финансовых, экономических направлений, все, кто заинтересован в планировании и моделировании ситуаций с дефицитом стратегически важных материалов.

Тезисы

Стандартная парадигма расчета сводных таблиц в OLAP-инструментах опирается на исполнение SQL-запросов GROUP BY CUBE по колонкам, составляющим вертикальное и горизонтальное измерения таблицы. Сложность вычислений O(2^k * n), где k - сумма уровней вложенности обоих измерений, n - количество строк аналитических данных.
В случае углубления иерархии на 1 уровень вложенности, этот факт приводит к двукратному замедлению расчетов.

Создан прототип OLAP-инструмента, который не боится глубоких и несбалансированных деревьев измерений и с каждым новым уровнем иерархии измерений увеличивает выигрыш в скорости расчетов вдвойне.

Имеется интерактивная демонстрация аналитического отчета о движении материалов, вычисляющая агрегирующие итоги и остатки на складах на начало и конец каждого дня.

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

Сервисы реализованы на стеке Golang, Kafka и gRPC streaming , которые генерируют потоки данных движения материалов. Получилась интересная архитектура на базе обмена унифицированными по структуре асинхронными сообщениями с использованием горутин, каналов, atomic операций, продюсеров и консьюмеров Kafka, а также синхронизирующего сервиса на базе gRPC streaming.

Более 30 лет в IT. Начинал карьеру программистом в северном городе Ноябрьск. С 2004 по 2011 годы внедрял разработанные мной программы по ретроспективным перерасчетам пени, формированию сводных аналитических отчетов, решению балансовых уравнений и распределению затрат в «Газпром Добыча Ноябрьск».
В 2022 связи с закрытием в России представительств крупных издательских домов, таких как Elsevier, Springer, Williams, и отсутствием возможности приобретения научных статей и документации большинством российских компаний, компания "ЭВЦ" наняла меня для разработки сервиса инновационных знаний и аналитических материалов СИЗАМ. Реализовал парадигму многодокументного интерфейса, чтобы информация по выбранным документам оставалась открытой во вкладках браузера. Разработал динамический, зависящий от набора ролей интерфейс пользователя, в добавок к этому, каждый контрагент мог получить собственный набор классификаторов документов. Используя платформу Ollama для запуска больших языковых моделей (LLM), разработал и внедрил семантический поиск по аннотациям документов, затем классификацию документов на базе семантической близости аннотаций.

Видео