പ്രവീൺ പതിയിൽ
വസ്തുതകളുടെ അല്ലെങ്കിൽ വിവരങ്ങളുടെ ശേഖരണം (data collection) കാലാകാലങ്ങളായി നടക്കുന്ന ഒന്നാണ്. ജനസംഖ്യാകണക്കുകൾ, വ്യാപാര വിനിമയ കണക്കുകൾ എന്നിവ വിവര ശേഖരണത്തിന് ഉദാഹരണങ്ങളാണ്. കമ്പ്യൂട്ടറുകളുടെ ആവിർഭാവത്തോടെ വിവരശേഖരണം ഡിജിറ്റൽ രൂപത്തിലായി, ശേഖരിച്ച വിവരങ്ങൾ വിശകലനം ചെയ്യുന്നതിന്റെ ആക്കവും കൂടി. ഇന്റർനെറ്റിന്റെയും സോഷ്യൽ മീഡിയയുടെയും ഉപയോഗത്തിൽ സാരമായ വർദ്ധനവ് ഉണ്ടായ കഴിഞ്ഞ കുറെ വർഷങ്ങളിൽ വിവരശേഖരണം അഭൂതപൂർവമായ നിലയിൽ വളർന്നു. ആ വളർച്ച ‘ബിഗ് ഡേറ്റ’ എന്ന വാക്കിന് നമ്മുടെ പദാവലിയിൽ ഇടം നേടി കൊടുത്തു. ഗൂഗിളും ഫേസ്ബുക്കും ഇൻസ്റ്റാഗ്രാമുമൊക്കെ ഉപയോഗിക്കുന്ന നമ്മൾ ബിഗ് ഡേറ്റയുടെ ഉപഭോക്താക്കളാണ്. ബിഗ് ഡേറ്റ എന്ന പദം കൊണ്ട് ഉദ്ദേശിക്കുന്നതെന്താണ്, ഡേറ്റ എങ്ങനെ ബിഗ് ഡേറ്റ ആവുന്നു എന്നതിനെ കുറിച്ച് ലളിതമായ ഒരു അവലോകനം ആണ് ഇവിടെ.
ബിഗ് ഡേറ്റയിലേക്ക് കടക്കുന്നതിന് മുൻപ് ‘ഡേറ്റ’ എന്ന ആശയത്തെ സൂക്ഷ്മമായി ഒന്ന് പരിശോധിക്കാം. അതിനായി നമുക്ക് ഒരു കൊച്ച് വിവരശേഖരം (dataset) ഉണ്ടാക്കണം. ഒരു ക്ലാസ്സിലെ വിദ്യാർത്ഥികളെ കുറിച്ച് നമ്മൾ ചില വിവരങ്ങൾ ശേഖരിച്ചു എന്ന് കരുതുക – അവരുടെ പേര്, വയസ്സ്, റോൾ നമ്പർ, ചില ഇഷ്ടാനിഷ്ടങ്ങൾ. ഈ വിവരങ്ങളെ പട്ടികയുടെ രൂപത്തിലാക്കിയാൽ താഴെ കാണുന്നത് പോലെയാവും അത്.
പേര് | വയസ്സ് | റോൾ നമ്പർ | ഉയരം (cm) | തൂക്കം (kg) | ഇഷ്ട വിഷയം | ഇഷ്ട നിറം |
അനിൽ | 12 | 100 | 155 | 50 | മലയാളം | നീല |
മിനി | 11 | 101 | 148 | 45 | കണക്ക് | പച്ച |
നസിയ | 12 | 102 | 152 | 48 | ഇംഗ്ലീഷ് | നീല |
രഞ്ജിത്ത് | 11 | 103 | 150 | 52 | സയൻസ് | ചുവപ്പ് |
കംപ്യൂട്ടറുകളിൽ ഡേറ്റ സൂക്ഷിക്കുന്നത് പ്രധാനമായും മുകളിൽ കാണുന്ന പോലെ പട്ടികകളുടെ രൂപത്തിലാണ് (tabular format). ഇത്തരത്തിൽ വിവരങ്ങൾ ശേഖരിച്ച് വെക്കാൻ സഹായിക്കുന്ന സോഫ്റ്റ്വെയറുകളെ ഡേറ്റാബേസ് എന്ന് വിളിക്കും. വിവര ശേഖരണം മാത്രമല്ല, ചോദ്യങ്ങൾക്കുള്ള ഉത്തരങ്ങൾ നൽകാനും ഡേറ്റാബേസുകൾക്ക് കഴിയും. “നീല നിറം ഇഷ്ടമുള്ള കുട്ടികൾ ആരൊക്കെ” എന്ന് ചോദിച്ചാൽ “അനിൽ”, “നസിയ” എന്ന് നമുക്ക് മറുപടി കിട്ടും. ഡേറ്റാബേസുകളോട് ഇത്തരത്തിൽ ചോദ്യം ചോദിക്കുന്നതിന് ഉപയോഗിക്കുന്ന ഭാഷയെ SQL (Structured Query Language) എന്ന് വിളിക്കും.
ഡാറ്റയുടെ വലിപ്പം
കംപ്യൂട്ടറുകളിൽ വിവരങ്ങൾ സൂക്ഷിച്ച് വെക്കുന്നത് ഹാർഡ് ഡിസ്കിലാണ് എന്ന് എല്ലാവർക്കും അറിയുന്നതാണ്. ഒരു കുട്ടിയുടെ വിവരങ്ങൾ സൂക്ഷിക്കാൻ ഹാർഡ് ഡിസ്കിൽ എത്ര സ്ഥലം വേണ്ടി വരും? അതിനുള്ള ഉത്തരം കണ്ടുപിടിക്കാൻ ഇത് ഏത് രൂപത്തിൽ സൂക്ഷിക്കപ്പെടുന്നു എന്ന് മനസ്സിലാക്കണം. കംപ്യൂട്ടറുകളിൽ വിവരങ്ങൾ സൂക്ഷിക്കപ്പെടുന്നത് പൂജ്യത്തിന്റെയും ഒന്നിന്റെയും രൂപത്തിലാണ്. അതിന്റെ ഏറ്റവും ചെറിയ രൂപമാണ് ഒരു പൂജ്യമോ ഒന്നോ ആകാവുന്ന ഒരു ബിറ്റ് (bit). അങ്ങനെയുള്ള 8 ബിറ്റുകൾ ചേരുമ്പോൾ ഒരു ബൈറ്റ് (byte) ആയി, ആയിരത്തി ഇരുപത്തിനാല് ബൈറ്റുകൾ ചേർന്നാൽ ഒരു കിലോ ബൈറ്റ് (kilo byte – KB). ഹാർഡ് ഡിസ്കിൽ സൂക്ഷിക്കപ്പെടുന്ന വിവരത്തിന്റെ അളവുകളെ പറ്റി മനസ്സിലാക്കാൻ താഴെ കൊടുത്തിട്ടുള്ള പട്ടിക സഹായകമാവും. വിവരങ്ങൾ സൂക്ഷിക്കാൻ ഓരോ അക്ഷരത്തിനും ഒന്ന് മുതൽ നാല് ബൈറ്റ് വരെ വേണ്ടി വരും. അപ്പോൾ നമ്മൾ ഉണ്ടാക്കിയ പട്ടികയിലെ ഒരു കുട്ടിയുടെ വിവരങ്ങൾ സൂക്ഷിക്കാൻ ഏകദേശം നൂറ് ബൈറ്റ്. പത്ത് കുട്ടികളുടെ വിവരങ്ങൾ സൂക്ഷിക്കാൻ ഒരു കിലോ ബൈറ്റ് (KB).
1024 byte | 1 Kilo Byte (KB) | ഈ ലേഖനം ടെക്സ്റ്റ് ഫയൽ രൂപത്തിൽ – ~50 KB |
1024 KB | 1 Mega Byte (MB) | MP3 രൂപത്തിലുള്ള ഒരു പാട്ട് – ~5 MB |
1024 MB | 1 Giga Byte (GB) | MP4 രൂപത്തിലുള്ള ഒരു സിനിമ – ~2 GB |
1024 GB | 1 Tera Byte (TB) | 500 സിനിമകൾ അല്ലെങ്കിൽ 12 MP കാമറകൊണ്ടെടുത്ത 2.5 ലക്ഷം ഫോട്ടോകൾ |
ഇങ്ങനെ നാം ശേഖരിക്കുന്ന ഡാറ്റ ബിഗ് ഡാറ്റ ആവുന്നത് എങ്ങനെയാണ്? ആ മാറ്റത്തിന് ഒരു കാരണം വിവര ശേഖരത്തിൻ്റെ വലിപ്പം തന്നെ ആണ്. അതിന് കൃത്യമായ അളവോ മാനദണ്ഡങ്ങളോ ഇല്ലെങ്കിലും പൊതുവിൽ നൂറ് കണക്കിന് ടെറാ ബൈറ്റ് (TB) എങ്കിലും വലുപ്പമുള്ള വിവര ശേഖരത്തെ ആണ് ‘ബിഗ് ഡേറ്റ’ എന്ന് വിളിക്കുന്നത്. നമ്മൾ ഉണ്ടാക്കിയ കുട്ടികളുടെ വിവര ശേഖരത്തെ ഒരു ടെറാ ബൈറ്റ് ആക്കണമെങ്കിൽ നമുക്ക് ആയിരം കോടി (10,000,000,000) കുട്ടികളുടെ വിവരങ്ങൾ ശേഖരിക്കേണ്ടി വരും. വെറും ഏഴ് നിരകളുള്ള നമ്മുടെ പട്ടിക ഒരു ഉദാഹരണത്തിനായി ഉണ്ടാക്കിയതാണ്. ഓരോ കുട്ടിയെ കുറിച്ചും ധാരാളം വിവരങ്ങൾ ശേഖരിച്ച് വെച്ചാലേ പ്രായോഗിക ജീവിതത്തിൽ അതിൽ നിന്ന് ഉപകാരമുണ്ടാവൂ. കേരളത്തിൽ വിദ്യാർത്ഥികളുടെ എണ്ണം 50 ലക്ഷത്തിൽ താഴെയാണ്. അത്രയും കുട്ടികളെ കുറിച്ചുള്ള എല്ലാ വിവരങ്ങളും ശേഖരിച്ചാൽ അത് ടെറാ ബൈറ്റ് വലുപ്പമെത്താനാണ് സാധ്യത.
ഡാറ്റയുടെ ഘടന
എന്നാൽ വലിപ്പം മാത്രമല്ല ഡേറ്റയെ ബിഗ് ഡേറ്റ ആക്കുന്നത്. ആ മാറ്റത്തിന് മറ്റൊരു പ്രധാന കാരണം വിവരത്തിന്റെ ഘടനയാണ്. നമ്മൾ കണ്ട വിവര ശേഖരം പട്ടിക രൂപത്തിലായിരുന്നു. പട്ടികയുടെ തലക്കെട്ട് (header) ഏതെല്ലാം നിരകളാണ് ഉള്ളതെന്ന് പറയുന്നു. ഓരോ വരിയിലും ഉള്ള വിവരങ്ങൾ ആ നിരകളുടെ ക്രമത്തിൽ രേഖപ്പെടുത്തിയിരിക്കുന്നു. ഈ ഘടനയുടെ കാർക്കശ്യം സൃഷ്ടിക്കുന്ന ചില ബുദ്ധിമുട്ടുകളുണ്ട്. അതെന്താണെന്ന് മനസ്സിലാക്കാൻ നമുക്ക് കുട്ടികളെ കുറിച്ചുള്ള അവരുടെ വിവരണം കൂടി പട്ടികയിലേക്ക് ചേർക്കാൻ ശ്രമിക്കാം. ആ ചോദ്യവുമായി നമ്മൾ കുട്ടികളെ സമീപിക്കുന്നു. അതിന് അനിലിന്റെ മറുപടി: “എനിക്ക് രണ്ട് സഹോദരങ്ങളുണ്ട്, എനിക്ക് വായനയും പാട്ടും ഇഷ്ടമാണ്”. എന്നാൽ നസിയ പറഞ്ഞതോ: “ഞാൻ താമസിക്കുന്നത് വാടക വീട്ടിലാണ്. എനിക്ക് കരാട്ടെ ഇഷ്ടമാണ്”.
എന്താണ് ഈ ഉത്തരങ്ങൾ നമുക്കുണ്ടാക്കുന്ന വെല്ലുവിളി? ഒന്നാമതായി, ഇരുവരുടെയും ഉത്തരങ്ങൾ ഒരേ നിരകൾക്കുള്ളിൽ നിൽക്കുന്നതല്ല. അതിന് പുറമെ, ഒരാളുടെ ഉത്തരത്തിൽ ഒരേ നിരയ്ക്കകത്ത് ഒന്നിലധികം കാര്യങ്ങൾ ഉൾക്കൊള്ളിക്കേണ്ടി വരുന്നു. ഈ പ്രശ്നങ്ങളെ നമ്മൾ എങ്ങനെ പരിഹരിക്കും?
അതിനുള്ള ഉപായത്തിനായി നമുക്ക് അനിലിന്റെ വിവരങ്ങൾ ഇപ്പോൾ ശേഖരിച്ചിരിക്കുന്നതെങ്ങനെ എന്ന് നോക്കാം.
പേര് | വയസ്സ് | റോൾ നമ്പർ | ഉയരം (cm) | തൂക്കം (kg) | ഇഷ്ട വിഷയം | ഇഷ്ട നിറം |
അനിൽ | 12 | 100 | 155 | 50 | മലയാളം | നീല |
ഇതേ വിവരങ്ങൾ അല്പം വ്യത്യസ്തമായ രീതിയിലും നമുക്ക് പ്രതിനിധാനം ചെയ്യാം:
{
“പേര്” : “അനിൽ”,
“വയസ്സ്” : 12,
“റോൾ നമ്പർ” : 100,
“ഉയരം” : 155,
“തൂക്കം” : 50,
“ഇഷ്ട വിഷയം” : “മലയാളം”,
“ഇഷ്ട നിറം” : “നീല”
}
രണ്ടിലും അടങ്ങിയിരിക്കുന്ന വിവരങ്ങൾ ഒന്ന് തന്നെ ആയത് കൊണ്ട് എന്താണ് രണ്ടാമത്തെ പ്രതിനിധാന രീതിയുടെ ഗുണം? അത് പറയുന്നതിന് മുൻപ് ഈ പ്രതിനിധാന രീതിയിൽ (representation format) കുട്ടികൾ അവരവരെ കുറിച്ച് പറഞ്ഞ വിവരങ്ങൾ കൂടി ചേർത്ത് നോക്കാം:
{
“പേര്” : “അനിൽ”,
“വയസ്സ്” : 12,
“റോൾ നമ്പർ” : 100,
“ഉയരം” : 155,
“തൂക്കം” : 50,
“ഇഷ്ട വിഷയം” : “മലയാളം”,
“ഇഷ്ട നിറം” : “നീല”
“വിവരണം” : {
“സഹോദരങ്ങൾ” : 2,
“ഇഷ്ട വിനോദങ്ങൾ” : [ “വായന”, “പാട്ട്” ]
}
},
{
“പേര്” : “നസിയ”,
“വയസ്സ്” : 12,
“റോൾ നമ്പർ” : 102,
“ഉയരം” : 152,
“തൂക്കം” : 48,
“ഇഷ്ട വിഷയം” : “ഇംഗ്ലീഷ്”,
“ഇഷ്ട നിറം” : “നീല”
“വിവരണം” : {
“താമസം” : “വാടക വീട്”,
“ഇഷ്ട വിനോദങ്ങൾ” : [ “കരാട്ടെ” ]
}
},
]
ഈ പ്രതിനിധാന രീതി “സ്വയം വിവരിക്കുന്നതാണ്” (self describing) എന്ന് വേണമെങ്കിൽ പറയാം. എന്തെല്ലാം കാര്യങ്ങളാണ് ലഭ്യമെന്ന് ഓരോ കുട്ടിയുടെ വിവരത്തിനോടൊപ്പവും കുറിച്ചിട്ടുണ്ട്. വിശദാംശങ്ങളിലേക്ക് പോകേണ്ട സാഹചര്യങ്ങളിൽ കൂടുതൽ ആഴത്തിലേക്ക് പോകാനുള്ള (nesting) അവസരമുണ്ട്. ഒന്നിലധികം ഉത്തരങ്ങളുള്ള ഇനങ്ങളെ ഒരു ശ്രേണി (array) പോലെ രേഖപ്പെടുത്താം. ഈ പ്രതിനിധാന രീതിയെ ‘ജേസൺ’ (JSON – ജാവ സ്ക്രിപ്റ്റ് ഒബ്ജക്റ്റ് നൊട്ടേഷൻ) എന്നാണ് പറയുക. ബിഗ് ഡാറ്റയ്ക്ക് വേണ്ടി ഉണ്ടാക്കിയതല്ല ജേസൺ. സെർവറുകളിൽ നിന്ന് ബ്രൗസറുകളിലേക്ക് വിവരങ്ങൾ കൈമാറാനായി ഉണ്ടാക്കിയ ഒരു പ്രതിനിധാന രീതിയാണ് ഇത്. ഇതിന്റെ ആകർഷണീയമായ വഴക്കം കൊണ്ട് ഇത് ബിഗ് ഡാറ്റ അടക്കം പല മേഖലകളിലും പ്രചാരം നേടി എന്ന് മാത്രം. നമ്മൾ ആദ്യം കണ്ട പട്ടിക രൂപത്തിലുള്ള ഡേറ്റയെ ‘ഘടനയുള്ള ഡേറ്റ’ (structured data) എന്നും രണ്ടാമത് ജേസൺ രൂപത്തിലുള്ള ഡേറ്റയെ ‘ഭാഗികമായി ഘടനയുള്ള ഡേറ്റ’ (semi-structured data) എന്നും വിളിക്കും.
വിദ്യാഭ്യാസത്തിന്റെ ഭാഗമായി ഒരു വർഷം അനിൽ എന്തെല്ലാം ചെയ്യുമായിരിക്കും? നോട്ടുകൾ എഴുതും, പുസ്തകങ്ങൾ വായിച്ച് കുറിപ്പുകൾ എഴുതും, പാട്ടുകൾ കുറിക്കും, പരീക്ഷ എഴുതും, ശിശുദിനത്തിൻ്റെ ഭാഗമായി പോസ്റ്റർ ഉണ്ടാക്കും – ഇങ്ങനെ പലതും. ആ സാമഗ്രികള് എല്ലാം നമ്മൾ ശേഖരിച്ചാൽ അതിന് എന്ത് ഘടനയുണ്ടാവും? ഇതിനെല്ലാമായി പൊതുവായി ഒരു ഘടന സങ്കൽപ്പിക്കാൻ പ്രയാസമാണ്. അത്തരം വിവരങ്ങളുടെ ശേഖരത്തെ “ഘടനയില്ലാത്ത ഡേറ്റ” (unstructured data) എന്ന് പറയും. സാധാരണ ഗതിയിൽ, ഡേറ്റ ഘടനയുള്ള ഡേറ്റ ആണ്. വളരെ കൃത്യമായി നിർവചിച്ചിട്ടുള്ള ചട്ടക്കൂടുകൾക്കുള്ളിൽ നിൽക്കുന്ന വിവര ശേഖരങ്ങൾ. എന്നാൽ സ്മാർട്ട് ഫോണുകളുടെയും സോഷ്യൽ മീഡിയയുടെയും പ്രചാരത്തിൽ, ഇന്ന് ശേഖരിക്കപ്പെടുന്ന വിവരങ്ങൾ അത്തരമൊരു ചട്ടക്കൂടിനകത്ത് നിൽക്കുന്നതല്ല. ആ വലിയ ബിഗ് ഡേറ്റ ശേഖരങ്ങളെല്ലാം ഭാഗികമായി ഘടനയുള്ള ഡേറ്റയോ ഘടനയില്ലാത്ത ഡേറ്റയോ ആണ്. വലിപ്പത്തിനപ്പുറം ഡേറ്റ ബിഗ് ഡേറ്റ ആവുന്നത് ഘടനയിലുള്ള ഈ ഇളവുകളിലാണ്.
പട്ടികകളെപ്പോലെ ഘടനയുള്ള ഡേറ്റ ശേഖരിച്ച് വെക്കാൻ സഹായിക്കുന്ന സോഫ്റ്റ്വെയറുകളെ ഡേറ്റാബേസ് (DB) എന്നാണ് വിളിക്കുക എന്ന് നേരത്തെ പറഞ്ഞിരുന്നു. കുറച്ച് കൂടെ കൃത്യമായി പറഞ്ഞാൽ ‘റിലേഷനൽ ഡേറ്റാബേസ്’. വിവരങ്ങളിൽ ഉള്ള പരസ്പര ബന്ധത്തെ (relations) കൃത്യമായ നിയമങ്ങൾ അനുസരിച്ച് ശേഖരിച്ച് സൂക്ഷിക്കുന്നത് കൊണ്ടാണ് ആ പേര്. അതിനോട് ചോദ്യങ്ങൾ ചോദിക്കുന്ന ഭാഷയെ SQL (Structured Query Language) എന്നും. ഭാഗികമായി ഘടനയുള്ള ഡേറ്റയോ ഘടനയില്ലാത്ത ഡേറ്റയോ ഇത്തരം ഡേറ്റാബേസുകളിൽ ശേഖരിക്കാൻ കഴിയില്ല. അതിനായി ഒരു പുതിയ കൂട്ടം സോഫ്റ്റ്വെയറുകൾ ആളുകൾ കണ്ടുപിടിച്ചിട്ടുണ്ട് – അവയെ പൊതുവിൽ No-SQL ഡേറ്റാബേസുകൾ എന്നോ No-SQL ഡേറ്റാസ്റ്റോറുകൾ എന്നോ വിളിക്കും. പട്ടികകളുടെ ഘടനയിലല്ല, SQL ഭാഷ ഉപയോഗിച്ച് ഇവയോട് നേരിട്ട് ചോദ്യങ്ങൾ ചോദിക്കാൻ പറ്റില്ല എന്നെല്ലാമാണ് ആ പേരുകൊണ്ട് സൂചിപ്പിക്കുന്നത്. ബിഗ് ഡേറ്റ വിവര ശേഖരങ്ങളെല്ലാം സൂക്ഷിച്ച് വെക്കുന്നത് ഇത്തരം No-SQL ഡേറ്റാസ്റ്റോറുകളിലാണ്.
ഡാറ്റയുടെ വിഭജനം / വിതരണം
നമ്മൾ ആദ്യം ചർച്ച ചെയ്ത, ഡേറ്റയുടെ വലിപ്പത്തിലേക്ക് ഒന്ന് കൂടെ പോകാം. കംപ്യൂട്ടറുകളുടെ ഹാർഡ് ഡിസ്കിൽ സൂക്ഷിച്ചിരിക്കുന്ന വിവരങ്ങൾ വിശകലനം ചെയ്യണമെങ്കിൽ അതിനെ മെമ്മറിയിലേക്ക് മാറ്റണം. ഓരോ കംപ്യൂട്ടറിലും ഉള്ള ഹാർഡ് ഡിസ്കിന്റെയും മെമ്മറിയുടെയും അളവ് പരിമിതമാണ്. ടെറാ ബൈറ്റ് അളവിൽ ഡിസ്കും ഗീഗാ ബൈറ്റ് അളവിൽ മെമ്മറിയും ആണ് ഒരു കമ്പ്യൂട്ടറിൽ ഉണ്ടാവുക. അപ്പോൾ നൂറു കണക്കിന് ടെറാ ബൈറ്റ് അളവിൽ ഉള്ള ബിഗ് ഡേറ്റ വിവര ശേഖരങ്ങൾ എങ്ങനെ സൂക്ഷിച്ച് വെക്കും?
വിവര ശേഖരങ്ങളുടെ വലിപ്പത്തിനനുസരിച്ച് വലിയ വലിയ കംപ്യൂട്ടറുകൾ ഉപയോഗിക്കുക എന്നതായിരുന്നു മുൻപുണ്ടായിരുന്ന രീതി – വളരെ വലിയ പെട്ടി ഉല്ലാസയാത്രക്ക് കൊണ്ടുപോകുന്ന പോലെ. ഈ ശേഖരങ്ങളുടെ വലിപ്പം അനിയന്ത്രിതമായി കൂടാൻ തുടങ്ങിയപ്പോൾ ആ രീതി പ്രായോഗികമല്ലാതാവാൻ തുടങ്ങി. വളരെ വലിയ പെട്ടി എടുത്ത് പൊക്കാൻ ശ്രമിക്കുന്ന പോലെയാണ് ഹാർഡ് ഡിസ്കിൽ നിന്ന് വളരെ വലിയ വിവരശേഖരം മെമ്മറിയിലേക്ക് നീക്കാൻ നോക്കുന്നത്. അത് പോലെ വളരെ വലിയ കംപ്യൂട്ടറുകൾക്ക് സ്ഥിതി ചെയ്യാനുള്ള സൗകര്യം ഉണ്ടാക്കുക എന്നത് എളുപ്പമല്ല. ഈ ശേഖരങ്ങൾ കഷ്ണങ്ങളാക്കി പല കംപ്യൂട്ടറുകളിൽ സൂക്ഷിച്ചാലോ എന്ന വിപ്ലവകരമായ ചിന്ത വന്നത് അപ്പോഴാണ്. പെട്ടിയും വസ്ത്രങ്ങളുമൊക്കെ ഉദാഹരണമായി ആലോചിച്ചാൽ എന്താണ് ഈ ചിന്തയിൽ ഇത്ര വലിയ വിപ്ലവം എന്ന് തോന്നാം. നമുക്ക് ചുറ്റുപാടുമുള്ള ലളിതമായ വസ്തുതകളെ കഠിനമായ ചോദ്യങ്ങളുടെ ഉത്തരങ്ങളായി കാണൽ ഒരു കഴിവാണ്. ആപ്പിൾ വീഴുന്നത് കണ്ട പലരും ഉണ്ടെങ്കിലും അതിനെ ഗുരുത്വാകർഷണവുമായി ആദ്യമായി ബന്ധപ്പെടുത്തിയത് ന്യൂട്ടൺ ആണല്ലോ (ആ കഥ ശരിയാണോ എന്ന് ഉറപ്പില്ല). എന്തായാലും ഇന്നത്തെ ബിഗ് ഡേറ്റ വ്യാപനം ഈ ആശയത്തോട് കടപ്പെട്ടിരിക്കുന്നു. ഒന്നിലധികം കംപ്യൂട്ടറുകളിലെ ഹാർഡ് ഡിസ്കുകളിലായി ഡേറ്റ സൂക്ഷിക്കുക എന്ന ആശയം നടപ്പാക്കുന്ന സോഫ്റ്റ്വെയർ ആണ് ‘ഹഡൂപ്‘. താരതമ്യേന വില കുറഞ്ഞ നൂറോ ആയിരമോ പതിനായിരമോ കംപ്യൂട്ടറുകളിൽ ആണ് ഇന്നത്തെ വലിയ ബിഗ് ഡേറ്റ ശേഖരങ്ങളെല്ലാം.
വിവര ശേഖരണത്തിനോട് കൈകോർത്ത് നിൽക്കുന്ന ഒരു പ്രവൃത്തി ആണ് വിവര വിശകലനം (data processing or data analysis). കുട്ടികളുടെ വിവരങ്ങൾ ഉള്ള ഡേറ്റാബേസിനോട് നമ്മൾ ആദ്യം ഒരു ചോദ്യം ചോദിച്ചിരുന്നു: “നീല നിറം ഇഷ്ടമുള്ള കുട്ടികൾ ആരൊക്കെ” എന്ന്. കുട്ടികളുടെ വിവരങ്ങൾ പല കംപ്യൂട്ടറുകളിൽ ആയി പരന്ന് കിടക്കുകയാണെങ്കിൽ ആ ചോദ്യത്തിന്റെ ഉത്തരം അവരെല്ലാം ചേർന്ന് കണ്ടുപിടിക്കേണ്ടി വരും. നമ്മുടെ പെട്ടികളിലേക്ക് ഒന്ന് തിരിച്ച് പോവാം. യാത്രക്കിറങ്ങാൻ നേരത്ത് ബാറ്ററി ഇട്ടിട്ടുള്ള കളിപ്പാട്ടങ്ങൾ വിമാനത്തിൽ കയറ്റാൻ പാടില്ല എന്ന് അമ്മക്ക് ഓർമ വന്നു. കളിപ്പാട്ടങ്ങൾ ഒന്നിലധികം ബാഗുകളിൽ ഉണ്ട് – ഏതെക്കെയാണെന്ന് ഇപ്പോൾ ഓർമയില്ല. സമയം വൈകുന്നു, പുറത്ത് ടാക്സി ഡ്രൈവർ അക്ഷമനാവുന്നു. അമ്മ കുട്ടികളോട് പറയുന്നു: “നിങ്ങൾ മൂന്നാളും നിങ്ങളുടെ കയ്യിലുള്ള പെട്ടി തുറന്ന് ബാറ്ററി ഇട്ടിട്ടുള്ള കളിപ്പാട്ടങ്ങൾ ഉണ്ടെങ്കിൽ അത് എടുത്ത് മാറ്റൂ”. കുട്ടികൾ മൂന്നാളും ഒരേ സമയത്ത് പെട്ടികളിൽ തിരയുന്നത് കൊണ്ട് ആ പ്രക്രിയ വേഗം നടക്കും.
“നീല നിറം ഇഷ്ടമുള്ള കുട്ടികൾ ആരൊക്കെ” എന്ന ചോദ്യം ഒരു പറ്റം കംപ്യൂട്ടറുകളോട് ചോദിക്കുന്നത് ഇത് പോലൊരു പ്രക്രിയയാണ്. ഒരു കേന്ദ്ര കമ്പ്യൂട്ടർ ഈ ചോദ്യം വിവര ശേഖരത്തിൻ്റെ കഷ്ണങ്ങളുള്ള എല്ലാ കംപ്യൂട്ടറുകളോടും ചോദിക്കുന്നു. അവരെല്ലാം അവരവരുടെ ഡിസ്കിൽ നീല നിറം ഇഷ്ടമുള്ള കുട്ടികളെ കണ്ടെത്തുന്നു. അവസാനം അത്തരം എല്ലാ കുട്ടികളുടെയും ലിസ്റ്റ് കേന്ദ്ര കമ്പ്യൂട്ടറിന് കൈമാറുന്നു. പല കംപ്യൂട്ടറുകൾ ഒരേ സമയത്ത് ഒരേ ജോലിയുടെ ഭാഗങ്ങൾ ചെയ്യുന്നത് കൊണ്ട് മുഴുവൻ ജോലി താരതമ്യേന വേഗത്തിൽ ചെയ്ത് തീർക്കാൻ കഴിയും. ഇത്തരത്തിൽ ഒരേ ചോദ്യം പല കമ്പ്യൂട്ടറുകൾക്ക് കൈമാറാനും ഉത്തരങ്ങൾ തിരിച്ച് ശേഖരിക്കാനുമുള്ള ഉപാധികൾ ബിഗ് ഡേറ്റ വിവര വിശകലനത്തിന്റെ പ്രധാന ഭാഗമാണ്. ‘ഹഡൂപിൽ’ ശേഖരിച്ചിട്ടുള്ള വിവരങ്ങളിൽ ഇങ്ങനെ വിതരണ രൂപത്തിൽ വിശകലനം ചെയ്യാൻ (distributed processing) സഹായിക്കുന്ന ഒരു ഉപാധിയാണ് ‘സ്പാർക്.
കുറച്ച് സാങ്കേതിക പദങ്ങളെക്കുറിച്ച് കൂടെ പറയട്ടെ. നമുക്ക് ചുറ്റുമുള്ള വസ്തുക്കളെ ‘പരിസ്ഥിതി’ എന്ന് പൊതുവിൽ വിളിച്ച് നമുക്ക് ശീലമുണ്ട് – ഇംഗ്ലീഷിൽ ‘എൻവയൺമെൻറ്’ അഥവാ ‘ഇക്കോ സിസ്റ്റം’. ഒരു പ്രത്യേക കാര്യം ചെയ്യാൻ ഉപയോഗിക്കുന്ന ഉപാധികൾ (tools) എല്ലാം ചേർത്ത് പരാമർശിക്കാൻ ‘ഇക്കോ സിസ്റ്റം’ എന്ന വാക്ക് തന്നെയാണ് ഉപയോഗിക്കുന്നത്. അപ്പോൾ ‘ബിഗ് ഡേറ്റ’ ഇക്കോ സിസ്റ്റത്തിൽ പെടുന്ന ഉപാധികളാണ് ഹഡൂപും സ്പാർക്കും എല്ലാം. നേരത്തേ, പറഞ്ഞ ‘വിതരണ രൂപത്തിൽ വിശകലനം’ ചെയ്യുക (ഡിസ്ട്രിബ്യുട്ടഡ് പ്രോസസ്സിംഗ്) എന്നതിന് സമാനമായ ഒരു പദമാണ് ‘സമാന്തര വിശകലനം’ അഥവാ ‘പാരലൽ പ്രോസസ്സിംഗ്. പല കംപ്യൂട്ടറുകൾ ഒരേ സമയത്ത് ചെയ്യുന്ന ജോലി എന്ന അർത്ഥത്തിലാണ് ആ വാക്ക് ഉപയോഗിക്കുന്നത് (മുന്നോട്ട് പോകുന്ന ഒരു രേഖയാണ് സമയമെങ്കിൽ, ഈ കംപ്യൂട്ടറുകളിൽ നടക്കുന്ന ജോലികളെ അതേ സമയത്തിലുള്ള സമാന്തര രേഖകളായി കാണാം എന്നർത്ഥം). ക്ലസ്റ്റർ എന്ന വാക്ക് കോവിഡ് നമുക്ക് പരിചിതമാക്കി തന്ന ഒന്നാണ് – ഒരു സ്ഥലത്ത് അടുത്തടുത്തായി സ്ഥിതി ചെയ്യുന്ന രോഗികൾ എന്ന നിലയിൽ. അത് പോലെ അടുത്തടുത്തായി സ്ഥിതിചെയ്യുന്ന കമ്പ്യൂട്ടറുകൾ ചേർന്ന് ഒരു ജോലി ചെയ്യുകയാണെങ്കിൽ അതിനെ ക്ലസ്റ്റർ കമ്പ്യൂട്ടിങ് എന്ന് പറയും. ബിഗ് ഡേറ്റ വിശകലനത്തിനെ കുറിച്ച് പരാമർശിക്കുമ്പോൾ ആ വാക്കും ചിലപ്പോൾ കേൾക്കാം.
ഡാറ്റയുടെ പ്രവേഗം
അവസാനമായി ബിഗ് ഡാറ്റയുടെ മറ്റൊരു സവിശേഷത കൂടി നോക്കാം – പ്രവേഗം (velocity). ഏതാനും വർഷങ്ങൾക്ക് മുൻപ് വരെ ഡാറ്റയുടെ ഉല്പാദനം താരതമ്യേന മന്ദഗതിയിലായിരുന്നു. ഒടുവിൽ വളരെ വലിയൊരു ശേഖരം ആയിത്തീർന്നാലും ആ അളവിലേക്കുള്ള വളർച്ച പതുക്കെയായിരുന്നു. ഇത്തരം ശേഖരത്തിലെ വിവരങ്ങളെ വിശകലനം ചെയ്യുമ്പോൾ മുഴുവൻ വിവരങ്ങളും ഒരുമിച്ച് പരിശോധിക്കുക എന്നതായിരുന്നു ആളുകൾ അവലംബിച്ച രീതി. ഇതിനെ ബാച്ച് പ്രോസസ്സിംഗ് (കൂട്ടത്തോടെ വിശകലനം ചെയ്യൽ) എന്ന് പറയും. എന്നാൽ ഇന്ന് ഡാറ്റയുടെ ഉല്പാദനം വളരെ ദ്രുതഗതിയിലാണ്. ഫേസ്ബുക്ക് പോസ്റ്റുകളും ട്വിറ്റർ ട്വീറ്റുകളും ഇൻസ്റ്റാഗ്രാം ചിത്രങ്ങളും ടിക് ടോക് വിഡിയോകളുമായി നമ്മളെല്ലാം ഉണ്ടാക്കുന്ന ഡാറ്റയുടെ അളവ് ഭാവനയ്ക്ക് അതീതമായി വളർന്നുകൊണ്ടിരിക്കുകയാണ്. ഇത്തരം ഡാറ്റയുടെ വിശകലനം അത് ഉല്പാദിപ്പിക്കപ്പെടുന്ന മുറയ്ക്ക് നടക്കേണ്ടുന്ന ഒരു പ്രക്രിയയാണ്. ഇതിനെ സ്ട്രീം പ്രോസസ്സിംഗ് എന്ന് പറയും. ഒരു പുഴ പോലെ ഒഴുകി വരുന്ന ഡാറ്റയെ ആ ഒഴുക്കിനോടൊപ്പം വിശകലനം ചെയ്യൽ. ഈ രണ്ട് പ്രക്രിയയും ചെറിയ അളവിൽ നമുക്ക് പരിചയമുള്ളതാണ്. നമ്മുടെ കമ്പ്യൂട്ടറിൽ സൂക്ഷിച്ചിട്ടുള്ള ഒരു വലിയ എക്സൽ ഫയൽ തുറന്ന് പരിശോധിക്കുന്ന പോലെയാണ് ബാച്ച് പ്രോസസ്സിംഗ്. എന്നാൽ യൂട്യൂബിലോ നെറ്റ്ഫ്ലിക്സിലോ സിനിമ കാണുമ്പോൾ സംഭവിക്കുന്നത്? ആ സിനിമയുടെ തുടക്കം മുതലുള്ള ചെറിയ ചെറിയ ഭാഗങ്ങൾ സെർവറിൽ നിന്ന് നമ്മുടെ കമ്പ്യൂട്ടറിൽ എത്തുന്നു, അത് ബ്രൗസറിൽ പ്രദർശിപ്പിക്കപ്പെടുന്നു. സ്ട്രീം പ്രോസസ്സിംഗിൽ അതാണ് സംഭവിക്കുന്നത്.
എന്താണ് ഡാറ്റയുടെ പ്രവേഗം ഉയർത്തുന്ന വെല്ലുവിളി എന്ന് മനസ്സിലാക്കാൻ അതിൻ്റെ അളവിനെക്കുറിച്ച് നമുക്ക് ഒരു ധാരണ വേണം. ഫേസ്ബുക്കിൽ ഓരോ മിനിറ്റിലും 3 ലക്ഷത്തോളം ലൈക്കുകൾ ഉണ്ടാവുന്നു എന്നാണ് കണക്ക്. ഓരോ ലൈക്ക് ഉണ്ടാവുമ്പോഴും അത് ഏത് പോസ്റ്റിനാണെന്നും ആര് ലൈക്ക് ചെയ്തു എന്നും രേഖപ്പെടുത്തണം. ലൈക്ക് ചെയ്ത ആളുകളുടെ സുഹൃദ് വലയത്തിലേക്ക് ആ ലൈക്കിനെ കുറിച്ച് അറിയിപ്പ് (notification) കൊടുക്കണം. പൊതു പേജുകളിൽ ഏറ്റവും കൂടുതൽ ലൈക്ക് കിട്ടുന്ന പേജുകളെ ജനപ്രിയ പേജുകൾ എന്ന പേരിൽ പൊതുവേ കാണിക്കണം. ഓരോ മിനിറ്റിലും ഈ കാര്യങ്ങളെല്ലാം ലക്ഷക്കണക്കിന് പ്രാവശ്യം ചെയ്യുക എന്നത് തന്നെയാണ് ഇതിലുള്ള വെല്ലുവിളി. അതായത് സ്ട്രീം പ്രോസസ്സിംഗിൽ വിശകലനം നടക്കുന്നത് ഒരു പുഴ പോലെ വരുന്ന വിവരങ്ങളുടെ അല്ല, മറിച്ച് ഒരു സുനാമി പോലെ വരുന്ന വിവരങ്ങളുടെയാണെന്ന് ചുരുക്കം. ഹഡൂപ് ഇക്കോസിസ്റ്റത്തിൽ ഇത്തരം സ്ട്രീം പ്രോസസ്സിംഗിനുള്ള ഉപാധികളും ഉണ്ട്.
സംഗ്രഹം
ബിഗ് ഡാറ്റ ഇന്ന് നമ്മളിൽ പലരുടെയും ജീവിതത്തിനെ അറിഞ്ഞോ അറിയാതെയോ സ്പർശിക്കുന്ന ഒന്നാണ്. ഉപഭോക്താക്കൾ ബിഗ് ഡാറ്റ എന്ന ആശയത്തിന് പുറകിലുള്ളതെന്തെന്ന് ആഴത്തിൽ അറിഞ്ഞിരിക്കണമെന്നില്ല. പക്ഷെ LUCA വായനക്കാരായ കൂട്ടുകാർ സാങ്കേതികവിദ്യയുടെ ഉപഭോക്താക്കൾ മാത്രമാവേണ്ടവരല്ല. വരും കാലങ്ങളിൽ അതിൻ്റെ രീതികളെ മനസ്സിലാക്കുകയും, ചോദ്യം ചെയ്യുകയും, മാറ്റി മറിക്കുകയും ചെയ്യേണ്ടവരാണ്. അതിലേക്ക് ഒരു കൊച്ചു കാൽവെപ്പിനായി ഈ ലേഖനം സഹായകമാവും എന്ന് പ്രതീക്ഷിക്കട്ടെ.
മറ്റു ലൂക്ക ലേഖനങ്ങൾ
വളരെ ലളിതമായി അവതരിപ്പിച്ചതിൽ സന്തോഷം