Проект ETL (Extract, Transform, Load) для обработки и анализа данных в реальном времени с использованием современного стека технологий.
- Airflow - оркестрация ETL процессов
- ClickHouse - колоночная СУБД для аналитики
- Apache Spark - обработка данных в реальном времени
- Kafka - потоковая обработка данных
- Debezium - CDC (Change Data Capture) для отслеживания изменений в данных
- Apache Superset - визуализация данных
- Jupyter Notebook - интерактивный анализ данных
- DBT - трансформация данных
- Docker - контейнеризация всех компонентов
- MinIO - S3-совместимое хранилище объектов
- Prometheus - мониторинг метрик
- Grafana - визуализация метрик
- Redis - кэширование и очереди
- PostgreSQL - метаданные Airflow
.
├── airflow_dockerfile/ # Конфигурация Airflow
├── clickhouse/ # Конфигурация ClickHouse
├── dags/ # DAG'и Airflow
├── dbt_click/ # DBT модели для ClickHouse
├── debezium-*/ # Конфигурация Debezium и мониторинга
├── jupyter_dockerfile/ # Конфигурация Jupyter
├── plugins/ # Плагины Airflow
├── scripts/ # Вспомогательные скрипты
├── src/ # Исходный код
├── superset_dockerfile/ # Конфигурация Apache Superset
├── s3_storage/ # Хранилище MinIO
└── synthetic_data/ # Тестовые данные
- Клонируйте репозиторий:
git clone https://github.com/yourusername/HalltapeETL.git
cd HalltapeETL- Создайте файл
.envсо следующими параметрами:
AIRFLOW_UID=50000
AIRFLOW_GID=0
POSTGRES_USER=airflow
POSTGRES_PASSWORD=airflow
CLICKHOUSE_USER=default
CLICKHOUSE_PASSWORD=your_password
SUPERSET_ADMIN_USERNAME=admin
SUPERSET_ADMIN_EMAIL=admin@example.com
SUPERSET_ADMIN_PASSWORD=admin
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin
MINIO_BUCKET_NAME=data- Запустите проект с помощью Docker Compose:
docker-compose up -d- Airflow: http://localhost:8080 (admin/admin)
- ClickHouse:
- HTTP: 8123
- Native: 9000
- Superset: http://localhost:8088
- Jupyter: http://localhost:10000
- Grafana: http://localhost:3000
- Prometheus: http://localhost:9090
- Kafka UI: http://localhost:8082
- MinIO Console: http://localhost:9001
- Kafka Connect: http://localhost:8083
./data_lake- основное хранилище данных./s3_storage- MinIO хранилище./synthetic_data- тестовые данные./clickhouse- данные ClickHouse./superset_data- данные Superset
- Grafana: http://localhost:3000
- Дашборды для Kafka, Debezium, ClickHouse
- Мониторинг производительности
- Prometheus: http://localhost:9090
- Сбор метрик со всех компонентов
- Kafka UI: http://localhost:8082
- Мониторинг топиков и коннекторов
- Логи Airflow доступны в директории
./logs - Логи ClickHouse в
./clickhouse/logs
- Документация Airflow
- Документация ClickHouse
- Документация Debezium
- Документация Apache Superset
- Документация Apache Kafka
- Документация Apache Spark
- Форкните репозиторий
- Создайте ветку для новой функциональности (
git checkout -b feature/amazing-feature) - Зафиксируйте изменения (
git commit -m 'Add some amazing feature') - Отправьте изменения в репозиторий (
git push origin feature/amazing-feature) - Создайте Pull Request
Этот проект распространяется под лицензией MIT. Подробности в файле LICENSE.
Если у вас есть вопросы или предложения, создайте Issue в репозитории проекта.
