3.1 பிக்டேட்டா என்ற வார்த்தை தோன்றிய வரலாறு

பிக் டேட்டா என்ற சொல் ஒப்பீட்டளவில் சமீபத்தில் தோன்றியது. 2011 முதல் இந்த சொற்றொடரின் பயன்பாட்டில் செயலில் வளர்ச்சியின் தொடக்கத்தை Google Trends காட்டுகிறது :

அதே சமயம் சோம்பேறிகள் மட்டும் இப்போது அந்தச் சொல்லைப் பயன்படுத்துவதில்லை. குறிப்பாக அடிக்கடி, இந்த வார்த்தை விற்பனையாளர்களால் தகாத முறையில் பயன்படுத்தப்படுகிறது. உண்மையில் பிக் டேட்டா என்றால் என்ன? சிக்கலை முறையாகக் கூறவும் முன்னிலைப்படுத்தவும் நான் முடிவு செய்ததால், கருத்தை வரையறுக்க வேண்டியது அவசியம்.

எனது நடைமுறையில், நான் வெவ்வேறு வரையறைகளை சந்தித்தேன்:

  • பிக் டேட்டா என்பது 100ஜிபிக்கு மேல் டேட்டா (500ஜிபி, 1டிபி, நீங்கள் விரும்புவது) இருந்தால்.
  • பிக் டேட்டா என்பது எக்செல் இல் செயலாக்க முடியாத தரவு.
  • பிக் டேட்டா என்பது ஒரு கணினியில் செயலாக்க முடியாத தரவு.

மேலும் இவையும் கூட:

  • பிக் டேட்டா என்பது பொதுவாக எந்தத் தரவும்.
  • பெரிய தரவு இல்லை, இது சந்தைப்படுத்துபவர்களால் கண்டுபிடிக்கப்பட்டது.

நான் விக்கிப்பீடியாவின் வரையறைக்கு ஒட்டிக்கொள்கிறேன்:

பிக் டேட்டா என்பது தொடர்ச்சியான வளர்ச்சி, கணினி நெட்வொர்க்கின் பல முனைகளில் விநியோகம் போன்றவற்றில் பயனுள்ளதாக இருக்கும் மனிதனால் உணரக்கூடிய முடிவுகளைப் பெறுவதற்காக, பெரிய அளவுகள் மற்றும் குறிப்பிடத்தக்க பன்முகத்தன்மையின் கட்டமைக்கப்பட்ட மற்றும் கட்டமைக்கப்படாத தரவை செயலாக்குவதற்கான அணுகுமுறைகள், கருவிகள் மற்றும் முறைகளின் தொடர் ஆகும். 2000 ஆண்டுகளின் பிற்பகுதியில், பாரம்பரிய தரவுத்தள மேலாண்மை அமைப்புகள் மற்றும் வணிக நுண்ணறிவு வகுப்பு தீர்வுகளுக்கு மாற்றாக.

எனவே, பிக் டேட்டா மூலம் நான் சில குறிப்பிட்ட அளவிலான தரவுகளைப் புரிந்துகொள்வதில்லை மற்றும் தரவைக் கூட அல்ல, ஆனால் அவற்றை செயலாக்கும் முறைகள், இது தகவலை விநியோகிக்கப்பட்ட செயலாக்கத்தை அனுமதிக்கும். இந்த முறைகள் பெரிய தரவுத்தொகுப்புகளுக்கும் (இணையத்தில் உள்ள அனைத்து பக்கங்களின் உள்ளடக்கம் போன்றவை) சிறிய தரவுத்தொகுப்புகளுக்கும் (இந்த விரிவுரையின் உள்ளடக்கம் போன்றவை) பயன்படுத்தப்படலாம்.

