A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Цель занятия (после занятия вы сможете) | Краткое содержание (стек изученых технологий) | Результат | Домашнее задание | |||||||||||||||||||||||||
2 | 1 | Модуль 1. ELT. Структура и типы источников данных | Рассмотрим классификацию основных источников данных для аналитики и их отличительные особенности. Выясним отличие принципов ETL и ELT, структурированных и неструктурированных данных. Научимся подключаться и вычитывать исходные данные, запрашивать ответы от внешних провайдеров через REST API, настраивать потоковую репликацию данных в Хранилище. Проанализируем основные сервисы и инструменты, используемые для этого класса задач. | ||||||||||||||||||||||||||
3 | 1.1 | Источники данных: классификация и особенности | Изучить особенности различных источников данных: подключение, формат, типы данных, ограничения Классифицировать источники на конкретных реализациях: PostgreSQL, S3, Yandex.Metrika, REST API (Exchange rates) | Структурированные и неструктурированные данные Форматы данных: CSV, JSON, AVRO, PARQUET, ORC Чтение из базы напрямую / лога WAL / REST Determine the operational characteristics of the collection system Handle the frequency, volume, and source of data Addressing the key properties of data, such as order, format, and compression | Изучение основных и дополнительных материалов занятия Анализ источников данных на текущем месте работы | ||||||||||||||||||||||||
4 | 1.2 | Инструменты для выгрузки данных – 1 | Понять различия в подходах ETL и ELT Оценить выбор решения с точки зрения критериев: стоимость, сопровождение, развитие, масштабируемость | Трансформация из ETL в ELT Обзор Self-managed решений: Nifi, StreamSets Обзор SaaS-решений: Fivetran, Stitch, Hevo | Принятие решения об использовании инструментов для выгрузки данных Изучение основных и дополнительных материалов занятия | Выгрузка данных веб-счетчика | |||||||||||||||||||||||
5 | 1.3 | Инструменты для выгрузки данных – 2 | Научиться делать выгрузки своими силами: RDBMS, S3/HDFS, REST API, Webhooks Уметь найти баланс в использовании внешних сервисов и написании своих pipelines | Организация регулярных выгрузок с помощью облачных сервисов GCP / AWS Репликация базы данных при помощи Debezium и чтения бинарного лога | Принятие решения об использовании инструментов для выгрузки данных Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
6 | |||||||||||||||||||||||||||||
7 | 2 | Модуль 2. DWH Basics | Рассмотрим современные СУБД, используемые для анализа больших данных и ключевые принципы их функционирования. Изучим концепцию Хранилища Данных и вопросы, на которое оно призвано отвечать. Познакомимся с dbt – широко популярный мультитул для работы с DWH, позволяющий выстраивать работу в соответствии с лучшими практиками. | ||||||||||||||||||||||||||
8 | 2.1 | Аналитические движки (СУБД) для работы с данными | Изучить принципы работы аналитических СУБД Привести примеры конкретных СУБД, проанализировать сходства и различия | MPP-базы данных и shared-nothing архитектура Колоночное хранение данных и компрессия Сегментация и партицирование Особенности нагрузки на аналитические СУБД | Использование сильных сторон аналитических СУБД в проектах Выбор оптимального движка под конкретные потребности и задачи бизнеса Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
9 | 2.2 | Принципы построения DWH | Сформулировать основные концепции в построении Хранилищ Данных Проследить эволюцию взглядов и концепций на построение DWH | Разделение на логические слои: Stage + Intermediate + Detail + Marts + Ad Hoc Normalization: 3NF, Denormalized, Data Vault, Anchor Тесты данных и качество данных Team work & CI Макросы и функции + Maintenance Security, Access Segregation, WLM | Использование лучших практик в организации Хранилища Данных Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
10 | Разбор ДЗ – Выгрузка данных веб-счетчика | ||||||||||||||||||||||||||||
11 | 2.3 | Знакомство с Data Build Tool | Познакомиться с Data Build Tool – мультитул для работы с DWH Изучить основные возможности и принципы dbt | Dbt building blocks and principles Connecting to DWH: profiles.yaml Configuration: dbt_project.yaml Launching first project Macros + Jinja templates Code compilation + debugging Documenting your project | Умение правильно найти применение dbt в своих проектах Изучение основных и дополнительных материалов занятия | Конфигурирование и запуск проекта dbt | |||||||||||||||||||||||
12 | 2.4 | DBT: Analytics Engineering | Изучить направление Analytics Engineering сегодня и место dbt в нем Понять, как инструменты подобные dbt могут помочь инженерам и аналитикам | Analytics Engineering SQL best practices: Complex SQL transformations + CTE Building complex Data Marts Materializations: table, view, ephemeral, incremental SQL for analytics (Habr) Analytical functions Snapshotting history of changes (SCD) Accessing documentation easily with static website | Умение применять лучшие практики Software Engineering и Analytics на своих проектах Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
13 | |||||||||||||||||||||||||||||
14 | 3 | Модуль 3. DWH Intermediate | Изучим современные инструменты для оркестрации скриптов и задач, управления пайплайнами и цепочками зависимостей (DAGs). Получим представление об организации всестороннего качества данных и актуальности DWH. Познакомимся с ключевыми принципами оптимизации производительности и устранения bottlenecks. На практике применим навыки моделирования Хранилища по методологии Data Vault 2.0 | ||||||||||||||||||||||||||
15 | |||||||||||||||||||||||||||||
16 | 3.1 | Оркестрация скриптов и задач – 1 | Понять, когда нужны инструменты оркестрации Изучить рынок современных решений | Когда простого cron становится недостаточно Обзор решений Airflow, Prefect, Dagster Принципы работы DAGs | Умение выбрать и применять инструменты оркестрации и управления DAGs Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
17 | 3.2 | Оркестрация скриптов и задач – 2 | Изучить опции развертывания и сопровождения решений оркестрации Погрузиться в оптимизацию и конфигурацию DAGs | Deployment: Self-managed (пример на Kubernetes) vs. Cloud native Writing dynamic DAGs Dependency management Monitoring & Alerting | Умение развернуть решение и опубликовать выполнение DAGs на расписание Изучение основных и дополнительных материалов занятия | Подготовка и установка на расписание DAG выгрузки данных из источников | |||||||||||||||||||||||
18 | Разбор ДЗ – Конфигурирование и запуск проекта dbt | ||||||||||||||||||||||||||||
19 | 3.3 | Data Quality | Получить представление о том что такое качество данных; Выяснить как Data Quality влияет на выводы и принимаемые решения; Рассмотреть стратегии управления качеством данных. | Основные метрики качества данных; Причины нарушения качества и стратегии реагирования; Измерение, мониторинг, исправление; Демонстрация: schema, data, freshness tests в DBT; Continuous Integration tests; кросс-проверки источник <-> DWH. dbt Audit module для аудита при миграции данных, изменениях в коде | Понимание метрик качества данных и их использование для обеспечения консистентности; Знание основных сценариев применения и потенциальной пользы для бизнеса. Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
20 | 3.4 | Вопросы оптимизации производительности | Получить представление об источниках проблем с производительности Изучить лучшие практики в оптимизации производительности | Performance best practices Execution plan analysis, Query profiling (+ internal tables and views) Compressing data & physical design (DIST, SORT, Materialized views, …) Incremental updates / building marts by periods Code refactoring & KISS (Keep it simple, stupid) | Применение лучших практик оптимизации в своих проектах Организация кода, последовательности вычислений, запросов с использованием сильных сторон инструментов и движков | ||||||||||||||||||||||||
21 | Разбор ДЗ – Подготовка и установка на расписание DAG выгрузки данных из источников | ||||||||||||||||||||||||||||
22 | 3.5 | Data Vault – 1 | Погрузиться в подход к организации детального слоя Data Vault 2.0 Рассмотреть пример построения DWH на DV 2.0 | Формулирование требования к модели DWH Освежаем знания о моделировании DWH Нормализация и подход Data Vault 2.0 Building blocks: HUB + LINK + SATELLITE Hash & Surrogate keys | Умение организовать модель детального слоя в своих проектах Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
23 | 3.6 | Data Vault – 2 | Получить представление об архитектурных паттернах и Business Vault Изучить основы автоматизации и генерации кода Data Vault | Архитектурные паттерны и Business Vault Оптимизация физической модели Основы кодогенерации и dbtvault | Построить модель детального слоя с помощью кодогенератора (например, dbtvault) Использовать сильные стороны MPP СУБД для построения физической модели Data Vault | Организация детального слоя DWH по методологии Data Vault | |||||||||||||||||||||||
24 | |||||||||||||||||||||||||||||
25 | 4 | Модуль 4. Business Intelligence | Выясним круг задач для решений класса Business Intelligence. Научимся конфигурировать и запускать BI в своих проектах. Изучим лучшие практики визуальной подачи информации и подготовки дашбордов. | ||||||||||||||||||||||||||
26 | 4.1 | BI: Обзор | Сформулировать назначение систем класса BI; Изучить принципы работы BI-инструментов и решаемые задачи; | Анализ и сравнение функционала решений BI building blocks: connecting, modeling, visualising, dashboarding Обзор популярных BI-решений: Looker, PowerBI, Tableau Open source BI: Superset, Metabase | Сделать выбор оптимального BI-решения под задачи бизнеса Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
27 | 4.2 | BI: Deployment | Изучить опции развертывания BI-решений Погрузиться в вопросы конфигурация развертывания BI-решения | Self-hosted vs. Managed Apache Superset: Docker deployment Metabase: Deployment with Docker on AWS Elastic Beanstalk Configuring BI tool: security, metadata, notifications, user access Software version upgrades | Развертывание и конфигурация OSS BI-решения Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
28 | 4.3 | BI: Modeling & Delivering | Научиться подключаться к источникам данных для BI Создать метрики, сегменты, фильтры, дашборды для визуальной аналитики | Connecting to data sources Задание метрик, фильтров, сегментов Подготовка визуализаций для представления выводов Сборка аналитических дашбордов: лучшие практики | Подготовка аналитической панели-дашборда для визуальной аналитики Изучение основных и дополнительных материалов занятия | Конфигурация и развертывание BI-решения | |||||||||||||||||||||||
29 | Разбор ДЗ – Организация детального слоя DWH по методологии Data Vault | ||||||||||||||||||||||||||||
30 | 4.4 | Analytics: Базовые аналитические витрины | Получение представления о типах аналитических витрин и их особенностях Изучение практик применения аналитики для поиска ответов на бизнес-проблемы | Сегментация – Segments Ключевые показатели и метрики – KPI Анализ временных рядов – Timeseries analytics + Period-by-period Когортный анализ – Cohort analysis | Построение аналитических витрин в своих проектах Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
31 | 4.5 | BI: Углубленные вопросы | Погрузиться в углубленные вопросы конфигурации и оптимизации BI-решений Научиться использовать продвинутые фичи в своих проектах | Продвинутые фичи: Кросс-фильтрация, Calculated fields Кеширование результатов и пре-материализация с помощью Persistent Derived Tables Sharing: public + private sharing + embedding Настройка уведомлений, alerts Тиражирование дашбордов и визуализаций (database migration) Тестирование дашбордов (Data validation) | Применение продвинутых возможностей в своих проектах Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
32 | Разор ДЗ – Конфигурация и развертывание BI-решения | ||||||||||||||||||||||||||||
33 | 4.6 | Analytics: Продвинутые аналитические витрины | Получение представления о продвинутых аналитических витринах Изучение практик применения аналитики для поиска ответов на бизнес-проблемы | Разбиение событий на сессии – Sessionization Построение воронок и расчет конверсий – Funnels and conversions Привлечение, Вовлечение, Удержание – Acquisition, Engagement, Retention analysis Recency, Frequency, Monetary Value – RFM analysis | Построение аналитических витрин в своих проектах Изучение основных и дополнительных материалов занятия | Визуализация и дашбординг для аналитических витрин | |||||||||||||||||||||||
34 | |||||||||||||||||||||||||||||
35 | 5 | Модуль 5. DWH Advanced topics | Изучим сложные и продвинутые фишки в работе с Хранилищем Данных: Настроим мониторинг и сбор ключевых метрик Хранилища Данных. Задействуем возможности тесной работы с Data Lake (External Data) и полу-структурированными данными. Найдем точки сопрокосновения с Data Scientists, проведем обзор возможностей современных СУБД в сфере распределенного ML. | ||||||||||||||||||||||||||
36 | 5.1 | DWH: Advanced topics | Изучить продвинутые функциональные возможности Хранилищ Данных Разобраться в основных трендах и развивающихся фичах | DWH: Extending with UDF Complex analytics SQL: Geospatial + Sessionizing + Pattern Matching DBT: Advanced macros + Jinja Enabling Slim CI CI and deployment with Github Actions Avoiding count(distinct..) -> HyperLogLog Sketch | Применение продвинутых практик в работе с DWH Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
37 | 5.2 | DBT: Advanced topics | Получить представление о расширении функциональных возможностей dbt под задачи и потребности Научиться работать с модулями dbt – импорт, версионирование, использование Разобраться с написание собственного модуля или расширением существующего | Importing modules (libraries) Overview of modules: dbt_utils, calendar, logging Creating your own module Testing your newly created module Custom materialization: materialized view | Создание собственного модуля dbt для переиспользования в проектах Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
38 | 5.3 | DWH: Monitoring + Workload management | Научиться измерять и отслеживать основные метрики DWH Визуализировать метрики Хранилища Данных для анализа | Database performance metrics: CPU, RAM, Disk, Network, Errors and restarts DWH deployement metrics: frequency, time to build, bottlenecks, problem models Logging dbt runs: 1. via pre- & post-hooks (logging module) 2. via parsing dbt artifacts Visualizing and analysing metrics on a dashboard Segregating access and resources to users with roles, groups and WLM | Сбор и визуализация основных метрик Хранилища Данных Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
39 | Разбор ДЗ – Визуализация и дашбординг для аналитических витрин | ||||||||||||||||||||||||||||
40 | 5.4 | DWH: External + Semi-structured data | Изучить принципы работы с внешними для Хранилища Данными Познакомиться с инструментами и возможностями обращения к External Data | S3 based Data Lake Accessing Semi-structured data External Data: Parquet, ORC Hive, Presto, Athena Dbt module: external data | Умение выстроить связь DWH - Data Lake и органично управлять своими данными Изучение основных и дополнительных материалов занятия | Advanced DWH: Configuring CI, dbt modules, External tables | |||||||||||||||||||||||
41 | 5.5 | DWH: Reverse-ETL | Получить представление о процессах выгрузки данных из DWH Изучить возможные сценарии использования reverse-ETL | Push data from DWH to Operational systems Обзор фреймворков Grouparoo, Census Что выгружаем: LTV, customer labels, scoring Примеры и демонстрация: Braze, Hubspot, Mailchimp | Умение применить практики для сценария Push data from DWH Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
42 | 5.6 | DWH: Machine Learning capabilities | Выяснить место DWH по отношению к Data Science и Machine Learning Узнать, какими возможностями в области ML обладают современные аналитические движки | Feature engineering with dbt In-database ML (BigQuery, Vertica) Redshift + SageMaker | Умение тесно сотрудничать с Data Scientists и масштабировать решения ML Изучение основных и дополнительных материалов занятия | ||||||||||||||||||||||||
43 | |||||||||||||||||||||||||||||
44 | 6 | Модуль 6. Recap | Повторим и суммируем весь пройденный в предыдущих модулях материал. Изучим реальные кейсы и примеры организации работы с данными в компаниях. Рассмотрим пути дальнейшего развития Hard & Soft Skills. | ||||||||||||||||||||||||||
45 | 6.1 | Разбор кейса: end-to-end solution | Повторить все пройденные материалы курса Разобрать несколько кейсов применения полученных знаний в решении бизнес-проблем | Put everything in place. Собираем воедино все части Где могут возникнуть проблемы и как их решить Разбор реальных кейсов компаний Коммуникация - понимаем, чего хочет заказчик и делаем чуть больше Поставка дата-сервисов и результатов – Deliver results | Применение полученных знаний на своих проектах | ||||||||||||||||||||||||
46 | Разбор ДЗ – Advanced DWH: Configuring CI, dbt modules, External tables | ||||||||||||||||||||||||||||
47 | 6.2 | Дальнейшее развитие навыков | получить обзорную картинку полезных навыков и умений, сферы их применения; пополнить багаж полезных знаний для совершенствования. | развитие Твердых (Hard) навыков: 20 часов практики на навык, увеличить производительность работы, ресурсы; развитие Мягких (Soft) навыков: правила подготовки CV, прохождение интервью, общение с ментором, карьерное развитие. | выжимка навыков, ресурсов, подсказок для дальнейшего уверенного развития. | Soft skills checklist: CV, LinkedIn, достигнутые цели обучения | |||||||||||||||||||||||
48 | |||||||||||||||||||||||||||||
49 | |||||||||||||||||||||||||||||
50 | Модуль 7. ПРОЕКТНАЯ РАБОТА | ||||||||||||||||||||||||||||
51 | Вводное занятие | - Definition of Done - Сформулировать цель аналитического приложения, business value - Представить архитектуру ресурсов и компонентов системы - Классифицировать источники данных, регулярность загрузки, форматы данных и структуру - Смоделировать Хранилища Данных - Развернуть BI-инструмент - Визуализировать данные в наглядном и понятном виде на дашбордах - Сделать несколько интересных выводов - * Опубликовать результаты работы на Хабр/…, выложить код на Github - Темы на выбор (+ есть возможность предложить свою тему): - Social media / Telegram channels / Twitter analysis - Open Data: Covid, Taxi trips, Kaggle, ... - Web analysis: crawling, parsing, analysing websites - Marketing analytics: performance + attribution | |||||||||||||||||||||||||||
52 | Конусльтация по проектам | ||||||||||||||||||||||||||||
53 | Защита проектов | ||||||||||||||||||||||||||||
54 | Итоговое занятие | ||||||||||||||||||||||||||||
55 | |||||||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||||
58 | Публикации: | ||||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||||
60 | The Modern Data Stack: Past, Present, and Future | ||||||||||||||||||||||||||||
61 | Emerging Architectures for Modern Data Infrastructure | ||||||||||||||||||||||||||||
62 | The Analytics Engineering Guide | ||||||||||||||||||||||||||||
63 | How to find a role in analytics engineering | ||||||||||||||||||||||||||||
64 | Five principles that will keep your data warehouse organized | ||||||||||||||||||||||||||||
65 | Не ищите единорога: как нанять хорошего Data-аналитика или как им стать | ||||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||||
67 | Книги: | ||||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||||
69 | Designing Data-Intensive Applications [Электронный ресурс] / Martin Kleppmann. — Электрон. текстовые дан. — O'Reilly Media, Inc, 2017. — Режим доступа: https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/ | ||||||||||||||||||||||||||||
70 | Designing Event-Driven Systems [Электронный ресурс] / Ben Stopford. — Электрон. текстовые дан. — O'Reilly Media, Inc, 2018. — Режим доступа: https://www.oreilly.com/library/view/designing-event-driven-systems/9781492038252/ | ||||||||||||||||||||||||||||
71 | Python Cookbook, 3rd Edition [Электронный ресурс] / David Beazley, Brian K. Jones. — Электрон. текстовые дан. — O'Reilly Media, Inc, 2013. — Режим доступа: https://www.oreilly.com/library/view/python-cookbook-3rd/9781449357337/ | ||||||||||||||||||||||||||||
72 | Big Data: Principles and best practices of scalable realtime data systems [Электронный ресурс] / Nathan Marz with James Warren. — Электрон. текстовые дан. — Manning Publications, 2015. — Режим доступа: https://www.oreilly.com/library/view/big-data-principles/9781617290343/ | ||||||||||||||||||||||||||||
73 | Google Cloud Platform for Architects [Электронный ресурс] / Judy Raj, Janani Ravi, Vitthal Srinivasan. — Электрон. текстовые дан. — Packt Publishing, 2018. — Режим доступа: https://www.oreilly.com/library/view/google-cloud-platform/9781788834308/ | ||||||||||||||||||||||||||||
74 | Building a Scalable Data Warehouse with Data Vault 2.0 [Электронный ресурс] / Daniel Linstedt, Michael Olschimke. — Электрон. текстовые дан. — Morgan Kaufmann, 2015. — Режим доступа: https://www.oreilly.com/library/view/building-a-scalable/9780128026489/ | ||||||||||||||||||||||||||||
75 | Code Complete, Second Edition [Электронный ресурс] / Steve McConnell. — Электрон. текстовые дан. — Microsoft Press, 2004. — Режим доступа: https://fktpm.ru/file/84-soversennyi-kod.pdf | ||||||||||||||||||||||||||||
76 | 97 Things Every Programmer Should Know [Электронный ресурс] / Kevlin Henney. — Электрон. текстовые дан. — O'Reilly Media, Inc, 2010. — Режим доступа: https://www.oreilly.com/library/view/97-things-every/9780596809515/ | ||||||||||||||||||||||||||||
77 | Whirlwind Tour of Python [Электронный ресурс] / Jake VanderPlas. — Электрон. текстовые дан. — O'Reilly Media, Inc, Режим доступа: https://learning.oreilly.com/jupyter-notebooks/whirlwind-tour-of/9781492074441/ | ||||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||||
100 |