# Clickhouse Io

ClickHouse database patterns, query optimization, analytics, and data engineering best...

- Repository: https://github.com/WorldFlowAI/everything-claude-code (5734 stars)
- Category: Data and ML
- License: see repository
- Last updated: 2026-01-23
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add WorldFlowAI/everything-claude-code --skill clickhouse-io -g -a claude-code -y`
Codex: `npx skills add WorldFlowAI/everything-claude-code --skill clickhouse-io -g -a codex -y`
Cursor: `npx skills add WorldFlowAI/everything-claude-code --skill clickhouse-io -g -a cursor -y`
Gemini CLI: `npx skills add WorldFlowAI/everything-claude-code --skill clickhouse-io -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add WorldFlowAI/everything-claude-code`

## Description

ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# ClickHouse Analytics Patterns

ClickHouse-specific patterns for high-performance analytics and data engineering.

## Overview

ClickHouse is a column-oriented database management system (DBMS) for online analytical processing (OLAP). It's optimized for fast analytical queries on large datasets.

**Key Features:**
- Column-oriented storage
- Data compression
- Parallel query execution
- Distributed queries
- Real-time analytics

## Table Design Patterns

### MergeTree Engine (Most Common)

```sql
CREATE TABLE markets_analytics (
    date Date,
    market_id String,
    market_name String,
    volume UInt64,
    trades UInt32,
    unique_traders UInt32,
    avg_trade_size Float64,
    created_at DateTime
) ENGINE = MergeTree()
PARTITION BY toYYYYMM(date)
ORDER BY (date, market_id)
SETTINGS index_granularity = 8192;
```

### ReplacingMergeTree (Deduplication)

```sql
-- For data that may have duplicates (e.g., from multiple sources)
CREATE TABLE user_events (
    event_id String,
    user_id String,
    event_type String,
    timestamp DateTime,
    properties String
) ENGINE = ReplacingMergeTree()
PARTITION BY toYYYYMM(timestamp)
ORDER BY (user_id, event_id, timestamp)
PRIMARY KEY (user_id, event_id);
```

### AggregatingMergeTree (Pre-aggregation)

```sql
-- For maintaining aggregated metrics
CREATE TABLE market_stats_hourly (
    hour DateTime,
    market_id String,
    total_volume AggregateFunction(sum, UInt64),
    total_trades AggregateFunction(count, UInt32),
    unique_users AggregateFunction(uniq, String)
) ENGINE = AggregatingMergeTree()
PARTITION BY toYYYYMM(hour)
ORDER BY (hour, market_id);

-- Query aggregated data
SELECT
    hour,
    market_id,
    sumMerge(total_volume) AS volume,
    countMerge(total_trades) AS trades,
    uniqMerge(unique_users) AS users
FROM market_stats_hourly
WHERE hour >= toStartOfHour(now() - INTERVAL 24 HOUR)
GROUP BY hour, market_id
ORDER BY hour DESC;
```

## Query Optimization Patterns

### Efficient Filtering

The rest: https://github.com/WorldFlowAI/everything-claude-code/blob/HEAD/skills/clickhouse-io/SKILL.md
