44 puan yazan GN⁺ 2024-02-07 | 2 yorum | WhatsApp'ta paylaş
  • PostgreSQL'ün çeşitli alanlarda nasıl kullanılacağına dair bağlantıları derleyen bir sayfa
    • arka plan işleri, mesaj kuyruğu, GIS, denetim günlüğü, erişim kontrolü, yetki yönetimi, arama, zaman serisi, grafik veri, harici veri, HTTP, API, olaylar/replikasyon/CDC, birim testleri, migrasyon, panolar/UI, veri görselleştirme, HTML ve uygulamalar, LSP (dil sunucusu)

PostgreSQL is Enough

Arka plan işleri

  • pg_cron ile PostgreSQL içinde zamanlanmış işler yönetilebilir.

Mesaj kuyruğu

  • PostgreSQL'ü mesaj kuyruğu teknolojisi olarak seçme yöntemine dair bilgi sunuluyor.
  • pgmq, PostgreSQL tabanlı bir mesaj kuyruğu sistemidir.

GIS/Harita

  • PostGIS, PostgreSQL'e coğrafi uzamsal veritabanı yetenekleri ekler.

Denetim günlüğü

  • pgMemento ve pgaudit, PostgreSQL'de değişiklikleri izler ve denetim günlüklerini yönetir.

Erişim kontrolü

  • acl, PostgreSQL'de erişim kontrol listelerini yönetmek için kullanılır.

Kimlik doğrulama

  • PostgreSQL'ün pgcrypto modülü ve pgjwt, veritabanı içinde kimlik doğrulamayı işler.

Arama

  • PostgreSQL'ün tam metin arama özellikleriyle ilgili faydalı bağlantılar sunuluyor.
  • paradedb, pg_embedding, pgvector, PostgreSQL'de arama yeteneklerini geliştirir.

Zaman serisi verisi

  • timescaledb, PostgreSQL'ü genişleterek zaman serisi verilerini yönetir.

Grafik veri

  • Apache AGE, PostgreSQL'ü genişleterek grafik veritabanı yetenekleri sunar.

Harici veri

  • wrappers, PostgreSQL'de harici veri kaynaklarını entegre eder.

HTTP

  • pgsql-http ve pg_net, PostgreSQL'de HTTP isteklerini işler.

API

  • PostgREST, graphql-engine, postgraphile, pg_graphql, PostgreSQL tabanlı API sunucuları kurar.

Olaylar, replikasyon, CDC

  • PostgreSQL'ün NOTIFY komutu ile walex, peerdb, debezium, pglogical, veri değişikliklerini izler ve replikasyon yetenekleri sunar.

Birim testleri

  • pgtap, PostgreSQL veritabanı için birim testi aracıdır.

Migrasyon

  • postgresql-migrations ve bytebase, PostgreSQL veritabanı migrasyonlarını yönetir.

Panolar / UI

  • Baserow, NocoDB, AppSmith, kullanıcı arayüzleri ve panolar sunar.

Veri görselleştirme

  • Evidence ve Metabase, veri görselleştirme araçlarıdır.

HTML ve uygulamalar

  • SQLpage, Omnigres, pg_render, plmustache, PostgreSQL verilerini web uygulamalarına entegre eder.

Dil sunucusu

  • postgres_lsp, PostgreSQL için Dil Sunucusu Protokolü desteği sunar.

Ne eksik?

  • Eksik kalanları yorumlarda paylaşın.

GN⁺ görüşü

  • PostgreSQL, çeşitli genişletmeler ve araçlar sayesinde basit bir veritabanı yönetim sisteminin ötesine geçen çok yönlü bir platform olduğunu gösteriyor.
  • Bu yazı, PostgreSQL kullanarak farklı uygulama gereksinimlerinin nasıl karşılanabileceğini göstererek geliştiricilere faydalı bir kaynak sunuyor.
  • Özellikle, doğrudan veritabanı içinde işlenebilen işlevler üzerinden sistem mimarisini sadeleştirme ve performansı optimize etme potansiyelini vurguluyor.

2 yorum

 
eususu 2024-02-07

