Big Data – ஓர் அறிமுகம்

source – commons.wikimedia.org/wiki/File:BigData_2267x1146_white.png

நமது ஊரில் உள்ள பழக்கப்பட்ட மளிகைக் கடைக்குச் சென்று பொருட்கள் வாங்கும்போது, அந்தக் கடைக்காரருக்கு நம்மைப் பற்றிய விவரம் முழுவதும் தெரிந்திருக்கும். மேலும் அவர் நம்முடன் கொண்ட பழக்கத்தினால் நமக்கு எது பிடிக்கும் எது பிடிக்காது என்பதை சற்று கணித்து வைத்திருப்பார். எனவே நமது ரசனைக்கேற்ப அவரிடம் ஏதேனும் புது சரக்குகள் வந்து இறங்கியிருப்பின், அதனை நம்மிடம் காட்டி ‘இது உங்களுக்கு மிகவும் பிடிக்கும். பயன்படுத்தித்தான் பாருங்களேன்” என்பார். நாமும் “சரி! வாங்கித்தான் பார்ப்போமே!” என்று வாங்கிவிடுவோம். இதனால் அவரது வியாபாரமும் பெருகுகிறது, நமக்கும் நமக்கு பிடித்த பொருட்களை வாங்குவது எளிதாகிறது.

இதுபோன்ற விஷயங்களெல்லாம் இப்போது கணினி வழியே நடைபெறுகின்றன. இப்போதெல்லாம் நாம் கடைக்குச் சென்று பொருட்களை வாங்காமல் கணினி வழியே வாங்குகின்றோம். எனவே கடைக்காரருக்கோ கணினி வழியேயே நமது விவரங்களையும், நமது ரசனைகளையும் தெரிந்து கொள்ள வேண்டியது அவசியமாகிறது. உதாரணத்துக்கு Flipkart, Amazon போன்ற வலைத்தளங்களில் நாம் ஒரு கைக்கடிகாரத்தை வாங்குகிறோம் எனில், பின்னர் நாம் அடுத்த முறை அந்த வளைத்தளத்திற்குச் செல்லும்போது, புதிய அழகழகான கைக்கடிகாரங்களெல்லாம் நமக்கு விளம்பரங்களாக வரும். நாம் எந்த பொருளின்மீது அதிக விருப்பம் காட்டுகிறோமோ, அந்த பொருளும் நம் கண்ணில் அடிக்கடி தென்படுமாறு வந்துபோகும். அதாவது அந்த கடைக்காரர் கணினி வழியேயே நமது ரசனையைத் தெரிந்துகொண்டார். இதுவே ‘Machine Learning’ என்று அழைக்கப்படும். இந்த Machine Learning-ன் அடிப்படையில் அமைவதே ‘Artificial Intelligence’ ஆகும். அதாவது நமது விருப்பு வெறுப்புகளைப் பற்றிய அறிவினை கணினி செயற்கை முறையில் பெற்றுவிடுகிறது. இவையெல்லாம் எப்படி சாத்தியப்பட்டது என்று சிந்தித்துப் பார்த்தால் அவை அனைத்தும் Big Data-வின் அம்சங்களே !

ஆரம்ப காலகட்டத்தில் நமது தொழிலை திறம்பட நடத்துவதற்காக ஒருசில முக்கியமான விஷயங்களை எல்லாம் நாம் நினைவில் வைத்துக்கொண்டோம். பின்னர் நினைவில் வைத்துக்கொள்ள முடியாத அளவுக்கு விஷயங்கள் சேர்ந்து விடும்போது, அதனை ஒரு நோட்டில் எழுதி வைக்கத் தொடங்கினோம். பின்னர் நோட்டுகளும் பத்தவில்லையென்று கணினியில் விவரங்களை சேமித்து வைத்தோம். பின்னர் ஒரு கணினியால் சேமித்து வைக்கக் கூடிய எல்லையையும் தாண் டினோம். உதாரணத்துக்கு ஒரு நோட்டில் 2000 வரிகள் தான் எழுத முடியும் என்பது போல ஒரு கணினியிலும் 1TB வரைதான் data-வை சேமிக்க முடியும் என்று இருக்கலாம். நாம் சேமிக்க வேண்டிய தகவலின் அளவு 1TB -ஐத் தாண்டும்போது, நமது இரண்டாவது கணினியில் சென்று தகவலைச் சேமிக்க ஆரம்பிப்போம். இதுவே ‘Clustered systems’ / ‘Distributed systems’ எனப்படும். நம்மிடம் 10 கணினிகள்தான் இருக்கிறதெனில் 10TB-வரைதான் நம்மால் data-வை சேமிக்க முடியும். அதுவே நாம் சேமிக்க வேண்டிய தகவலின் அளவு 10TB-ஐத் தாண்டும்போது, நாம் புதுப்புது கணினிகளை வாங்கி சேர்த்துக்கொண்டே போகாமல், சேமிப்பிற்கான இடத்தை மட்டும் ஒருசில நிறுவனங்களிடமிருந்து பெற்றுக்கொண்டு பயன்படுத்தினோம். இதுவே ‘Cloud Storage’ எனப்படும். அதாவது இத்தகைய cloud computers-ஐ நம்மால் பார்க்க முடியாது (virtual). ஆனால் நமது கணினியைப் போன்றே அதிலும் அனைத்து வேலைகளையும் செய்யலாம். Amazon, Google, Cloudera போன்றவை இத்தகைய services-ஐ வழங்குகின்றன.