பெரிய தரவு நுட்பங்கள் தேவைப்படும் தரவு ஆதாரமாக இருக்கலாம் என்பதற்கான சில எடுத்துக்காட்டுகள் இங்கே:

  • இணையத்தில் பயனர் நடத்தை பற்றிய பதிவுகள்
  • ஒரு போக்குவரத்து நிறுவனத்திற்கான கார்களில் இருந்து ஜிபிஎஸ் சிக்னல்கள்
  • லார்ஜ் ஹாட்ரான் மோதலில் உள்ள சென்சார்களில் இருந்து எடுக்கப்பட்ட தரவு
  • ரஷ்ய மாநில நூலகத்தில் டிஜிட்டல் மயமாக்கப்பட்ட புத்தகங்கள்
  • அனைத்து வங்கி வாடிக்கையாளர்களின் பரிவர்த்தனைகள் பற்றிய தகவல்
  • ஒரு பெரிய சில்லறை சங்கிலியில் உள்ள அனைத்து கொள்முதல் பற்றிய தகவல், முதலியன.

தரவு மூலங்களின் எண்ணிக்கை வேகமாக வளர்ந்து வருகிறது, அதாவது தரவு செயலாக்க தொழில்நுட்பங்கள் மேலும் மேலும் தேவைப்படுகின்றன.

3.2 பெரிய தரவு கோட்பாடுகள்

பிக் டேட்டாவின் வரையறையின் அடிப்படையில், அத்தகைய தரவுகளுடன் பணிபுரியும் அடிப்படைக் கொள்கைகளை நாம் உருவாக்கலாம்:

1. கிடைமட்ட அளவிடுதல். தன்னிச்சையாக பெரிய அளவிலான தரவு இருக்கக்கூடும் என்பதால், பெரிய தரவை செயலாக்குவதை உள்ளடக்கிய எந்த அமைப்பும் நீட்டிக்கப்பட வேண்டும். தரவு அளவு 2 மடங்கு அதிகரித்துள்ளது - கொத்து இரும்பு அளவு 2 மடங்கு அதிகரித்துள்ளது மற்றும் எல்லாம் வேலை தொடர்ந்தது.

2. தவறு சகிப்புத்தன்மை. கிடைமட்ட அளவிடுதல் கொள்கையானது ஒரு கிளஸ்டரில் பல இயந்திரங்கள் இருக்கலாம் என்பதைக் குறிக்கிறது. எடுத்துக்காட்டாக, யாஹூவின் ஹடூப் கிளஸ்டரில் 42,000க்கும் மேற்பட்ட இயந்திரங்கள் உள்ளன (இந்த இணைப்பில் நீங்கள் நிறுவனங்கள் முழுவதும் கிளஸ்டர் அளவுகளைக் காணலாம்). இதன் பொருள் இந்த இயந்திரங்களில் சில தோல்வியடைவது உறுதி. பெரிய தரவு நடைமுறைகள் இந்த இடையூறுகளை அறிந்திருக்க வேண்டும் மற்றும் எந்த குறிப்பிடத்தக்க விளைவுகளும் இல்லாமல் அவற்றைத் தக்கவைக்க வேண்டும்.

3. தரவு வட்டாரம். பெரிய விநியோகிக்கப்பட்ட அமைப்புகளில், அதிக எண்ணிக்கையிலான இயந்திரங்களில் தரவு விநியோகிக்கப்படுகிறது. தரவு உடல் ரீதியாக ஒரு சேவையகத்தில் அமைந்து மற்றொரு சேவையகத்தில் செயலாக்கப்பட்டால், தரவு பரிமாற்ற செலவுகள் செயலாக்கத்தின் செலவை விட அதிகமாக இருக்கலாம். எனவே, BigData தீர்வுகளை வடிவமைப்பதற்கான மிக முக்கியமான கொள்கைகளில் ஒன்று தரவு இருப்பிடத்தின் கொள்கையாகும் - முடிந்தால், நாங்கள் அதைச் சேமிக்கும் அதே கணினியில் தரவைச் செயலாக்குகிறோம்.

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

3.3 MapReduce

MapReduce என்பது கணினி கிளஸ்டர்களில் அதிக அளவிலான தரவைச் செயலாக்குவதற்கு Google ஆல் முன்மொழியப்பட்ட விநியோகிக்கப்பட்ட தரவு செயலாக்க மாதிரியாகும். MapReduce பின்வரும் படத்தால் நன்கு விளக்கப்பட்டுள்ளது:

MapReduce தரவு சில பதிவுகளாக ஒழுங்கமைக்கப்பட்டுள்ளது என்று கருதுகிறது. தரவு செயலாக்கம் 3 நிலைகளில் நிகழ்கிறது:

1. வரைபட நிலை . இந்த கட்டத்தில், பயனரால் வரையறுக்கப்பட்ட வரைபடம்() செயல்பாட்டைப் பயன்படுத்தி தரவு முன்கூட்டியே செயலாக்கப்படுகிறது. இந்த கட்டத்தின் வேலை, தரவை முன்கூட்டியே செயலாக்குவதும் வடிகட்டுவதும் ஆகும். செயல்பாட்டு நிரலாக்க மொழிகளில் வரைபட செயல்பாட்டிற்கு மிகவும் ஒத்ததாக இருக்கிறது - ஒவ்வொரு உள்ளீட்டு பதிவுக்கும் தனிப்பயன் செயல்பாடு பயன்படுத்தப்படுகிறது.

ஒரு உள்ளீட்டு பதிவில் பயன்படுத்தப்படும் வரைபடம்() செயல்பாடு பல முக்கிய மதிப்பு ஜோடிகளை உருவாக்குகிறது. அமை - அதாவது, ஒரே ஒரு பதிவை மட்டுமே திருப்பி அனுப்ப முடியும், அது எதையும் திரும்பப் பெறாது அல்லது பல முக்கிய மதிப்பு ஜோடிகளை வழங்கலாம். விசையிலும் மதிப்பிலும் என்ன இருக்கும் என்பது பயனரைப் பொறுத்தது, ஆனால் விசை மிக முக்கியமான விஷயம், ஏனெனில் எதிர்காலத்தில் ஒரு விசையுடன் தரவு குறைக்கும் செயல்பாட்டின் ஒரு நிகழ்வில் விழும்.

2. ஸ்டேஜ் ஷஃபிள். இது பயனரால் கவனிக்கப்படாமல் போகும். இந்த கட்டத்தில், வரைபட செயல்பாட்டின் வெளியீடு "பின்ட்" செய்யப்படுகிறது - ஒவ்வொரு தொட்டியும் வரைபட நிலையின் ஒரு வெளியீட்டு விசையுடன் ஒத்துள்ளது. எதிர்காலத்தில், இந்த கூடைகள் குறைப்பதற்கான உள்ளீடாக செயல்படும்.

3. நிலை குறைப்பு. ஷஃபிள் கட்டத்தில் உருவாக்கப்பட்ட மதிப்புகளைக் கொண்ட ஒவ்வொரு "கூடை" குறைப்பு() செயல்பாட்டின் உள்ளீட்டைப் பெறுகிறது.

குறைப்பு செயல்பாடு பயனரால் வழங்கப்படுகிறது மற்றும் ஒற்றை "கூடை"க்கான இறுதி முடிவைக் கணக்கிடுகிறது . குறைப்பு() செயல்பாட்டின் மூலம் வழங்கப்படும் அனைத்து மதிப்புகளின் தொகுப்பு MapReduce பணியின் இறுதி முடிவாகும்.

MapReduce பற்றிய சில கூடுதல் உண்மைகள்:

  1. வரைபடச் செயல்பாட்டின் அனைத்து ரன்களும் தனித்தனியாக இயங்குகின்றன மற்றும் வெவ்வேறு கிளஸ்டர் இயந்திரங்கள் உட்பட இணையாக இயங்க முடியும்.
  2. குறைப்பு செயல்பாட்டின் அனைத்து ரன்களும் சுயாதீனமாக செயல்படுகின்றன மற்றும் வெவ்வேறு கிளஸ்டர் இயந்திரங்கள் உட்பட இணையாக இயங்க முடியும்.
  3. ஷஃபிள் உள்நாட்டில் ஒரு இணையான வரிசையைக் குறிக்கிறது, எனவே இது வெவ்வேறு கிளஸ்டர் இயந்திரங்களிலும் வேலை செய்ய முடியும். புள்ளிகள் 1-3 கிடைமட்ட அளவிடுதல் கொள்கையை செயல்படுத்த உங்களை அனுமதிக்கிறது .
  4. வரைபட செயல்பாடு பொதுவாக தரவு சேமிக்கப்படும் அதே கணினியில் பயன்படுத்தப்படுகிறது - இது நெட்வொர்க்கில் தரவு பரிமாற்றத்தை குறைக்கிறது (தரவு வட்டாரத்தின் கொள்கை).
  5. MapReduce எப்போதும் முழு தரவு ஸ்கேன் ஆகும், குறியீடுகள் எதுவும் இல்லை. மிக விரைவாக பதில் தேவைப்படும்போது MapReduce சரியாகப் பொருந்தாது என்பதே இதன் பொருள்.

3.4 MapReduce மூலம் திறம்பட தீர்க்கப்பட்ட பணிகளின் எடுத்துக்காட்டுகள்

சொல் எண்ணிக்கை

உன்னதமான பணியுடன் தொடங்குவோம் - வார்த்தை எண்ணிக்கை. பணி பின்வருமாறு வடிவமைக்கப்பட்டுள்ளது: ஆவணங்களின் பெரிய கார்பஸ் உள்ளது. கார்பஸில் குறைந்தபட்சம் ஒரு முறை வரும் ஒவ்வொரு வார்த்தைக்கும் கார்பஸில் ஏற்படும் மொத்த எண்ணிக்கையைக் கணக்கிடுவதே பணி.

தீர்வு:

எங்களிடம் பெரிய அளவிலான ஆவணங்கள் இருப்பதால், MapRreduce பணிக்கு ஒரு ஆவணம் ஒரு உள்ளீட்டுப் பதிவாக இருக்கட்டும். MapReduce இல், நாம் பயனர் வரையறுக்கப்பட்ட செயல்பாடுகளை மட்டுமே வரையறுக்க முடியும், அதை நாம் செய்வோம் (பைதான் போன்ற சூடோகோடைப் பயன்படுத்துவோம்):

def map(doc): 
for word in doc: 
yield word, 1 
def reduce(word, values): 
yield word, sum(values) 

வரைபடச் செயல்பாடு உள்ளீட்டு ஆவணத்தை ஜோடிகளின் தொகுப்பாக மாற்றுகிறது (வார்த்தை, 1), வெளிப்படையாகக் கலக்கவும், அதை ஜோடிகளாக மாற்றுகிறது (வார்த்தை, [1,1,1,1,1,1]), இவைகளின் தொகைகளைக் குறைத்து , திரும்பும் வார்த்தைக்கான இறுதி பதில்.

விளம்பர அமைப்பு பதிவுகளை செயலாக்குகிறது

இரண்டாவது உதாரணம் தரவு மையக் கூட்டணியின் உண்மையான நடைமுறையிலிருந்து எடுக்கப்பட்டது.

பணி: படிவத்தின் விளம்பர அமைப்பின் csv பதிவு உள்ளது:

<user_id>,<country>,<city>,<campaign_id>,<creative_id>,<payment></p> 
 
11111,RU,Moscow,2,4,0.3 
22222,RU,Voronezh,2,3,0.2 
13413,UA,Kyiv,4,11,0.7 
… 

ரஷ்யாவின் நகரங்களில் விளம்பரங்களைக் காண்பிக்கும் சராசரி செலவைக் கணக்கிடுவது அவசியம்.

தீர்வு:

def map(record): 
user_id, country, city, campaign_id, creative_id, payment = record.split(",") 
payment=float(payment) 
if country == "RU": 
yield city, payment 
def reduce(city, payments): 
yield city, sum(payments)/len(payments) 

இந்த உள்ளீடு நமக்குத் தேவையா என்பதை வரைபடச் செயல்பாடு சரிபார்க்கிறது - நாங்கள் அவ்வாறு செய்தால், அது தேவையான தகவலை (நகரம் மற்றும் கட்டணத் தொகை) மட்டுமே விட்டுச்செல்கிறது. குறைப்பு செயல்பாடு அந்த நகரத்தில் உள்ள அனைத்து கட்டணங்களின் பட்டியலையும் கொடுக்கப்பட்ட நகரத்திற்கான இறுதி பதிலைக் கணக்கிடுகிறது.