ClickHouse¶
Bu makalede
Bilgi
ClickHouse, OLAP sınıfı analitik sorguları yürütmek için tasarlanmış yüksek performanslı bir sütun tabanlı veritabanı yönetim sistemidir (DBMS). DBMS, düşük gecikme süresiyle büyük veri hacimlerini analiz etmeye odaklanır ve analitik, izleme, günlükleme (logging) ve telemetri işleme görevlerinde yaygın olarak kullanılır.
ClickHouse Temel Özellikleri¶
- Sütun tabanlı depolama: Veriler satırlar yerine sütunlar halinde saklanır; bu da analitik sorgu yürütme hızını önemli ölçüde artırır ve işlenen veri hacmini azaltır.
- Yüksek performans: Devasa veri kümelerini işlemek için optimize edilmiştir; vektörel işlem ve verimli CPU kullanımı sayesinde milyarlarca satır üzerinde sorgu yürütebilir.
- Veri sıkıştırma: Özellikle analitik iş yükleri altında, depolanan veri miktarını dramatik bir şekilde azaltabilen (genellikle satır tabanlı DBMS'lerden birkaç kat daha küçük) özel sıkıştırma algoritmaları kullanır.
- SQL uyumluluğu: Ek analitik fonksiyonlar içeren genişletilmiş SQL sözdizimini destekleyerek mevcut uygulamaların taşınmasını kolaylaştırır.
- Dağıtık işleme: Yatay ölçeklendirme ve birden fazla sunucu arasında veri işleme için küme (cluster) oluşturulmasına olanak tanır.
- Veri replikasyonu: Yerleşik replikasyon desteği hata toleransı ve yüksek veri kullanılabilirliği sağlar.
- Çoklu veri formatı desteği: CSV, JSON, Parquet, Avro ve diğer formatlarda veri içe aktarabilir ve dışa aktarabilir.
- Materialized views: Tekrarlayan sorguları hızlandırmak için arka planda verileri otomatik olarak toplu halde (aggregate) işler.
- Harici kaynaklarla entegrasyon: MySQL, PostgreSQL, MongoDB, Kafka, S3 ve diğer sistemlerden doğrudan veri okumayı destekler.
Çalıştırma Özellikleri¶
| ID | Yazılım Adı | Uyumlu OS | VM | BM | VGPU | GPU | Min CPU (Çekirdekler) | Min RAM (GB) | Min HDD/SSD (GB) | Özel Alan Adı | Aktif |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 492 | ClickHouse | Ubuntu 24.04, Ubuntu 22.04 | + | + | + | + | 4 | 8 | 120 | Hayır | SİPARİŞ VER |
Bu yazılımın çalıştırma özellikleri hakkında bilgi için bu bağlantıya bakın.
Not
8443 ve 9100 numaralı portlar varsayılan olarak devre dışıdır ve /etc/clickhouse-server/config.xml dosyasında ek yapılandırma gerektirir.
Not
Aksi belirtilmedikçe, yazılımın en son sürümünü resmi geliştirici web sitesinden kuruyoruz.
ClickHouse Kurulumundan Sonra Başlangıç¶
Sipariş ödemesi yapıldıktan sonra sunucunun çalışmaya hazır olduğuna dair kayıt sırasında belirtilen e-posta adresine bir bildirim gönderilecektir. Bu bildirim, VPS'in IP adresinin yanı sıra bağlantı için kullanıcı adı ve şifreyi içerecektir. Şirketimizin müşterileri, sunuculardaki donanımı ve API kontrol panelini - Invapi üzerinden yönetirler.
Yetkilendirme ayrıntıları:
- Server IP address: e-posta ile ve kontrol panelinde sağlanır;
- Login:
default; - Password:
roothesabının şifresiyle aynıdır ve e-posta adresine gönderilir.
Dikkat
GUI istemcileri (DBeaver, DataGrip ve diğerleri) için port 8123 (HTTP arayüzü) kullanın. Port 9000 yalnızca yerel clickhouse-client içindir.
ClickHouse'a Bağlanma¶
Bağlantı Yöntemleri
Bu bölüm, clickhouse-client (komut satırı istemcisi) ve DBeaver (grafiksel arayüz) aracılığıyla ClickHouse'a bağlanmanın en yaygın yollarını açıklamaktadır. ClickHouse ayrıca diğer istemcilerle de bağlantıyı destekler: DataGrip, Tableau, MySQL Workbench (port 9004 üzerinden), pgAdmin (port 9005 üzerinden) ve Python, Go, Java ve diğer diller için programlama kütüphaneleri.
clickhouse-client ile Bağlanma¶
ClickHouse, veritabanı işlemleri için yerel bir komut satırı istemcisi içerir.
1. Sunucudan bağlanma (yerel):
2. Uzak bir makineden bağlanma:
3. Basit bir sorgu çalıştırma:
4. Veritabanı listesini görüntüleme:
DBeaver ile Bağlanma¶
DBeaver, ClickHouse dahil olmak üzere çeşitli veritabanları ile çalışmak için evrensel bir GUI istemcisidir.
1. DBeaver Kurulumu
Resmi web sitesinden DBeaver'ı indirin ve kurun.
2. Yeni bir bağlantı oluşturma
- DBeaver'ı başlatın
- Database >> New Database Connection seçeneğini seçin (veya
Ctrl+Shift+Ntuşlarına basın)

- Veritabanı listesinde ClickHouse öğesini bulun ve seçin

Nextdüğmesine tıklayın
3. Bağlantı parametrelerini yapılandırma
Ayarlar penceresinde aşağıdaki parametreleri belirtin:
Host: <Sunucunuzun IP adresi>
Port: 8123
Database/Schema: (boş bırakın veya varsayılanı belirtin)
Username: default
Password: <root_password>

Kritik önemde
DBeaver bağlantıları için port 8123 kullanın.
4. JDBC sürücüsünü indirme
İlk kez bağlandığınızda, DBeaver ClickHouse için JDBC sürücüsünü indirmeniz için sizi yönlendirecektir:
- Açılır penceredeki
Downloaddüğmesine tıklayın:

- Sürücünün indirilmesinin tamamlanmasını bekleyin:

OKdüğmesine tıklayın
5. Bağlantıyı test etme
Test Connectiondüğmesine tıklayın;- Her şey doğru yapılandırılmışsa, şu mesaj görünecektir: Connected (XXX ms):

- Mesaj şunları içerecektir:
- Server: ClickHouse X.X.X.XXX
- Driver: ClickHouse JDBC Driver X.X.X
6. Kurulumu tamamlama
Finishdüğmesine tıklayın;- Bağlantı Database Navigator'da görünecektir;
- Veritabanlarını, tabloları ve diğer nesneleri görüntülemek için bağlantı ağacını genişletin.

Yaygın sorunlar:
| Error | Cause | Fix |
|---|---|---|
transport error: 400 | Port 9000 kullanıldı (8123 yerine) | Port 8123 olarak değiştirin |
Connection refused | Yanlış IP veya güvenlik duvarı portu engelliyor | IP adresini ve güvenlik duvarı kurallarını doğrulayın |
Authentication failed | Yanlış kullanıcı adı veya şifre | Kimlik bilgilerini doğrulayın |
Hostname is not specified | Yapılandırma yapılmadan yanlışlıkla SSH tüneli etkinleştirildi | Bağlantı ayarlarındaki SSH sekmesini kapatın |
ClickHouse ile Temel İşlemler¶
Veritabanı oluşturma¶
Tablo oluşturma¶
CREATE TABLE my_database.events
(
event_date Date,
event_time DateTime,
user_id UInt32,
event_type String,
value Float64
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(event_date)
ORDER BY (event_date, user_id);
Veri ekleme¶
INSERT INTO my_database.events VALUES
('2024-12-25', '2024-12-25 10:00:00', 1, 'click', 1.5),
('2024-12-25', '2024-12-25 10:05:00', 2, 'view', 2.3),
('2024-12-25', '2024-12-25 10:10:00', 1, 'purchase', 99.99);
Veri seçme¶
Basit sorgu:
Verileri toplulaştırma (Aggregation):
SELECT
event_type,
count() as events_count,
avg(value) as avg_value
FROM my_database.events
WHERE event_date = '2024-12-25'
GROUP BY event_type;
Zaman serisi:
SELECT
toStartOfHour(event_time) as hour,
count() as events_per_hour
FROM my_database.events
WHERE event_date >= '2024-12-01'
GROUP BY hour
ORDER BY hour;
CSV'den veri içe aktarma¶
Tablo oluşturma:
CREATE TABLE my_database.logs
(
timestamp DateTime,
level String,
message String
)
ENGINE = MergeTree()
ORDER BY timestamp;
Veri içe aktarma:
Kullanıcı ve yetki yönetimi¶
Kullanıcı oluşturma:
Yetki verme:
Kullanıcıları görüntüleme:
Yetkileri görüntüleme:
Servis yönetimi¶
Servisi başlatma:
Servisi durdurma:
Servisi yeniden başlatma:
Servis durumu:
Logları görüntüleme:
Not
Eğer root olarak işlem yapmıyorsanız, komutların başına sudo ekleyin: sudo clickhouse start
Aktif portları kontrol etme¶
ClickHouse'un hangi portları dinlediğini görmek için:
Veya daha detaylı:
Yapılandırmadaki yapılandırılmış portları kontrol etmek için:
Belirli bir portu kontrol etmek için:
Beklenen port kontrol çıktısı:
LISTEN *:8123 clickhouse-serv (HTTP)
LISTEN *:9000 clickhouse-serv (Native TCP)
LISTEN *:9004 clickhouse-serv (MySQL)
LISTEN *:9005 clickhouse-serv (PostgreSQL)
LISTEN *:9009 clickhouse-serv (Interserver)
Not
ClickHouse yapılandırması ve optimizasyonu hakkında ayrıntılı bilgi resmi geliştirici dokümanlarında mevcuttur.
ClickHouse İçeren Bir Sunucu Sipariş Etme¶
Bu yazılımı API kullanarak kurmak için bu talimatları izleyin.