ಇತ್ತೀಚೆಗೆರು ದಿನಗಳಲ್ಲಿ ಯೋಜನೆಯ ಪ್ರಾರಂಭದ ಸುದ್ದಿಯನ್ನು ಪ್ರಕಟಿಸಲಾಯಿತು FerretDB, (ಹಿಂದೆ MangoDB), ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ಗೆ ಯಾವುದೇ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡದೆಯೇ MongoDB ನ ಡಾಕ್ಯುಮೆಂಟ್-ಆಧಾರಿತ DBMS ಅನ್ನು PostgreSQL ನೊಂದಿಗೆ ಬದಲಾಯಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
FerretDB ಅನ್ನು ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ನಂತೆ ಅಳವಡಿಸಲಾಗಿದೆ ಅದು MongoDB ಗೆ SQL ಪ್ರಶ್ನೆಗಳಿಗೆ PostgreSQL ಗೆ ಅನುವಾದಿಸುತ್ತದೆ, ಇದು ನಿಮಗೆ PostgreSQL ಅನ್ನು ನಿಜವಾದ ಸಂಗ್ರಹಣೆಯಾಗಿ ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ.
ಫೆರೆಟ್ಡಿಬಿ (ಹಿಂದೆ ಮ್ಯಾಂಗೊಡಿಬಿ) ಮೊಂಗೋಡಿಬಿಗೆ ವಾಸ್ತವಿಕ ಮುಕ್ತ ಮೂಲ ಬದಲಿಯಾಗಿ ಸ್ಥಾಪಿಸಲಾಯಿತು. FerretDB ಎಂಬುದು ಓಪನ್ ಸೋರ್ಸ್ ಪ್ರಾಕ್ಸಿಯಾಗಿದ್ದು ಅದು MongoDB ವೈರ್ ಪ್ರೋಟೋಕಾಲ್ ಪ್ರಶ್ನೆಗಳನ್ನು SQL ಗೆ ಪರಿವರ್ತಿಸುತ್ತದೆ, PostgreSQL ಅನ್ನು ಡೇಟಾಬೇಸ್ ಎಂಜಿನ್ ಆಗಿ ಬಳಸುತ್ತದೆ.
ಮೊಂಗೋಡಿಬಿಯನ್ನು ಉಚಿತವಲ್ಲದ ಎಸ್ಎಸ್ಪಿಎಲ್ ಪರವಾನಗಿಗೆ ಪರಿವರ್ತಿಸುವುದರಿಂದ ವಲಸೆಯ ಅಗತ್ಯವು ಉದ್ಭವಿಸಬಹುದು, ಇದು ಎಜಿಪಿಎಲ್ವಿ3 ಪರವಾನಗಿಯನ್ನು ಆಧರಿಸಿದೆ, ಆದರೆ ಇದು ತೆರೆದ ಮೂಲವಲ್ಲ, ಏಕೆಂದರೆ ಇದು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಮಾತ್ರವಲ್ಲದೆ ಎಸ್ಎಸ್ಪಿಎಲ್ ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ಒದಗಿಸುವ ತಾರತಮ್ಯದ ಅಗತ್ಯವನ್ನು ಹೊಂದಿದೆ. ಕೋಡ್ ಸ್ವತಃ, ಆದರೆ ಕ್ಲೌಡ್ ಸೇವೆಯನ್ನು ಒದಗಿಸುವಲ್ಲಿ ಒಳಗೊಂಡಿರುವ ಎಲ್ಲಾ ಘಟಕಗಳ ಮೂಲ ಸಂಕೇತಗಳು.
FerretDB ಗಾಗಿ ಗುರಿ ಪ್ರೇಕ್ಷಕರು MongoDB ನ ಸುಧಾರಿತ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಬಳಸದ ಬಳಕೆದಾರರು ಅವರ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ, ಆದರೆ ಸಂಪೂರ್ಣವಾಗಿ ತೆರೆದ ಸಾಫ್ಟ್ವೇರ್ ಸ್ಟಾಕ್ ಅನ್ನು ಬಳಸಲು ಬಯಸುತ್ತಾರೆ.
ಅಭಿವೃದ್ಧಿಯ ಪ್ರಸ್ತುತ ಹಂತದಲ್ಲಿ, ಫೆರೆಟ್ಡಿಬಿ ಇದು ಇನ್ನೂ MongoDB ವೈಶಿಷ್ಟ್ಯಗಳ ಭಾಗವನ್ನು ಮಾತ್ರ ಬೆಂಬಲಿಸುತ್ತದೆ ವಿಶಿಷ್ಟವಾದ ಅನ್ವಯಗಳಲ್ಲಿ ಹೆಚ್ಚಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಭವಿಷ್ಯದಲ್ಲಿ, ಅವರು MongoDB ಗಾಗಿ ಸಂಪೂರ್ಣ ಚಾಲಕ ಬೆಂಬಲವನ್ನು ಸಾಧಿಸಲು ಯೋಜಿಸಿದ್ದಾರೆ ಮತ್ತು MongoDB ಗೆ ಪಾರದರ್ಶಕ ಬದಲಿಯಾಗಿ FerretDB ಅನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುತ್ತಾರೆ.
ಅದನ್ನು ನೆನಪಿನಲ್ಲಿಡಬೇಕು MongoDB ವೇಗವಾದ ಮತ್ತು ಸ್ಕೇಲೆಬಲ್ ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿ ಒಂದು ಸ್ಥಾನವನ್ನು ಪಡೆದುಕೊಂಡಿದೆ ಅದು ಪ್ರಮುಖ/ಮೌಲ್ಯ ಸ್ವರೂಪದಲ್ಲಿ ದತ್ತಾಂಶದ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಮತ್ತು ಸಂಬಂಧಿತ DBMS, ಕ್ರಿಯಾತ್ಮಕ ಮತ್ತು ಪ್ರಶ್ನೆಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಅನುಕೂಲಕರವಾಗಿದೆ.
ಹೆಚ್ಚಿನ MongoDB ಬಳಕೆದಾರರಿಗೆ MongoDB ನೀಡುವ ಹಲವು ಸುಧಾರಿತ ವೈಶಿಷ್ಟ್ಯಗಳ ಅಗತ್ಯವಿಲ್ಲ; ಆದಾಗ್ಯೂ, ಅವರಿಗೆ ಬಳಸಲು ಸುಲಭವಾದ ಮುಕ್ತ ಮೂಲ ಡೇಟಾಬೇಸ್ ಪರಿಹಾರದ ಅಗತ್ಯವಿದೆ. ಇದನ್ನು ಗುರುತಿಸಿ, ಆ ಅಂತರವನ್ನು ತುಂಬಲು ಫೆರೆಟ್ಡಿಬಿ ಇಲ್ಲಿದೆ.
ಮೊಂಗೋಡಬ್ಬಿ JSON-ರೀತಿಯ ಸ್ವರೂಪದಲ್ಲಿ ಡಾಕ್ಯುಮೆಂಟ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸುವುದನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ, ಪ್ರಶ್ನೆಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಸಾಕಷ್ಟು ಹೊಂದಿಕೊಳ್ಳುವ ಭಾಷೆಯನ್ನು ಹೊಂದಿದೆ, ವಿವಿಧ ಸಂಗ್ರಹಿಸಿದ ಗುಣಲಕ್ಷಣಗಳಿಗೆ ಸೂಚಿಕೆಗಳನ್ನು ರಚಿಸಬಹುದು, ಸಮರ್ಥ ಬೈನರಿ ದೊಡ್ಡ ವಸ್ತು ಸಂಗ್ರಹಣೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ, ಡೇಟಾವನ್ನು ಬದಲಾಯಿಸಲು ಮತ್ತು ಸೇರಿಸಲು ಕಾರ್ಯಾಚರಣೆಗಳ ಲಾಗಿಂಗ್ ಅನ್ನು ಬೆಂಬಲಿಸಿ ಡೇಟಾಬೇಸ್ಗೆ, ಇದು ನಕ್ಷೆ/ಕಡಿಮೆ ಮಾದರಿಯ ಪ್ರಕಾರ ಕೆಲಸ ಮಾಡಬಹುದು, ಇದು ಪ್ರತಿಕೃತಿ ಮತ್ತು ದೋಷ-ಸಹಿಷ್ಣು ಕಾನ್ಫಿಗರೇಶನ್ಗಳ ನಿರ್ಮಾಣವನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ.
FerretDB 0.1.0 ಬಿಡುಗಡೆಯಲ್ಲಿ ಇದನ್ನು ಗಮನಿಸಲಾಗಿದೆ PostgreSQL ಡೇಟಾವನ್ನು ಹಿಂಪಡೆಯುವ ರೀತಿಯಲ್ಲಿ ಸಂಪೂರ್ಣವಾಗಿ ಮರುವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಹಿಂದೆ, ಪ್ರತಿ ಒಳಬರುವ MongoDB ವಿನಂತಿಗಾಗಿ, JSON ಫಾರ್ಮ್ಯಾಟ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಮತ್ತು PostgreSQL ಭಾಗದಲ್ಲಿ ಫಲಿತಾಂಶಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಲು ಕಾರ್ಯಗಳನ್ನು ಬಳಸಿಕೊಂಡು, SQL ನಿಂದ PostgreSQL ಪ್ರಶ್ನೆಯನ್ನು ರಚಿಸಲಾಗಿದೆ.
ವ್ಯತ್ಯಾಸಗಳಿಂದಾಗಿ PostgreSQL ಮತ್ತು MongoDB json ಕಾರ್ಯಗಳ ಶಬ್ದಾರ್ಥದಲ್ಲಿ, ಒಂದು ವ್ಯತ್ಯಾಸವಿತ್ತು ವಿಭಿನ್ನ ಪ್ರಕಾರಗಳನ್ನು ಹೋಲಿಸುವಾಗ ಮತ್ತು ಆದೇಶಿಸುವಾಗ ನಡವಳಿಕೆಯಲ್ಲಿ. ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು, ಅನಗತ್ಯ ಡೇಟಾದ ಮಾದರಿಯನ್ನು ಈಗ PostgreSQL ನಿಂದ ಹೊರತೆಗೆಯಲಾಗಿದೆ ಮತ್ತು ಫಲಿತಾಂಶದ ಫಿಲ್ಟರಿಂಗ್ ಅನ್ನು ಫೆರೆಟ್ಡಿಬಿ ಬದಿಯಲ್ಲಿ ಮಾಡಲಾಗುತ್ತದೆ, ಇದು ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ ಮೊಂಗೋಡಿಬಿಯ ನಡವಳಿಕೆಯನ್ನು ಪುನರಾವರ್ತಿಸಲು ಸಾಧ್ಯವಾಗಿಸಿತು.
ಹೆಚ್ಚಿದ ಹೊಂದಾಣಿಕೆಯ ಬೆಲೆ ಕಾರ್ಯಕ್ಷಮತೆಯ ದಂಡವಾಗಿದೆ, ಭವಿಷ್ಯದ ಬಿಡುಗಡೆಗಳಲ್ಲಿ ನಡವಳಿಕೆಯ ಭಿನ್ನತೆ ಇರುವ ಪ್ರಶ್ನೆಗಳ ಫೆರೆಟ್ಡಿಬಿ ಬದಿಯಲ್ಲಿ ಆಯ್ದ ಫಿಲ್ಟರಿಂಗ್ನಿಂದ ಸರಿದೂಗಿಸಲು ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ.
ಉದಾಹರಣೆಗೆ, "db.collection.find({_id: 'some-id-value'})" ಪ್ರಶ್ನೆಯನ್ನು PostgreSQL ನಲ್ಲಿ ಸಂಪೂರ್ಣವಾಗಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬಹುದು. ಅಭಿವೃದ್ಧಿಯ ಈ ಹಂತದಲ್ಲಿ ಯೋಜನೆಯ ಮುಖ್ಯ ಗುರಿ MongoDB ಯೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆಯನ್ನು ಸಾಧಿಸುವುದು, ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಇನ್ನೂ ಹಿನ್ನೆಲೆಗೆ ತಳ್ಳಲಾಗಿದೆ.
ಹೊಸ ಆವೃತ್ತಿಯಲ್ಲಿನ ಕ್ರಿಯಾತ್ಮಕ ಬದಲಾವಣೆಗಳಲ್ಲಿ, ಎಲ್ಲಾ ಬಿಟ್ವೈಸ್ ಆಪರೇಟರ್ಗಳಿಗೆ ಬೆಂಬಲವಿದೆ, "$e" ಹೋಲಿಕೆ ಆಪರೇಟರ್, ಹಾಗೆಯೇ "$elemMatch" ಮತ್ತು "$bitsAllClear" ಆಪರೇಟರ್ಗಳು.
ಅಂತಿಮವಾಗಿ ಇದರ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ತಿಳಿದುಕೊಳ್ಳಲು ಆಸಕ್ತಿ ಹೊಂದಿರುವವರಿಗೆ, ಕೋಡ್ ಅನ್ನು Go ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು Apache 2.0 ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ ಎಂದು ಅವರು ತಿಳಿದಿರಬೇಕು ಕೆಳಗಿನ ಲಿಂಕ್ನಲ್ಲಿ ನೀವು ಅದರ ಕೋಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.