ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಟಿಪ್ಪಣಿಗಳು: ಡೇಟಾ ಕ್ವೆರಿ ಲ್ಯಾಂಗ್ವೇಜಸ್‌ನ ವೈಯಕ್ತೀಕರಿಸಿದ ವಿಮರ್ಶೆ

ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಟಿಪ್ಪಣಿಗಳು: ಡೇಟಾ ಕ್ವೆರಿ ಲ್ಯಾಂಗ್ವೇಜಸ್‌ನ ವೈಯಕ್ತೀಕರಿಸಿದ ವಿಮರ್ಶೆ
ಎಲ್ಲಿ ಮತ್ತು ಯಾವಾಗ ಉಪಯುಕ್ತವಾಗಿದೆ ಎಂದು ನಾನು ವೈಯಕ್ತಿಕ ಅನುಭವದಿಂದ ಹೇಳುತ್ತಿದ್ದೇನೆ. ಇದು ಅವಲೋಕನ ಮತ್ತು ಪ್ರಬಂಧವಾಗಿದೆ, ಇದರಿಂದ ನೀವು ಮುಂದೆ ಏನು ಮತ್ತು ಎಲ್ಲಿ ಅಗೆಯಬಹುದು ಎಂಬುದು ಸ್ಪಷ್ಟವಾಗುತ್ತದೆ - ಆದರೆ ಇಲ್ಲಿ ನನಗೆ ಪ್ರತ್ಯೇಕವಾಗಿ ವ್ಯಕ್ತಿನಿಷ್ಠ ವೈಯಕ್ತಿಕ ಅನುಭವವಿದೆ, ಬಹುಶಃ ಎಲ್ಲವೂ ನಿಮಗೆ ಸಂಪೂರ್ಣವಾಗಿ ವಿಭಿನ್ನವಾಗಿರುತ್ತದೆ.

ಪ್ರಶ್ನೆ ಭಾಷೆಗಳನ್ನು ತಿಳಿದುಕೊಳ್ಳುವುದು ಮತ್ತು ಬಳಸಲು ಸಾಧ್ಯವಾಗುವುದು ಏಕೆ ಮುಖ್ಯ? ಅದರ ಮಧ್ಯಭಾಗದಲ್ಲಿ, ಡೇಟಾ ಸೈನ್ಸ್ ಕೆಲಸದ ಹಲವಾರು ಪ್ರಮುಖ ಹಂತಗಳನ್ನು ಹೊಂದಿದೆ, ಮತ್ತು ಮೊದಲ ಮತ್ತು ಅತ್ಯಂತ ಮುಖ್ಯವಾದ (ಅದು ಇಲ್ಲದೆ, ಖಂಡಿತವಾಗಿಯೂ ಏನೂ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ!) ಡೇಟಾವನ್ನು ಪಡೆಯುವುದು ಅಥವಾ ಹೊರತೆಗೆಯುವುದು. ಹೆಚ್ಚಾಗಿ, ಡೇಟಾವು ಕೆಲವು ರೂಪದಲ್ಲಿ ಎಲ್ಲೋ ಕುಳಿತಿದೆ ಮತ್ತು ಅಲ್ಲಿಂದ "ಹಿಂಪಡೆಯಬೇಕು". 

ಪ್ರಶ್ನೆ ಭಾಷೆಗಳು ಈ ಡೇಟಾವನ್ನು ಹೊರತೆಗೆಯಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ! ಮತ್ತು ಇಂದು ನಾನು ನಿಮಗೆ ಉಪಯುಕ್ತವಾದ ಆ ಪ್ರಶ್ನೆ ಭಾಷೆಗಳ ಬಗ್ಗೆ ಹೇಳುತ್ತೇನೆ ಮತ್ತು ನಾನು ನಿಮಗೆ ಹೇಳುತ್ತೇನೆ ಮತ್ತು ಎಲ್ಲಿ ಮತ್ತು ಹೇಗೆ ನಿಖರವಾಗಿ ತೋರಿಸುತ್ತೇನೆ - ಅದು ಏಕೆ ಅಧ್ಯಯನ ಬೇಕು.

ಡೇಟಾ ಪ್ರಶ್ನೆ ಪ್ರಕಾರಗಳ ಮೂರು ಮುಖ್ಯ ಬ್ಲಾಕ್‌ಗಳಿವೆ, ಅದನ್ನು ನಾವು ಈ ಲೇಖನದಲ್ಲಿ ಚರ್ಚಿಸುತ್ತೇವೆ:

  • ಸಂಬಂಧಿತ ಬೀಜಗಣಿತ ಅಥವಾ SQL ನಂತಹ ಪ್ರಶ್ನೆ ಭಾಷೆಯ ಬಗ್ಗೆ ಮಾತನಾಡುವಾಗ "ಸ್ಟ್ಯಾಂಡರ್ಡ್" ಪ್ರಶ್ನೆ ಭಾಷೆಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಅರ್ಥೈಸಿಕೊಳ್ಳುತ್ತವೆ.
  • ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಪ್ರಶ್ನೆ ಭಾಷೆಗಳು: ಉದಾಹರಣೆಗೆ, ಪೈಥಾನ್ ವಿಷಯಗಳು ಪಾಂಡಾಗಳು, ನಂಬಿ ಅಥವಾ ಶೆಲ್ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್.
  • ಜ್ಞಾನದ ಗ್ರಾಫ್‌ಗಳು ಮತ್ತು ಗ್ರಾಫ್ ಡೇಟಾಬೇಸ್‌ಗಳಿಗಾಗಿ ಭಾಷೆಗಳನ್ನು ಪ್ರಶ್ನಿಸಿ.

ಇಲ್ಲಿ ಬರೆಯಲಾದ ಎಲ್ಲವೂ ಕೇವಲ ವೈಯಕ್ತಿಕ ಅನುಭವವಾಗಿದೆ, ಯಾವುದು ಉಪಯುಕ್ತವಾಗಿದೆ, ಸಂದರ್ಭಗಳ ವಿವರಣೆಯೊಂದಿಗೆ ಮತ್ತು "ಅದು ಏಕೆ ಬೇಕಿತ್ತು" - ಪ್ರತಿಯೊಬ್ಬರೂ ಇದೇ ರೀತಿಯ ಸಂದರ್ಭಗಳು ಹೇಗೆ ಬರಬಹುದು ಎಂಬುದನ್ನು ಪ್ರಯತ್ನಿಸಬಹುದು ಮತ್ತು ಈ ಭಾಷೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಮೂಲಕ ಮುಂಚಿತವಾಗಿ ಅವುಗಳನ್ನು ತಯಾರಿಸಲು ಪ್ರಯತ್ನಿಸಬಹುದು. ನೀವು ಯೋಜನೆಯಲ್ಲಿ (ತುರ್ತಾಗಿ) ಅರ್ಜಿ ಸಲ್ಲಿಸುವ ಮೊದಲು ಅಥವಾ ಅವರು ಅಗತ್ಯವಿರುವ ಯೋಜನೆಗೆ ಹೋಗಬೇಕು.

"ಸ್ಟ್ಯಾಂಡರ್ಡ್" ಪ್ರಶ್ನೆ ಭಾಷೆಗಳು

ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಪ್ರಶ್ನೆ ಭಾಷೆಗಳು ನಿಖರವಾಗಿ ನಾವು ಪ್ರಶ್ನೆಗಳ ಬಗ್ಗೆ ಮಾತನಾಡುವಾಗ ನಾವು ಸಾಮಾನ್ಯವಾಗಿ ಅವುಗಳ ಬಗ್ಗೆ ಯೋಚಿಸುತ್ತೇವೆ.

ಸಂಬಂಧಿತ ಬೀಜಗಣಿತ

