Clickhouse içerisinde bir çok storage configürasyon methodu ve desteği bulunmaktadır, bunların detayaına girmeden basitçe mount edilmiş bir alanını clickhouse server a kullandırmak istersek ne yapmalıyız veya herhangi bir dizini eklemek için , sonrasında bunları sql ifade ile nasıl kontrol edebiliriz, konularını açıkladıktan sonra , sonraki yazılarda s3 storage konfigürasyonu gibi daha detay storage konfigürasyonlarına ve data yı nasıl eskitiriz TTS kavramlarını inceliyor olacağız.
Öncelikle mevcut disk konfigürasyonunu kontrol edelim;
SELECT
name,
path,
formatReadableSize(free_space) AS free,
formatReadableSize(total_space) AS total,
formatReadableSize(keep_free_space) AS reserved
FROM system.disks
Query id: 03adb456-7525-4816-9bd4-bcb1a3d42b3a
┌─name────┬─path─────────────────┬─free──────┬─total─────┬─reserved─┐
│ default │ /var/lib/clickhouse/ │ 39.36 GiB │ 49.98 GiB │ 0.00 B │
└─────────┴──────────────────────┴───────────┴───────────┴──────────┘
1 row in set. Elapsed: 0.002 sec.
Şimdi bu default yerin yanına birde, mount edilmiş bir dizin ekleyelim bundada dbdata
ismini verelim; Öncelikle storage_configuration.xml adında bir dosya oluşturuyoruz nerede tabiki config.d altında;
# pwd
/etc/clickhouse-server/config.d
-- storage_configuration.xml
# cat storage_configuration.xml
<clickhouse>
<storage_configuration>
<disks>
<dbdata>
<type>local</type>
<path>/data01/clickdata1/</path>
</dbdata>
</disks>
</storage_configuration>
</clickhouse>
Restrat sonrası;
SELECT
name,
path,
formatReadableSize(free_space) AS free,
formatReadableSize(total_space) AS total,
formatReadableSize(keep_free_space) AS reserved
FROM system.disks
Query id: 0ec5a48b-fb36-4b60-935c-90b9ef9b10d0
┌─name────┬─path─────────────────┬─free───────┬─total──────┬─reserved─┐
│ dbdata │ /data01/clickdata1/ │ 297.73 GiB │ 299.85 GiB │ 0.00 B │
│ default │ /var/lib/clickhouse/ │ 40.40 GiB │ 49.98 GiB │ 0.00 B │
└─────────┴──────────────────────┴────────────┴────────────┴──────────┘
2 rows in set. Elapsed: 0.002 sec.
Şimdi bu eklediğimiz alanı oluşturacağımız bir database için default yazma alanı haline getirelim;
Birden fazla disk eklenirken aşağıdaki gibi <disks> .. </disks> xml taglari arasında ilgili diskleri eklemeliyiz
<storage_configuration>
<disks>
<disk_name_1> <!-- disk name -->
<path>/mnt/fast_ssd/clickhouse/</path>
</disk_name_1>
<disk_name_2>
<path>/mnt/hdd1/clickhouse/</path>
<keep_free_space_bytes>10485760</keep_free_space_bytes>
</disk_name_2>
<disk_name_3>
<path>/mnt/hdd2/clickhouse/</path>
<keep_free_space_bytes>10485760</keep_free_space_bytes>
</disk_name_3>
...
</disks>
...
</storage_configuration>
Backup için bir dizin tanımlayıp ekleyelim
<clickhouse>
<storage_configuration>
<disks>
<dbdata>
<type>local</type>
<path>/data01/clickdata1/</path>
</dbdata>
<backup>
<type>local</type>
<path>/data01/backup/</path>
</backup>
</disks>
</storage_configuration>
</clickhouse>
Şimdi bu dizini sorgulayalım, açıp kapamaya gerek duymadan dizinleri otomatik görecektir.
SELECT
name,
path,
formatReadableSize(free_space) AS free,
formatReadableSize(total_space) AS total,
formatReadableSize(keep_free_space) AS reserved
FROM system.disks
Query id: 920afcaf-87d1-4466-8109-18f146630ba5
┌─name────┬─path─────────────────┬─free───────┬─total──────┬─reserved─┐
│ backup │ /data01/backup/ │ 297.73 GiB │ 299.85 GiB │ 0.00 B │
│ dbdata │ /data01/clickdata1/ │ 297.73 GiB │ 299.85 GiB │ 0.00 B │
│ default │ /var/lib/clickhouse/ │ 39.11 GiB │ 49.98 GiB │ 0.00 B │
└─────────┴──────────────────────┴────────────┴────────────┴──────────┘
3 rows in set. Elapsed: 0.002 sec.
aynı zamanda aşaığdaki gibi clickhouse diskleri görebiliriz;
# clickhouse-disks list-disks
backup
dbdata
default
Comments (1)
ClickHouse Stroage Policy - FARUK ÇEVİK BLOGsays:
Ekim 6, 2023 at 10:12 am[…] ClickHouse Storage Configuration Add New Storage Path […]