- Data Engineer: потребность и ценность
- Задачи, навыки, инструменты, классификации данных
- Создание ценности и вызовы
- История и эволюция подходов работы с данными
- Технологические основы аналитических решений
- CAP theorem, Distributed Computing, MPP (Massive Parallel Processing)
- SQL + Not Only SQL
- Подходы к обработке данных: Batch & Stream
- Архитектуры: Lambda, Kappa
- Облака vs On-premises: возможности, преимущества, особенности
- Экосистема Hadoop и элементы Системы Обработки Данных
- Обзор инструментов Cloudera, Hortonworks, GCP, AWS
- Обзор популярных форматов: CSV, JSON, Avro, Parquet, ORC
- Анализ применения и производительности форматов
- Бинарные и человеко-читаемые форматы хранения
- Schema evolution, Compression, Bloom filters, Indexing
- Синтаксис и простые выражения в Scala
- Управляющие конструкции: if, for, pattern matching
- ООП: Class, Object, Trait
- Implicits
- Инструменты для разработки: sbt, IntelliJ IDEA
- Spark - что это и зачем он нужен
- API - RDD, Dataset, Dataframe, операции над распределенными коллекциями
- Процесс вычисления в Spark - task, stage, оптимизатор запросов
- Spark - что это и зачем он нужен
- API - RDD, Dataset, Dataframe, операции над распределенными коллекциями
- Процесс вычисления в Spark - task, stage, оптимизатор запросов
- Инструменты интерактивной аналитики
- Google Cloud Datalab
- Jupyter - интеграция с Apache Spark
- Micro-batch обработка данных
- Классический Spark Streaming
- Structured Streaming
- Continuous processing
- Kafka, RabbitMQ
- Потоковая обработка (виды обработки, описание Producer–consumer problem, пример архитектурного решения через Kafka, RabbitMQ, NATS)
- Google Dataflow paper (Event time vs processing time и так далее).
- Паттерны stream processing Joins, enricher, router. Event-sourcing.
- Принципы работы распределенных файловых систем
- Структура кластера HDFS
- Тонкости настройки HDFS - конфигурация, защита, обеспечение отказоустойчивости
- Типы систем-источников. Структурированные, полу- и неструктурированные данные. Логи, выгрузки из АС, Clickstream
- Инструменты для извлечения и загрузки данных - Flume, Sqoop, StreamSets, Fluentd, Debezium, logstash
- Практические примеры загрузки данных из сервисных баз данных
- Пример построения модели
- Использование Flask приложение и REST API для создания сервиса ML
- Применение Docker контейнеров для развертывания ML код
- Семейство MPP баз - назначение и особенности
- Логический и физический дизайн
- Vertica
- Семейство MPP баз - назначение и особенности
- Логический и физический дизайн
- Google BigQuery
- NoSQL Databases. HBase, Cassandra, Elasticsearch, Aerospike
- Key-value
- Cache
- SQL - межгалактический язык работы с данными
- Знакомство с компонентами ELK-стэка
- Классы задач, для которых подходит ELK
- Как организовать многоэтапные процессы обработки данных
- Инструменты оркестрации - Oozie, Airflow
- Культура DevOps
- Интеграция, тестирование, развертывание
- Инструменты мониторинга - Prometheus, Zabbix, Graphite, Grafana
- Специфика мониторинга процессов обработки данных
- Data Quality and Consistency. Качество данных. MDM
- Ошибки в коде, логике, виды, последствия, как найти и устранить корневую причину
- Вопросы поддержки. Support
- Метрики качества. Контроль качества. Data Fix - как исправлять найденные ошибки
- MDM: управление мастер-данными
- Углубленные вопросы оптимизации. Фишки. Примеры, разбор
- Где искать ответы на вопросы. Ресурсы. Как быстро разбираться и решать проблемы.
- Benchmarking - умеем сравнивать инструменты для решения конкретных задач
- Как грамотно составить резюме (CV) + proof-read резюме участников курса
- Как развиваться в плане Soft skills, Hard skills. Contribution.
Выпускной проект: реализация задачи по выбранной тематике в реальном времени с применением парадигмы Map-Reduce кластере в виде pipeline (Kafka, Spark, Hadoop экосистема) и визуализация результатов.
Список возможных тем проектов будет предложен. Также можно взять задачу "с работы" или близкого себе проекта.
Проектная работа «Проектная работа».
Слушатели курса смогут определиться с темой проекта (выбрать из предложенного списка или привнести задачу из деятельности своей компании), получить понимание какие ресурсы им необходимо использовать для работы.
Слушатели курса получат комментарии относительно прогресса проектной работы, ответы на вопросы, рекомендации по реализации.
По окончании занятия слушатели курса получат разбор проектов, комментарии и оценку своей работы.