ಇಂದು ಸಂಬಂಧಿತ ಬೀಜಗಣಿತ ಏಕೆ ಬೇಕು? ಪ್ರಶ್ನೆ ಭಾಷೆಗಳನ್ನು ಒಂದು ನಿರ್ದಿಷ್ಟ ರೀತಿಯಲ್ಲಿ ಏಕೆ ರಚಿಸಲಾಗಿದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಪ್ರಜ್ಞಾಪೂರ್ವಕವಾಗಿ ಬಳಸುವುದರ ಬಗ್ಗೆ ಉತ್ತಮ ತಿಳುವಳಿಕೆಯನ್ನು ಹೊಂದಲು, ನೀವು ಅವುಗಳ ಆಧಾರವಾಗಿರುವ ಮೂಲವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕು.

ಸಂಬಂಧಿತ ಬೀಜಗಣಿತ ಎಂದರೇನು?

ಔಪಚಾರಿಕ ವ್ಯಾಖ್ಯಾನವು ಈ ಕೆಳಗಿನಂತಿರುತ್ತದೆ: ಸಂಬಂಧಿತ ಬೀಜಗಣಿತವು ಸಂಬಂಧಿತ ಡೇಟಾ ಮಾದರಿಯಲ್ಲಿ ಸಂಬಂಧಗಳ ಮೇಲಿನ ಕಾರ್ಯಾಚರಣೆಗಳ ಒಂದು ಮುಚ್ಚಿದ ವ್ಯವಸ್ಥೆಯಾಗಿದೆ. ಸ್ವಲ್ಪ ಹೆಚ್ಚು ಮಾನವೀಯವಾಗಿ ಹೇಳುವುದಾದರೆ, ಇದು ಕೋಷ್ಟಕಗಳಲ್ಲಿನ ಕಾರ್ಯಾಚರಣೆಗಳ ವ್ಯವಸ್ಥೆಯಾಗಿದ್ದು, ಫಲಿತಾಂಶವು ಯಾವಾಗಲೂ ಟೇಬಲ್ ಆಗಿರುತ್ತದೆ.

ಎಲ್ಲಾ ಸಂಬಂಧಿತ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನೋಡಿ ಇದು Habr ನಿಂದ ಲೇಖನ - ನೀವು ಏಕೆ ತಿಳಿದುಕೊಳ್ಳಬೇಕು ಮತ್ತು ಅದು ಎಲ್ಲಿ ಸೂಕ್ತವಾಗಿ ಬರುತ್ತದೆ ಎಂಬುದನ್ನು ನಾವು ಇಲ್ಲಿ ವಿವರಿಸುತ್ತೇವೆ.

ಯಾಕೆ?

ಪ್ರಶ್ನೆ ಭಾಷೆಗಳು ಯಾವುದರ ಬಗ್ಗೆ ಮತ್ತು ನಿರ್ದಿಷ್ಟ ಪ್ರಶ್ನೆ ಭಾಷೆಗಳಲ್ಲಿನ ಅಭಿವ್ಯಕ್ತಿಗಳ ಹಿಂದೆ ಯಾವ ಕಾರ್ಯಾಚರಣೆಗಳು ಇವೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಪ್ರಾರಂಭಿಸುವುದು ಪ್ರಶ್ನೆ ಭಾಷೆಗಳಲ್ಲಿ ಏನು ಕೆಲಸ ಮಾಡುತ್ತದೆ ಮತ್ತು ಹೇಗೆ ಎಂಬುದರ ಬಗ್ಗೆ ಆಳವಾದ ತಿಳುವಳಿಕೆಯನ್ನು ನೀಡುತ್ತದೆ.

ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಟಿಪ್ಪಣಿಗಳು: ಡೇಟಾ ಕ್ವೆರಿ ಲ್ಯಾಂಗ್ವೇಜಸ್‌ನ ವೈಯಕ್ತೀಕರಿಸಿದ ವಿಮರ್ಶೆ
ನಿಂದ ತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ ಇದು ಲೇಖನಗಳು. ಕಾರ್ಯಾಚರಣೆಯ ಉದಾಹರಣೆ: ಸೇರ್ಪಡೆ, ಇದು ಕೋಷ್ಟಕಗಳನ್ನು ಸೇರುತ್ತದೆ.

ಅಧ್ಯಯನಕ್ಕಾಗಿ ಸಾಮಗ್ರಿಗಳು:

ಸ್ಟ್ಯಾನ್‌ಫೋರ್ಡ್‌ನಿಂದ ಉತ್ತಮ ಪರಿಚಯಾತ್ಮಕ ಕೋರ್ಸ್. ಸಾಮಾನ್ಯವಾಗಿ, ಸಂಬಂಧಿತ ಬೀಜಗಣಿತ ಮತ್ತು ಸಿದ್ಧಾಂತದ ಮೇಲೆ ಬಹಳಷ್ಟು ಸಾಮಗ್ರಿಗಳಿವೆ - Coursera, Udacity. ಒಳ್ಳೆಯದು ಸೇರಿದಂತೆ ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ ದೊಡ್ಡ ಪ್ರಮಾಣದ ವಸ್ತುಗಳಿವೆ ಶೈಕ್ಷಣಿಕ ಕೋರ್ಸ್‌ಗಳು. ನನ್ನ ವೈಯಕ್ತಿಕ ಸಲಹೆ: ನೀವು ಸಂಬಂಧಿತ ಬೀಜಗಣಿತವನ್ನು ಚೆನ್ನಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕು - ಇದು ಮೂಲಭೂತ ಅಂಶಗಳ ಆಧಾರವಾಗಿದೆ.

SQL

ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಟಿಪ್ಪಣಿಗಳು: ಡೇಟಾ ಕ್ವೆರಿ ಲ್ಯಾಂಗ್ವೇಜಸ್‌ನ ವೈಯಕ್ತೀಕರಿಸಿದ ವಿಮರ್ಶೆ
ನಿಂದ ತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ ಇದು ಲೇಖನಗಳು.

SQL ಮೂಲಭೂತವಾಗಿ ಸಂಬಂಧಿತ ಬೀಜಗಣಿತದ ಅನುಷ್ಠಾನವಾಗಿದೆ - ಒಂದು ಪ್ರಮುಖ ಎಚ್ಚರಿಕೆಯೊಂದಿಗೆ, SQL ಘೋಷಣಾತ್ಮಕವಾಗಿದೆ! ಅಂದರೆ, ಸಂಬಂಧಿತ ಬೀಜಗಣಿತದ ಭಾಷೆಯಲ್ಲಿ ಪ್ರಶ್ನೆಯನ್ನು ಬರೆಯುವಾಗ, ನೀವು ನಿಜವಾಗಿಯೂ ಹೇಗೆ ಲೆಕ್ಕ ಹಾಕಬೇಕೆಂದು ಹೇಳುತ್ತೀರಿ - ಆದರೆ SQL ನೊಂದಿಗೆ, ನೀವು ಏನನ್ನು ಹೊರತೆಗೆಯಲು ಬಯಸುತ್ತೀರಿ ಎಂಬುದನ್ನು ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತೀರಿ ಮತ್ತು ನಂತರ DBMS ಈಗಾಗಲೇ ಸಂಬಂಧಿತ ಬೀಜಗಣಿತದ ಭಾಷೆಯಲ್ಲಿ (ಪರಿಣಾಮಕಾರಿ) ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ ( ಅವರ ಸಮಾನತೆಯು ನಮಗೆ ತಿಳಿದಿದೆ ಕಾಡ್ನ ಪ್ರಮೇಯ).

ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಟಿಪ್ಪಣಿಗಳು: ಡೇಟಾ ಕ್ವೆರಿ ಲ್ಯಾಂಗ್ವೇಜಸ್‌ನ ವೈಯಕ್ತೀಕರಿಸಿದ ವಿಮರ್ಶೆ
ನಿಂದ ತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ ಇದು ಲೇಖನಗಳು.

ಯಾಕೆ?

