1С:Аналитика
17.11.2022

Архитектура аналитических систем на платформе "1С:Предприятие"

Экосистема продуктов "1С:Предприятие 8" пополнилась решением для построения аналитических систем класса Business Intelligence (BI). Это продукт 1С:Аналитика. Его отличие от других BI решений в первую очередь в том, что продукт глубоко интегрирован с платформой 1С:Предприятие, поэтому 1С:Аналитика решает только свою специализированную задачу построения удобного BI интерфейса для подготовки отчетов и работы с ними. Поэтому важным вопросом для понимания продукта и его внедрения становится вопрос общей архитектуры аналитической системы, построенной с помощью 1С:Аналитики. В этой статье мы хотим кратко описать классический подход к построению аналитических систем, и как решение на базе платформы 1С соответствует такому подходу. Мы не претендуем на академическое изложение предмета, поэтому заранее просим прощение за возможную свободу в терминологии или изложении материала.

 

Какую задачу мы решаем?

Компьютеры хранят всё больше и больше данных компаний и организаций, где они установлены. Но когда руководитель знает, что все цифры и показатели происходящего в компании сохраняются в компьютере, то следующим логичным шагом будет затребовать возможность смотреть эти цифры и показатели. Причем, так как компьютер для человека, а не наоборот, доступ к нужным данным, расчет сводных показателей и статистики, возможность составления отчетов у руководства и бизнес-аналитиков должен быть в удобном виде. Если сформулировать все обычные пожелания, то получится такой список:


Классический подход и где кроется засада

Построением аналитических систем для руководства компаний и бизнес-аналитиков компьютерщики занимаются не первое десятилетие. Здесь так же, как и для транзакционной обработки данных в СУБД, есть классический набор подходов и технологий, но большая часть из них посвящена не интерфейсу программы, с которой общается руководитель, а подготовке, хранению и обработке данных. Приведу ниже список таких терминов/технологий. Внедряются они обычно в такой же последовательности, как и перечислены, цепочкой одна технология после другой.

Прогресс технологий и доступность аналитических решений за последние 20 лет заметно выросли, но сказать, что развернуть аналитическую систему в компании "раз плюнуть" - нельзя. И тому есть веские причины.

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


Почему мы решили выпустить 1С:Аналитику

Почему мы вообще взялись за создание нового продукта для построения аналитических систем? Решение о запуске в разработку нового продукта или технологии всегда стартует от пожеланий наших пользователей, от решения конкретной задачи. И по мере повышения доступности классических BI решений, наши пользователи начали всё чаще спрашивать нас, а где BI от 1С? При этом нельзя сказать, что у клиентов 1С не было решения для анализа данных.

Сама платформа 1С:Предприятие является инструментом для быстрой разработки бизнес-приложений, на которой собственно и сделаны такие популярные продукты российского рынка ПО как "1С:Бухгалтерия", "1С:ERP" или "1С:Зарплата и Управление Персоналом". Квалифицированный разработчик 1С легко нарисует любой отчет для представления и анализа информации. Встроенная в платформу Система Компоновки Данных (СКД) позволяет без программирования нарисовать запрос к данным и максимально точно оформить отчет на его основе. Такой готовый отчет можно сохранить внутри программы 1С, чтобы он был доступен как часть приложения. А можно отчет редактировать отдельно от программы и передавать для выполнения в любую программу 1С, где структура данных совпадает.

Учитывая, что отчеты СКД могут управляться из кода программы 1С, многие строили системы отчетности на базе СКД как интегрированный функционал бизнес-приложения 1С. В качестве примера можно привести "Монитор целевых показателей" в "1С:ERP", или "Аналитические панели" в "1С:Управление Холдингом". Что же дополнительно к этим
возможностям хотели наши клиенты?

Поэтому и было принято решение разработать специализированное BI решение 1С:Аналитика как часть платформы 1С:Предприятие.


Мир 1С и что мы решили делать по-другому

Как уже видно из требований клиентов, в первую очередь требовалось создать для анализа данных новый специализированный интерфейс, максимально простой для руководящего состава, но функциональный для бизнес-аналитиков. Причем в соответствии с современным подходом для BI систем (список доступных данных, возможность легко "накидывать" данные на отчет или менять разрезы, по которым они смотрятся). Важно отметить, что вопрос консолидации данных и построение отдельного хранилища здесь никто не поднимает. В первую очередь потому, что большая часть этой задачи часто уже решается средствами 1С.

Поэтому получается, что возможностей платформы 1С:Предприятие и типовых решений 1С достаточно для того, чтобы задача консолидации данных на центральном узле 1С была решена. Если в рамках классического подхода для построения аналитической системы проблема сбора данных является основной, то тут в первую очередь стоит задача последней мили, вопрос интерфейса и визуализации данных для конечного пользователя аналитической системы. Все остальное вполне может взять на себя проверенный десятилетиями функционал платформы 1С.

1С:Аналитика является BI решением для такой архитектуры системы. С точки зрения внутреннего устройства этот продукт не дублирует функционал платформы, но расширяет его до полноценного аналитического решения. Как устроена и что умеет 1С:Аналитика?

Хотя 1С:Аналитика ставится и запускается как отдельный сервер, он интегрируется по своему функционалу в платформу 1С и для клиента выглядит как дополнительный интерфейс в программе 1С. В программе 1С можно выбрать меню, и в браузере откроется страница с интерфейсом 1С:Аналитики, где пользователь уже будет залогинен под теми же учетными данными. При этом для пользователя интерфейс 1С:Аналитики будет работать как часть опубликованной инфобазы. Например, если сама информационная база 1С опубликована по адресу:

https://analytics.demo.1c.ru/analytics/

то адрес доступа к 1С:Аналитике будет тут:

https://analytics.demo.1c.ru/analytics/ans

Но интеграция сделана и в обратную сторону. Из меню 1С:Аналитики можно открыть страницу с веб-публикацией информационной базы. А если пользователь видит на экране отчет со справочниками или документами, то он может выбрать нужные объекты и открыть их непосредственно в интерфейсе 1С. Здесь есть несколько вариантов в зависимости от того, что хочет пользователь, и что настроено при установке 1С.

Первый вариант – выбрать объект и получить на него ссылку. При этом в буфер обмена сохранится текстовая ссылка в формате 1С, то есть ссылка, которая может быть открыта непосредственно в интерфейсе приложения 1С. Ссылка содержит метку, что это ссылка в приложении 1С, указывает на тип объекта и передает его идентификатор. Выглядит такая ссылка примерно так:

e1cib/data/Справочник.Номенклатура?ref=b625001a6411168a11de1cfd395d4fb0

Если не хочется руками получать и открывать ссылку на объекты из 1С:Аналитики в приложении 1С, то можно воспользоваться командой "Открыть". Если в приложении активирована Система Взаимодействия (встроенные чаты и видеозвонки), то через неё 1С:Аналитика передаст команду непосредственно на рабочее место пользователя, и в его клиентском приложении 1С выбранный объект откроется на экране. Если Система Взаимодействия в приложении при установке не активирована, то откроется отдельная веб-страница с приложением 1С, где нужный объект будет уже открыт.

 


Главный по скорости

Важный момент, который у внимательного читателя сейчас должен вызвать вопросы. Я явно указал, что 1С:Аналитика отвечает только за визуальный BI интерфейс аналитической системы. Сами запросы к данным, как и их хранение, обеспечиваются силами платформы 1С. Насколько быстро будут обрабатываться аналитические запросы в стандартной учетной системе, которая при том еще и работает на стандартной OLTP СУБД? Практика показывает, что до 5-10Гб данных современная СУБД вполне хорошо обрабатывает как в режиме обработки транзакций (OLTP), так и в режиме аналитических отчетов/запросов (OLAP). Если данных становится больше, или аналитические запросы становятся сложнее, то скорость аналитики на обычных СУБД начинает существенно снижаться. Именно поэтому в классической схеме построения аналитических систем и есть выделенный OLAP сервер, который решает задачу скорости на аналитических запросах.

