3.1 బిగ్‌డేటా అనే పదం ఆవిర్భావం చరిత్ర

బిగ్ డేటా అనే పదం సాపేక్షంగా ఇటీవల కనిపించింది. Google Trends 2011 నుండి పదబంధ వినియోగంలో క్రియాశీల వృద్ధి ప్రారంభాన్ని చూపుతుంది :

అదే సమయంలో, సోమరి మాత్రమే ఇప్పుడు ఈ పదాన్ని ఉపయోగించరు. ముఖ్యంగా తరచుగా, ఈ పదాన్ని విక్రయదారులు అనుచితంగా ఉపయోగిస్తారు. కాబట్టి నిజంగా బిగ్ డేటా అంటే ఏమిటి? నేను సమస్యను క్రమపద్ధతిలో పేర్కొనాలని మరియు హైలైట్ చేయాలని నిర్ణయించుకున్నాను కాబట్టి, భావనను నిర్వచించడం అవసరం.

నా ఆచరణలో, నేను విభిన్న నిర్వచనాలను కలుసుకున్నాను:

  • 100GB కంటే ఎక్కువ డేటా (500GB, 1TB, మీకు నచ్చినది) ఉంటే బిగ్ డేటా అంటారు.
  • బిగ్ డేటా అనేది Excelలో ప్రాసెస్ చేయలేని డేటా.
  • బిగ్ డేటా అనేది ఒకే కంప్యూటర్‌లో ప్రాసెస్ చేయలేని డేటా.

మరియు ఇవి కూడా:

  • బిగ్ డేటా సాధారణంగా ఏదైనా డేటా.
  • బిగ్ డేటా ఉనికిలో లేదు, ఇది విక్రయదారులచే కనుగొనబడింది.

నేను వికీపీడియా నుండి నిర్వచనానికి కట్టుబడి ఉంటాను:

బిగ్ డేటా అనేది కంప్యూటర్ నెట్‌వర్క్ యొక్క అనేక నోడ్‌లలో ఏర్పడిన నిరంతర వృద్ధి, పంపిణీ పరిస్థితులలో ప్రభావవంతమైన మానవ-గ్రహణ ఫలితాలను పొందడం కోసం భారీ వాల్యూమ్‌లు మరియు గణనీయమైన వైవిధ్యం యొక్క నిర్మాణాత్మక మరియు నిర్మాణాత్మక డేటాను ప్రాసెస్ చేయడానికి విధానాలు, సాధనాలు మరియు పద్ధతుల శ్రేణి. 2000ల చివరలో, సాంప్రదాయ డేటాబేస్ మేనేజ్‌మెంట్ సిస్టమ్‌లు మరియు బిజినెస్ ఇంటెలిజెన్స్ క్లాస్ సొల్యూషన్‌లకు ప్రత్యామ్నాయం.

అందువల్ల, బిగ్ డేటా ద్వారా నేను నిర్దిష్ట మొత్తం డేటాను కాదు మరియు డేటాను కూడా అర్థం చేసుకోలేను, కానీ వాటిని ప్రాసెస్ చేసే పద్ధతులు, ఇది సమాచారాన్ని పంపిణీ చేసే ప్రాసెసింగ్‌ను అనుమతిస్తుంది. ఈ పద్ధతులు పెద్ద డేటాసెట్‌లకు (ఇంటర్నెట్‌లోని అన్ని పేజీల కంటెంట్ వంటివి) అలాగే చిన్న డేటాసెట్‌లకు (ఈ ఉపన్యాసంలోని కంటెంట్ వంటివి) వర్తించవచ్చు.

పెద్ద డేటా టెక్నిక్‌లు అవసరమయ్యే డేటా సోర్స్‌కి సంబంధించిన కొన్ని ఉదాహరణలు ఇక్కడ ఉన్నాయి:

  • ఇంటర్నెట్‌లో వినియోగదారు ప్రవర్తన యొక్క లాగ్‌లు
  • రవాణా సంస్థ కోసం కార్ల నుండి GPS సంకేతాలు
  • లార్జ్ హాడ్రాన్ కొలైడర్‌లోని సెన్సార్ల నుండి తీసుకోబడిన డేటా
  • రష్యన్ స్టేట్ లైబ్రరీలో డిజిటలైజ్డ్ పుస్తకాలు
  • అన్ని బ్యాంకు కస్టమర్ల లావాదేవీల గురించిన సమాచారం
  • పెద్ద రిటైల్ చైన్‌లోని అన్ని కొనుగోళ్ల గురించిన సమాచారం మొదలైనవి.

