మేము అత్యంత సమర్థవంతమైన మరియు చవకైన డేటాలేక్‌ని ఎలా నిర్వహించాము మరియు ఇది ఎందుకు జరిగింది

మీరు అనేక రెడీమేడ్ ఓపెన్ సోర్స్ టూల్స్‌ను త్వరగా మరియు సులభంగా కనెక్ట్ చేయగల అద్భుతమైన సమయంలో మేము జీవిస్తున్నాము, "బహుళ అక్షరాలను" లోతుగా పరిశోధించకుండా, స్టాక్‌ఓవర్‌ఫ్లో సలహా ప్రకారం మీ "స్పృహ ఆఫ్ చేయబడింది" మరియు ప్రారంభించండి వాటిని వాణిజ్య కార్యకలాపాల్లోకి తీసుకువెళ్లారు. మరియు మీరు అప్‌డేట్/విస్తరించాల్సిన అవసరం వచ్చినప్పుడు లేదా ఎవరైనా అనుకోకుండా కొన్ని యంత్రాలను రీబూట్ చేసినప్పుడు - ఒకరకమైన అబ్సెసివ్ చెడు కల ప్రారంభమైందని, ప్రతిదీ గుర్తించలేని విధంగా నాటకీయంగా క్లిష్టంగా మారిందని మీరు గ్రహిస్తారు, వెనక్కి తగ్గడం లేదు, భవిష్యత్తు అస్పష్టంగా మరియు సురక్షితంగా ఉంటుంది, ప్రోగ్రామింగ్‌కు బదులుగా, తేనెటీగలను పెంచండి మరియు జున్ను చేయండి.

మరింత అనుభవజ్ఞులైన సహోద్యోగులు, వారి తలలు దోషాలతో నిండి ఉన్నాయి మరియు ఇప్పటికే బూడిద రంగులో ఉన్నాయి, "నాగరిక భాషలలో" అంతర్నిర్మిత మద్దతుతో డజన్ల కొద్దీ సర్వర్‌లలో "క్యూబ్స్"లో "కంటైనర్ల" ప్యాక్‌లను చాలా వేగంగా విస్తరించాలని ఆలోచిస్తున్నారు. అసమకాలిక నాన్-బ్లాకింగ్ I/O, నిరాడంబరంగా నవ్వండి . మరియు వారు నిశ్శబ్దంగా “man ps”ని మళ్లీ చదవడం కొనసాగిస్తారు, వారి కళ్ళు రక్తస్రావం అయ్యే వరకు “nginx” సోర్స్ కోడ్‌ను పరిశోధించండి మరియు యూనిట్ పరీక్షలను వ్రాయడం, వ్రాయడం, వ్రాయడం. నూతన సంవత్సర పండుగ సందర్భంగా ఒక రోజు "ఇదంతా" రాత్రి వేళల్లో పందెం అయినప్పుడు అత్యంత ఆసక్తికరమైన విషయం వస్తుందని సహోద్యోగులకు తెలుసు. మరియు వారు unix యొక్క స్వభావం, గుర్తుంచుకోబడిన TCP/IP స్థితి పట్టిక మరియు ప్రాథమిక సార్టింగ్-శోధన అల్గారిథమ్‌ల యొక్క లోతైన అవగాహన ద్వారా మాత్రమే సహాయపడతారు. ఘంటసాల కొట్టడం వల్ల వ్యవస్థకు మళ్లీ జీవం పోయడం.

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

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

Bitrix24లో ప్రాథమిక సాంకేతిక విశ్లేషణలు

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

పల్స్ పై వేలు - అధునాతన సాంకేతిక విశ్లేషణలు

"సాధ్యమైనంత త్వరగా" సమస్యల గురించి సమాచారాన్ని స్వీకరించాలనే కోరిక మాకు సాధారణ మరియు అర్థమయ్యే సాధనాలతో క్రియాశీల ప్రయోగాలకు దారితీసింది - pinba మరియు xhprof.

Pinba మాకు PHPలోని వెబ్ పేజీల భాగాల ఆపరేషన్ వేగం గురించి UDP ప్యాకెట్‌లలో గణాంకాలను పంపింది మరియు మేము ఆన్‌లైన్‌లో MySQL నిల్వలో (వేగవంతమైన ఈవెంట్ అనలిటిక్స్ కోసం Pinba దాని స్వంత MySQL ఇంజిన్‌తో వస్తుంది) సమస్యల యొక్క చిన్న జాబితాను చూడవచ్చు మరియు వాటికి ప్రతిస్పందించవచ్చు. వాటిని. మరియు xhprof స్వయంచాలకంగా క్లయింట్‌ల నుండి నెమ్మదిగా PHP పేజీల అమలు యొక్క గ్రాఫ్‌లను సేకరించడానికి మరియు దీనికి దారితీసే వాటిని విశ్లేషించడానికి మాకు అనుమతి ఇచ్చింది - ప్రశాంతంగా, టీ పోయడం లేదా బలమైనది.

