Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aldy505/local-clickhouse-cluster
Local Clickhouse cluster with Docker Compose
https://github.com/aldy505/local-clickhouse-cluster
Last synced: 17 days ago
JSON representation
Local Clickhouse cluster with Docker Compose
- Host: GitHub
- URL: https://github.com/aldy505/local-clickhouse-cluster
- Owner: aldy505
- License: mit
- Created: 2022-10-18T09:58:37.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-04-13T01:06:46.000Z (over 1 year ago)
- Last Synced: 2024-10-12T16:11:26.186Z (about 1 month ago)
- Size: 3.91 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Local Clickhouse Cluster with Docker Compose
Sets up a local Clickhouse cluster with 3 nodes (with embedded Clickhouse Keeper as a replacement for Zookeeper).
To run it:
```bash
docker compose up -d
```There is no authentication, just log in with the `default` user with no password at all.
There is a cluster already set up called `localcluster`.
Prometheus metrics is available at `/metrics` endpoint on port `9363` of each node.
To connect with Go:
```go
package mainimport (
"context""github.com/ClickHouse/clickhouse-go/v2"
)func main() {
clickhouseOptions, err := clickhouse.ParseDSN("clickhouse://default:@127.0.0.1:19000,127.0.0.1:29000,127.0.0.1:39000/default?dial_timeout=200ms&max_execution_time=60&debug=true")
if err != nil {
// handle your error
}clickhouseConnection, err := clickhouse.Open(clickhouseOptions)
if err != nil {
// handle your error
}
defer func () {
err := clickhouseConnection.Close()
if err != nil {
// handle your error
}
}()// To query with to the "localcluster"
err = clickhouseConnection.Exec(
context.Background(),
`CREATE DATABASE IF NOT EXISTS "sampledatabase" ON CLUSTER "localcluster"`,
)
if err != nil {
// handle your error
}
}
```