You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Multi-cloud cost analytics platform combining AWS Cost and Usage Reports (CUR), GCP billing data, and Stripe revenue metrics. Built with dlt for data ingestion, DuckDB for storage, and Rill for visualization.
3
+
Multi-cloud cost analytics platform combining AWS Cost and Usage Reports (CUR), GCP billing data, and Stripe revenue metrics. Built with dlt for data ingestion, DuckDB/ClickHouse for storage, and Rill for visualization.
4
+
5
+
> **NEW: Cloud-Ready Version**
6
+
>
7
+
> This version now supports **both local and cloud deployment**:
8
+
> -**Local Mode**: Parquet files + DuckDB + local Rill (perfect for development)
-**[ANONYMIZATION.md](ANONYMIZATION.md)** - Data anonymization for public dashboards
73
+
-**[CLAUDE.md](CLAUDE.md)** - Architecture details and development guide
50
74
51
75
52
76
## Setup
@@ -217,30 +241,43 @@ The `initial_start_date` parameter controls how far back to load historical data
217
241
**Note about AWS table_name and Rill dashboards:**
218
242
If you change the AWS `table_name` from the default `cur_export_test_00001`, you'll also need to update the parquet path in `viz_rill/models/aws_costs.sql` (file has comments showing where).
219
243
220
-
#### Cloud Deployment (ClickHouse)
221
-
This repo supports both local (default) and cloud deployment:
244
+
#### Cloud Deployment with ClickHouse & Rill Cloud
245
+
246
+
**New in this version**: Deploy to production with ClickHouse Cloud and automate with GitHub Actions!
222
247
223
-
-**Local mode** (default): Parquet files + Rill local server
224
-
-**Cloud mode**: ClickHouse Cloud + Rill Cloud or local Rill
248
+
**Quick Cloud Setup:**
225
249
226
-
To deploy to ClickHouse Cloud, see [CLICKHOUSE.md](CLICKHOUSE.md) for complete setup instructions including:
227
-
- ClickHouse Cloud account setup
228
-
- Switching between local and cloud modes
229
-
- Data anonymization for public dashboards
230
-
- GitHub Actions automation
231
-
- Troubleshooting
250
+
1.**Create ClickHouse Cloud service** ([sign up free](https://clickhouse.cloud))
232
251
233
-
Short setup version:
252
+
2.**Add credentials to `.dlt/secrets.toml`:**
253
+
```toml
254
+
[destination.clickhouse.credentials]
255
+
host = "xxxxx.europe-west4.gcp.clickhouse.cloud"
256
+
port = 8443
257
+
username = "default"
258
+
password = "your-password"
259
+
secure = 1
260
+
```
234
261
235
-
1. In rill.yaml change `olap_connector: clickhouse` to clickhouse
236
-
2. set `RILL_CONNECTOR="clickhouse"` in .env in `viz_rill/.env` and add DNS a valid path for ClickHouse`CONNECTOR_CLICKHOUSE_DSN="https://<HOST>.europe-west4.gcp.clickhouse.cloud:8443?username=default&password=<PASSWORD>&secure=true&skip_verify=true"`
237
-
3. use ENV `DLT_DESTINATION=clickhouse`, but it will be set automatically inside Makefile
238
-
1. in rill.yaml change `olap_connector: clickhouse` to clickhouse
262
+
3.**Configure Rill for ClickHouse** in `viz_rill/.env`:
make init-clickhouse # Initialize database (one-time)
271
+
make run-all-cloud # ETL + anonymize + serve
272
+
```
240
273
241
-
After running the clickhouse pipeline with `make run-all-cloud`, it will load all data into clickhouse and serve rill from ClickHouse.
274
+
**What you get:**
275
+
- Data stored in ClickHouse Cloud (scalable, fast)
276
+
-[Automated daily updates via GitHub Actions](.github/workflows/etl-pipeline.yml) (runs at 2 AM UTC)
277
+
- Optional data anonymization for public dashboards
278
+
- Works with both Rill Cloud and local Rill
242
279
243
-
Long version with details in [ClickHouse Setup](CLICKHOUSE.md).
280
+
**Complete guide**: See [CLICKHOUSE.md](CLICKHOUSE.md) for detailed setup, GitHub Actions configuration, mode switching, and troubleshooting.
244
281
245
282
### 4. Run the Pipeline
246
283
@@ -252,6 +289,7 @@ make serve # Opens Rill dashboards
252
289
253
290
## How the Data Pipeline Works
254
291
292
+
This pipeline supports both **local mode** (Parquet + DuckDB) and **cloud mode** (ClickHouse Cloud). The architecture remains the same, only the storage layer changes.
-**Blog Post**: [Multi-Cloud Cost Analytics: From Cost-Export to Parquet to Rill](https://www.ssp.sh/blog/cost-analyzer-aws-gcp/) - Detailed write-up of this project
565
+
-**Blog Post Part 2**: [Multi-Cloud Cost Analytics with dlt, ClickHouse & Rill](https://www.ssp.sh/posts/) - Detailed write-up of this project
566
+
-**Original Local Version**: [Branch `v1`](https://github.com/ssp-data/cloud-cost-analyzer/tree/v1) - Pre-ClickHouse version
0 commit comments