కొంతకాలం క్రితం, టూల్‌కిట్ రివర్స్ ఇండెక్సింగ్ అల్గోరిథం ఆధారంగా మరొక సరళమైన మరియు అర్థమయ్యే ఇంజన్‌తో భర్తీ చేయబడింది, ఇది లెజెండరీ లూసీన్ లైబ్రరీ - ఎలాస్టిక్/కిబానాలో ఖచ్చితంగా అమలు చేయబడింది. లాగ్‌లలోని ఈవెంట్‌ల ఆధారంగా డాక్యుమెంట్‌లను విలోమ లూసీన్ ఇండెక్స్‌లో మల్టీ-థ్రెడ్ రికార్డింగ్ చేసే సాధారణ ఆలోచన మరియు ముఖ విభజనను ఉపయోగించి వాటి ద్వారా శీఘ్ర శోధన నిజంగా ఉపయోగకరంగా మారింది.

కిబానాలో "బకెట్" "పైకి ప్రవహించడం" వంటి తక్కువ-స్థాయి భావనలతో మరియు ఇంకా పూర్తిగా మరచిపోని రిలేషనల్ ఆల్జీబ్రా యొక్క పునర్నిర్మించిన భాషతో కూడిన విజువలైజేషన్‌లు సాంకేతికంగా కనిపించినప్పటికీ, ఈ సాధనం క్రింది పనులలో మాకు బాగా సహాయం చేయడం ప్రారంభించింది:

  • Bitrix24 క్లయింట్ గత గంటలో p1 పోర్టల్‌లో ఎన్ని PHP ఎర్రర్‌లను కలిగి ఉంది మరియు ఏవి? అర్థం చేసుకోండి, క్షమించండి మరియు త్వరగా సరిదిద్దండి.
  • మునుపటి 24 గంటల్లో జర్మనీలోని పోర్టల్‌లలో ఎన్ని వీడియో కాల్‌లు చేయబడ్డాయి, ఏ నాణ్యతతో మరియు ఛానెల్/నెట్‌వర్క్‌తో ఏవైనా ఇబ్బందులు ఉన్నాయా?
  • తాజా సర్వీస్ అప్‌డేట్‌లో సోర్స్ నుండి కంపైల్ చేయబడిన మరియు క్లయింట్‌లకు అందించబడిన సిస్టమ్ ఫంక్షనాలిటీ (PHP కోసం మా C ఎక్స్‌టెన్షన్) ఎంత బాగా పని చేస్తుంది? సెగ్‌ఫాల్ట్‌లు ఉన్నాయా?
  • కస్టమర్ డేటా PHP మెమరీకి సరిపోతుందా? ప్రాసెస్‌లకు కేటాయించిన మెమరీని మించిపోవడంలో ఏవైనా లోపాలు ఉన్నాయా: “మెమరీ లేదు”? కనుగొని తటస్థీకరించండి.

ఇక్కడ ఒక నిర్దిష్ట ఉదాహరణ. క్షుణ్ణంగా మరియు బహుళ-స్థాయి పరీక్ష ఉన్నప్పటికీ, క్లయింట్, చాలా ప్రామాణికం కాని కేసు మరియు దెబ్బతిన్న ఇన్‌పుట్ డేటాతో, బాధించే మరియు ఊహించని లోపాన్ని అందుకున్నాడు, సైరన్ వినిపించింది మరియు దానిని త్వరగా పరిష్కరించే ప్రక్రియ ప్రారంభమైంది:

మేము అత్యంత సమర్థవంతమైన మరియు చవకైన డేటాలేక్‌ని ఎలా నిర్వహించాము మరియు ఇది ఎందుకు జరిగింది

అదనంగా, కిబానా పేర్కొన్న ఈవెంట్‌ల కోసం నోటిఫికేషన్‌లను నిర్వహించడానికి మిమ్మల్ని అనుమతిస్తుంది మరియు తక్కువ సమయంలో కంపెనీలోని సాధనాన్ని వివిధ విభాగాల నుండి డజన్ల కొద్దీ ఉద్యోగులు ఉపయోగించడం ప్రారంభించారు - సాంకేతిక మద్దతు మరియు అభివృద్ధి నుండి QA వరకు.

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

ప్రాథమిక వ్యాపార విశ్లేషణలు

కంపెనీలలో వ్యాపార విశ్లేషణలు తరచుగా ఎక్సెల్ యొక్క అత్యంత చురుకైన ఉపయోగంతో ప్రారంభమవుతాయని అందరికీ తెలుసు. కానీ ప్రధాన విషయం ఏమిటంటే అది అక్కడ ముగియదు. క్లౌడ్-ఆధారిత Google Analytics కూడా అగ్నికి ఇంధనాన్ని జోడిస్తుంది - మీరు త్వరగా మంచి విషయాలను అలవాటు చేసుకోవడం ప్రారంభించండి.

సామరస్యపూర్వకంగా అభివృద్ధి చెందుతున్న మా కంపెనీలో, ఇక్కడ మరియు అక్కడ పెద్ద డేటాతో మరింత ఇంటెన్సివ్ పని యొక్క "ప్రవక్తలు" కనిపించడం ప్రారంభించారు. మరింత లోతైన మరియు బహుముఖ నివేదికల అవసరం క్రమం తప్పకుండా కనిపించడం ప్రారంభమైంది మరియు వివిధ విభాగాల కుర్రాళ్ల ప్రయత్నాల ద్వారా, కొంతకాలం క్రితం సరళమైన మరియు ఆచరణాత్మక పరిష్కారం నిర్వహించబడింది - క్లిక్‌హౌస్ మరియు పవర్‌బిఐ కలయిక.

చాలా కాలం వరకు, ఈ సౌకర్యవంతమైన పరిష్కారం చాలా సహాయపడింది, కానీ క్లిక్‌హౌస్ రబ్బరు కాదని మరియు దానిని ఎగతాళి చేయలేమని క్రమంగా అర్థం చేసుకోవడం ప్రారంభమైంది.

క్లిక్‌హౌస్, డ్రూయిడ్ వంటిది, వెర్టికా వంటిది, అమెజాన్ రెడ్‌షిఫ్ట్ (ఇది పోస్ట్‌గ్రేస్‌పై ఆధారపడి ఉంటుంది) వంటివి చాలా అనుకూలమైన విశ్లేషణల కోసం ఆప్టిమైజ్ చేయబడిన విశ్లేషణాత్మక ఇంజిన్‌లు (మొత్తాలు, అగ్రిగేషన్‌లు, కాలమ్ వారీగా కనిష్ట-గరిష్టం మరియు కొన్ని సాధ్యమయ్యే జాయిన్‌లు అని ఇక్కడ బాగా అర్థం చేసుకోవడం ముఖ్యం. ), ఎందుకంటే MySQL మరియు మనకు తెలిసిన ఇతర (రో-ఓరియెంటెడ్) డేటాబేస్‌ల వలె కాకుండా, సంబంధిత పట్టికల నిలువు వరుసల సమర్థవంతమైన నిల్వ కోసం నిర్వహించబడింది.

సారాంశంలో, ClickHouse అనేది చాలా అనుకూలమైన పాయింట్-బై-పాయింట్ చొప్పించడం (ఇది ఎలా ఉద్దేశించబడింది, ప్రతిదీ సరే), కానీ ఆహ్లాదకరమైన విశ్లేషణలు మరియు డేటాతో పని చేయడానికి ఆసక్తికరమైన శక్తివంతమైన ఫంక్షన్‌ల సెట్‌తో మరింత సామర్థ్యం గల “డేటాబేస్”. అవును, మీరు క్లస్టర్‌ను కూడా సృష్టించవచ్చు - కానీ మైక్రోస్కోప్‌తో గోర్లు కొట్టడం పూర్తిగా సరైనది కాదని మీరు అర్థం చేసుకున్నారు మరియు మేము ఇతర పరిష్కారాల కోసం వెతకడం ప్రారంభించాము.

పైథాన్ మరియు విశ్లేషకులకు డిమాండ్

మా కంపెనీకి PHP, JavaScript, C#, C/C++, Java, Go, Rust, Python, Bashలో దాదాపు 10-20 సంవత్సరాల పాటు ప్రతిరోజూ కోడ్‌ను వ్రాసే అనేక మంది డెవలపర్‌లు ఉన్నారు. గణాంకాల చట్టాలకు సరిపోని ఒకటి కంటే ఎక్కువ అద్భుతమైన విపత్తులను ఎదుర్కొన్న అనేక మంది అనుభవజ్ఞులైన సిస్టమ్ అడ్మినిస్ట్రేటర్‌లు కూడా ఉన్నారు (ఉదాహరణకు, రైడ్-10లోని మెజారిటీ డిస్క్‌లు బలమైన మెరుపు దాడితో నాశనమైనప్పుడు). అటువంటి పరిస్థితులలో, "పైథాన్ విశ్లేషకుడు" అంటే ఏమిటో చాలా కాలంగా స్పష్టంగా తెలియలేదు. పైథాన్ PHP లాంటిది, పేరు మాత్రమే కొంచెం పొడవుగా ఉంటుంది మరియు వ్యాఖ్యాత సోర్స్ కోడ్‌లో మనస్సును మార్చే పదార్థాల జాడలు కొంచెం తక్కువగా ఉన్నాయి. అయినప్పటికీ, మరింత ఎక్కువ విశ్లేషణాత్మక నివేదికలు సృష్టించబడినందున, అనుభవజ్ఞులైన డెవలపర్‌లు నంపీ, పాండాలు, మ్యాట్‌ప్లాట్‌లిబ్, సీబార్న్ వంటి సాధనాల్లో ఇరుకైన స్పెషలైజేషన్ యొక్క ప్రాముఖ్యతను ఎక్కువగా అర్థం చేసుకోవడం ప్రారంభించారు.
నిర్ణయాత్మక పాత్ర, చాలా మటుకు, "లాజిస్టిక్ రిగ్రెషన్" అనే పదాల కలయిక నుండి ఉద్యోగులు అకస్మాత్తుగా మూర్ఛపోవడం మరియు అవును, అవును, పిస్పార్క్ ఉపయోగించి పెద్ద డేటాపై సమర్థవంతమైన రిపోర్టింగ్ యొక్క ప్రదర్శన.

అపాచీ స్పార్క్, రిలేషనల్ ఆల్జీబ్రా సరిగ్గా సరిపోయే దాని ఫంక్షనల్ నమూనా, మరియు దాని సామర్థ్యాలు MySQLకి అలవాటుపడిన డెవలపర్‌లపై అటువంటి ముద్రను కలిగించాయి, అనుభవజ్ఞులైన విశ్లేషకులతో ర్యాంక్‌లను బలోపేతం చేయవలసిన అవసరం రోజురోజుకు స్పష్టమైంది.

అపాచీ స్పార్క్/హడూప్ టేకాఫ్ చేయడానికి చేసిన మరిన్ని ప్రయత్నాలు మరియు స్క్రిప్ట్ ప్రకారం ఏమి జరగలేదు

అయితే, స్పార్క్‌తో ఏదో వ్యవస్థాత్మకంగా సరిగ్గా లేదని లేదా మీ చేతులను బాగా కడుక్కోవాల్సిన అవసరం ఉందని త్వరలో స్పష్టమైంది. హడూప్/మ్యాప్‌రెడ్యూస్/లూసీన్ స్టాక్‌ను చాలా అనుభవజ్ఞులైన ప్రోగ్రామర్లు తయారు చేసినట్లయితే, మీరు జావాలోని సోర్స్ కోడ్ లేదా లూసీన్‌లోని డౌగ్ కట్టింగ్ ఆలోచనలను నిశితంగా పరిశీలిస్తే స్పష్టంగా తెలుస్తుంది, స్పార్క్ అకస్మాత్తుగా అన్యదేశ భాష అయిన స్కాలాలో వ్రాయబడింది. ప్రాక్టికాలిటీ కోణం నుండి చాలా వివాదాస్పదమైనది మరియు ప్రస్తుతం అభివృద్ధి చెందడం లేదు. మరియు స్పార్క్ క్లస్టర్‌పై గణనలు క్రమంగా తగ్గడం వల్ల, రీడ్ ఆపరేషన్‌ల కోసం మెమరీ కేటాయింపుతో (అనేక కీలు ఒకేసారి వస్తాయి) లాజికల్‌గా మరియు చాలా పారదర్శకంగా పని చేయకపోవడం వల్ల దాని చుట్టూ పెరగడానికి స్థలం ఉన్న దాని చుట్టూ ఒక హాలో ఏర్పడింది. అదనంగా, పెద్ద సంఖ్యలో వింత ఓపెన్ పోర్ట్‌లు, చాలా అపారమయిన ప్రదేశాలలో పెరుగుతున్న తాత్కాలిక ఫైల్‌లు మరియు జార్ డిపెండెన్సీల కారణంగా పరిస్థితి మరింత దిగజారింది - దీని వలన సిస్టమ్ నిర్వాహకులు చిన్ననాటి నుండి బాగా తెలిసిన ఒక భావనను కలిగి ఉన్నారు: తీవ్రమైన ద్వేషం (లేదా ఉండవచ్చు. వారు సబ్బుతో చేతులు కడుక్కోవాలి).

ఫలితంగా, మేము అపాచీ స్పార్క్ (స్పార్క్ స్ట్రీమింగ్, స్పార్క్ SQLతో సహా) మరియు హడూప్ ఎకోసిస్టమ్ (ఇంకా మొదలైనవి) చురుకుగా ఉపయోగించే అనేక అంతర్గత విశ్లేషణాత్మక ప్రాజెక్ట్‌లను "బతికించాము". కాలక్రమేణా మేము “అది” బాగా సిద్ధం చేయడం మరియు పర్యవేక్షించడం నేర్చుకున్నాము మరియు డేటా యొక్క స్వభావంలో మార్పులు మరియు ఏకరీతి RDD హ్యాషింగ్ యొక్క అసమతుల్యత కారణంగా “ఇది” ఆచరణాత్మకంగా అకస్మాత్తుగా క్రాష్ కావడం ఆగిపోయినప్పటికీ, ఇప్పటికే సిద్ధంగా ఉన్నదాన్ని తీసుకోవాలనే కోరిక. , క్లౌడ్‌లో ఎక్కడో అప్‌డేట్ చేయబడి, నిర్వహించబడినది మరింత బలంగా మరియు బలంగా పెరిగింది. ఈ సమయంలోనే మేము Amazon Web Services యొక్క రెడీమేడ్ క్లౌడ్ అసెంబ్లీని ఉపయోగించడానికి ప్రయత్నించాము - EMR మరియు, తదనంతరం, దానిని ఉపయోగించి సమస్యలను పరిష్కరించడానికి ప్రయత్నించారు. EMR అనేది క్లౌడెరా/హార్టన్‌వర్క్స్ బిల్డ్‌ల వంటి పర్యావరణ వ్యవస్థ నుండి అదనపు సాఫ్ట్‌వేర్‌తో అమెజాన్ చేత తయారు చేయబడిన అపాచీ స్పార్క్.

విశ్లేషణల కోసం రబ్బరు ఫైల్ నిల్వ తక్షణ అవసరం

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

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

DataLake కోసం Amazon S3 అభ్యర్థిగా ఉందా?

హడూప్/మ్యాప్‌రెడ్యూస్‌తో అనుభవం మాకు స్కేలబుల్, నమ్మదగిన ఫైల్ సిస్టమ్ మరియు దాని పైన స్కేలబుల్ వర్కర్లు అవసరమని మాకు నేర్పింది, డేటాను నెట్‌వర్క్‌లో డ్రైవ్ చేయకుండా ఉండటానికి డేటాకు దగ్గరగా “వస్తోంది”. కార్మికులు వివిధ ఫార్మాట్లలో డేటాను చదవగలగాలి, కానీ ప్రాధాన్యంగా అనవసరమైన సమాచారాన్ని చదవకూడదు మరియు కార్మికులకు అనుకూలమైన ఫార్మాట్లలో ముందుగానే డేటాను నిల్వ చేయగలరు.

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