ஒரு நோட்டில் எழுதக் கூடிய அளவுக்கு அனைத்து தகவல்களும் இருந்த மட்டும், நமக்கு வேண்டிய ஒருசில தகவல்களை தேடி எடுப்பது, அதனை ஆராய்வது, அதனடிப்படையில் முடிவுகளை எடுப்பது என்பது போன்ற விஷயங்களெல்லாம் நம்மால் சாதாரணமாக செய்ய முடிந்தது. ஆனால் தற்போதோ பல்வேறு முறையில் இணைக்கப்பட்ட கணினிகளிலிருந்து கோடிக்கணக்கான தகவல்களை அலசி ஆராய்ந்து அதனடிப்படையில் நமது வளர்ச்சிக்குத் தேவையான முடிவுகளை எடுப்பதற்கு உதவுவதே Big Data ஆகும். இது பெரும்பாலும் மின்வர்த்தகம் மற்றும் சமூக ஊடகத் துறைகளில் பெரும்பான்மையான பொறுப்புகளை ஏற்கிறது.

மேலும் வானியல், பொருளாதாரம், வேதியியல், போக்குவரத்து, ஆராய்ச்சி போன்ற பலதரப்பட்ட துறைகளிலும் இப்போது Big Data என்பது தலையெடுக்கத் தொடங்கியுள்ளது. ஒவ்வொரு துறையும் அதனதன் வளர்ச்சிக்காகவும், திறம்படச் செயல்புரிவதற்காகவும் மிக மிக நுண்ணிய தகவல்களையெல்லாம் இப்போது சேமித்து வைக்கத் துவங்கியுள்ளது. இத்தகைய எண்ணிலடங்கா தகவல்களையெல்லாம் எங்கு சேமித்து வைப்பது (Data storage), அதனை எவ்வாறு தரம் பிரிப்பது (Data Mapping), மிக முக்கிய தகவல்களை மட்டும் எவ்வாறு மொத்த தகவல்களிலிருந்து பிரித்தெடுப்பது (Data Mining), பிரித்தெடுத்த தகவல்களை எவ்வாறு ஒன்றோடொன்று இணைத்து (Data Pipeline)அர்த்தமுள்ள தரவுகளாக மாற்றுவது, அதனை எவ்வாறு பயனருக்கு சமர்ப்பிப்பது (Visualization of Reports) போன்ற அனைத்து வேலைகளையும் “பெரிய தரவு” எனும் “Big Data” புரிகிறது.

இந்த பெரிய தரவானது ஒழுங்கான வடிவத்தில் உள்ள விவரங்களை சேமிப்பத்தோடு மட்டுமல்லாமல், ஒழுங்கற்ற வடிவத்திலிருக்கும் விவரங்களையும் சேமிக்கும் வல்லமை கொண்டது. அதாவது ஒருவரின் பெயர், வயது, ஊர், மின்னஞ்சல் முகவரி போன்றவை எல்லாம் ஒழுங்கான வடிவத்தில் உள்ள தரவுகள் (Structured data). ஆனால் facebook போன்ற வலைத்தளத்தில் ஒரு பயனரின் அடிப்படை விவரங்களோடு சேர்த்து அவரின் மனநிலை , விருப்பு வெறுப்புகள், செயல்பாடுகள், விமர்சனங்கள் போன்ற அனைத்து விதமான தகவல்களையும் சேமிக்க வேண்டும். இவையெல்லாம் எந்த வடிவத்தில் வேண்டுமானாலும் இருக்கலாம். ஒருவர் தனது மனநிலையை வார்த்தைகளாகவும் வெளிப்படுத்தலாம், படங்களாகவும் வெளிப்படுத்தலாம். எனவே இவை எந்த வடிவத்தில் இருக்கும் என்பதை நம்மால் கணிக்க முடியாது. இவையே ஒழுங்கற்ற வடிவத்தில் இருக்கும் தகவல்களாக (Unstructured data) சேமிக்கப்படுகின்றன.