ಸಂಬಂಧಿತ DBMS ಗಳು: ಒರಾಕಲ್, ಪೋಸ್ಟ್‌ಗ್ರೆಸ್, SQL ಸರ್ವರ್, ಇತ್ಯಾದಿಗಳು ಇನ್ನೂ ಎಲ್ಲೆಡೆ ಇವೆ ಮತ್ತು ನೀವು ಅವರೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಬೇಕಾದ ವಿಸ್ಮಯಕಾರಿಯಾಗಿ ಹೆಚ್ಚಿನ ಅವಕಾಶವಿದೆ, ಅಂದರೆ ನೀವು SQL ಅನ್ನು ಓದಬೇಕು (ಇದು ತುಂಬಾ ಸಾಧ್ಯತೆಯಿದೆ) ಅಥವಾ ಅದನ್ನು ಬರೆಯಬೇಕು ( ಅಸಂಭವವೂ ಅಲ್ಲ).

ಏನು ಓದಬೇಕು ಮತ್ತು ಅಧ್ಯಯನ ಮಾಡಬೇಕು

ಮೇಲಿನ ಅದೇ ಲಿಂಕ್‌ಗಳ ಪ್ರಕಾರ (ಸಂಬಂಧಿತ ಬೀಜಗಣಿತದ ಬಗ್ಗೆ), ನಂಬಲಾಗದ ಪ್ರಮಾಣದ ವಸ್ತುವಿದೆ, ಉದಾಹರಣೆಗೆ, ಇದು.

ಅಂದಹಾಗೆ, NoSQL ಎಂದರೇನು?

"NoSQL" ಎಂಬ ಪದವು ಸಂಪೂರ್ಣವಾಗಿ ಸ್ವಾಭಾವಿಕ ಮೂಲವನ್ನು ಹೊಂದಿದೆ ಮತ್ತು ಅದರ ಹಿಂದೆ ಸಾಮಾನ್ಯವಾಗಿ ಅಂಗೀಕರಿಸಲ್ಪಟ್ಟ ವ್ಯಾಖ್ಯಾನ ಅಥವಾ ವೈಜ್ಞಾನಿಕ ಸಂಸ್ಥೆಯನ್ನು ಹೊಂದಿಲ್ಲ ಎಂದು ಮತ್ತೊಮ್ಮೆ ಒತ್ತಿಹೇಳುವುದು ಯೋಗ್ಯವಾಗಿದೆ." ಅನುರೂಪವಾಗಿದೆ ಲೇಖನ ಹಬರ್ ಮೇಲೆ.

ವಾಸ್ತವವಾಗಿ, ಅನೇಕ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಸಂಪೂರ್ಣ ಸಂಬಂಧಿತ ಮಾದರಿಯ ಅಗತ್ಯವಿಲ್ಲ ಎಂದು ಜನರು ಅರಿತುಕೊಂಡಿದ್ದಾರೆ, ವಿಶೇಷವಾಗಿ ಕಾರ್ಯಕ್ಷಮತೆ ನಿರ್ಣಾಯಕ ಮತ್ತು ಕೆಲವು ಸರಳ ಪ್ರಶ್ನೆಗಳು ಒಟ್ಟುಗೂಡಿಸುವಿಕೆಯೊಂದಿಗೆ ಪ್ರಾಬಲ್ಯ ಹೊಂದಿವೆ - ಅಲ್ಲಿ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡುವುದು ಮತ್ತು ಅವುಗಳನ್ನು ಬರೆಯುವುದು ನಿರ್ಣಾಯಕವಾಗಿದೆ. ಡೇಟಾಬೇಸ್, ಮತ್ತು ಹೆಚ್ಚಿನ ವೈಶಿಷ್ಟ್ಯಗಳು ಸಂಬಂಧಿತವಾಗಿದ್ದು ಅನಗತ್ಯ ಮಾತ್ರವಲ್ಲ, ಹಾನಿಕಾರಕವೂ ಆಗಿವೆ - ಅದು ನಮಗೆ ಅತ್ಯಂತ ಮುಖ್ಯವಾದ ವಿಷಯವನ್ನು (ಕೆಲವು ನಿರ್ದಿಷ್ಟ ಕಾರ್ಯಕ್ಕಾಗಿ) ಹಾಳುಮಾಡಿದರೆ ಏನನ್ನಾದರೂ ಏಕೆ ಸಾಮಾನ್ಯಗೊಳಿಸಬೇಕು - ಉತ್ಪಾದಕತೆ?

ಅಲ್ಲದೆ, ಕ್ಲಾಸಿಕಲ್ ರಿಲೇಷನಲ್ ಮಾದರಿಯ ಸ್ಥಿರ ಗಣಿತದ ಸ್ಕೀಮಾಗಳ ಬದಲಿಗೆ ಹೊಂದಿಕೊಳ್ಳುವ ಸ್ಕೀಮಾಗಳು ಹೆಚ್ಚಾಗಿ ಬೇಕಾಗುತ್ತದೆ - ಮತ್ತು ಸಿಸ್ಟಮ್ ಅನ್ನು ನಿಯೋಜಿಸಲು ಮತ್ತು ತ್ವರಿತವಾಗಿ ಕೆಲಸ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಲು, ಫಲಿತಾಂಶಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು - ಅಥವಾ ಸ್ಕೀಮಾ ಮತ್ತು ಸಂಗ್ರಹಿಸಿದ ಡೇಟಾದ ಪ್ರಕಾರಗಳು ನಿರ್ಣಾಯಕವಾದಾಗ ಇದು ಅಪ್ಲಿಕೇಶನ್ ಅಭಿವೃದ್ಧಿಯನ್ನು ನಂಬಲಾಗದಷ್ಟು ಸರಳಗೊಳಿಸುತ್ತದೆ. ಅಷ್ಟು ಮುಖ್ಯವಲ್ಲ.

ಉದಾಹರಣೆಗೆ, ನಾವು ಪರಿಣಿತ ವ್ಯವಸ್ಥೆಯನ್ನು ರಚಿಸುತ್ತಿದ್ದೇವೆ ಮತ್ತು ಕೆಲವು ಮೆಟಾ ಮಾಹಿತಿಯೊಂದಿಗೆ ನಿರ್ದಿಷ್ಟ ಡೊಮೇನ್‌ನಲ್ಲಿ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಲು ಬಯಸುತ್ತೇವೆ - ನಮಗೆ ಎಲ್ಲಾ ಕ್ಷೇತ್ರಗಳು ತಿಳಿದಿಲ್ಲದಿರಬಹುದು ಮತ್ತು ಪ್ರತಿ ರೆಕಾರ್ಡ್‌ಗೆ JSON ಅನ್ನು ಸರಳವಾಗಿ ಸಂಗ್ರಹಿಸಬಹುದು - ಇದು ಡೇಟಾವನ್ನು ವಿಸ್ತರಿಸಲು ನಮಗೆ ತುಂಬಾ ಹೊಂದಿಕೊಳ್ಳುವ ವಾತಾವರಣವನ್ನು ನೀಡುತ್ತದೆ ಮಾದರಿ ಮತ್ತು ತ್ವರಿತವಾಗಿ ಪುನರಾವರ್ತನೆಯಾಗುತ್ತದೆ - ಆದ್ದರಿಂದ ಈ ಸಂದರ್ಭದಲ್ಲಿ, NoSQL ಸಹ ಯೋಗ್ಯವಾಗಿರುತ್ತದೆ ಮತ್ತು ಹೆಚ್ಚು ಓದಬಹುದಾಗಿದೆ. ಉದಾಹರಣೆ ನಮೂದು (ನನ್ನ ಯೋಜನೆಗಳಲ್ಲಿ ಒಂದರಿಂದ NoSQL ಅಗತ್ಯವಿರುವ ಸ್ಥಳದಲ್ಲಿ).

{"en_wikipedia_url":"https://en.wikipedia.org/wiki/Johnny_Cash",
"ru_wikipedia_url":"https://ru.wikipedia.org/wiki/?curid=301643",
"ru_wiki_pagecount":149616,
"entity":[42775,"Джонни Кэш","ru"],
"en_wiki_pagecount":2338861}

ನೀವು ಹೆಚ್ಚು ಓದಬಹುದು ಇಲ್ಲಿ NoSQL ಬಗ್ಗೆ.

ಏನು ಅಧ್ಯಯನ ಮಾಡಬೇಕು?

ಇಲ್ಲಿ, ಬದಲಿಗೆ, ನಿಮ್ಮ ಕಾರ್ಯವನ್ನು ನೀವು ಸಂಪೂರ್ಣವಾಗಿ ವಿಶ್ಲೇಷಿಸಬೇಕಾಗಿದೆ, ಅದು ಯಾವ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿದೆ ಮತ್ತು ಈ ವಿವರಣೆಗೆ ಸರಿಹೊಂದುವಂತಹ NoSQL ವ್ಯವಸ್ಥೆಗಳು ಲಭ್ಯವಿದೆ - ತದನಂತರ ಈ ವ್ಯವಸ್ಥೆಯನ್ನು ಅಧ್ಯಯನ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿ.

ಸ್ಕ್ರಿಪ್ಟಿಂಗ್ ಪ್ರಶ್ನೆ ಭಾಷೆಗಳು

ಮೊದಲಿಗೆ, ಪೈಥಾನ್‌ಗೆ ಸಾಮಾನ್ಯವಾಗಿ ಇದರೊಂದಿಗೆ ಏನು ಸಂಬಂಧವಿದೆ ಎಂದು ತೋರುತ್ತದೆ - ಇದು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ, ಮತ್ತು ಪ್ರಶ್ನೆಗಳ ಬಗ್ಗೆ ಅಲ್ಲ.

ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಟಿಪ್ಪಣಿಗಳು: ಡೇಟಾ ಕ್ವೆರಿ ಲ್ಯಾಂಗ್ವೇಜಸ್‌ನ ವೈಯಕ್ತೀಕರಿಸಿದ ವಿಮರ್ಶೆ

  • ಪಾಂಡಾಗಳು ಅಕ್ಷರಶಃ ಡೇಟಾ ಸೈನ್ಸ್‌ನ ಸ್ವಿಸ್ ಆರ್ಮಿ ಚಾಕು; ದೊಡ್ಡ ಪ್ರಮಾಣದ ಡೇಟಾ ರೂಪಾಂತರ, ಒಟ್ಟುಗೂಡಿಸುವಿಕೆ ಇತ್ಯಾದಿಗಳು ಅದರಲ್ಲಿ ಸಂಭವಿಸುತ್ತವೆ.
  • ನಂಬಿ - ವೆಕ್ಟರ್ ಲೆಕ್ಕಾಚಾರಗಳು, ಮ್ಯಾಟ್ರಿಸಸ್ ಮತ್ತು ರೇಖೀಯ ಬೀಜಗಣಿತ ಅಲ್ಲಿ.
  • Scipy - ಈ ಪ್ಯಾಕೇಜ್‌ನಲ್ಲಿ ಬಹಳಷ್ಟು ಗಣಿತವಿದೆ, ವಿಶೇಷವಾಗಿ ಅಂಕಿಅಂಶಗಳು.
  • ಜುಪಿಟರ್ ಲ್ಯಾಬ್ - ಬಹಳಷ್ಟು ಪರಿಶೋಧನಾ ಡೇಟಾ ವಿಶ್ಲೇಷಣೆ ಲ್ಯಾಪ್‌ಟಾಪ್‌ಗಳಿಗೆ ಚೆನ್ನಾಗಿ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ - ತಿಳಿಯಲು ಉಪಯುಕ್ತವಾಗಿದೆ.
  • ವಿನಂತಿಗಳು - ನೆಟ್ವರ್ಕ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಿ.
  • ಡೇಟಾ ಇಂಜಿನಿಯರ್‌ಗಳಲ್ಲಿ ಪಿಸ್‌ಪಾರ್ಕ್ ಬಹಳ ಜನಪ್ರಿಯವಾಗಿದೆ, ಅವರ ಜನಪ್ರಿಯತೆಯ ಕಾರಣದಿಂದಾಗಿ ನೀವು ಇದರೊಂದಿಗೆ ಅಥವಾ ಸ್ಪಾರ್ಕ್‌ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಬೇಕಾಗುತ್ತದೆ.
  • *ಸೆಲೆನಿಯಮ್ - ಸೈಟ್‌ಗಳು ಮತ್ತು ಸಂಪನ್ಮೂಲಗಳಿಂದ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ತುಂಬಾ ಉಪಯುಕ್ತವಾಗಿದೆ, ಕೆಲವೊಮ್ಮೆ ಡೇಟಾವನ್ನು ಪಡೆಯಲು ಬೇರೆ ಯಾವುದೇ ಮಾರ್ಗವಿಲ್ಲ.

ನನ್ನ ಮುಖ್ಯ ಸಲಹೆ: ಪೈಥಾನ್ ಕಲಿಯಿರಿ!

ಪಾಂಡಾಗಳು

ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ಉದಾಹರಣೆಯಾಗಿ ತೆಗೆದುಕೊಳ್ಳೋಣ:

