Keluaran stabil pertama FerretDB, pelaksanaan MongoDB berdasarkan PostgreSQL DBMS

Keluaran projek FerretDB 1.0 telah diterbitkan, yang membolehkan anda menggantikan DBMS MongoDB berorientasikan dokumen dengan PostgreSQL tanpa membuat perubahan pada kod aplikasi. FerretDB dilaksanakan sebagai pelayan proksi yang menterjemahkan panggilan ke MongoDB ke dalam pertanyaan SQL kepada PostgreSQL, yang membolehkan anda menggunakan PostgreSQL sebagai storan sebenar. Versi 1.0 ditandakan sebagai keluaran stabil pertama sedia untuk kegunaan umum. Kod ini ditulis dalam Go dan diedarkan di bawah lesen Apache 2.0.

Khalayak sasaran utama untuk FerretDB ialah pengguna yang tidak menggunakan ciri lanjutan MongoDB dalam aplikasi mereka, tetapi mahu menggunakan timbunan perisian terbuka sepenuhnya. Pada peringkat semasa pembangunannya, FerretDB menyokong subset ciri MongoDB yang paling biasa digunakan dalam aplikasi biasa. Keperluan untuk melaksanakan FerretDB mungkin timbul berkaitan dengan peralihan MongoDB kepada lesen SSPL bukan percuma, yang berdasarkan lesen AGPLv3, tetapi tidak terbuka, kerana ia mengandungi keperluan diskriminasi untuk membekalkan di bawah lesen SSPL bukan sahaja kod aplikasi itu sendiri, tetapi juga kod sumber semua komponen yang terlibat dalam penyediaan perkhidmatan awan.

MongoDB menempati niche antara sistem pantas dan berskala yang beroperasi pada data kunci/nilai dan DBMS perhubungan yang berfungsi dan mudah untuk ditanya. MongoDB menyokong penyimpanan dokumen dalam format seperti JSON, mempunyai bahasa yang agak fleksibel untuk menjana pertanyaan, boleh mencipta indeks untuk pelbagai atribut yang disimpan, menyediakan storan objek binari yang besar dengan cekap, menyokong pengelogan operasi untuk menukar dan menambah data ke pangkalan data, boleh bekerja mengikut paradigma Map/Reduce, menyokong replikasi dan membina konfigurasi toleran kesalahan.

Antara perubahan dalam FerretDB 1.0:

  • Perintah createIndexes dan dropIndexes dilaksanakan untuk mencipta dan menjatuhkan satu atau lebih indeks ke koleksi.
  • Perintah getMore telah dilaksanakan untuk memaparkan bahagian baharu hasil yang diperoleh daripada pelaksanaan arahan yang mengembalikan kursor, seperti cari dan agregat.
  • Menambah sokongan untuk pengendali pengagregatan $sum untuk mengira jumlah nilai kumpulan.
  • Menambah sokongan untuk pengendali $limit dan $skip untuk mengehadkan bilangan dan melangkau dokumen semasa mengagregatkan.
  • Menambah sokongan untuk operator $count untuk mengira dokumen semasa mengagregat.
  • Menambah sokongan untuk operator $unwind untuk menghuraikan medan tatasusunan dalam dokumen masuk dan membentuk senarai dengan dokumen berasingan untuk setiap elemen tatasusunan.
  • Menambahkan sokongan separa untuk perintah collStats, dbStats dan dataSize untuk mendapatkan statistik pengumpulan dan pangkalan data serta saiz data.

Sumber: opennet.ru

Tambah komen