Skip to content
/ etl Public

GB: Построение хранилища данных и основы ETL

Notifications You must be signed in to change notification settings

bostspb/etl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GB: Построение хранилища данных и основы ETL

Geek University Data Engineering

DWH ETL Data Vault Anchor Modeling MPP Data Quality Apache Airflow Python Docker PostgreSQL Jupyter Notebook

Урок 1. Введение

  1. Понятие хранилища данных.
  2. Виды представления моделей данных.
  3. Реляционные модели данных.
  4. Реляционная терминология.

Урок 2. Архитектура хранилищ

  1. Нормализация данных
  2. Архитектура хранилища данных - слои

Задание
Привести таблицы к 3НФ, НФБК, 4НФ, 5НФ, 6НФ

Решение
Приведение к 3НФ
Приведение к НФБК
Приведение к 4НФ
Приведение к 5НФ
Приведение к 6НФ

Урок 3. Проектирование хранилища. Часть 1

  1. Хранилище по Кимбаллу
  2. Хранилище по Инмону
  3. Концепция Data Vault
  4. Концепция Anchor modeling

Урок 4. Проектирование хранилища. Часть 2

  • MPP системы
    • SE (Shared-Everything) - архитектура с разделяемыми памятью и дисками
    • SD (Shared-Disks) - архитектура с разделяемыми дисками
    • SN (Shared-Nothing) - архитектура без совместного использования ресурсов
    • Teradata – это параллельная реляционная СУБД.
    • Vertica - реляционная колончатая СУБД.
    • ClickHouse — колоночная аналитическая СУБД
  • Проектирование хранилища
    • Data vault
    • Anchor modeling

Задание
Спроектировать логические схемы Data Vault и Anchor Modeling на примере базы Northwind.

Решение

Урок 5. Создание ETL процесса. Часть 1

  • познакомились с понятием ETL
  • узнали основные свойства и требования к ETL процессам
  • научились разворачивать СУБД в докере
  • познакимились с python DB-API
  • потренировались писать ETL процесс с помощью psycopg2

Задание

  1. Развернуть всю архитектуру у себя
  2. Написать ETL процесс для загрузки всех таблиц из postgres-источника в postgres-приемник

Решение

Урок 6. Создание ETL процесса. Часть 2

  • познакомились с Airflow
  • написали базовый оператор ответственный за загрузку данных в хранилище
  • написали оператор извлечения данных из Postgres
  • написали даг ежедневного дампа таблицы в хранилище
  • получили скелет ETL-системы

Задание

  1. Развернуть окружение
  2. Создать даг для дампа всех таблиц, использую операторы из урока

Решение

Урок 7. Управление качеством данных

  • познакомились с понятием Data quality и метаданных
  • узнали какие есть метрики и методы для оценки качества данных
  • реализовали оператор для записи логов, сбора статистики и проверки загрузки данных
  • модифицировали код базового оператора, теперь он пишет лог и делает проверку были ли загружены данные

Задание

  1. Написать оператор для сбора статистики в таблицу statistic. Метод записи из utils.py: write_etl_statistic().
  2. Создать отдельный даг с этим оператором. Перед сбором статистики должен быть external_task_sensor на успешное выполнение переливки данных. Документация по сенсору: https://airflow.apache.org/docs/apache-airflow/1.10.4/_api/airflow/sensors/external_task_sensor/index.html

Решение

Урок 8. Курсовой проект

  • спроектировали схему хранилища
  • реализовали операторы для разложения данных по слоям
  • определили вид конфигурационного файла для описания модели данных
  • написали даг с полным ETL-пайплайном

Задание
Реализовать ETL-систему для загрузки Data Vault

Решение

About

GB: Построение хранилища данных и основы ETL

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages