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

MPP ve Shared-Nothing Mimari

Vertica, birden çok sunucudan (düğüm) oluşan bir küme üzerinde çalışacak biçimde tasarlanmıştır. MPP yaklaşımında bir sorgu, kümedeki düğümler arasında paralel olarak bölünür ve her düğüm kendi veri parçası üzerinde çalışır. Sonuçlar birleştirilerek istemciye döndürülür.

Klasik dağıtım biçimi shared-nothing mimarisidir: her düğümün kendi işlemcisi, belleği ve (Enterprise Mode'da) kendi diski vardır. Düğüm eklendikçe hem depolama hem de işlem kapasitesi büyür; bu da yatay ölçeklenebilirlik sağlar.

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öntemUygun Olduğu Durum
RLE (Run-Length Encoding)Az sayıda farklı değere sahip, sıralı ve çok tekrar eden sütunlar
Delta kodlamaArdışı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ırmaDiğ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.

ÖzellikEnterprise ModeEon Mode
DepolamaDüğümlerin yerel diskiAyrık nesne depolama katmanı
ÖlçeklemeDüğüm ekleyip veriyi yeniden dağıtmaİşlemi depolamadan bağımsız ölçekleme
Tipik ortamŞirket içi (on-prem) donanımBulut ve esnek iş yükleri
ElastiklikDaha 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.

sql
-- 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');
sql
-- 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.

SistemAğırlıklı ModelÖne Çıkan Yön
VerticaSütun yönelimli, MPP analitikBüyük ölçekli analiz, sıkıştırma, projeksiyonlar
PostgreSQLSatır tabanlı, nesne-ilişkiselGenel amaçlı iş yükleri, genişletilebilirlik
DuckDBSütun yönelimli, gömülüTek makinede analitik, hafif kurulum
SAP HANABellek içi, sütun/satırBellek 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.