Skip to content

Instantly share code, notes, and snippets.

@MuhammadQuran17
Created March 10, 2026 07:47
Show Gist options
  • Select an option

  • Save MuhammadQuran17/bccf3eb278beeccab8bc33a90cb7d3f8 to your computer and use it in GitHub Desktop.

Select an option

Save MuhammadQuran17/bccf3eb278beeccab8bc33a90cb7d3f8 to your computer and use it in GitHub Desktop.
Data Analytics Helper

1️⃣ Обычная база данных (OLTP)

Представь твой Laravel-проект. В базе данных происходят операции постоянно:

  • пользователь регистрируется → INSERT
  • обновляет профиль → UPDATE
  • смотрит список машин → SELECT
  • удаляет объявление → DELETE

Такие базы называются OLTP (Online Transaction Processing).

Их цель — быстро обслуживать операции приложения.

Типичные примеры:

  • MySQL
  • PostgreSQL
  • MariaDB
  • SQLite

Поэтому придумали Data Warehouse (OLAP)

Data Warehouse — это база данных специально для аналитики.

Туда обычно:

  1. копируют данные из основной базы
  2. очищают
  3. оптимизируют для аналитики

Цель:

👉 быстро выполнять сложные аналитические запросы

Примеры Data Warehouse:

  • Snowflake
  • Amazon Redshift
  • Google BigQuery
  • ClickHouse
  • Azure Synapse

А теперь Data Lake

Но потом появилась новая проблема.

Компании начали хранить:

  • логи
  • JSON
  • изображения
  • видео
  • CSV
  • сырые данные

И всё это не помещается в строгую структуру таблиц.

Поэтому появился Data Lake.

Data Lake = огромное хранилище сырых данных.

Туда складывают всё как есть.

Примеры технологий:

  • Amazon S3
  • Hadoop HDFS
  • Azure Data Lake
  • Google Cloud Storage

ETL & ELT

У нас есть:

Application DB (MySQL/Postgres)
        ↓
Data Warehouse (Redshift / BigQuery / ClickHouse)

Теперь вопрос: как данные попадут туда?

И вот здесь появляется ETL / ELT.


1️⃣ Что означает ETL

ETL — это три шага:

E — Extract
T — Transform
L — Load

Разберём на простом примере.

Представь твой бот продажи машин.

У тебя есть таблица:

cars
id | brand | price | created_at

Но в аналитике бизнес хочет отчёт:

average price per brand per month

Шаг 1 — Extract (извлечь)

Мы берём данные из источника:

MySQL
Postgres
API
CSV
logs

Например:

SELECT * FROM cars

Шаг 2 — Transform (преобразовать)

Данные часто нужно:

  • очистить
  • изменить формат
  • объединить таблицы
  • посчитать агрегаты

Например:

brand
month
avg_price

Шаг 3 — Load (загрузить)

После обработки данные кладутся в:

Redshift
BigQuery
Snowflake
ClickHouse

2️⃣ Почему нельзя просто копировать таблицы?

Подумай.

Если мы просто скопируем таблицу:

cars

аналитику придётся каждый раз делать:

GROUP BY
JOIN
aggregation

на миллионах строк.

Это дорого и медленно.

Поэтому данные подготавливают заранее.


3️⃣ Что такое ELT

Теперь современный вариант.

ELT
Extract
Load
Transform

Разница:

мы сначала загружаем сырые данные, а потом трансформируем уже внутри Data Warehouse.

Почему это возможно?

Потому что современные системы (BigQuery, Snowflake) очень мощные.


4️⃣ Простая аналогия

Представь овощи на кухне.

ETL:

1 взять овощи
2 нарезать
3 положить в холодильник

ELT:

1 взять овощи
2 положить в холодильник
3 нарезать когда нужно

5️⃣ Инструменты ETL

Очень известные:

  • Apache Airflow
  • Fivetran
  • dbt
  • Talend
  • Stitch
  • Kafka pipelines

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment