
Bu yazımda Clickhouse Nedir ve Mimari Yapısı hakkında detaylı bilgi vermeye çalışacağım. ClickHouse, yüksek performanslı, açık kaynak kodlu ve sütun bazlı (Column-Oriented) bir analitik veri tabanı sistemidir. Büyük tablolar üzerinde hızlı OLAP (Online Analytical Processing) sorguları çalıştırmak amacıyla tasarlanmıştır. İlk olarak Yandex tarafından geliştirilmiş ve 2016 yılında open source olarak yayınlanmıştır.
ClickHouse verileri sütunlar halinde depolar. Bu yapı sayesinde yalnızca sorguda kullanılan sütunları okumaktadır. Bu da:
- I/O maliyetlerini azaltır,
- Analitik sorguların büyük veriler üzerinde çok daha hızlı çalışmasını sağlar.
Sistemlerimize ClickHouse’u entegre etmeden önce ihtiyaçlarımızı belirlememiz ve hangi amaçla kullanacağımızı netleştirmemiz oldukça önemlidir. Geleneksel RDBMS sistemlerinde olduğu gibi transaction işlemleri için uygun değildir. Ancak bir veri ambarı tasarlamak veya OLAP tabanlı bir sistem kurmak istiyorsanız, ClickHouse mükemmel tercihlerden biridir.
Column-Oriented ve Row-Oriented Depolama Nedir?
ClickHouse’un nasıl çalıştığını daha iyi anlamak için, row-oriented (satır bazlı) ve column-oriented (sütun bazlı) nedir inceleyelim. Çünkü Clikchouse, column based yapısı sayesinde performans sağlamaktadır.
Row-Oriented Storage (Satır Bazlı Depolama)
Row-Oriented sistemlerde, her satır disk üzerinde ardışık şekilde saklanır. Bu yapı, bir satırdaki tüm değerlere hızlıca ulaşmayı sağlar. Ancak sadece bir sütundaki veriye ihtiyaç duyulduğunda bile tüm satır okumaktadır. Geleneksel RDBMS sistemleri (Oracle,PostgreSQL, MySQL vb.) bu yapıyı kullanır. Transaction işlemlerin yoğun olduğu sistemlerde kullanılmaktadır.
Örneğin: Kullanici adında bir tablomuz olsun ve aşağıdaki gibi tablomuzda 3 kolon ve 3 kayıt olduğunu varsayalım. Row Oriented veri tabanlarında bu kayıtların her biri bir satırdaki tüm veri olarak saklanır.

Avantajları:
- OLTP işlemleri (INSERT, UPDATE, SELECT *) için idealdir.
- Satır bazlı sorgularda yüksek performans sağlar.
Dezavantajları:
- Analitik (OLAP) sorgularında, sadece bazı sütunlara odaklanıldığında verimsizdir.
- Gereksiz veri okunmasına neden olur.
Column-Oriented Storage (Sütun Bazlı Depolama)
Column-Oriented sistemlerde, her sütunun verisi ayrı ayrı ve ardışık şekilde saklanır. Bu yapı, özellikle belirli sütunlara odaklanan analitik sorgular için idealdir. ClickHouse, SAP HANA, SAP IQ gibi sistemler bu yaklaşımı benimser.
Örneğin: Kullanici adında bir tablomuz olsun ve aşağıdaki gibi tablomuzda 3 kolon ve 3 kayıt olduğunu varsayalım. Column Oriented veri tabanlarında bu kayıtların her biri bir sütundaki tüm veri olarak saklanır.

Avantajları:
- Analitik sorgular (örneğin:
SELECT yas FROM kullanici WHERE yas > 30) çok hızlı çalışır. - Sütun bazlı sıkıştırma sayesinde veri depolama verimliliği artar. Bu sıkıştırmaya şu şekilde bir örnek verelim. PostgreSQL bir veri tabanımda 36 GB olan bir tabloyu Clickhouse a aktardığımda 5.9 GB olarak yer kapladı. Tabiki bu oran verinizin içeriğine göre değişecektir.
- SIMD gibi CPU optimizasyonları ile yüksek işlem performansı sağlar.
Dezavantajları:
- Tek bir satırın tamamına ulaşmak daha maliyetlidir.
- OLTP işlemleri daha karmaşık ve sınırlıdır.

