Data Warehouse

数仓

Table inventory, query load, freshness and data-quality gates.

22 tables7 stale
Rows

53.6B

62.6 TB
Queries (24h)

181.7K

Avg query

391ms

Freshness

374m

7 stale tables
Quality score

94%

Tables

22

Query volume
30-day warehouse load
Storage by engine
Bytes on disk
Quality trend
Composite data-quality score

Hot tables

Most queried in 24h

TableRowsQueriesQuality
agg_daily_revenue
clickhouse · 7 MB · 60m fresh
39.4K17.5K99%
fact_page_views
clickhouse · 338.1 GB · 7m fresh
4.1B17.2K91.6%
fact_ai_invocations
clickhouse · 2 TB · 3m fresh
6.9B17K95.2%
dim_users
postgres · 84.7 MB · 103m fresh
198.9K14.2K91.3%
agg_ai_cost_by_model
clickhouse · 27.3 MB · 65m fresh
214.6K14K90.2%
agg_daily_active_users
clickhouse · 5.6 MB · 213m fresh
48.2K13K96.4%
fact_feature_events
clickhouse · 479.5 GB · 18m fresh
4.9B12.2K96.4%
fact_payments
postgres · 631.6 GB · 26m fresh
2.2B9.1K93.9%
fact_sessions
clickhouse · 336 GB · 13m fresh
3.6B8.8K98.9%
agg_retention_cohorts
clickhouse · 7.1 MB · 2566m fresh
92.4K7.1K90.5%
fact_subscription_changes
postgres · 610.3 GB · 11m fresh
2.6B6.8K97.1%
fact_errors
clickhouse · 294.7 GB · 9m fresh
491.4M6.6K91.7%

Slow queries

Recent heavy scans

SQLDurationWhen
SELECT * FROM s3('s3://northwind-lake/raw_llm_request_logs/dt=2026-07-*/*.parquet') WHERE JSONExtractString(payload, 'error') != ''
raw_llm_request_logs · 3.1B rows · grafana_reader
45.7s1d ago
SELECT type, count() FROM raw_stripe_events WHERE dt BETWEEN '2026-01-01' AND '2026-07-26' GROUP BY type
raw_stripe_events · 1.6B rows · alex@northwindlabs.io
39.4s1d ago
SELECT distinct_id, count() FROM raw_posthog_export WHERE event = '$pageview' AND dt >= '2026-06-01' GROUP BY distinct_id ORDER BY 2 DESC LIMIT 500
raw_posthog_export · 7.1B rows · grafana_reader
30.9s23h ago
SELECT toStartOfHour(invoked_at) AS h, quantile(0.95)(latency_ms) AS p95 FROM fact_ai_invocations WHERE model_name LIKE 'claude%' GROUP BY h ORDER BY h
fact_ai_invocations · 4.3B rows · metabase@northwindlabs.io
24.6s23h ago
SELECT cohort_month, countIf(week_index = 4) / count() AS w4_retention FROM fact_sessions JOIN dim_users USING (user_id) GROUP BY cohort_month
fact_sessions · 2.8B rows · dbt_runner
24.4s1d ago
SELECT product_id, model_name, sum(cost_usd) AS spend FROM fact_ai_invocations WHERE invoked_at >= now() - INTERVAL 90 DAY GROUP BY product_id, model_name ORDER BY spend DESC
fact_ai_invocations · 3.4B rows · alex@northwindlabs.io
17.7s1d ago
SELECT feature, product_id, count() AS uses FROM fact_feature_events WHERE occurred_at >= now() - INTERVAL 180 DAY GROUP BY feature, product_id HAVING uses > 1000
fact_feature_events · 4.6B rows · dbt_runner
15s15h ago
SELECT path, uniqExact(user_id) AS visitors FROM fact_page_views WHERE viewed_at >= today() - 30 GROUP BY path ORDER BY visitors DESC LIMIT 100
fact_page_views · 1.4B rows · dbt_runner
14.4s1d ago

Quality checks

Gate status across marts

CheckStatusFailed rowsOwner
Primary key uniqueness
dim_users · unique(user_id)
passed0Alex Chen
Email not null
dim_users · not_null(email)
passed0Priya Raman
Country in ISO list
dim_users · accepted_values(country_code, iso_3166)
passed0Marco Silva
Model name not null
fact_ai_invocations · not_null(model_name)
warning1.4MYuki Tanaka
Cost is non-negative
fact_ai_invocations · expression(cost_usd >= 0)
passed0Sofia Rossi
Token counts consistent
fact_ai_invocations · expression(input_tokens + output_tokens > 0)
passed0Daniel Okafor
Product FK integrity
fact_ai_invocations · relationships(product_id -> dim_products.id)
warning1.6MEmma Laurent
No future timestamps
fact_page_views · expression(viewed_at <= now())
passed0Tom Becker
Session FK integrity
fact_page_views · relationships(session_id -> fact_sessions.id)
passed0Lena Hoffmann
Path format
fact_page_views · regex(path, '^/')
passed0Nina Petrova