මොඩියුලය 10: උසස් දත්ත සමුදා සංකල්ප (NoSQL)

නූතන වෙබ් යෙදුම් සහ Big Data සඳහා නිර්මාණය වූ දත්ත සමුදා ලෝකය.

NoSQL අවශ්‍ය වූයේ ඇයි?

පෙර මොඩියුලයේදී, අපි ව්‍යුහගත දත්ත (structured data) ගබඩා කිරීම සඳහා ඉතා ප්‍රබල සහ විශ්වාසනීය ක්‍රමයක් වන SQL දත්ත සමුදා පිළිබඳව ඉගෙන ගත්තෙමු. බැංකු ගනුදෙනු, පරිශීලක ලියාපදිංචි කිරීම් වැනි දත්ත සඳහා ඒවා අදටත් හොඳම විසඳුමයි. නමුත්, අන්තර්ජාලයේ වර්ධනයත් සමග, සම්ප්‍රදායික SQL දත්ත සමුදා වලට කළමනාකරණය කිරීමට අපහසු, නව ආකාරයේ දත්ත සහ අභියෝග බිහි විය.

මෙම අභියෝග ජය ගැනීම සඳහා නිර්මාණය වූ දත්ත සමුදා වර්ගීකරණය NoSQL (Not Only SQL) ලෙස හැඳින්වේ. මේවා නිශ්චිත කාර්යයන් සඳහා ඉහළ වේගයක් සහ නම්‍යශීලී බවක් ලබා දේ.

NoSQL දත්ත සමුදා වර්ග

NoSQL යනු තනි තාක්ෂණයක් නොව, විවිධ වර්ගයේ දත්ත සමුදා එකතුවකි. අපි ප්‍රධාන වර්ග කිහිපයක් බලමු.

1. Document Databases උදා: MongoDB

මෙහිදී දත්ත, JSON (JavaScript Object Notation) වැනි document ආකෘතියෙන් ගබඩා කෙරේ. සෑම document එකක්ම ස්වයං අන්තර්ගත වන අතර, ඒවායේ ව්‍යුහය එකිනෙකට වෙනස් විය හැක. මෙය නම්‍යශීලී දත්ත ආකෘති සඳහා ඉතා සුදුසුය.

භාවිතා කරන අවස්ථා: Content management systems, e-commerce නිෂ්පාදන නාමාවලි, පරිශීලක පැතිකඩ (user profiles).

2. Key-Value Stores උදා: Redis

මෙය සරලම NoSQL වර්ගයයි. සෑම දත්තයක්ම අද්විතීය "යතුරක්" (key) සහ ඊට අදාළ "අගයක්" (value) ලෙස ගබඩා කෙරේ. මෙය ශබ්දකෝෂයක් වැනිය; යතුර (වචනය) ලබා දුන් විට, අගය (තේරුම) ඉතා වේගයෙන් ලබා ගත හැක.

භාවිතා කරන අවස්ථා: Caching (නිතර භාවිතා කරන දත්ත තාවකාලිකව ගබඩා කිරීම), User session management, Real-time leaderboards.

3. Column-Family Stores උදා: Apache Cassandra

සම්ප්‍රදායික දත්ත සමුදා මෙන් පේළි (rows) වශයෙන් දත්ත ගබඩා කරනවා වෙනුවට, මෙහිදී තීරු (columns) වශයෙන් දත්ත ගබඩා කරයි. විශාල දත්ත ප්‍රමාණයක් මත විශ්ලේෂණාත්මක විමසුම් (analytical queries) සිදු කිරීමේදී මෙය අතිශය කාර්යක්ෂම වේ.

භාවිතා කරන අවස්ථා: Big Data analytics, Log data analysis, Time-series data (උදා: කාලගුණ දත්ත).

4. Graph Databases උදා: Neo4j

දත්ත අතර ඇති සංකීර්ණ සම්බන්ධතා (relationships) ගබඩා කිරීම සහ විමසීම සඳහාම විශේෂයෙන් නිර්මාණය කර ඇත. මෙහිදී දත්ත "nodes" (entities) ලෙසත්, ඒවා අතර ඇති සම්බන්ධතා "edges" ලෙසත් නිරූපණය කෙරේ.

භාවිතා කරන අවස්ථා: සමාජ ජාල (Social networks - "friend of a friend" සෙවීම), Recommendation engines (Amazon හි "Customers who bought this also bought..."), වංචා හඳුනාගැනීම (fraud detection).

SQL ද? NoSQL ද? - නිවැරදි තේරීම

"වඩා හොඳ කුමක්ද?" යන ප්‍රශ්නයට පිළිතුර "එය ඔබ විසඳන ගැටළුව මත රඳා පවතී" යන්නයි. මේවා එකිනෙකට තරඟකරුවන් නොව, විවිධ කාර්යයන් සඳහා ඇති විවිධ මෙවලම් වේ.

බොහෝ නවීන මහා පරිමාණ යෙදුම්, මෙම ප්‍රවේශයන් දෙකම එකට භාවිතා කරයි (Polyglot Persistence). උදාහරණයක් ලෙස, මූලික පරිශීලක දත්ත සඳහා SQL ද, caching සඳහා Key-Value store එකක් ද භාවිතා කළ හැක.

දැන් අපි පරිගණක මතකයේ සහ ස්ථිර ආචයනයේ (persistent storage) දත්ත කළමනාකරණය කරන විවිධ ක්‍රම පිළිබඳව පුළුල් අවබෝධයක් ලබාගෙන ඇත. අපගේ ඊළඟ පියවර වන්නේ, පරිශීලකයා මෙම දත්ත දකින සහ අන්තර්ක්‍රියා කරන කොටස, එනම් වෙබ් අඩවියේ ඉදිරිපස (Frontend) නිර්මාණය කරන ආකාරය ඉගෙන ගැනීමයි. ඒ සඳහා, අපි ඊළඟ මොඩියුලයෙන් "වෙබ් සංවර්ධනයේ මූලික කරුණු (HTML, CSS, JavaScript)" සමගින් අපගේ ගමන ඉදිරියට ගෙන යමු.