ETL>> etl>> 返回
项目作者: bostspb

项目描述 :
GB: Построение хранилища данных и основы ETL
高级语言: Python
项目地址: git://github.com/bostspb/etl.git
创建时间: 2021-02-20T05:25:30Z
项目社区:https://github.com/bostspb/etl

开源协议:

下载


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

Решение