Но платформа 1С:Предприятие тоже готова к решению этой задачи, предлагая для неё две ключевые технологии:

Механизм копий баз данных предназначен для горизонтального масштабирования работы с данными на чтение. Для этого в дополнении к основной операционной базе данных, где лежит информация приложения 1С, создаются копии данных в других СУБД. Администратор для каждой копии БД настраивает какие таблицы и объекты данных приложения будут там лежать. Дальше платформа сама контролирует в выбранной базе данных создание копий таблиц и их наполнение. По мере получения запроса к данным платформа будет смотреть его содержимое и параметры выполнения и автоматически решать, может быть этот запрос отправлен на какую-то из настроенных копий данных, или нет. Если запрос может быть направлен в копию БД, то он уйдет туда, и это снизит нагрузку по обработке данных в центральной операционной базе данных. При этом настройка копии данных выполнятся при развертывании приложения администратором системы, само приложение для этого менять не нужно.

Дата акселератор – это отдельная СУБД класса ROLAP, в которой может храниться копия данных. ROLAP означает, что для платформы 1С эта база данных выглядит как реляционная СУБД, но сама база данных оптимизирована для быстрого выполнения именно аналитических запросов. Если посмотреть, что "под капотом" у Дата акселератора, то ускорение в десятки раз обработки аналитических данных достигается за счет следующих технологий:

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

В результате вместе механизм копий БД и Дата акселератор решают для 1С:Аналитики
следующие две ключевые задачи:

Если посмотреть на общую схему развертывания 1С:Аналитики со всеми нужными компонентами платформы, то мы увидим, что здесь есть аналоги для всех компонентов из классической схемы построения аналитических систем, но важное отличие, что все они работают внутри и являются частью платформы 1С:Предприятие.


Общий подход к универсальным аналитическим системам

Итак, 1С:Аналитика легко может сделать счастливыми пользователей 1С, добавив к их уже работающей программе 1С возможности включения BI интерфейса для работы с данными внутри 1С:Аналитики. За счет того, что данные уже находятся внутри платформы 1С, можно без больших рисков быстро подключить 1С:Аналитику и получить готовую аналитическую систему. А если данные не лежат в одной программе 1С, или даже лежат не в системах 1С, а анализировать их надо? Что делать в таком случае? Возвращаться к классической схеме построения аналитических систем с её рисками и издержками?

Ответ, который мы можем тут дать: и да, и нет. Платформа 1С:Предприятие и 1С:Аналитика позволяют использовать всю гибкость классического подхода, но без его ключевых недостатков. Имея внутри платформы все необходимые технологии, можно рассматривать саму платформу 1С как готовую основу для построения аналитической системы. В этом случае основной доработкой будет построение процесса ETL для сбора данных на базе 1С. Как только все данные будут собраны внутри информационной базы 1С, к ним можно будет настроить доступ через BI интерфейс 1С:Аналитики.

Платформа имеет множество технологий для быстрой разработки бизнес-приложений, часть из них помогает подключаться к внешним источникам и собирать данные:

Пример такой независимой аналитической системы, построенной на базе 1С, внедрение в ДИТ города Москвы. На платформе 1С была разработана ETL система сборки данных из 1800 информационных систем организаций города. Часть из них тоже работают на базе 1С, но многие – нет. Это не помешало платформе 1С стать ядром и центром консолидации данных для их аналитической обработки внутри 1С:Аналитики. Различные средства разработки предназначены для решения своих специализированных задач, и платформа 1С:Предприятие прекрасно справляется как с разработкой бизнес-приложений, так, теперь вместе с 1С:Аналитикой, и с построением аналитических систем класса BI.