import pandas as pd
df = pd.read_csv(“data/dataset.csv”)
# Calculate and rename aggregations
all_together = (df[df[‘trip_type’] == “return”]
    .groupby(['start_station_name','end_station_name'])
                  	    .agg({'trip_duration_seconds': [np.size, np.mean, np.min, np.max]})
                           .rename(columns={'size': 'num_trips', 
           'mean': 'avg_duration_seconds',    
           'amin': min_duration_seconds', 
           ‘amax': 'max_duration_seconds'}))

ಮೂಲಭೂತವಾಗಿ, ಕೋಡ್ ಕ್ಲಾಸಿಕ್ SQL ಮಾದರಿಗೆ ಸರಿಹೊಂದುತ್ತದೆ ಎಂದು ನಾವು ನೋಡುತ್ತೇವೆ.

SELECT start_station_name, end_station_name, count(trip_duration_seconds) as size, …..
FROM dataset
WHERE trip_type = ‘return’
GROUPBY start_station_name, end_station_name

ಆದರೆ ಪ್ರಮುಖ ಭಾಗವೆಂದರೆ ಈ ಕೋಡ್ ಸ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಪೈಪ್‌ಲೈನ್‌ನ ಭಾಗವಾಗಿದೆ; ವಾಸ್ತವವಾಗಿ, ನಾವು ಪೈಥಾನ್ ಪೈಪ್‌ಲೈನ್‌ಗೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಎಂಬೆಡ್ ಮಾಡುತ್ತಿದ್ದೇವೆ. ಈ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ, ಪ್ರಶ್ನೆ ಭಾಷೆ ನಮಗೆ ಪಾಂಡಾಸ್ ಅಥವಾ ಪೈಸ್ಪಾರ್ಕ್‌ನಂತಹ ಗ್ರಂಥಾಲಯಗಳಿಂದ ಬರುತ್ತದೆ.

ಸಾಮಾನ್ಯವಾಗಿ, pySpark ನಲ್ಲಿ ನಾವು ಇದೇ ರೀತಿಯ ಡೇಟಾ ರೂಪಾಂತರವನ್ನು ಪ್ರಶ್ನೆ ಭಾಷೆಯ ಮೂಲಕ ನೋಡುತ್ತೇವೆ:

df.filter(df.trip_type = “return”)
  .groupby(“day”)
  .agg({duration: 'mean'})
  .sort()

ಎಲ್ಲಿ ಮತ್ತು ಏನು ಓದಬೇಕು

ಸಾಮಾನ್ಯವಾಗಿ ಪೈಥಾನ್‌ನಲ್ಲಿಯೇ ತೊಂದರೆಯಿಲ್ಲ ಅಧ್ಯಯನ ಮಾಡಲು ವಸ್ತುಗಳನ್ನು ಹುಡುಕಿ. ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಟ್ಯುಟೋರಿಯಲ್‌ಗಳಿವೆ ಪಾಂಡಾಗಳು, ಪೈಸ್ಪಾರ್ಕ್ ಮತ್ತು ಕೋರ್ಸ್‌ಗಳು ಸ್ಪಾರ್ಕ್ (ಮತ್ತು ಸ್ವತಃ DS) ಒಟ್ಟಾರೆಯಾಗಿ, ಇಲ್ಲಿರುವ ವಿಷಯವು ಗೂಗ್ಲಿಂಗ್‌ಗೆ ಉತ್ತಮವಾಗಿದೆ, ಮತ್ತು ನಾನು ಕೇಂದ್ರೀಕರಿಸಲು ಒಂದು ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಆರಿಸಬೇಕಾದರೆ ಅದು ಪಾಂಡಾಗಳು ಆಗಿರುತ್ತದೆ. ಡಿಎಸ್ + ಪೈಥಾನ್ ವಸ್ತುಗಳ ಸಂಯೋಜನೆಯ ಬಗ್ಗೆಯೂ ಬಹಳಷ್ಟು.

ಪ್ರಶ್ನೆ ಭಾಷೆಯಾಗಿ ಶೆಲ್

ನಾನು ಕೆಲಸ ಮಾಡಿದ ಕೆಲವು ಡೇಟಾ ಸಂಸ್ಕರಣೆ ಮತ್ತು ವಿಶ್ಲೇಷಣೆ ಯೋಜನೆಗಳು, ವಾಸ್ತವವಾಗಿ, ಪೈಥಾನ್, ಜಾವಾ ಮತ್ತು ಶೆಲ್ ಆಜ್ಞೆಗಳಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಕರೆಯುವ ಶೆಲ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳಾಗಿವೆ. ಆದ್ದರಿಂದ, ಸಾಮಾನ್ಯವಾಗಿ, ನೀವು bash/zsh/etc ನಲ್ಲಿ ಪೈಪ್‌ಲೈನ್‌ಗಳನ್ನು ಕೆಲವು ರೀತಿಯ ಉನ್ನತ ಮಟ್ಟದ ಪ್ರಶ್ನೆಯಾಗಿ ಪರಿಗಣಿಸಬಹುದು (ನೀವು ಸಹಜವಾಗಿ, ಸ್ಟಫ್ ಲೂಪ್‌ಗಳನ್ನು ಅಲ್ಲಿ ಮಾಡಬಹುದು, ಆದರೆ ಇದು ಶೆಲ್ ಭಾಷೆಗಳಲ್ಲಿ DS ಕೋಡ್‌ಗೆ ವಿಶಿಷ್ಟವಲ್ಲ), ನಾವು ನೀಡೋಣ ಒಂದು ಸರಳ ಉದಾಹರಣೆ - ನಾನು ವಿಕಿಡೇಟಾದ QID ಮ್ಯಾಪಿಂಗ್ ಮತ್ತು ರಷ್ಯನ್ ಮತ್ತು ಇಂಗ್ಲಿಷ್ ವಿಕಿಗಳಿಗೆ ಪೂರ್ಣ ಲಿಂಕ್‌ಗಳನ್ನು ಮಾಡಬೇಕಾಗಿತ್ತು, ಇದಕ್ಕಾಗಿ ನಾನು ಬ್ಯಾಷ್‌ನಲ್ಲಿನ ಆಜ್ಞೆಗಳಿಂದ ಸರಳ ವಿನಂತಿಯನ್ನು ಬರೆದಿದ್ದೇನೆ ಮತ್ತು ಔಟ್‌ಪುಟ್‌ಗಾಗಿ ನಾನು ಪೈಥಾನ್‌ನಲ್ಲಿ ಸರಳ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬರೆದಿದ್ದೇನೆ. ಈ ರೀತಿ ಜೋಡಿಸಿ:

pv “data/latest-all.json.gz” | 
unpigz -c  | 
jq --stream $JQ_QUERY | 
python3 scripts/post_process.py "output.csv"

ಅಲ್ಲಿ

JQ_QUERY = 'select((.[0][1] == "sitelinks" and (.[0][2]=="enwiki" or .[0][2] =="ruwiki") and .[0][3] =="title") or .[0][1] == "id")' 

ಇದು ವಾಸ್ತವವಾಗಿ, ಅಗತ್ಯವಿರುವ ಮ್ಯಾಪಿಂಗ್ ಅನ್ನು ರಚಿಸಿದ ಸಂಪೂರ್ಣ ಪೈಪ್‌ಲೈನ್ ಆಗಿದೆ; ನಾವು ನೋಡುವಂತೆ, ಎಲ್ಲವೂ ಹರಿವಿನ ಮೋಡ್‌ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ:

  • pv filepath - ಫೈಲ್ ಗಾತ್ರವನ್ನು ಆಧರಿಸಿ ಪ್ರಗತಿ ಪಟ್ಟಿಯನ್ನು ನೀಡುತ್ತದೆ ಮತ್ತು ಅದರ ವಿಷಯಗಳನ್ನು ಮುಂದಕ್ಕೆ ರವಾನಿಸುತ್ತದೆ
  • unpigz -c ಆರ್ಕೈವ್‌ನ ಭಾಗವನ್ನು ಓದಿದೆ ಮತ್ತು ಅದನ್ನು jq ಗೆ ನೀಡಿದೆ
  • jq ಕೀಲಿಯೊಂದಿಗೆ - ಸ್ಟ್ರೀಮ್ ತಕ್ಷಣವೇ ಫಲಿತಾಂಶವನ್ನು ಉತ್ಪಾದಿಸಿತು ಮತ್ತು ಪೈಥಾನ್‌ನಲ್ಲಿ ಪೋಸ್ಟ್‌ಪ್ರೊಸೆಸರ್‌ಗೆ (ಮೊದಲ ಉದಾಹರಣೆಯಂತೆಯೇ) ರವಾನಿಸಿತು
  • ಆಂತರಿಕವಾಗಿ, ಪೋಸ್ಟ್‌ಪ್ರೊಸೆಸರ್ ಸರಳ ಸ್ಥಿತಿಯ ಯಂತ್ರವಾಗಿದ್ದು ಅದು ಔಟ್‌ಪುಟ್ ಅನ್ನು ಫಾರ್ಮಾಟ್ ಮಾಡುತ್ತದೆ 

ಒಟ್ಟಾರೆಯಾಗಿ, ದೊಡ್ಡ ಡೇಟಾದಲ್ಲಿ (0.5TB) ಫ್ಲೋ ಮೋಡ್‌ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಸಂಕೀರ್ಣ ಪೈಪ್‌ಲೈನ್, ಗಮನಾರ್ಹ ಸಂಪನ್ಮೂಲಗಳಿಲ್ಲದೆ ಮತ್ತು ಸರಳ ಪೈಪ್‌ಲೈನ್ ಮತ್ತು ಒಂದೆರಡು ಸಾಧನಗಳಿಂದ ಮಾಡಲ್ಪಟ್ಟಿದೆ.

ಮತ್ತೊಂದು ಪ್ರಮುಖ ಸಲಹೆ: ಟರ್ಮಿನಲ್‌ನಲ್ಲಿ ಉತ್ತಮವಾಗಿ ಮತ್ತು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಕೆಲಸ ಮಾಡಲು ಮತ್ತು bash/zsh/ಇತ್ಯಾದಿ ಬರೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.

ಅದು ಎಲ್ಲಿ ಉಪಯುಕ್ತವಾಗಿರುತ್ತದೆ? ಹೌದು, ಬಹುತೇಕ ಎಲ್ಲೆಡೆ - ಮತ್ತೆ, ಅಂತರ್ಜಾಲದಲ್ಲಿ ಅಧ್ಯಯನ ಮಾಡಲು ಸಾಕಷ್ಟು ಸಾಮಗ್ರಿಗಳಿವೆ. ನಿರ್ದಿಷ್ಟವಾಗಿ, ಇಲ್ಲಿ ಹೌದು ನನ್ನ ಹಿಂದಿನ ಲೇಖನ.

ಆರ್ ಸ್ಕ್ರಿಪ್ಟಿಂಗ್

ಮತ್ತೊಮ್ಮೆ, ಓದುಗರು ಉದ್ಗರಿಸಬಹುದು - ಅಲ್ಲದೆ, ಇದು ಸಂಪೂರ್ಣ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾಗಿದೆ! ಮತ್ತು ಸಹಜವಾಗಿ, ಅವನು ಸರಿಯಾಗಿರುತ್ತಾನೆ. ಆದಾಗ್ಯೂ, ನಾನು ಸಾಮಾನ್ಯವಾಗಿ ಅಂತಹ ಸಂದರ್ಭದಲ್ಲಿ R ಅನ್ನು ಎದುರಿಸಿದ್ದೇನೆ, ವಾಸ್ತವವಾಗಿ, ಇದು ಪ್ರಶ್ನೆ ಭಾಷೆಗೆ ಹೋಲುತ್ತದೆ.

R ಎಂಬುದು ಸ್ಟ್ಯಾಟಿಕ್ ಕಂಪ್ಯೂಟಿಂಗ್ ಪರಿಸರ ಮತ್ತು ಸ್ಥಾಯೀ ಕಂಪ್ಯೂಟಿಂಗ್ ಮತ್ತು ದೃಶ್ಯೀಕರಣಕ್ಕಾಗಿ ಭಾಷೆಯಾಗಿದೆ (ಅನುಸಾರ ಇದು).

ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಟಿಪ್ಪಣಿಗಳು: ಡೇಟಾ ಕ್ವೆರಿ ಲ್ಯಾಂಗ್ವೇಜಸ್‌ನ ವೈಯಕ್ತೀಕರಿಸಿದ ವಿಮರ್ಶೆ
ತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ ಇಲ್ಲಿಂದ. ಮೂಲಕ, ನಾನು ಅದನ್ನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ, ಉತ್ತಮ ವಸ್ತು.

ದತ್ತಾಂಶ ವಿಜ್ಞಾನಿ R ಅನ್ನು ಏಕೆ ತಿಳಿದುಕೊಳ್ಳಬೇಕು? ಕನಿಷ್ಠ, R ನಲ್ಲಿ ಡೇಟಾವನ್ನು ವಿಶ್ಲೇಷಿಸುವ IT ಅಲ್ಲದ ಜನರ ದೊಡ್ಡ ಪದರವಿದೆ. ನಾನು ಅದನ್ನು ಈ ಕೆಳಗಿನ ಸ್ಥಳಗಳಲ್ಲಿ ನೋಡಿದೆ:

  • ಔಷಧೀಯ ವಲಯ.
  • ಜೀವಶಾಸ್ತ್ರಜ್ಞರು.
  • ಹಣಕಾಸು ವಲಯ.
  • ಅಂಕಿಅಂಶಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುವ ಸಂಪೂರ್ಣವಾಗಿ ಗಣಿತದ ಶಿಕ್ಷಣ ಹೊಂದಿರುವ ಜನರು.
  • ವಿಶೇಷ ಅಂಕಿಅಂಶಗಳ ಮಾದರಿಗಳು ಮತ್ತು ಯಂತ್ರ ಕಲಿಕೆಯ ಮಾದರಿಗಳು (ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಲೇಖಕರ ಆವೃತ್ತಿಯಲ್ಲಿ R ಪ್ಯಾಕೇಜ್ ಆಗಿ ಮಾತ್ರ ಕಂಡುಬರುತ್ತದೆ).

ಇದು ನಿಜವಾಗಿಯೂ ಪ್ರಶ್ನೆ ಭಾಷೆ ಏಕೆ? ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಕಂಡುಬರುವ ರೂಪದಲ್ಲಿ, ಡೇಟಾ ಓದುವಿಕೆ ಮತ್ತು ಪ್ರಶ್ನೆ (ಮಾದರಿ) ನಿಯತಾಂಕಗಳನ್ನು ಸರಿಪಡಿಸುವುದು, ಹಾಗೆಯೇ ggplot2 ನಂತಹ ಪ್ಯಾಕೇಜ್‌ಗಳಲ್ಲಿ ಡೇಟಾವನ್ನು ದೃಶ್ಯೀಕರಿಸುವುದು ಸೇರಿದಂತೆ ಮಾದರಿಯನ್ನು ರಚಿಸುವ ವಿನಂತಿಯಾಗಿದೆ - ಇದು ಪ್ರಶ್ನೆಗಳನ್ನು ಬರೆಯುವ ಒಂದು ರೂಪವಾಗಿದೆ. .

ದೃಶ್ಯೀಕರಣಕ್ಕಾಗಿ ಉದಾಹರಣೆ ಪ್ರಶ್ನೆಗಳು

ggplot(data = beav, 
       aes(x = id, y = temp, 
           group = activ, color = activ)) +
  geom_line() + 
  geom_point() +
  scale_color_manual(values = c("red", "blue"))

ಸಾಮಾನ್ಯವಾಗಿ, R ನಿಂದ ಅನೇಕ ವಿಚಾರಗಳು ಡೇಟಾಫ್ರೇಮ್‌ಗಳು ಮತ್ತು ಡೇಟಾ ವೆಕ್ಟರೈಸೇಶನ್‌ನಂತಹ ಪಾಂಡಾಗಳು, ನಂಬಿ ಅಥವಾ ಸ್ಕಿಪಿಯಂತಹ ಪೈಥಾನ್ ಪ್ಯಾಕೇಜ್‌ಗಳಿಗೆ ಸ್ಥಳಾಂತರಗೊಂಡಿವೆ - ಆದ್ದರಿಂದ ಸಾಮಾನ್ಯವಾಗಿ R ನಲ್ಲಿನ ಬಹಳಷ್ಟು ವಿಷಯಗಳು ನಿಮಗೆ ಪರಿಚಿತ ಮತ್ತು ಅನುಕೂಲಕರವೆಂದು ತೋರುತ್ತದೆ.

ಅಧ್ಯಯನ ಮಾಡಲು ಹಲವು ಮೂಲಗಳಿವೆ, ಉದಾಹರಣೆಗೆ, ಇದು.

ಜ್ಞಾನದ ಗ್ರಾಫ್ಗಳು

ಇಲ್ಲಿ ನನಗೆ ಸ್ವಲ್ಪ ಅಸಾಮಾನ್ಯ ಅನುಭವವಿದೆ, ಏಕೆಂದರೆ ನಾನು ಆಗಾಗ್ಗೆ ಜ್ಞಾನದ ಗ್ರಾಫ್‌ಗಳು ಮತ್ತು ಗ್ರಾಫ್‌ಗಳಿಗಾಗಿ ಪ್ರಶ್ನೆ ಭಾಷೆಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಆದ್ದರಿಂದ, ಈ ಭಾಗವು ಸ್ವಲ್ಪ ಹೆಚ್ಚು ವಿಲಕ್ಷಣವಾಗಿರುವುದರಿಂದ ನಾವು ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಸಂಕ್ಷಿಪ್ತವಾಗಿ ನೋಡೋಣ.

ಕ್ಲಾಸಿಕಲ್ ರಿಲೇಶನಲ್ ಡೇಟಾಬೇಸ್‌ಗಳಲ್ಲಿ ನಾವು ಸ್ಥಿರವಾದ ಸ್ಕೀಮಾವನ್ನು ಹೊಂದಿದ್ದೇವೆ, ಆದರೆ ಇಲ್ಲಿ ಸ್ಕೀಮಾವು ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ, ಪ್ರತಿ ಮುನ್ಸೂಚನೆಯು ವಾಸ್ತವವಾಗಿ "ಕಾಲಮ್" ಮತ್ತು ಇನ್ನೂ ಹೆಚ್ಚು.

ನೀವು ಒಬ್ಬ ವ್ಯಕ್ತಿಯನ್ನು ಮಾಡೆಲಿಂಗ್ ಮಾಡುತ್ತಿದ್ದೀರಿ ಮತ್ತು ಪ್ರಮುಖ ವಿಷಯಗಳನ್ನು ವಿವರಿಸಲು ಬಯಸಿದ್ದೀರಿ ಎಂದು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ, ಉದಾಹರಣೆಗೆ, ನಿರ್ದಿಷ್ಟ ವ್ಯಕ್ತಿ, ಡೌಗ್ಲಾಸ್ ಆಡಮ್ಸ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳೋಣ ಮತ್ತು ಈ ವಿವರಣೆಯನ್ನು ಆಧಾರವಾಗಿ ಬಳಸೋಣ.

ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಟಿಪ್ಪಣಿಗಳು: ಡೇಟಾ ಕ್ವೆರಿ ಲ್ಯಾಂಗ್ವೇಜಸ್‌ನ ವೈಯಕ್ತೀಕರಿಸಿದ ವಿಮರ್ಶೆ
www.wikidata.org/wiki/Q42

ನಾವು ಸಂಬಂಧಿತ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಬಳಸಿದರೆ, ನಾವು ದೊಡ್ಡ ಸಂಖ್ಯೆಯ ಕಾಲಮ್‌ಗಳೊಂದಿಗೆ ದೊಡ್ಡ ಕೋಷ್ಟಕ ಅಥವಾ ಕೋಷ್ಟಕಗಳನ್ನು ರಚಿಸಬೇಕಾಗುತ್ತದೆ, ಅವುಗಳಲ್ಲಿ ಹೆಚ್ಚಿನವು ಶೂನ್ಯ ಅಥವಾ ಕೆಲವು ಡೀಫಾಲ್ಟ್ ತಪ್ಪು ಮೌಲ್ಯದಿಂದ ತುಂಬಿರುತ್ತವೆ, ಉದಾಹರಣೆಗೆ, ನಮ್ಮಲ್ಲಿ ಹಲವರು ಹೊಂದಿರುವುದು ಅಸಂಭವವಾಗಿದೆ ಕೊರಿಯನ್ ರಾಷ್ಟ್ರೀಯ ಗ್ರಂಥಾಲಯದಲ್ಲಿ ನಮೂದು - ಸಹಜವಾಗಿ, ನಾವು ಅವುಗಳನ್ನು ಪ್ರತ್ಯೇಕ ಕೋಷ್ಟಕಗಳಲ್ಲಿ ಇರಿಸಬಹುದು, ಆದರೆ ಇದು ಅಂತಿಮವಾಗಿ ಸ್ಥಿರವಾದ ಸಂಬಂಧಿತ ಒಂದನ್ನು ಬಳಸಿಕೊಂಡು ಮುನ್ಸೂಚನೆಗಳೊಂದಿಗೆ ಹೊಂದಿಕೊಳ್ಳುವ ತಾರ್ಕಿಕ ಸರ್ಕ್ಯೂಟ್ ಅನ್ನು ರೂಪಿಸುವ ಪ್ರಯತ್ನವಾಗಿದೆ.

ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಟಿಪ್ಪಣಿಗಳು: ಡೇಟಾ ಕ್ವೆರಿ ಲ್ಯಾಂಗ್ವೇಜಸ್‌ನ ವೈಯಕ್ತೀಕರಿಸಿದ ವಿಮರ್ಶೆ
ಆದ್ದರಿಂದ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಗ್ರಾಫ್ ಅಥವಾ ಬೈನರಿ ಮತ್ತು ಯುನರಿ ಬೂಲಿಯನ್ ಅಭಿವ್ಯಕ್ತಿಗಳಾಗಿ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ ಎಂದು ಊಹಿಸಿ.

ನೀವು ಇದನ್ನು ಎಲ್ಲಿ ಎದುರಿಸಬಹುದು? ಮೊದಲನೆಯದಾಗಿ, ಇದರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಿ ಡೇಟಾ ವಿಕಿ, ಮತ್ತು ಯಾವುದೇ ಗ್ರಾಫ್ ಡೇಟಾಬೇಸ್ ಅಥವಾ ಸಂಪರ್ಕಿತ ಡೇಟಾದೊಂದಿಗೆ.

ಕೆಳಗಿನವುಗಳು ನಾನು ಬಳಸಿದ ಮತ್ತು ಕೆಲಸ ಮಾಡಿದ ಮುಖ್ಯ ಪ್ರಶ್ನೆ ಭಾಷೆಗಳಾಗಿವೆ.

ಸ್ಪಾರ್ಕ್ಲ್

ವಿಕಿ:
SPARQL (ಪುನರಾವರ್ತಿತ ಸಂಕ್ಷಿಪ್ತ ರೂಪ ರಿಂದ ಇಂಗ್ಲೆಂಡ್. SPARQL ಪ್ರೋಟೋಕಾಲ್ ಮತ್ತು RDF ಪ್ರಶ್ನೆ ಭಾಷೆ) - ಡೇಟಾ ಪ್ರಶ್ನೆ ಭಾಷೆ, ಮಾದರಿಯಿಂದ ನಿರೂಪಿಸಲಾಗಿದೆ ಆರ್ಡಿಎಫ್ಮತ್ತು ಶಿಷ್ಟಾಚಾರ ಈ ವಿನಂತಿಗಳನ್ನು ರವಾನಿಸಲು ಮತ್ತು ಅವುಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಲು. SPARQL ಒಂದು ಶಿಫಾರಸು W3C ಕನ್ಸೋರ್ಟಿಯಂ ಮತ್ತು ತಂತ್ರಜ್ಞಾನಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ ಲಾಕ್ಷಣಿಕ ವೆಬ್.

ಆದರೆ ವಾಸ್ತವದಲ್ಲಿ ಇದು ತಾರ್ಕಿಕ ಯುನರಿ ಮತ್ತು ಬೈನರಿ ಮುನ್ಸೂಚನೆಗಳಿಗೆ ಪ್ರಶ್ನೆ ಭಾಷೆಯಾಗಿದೆ. ಬೂಲಿಯನ್ ಅಭಿವ್ಯಕ್ತಿಯಲ್ಲಿ ಯಾವುದು ಸ್ಥಿರವಾಗಿದೆ ಮತ್ತು ಯಾವುದು ಅಲ್ಲ (ಬಹಳ ಸರಳೀಕೃತ) ನೀವು ಸರಳವಾಗಿ ಷರತ್ತುಬದ್ಧವಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತಿದ್ದೀರಿ.

RDF (ಸಂಪನ್ಮೂಲ ವಿವರಣೆ ಫ್ರೇಮ್‌ವರ್ಕ್) ಬೇಸ್, ಅದರ ಮೇಲೆ SPARQL ಪ್ರಶ್ನೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ, ಇದು ಟ್ರಿಪಲ್ ಆಗಿದೆ object, predicate, subject - ಮತ್ತು ಪ್ರಶ್ನೆಯು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ನಿರ್ಬಂಧಗಳ ಪ್ರಕಾರ ಅಗತ್ಯವಿರುವ ಟ್ರಿಪಲ್‌ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ: p_55(X, q_33) ನಿಜವಾಗಿರುವ X ಅನ್ನು ಹುಡುಕಿ - ಅಲ್ಲಿ, ಸಹಜವಾಗಿ, p_55 ID 55 ನೊಂದಿಗೆ ಕೆಲವು ರೀತಿಯ ಸಂಬಂಧವಾಗಿದೆ ಮತ್ತು q_33 ID 33 ರೊಂದಿಗಿನ ವಸ್ತು (ಇಲ್ಲಿ ಮತ್ತು ಸಂಪೂರ್ಣ ಕಥೆ, ಮತ್ತೊಮ್ಮೆ ಎಲ್ಲಾ ರೀತಿಯ ವಿವರಗಳನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತದೆ).

ಡೇಟಾ ಪ್ರಸ್ತುತಿಯ ಉದಾಹರಣೆ:

ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಟಿಪ್ಪಣಿಗಳು: ಡೇಟಾ ಕ್ವೆರಿ ಲ್ಯಾಂಗ್ವೇಜಸ್‌ನ ವೈಯಕ್ತೀಕರಿಸಿದ ವಿಮರ್ಶೆ
ಇಲ್ಲಿ ದೇಶಗಳೊಂದಿಗೆ ಚಿತ್ರಗಳು ಮತ್ತು ಉದಾಹರಣೆ ಇಲ್ಲಿಂದ.

ಮೂಲ ಪ್ರಶ್ನೆ ಉದಾಹರಣೆ

ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಟಿಪ್ಪಣಿಗಳು: ಡೇಟಾ ಕ್ವೆರಿ ಲ್ಯಾಂಗ್ವೇಜಸ್‌ನ ವೈಯಕ್ತೀಕರಿಸಿದ ವಿಮರ್ಶೆ

ವಾಸ್ತವವಾಗಿ, ನಾವು ?ದೇಶದ ವೇರಿಯೇಬಲ್‌ನ ಮೌಲ್ಯವನ್ನು ಕಂಡುಹಿಡಿಯಲು ಬಯಸುತ್ತೇವೆ, ಅದು ಮುನ್ಸೂಚನೆಗಾಗಿ
ಸದಸ್ಯರ_ಆಫ್ (?ದೇಶ, q458) ಮತ್ತು q458 ಯುರೋಪಿಯನ್ ಒಕ್ಕೂಟದ ID ಎಂಬುದು ನಿಜ.

ಪೈಥಾನ್ ಎಂಜಿನ್ ಒಳಗೆ ನಿಜವಾದ SPARQL ಪ್ರಶ್ನೆಯ ಉದಾಹರಣೆ:

ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಟಿಪ್ಪಣಿಗಳು: ಡೇಟಾ ಕ್ವೆರಿ ಲ್ಯಾಂಗ್ವೇಜಸ್‌ನ ವೈಯಕ್ತೀಕರಿಸಿದ ವಿಮರ್ಶೆ

ವಿಶಿಷ್ಟವಾಗಿ, ನಾನು ಅದನ್ನು ಬರೆಯುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿ SPARQL ಅನ್ನು ಓದಬೇಕಾಗಿತ್ತು - ಆ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ, ಡೇಟಾವನ್ನು ಹೇಗೆ ಹಿಂಪಡೆಯಲಾಗಿದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಕನಿಷ್ಠ ಮೂಲಭೂತ ಮಟ್ಟದಲ್ಲಿ ಭಾಷೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಇದು ಉಪಯುಕ್ತ ಕೌಶಲ್ಯವಾಗಿದೆ. 

ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ ಅಧ್ಯಯನ ಮಾಡಲು ಸಾಕಷ್ಟು ವಿಷಯಗಳಿವೆ: ಉದಾಹರಣೆಗೆ, ಇಲ್ಲಿ ಇದು и ಇದು. ನಾನು ಸಾಮಾನ್ಯವಾಗಿ ನಿರ್ದಿಷ್ಟ ವಿನ್ಯಾಸಗಳು ಮತ್ತು ಉದಾಹರಣೆಗಳನ್ನು ಗೂಗಲ್ ಮಾಡುತ್ತೇನೆ ಮತ್ತು ಸದ್ಯಕ್ಕೆ ಸಾಕು.

ತಾರ್ಕಿಕ ಪ್ರಶ್ನೆ ಭಾಷೆಗಳು

ನನ್ನ ಲೇಖನದಲ್ಲಿ ನೀವು ವಿಷಯದ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ಓದಬಹುದು ಇಲ್ಲಿ. ಮತ್ತು ಇಲ್ಲಿ, ಪ್ರಶ್ನೆಗಳನ್ನು ಬರೆಯಲು ತಾರ್ಕಿಕ ಭಾಷೆಗಳು ಏಕೆ ಸೂಕ್ತವಾಗಿವೆ ಎಂಬುದನ್ನು ನಾವು ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಪರಿಶೀಲಿಸುತ್ತೇವೆ. ಮೂಲಭೂತವಾಗಿ, RDF ಎನ್ನುವುದು p(X) ಮತ್ತು h(X,Y) ರೂಪದ ತಾರ್ಕಿಕ ಹೇಳಿಕೆಗಳ ಒಂದು ಗುಂಪಾಗಿದೆ, ಮತ್ತು ತಾರ್ಕಿಕ ಪ್ರಶ್ನೆಯು ಈ ಕೆಳಗಿನ ರೂಪವನ್ನು ಹೊಂದಿದೆ:

output(X) :- country(X), member_of(X,“EU”).

ಇಲ್ಲಿ ನಾವು ಹೊಸ ಮುನ್ಸೂಚನೆಯ ಔಟ್‌ಪುಟ್ ಅನ್ನು ರಚಿಸುವ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತಿದ್ದೇವೆ/1 (/1 ಎಂದರೆ ಯುನರಿ), X ಗೆ ಅದು ನಿಜವಾಗಿದ್ದರೆ ಅದು ದೇಶ(X) - ಅಂದರೆ, X ಒಂದು ದೇಶ ಮತ್ತು ಸದಸ್ಯ_of(X,"EU ").

ಅಂದರೆ, ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಡೇಟಾ ಮತ್ತು ನಿಯಮಗಳೆರಡನ್ನೂ ಒಂದೇ ರೀತಿಯಲ್ಲಿ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗುತ್ತದೆ, ಇದು ನಮಗೆ ಸಮಸ್ಯೆಗಳನ್ನು ಸುಲಭವಾಗಿ ಮತ್ತು ಉತ್ತಮವಾಗಿ ರೂಪಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ಇಂಡಸ್ಟ್ರಿಯಲ್ಲಿ ಎಲ್ಲಿ ಭೇಟಿಯಾದಿರಿ?: ಅಂತಹ ಭಾಷೆಯಲ್ಲಿ ಪ್ರಶ್ನೆಗಳನ್ನು ಬರೆಯುವ ಕಂಪನಿಯೊಂದಿಗೆ ಸಂಪೂರ್ಣ ದೊಡ್ಡ ಯೋಜನೆ, ಹಾಗೆಯೇ ಸಿಸ್ಟಮ್ನ ಮಧ್ಯಭಾಗದಲ್ಲಿರುವ ಪ್ರಸ್ತುತ ಯೋಜನೆಯಲ್ಲಿ - ಇದು ವಿಲಕ್ಷಣ ವಿಷಯ ಎಂದು ತೋರುತ್ತದೆ, ಆದರೆ ಕೆಲವೊಮ್ಮೆ ಅದು ಸಂಭವಿಸುತ್ತದೆ.

ಲಾಜಿಕಲ್ ಲ್ಯಾಂಗ್ವೇಜ್ ಪ್ರೊಸೆಸಿಂಗ್ ವಿಕಿಡೇಟಾದಲ್ಲಿ ಕೋಡ್ ತುಣುಕಿನ ಉದಾಹರಣೆ:

ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಟಿಪ್ಪಣಿಗಳು: ಡೇಟಾ ಕ್ವೆರಿ ಲ್ಯಾಂಗ್ವೇಜಸ್‌ನ ವೈಯಕ್ತೀಕರಿಸಿದ ವಿಮರ್ಶೆ

ವಸ್ತುಗಳು: ಆಧುನಿಕ ತಾರ್ಕಿಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗೆ ನಾನು ಇಲ್ಲಿ ಒಂದೆರಡು ಲಿಂಕ್‌ಗಳನ್ನು ನೀಡುತ್ತೇನೆ ಉತ್ತರ ಸೆಟ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ - ಅದನ್ನು ಅಧ್ಯಯನ ಮಾಡಲು ನಾನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ:

ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಟಿಪ್ಪಣಿಗಳು: ಡೇಟಾ ಕ್ವೆರಿ ಲ್ಯಾಂಗ್ವೇಜಸ್‌ನ ವೈಯಕ್ತೀಕರಿಸಿದ ವಿಮರ್ಶೆ

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