How do I use ClickHouse DBMS with Wasabi?
ClickHouse has been validated for use with Wasabi Object Storage. ClickHouse is a high-performance, open-source, column-oriented database management system (DBMS) designed for online analytical processing (OLAP) and real-time data analytics.
Prerequisites
ClickHouse Server v.23.0 or later
ClickHouse Backup Tool (Optional-but recommended)
ClickHouse Open Source or Paid Version
Active Wasabi Object Storage Account
Wasabi Access Keys
Wasabi Bucket
Reference Architecture Diagram
Configuration
Create Wasabi Bucket
Log into Wasabi Console
Go to Buckets > Create Bucket
Enter name - For example “clickhouse-backup”
Choose Region (e.g., us-east-1)
Keep Versioning and Object Lock Disabled
Create bucket.
Create IAM Sub-User
Go to Users > Create User
Assign Username: For Example “clickhouse-s3-user
Choose “Programmatic Access”
Create a new Group with the policy below:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListAllMyBuckets"
],
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::clickhouse-backup",
"arn:aws:s3:::clickhouse-backup/*"
]
}
]
}
Finish and Download Access and Secret Keys
Install ClickHouse
If ClickHouse is not installed, below is an example for Linux - Ubuntu:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4
echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee /etc/apt/sources.list.d/clickhouse.list
sudo apt update
sudo apt install clickhouse-server clickhouse-client -y
sudo systemctl start clickhouse-server
Configure S3 Disk in ClickHouse
Create a file /etc/clickhouse-server/config.d/backup_disk.xml
<clickhouse>
<storage_configuration>
<disks>
<s3_backup>
<type>s3</type>
<endpoint>https://s3.ap-southeast-1.wasabisys.com/clickhouse-backup/</endpoint>
<access_key_id>YOUR_ACCESS_KEY</access_key_id>
<secret_access_key>YOUR_SECRET_KEY</secret_access_key>
<s3_max_single_part_upload_size>10485760</s3_max_single_part_upload_size>
<upload_part_size>67108864</upload_part_size>
<s3_max_put_rps>25</s3_max_put_rps>
<metadata_path>/var/lib/clickhouse/disks/s3_backup/metadata</metadata_path>
</s3_backup>
</disks>
</storage_configuration>
</clickhouse>
Restart ClickHouse
sudo systemctl restart clickhouse-server
Check log /var/log/clickhouse-server/clickhouse-server.log for confirmation
(Optional) Install ClickHouse-Backup Tool
This tool simplifies backup/export and upload to S3:
wget https://github.com/AlexAkulov/clickhouse-backup/releases/download/v2.5.3/clickhouse-backup
chmod +x clickhouse-backup
sudo mv clickhouse-backup /usr/local/bin/
Configure ClickHouse-backup Tool
Edit /etc/ClickHouse-backup/config.yml
general:
remote_storage: s3
disable_progress_bar: true
s3:
bucket: clickhouse-backup
endpoint: s3.ap-southeast-1.wasabisys.com
access_key: YOUR_ACCESS_KEY
secret_key: YOUR_SECRET_KEY
use_path_style: true
compression_format: tar
compression_level: 1
Run Backup & Restore Operations
Backup a specific database:
clickhouse-backup create my_backup
clickhouse-backup upload my_backup
Restore a specific database:
clickhouse-backup download my_backup
clickhouse-backup restore my_backup
Verification on Wasabi
Go to Wasabi Console
Open “clickhouse-backup” bucket
Check if backup folder/files exist