Skip to content

vladimirbarsuk/data-engineer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Занятие 1. Инженер Данных. Задачи, навыки, инструменты, потребности на рынке.

  • Data Engineer: потребность и ценность
  • Задачи, навыки, инструменты, классификации данных
  • Создание ценности и вызовы

Занятие 2. Эволюция подходов работы с данными. Базовые принципы и понятия.

  • История и эволюция подходов работы с данными
  • Технологические основы аналитических решений
  • CAP theorem, Distributed Computing, MPP (Massive Parallel Processing)
  • SQL + Not Only SQL
  • Подходы к обработке данных: Batch & Stream
  • Архитектуры: Lambda, Kappa

Занятие 3. Платформы для обработки данных

  • Облака vs On-premises: возможности, преимущества, особенности
  • Экосистема Hadoop и элементы Системы Обработки Данных
  • Обзор инструментов Cloudera, Hortonworks, GCP, AWS

Занятие 4. Форматы хранения данных и их особенности.

  • Обзор популярных форматов: CSV, JSON, Avro, Parquet, ORC
  • Анализ применения и производительности форматов
  • Бинарные и человеко-читаемые форматы хранения
  • Schema evolution, Compression, Bloom filters, Indexing

Занятие 5. Введение в Scala.

  • Синтаксис и простые выражения в Scala
  • Управляющие конструкции: if, for, pattern matching
  • ООП: Class, Object, Trait
  • Implicits
  • Инструменты для разработки: sbt, IntelliJ IDEA

Занятие 6. Apache Spark - 1 часть.

  • Spark - что это и зачем он нужен
  • API - RDD, Dataset, Dataframe, операции над распределенными коллекциями
  • Процесс вычисления в Spark - task, stage, оптимизатор запросов

Занятие 7. Apache Spark - 2 часть.

  • Spark - что это и зачем он нужен
  • API - RDD, Dataset, Dataframe, операции над распределенными коллекциями
  • Процесс вычисления в Spark - task, stage, оптимизатор запросов

Занятие 8. Jupyter Notebook. Интерактивная аналитика и визуализация.

  • Инструменты интерактивной аналитики
  • Google Cloud Datalab
  • Jupyter - интеграция с Apache Spark

Занятие 9. Spark Streaming.

  • Micro-batch обработка данных
  • Классический Spark Streaming
  • Structured Streaming
  • Continuous processing

Занятие 10. Очереди сообщений, Kafka, Confluent platform.

  • Kafka, RabbitMQ
  • Потоковая обработка (виды обработки, описание Producer–consumer problem, пример архитектурного решения через Kafka, RabbitMQ, NATS)
  • Google Dataflow paper (Event time vs processing time и так далее).
  • Паттерны stream processing Joins, enricher, router. Event-sourcing.

Занятие 11. Распределенные файловые системы.

  • Принципы работы распределенных файловых систем
  • Структура кластера HDFS
  • Тонкости настройки HDFS - конфигурация, защита, обеспечение отказоустойчивости

Занятие 12. Инструменты выгрузки данных из сторонних систем.

  • Типы систем-источников. Структурированные, полу- и неструктурированные данные. Логи, выгрузки из АС, Clickstream
  • Инструменты для извлечения и загрузки данных - Flume, Sqoop, StreamSets, Fluentd, Debezium, logstash
  • Практические примеры загрузки данных из сервисных баз данных

Занятие 13. Обучение моделей. ML.

  • Пример построения модели

Занятие 14. ML модели в Production.

  • Использование Flask приложение и REST API для создания сервиса ML
  • Применение Docker контейнеров для развертывания ML код

Занятие 15. DWH. Семейство MPP баз - назначение и особенности.

  • Семейство MPP баз - назначение и особенности
  • Логический и физический дизайн
  • Vertica

Занятие 16. DWH. Моделирование Хранилища данных.

  • Семейство MPP баз - назначение и особенности
  • Логический и физический дизайн
  • Google BigQuery

Занятие 17. Хранилища NoSQL. Назначение и особенности.

  • NoSQL Databases. HBase, Cassandra, Elasticsearch, Aerospike
  • Key-value
  • Cache

Занятие 18. SQL-доступ к данным. Apache Hive.

  • SQL - межгалактический язык работы с данными

Занятие 19. ElasticSearch.

  • Знакомство с компонентами ELK-стэка
  • Классы задач, для которых подходит ELK

Занятие 20. Оркестрация.

  • Как организовать многоэтапные процессы обработки данных
  • Инструменты оркестрации - Oozie, Airflow

Занятие 21. Практики DevOps: CI/CD в ML.

  • Культура DevOps
  • Интеграция, тестирование, развертывание

Занятие 22. Мониторинг.

  • Инструменты мониторинга - Prometheus, Zabbix, Graphite, Grafana
  • Специфика мониторинга процессов обработки данных

Занятие 23. Data Quality. Контроль качества данных, автотесты, мастер-данные.

  • Data Quality and Consistency. Качество данных. MDM
  • Ошибки в коде, логике, виды, последствия, как найти и устранить корневую причину
  • Вопросы поддержки. Support
  • Метрики качества. Контроль качества. Data Fix - как исправлять найденные ошибки
  • MDM: управление мастер-данными

Занятие 24. Case studies. Кейсы компаний.

  • Углубленные вопросы оптимизации. Фишки. Примеры, разбор

Занятие 25. Дальнейшее развитие навыков и полезные ресурсы.

  • Где искать ответы на вопросы. Ресурсы. Как быстро разбираться и решать проблемы.
  • Benchmarking - умеем сравнивать инструменты для решения конкретных задач
  • Как грамотно составить резюме (CV) + proof-read резюме участников курса
  • Как развиваться в плане Soft skills, Hard skills. Contribution.

Выпускной проект: реализация задачи по выбранной тематике в реальном времени с применением парадигмы Map-Reduce кластере в виде pipeline (Kafka, Spark, Hadoop экосистема) и визуализация результатов.

Список возможных тем проектов будет предложен. Также можно взять задачу "с работы" или близкого себе проекта.

Проектная работа «Проектная работа».

Занятие 26. Вводное занятие по проектной работе.

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

Занятие 27. Консультация по проектной работе.

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

Занятие 28. Защита проектной работы.

По окончании занятия слушатели курса получат разбор проектов, комментарии и оценку своей работы.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 95.5%
  • Python 2.4%
  • Shell 1.4%
  • Other 0.7%