Bunların arasında ben şahsen postgREST kullanıyorum ve memnunum.

 
GN⁺ 2024-02-07
Hacker News görüşleri
  • Uygulama yığınını sadeleştirme girişimlerine dair deneyim paylaşımı

    Bir kullanıcı, uygulama yığınını sadeleştirmeye sık sık çalıştığını, ancak uygulamanın karmaşıklığı arttıkça farklı teknoloji yığınlarına ihtiyaç duyulduğunu fark ettiğini söylüyor. Her şeyi Postgres gibi tek bir teknoloji altında toplamaya çalışmak rahatsız edici olabilir. Buna rağmen, yeni bir katman eklemektense mevcut teknolojiyi genişletmek daha iyi olabilir. Örneğin, Postgres'i bir mesaj kuyruğu olarak kullanmak, ayrı bir mesaj kuyruğu tutmaktan çok daha kolaydır. Postgres, veritabanları arasında özellikle genişletilebilir bir yapıya sahiptir ve bunun üzerine bir şeyler inşa etmek oldukça eğlencelidir.

  • ParadeDB geliştiricisinin Postgres'in genişletilebilirliğine dair görüşü

    ParadeDB'nin geliştiricilerinden biri olarak, Postgres eklentileri aracılığıyla hızlı arama ve analiz özellikleri sunduklarını belirtiyor. Startup gibi küçük iş yüklerinde, mümkün olduğunca uzun süre Postgres içinde kalmak mantıklıdır. Ancak ölçek büyüdüğünde, her şeyi yalnızca Postgres ile çözmek mümkün değildir. Postgres içinde farklı iş yüklerini ele almak için, sistemi belirli gereksinimlere göre ayırmak ve bağımsız ölçeklenebilirlik ile dayanıklılık sağlamak gerekir. Bu noktada her gereksinime uygun uzmanlaşmış çözüm yığınlarına ihtiyaç vardır. Yığın bileşenlerinin Postgres sürümlerini oluşturma yönünde bir hareket olsa da, her çözüm Postgres'in ötesine geçer ve tüm yığın bileşenleri için Postgres tabanlı bir çözüm olacağını düşünmüyor.

  • Yeni projeye başlarken sqlite kullanma kararı hakkında görüş

    Bir kullanıcı, her yeni projeye sqlite ile başlamaya ve gerçekten gerekene kadar geçiş yapmamaya karar verdiğini söylüyor. Postgres vakaların %90'ında uygunsa, sqlite de %80'inde uygundur; başlamak kolaydır ve performansı da iyidir. Dikey ölçekleme başarısız olduğunda bile, o zamana kadar inşa edilmiş olandan memnun kalınacaktır.

  • Veritabanlarına dair bir C++ uzmanının şüpheleri

    Veritabanlarına aşina olmayan bir C++ uzmanı, veritabanlarının gerekliliğini sorguluyor. Çok sayıda özel ikili dosya biçiminin kullanıldığı bir endüstriden geldiğini ve veritabanlarının yüzeyde birçok sorunu çözüyor gibi görünse de gerçekte öyle olmadığını hissettiğini söylüyor. Veri türlerine yönelik kısıtlamalar, güncelleme sorunları ve farklı SQL motorları arasındaki uyumluluk problemleri, veritabanı kullanımını kötü bir fikir gibi gösteriyor. Büyük veri hacimlerinde birlikte çalışabilirlik avantajını anladığını, ancak bunun dışındaki durumlarda veritabanlarının neden gerekli olduğunu ciddi biçimde sorduğunu belirtiyor.

  • PostgreSQL ek özelliklerine dair görüş

    Ek özelliklerin çoğunun MariaDB'de zaten yerleşik olduğunu belirtiyor ve PostgreSQL HTTP istemcisinin motivasyonlarından bir kısmını alıntılıyor. Web servislerini çağıran tetikleyiciler yazabilmenin güzel olacağı fikrine karşılık, kullanıcı böyle işleri kendisi yerine başkalarının yapmasını tercih edeceğini söylüyor.

  • Gelişmiş özellikler kullanıldığında kod yönetimi deneyimiyle birleşme sorunu

    Postgres'i yoğun biçimde kullandığını, ancak gelişmiş özellikleri her kullandığında sürüm kontrolü, kod incelemesi, tipler, testler ve statik analiz gibi kodlamanın tüm iyi yönleriyle bunu birleştirme sorunu yaşadığını söylüyor. Migrasyonlar hakkında soru soruyor.

  • Mevcut yığınla yeni özellik prototiplemenin avantajları

    Deneyimine göre, yeni bir özelliği önce prototip olarak üretmek, yeni bir şey tanıtmaktan daha iyidir. Dikkatli bir kürasyonla, ilk prototip aynı yığın üzerinde üretim koduna dönüştürülebilir. Ancak sistem sınırlarına dayandığında Redis veya başka uzman araçlara ihtiyaç duyulabilir. Önemli olanın bir API wrapper yazmak, gerektiğinde yalnızca iç uygulamayı değiştirmek ve migrasyonları iyi test etmek olduğunu söylüyor. İnsanların, teknik kararları ne kadar uzun süre erteleyebileceklerine şaşırdığını da ekliyor.

  • Postgres, Redis ve S3 kullanan bir kullanıcının deneyim paylaşımı

    Postgres, Redis ve S3 kombinasyonunu kullandığını ve bu kombinasyonun şimdiye kadar hiç yanlış çıkmadığını belirtiyor. Bazen Postgres ile Pub/Sub denemek istiyor, ancak zaten cache ve sidekiq için Redis gerektiğinden ve Redis de çok iyi olduğundan, bunu denemeye gerek duymuyor.

  • Büyük ölçekli veri analizi konusunda Postgres'in sınırları

    Postgres'i çok sevdiğini, ancak veri ölçeği çok büyüdüğünde Postgres'in yeterli olmadığını düşündüğü bir deneyimini paylaşıyor. OLTP türü iş yüklerini ele almakta Postgres'in kusursuz olduğunu, ancak daha fazla OLAP desteği gerektiğinde StarRocks kullanılmasını öneriyor. Veri analizi için veriyi Postgres'ten StarRocks'a taşıma deneyiminin harika olduğunu ve StarRocks'un veri gölünde doğrudan sorgulamayı da desteklediğini söylüyor.

  • Postgres'in jsonb sıkıştırma özelliğine yönelik ihtiyaç

    Hem Mongo hem de PG kullandığını, ancak PG çok daha basit olduğu için sadeleştirme adına Mongo'dan vazgeçmek istediğini ifade ediyor. İhtiyaç duyduğu şeyin yalnızca sıkıştırılmış bir jsonb sütunu olduğunu; güncelleme veya sorgulama olmadan sadece ekleme, seçme ve silmenin yeterli olduğunu söylüyor. Mongo'daki gibi tekrar eden JSON anahtarlarında %80-90 sıkıştırma oranını korurken bakım gerektirmemesini istiyor.