8 puan yazan GN⁺ 2024-07-08 | 1 yorum | WhatsApp'ta paylaş
  • Pongo, JSONB desteğinden yararlanarak PostgreSQL'i bir belge veritabanı gibi ele alır
    • JSONB, JSON verisini ikili biçimde depolayarak performansı ve depolama verimliliğini artırır
  • PostgreSQL JSONB'nin ikili biçimi, verinin önceden ayrıştırılmış olmasını sağlayarak hızlı okuma ve yazma işlemlerine imkan tanır
    • JSONB, arama hızını artırmak için GIN ve GiST indeksleri gibi gelişmiş indeksleme seçeneklerini destekler
    • JSONB, yarı yapılandırılmış verileri saklarken PostgreSQL'in güçlü sorgulama yeteneklerinin kullanılmasını sağlar
  • Pongo bir ORM mi?
    • Hayır. Odağı, belge verisinin özelliklerini etkili şekilde işlemek üzerinedir
    • Node.js ORM'leri JSONB'yi işleyebilir, ancak gelişmiş sorgularda JSONPath veya JSONB fonksiyonlarının kullanılması gerekir
    • Pongo bunu sizin yerinize halleder
  • Üretim kullanımı için hazır mı?
    • Şu anda kullanmak güvenlidir, ancak MongoDB ile %100 uyumlu değildir
    • Pongo yeni bir projedir, bu nedenle bazı özellikler eksik olabilir
    • Topluluk projesi olduğundan, sorun bulursanız GH issue ya da Pull Request üzerinden destek kapsamını genişletmeniz veya test kapsamını artırmanız önerilir

GN⁺ Özeti

  • Pongo, PostgreSQL'i belge veritabanı olarak kullanıp MongoDB API'sini PostgreSQL sorgularına dönüştüren bir araçtır
  • JSONB'nin avantajlarından yararlanarak performansı ve depolama verimliliğini artırır
  • Gelişmiş sorgular ve indekslemeyi destekleyerek esneklik ve tutarlılık sağlar
  • Pongo bir ORM değildir; odağı, belge verisinin özelliklerini etkili şekilde işlemek üzerinedir
  • Yeni bir proje olduğundan bazı özellikler eksik olabilir, ancak topluluk katkılarıyla genişletilebilir

1 yorum

 
GN⁺ 2024-07-08
Hacker News görüşleri
  • Pongo'yu NoSQL bölümüne ekledim
  • Hibrit model en iyi seçim. Temel alanlar normal sütunlar olarak, dinamik veri yapıları ise JSONB olarak tutuluyor
  • Teknik olarak havalı ama README'de bir "neden" bölümü gerekli. Mongo API'sini kullanmak istedikleri için mi, yoksa mevcut bir projenin kodunu kopyalamak istedikleri için mi olduğunu merak ediyorum
    • Eğer başka bir projenin sorgularını yeniden kullanmaksa, yapay zeka bunu oldukça iyi yapıyor
  • Bir projeyi Mongo'dan Postgres'e taşırken benzer bir yaklaşım kullandım. Performans çok arttı
    • Gelecekteki projelerde Mongo ile olan tüm benzerlikleri kaldırmayı planlıyorum
  • Pongo'nun Mongoose ile uyumlu olup olmadığını merak ediyorum. Mongo kullanıcılarının çoğu Mongoose kullandığı için, bunu desteklerse daha fazla kullanıcı kazanacaktır
  • 2023 Kasım'ında Pongo hakkında şaka amaçlı bir tweet atmıştım. Komik bir tesadüf ama geleceği tahmin edebildiğimi düşüneceğim
  • JSONB sütunlarını çok kullanıyorum. Belirli uygulamalar için uygun ama sorgu karmaşıklığını artırıyor ve ilişkisel yaklaşımla elde edilebilecek sorgu performansı iyileştirmelerini kaybettiriyor
    • JSONB faydalı ama ilişkisel veritabanının avantajlarından vazgeçmemek gerekir
  • FerretDB ile karşılaştırıldığında nasıl olduğunu merak ediyorum
  • MongoDB, yıllardır Postgres'in serializable isolation'ına eşdeğer bir özelliği destekliyor. "Güçlü tutarlılık avantajı"nın ne anlama geldiğini bilmiyorum
  • Oracle veritabanı da yıllardır MongoDB uyumlu bir API sunuyor