ClickHouse Cluster Mimarileri:
Bu kısımda Clickhouse da oluşturabileceğiniz ClickHouse Cluster Mimarileri hakkında bilgi vereceğim. Clickhouse u Standalone olarak da kurup kullanabilirsiniz. Kurulumu ve yapılandırması da oldukça kolaydır.
ClickHouse’ta dağıtık sistemler oluşturmak için dört temel mimari vardır:
- Standalone
- Sharded Cluster
- Replicated Cluster
- Sharded + Replicated Cluster
- Sharded Cluster
Veri farklı sunuculara bölünerek (sharding) dağıtılır. Büyük veri setlerini yönetmek için ölçeklenebilirlik sağlar. Ancak veri kaybını önlemek için ek bir replication kullanılmamaktır.
Örneğin: 2 Clickhouse sunucunuz (shard) var:
shard_1 → Verinin %50’sini tutar.
shard_2 → Verinin diğer %50’sini tutar.
Bir sorgu çalıştırıldığında, her iki sunucudan veri alınarak sonuç birleştirilir.

Avantajları ve Dezavantajları:
- Büyük tabloları yatay ölçeklendirme ile işlemektedir.
- Sorgular paralel çalıştırıldığı için hız artışı sağlar.
- Bir node çökerse veri kaybolabilir, çünkü replika yoktur.
- Replicated Cluster
Aynı veri birden fazla node’da tutulur (Replication). Yüksek erişilebilirlik (High Availability – HA) sağlar. Bir node çökerse, diğer node veriyi saklamaya devam eder. Diğer veri tabanlarındaki replication mantığı ile çalışır.
Örneğin: 2 Clickhouse sunucumuz var ve aynı veriyi tutuyor:
replica_1 → Verinin tamamı
replica_2 → Verinin tamamı
Veri yazılırken, bir node ‘a yazılır ve diğerine kopyalanır. Sorgular, yük dengeleme (load balancing) ile en uygun sunucudan çekilmektedir.

Avantajları ve Dezavantajları:
- Daha güvenilir, çünkü veri kaybolmaz.
- Bir node kapansa bile çalışmaya devam eder.
- Yatay ölçekleme sağlamaz, çünkü her node aynı veriyi tutar.
- Sharded + Replicated Cluster
Shard’lar ile veriyi böler, replication ile çoğaltır. En iyi performans ve güvenilirlik kombinasyonudur. Büyük veri işleyen sistemler için ideal mimaridir.
Örneğin: 4 Clickhouse sunucumuz var.
shard_1 → replica_1, replica_2
shard_2 → replica_3, replica_4
Veri 2 shard’a bölünür ve her shard’ın 2 replikası vardır.
Eğer bir sunucu çökerse, aynı veriyi içeren başka bir node hizmete devam eder.

Avantajları & Dezavantajları
- Büyük veriyi ölçeklenebilir bir şekilde yönetir.
- Node lardan biri çökse bile veri kaybolmaz.
- Sorgular paralel çalıştığı için çok hızlıdır.
- Yönetimi daha karmaşıktır (Zookeeper veya ChKeeper gereklidir).
Aşağıdaki tabloda projemizin büyüklüğüne göre hangi mimari yöntemin önerildiği verilmiştir.
| İhtiyaçlar | Önerilen Mimari |
| Küçük ölçekli, tek sunuculu sistemler | Tek ClickHouse node(Standalone) |
| Büyük veriyi bölerek işlemek | Sharded Cluster |
| Yüksek erişilebilirlik (HA) isteyen sistemler | Replicated Cluster |
| Hem büyük veri hem de HA isteyen sistemler | Sharded + Replicated Cluster |
Bu yazımızda Clickhouse Nedir ve Mimari Yapısı ile ilgili bilgileri, kullanılabilecek Cluster yapıları, cluster mimarilerinin avantaj ve dezavantajları hakkında bilgileri paylaştım. Bir sonraki yazımızda Replicated Cluster kurulum adımlarını adım adım anlatacağım.
Clickhouse ile ilgili diğer yazılarımız için tıklayınız.
Resmi dökümantasyon için tıklayınız.



Leave a Comment