మీరు హడూప్ నుండి మీ స్వంత చాప్‌లను సిద్ధం చేయకుండా, సుపరిచితమైన మరియు ప్రసిద్ధి చెందిన స్కేలబుల్ క్లౌడ్ స్టోరేజ్ Amazon S3లో ఫైల్‌లను నిల్వ చేస్తే ఏమి చేయాలి?

వ్యక్తిగత డేటా "తక్కువ" అని స్పష్టంగా ఉంది, కానీ మేము దానిని బయటకు తీసి "సమర్థవంతంగా డ్రైవ్ చేస్తే" ఇతర డేటా గురించి ఏమిటి?

అమెజాన్ వెబ్ సేవల యొక్క క్లస్టర్-బిగ్‌డేటా-ఎనలిటిక్స్ ఎకోసిస్టమ్ - చాలా సులభమైన పదాలలో

AWSతో మా అనుభవాన్ని బట్టి చూస్తే, Apache Hadoop/MapReduce అక్కడ చాలా కాలం పాటు వివిధ సాస్‌ల క్రింద చురుకుగా ఉపయోగించబడుతోంది, ఉదాహరణకు DataPipeline సేవలో (నేను నా సహోద్యోగులకు అసూయపడుతాను, వారు దీన్ని ఎలా సరిగ్గా సిద్ధం చేయాలో నేర్చుకున్నారు). ఇక్కడ మేము DynamoDB పట్టికల నుండి వివిధ సేవల నుండి బ్యాకప్‌లను సెటప్ చేస్తాము:
మేము అత్యంత సమర్థవంతమైన మరియు చవకైన డేటాలేక్‌ని ఎలా నిర్వహించాము మరియు ఇది ఎందుకు జరిగింది

మరియు అవి ఇప్పుడు చాలా సంవత్సరాలుగా క్లాక్‌వర్క్ వంటి పొందుపరిచిన హడూప్/మ్యాప్‌రెడ్యూస్ క్లస్టర్‌లపై క్రమం తప్పకుండా అమలవుతున్నాయి. "దీన్ని సెట్ చేసి మర్చిపో":

మేము అత్యంత సమర్థవంతమైన మరియు చవకైన డేటాలేక్‌ని ఎలా నిర్వహించాము మరియు ఇది ఎందుకు జరిగింది

మీరు విశ్లేషకుల కోసం క్లౌడ్‌లో జూపిటర్ ల్యాప్‌టాప్‌లను సెటప్ చేయడం ద్వారా మరియు AI మోడల్‌లకు శిక్షణ ఇవ్వడానికి మరియు యుద్ధంలో అమర్చడానికి AWS SageMaker సేవను ఉపయోగించడం ద్వారా డేటా పైశాచికత్వంలో సమర్థవంతంగా పాల్గొనవచ్చు. ఇది మాకు ఎలా కనిపిస్తుందో ఇక్కడ ఉంది:

మేము అత్యంత సమర్థవంతమైన మరియు చవకైన డేటాలేక్‌ని ఎలా నిర్వహించాము మరియు ఇది ఎందుకు జరిగింది

అవును, మీరు మీ కోసం లేదా క్లౌడ్‌లోని విశ్లేషకుల కోసం ల్యాప్‌టాప్‌ని తీసుకోవచ్చు మరియు దానిని హడూప్/స్పార్క్ క్లస్టర్‌కి జోడించి, లెక్కలు చేసి, ఆపై ప్రతిదీ డౌన్‌లోడ్ చేసుకోవచ్చు:

మేము అత్యంత సమర్థవంతమైన మరియు చవకైన డేటాలేక్‌ని ఎలా నిర్వహించాము మరియు ఇది ఎందుకు జరిగింది

వ్యక్తిగత విశ్లేషణాత్మక ప్రాజెక్ట్‌లకు నిజంగా సౌకర్యవంతంగా ఉంటుంది మరియు కొన్నింటికి మేము పెద్ద ఎత్తున లెక్కలు మరియు విశ్లేషణల కోసం EMR సేవను విజయవంతంగా ఉపయోగించాము. DataLake కోసం సిస్టమ్ పరిష్కారం గురించి ఏమిటి, అది పని చేస్తుందా? ఈ సమయంలో మేము ఆశ మరియు నిరాశ అంచున ఉన్నాము మరియు శోధనను కొనసాగించాము.

AWS జిగురు - స్టెరాయిడ్‌లపై చక్కగా ప్యాక్ చేయబడిన అపాచీ స్పార్క్