பல்வேறு நிறுவனங்கள் பெரிய தரவில் கூறப்பட்டுள்ள ஒவ்வொரு விஷயத்தையும் புரிவதற்காக பல்வேறு தொழில்நுட்பங்களைப் பயன்படுத்தி கருவிகளை உருவாக்குகின்றன. இறுதியில் அக்கருவிகளை ஒன்றாக இணைத்து ஒரு package-ஆக அந்நிறுவனம் வழங்குகின்ற பெரிய தரவுக்கான ஒரு கருவியாக வெளியிடுகின்றன. Hadoop, Spark, Druid, ELK ஆகியவை தற்போது சந்தையில் புகழ்பெற்று விளங்குகின்ற பெரிய தரவுக்கான திறந்த மூல மென்பொருள் கருவிகளாகும். இவற்றை Apache, Cloudera, Amazon போன்ற நிறுவனங்கள் வழங்குகின்றன.

source: www.flickr.com/photos/dionh/7550578346

 

 

YARN என்பது பல்வேறு கணினிகளில் சேமிக்கப்பட்ட விவரங்களை கையாளுவதற்கு (cluster management) உதவும் ஒரு மென்பொருள் பயன்பாடு ஆகும். DFS (distributed file system), MongoDB போன்றவை பல்வேறு விதங்களில் வருகின்ற தகவல்களை சேமிக்க உதவும் சேமிப்புக் கிடங்குகள் ஆகும். Mapper என்பது முதல் நிலை தரவுகளை எடுத்து அவற்றை சுருக்கி (key, value) pairs-ஆக சேமிக்கும். Reducer என்பது Mapper-வெளிப்படுத்தும் இணைகளை மீண்டும் சுருக்கி ஒரு அர்த்தமுள்ள விதத்தில் சேமித்து வைத்துக்கொள்ளும். Mapper மற்றும் Reducer இவை இரண்டும் சேர்ந்து ‘MapReducer’ என்று அழைக்கப்படும். இது Java-வைப் பயன்படுத்தி எழுதப்பட்ட ஒரு library ஆகும். Pig & Hive ஆகியவை Map Reducer library- ஐப் பயன்படுத்துவதற்கு உதவும் மொழிகளாகும். இவற்றையெல்லாம் பயன்படுத்தி உருவாக்கப்பட்டதே Hadoop எனப்படும் ஒரு கட்டமைப்பு. Datameer, Tableau என்பது கடைசியாக மேல்மட்ட அதிகாரிகள் அவர்கள் விரும்பும் விதத்தில் அறிக்கை எடுக்க உதவும் கருவிகள் ஆகும்.

அடுத்ததாக ELK என்பது Elastic search, Logstash & Kibana எனும் 3-ஐயும் இணைத்து உருவாக்கப்பட்ட கட்டமைப்பு ஆகும். இதில் Elastic search என்பது முதல் நிலை தகவல்களை சேமிக்க உதவும் ஒரு Engine ஆகும். Logstash என்பது கோப்பு வடிவத்திலோ அல்லது வலைத்தளத்திலோ இருக்கும் தகவல்களை Engine-க்குள் செலுத்த உதவும் கருவி ஆகும். Kibana என்பது Engine-ல் இருந்து தகவல்களை அறிக்கைக்கு தேவையான விதத்தில் தேடி எடுத்து வெளிப்படுத்த உதவும் கருவி ஆகும்.

இவ்வாறே Spark, Druid போன்றவை அதற்கென்று ஒவ்வொரு கட்டமைப்பைப் பெற்றுத் திகழுகின்றன. இனிவரும் பகுதிகளில் மேற்கூறியவற்றில் ஏதேனும் ஒரு கட்டமைப்பைப் பற்றி விரிவாகக் காணலாம்.

து.நித்யா

தொடரும் …

%d bloggers like this: