ClickHouse
ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time.
Usage
docker compose up -d
Configuration
Key environment variables:
CLICKHOUSE_DB: Default database name (default:default)CLICKHOUSE_USER: Default user name (default:default)CLICKHOUSE_PASSWORD: Default user password (default:clickhouse)CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: Enable SQL-driven access control (default:1)
Ports
8123: HTTP interface9000: Native TCP protocol9004: MySQL protocol emulation9005: PostgreSQL protocol emulation
Access
HTTP Interface
curl 'http://localhost:8123/?user=default&password=clickhouse' -d 'SELECT 1'
ClickHouse Client
docker compose exec clickhouse clickhouse-client --user default --password clickhouse
MySQL Protocol
mysql -h127.0.0.1 -P9004 -udefault -pclickhouse
PostgreSQL Protocol
psql -h127.0.0.1 -p9005 -Udefault
Example Queries
-- Create a table
CREATE TABLE events (
event_date Date,
event_type String,
user_id UInt32
) ENGINE = MergeTree()
ORDER BY (event_date, event_type);
-- Insert data
INSERT INTO events VALUES ('2024-01-01', 'click', 1), ('2024-01-01', 'view', 2);
-- Query data
SELECT * FROM events;
Notes
- ClickHouse is optimized for OLAP (Online Analytical Processing) workloads
- It excels at aggregating large amounts of data quickly
- For production, consider using a cluster setup with replication
- Custom configurations can be mounted in
/etc/clickhouse-server/config.d/and/etc/clickhouse-server/users.d/