AWS దాని స్వంత “హైవ్/పిగ్/స్పార్క్” స్టాక్‌ను కలిగి ఉందని తేలింది. అందులో నివశించే తేనెటీగ పాత్ర, అనగా. డేటాలేక్‌లోని ఫైల్‌ల కేటలాగ్ మరియు వాటి రకాలు “డేటా కేటలాగ్” సేవ ద్వారా నిర్వహించబడతాయి, ఇది అపాచీ హైవ్ ఫార్మాట్‌తో దాని అనుకూలతను దాచదు. మీ ఫైల్‌లు ఎక్కడ ఉన్నాయి మరియు అవి ఏ ఫార్మాట్‌లో ఉన్నాయి అనే దాని గురించి మీరు ఈ సేవకు సమాచారాన్ని జోడించాలి. డేటా s3 లోనే కాదు, డేటాబేస్లో కూడా ఉంటుంది, కానీ అది ఈ పోస్ట్ యొక్క విషయం కాదు. మా DataLake డేటా డైరెక్టరీ ఎలా నిర్వహించబడుతుందో ఇక్కడ ఉంది:

మేము అత్యంత సమర్థవంతమైన మరియు చవకైన డేటాలేక్‌ని ఎలా నిర్వహించాము మరియు ఇది ఎందుకు జరిగింది

ఫైల్‌లు నమోదు చేయబడ్డాయి, గొప్పవి. ఫైల్‌లు అప్‌డేట్ చేయబడి ఉంటే, మేము క్రాలర్‌లను మాన్యువల్‌గా లేదా షెడ్యూల్‌లో లాంచ్ చేస్తాము, ఇది సరస్సు నుండి వాటి గురించిన సమాచారాన్ని అప్‌డేట్ చేస్తుంది మరియు వాటిని సేవ్ చేస్తుంది. అప్పుడు సరస్సు నుండి డేటాను ప్రాసెస్ చేయవచ్చు మరియు ఫలితాలు ఎక్కడైనా అప్‌లోడ్ చేయబడతాయి. సరళమైన సందర్భంలో, మేము s3కి కూడా అప్‌లోడ్ చేస్తాము. డేటా ప్రాసెసింగ్ ఎక్కడైనా చేయవచ్చు, కానీ మీరు AWS గ్లూ API ద్వారా అధునాతన సామర్థ్యాలను ఉపయోగించి Apache Spark క్లస్టర్‌లో ప్రాసెసింగ్‌ను కాన్ఫిగర్ చేయాలని సూచించబడింది. వాస్తవానికి, మీరు pyspark లైబ్రరీని ఉపయోగించి మంచి పాత మరియు సుపరిచితమైన పైథాన్ కోడ్‌ని తీసుకోవచ్చు మరియు హడూప్ యొక్క ధైర్యాన్ని త్రవ్వకుండా మరియు డాకర్-మోకర్ కంటైనర్‌లను లాగకుండా మరియు డిపెండెన్సీ వైరుధ్యాలను తొలగించకుండా, పర్యవేక్షణతో కొంత సామర్థ్యం గల క్లస్టర్ యొక్క N నోడ్‌లపై దాని అమలును కాన్ఫిగర్ చేయవచ్చు. .

మరోసారి, ఒక సాధారణ ఆలోచన. Apache Sparkని కాన్ఫిగర్ చేయవలసిన అవసరం లేదు, మీరు pyspark కోసం పైథాన్ కోడ్‌ను వ్రాసి, మీ డెస్క్‌టాప్‌లో స్థానికంగా పరీక్షించి, ఆపై క్లౌడ్‌లోని పెద్ద క్లస్టర్‌లో దాన్ని అమలు చేయాలి, మూలం డేటా ఎక్కడ ఉందో మరియు ఫలితాన్ని ఎక్కడ ఉంచాలో పేర్కొనండి. కొన్నిసార్లు ఇది అవసరం మరియు ఉపయోగకరంగా ఉంటుంది మరియు మేము దీన్ని ఎలా సెటప్ చేస్తాము:

మేము అత్యంత సమర్థవంతమైన మరియు చవకైన డేటాలేక్‌ని ఎలా నిర్వహించాము మరియు ఇది ఎందుకు జరిగింది

అందువల్ల, మీరు s3లోని డేటాను ఉపయోగించి స్పార్క్ క్లస్టర్‌లో ఏదైనా లెక్కించవలసి వస్తే, మేము python/pysparkలో కోడ్‌ని వ్రాస్తాము, దానిని పరీక్షించి, క్లౌడ్‌కు శుభం కలుగుతుంది.

ఆర్కెస్ట్రేషన్ గురించి ఏమిటి? పని పడిపోయి అదృశ్యమైతే? అవును, అపాచీ పిగ్ స్టైల్‌లో అందమైన పైప్‌లైన్‌ను తయారు చేయాలని ప్రతిపాదించబడింది మరియు మేము వాటిని కూడా ప్రయత్నించాము, కానీ ప్రస్తుతానికి మేము మా లోతైన అనుకూలీకరించిన ఆర్కెస్ట్రేషన్‌ను PHP మరియు జావాస్క్రిప్ట్‌లలో ఉపయోగించాలని నిర్ణయించుకున్నాము (నాకు అర్థమైంది, అభిజ్ఞా వైరుధ్యం ఉంది, కానీ ఇది పనిచేస్తుంది సంవత్సరాలు మరియు లోపాలు లేకుండా).

మేము అత్యంత సమర్థవంతమైన మరియు చవకైన డేటాలేక్‌ని ఎలా నిర్వహించాము మరియు ఇది ఎందుకు జరిగింది

సరస్సులో నిల్వ చేయబడిన ఫైల్‌ల ఆకృతి పనితీరుకు కీలకం

మరో రెండు ముఖ్యాంశాలను అర్థం చేసుకోవడం చాలా చాలా ముఖ్యం. సరస్సులోని ఫైల్ డేటాపై ప్రశ్నలను వీలైనంత త్వరగా అమలు చేయడానికి మరియు కొత్త సమాచారం జోడించబడినప్పుడు పనితీరు క్షీణించకుండా ఉండటానికి, మీరు వీటిని చేయాలి:

  • ఫైల్‌ల నిలువు వరుసలను విడిగా నిల్వ చేయండి (దీని వలన మీరు నిలువు వరుసలలో ఏముందో అర్థం చేసుకోవడానికి అన్ని పంక్తులను చదవాల్సిన అవసరం లేదు). దీని కోసం మేము కుదింపుతో పారేకెట్ ఆకృతిని తీసుకున్నాము
  • భాష, సంవత్సరం, నెల, రోజు, వారం వంటి ఫోల్డర్‌లలోకి ఫైల్‌లను ముక్కలు చేయడం చాలా ముఖ్యం. ఈ రకమైన షేడింగ్‌ను అర్థం చేసుకున్న ఇంజిన్‌లు వరుసగా మొత్తం డేటాను జల్లెడ పడకుండా, అవసరమైన ఫోల్డర్‌లను మాత్రమే చూస్తాయి.

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

AWS ఎథీనా - ది జాక్-ఇన్-ది-బాక్స్

ఆపై, ఒక సరస్సును సృష్టిస్తున్నప్పుడు, మేము ఏదో అనుకోకుండా అమెజాన్ ఎథీనాను చూశాము. అకస్మాత్తుగా మా భారీ లాగ్ ఫైల్‌లను సరైన (పార్కెట్) కాలమ్ ఫార్మాట్‌లో ఫోల్డర్ ముక్కలుగా అమర్చడం ద్వారా, మీరు చాలా త్వరగా వాటి నుండి చాలా సమాచార ఎంపికలను చేయవచ్చు మరియు అపాచీ స్పార్క్/గ్లూ క్లస్టర్ లేకుండానే నివేదికలను రూపొందించవచ్చు.

s3లోని డేటాతో నడిచే ఎథీనా ఇంజిన్ లెజెండరీ ఆధారంగా రూపొందించబడింది ప్రెస్టొ - డేటా ప్రాసెసింగ్‌కు సంబంధించిన MPP (భారీ సమాంతర ప్రాసెసింగ్) కుటుంబానికి చెందిన ప్రతినిధి, డేటా ఉన్న చోట డేటాను తీసుకోవడం, s3 మరియు హడూప్ నుండి కాసాండ్రా మరియు సాధారణ టెక్స్ట్ ఫైల్‌ల వరకు. మీరు SQL ప్రశ్నను అమలు చేయమని ఎథీనాను అడగాలి, ఆపై ప్రతిదీ "త్వరగా మరియు స్వయంచాలకంగా పని చేస్తుంది." ఎథీనా "స్మార్ట్" అని గమనించడం ముఖ్యం, ఇది అవసరమైన షార్డ్ ఫోల్డర్‌లకు మాత్రమే వెళుతుంది మరియు అభ్యర్థనలో అవసరమైన నిలువు వరుసలను మాత్రమే చదువుతుంది.

ఎథీనాకు అభ్యర్థనల ధర కూడా ఆసక్తికరంగా ఉంటుంది. మేము చెల్లిస్తాము స్కాన్ చేసిన డేటా పరిమాణం. ఆ. నిమిషానికి క్లస్టర్‌లోని యంత్రాల సంఖ్య కోసం కాదు, కానీ... వాస్తవానికి 100-500 మెషీన్‌లలో స్కాన్ చేసిన డేటా కోసం, అభ్యర్థనను పూర్తి చేయడానికి అవసరమైన డేటా మాత్రమే.

మరియు సరిగ్గా విభజించబడిన ఫోల్డర్‌ల నుండి అవసరమైన నిలువు వరుసలను మాత్రమే అభ్యర్థించడం ద్వారా, ఎథీనా సేవ మాకు నెలకు పదుల డాలర్లు ఖర్చవుతుందని తేలింది. క్లస్టర్‌లలోని విశ్లేషణలతో పోలిస్తే, చాలా బాగుంది, దాదాపు ఉచితం!

అలాగే, s3లో మన డేటాను ఎలా పంచుకుంటామో ఇక్కడ ఉంది:

మేము అత్యంత సమర్థవంతమైన మరియు చవకైన డేటాలేక్‌ని ఎలా నిర్వహించాము మరియు ఇది ఎందుకు జరిగింది

తత్ఫలితంగా, తక్కువ సమయంలో, సంస్థలోని పూర్తిగా భిన్నమైన విభాగాలు, సమాచార భద్రత నుండి విశ్లేషణల వరకు, ఎథీనాకు చురుకుగా అభ్యర్థనలు చేయడం ప్రారంభించాయి మరియు సెకన్లలో, చాలా కాలం పాటు “పెద్ద” డేటా నుండి ఉపయోగకరమైన సమాధానాలను పొందుతాయి: నెలలు, అర్ధ సంవత్సరం, మొదలైనవి P.

