Bir haber sitesinin trafiği, tıklama günlükleri, reklam gösterimleri ve içerik metrikleri yıllar içinde milyarlarca satıra ulaştığında, klasik satır tabanlı bir veritabanıyla hızlı analiz yapmak zorlaşır. Bu tür büyük ölçekli analitik iş yükleri için tasarlanmış, sütun yönelimli ve paralel çalışan bir analitik veritabanı olan Vertica tam bu noktada devreye girer.
İlgili içerikler: Veritabanı türleri rehberi · DuckDB Nedir? · SAP HANA Nedir?
Vertica Nedir?
Vertica, büyük veri kümeleri üzerinde analitik sorguları hızlı çalıştırmak için tasarlanmış, sütun yönelimli (columnar) ve MPP (Massively Parallel Processing) mimarisine sahip bir analitik veritabanı yönetim sistemidir. Kısaca bir analitik veri ambarı platformu olarak konumlanır.
Vertica, verileri satır satır değil sütun sütun saklar. Bu yaklaşım, çok sayıda satırın belirli birkaç sütununu tarayan raporlama ve toplulaştırma (aggregation) sorgularında verimlilik sağlar. Sistem tümüyle standart SQL ile sorgulanır; yani mevcut SQL bilgisi ve raporlama araçları büyük ölçüde çalışmaya devam eder.
Kısa Tarihçe
Vertica'nın kökeni, akademik bir sütun-depo (column-store) araştırma projesi olan C-Store'a dayanır. Bu proje, ilişkisel veritabanları alanındaki çalışmalarıyla tanınan Michael Stonebraker'ın da aralarında bulunduğu araştırmacılar tarafından yürütülmüştü. Ticari ürün, Stonebraker'ın kurucuları arasında yer aldığı Vertica Systems tarafından geliştirildi.
Şirket, 2011 yılında Hewlett-Packard (HP) tarafından satın alındı. İlerleyen yıllarda HP'nin yazılım varlıklarının bir kısmı Micro Focus çatısı altında toplandı; Micro Focus ise 2023'te OpenText tarafından satın alındı. Bu nedenle Vertica bugün OpenText portföyünde yer alan ticari bir üründür.
Sütun Yönelimli Depolama Nasıl Çalışır?
Geleneksel satır tabanlı veritabanları bir kaydın tüm alanlarını yan yana, aynı disk bölgesinde tutar. Analitik sorgular ise çoğu zaman tablodaki yüzlerce sütundan yalnızca birkaçına ihtiyaç duyar. Sütun yönelimli modelde her sütun ayrı ayrı saklandığı için, sorgu yalnızca gereken sütunları okur ve gereksiz veriyi diskten taşımaz.
- Sadece sorgunun ihtiyaç duyduğu sütunlar okunur, disk giriş/çıkışı azalır
- Aynı türden değerler bir arada olduğu için sıkıştırma oranları yükselir
- Toplulaştırma ve tarama işlemleri (SUM, COUNT, GROUP BY) verimli çalışır
- Geniş tablolarda ve büyük tarama senaryolarında ölçeklenebilirlik sağlanır
Projeksiyonlar: İndeks Yerine Farklı Bir Model
Vertica'yı birçok ilişkisel veritabanından ayıran en belirgin özellik, geleneksel anlamda B-tree indeksleri kullanmamasıdır. Bunun yerine veriler projeksiyon (projection) adı verilen, sıralanmış ve kodlanmış sütun koleksiyonları olarak fiziksel diske yazılır.
Bir projeksiyon, bir tablonun tümünü veya bir alt kümesini belirli bir sıralama ve kodlama düzeniyle saklar. Sorgu planlayıcı, gelen sorgu için en uygun projeksiyonu seçer. Bu model, indeks bakımının getirdiği yükü ortadan kaldırırken sorgu desenlerine göre optimize edilmiş fiziksel yerleşim sunar.
- Süper projeksiyon (super projection): tablonun tüm sütunlarını içerir
- Sorguya özel projeksiyonlar: sık kullanılan sorgular için optimize edilmiş alt kümeler
- Sıralama düzeni ve kodlama, sorgu performansını doğrudan etkiler
- Projeksiyonlar veri yüklenirken otomatik olarak güncel tutulur
Sıkıştırma ve Kodlama
Sütun yönelimli depolamanın doğal avantajlarından biri güçlü sıkıştırmadır. Aynı sütundaki değerler benzer türde ve çoğu zaman tekrar eden desenlere sahip olduğundan, Vertica bu veriyi farklı kodlama yöntemleriyle sıkıştırır. Bu, hem depolama maliyetini düşürür hem de diskten okunan veri miktarını azaltarak sorguları hızlandırır.
| Kodlama / Yöntem | Uygun Olduğu Durum |
|---|---|
| RLE (Run-Length Encoding) | Az sayıda farklı değere sahip, sıralı ve çok tekrar eden sütunlar |
| Delta kodlama | Ardışık değerler arasındaki farkın küçük olduğu sayısal/tarih sütunları |
| Sözlük tabanlı (dictionary) | Sınırlı sayıda benzersiz metin değerinin tekrar ettiği sütunlar |
| Genel sıkıştırma | Diğer sütunlar için genel amaçlı sıkıştırma katmanı |
Kodlama, sütun bazında yapılandırılabilir. Doğru kodlamanın seçilmesi, hem depolama alanı hem de sorgu performansı açısından anlamlı fark yaratır.
Eon Mode ve Enterprise Mode
Vertica iki temel çalışma biçimi sunar. Enterprise Mode'da veri, kümedeki düğümlerin yerel disklerinde saklanır; işlem ve depolama aynı düğümlerde birleşiktir. Eon Mode'da ise depolama ile işlem katmanı birbirinden ayrılır: veriler bir nesne depolama katmanında (ör. bulut nesne depolama) tutulurken, işlem düğümleri gerektiğinde ölçeklenebilir.
| Özellik | Enterprise Mode | Eon Mode |
|---|---|---|
| Depolama | Düğümlerin yerel diski | Ayrık nesne depolama katmanı |
| Ölçekleme | Düğüm ekleyip veriyi yeniden dağıtma | İşlemi depolamadan bağımsız ölçekleme |
| Tipik ortam | Şirket içi (on-prem) donanım | Bulut ve esnek iş yükleri |
| Elastiklik | Daha statik | İş yüküne göre daha esnek |
Eon Mode, özellikle iş yükünün gün içinde dalgalandığı ve işlem kapasitesini talebe göre büyütüp küçültmenin değerli olduğu senaryolarda öne çıkar.
SQL ve Sorgu Örnekleri
Vertica standart SQL ile sorgulanır. Aşağıda bir haber sitesinin sayfa gösterim günlüğünü tutan basit bir analitik tablo ve örnek bir toplulaştırma sorgusu yer alıyor.
-- Sayfa gosterimlerini tutan analitik tablo
CREATE TABLE gosterimler (
olay_zamani TIMESTAMP NOT NULL,
makale_id INT NOT NULL,
kategori VARCHAR(64),
ulke VARCHAR(2),
cihaz VARCHAR(16)
)
ORDER BY olay_zamani, kategori; -- projeksiyon siralama duzeni
-- Ornek kayit ekleme
INSERT INTO gosterimler
VALUES ('2026-09-28 08:15:00', 1042, 'yazilim', 'TR', 'mobil');-- Son 7 gunde kategoriye gore gosterim sayilari
SELECT kategori,
COUNT(*) AS gosterim,
COUNT(DISTINCT makale_id) AS farkli_makale
FROM gosterimler
WHERE olay_zamani >= NOW() - INTERVAL '7 days'
GROUP BY kategori
ORDER BY gosterim DESC;Sorguda görüldüğü gibi sözdizimi tanıdık SQL'dir. Vertica ayrıca analitik pencereleme (window) fonksiyonları, zaman serisi ve olay dizisi (pattern matching) gibi analiz odaklı SQL uzantıları da sunar.
Veritabanı İçi Makine Öğrenmesi
Vertica, veriyi dışarı taşımadan doğrudan veritabanı içinde çalıştırılabilen makine öğrenmesi fonksiyonları içerir. Regresyon, sınıflandırma ve kümeleme gibi yaygın algoritmalar SQL çağrılarıyla kullanılabilir. Bu yaklaşım, büyük veri kümelerini ayrı bir sisteme kopyalama ihtiyacını azaltır.
- Doğrusal ve lojistik regresyon gibi temel modeller
- K-means benzeri kümeleme yöntemleri
- Model eğitimi, değerlendirme ve tahmin adımlarının SQL ile yürütülmesi
- Verinin bulunduğu yerde çalışarak veri taşımayı azaltma
Veri Yükleme ve Bakım
Analitik bir veritabanının değeri, büyük veri yığınlarını hızlı ve düzenli biçimde alabilmesine bağlıdır. Vertica, toplu veri yükleme için verimli bir COPY komutu sunar; bu komut dosyalardan veya akışlardan büyük hacimli veriyi doğrudan kolonlara yazar. Yükleme sırasında veriler sıralanır, kodlanır ve sıkıştırılarak diskteki depolama yapılarına yerleştirilir.
Vertica, diske yazılan veri bloklarını arka planda birleştiren bir bakım süreci (Tuple Mover) kullanır. Bu süreç, çok sayıda küçük yazma işleminin oluşturduğu parçaları daha büyük ve verimli yapılara dönüştürerek sorgu performansını korur. Düzenli çalışan bu bakım, sistemin zaman içinde tutarlı davranmasını sağlar.
- Toplu yükleme için verimli COPY komutu
- Yükleme sırasında otomatik sıralama, kodlama ve sıkıştırma
- Arka plan birleştirme (Tuple Mover) ile depolama yapılarının düzenlenmesi
- Büyük veri setlerini düzenli aralıklarla toplu alma senaryolarına uygunluk
Vertica'yı Diğer Sistemlerle Karşılaştırma
Her veritabanı belirli iş yükleri için farklı dengeler sunar. Aşağıdaki karşılaştırma Vertica'yı kabaca konumlandırmak içindir; kesin seçim daima projenizin gereksinimlerine bağlıdır.
| Sistem | Ağırlıklı Model | Öne Çıkan Yön |
|---|---|---|
| Vertica | Sütun yönelimli, MPP analitik | Büyük ölçekli analiz, sıkıştırma, projeksiyonlar |
| PostgreSQL | Satır tabanlı, nesne-ilişkisel | Genel amaçlı iş yükleri, genişletilebilirlik |
| DuckDB | Sütun yönelimli, gömülü | Tek makinede analitik, hafif kurulum |
| SAP HANA | Bellek içi, sütun/satır | Bellek içi analiz ve kurumsal uygulama entegrasyonu |
Farklı yaklaşımları incelemek için DuckDB Nedir? ve SAP HANA Nedir? yazılarına göz atabilirsiniz.
Tipik Kullanım Senaryoları
- Büyük ölçekli veri ambarı ve iş zekası (BI) raporlaması
- Web ve reklam analitiği: tıklama, gösterim ve dönüşüm günlükleri
- Zaman serisi ve olay verisi üzerinde toplulaştırma ve trend analizi
- Log ve telemetri verilerinin analitik incelenmesi
- Büyük veri üzerinde veritabanı içi makine öğrenmesi keşifleri
Lisans, Sürümler ve Dağıtım
Vertica ticari bir üründür ve genellikle abonelik veya lisans temelli kullanılır. Değerlendirme ve küçük projeler için sınırlı kapasiteli ücretsiz bir topluluk sürümü de sunulmuştur. Kesin kapasite sınırları, lisans koşulları ve fiyatlandırma zamanla değişebildiği için güncel resmi kaynaklardan doğrulanmalıdır.
Kurulum ve Dağıtım Seçenekleri
Vertica farklı ortamlara kurulabilir. Şirket içi (on-prem) sunucu kümelerinden bulut ortamlarına ve konteyner tabanlı dağıtımlara kadar çeşitli seçenekler mevcuttur. Eon Mode ile nesne depolama üzerine kurulu esnek dağıtımlar özellikle bulutta yaygındır.
- Şirket içi (on-prem) sunucu kümesi üzerinde kurulum
- Bulut ortamında, nesne depolama tabanlı Eon Mode dağıtımı
- Konteyner ve Kubernetes tabanlı dağıtım
- Değerlendirme için tek düğümlü kurulumlar
Bulut tarafındaki yönetilen veritabanı seçeneklerini karşılaştırmak için Bulut Veritabanı Servisleri yazısına göz atabilirsiniz.
Sık Sorulan Sorular
Vertica ücretsiz mi?
Vertica ticari bir üründür; ancak değerlendirme ve küçük ölçekli kullanım için sınırlı kapasiteli bir topluluk sürümü sunulmuştur. Üretim ölçeğinde tam kapasite genellikle ticari lisans veya abonelik gerektirir. Güncel koşulları resmi kaynaktan doğrulayın.
Vertica bir OLTP veritabanı mı?
Hayır. Vertica analitik (OLAP) iş yükleri için tasarlanmıştır. Uygulamaların gerçek zamanlı işlem (OLTP) katmanı için PostgreSQL gibi satır tabanlı sistemler daha uygundur; Vertica bunların üzerine bir analiz katmanı olarak konumlanır.
Vertica ile PostgreSQL arasında nasıl seçim yaparım?
Yüksek hacimli tekil işlemler ve genel amaçlı uygulama arka ucu için satır tabanlı bir sistem, büyük veri üzerinde raporlama ve analitik için ise sütun yönelimli bir sistem daha uygundur. Çoğu mimaride ikisi birlikte kullanılır: işlemler bir OLTP veritabanında toplanır, analiz Vertica'ya aktarılır.