PostgreSQL'i temel alan Microsoft açık kaynaklı DocumentDB DBMS

Microsoft, ayrı bir NoSQL DBMS olarak, kendi depolama sistemlerinizi oluşturmaya yönelik bir platform olarak veya PostgreSQL DBMS'de BSON formatında veri depolamaya ek olarak kullanılabilecek DocumentDB projesinin açık kaynağını duyurdu. Uygulamada DocumentDB, Microsoft tarafından belge odaklı DBMS MongoDB ile uyumlu bir arayüz sağlayan “MongoDB için Azure Cosmos DB” ürününün temeli olarak kullanılıyor. Proje kodu C dilinde yazılmıştır ve MIT lisansı altında dağıtılmaktadır. DocumentDB motoru, PostgreSQL DBMS'ye eklenti olarak uygulanır.

MongoDB gibi DocumentDB de yapılandırılmış belgeleri depolamak için JSON benzeri BSON (İkili JSON) biçimini kullanır; bu, bazı belgelerin ve dizilerin diğer belgelere ve dizilere gömülebileceği hiyerarşik yapılar oluşturmanıza olanak tanır. JSON'dan temel fark, veri serileştirmesinin ikili gösterimde kullanılmasıdır. Proje, BSON formatında veri oluşturmaya, okumaya, güncellemeye ve silmeye yönelik NoSQL işlemlerini ve yerel PostgreSQL için bir API'yi (DocumentDB, BSON desteğine sahip bir PostgreSQL çeşidi olarak kabul edilebilir) sağlar. DocumentDB, tam metin arama yeteneklerini, vektör ve coğrafi veri türleri üzerindeki işlemleri kullanabilir.

Proje iki bileşenden oluşuyor:

  • pg_documentdb_core - BSON türünün uygulanması ve PostgreSQL'de BSON verileriyle çalışmaya yönelik işlemlerle PostgreSQL uzantısı.
  • pg_documentdb - BSON belgeleriyle çalışmaya, sorgu işlemeye ve dizin yönetimine yönelik temel işlemleri içeren Public DocumentDB API'si.

DocumentDB'nin ilk sürümü, CRUD işlemleri (oluşturma, okuma, güncelleme, silme), ayrı BSON alanları için dizinler, tam metin arama dizinleri (RUM uyumlu), vektör ve coğrafi sorgular (pg_vector ve postgis uyumlu), sorgu oluşturma desteği sağlar yetenekleri ve BSON veri toplama.

PostgreSQL DBMS'yi temel alan MongoDB DBMS'nin bir uygulamasını geliştiren FerretDB projesi halihazırda DocumentDB kullanımına geçmiştir. FerretDB, tescilli belge odaklı MongoDB DBMS'yi, uygulama kodunda değişiklik yapmadan PostgreSQL tabanlı tamamen açık bir yazılım yığınıyla değiştirmenize olanak tanır. MongoDB'yi değiştirme ihtiyacı, bu DBMS'nin, AGPLv3 lisansını temel alan ancak açık olmayan SSPL lisansına geçişiyle açıklanmaktadır; çünkü SSPL lisansı altında yalnızca uygulama kodunun kendisini değil, aynı zamanda SSPL lisansı kapsamında teslim etme konusunda da ayrımcı bir gereklilik içermektedir. aynı zamanda bulut hizmetinin sağlanmasında yer alan tüm bileşenlerin kaynak kodları.

Başlangıçta, FerretDB'nin çalışması MongoDB'ye yapılan çağrıları PostgreSQL'deki SQL sorgularına çevirmekle sınırlıydı, ancak sürüm adayı aşamasındaki FerretDB 2.0 sürümünden başlayarak, BSON formatı desteğini uygulamak için PosgreSQL uzantısı DocumentDB kullanıldı. DocumentDB'ye geçiş, FerretDB'nin performansını bazı iş yükleri için 20 kattan fazla artırdı. FerretDB 2.0'daki diğer yenilikler arasında MongoDB ile geliştirilmiş uyumluluk, çoğaltma yetenekleri ve vektör arama desteği yer alıyor. FerretDB kodu Go'da yazılmıştır ve Apache 2.0 lisansı altında dağıtılmaktadır.

Kaynak: opennet.ru

Yorum ekle