కానీ మేము మరింత ముందుకు వెళ్లి సమాధానాల కోసం క్లౌడ్‌కి వెళ్లడం ప్రారంభించాము ODBC డ్రైవర్ ద్వారా: ఒక విశ్లేషకుడు సుపరిచితమైన కన్సోల్‌లో SQL ప్రశ్నను వ్రాస్తాడు, ఇది 100-500 మెషీన్‌లలో “పెన్నీల కోసం” డేటాను s3కి పంపుతుంది మరియు సాధారణంగా కొన్ని సెకన్లలో సమాధానాన్ని అందిస్తుంది. సౌకర్యవంతమైన. మరియు వేగంగా. నేను ఇప్పటికీ నమ్మలేకపోతున్నాను.

ఫలితంగా, డేటాను s3లో, సమర్థవంతమైన స్తంభ ఆకృతిలో మరియు ఫోల్డర్‌లలోకి సహేతుకమైన షేడింగ్‌తో డేటాను నిల్వ చేయాలని నిర్ణయించుకోవడంతో... మేము DataLake మరియు వేగవంతమైన మరియు చౌకైన విశ్లేషణాత్మక ఇంజిన్‌ను పొందాము - ఉచితంగా. మరియు అతను కంపెనీలో బాగా ప్రాచుర్యం పొందాడు, ఎందుకంటే ... SQLని అర్థం చేసుకుంటుంది మరియు క్లస్టర్‌లను ప్రారంభించడం/ఆపివేయడం/సెటప్ చేయడం కంటే వేగంగా మాగ్నిట్యూడ్ ఆర్డర్‌లను పని చేస్తుంది. "మరియు ఫలితం ఒకేలా ఉంటే, ఎందుకు ఎక్కువ చెల్లించాలి?"

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

మేము అత్యంత సమర్థవంతమైన మరియు చవకైన డేటాలేక్‌ని ఎలా నిర్వహించాము మరియు ఇది ఎందుకు జరిగింది

కనుగొన్న

సుదీర్ఘమైన, కానీ బాధాకరమైన మార్గాన్ని చెప్పకుండా, సంక్లిష్టత మరియు మద్దతు ధర యొక్క నష్టాలు మరియు స్థాయిని నిరంతరం తగినంతగా అంచనా వేస్తూ, మేము డేటాలేక్ మరియు విశ్లేషణల కోసం ఒక పరిష్కారాన్ని కనుగొన్నాము, ఇది వేగం మరియు యాజమాన్యం యొక్క ఖర్చు రెండింటితో మమ్మల్ని సంతోషపెట్టదు.

సంస్థ యొక్క పూర్తిగా భిన్నమైన విభాగాల అవసరాల కోసం డేటాలేక్‌ను ఆపరేట్ చేయడానికి సమర్థవంతమైన, వేగవంతమైన మరియు చౌకగా నిర్మించడం అనేది ఆర్కిటెక్ట్‌లుగా ఎన్నడూ పని చేయని మరియు స్క్వేర్‌లపై చతురస్రాలను ఎలా గీయాలి అని తెలియని అనుభవజ్ఞులైన డెవలపర్‌ల సామర్థ్యాలలో పూర్తిగా ఉందని తేలింది. బాణాలు మరియు హడూప్ పర్యావరణ వ్యవస్థ నుండి 50 నిబంధనలను తెలుసుకోండి.

ప్రయాణం ప్రారంభంలో, నా తల ఓపెన్ మరియు క్లోజ్డ్ సాఫ్ట్‌వేర్ యొక్క అనేక అడవి జంతుప్రదర్శనశాలల నుండి విడిపోయింది మరియు వారసులకు బాధ్యత యొక్క భారాన్ని అర్థం చేసుకుంది. సాధారణ సాధనాల నుండి మీ డేటాలేక్‌ను రూపొందించడం ప్రారంభించండి: నాగియోస్/మునిన్ -> సాగే/కిబానా -> హడూప్/స్పార్క్/ఎస్3..., అభిప్రాయాన్ని సేకరించడం మరియు జరుగుతున్న ప్రక్రియల భౌతిక శాస్త్రాన్ని లోతుగా అర్థం చేసుకోవడం. ప్రతిదీ సంక్లిష్టంగా మరియు మురికిగా ఉంది - శత్రువులు మరియు పోటీదారులకు ఇవ్వండి.

మీరు క్లౌడ్‌కి వెళ్లకూడదనుకుంటే మరియు ఓపెన్ సోర్స్ ప్రాజెక్ట్‌లను సపోర్ట్ చేయడం, అప్‌డేట్ చేయడం మరియు ప్యాచ్ చేయడం ఇష్టం ఉంటే, మీరు పైన హడూప్ మరియు ప్రెస్టోతో కూడిన చవకైన ఆఫీస్ మెషీన్‌లపై స్థానికంగా మా తరహా స్కీమ్‌ను రూపొందించవచ్చు. ప్రధాన విషయం ఏమిటంటే ఆపడం మరియు ముందుకు సాగడం, లెక్కించడం, సరళమైన మరియు స్పష్టమైన పరిష్కారాల కోసం చూడండి మరియు ప్రతిదీ ఖచ్చితంగా పని చేస్తుంది! అందరికీ శుభాకాంక్షలు మరియు మళ్లీ కలుద్దాం!

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి