data-infra
Sözlük ↗PostgreSQL
PostgreSQL ("Postgres"), 35 yılı aşkın geliştirme geçmişine sahip, ücretsiz, açık kaynaklı bir nesne-ilişkisel veritabanı yönetim sistemidir; mevcut en yetenekli ve standartlara en uygun açık kaynak ilişkisel veritabanı olarak yaygın kabul görür ve yeni SaaS ve AI ürünleri için ticari alternatiflere (Oracle, SQL Server) ve hatta birçok sıfırdan başlayan projede MySQL'e göre giderek daha fazla varsayılan seçim haline gelmektedir. AI/SaaS kurucuları için neden önemli: Postgres'in genişletilebilirliği, onu özellikle AI çağında benzersiz derecede önemli kılan şeydir - bir şirketin temel işlemsel verisini (kullanıcılar, abonelikler, faturalama) yöneten aynı veritabanı, pgvector uzantısı aracılığıyla RAG ve semantik arama için vektör deposu olarak da hizmet edebilir; bu da aksi takdirde iki ayrı veritabanı sistemi olacak şeyi, tek bir yedekleme stratejisi, tek bir bağlantı havuzu ve ilişkisel ile vektör veri arasında tam işlemsel tutarlılıkla tek bir sisteme indirger. pgvector'ün ötesinde, uzantı ekosistemi tam metin aramayı (`tsvector` aracılığıyla yerleşik), coğrafi veriyi (PostGIS), zaman serisi iş yüklerini (TimescaleDB) ve JSON doküman depolamayı (yarı yapılandırılmış veriyi bir doküman veritabanı kadar esnek şekilde indeksleme ve sorgulama desteği sunan `jsonb`) kapsar - yani Postgres tek başına, eskiden 3-4 farklı özel veritabanına başvurmayı gerektiren kullanım durumlarını kapsar. Nasıl çalışır: Postgres tamamen ACID uyumludur (Atomicity, Consistency, Isolation, Durability - Atomiklik, Tutarlılık, İzolasyon, Dayanıklılık); yani çok adımlı işlemler ya tamamen tamamlanır ya da tamamen geri alınır - bu, yarım tamamlanmış bir işlemin (örneğin bir kartı tahsil edip aboneliği kaydetmemek) kabul edilemez olduğu finansal/faturalama operasyonları için son derece önemlidir. Zengin indeksleme (B-tree, GIN, GiST ve pgvector aracılığıyla HNSW/IVFFlat), satır düzeyinde güvenlik (yalnızca uygulama kodunda değil, veritabanı katmanının kendisinde çok kiracılı veri izolasyonunu uygulamak için kullanışlı) ve yönetilen sağlayıcıların (Supabase, Neon, Amazon RDS, Google Cloud SQL, Render) sade Postgres üzerine farklılaşmış ürünler inşa etmesini sağlayan olgun bir çoğaltma ve uzantı sistemi destekler. Somut örnek: erken aşamadaki bir AI SaaS, tek veritabanı olarak Postgres'i (Supabase aracılığıyla) seçer. Kullanıcı hesapları ve abonelikler standart ilişkisel tablolarda yaşar; yüklenen doküman parçaları, bir `pgvector` embedding sütunu ve `documents`'a geri dönük bir yabancı anahtarı olan bir `document_chunks` tablosunda yaşar; satır düzeyinde güvenlik politikaları, uygulama kodunda bir hata olsa bile bir sorgunun asla yanlışlıkla başka bir kiracının parçalarını döndürememesini sağlar - daha az savunma katmanlı bir kurulumda felaket bir veri sızıntısı olacak şeyi, doğru şekilde sıfır satır döndüren bir sorguya dönüştürür. Tek veritabanı, tek göç geçmişi, işletilecek tek şey - ve ürün nihayetinde çok daha büyük ölçekte özel bir vektör veritabanına ihtiyaç duyduğunda, göç yolu bir araştırma projesi değil, iyi bilinen bir yoldur; çünkü pgvector'ün sorgu desenleri Pinecone/Qdrant'ın API'lerine oldukça doğrudan eşlenir.
İlgili terimler