డేటా సోర్స్‌ల సంఖ్య వేగంగా పెరుగుతోంది, అంటే డేటా ప్రాసెసింగ్ టెక్నాలజీలకు డిమాండ్ పెరుగుతోంది.

3.2 పెద్ద డేటా సూత్రాలు

బిగ్ డేటా యొక్క నిర్వచనం ఆధారంగా, మేము అటువంటి డేటాతో పని చేసే ప్రాథమిక సూత్రాలను రూపొందించవచ్చు:

1. క్షితిజసమాంతర స్కేలబిలిటీ. ఏకపక్షంగా పెద్ద మొత్తంలో డేటా ఉండవచ్చు కాబట్టి, పెద్ద డేటాను ప్రాసెస్ చేసే ఏదైనా సిస్టమ్ తప్పనిసరిగా విస్తరించదగినదిగా ఉండాలి. డేటా పరిమాణం 2 రెట్లు పెరిగింది - క్లస్టర్‌లోని ఇనుము మొత్తం 2 రెట్లు పెరిగింది మరియు ప్రతిదీ పని చేస్తూనే ఉంది.

2. తప్పు సహనం. క్షితిజ సమాంతర స్కేలబిలిటీ సూత్రం ఒక క్లస్టర్‌లో అనేక యంత్రాలు ఉండవచ్చని సూచిస్తుంది. ఉదాహరణకు, Yahoo యొక్క హడూప్ క్లస్టర్ 42,000 మెషీన్‌లను కలిగి ఉంది (మీరు ఈ లింక్‌లో సంస్థల అంతటా క్లస్టర్ పరిమాణాలను చూడవచ్చు). అంటే వీటిలో కొన్ని యంత్రాలు విఫలమవుతాయని హామీ ఇవ్వబడుతుంది. బిగ్ డేటా ప్రాక్టీస్‌లు ఈ అంతరాయాల గురించి తెలుసుకోవాలి మరియు ఎటువంటి ముఖ్యమైన పరిణామాలు లేకుండా వాటిని మనుగడ సాగించాలి.

3. డేటా ప్రాంతం. పెద్ద పంపిణీ వ్యవస్థలలో, డేటా పెద్ద సంఖ్యలో యంత్రాలలో పంపిణీ చేయబడుతుంది. డేటా భౌతికంగా ఒక సర్వర్‌లో ఉండి, మరొక సర్వర్‌లో ప్రాసెస్ చేయబడితే, డేటా బదిలీ ఖర్చులు ప్రాసెసింగ్ ఖర్చులను మించి ఉండవచ్చు. అందువల్ల, BigData సొల్యూషన్‌లను రూపొందించడానికి అత్యంత ముఖ్యమైన సూత్రాలలో ఒకటి డేటా స్థానికత యొక్క సూత్రం - వీలైతే, మేము దానిని నిల్వ చేసే అదే మెషీన్‌లో డేటాను ప్రాసెస్ చేస్తాము.

అన్ని ఆధునిక పెద్ద డేటా సాధనాలు ఈ మూడు సూత్రాలను ఏదో ఒక విధంగా అనుసరిస్తాయి. వాటిని అనుసరించడానికి, డేటా డెవలప్‌మెంట్ సాధనాలను అభివృద్ధి చేయడానికి కొన్ని పద్ధతులు, పద్ధతులు మరియు నమూనాలను రూపొందించడం అవసరం. నేటి ఉపన్యాసంలో నేను విశ్లేషిస్తాను అత్యంత క్లాసిక్ పద్ధతుల్లో ఒకటి.

3.3 మ్యాప్‌రెడ్యూస్

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) 

మ్యాప్ ఫంక్షన్ మాకు ఈ ఎంట్రీ అవసరమైతే తనిఖీ చేస్తుంది - మరియు మేము అలా చేస్తే, అది అవసరమైన సమాచారాన్ని మాత్రమే వదిలివేస్తుంది (నగరం మరియు చెల్లింపు మొత్తం). తగ్గింపు ఫంక్షన్ ఆ నగరంలో అన్ని చెల్లింపుల జాబితాను అందించిన నగరానికి తుది సమాధానాన్ని గణిస్తుంది.