Как мы строим систему обработки, хранения и анализа данных в СИБУРе

в 8:21, , рубрики: DataLake, Hadoop, Hbase, hdfs, Hive, impala, MDM, Блог компании Цифровой СИБУР, визуализация данных, дата-офис, машинное обучение, Сибур, хранение данных

В начале 2018 года у нас активно пошел процесс цифровизации производства и процессов в компании. В секторе нефтехимии это не просто модный тренд, а новый эволюционный шаг в сторону повышения эффективности и конкурентоспособности. Учитывая специфику бизнеса, который и без всякой цифровизации показывает неплохие экономические результаты, перед «цифровизаторами» стоит непростая задача: всё-таки менять устоявшиеся процессы в компании — довольно кропотливая работа.

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

Это «Функция цифровых технологий», в которую включены все продуктовые направления: цифровизация процессов, IIoT и продвинутая аналитика, а также центр управления данными, ставший самостоятельным направлением.

Как мы строим систему обработки, хранения и анализа данных в СИБУРе - 1

И вот как раз главная задача дата-офиса заключается в том, чтобы полноценно внедрить культуру принятия решений, основанных на данных (да, да, data-driven decision), а также в принципе упорядочить всё, что касается работы с данными: аналитика, обработка, хранение и отчетность. Особенность в том, что все наши цифровые инструменты должны будут не только активно использовать собственные данные, то есть те, которые генерируют сами (например, мобильные обходы, или датчики IIoT), но и внешние данные, с четким пониманием, где и зачем их нужно использовать.

Меня зовут Артем Данилов, я руководитель направления «Инфраструктура и технологии» в СИБУРе, в этом посте я расскажу, как и на чем мы строим большую систему обработки и хранения данных для всего СИБУРа. Для начала поговорим только о верхнеуровневой архитектуре и о том, как можно стать частью нашей команды.

Вот какие направления включает в себя работа в дата-офисе:

1. Работа с данными

Здесь трудятся ребята, которые активно занимаются инвентаризацией и каталогизацией наших данных. Они понимают, какие есть потребности у той или иной функции, могут определить, какого рода аналитика может понадобиться, какие метрики стоит отслеживать для принятия решений и как используются данные в определённой бизнес-области.

2. BI и визуализация данных

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

3. Направление контроля качества данных

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

4. Управление НСИ

Мы — компания большая. У нас много разного рода справочников — и контрагенты, и материалы, и справочник предприятий… В общем, поверьте, справочников хватает с лихвой.

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

Проблемы тут вот в чем. Допустим, в одном из региональных подразделений, которых у нас много, сидят сотрудники и вносят в систему данные. Вносят руками, со всеми вытекающими из такого способа последствиями. То есть им надо внести данные, проверить, что все доехало в систему в нужном виде, без дублей. При этом некоторые вещи, в случае заполнения каких-то реквизитов и обязательных полей, приходится вообще самостоятельно искать и гуглить. Например, есть у тебя ИНН компании, а тебе нужны остальные сведения — ты проверяешь через специальные сервисы и ЕГРЮЛ.

Все эти данные, конечно, уже где-то есть, поэтому было бы правильно их просто автоматически подтягивать.

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

5. Внедрение хранилища данных (узел данных)

Вот именно это мы и начали делать в рамках этого направления.

Давайте сразу определимся с терминами, а то используемые мной словосочетания могут пересекаться с какими-нибудь другими концепциями. Грубо говоря, узел данных = озеро данных + хранилище данных. Чуть дальше я раскрою это подробнее.

Архитектура

В первую очередь мы постарались прикинуть, с какими именно данными предстоит работать — какие тут есть системы, какие датчики. Поняли, что будут как потоковые данные (это то, что генерируют сами предприятия со всего своего оборудования, это IIoT и прочее) и классические системы, разные CRM, ERP и подобное.

Поняли, что данных в текущих системах будет не прямо чтобы совсем много по объему, но с внедрением цифровых инструментов и IIoT их станет очень много. А еще будут очень разнородные данные из классических учетных систем. Поэтому придумали архитектуру вот такого плана.

Как мы строим систему обработки, хранения и анализа данных в СИБУРе - 2

Далее подробнее по блокам.

Хранение

Как мы строим систему обработки, хранения и анализа данных в СИБУРе - 3

Это основное ядро нашей платформы. То, что используется для обработки и хранения данных. Задача — загружать данные более чем из 60 различных систем, когда они начнут их поставлять. То есть тут вообще все данные, которые могут пригодиться для принятия каких-то решений.

Начнём с извлечения и обработки данных. Для этих целей мы планируем использовать ETL-инструмент NiFi для потоковых и пакетных данных, а также инструменты для стриминговой обработки: Flume для первичного приема данных и их декодирования, Kafka для буферизации, Flink и Spark Streaming как основные инструменты обработки потоков данных.

Наиболее сложно работать с системами стэка SAP. Извлекать из SAP данные придётся с помощью отдельного ETL-инструмента — SAP Data Services.

В качестве инструментов хранения мы планируем использовать платформу Cloudera Hadoop (сам HDFS, HBASE, Hive, Impala), аналитическую СУБД Vertica и, для отдельных кейсов, elasticsearch.

В принципе, мы используем самый современный стэк. Да, нас можно попробовать закидать помидорами и поусмехаться над тем, что мы называем самым современным стэком, но на самом деле — так и есть.

Мы не ограничены legacy-разработкой, но при этом не можем использовать bleeding edge в промышленном решении из-за явной enterprise ориентированности нашей платформы. Поэтому, может, мы и не тащим Horton, а ограничиваемся Clouder’ой, там, где можно, мы обязательно пытаемся затащить более новый инструмент.

Как мы строим систему обработки, хранения и анализа данных в СИБУРе - 4

Для контроля качества данных используется SAS Data Quality, а Airflow для управления всем этим добром. Мониторинг всей платформы делаем через стек ELK. Визуализацию по большей части планируем делать на Tableau, какие-то совсем статичные отчеты на SAP BO.

Уже сейчас понимаем, что часть задач невозможно реализовать через стандартные BI-решения, так как требуется совсем изощренная визуализация в реальном времени с множеством картонных контролов. Поэтому будем писать свой фреймворк визуализации, который можно было бы встраивать в разрабатываемые цифровые продукты.

Про цифровую платформу

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

Озеро данных — один из элементов этой платформы.
В рамках этой активности мы понимаем, что нам потребуется реализовать удобный интерфейс доступа к аналитическим данным. Поэтому в планах реализовать Data API и объектную модель производства для более удобного доступа к производственным данным.

Что еще делаем и кто нам нужен

Кроме хранения и обработки данных на нашей платформе будет работать всё машинное обучение, а также IIoT-фреймворк. Озеро будет выступать и как источник данных для обучения и работы моделей, и как мощности для работы моделей. Уже сейчас готов ML-фреймворк, который будет работать поверх платформы.

Как мы строим систему обработки, хранения и анализа данных в СИБУРе - 5

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

Вот где будут тонкости — так это в интеграциях. Связывать старое с новым, да так, чтобы оно все нормально работало и решало задачи — это вызов. Кроме этого, надо будет придумывать, прорабатывать и навешивать кучу самых разных метрик.

Сбор данных проводится из всех основных систем — 1С, SAP и куча всего остального. На основе собранных тут данных будет строиться вся аналитика, вся предиктивка, вся цифровая отчетность.

Если совсем коротко, ты мы хотим сделать так, чтобы работать с данными стало по-настоящему круто. Вот, например, маркетинг и продажи — у них есть люди, которые собирают всю статистику руками. То есть сидят и из 5 разных систем выкачивают разрозненные данные в разных форматах, загружают их из 5 разных программ, потом выгружают себе в эксель все это считать. Потом сводят информацию в единые экселевские таблицы, как-то пытаются делать визуализацию.

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

Кстати, кроме архитекторов и дата-инженеров в этой команде мы будем рады видеть:

Автор: Izayda

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js