https://github.com/kaboupi/d-compose
Essentials for practicing Data Engineering / DevOps / DBA
https://github.com/kaboupi/d-compose
apache-airflow clickhouse docker docker-compose postgres
Last synced: about 1 year ago
JSON representation
Essentials for practicing Data Engineering / DevOps / DBA
- Host: GitHub
- URL: https://github.com/kaboupi/d-compose
- Owner: Kaboupi
- Created: 2024-12-15T16:42:43.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-01-21T15:34:29.000Z (over 1 year ago)
- Last Synced: 2025-01-21T16:33:53.628Z (over 1 year ago)
- Topics: apache-airflow, clickhouse, docker, docker-compose, postgres
- Language: Python
- Homepage:
- Size: 187 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README





# D-compose π³
> Follow this link to view the description in English - [README_EN.md](https://github.com/Kaboupi/d-compose/tree/master/docs/README_EN.md)
Π‘ΡΡΠΊ ΠΈΠ· ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Data Engineering.
ΠΡΠΎΠ΅ΠΊΡ Π½Π°ΡΡΡΠΎΠ΅Π½ Π½Π° ΠΊΠΎΠΌΡΠΎΡΡΠ½ΡΠΉ ΠΈ Π±ΡΡΡΡΡΠΉ Π·Π°ΠΏΡΡΠΊ Π²ΡΠ΅Ρ
ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
Π [**docker-compose.yaml**](https://github.com/Kaboupi/d-compose/blob/master/docker-compose.yaml) ΡΠΎΠ±ΡΠ°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ°Π·Ρ:
|ΠΠΎΠΌΠ΅Ρ|Docker image|TAG|ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅|
|---|---|---|---|
|1|PostgreSQL|postgres:13.3|OLTP Π‘Π£ΠΠ|
|2|ClickHouse|clickhouse/clickhouse-server:latest|OLAP Π‘Π£ΠΠ|
|3|Apache Airflow|apache/airflow:2.10.4|ETL|
|4|Apache Kafka|confluentinc/cp-kafka:latest|ΠΡΠΎΠΊΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ|
|5|Apache Zookeeper|zookeeper:3.7|ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΡ/Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅|
|6|Apache Nifi|apache/nifi:1.28.1|ETL|
|7|Minio|minio/minio:latest|ΠΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅|
|8|Grafana Enterprise|grafana/grafana-enterprise:latest|BI-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ|
> ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΏΠΈΡΠ°Π½Ρ Π² **[.env](https://github.com/Kaboupi/d-compose/blob/master/.env)** ΡΠ°ΠΉΠ»Π΅
## Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° (Windows / Linux)
**Linux**:
ΠΠ»Ρ ΠΏΠΎΠ΄Π½ΡΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π½Π° Linux Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ **Docker compose** ΠΈ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΠΎΠ»Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΠΊΠ°Π·Π°Π½Π° Π² [ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ](https://docs.docker.com/compose/install/linux/). Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ [Desktop Π²Π΅ΡΡΠΈΡ Π΄Π»Ρ Linux](https://docs.docker.com/desktop/).
**Windows**:
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ **Docker compose** Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ [Desktop Π²Π΅ΡΡΠΈΡ Π΄Π»Ρ Windows](https://docs.docker.com/desktop/) ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ WSL 2.0.
ΠΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ WSL ΠΌΠΎΠΆΠ½ΠΎ Π½Π° [ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅ Microsoft](https://learn.microsoft.com/ru-ru/windows/wsl/install).
1. ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
```bash
git clone git@github.com:Kaboupi/d-compose.git
```
2. ΠΠ΅ΡΠ΅Ρ
ΠΎΠ΄ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ D-compose
```bash
cd d-compose
```
3. ΠΠΎΠ΄Π½ΡΡΠΈΠ΅ Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²
```bash
docker compose up -d
```
## ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΏΠΈΡΠΎΠΊ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΏΠΎ Π΄Π΅ΡΠΎΠ»ΡΡ:
- **Clickhouse**: [http://localhost:8123/](http://localhost:8123/)
- **Apache Airflow**: [http://localhost:8080/](http://localhost:8080/)
- **Apache NiFi**: [http://localhost:8090/nifi](http://localhost:8090/nifi)
- **Minio**: [http://localhost:9001/](http://localhost:9001/)
- **Grafana**: [http://localhost:3000/](http://localhost:3000/)
- - Π **Data Sources** Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π‘Π£ΠΠ Postgres ΠΈ Π‘Π£ΠΠ ClickHouse. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Ρ
ΡΠ°Π½ΡΡΡΡ Π² `sources/grafana/provisioning/datasources/datasources.yaml`
ΠΠΎ Π΄Π΅ΡΠΎΠ»ΡΡ PV ΠΏΡΠΎΠΏΠΈΡΠ°Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΊ Grafana ΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ
Postgres Π΄Π»Ρ Airflow.
> βΠΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠΌ ΠΈΠ»ΠΈ bind mount, ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΈΡ
Π½Π°ΠΏΡΡΠΌΡΡ Π² `volumes:`, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
>
> ```yaml
> services:
> clickhouse:
> image: clickhouse/clickhouse-server:latest
> ...
> volumes:
> - my_custom_volume:/var/lib/clickhouse # docker volume
> - ./my_custom_dir:/var/lib/clickhouse # bind mount
>
> volumes:
> my_custom_volume:
> ```
## ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ docs
ΠΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π΅Ρ ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ - **[ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ d-compose](https://github.com/Kaboupi/d-compose/blob/master/docs/list.md)**
## ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅
**[ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅](https://github.com/kaboupi/d-compose/issues/new/choose)** Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
## ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
Linux:
- Docker compose release ~>2.28.0 or latest
Windows:
- Windows 10 ~>22H2
- WSL (ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ 2.0)
- Docker Desktop ~>4.20 or latest