Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Data as a service

DevOps Moscow
February 27, 2019

Data as a service

DevOps Moscow meetup: *aaS (as a service), 27-02-2019
Антон Косарев (Severstal)

Расскажу немного про наш стек, в двух словах почему мы выбрали его, далее про то, как мы работаем с данными, про онлайн и оффлайн составляющие (про etl по сути) и потом про то, как Confluent-стек нам помог прийти к концепту data as a service и на что в нашем понимании стоит обращать внимание.

DevOps Moscow

February 27, 2019
Tweet

More Decks by DevOps Moscow

Other Decks in Technology

Transcript

  1. Data as a service Косарев Антон 1 Знать путь и

    пройти его — не одно и тоже. Морфеус (х/ф «Матрица»)
  2. Первоначальные задачи • Сохранение как можно большего количества данных во

    всех активах группы. • Построение и внедрение моделей машинного обучения. Везде. • Замена «экспертных мнений» решениями, основанными на статистике. • Полная замена человека машиной в принятии большинства решений. 2
  3. Виды проектов Предиктивные ремонты • Предсказания поломок • Рекомендации по

    обслуживанию • Детектирование поломок оборудования (CV) Управление качеством стали • Предсказание дефектов на этапе сляба • Детектирование дефектов (CV) • Выявление причин дефектов Советчики по технологии • Производство окатышей • Добыча угля • Производство чугуна • Усваиваемость лома Безопасность и производительность • Травматизм • Текучесть кадров • Ликвидация узких мест • Оптимизация расходов энергоносителей 3
  4. 4 Вводные для проекта Бизнес-задача  Как избавиться от дросса

    на автолисте?  Как нам катать больше рулонов на Стане-2000?  Как получить прочные окатыши и сжигать меньше мазута?  Чистовые клети перегреваются, как предотвратить перегрев?  Нужно добывать больше угля, как это сделать? Бизнес-задача Источники данных  Hive-таблицы по подключенным к Data Lake источникам  IBA-архивы с данными АСУТП  SQL-базы данных  Выгрузки из SAP  Данные с видеокамер  Excel-файлы Технологический процесс  Эксперты (мастера, операторы, технологи)  Технологический регламент, схемы производства, инструкции к АСУТП, паспорт цеха…  Визуальный интерфейс оператора  Выезд на производство
  5. Потребности клиентов 5 Сервисы Использование Возможности Делать выборки по большому

    массиву данных Осуществлять поставку данных и делать необходимые агрегации Обучение моделей Работоспособность моделей Offline Online Аналитика Расчеты «на лету»
  6. Технологический стек 6 Kafka Schema Registry Kafka streams Kafka Connect

    Redis Grafana InfluxDB Apps HDFS YARN Spark Hive ZooKeeper HUE Sentry Impala
  7. Архитектура 7 Extractors Hadoop Transformations Models Training Real-Time Offline Producers

    InfluxDB Kafka Models Execution Aggregations User Interfaces Grafana ElasticSearch Kibana Prometeus
  8. Офлайн компоненты 8 • Продюсер данных из источника (Java) •

    Транспорт данных (Kafka) • Инструмент поставки в HDFS (Kafka Connect) • Фреймворк доступа (Spark + Hive, Power BI + Impala) – потребители • Инструмент разграничения доступа (Kerberos, Sentry) • Управление ресурсами (YARN) YARN Spark HDFS Staging area Raw input files Presentation area Jupyter Hue JVM apps
  9. Онлайн компоненты 9 Kubernetes HDFS Kafka Connect InfluxDB Producer Java/Scala

    app Kafka Data aggregates Topic _agg Input data Topic _data Model predictions Topic _predict Aggregator Scala app Operator feedback Topic _action Model Python app Web GUI app • Продюсер данных из источника (Java) • Транспорт данных (Kafka) • Данные в горячем кэше (Redis) • Онлайн трансформация данных (Kafka Streams + Scala) • «Обертка» над моделью (Python + Docker) – потребители • GUI (React, Vue, etc.) • Управление ресурсами (Kubernetes)
  10. Сервис накопления данных 10 Таблица в каталоге Запрос на данные

    Confluence (Wiki) аналитик/эксперт Jira (Data backlog) Задача на новый источник Выбор/ создание продюсера Поток исходных данных ONLINE Kafka HDFS Каталог данных Hive Потребление данных из очереди Поиск/создание инфраструктуры Адрес и тип источника Тип источника Запись в реестре OFFLINE источников
  11. Сервис поставки данных 11 Потребление данных из очереди Запрос на

    данные Confluence (Wiki) аналитик/разработчик Jira (Data backlog) Задача на новый источник Выбор/ создание продюсера Поток исходных данных ONLINE Kafka Поиск/создание инфраструктуры Адрес и тип источника Тип источника Выбор/ создание агрегатора Трансформация Данных ONLINE Запись в реестре ONLINE источников
  12. Поставка данных из источника Разнообразие источников Пример: • Данные с

    датчиков • Проприетарные бинарные архивы Решение: • Использовать решения вендора • Накапливать самим 15
  13. «Обертка» над моделью Задачи: • Непрерывная поставка данных в модель

    • Отправка результатов работы модели • Логирование • Предобработка данных (привет, Pandas) 17
  14. «Обертка» над моделью Обязательное присутствие Python Пример: • Использование в

    модели Python-специфичных библиотек Решение: • Верить в лучшее • Использование транспорта (очередь, RPC) 18
  15. «Обертка» над моделью Где хранить стейт приложения Пример: • В

    модель на вход подаются данные за последние 5 часов Решение: • Вычитывать каждый раз заново из очереди • Выносить в отдельный кэш • Сохранять в файл 19
  16. Онлайн трансформация данных Batch processing vs Stream processing Пример: •

    Среднее арифметическое в окне за 1 минуту • Если за минуту было N элементов – учитываем, если N+1 – не учитываем Решение: • Уточнение алгоритма расчета • Использование фреймворков с поддержкой stateful агрегаций 22
  17. P.S. 26 The truth is the log. The database is

    a cache of a subset of the log. Pat Helland. Immutability Changes Everything
  18. 28