Представь твой Laravel-проект. В базе данных происходят операции постоянно:
- пользователь регистрируется → INSERT
- обновляет профиль → UPDATE
- смотрит список машин → SELECT
- удаляет объявление → DELETE
Такие базы называются OLTP (Online Transaction Processing).
Их цель — быстро обслуживать операции приложения.
Типичные примеры:
- MySQL
- PostgreSQL
- MariaDB
- SQLite
Data Warehouse — это база данных специально для аналитики.
Туда обычно:
- копируют данные из основной базы
- очищают
- оптимизируют для аналитики
Цель:
👉 быстро выполнять сложные аналитические запросы
Примеры Data Warehouse:
- Snowflake
- Amazon Redshift
- Google BigQuery
- ClickHouse
- Azure Synapse
Но потом появилась новая проблема.
Компании начали хранить:
- логи
- JSON
- изображения
- видео
- CSV
- сырые данные
И всё это не помещается в строгую структуру таблиц.
Поэтому появился Data Lake.
Data Lake = огромное хранилище сырых данных.
Туда складывают всё как есть.
Примеры технологий:
- Amazon S3
- Hadoop HDFS
- Azure Data Lake
- Google Cloud Storage
У нас есть:
Application DB (MySQL/Postgres)
↓
Data Warehouse (Redshift / BigQuery / ClickHouse)
Теперь вопрос: как данные попадут туда?
И вот здесь появляется ETL / ELT.
ETL — это три шага:
E — Extract
T — Transform
L — Load
Разберём на простом примере.
Представь твой бот продажи машин.
У тебя есть таблица:
cars
id | brand | price | created_at
Но в аналитике бизнес хочет отчёт:
average price per brand per month
Мы берём данные из источника:
MySQL
Postgres
API
CSV
logs
Например:
SELECT * FROM cars
Данные часто нужно:
- очистить
- изменить формат
- объединить таблицы
- посчитать агрегаты
Например:
brand
month
avg_price
После обработки данные кладутся в:
Redshift
BigQuery
Snowflake
ClickHouse
Подумай.
Если мы просто скопируем таблицу:
cars
аналитику придётся каждый раз делать:
GROUP BY
JOIN
aggregation
на миллионах строк.
Это дорого и медленно.
Поэтому данные подготавливают заранее.
Теперь современный вариант.
ELT
Extract
Load
Transform
Разница:
мы сначала загружаем сырые данные, а потом трансформируем уже внутри Data Warehouse.
Почему это возможно?
Потому что современные системы (BigQuery, Snowflake) очень мощные.
Представь овощи на кухне.
ETL:
1 взять овощи
2 нарезать
3 положить в холодильник
ELT:
1 взять овощи
2 положить в холодильник
3 нарезать когда нужно
Очень известные:
- Apache Airflow
- Fivetran
- dbt
- Talend
- Stitch
- Kafka pipelines