Использование Yandex DataLens для аналитики 1С
Мы используем Yandex Datalens в своих проектах в следующих случаях:
- У Заказчика несколько источников данных (одна или несколько баз 1С, CRM, и сайт, и данные с Яндекс метрики и т.д.);
- Заказчику нравится работа в Yandex Datalens (это может быть выбор по визуальным критериям, стоимость, доступность, низкий порог входа);
- Заказчик ориентирован на агрегированные и представленные графически данные для анализа;
- Заказчик предрасположен к самостоятельному поиску и исследованию данных.
Так как Yandex Datalens не имеет встроенной базы данных, вроде xVelocity (Vertipaq) у Power BI, то вся нагрузка по обработке запросов к данным ложится на базу - источник данных. Это значит, что любой запрос от Datalens должен обрабатываться базой-источником за приемлемое время – по практике это 3-10 секунд ожидания аналитика, работающего с дашбордом. А если таких пользователей-аналитиков несколько десятков, то база-источник должна успеть отработать запросы всех пользователей в приемлемое время
Поэтому для DataLens необходимо готовить аналитические витрины данных.
В редком случае получится пробросить данные с 1С, сайта или с ERP напрямую как «источник данных» в Datalens, не ухудшив производительность «базы-источника».
Чаще получается так, что:
- Доступ из Datalens в базу 1С запрещен политикой безопасности;
- База 1С не выдерживает тех запросов, которые генерирует Datalens, и дает ошибки доступа по таймауту.
Это все осложняется тем, что:
- Прямой доступ к базе данных 1С (MS SQL Server/PostgreSQL) запрещен политикой лицензирования 1С (хотя это достаточно часто используемый кейс в нашей практике);
- Удобного механизма доступа к БД 1С, как к реляционной базе – нет.
И какие возможны подходы?
Аналитику данных в 1С можно получить несколькими путями:
- Встроенные отчеты 1С;
- Экспорт готовых отчетов в Excel/CSV, с последующим импортом в стороннюю BI-систему;
- 1С Аналитика – BI-система от 1С.
- Самостоятельная работа с данными 1С в BI-системе, используя документированный протокол OData или недокументированный («прямой») доступ к данным 1С напрямую из ее базы данных;
- Использование готовых разработок по выгрузке данных из 1С в BI, вроде – «Экстрактор данных 1С в BI».
Разберемся со всем по порядку.
Встроенные отчеты 1С
Первое, что приходит в голову – это продолжать пользоваться отчетами 1С.
Разработчики 1С постарались и реализовали невероятно функциональный механизм формирования отчетов (действительно универсальных) на базе «Системы компоновки данных» (СКД).
Проблема в том, что:
- Разработка своих отчетов в 1С – это слишком сложно для нормального пользователя;
- Пользователя, который все таки освоил СКД, система возвращает в поиске (discovery) данных в времена работы с запросами (select) (это в худшем случае), ну или к заказу «универсальных» отчетов в 1С у очередного программиста 1С (у которого на типовом производственном предприятии хватает других задач);
- Все равно нужен программист, чтобы собрать более-менее удовлетворяющий запросам аналитика отчет с «сырыми» данными 1С;
- В итоге, пользователь – аналитик вновь оказывается один на один с Excel, в котором он крутит свои «выгрузки» из этих отчетов 1С.
Выгрузки в файлы
Следующее, что приходит в голову при работе с 1С – это сохранение отчета 1С в файл CSV/Excel, с последующей загрузкой его в Google sheets/Файлы Datalens.
Это скорее, история про «быстро скрутить красивый дашборд» по данным отчета:
Понятно, что отчет надо в 1С:
- Правильно приготовить;
- Отчет, особенно с очень детальными данными, будет исполняться долго (иногда очень долго);
- Большие отчеты на тысячи строк (о миллионах тут речь даже не идет) сохраняются на диск в Excel долго (очень долго);
- А так как предпочтительна одна таблица, включающая в себя все возможные поля и для измерений, и для показателей, и для фильтрации данных, то выгруженные данные в файлы из 1С необходимо еще соединить между собой, дообработать.
В плане BI - аналитики, для последующего анализа Excel-файлов намного удобнее – MS Excel.
Опять же, чтобы выгрузить достаточно подробные данные в файлы (ну или в базу данных) из 1С, нужны:
- Часто Программист (не всегда хватает типовых отчетов 1С);
- Время на разработку.
Выгрузки в файлы можно автоматизировать, поставить на выгрузку по расписанию, дописать загрузку данных из нужного отчета сразу в базу данных. Но это все – история опять про программиста, а не про пользователя-аналитика.
Однако, такой подход может быть первым этапом для тестирования и апробации Yandex DataLens на реальных данных из вашего 1С.
1С Аналитика
Понимая потребности аналитики своих пользователей, 1С выпустил собственный инструмент – «1С Аналитика», который включает в себя:
- Механизм автосоздания копии БД 1С (т.е. ввод данных и оперативная работа в «рабочей» базе, а построение отчетов на «отчетной» базе);
- Новый механизм работы с данными – «Data Accelerator» - это встраиваемая в 1С in-memory база данных, где данные для построения отчетности хранятся в оперативной памяти. Примечательным является замечание от 1С, на необходимость контроля за объемом оперативной памяти, используемым службой «Data Accelerator», чтобы избегать «падения» данной службы;
- Ну и Web-интерфейс (визуализация) дашбордов и чартов, которые строятся по данным в «Data Accelerator» - это, собственно, и есть – 1С Аналитика.
Для работы требуется:
- 1С Сервер (кластер серверов);
- Web-публикация 1С;
- Достаточно места в оперативной памяти для корректной и достаточной работы in-memory движка Data Accelerator.
Источниками данных выступают все объекты метаданных 1С, но легкого механизма их связывания в пользовательском режиме нет. Необходим уже программист, чтобы собрать нужный «Запрос», который далее оформляется как «Источник данных».
Пример демо-дашборда
Какие + и – мы определили для себя:
Плюсы |
Минусы |
Вся работа строится в единой «экосистеме» 1С |
Работа только с данными 1С |
Удобный drill-down вплоть до реального документа |
Необходимость развертывания системы на кластере 1С Серверов, достаточно высокие требования к оборудованию |
Есть крос-фильтрация, но иногда она усложняет понимание отчетов |
Развертывание системы предполагает хорошую квалификацию Администраторов системы |
Достаточно функциональная сводная таблица |
Сложности работы с картами, иерархиями, кросс-фильтрацией |
Поддерживается иерархия справочников 1С |
Отсутствие аналитических функций: LOD, Before filter By, TOTAL, и др. |
В целом, 1С Аналитика оставляет двойственное ощущение:
- С одной стороны – возможность «провалиться» в данные 1С и явно хорошее решение для адептов «исключительно 1С»;
- С другой стороны - со всех сторон ограничения: это и замкнутая экосистема, и развертывание исключительно внутри сети Заказчика, сложности UI;
Интересует бизнес-аналитика? Оставляйте заявку, и мы подберем для вас систему бизнес-анализа под потребности вашего бизнеса и поможем ее настроить.
|
Оставить заявку
|
1С + OData
Если вы чувствуете себя программистом, ну или готовы его нанять, то есть еще один способ получить данные напрямую из 1С – это получение данных по протоколу OData (Open Data Protocol).
Для работы с данными требуется:
- Публикация базы 1С на web-сервере (подходит и для файлового и клиент-серверного режима работы);
- Некий набор скриптов (Python, PHP etc.), чтобы преобразовать данные из получаемого формата «XML» / «JSON» в структуру таблиц базы данных.
Доступ вы получаете к тем объектам базы 1С, на которые дано разрешение для работы с OData.
Из плюсов:
- Данный способ добычи данных разрешен лицензионным соглашением 1С;
- Метод достаточно универсален.
Из минусов:
- Медленно, есть ограничения по извлечению данных по объему;
- Работает периодически нестабильно (метод не предназначен для извлечения больших объемов данных);
- Требуется конвертации данных из XML/JSON в данные БД.
Замечание:Технология OData популярна для извлечения «по быстрому» из 1С для последующего использования в Power BI, который нативно поддерживает загрузку данных из Интернет в свою встроенную базу данных.Yandex DataLens не поддерживает работу с OData напрямую, однако используя , например, Yandex Cloud Function можно реализовать скрипт для регулярного экспорта данных в облачный Clickhouse и визуализировать. Но без разработчика здесь не обойтись.
Прямой доступ к базе данных 1С
Если вспомнить на технологию работы 1С в клиент-серверном варианте (картинка взята с официального сайта 1С):
Как видим, основой работы является Сервер базы данных, причем наиболее популярными являются СУБД:
- Microsoft SQL Server;
- PostgreSQL.
Сразу же возникает резонный вопрос: «А можно ли обратиться к данным 1С напрямую, минуя 1С-сервер и его объектную модель?» Ответ приходит: «Да можно, но сложно».
В чем сложность? (опустим пока вопрос лицензионной чистоты такого обращения к данным, мы же практики, а не юристы).
Приведу пример того, как выглядят данные справочника Номенклатуры изнутри в базе 1С
Обратите внимание:
- На наименование таблицы - _Reference266X1
- На наименование полей:
Fld7692RRef – это ссылка на справочник Единиц измерения;
_Fld7689RRef – а это ссылка на справочник Видов номенклатуры.
Т.е напрямую читать данные из базы 1С в MS SQL Server/PostgreSQL крайне сложно.
Мы не рекомендуем подключаться из Yandex DataLens напрямую к БД 1С.
Есть специализированные сервисы и разработки, которые позволяют «перевести» эти «машинные» таблицы в «человекочитаемый» вид, через создание View (именованных представлений) к физическим таблицам БД:
Таким образом, используя данные инструменты, вы, минуя 1С, сможете обращаться напрямую к таблицам в базе данных SQL.
В примере с «Коннектором 1С» таблица выше будет выглядеть вот так:
Т.е. все поля, да и имя самой таблицы «переведены» «на русский».
Тем не менее, даже получив доступ к непосредственно таблицам 1С, мы не решаем следующие проблемы:
- Все таблицы надо правильно соединить (join) между собой, чтобы получить ту самую «плоскую» таблицу для Yandex Datalens;
- Открывать доступ к базе данных 1С снаружи из интернет явно небезопасно;
- Вся нагрузка исполнения запросов из Yandex Datalens ложится на СУБД, с которой работает 1С («оперативная» или «отчетная» база).
Получается, что опять необходимы:
- Аналитическая база (желательно в облаке Yandex и желательно ClickHouse);
- Скрипты, для доставки данных из View (представлений) в аналитическую базу.
Экстрактор данных 1С -> BI
Если смотреть на идеологию работы с Yandex Datalens, то верной схемой является классическая схема построения BI-систем, когда:
- источником данных для Yandex Datalens является специализированная база данных - “Хранилище данных”, где все необходимые данные предподготовлены к последующему использованию (очищены, агрегированы, денормализованы);
- и есть “Система”, извлечения данных из 1С и трансформации их и загрузки данных в подготовленное “Хранилище данных”, оптимально работающее с BI.
Такая “Система” реализована в нашем продукте “Экстрактор данных 1С -> BI”.
“Экстрактор данных 1С -> BI”:
- Формирует в 1С «Наборы данных», т.е. длинные, плоские денормализованные таблицы, включающие в себя все необходимые поля из 1С;
- Генерирует автоматически и обновляет (Alter Table…) таблицы-приемники в БД ClickHouse;
- Сопоставляет автоматически или с помощью аналитика Таблицы-источники из «Набора данных» 1С в Таблицы-приемники в БД Clickhouse;
- Создает и выполняет расписания автоматической выгрузки данных из Таблиц-источников 1С в Таблицы-приемники Clickhouse.
Результатом является:
- Постоянно обновляемая из 1С База данных Clickhouse;
- Возможность комфортно работать с данными 1С в среде Yandex Datalens.
Резюме
|
Встроенные отчеты |
выгрузки готовых отчетов и загрузка в BI |
1C Аналитика |
1С Odata |
Подключение к БД напрямую |
Использование готовых коннекторов для доступа к БД 1С напрямую |
Выгрузка данных 1С с использованием “Экстрактора данных 1С-> BI” |
Простота |
да |
нет |
нет |
нет |
нет |
да |
да |
Гибкость |
нет |
нет |
да |
да |
нет |
да |
да |
Возможность обогащения внешними данными |
нет |
нет |
нет |
да |
да |
да |
да |
Надежность |
да |
зависит от способа реализации |
да |
нет |
нет[5] |
да |
да |
возможность работы с большими объемами данных |
нет |
нет |
да |
нет |
да |
да |
да |
Настройка выполняется пользователем |
да |
да |
да |
нет |
нет |
да |
да |
Требуется ли разрабатывать БД (Хранилище данных) для работы с BI |
нет |
для небольших отчетов и выгрузок - нет для больших данных - требуется разработка |
нет |
да, нужна разработка |
Power BI - опционально Datalens - да |
Power BI - опционально Datalens - да |
Да Экстрактор сам генерирует БД Хранилища данных |
Работа с файловыми 1С |
да |
да |
нежелательно |
|
нет |
нет |
да |
Работа с клиент-серверными 1С |
да |
да |
да |
|
да |
да |
да |
Как всегда – выбор за вами:
- Работать исключительно в экосистеме «1С», т.е. во встроенных и дописанных отчетах или в 1С Аналитика;
- Использовать BI Yandex Datalens для исследования данных.
- Добывать данные из 1С через разного рода выгрузки из отчетов или используя доступ напрямую к базе данных 1С, будь то OData или прямой доступ к БД;
- Или использовать технологию выгрузки данных в БД Сlickhouse, используя существующие решения.
Для нас и наших заказчиков Yandex DataLens в связке с Managed Service for Clickhouse стал прекрасной более доступной альтернативой PowerBI, более простой как в плане поддержки и администрирования, так и для конечных пользователей - многие из которых теперь самостоятельно работают с данными.
Если вам интересно подключить бизнес-аналитику, оставляйте заявку. С вами свяжутся менеджеры Денвик и ответят на все вопросы.
Нужна консультация