ఇది విశ్లేషణాత్మక వ్యవస్థల గురించి కథనాల శ్రేణిలో రెండవ భాగం (పార్ట్ 1కి లింక్).
ఈ రోజు జాగ్రత్తగా డేటా ప్రాసెసింగ్ మరియు ఫలితాల వివరణ దాదాపు ఏ రకమైన వ్యాపారానికైనా సహాయపడుతుందనడంలో సందేహం లేదు. ఈ విషయంలో, విశ్లేషణాత్మక వ్యవస్థలు పారామితులతో ఎక్కువగా లోడ్ అవుతున్నాయి మరియు అప్లికేషన్లలో ట్రిగ్గర్లు మరియు వినియోగదారు ఈవెంట్ల సంఖ్య పెరుగుతోంది.
దీని కారణంగా, కంపెనీలు తమ విశ్లేషకులకు విశ్లేషించడానికి మరియు సరైన నిర్ణయాలు తీసుకోవడానికి మరింత ముడి సమాచారాన్ని ఇస్తున్నాయి. ఒక సంస్థ కోసం విశ్లేషణ వ్యవస్థ యొక్క ప్రాముఖ్యతను తక్కువగా అంచనా వేయకూడదు మరియు సిస్టమ్ కూడా విశ్వసనీయంగా మరియు స్థిరంగా ఉండాలి.
క్లయింట్ విశ్లేషకులు
కస్టమర్ అనలిటిక్స్ అనేది ఒక కంపెనీ అధికారిక SDK ద్వారా దాని వెబ్సైట్ లేదా అప్లికేషన్కు కనెక్ట్ చేసే సేవ, దాని స్వంత కోడ్బేస్లో కలిసిపోతుంది మరియు ఈవెంట్ ట్రిగ్గర్లను ఎంచుకుంటుంది. ఈ విధానానికి స్పష్టమైన ప్రతికూలత ఉంది: మీరు ఎంచుకున్న ఏదైనా సేవ యొక్క పరిమితుల కారణంగా సేకరించిన మొత్తం డేటా మీరు కోరుకున్న విధంగా సరిగ్గా ప్రాసెస్ చేయబడకపోవచ్చు. ఉదాహరణకు, ఒక సిస్టమ్లో MapReduce టాస్క్లను అమలు చేయడం సులభం కాదు, మరొకదానిలో మీరు మీ మోడల్ని అమలు చేయలేరు. మరొక ప్రతికూలత సేవల కోసం సాధారణ (ఆకట్టుకునే) బిల్లు.
మార్కెట్లో అనేక కస్టమర్ అనలిటిక్స్ సొల్యూషన్లు ఉన్నాయి, అయితే ప్రతి పనికి అనువైన సార్వత్రిక సేవ ఎవరూ లేరనే వాస్తవాన్ని ముందుగానే లేదా తరువాత విశ్లేషకులు ఎదుర్కొంటారు (ఈ సేవలన్నింటికీ ధరలు ఎప్పటికప్పుడు పెరుగుతూనే ఉంటాయి). అటువంటి పరిస్థితిలో, కంపెనీలు తరచుగా అవసరమైన అన్ని అనుకూల సెట్టింగ్లు మరియు సామర్థ్యాలతో తమ స్వంత విశ్లేషణ వ్యవస్థను రూపొందించాలని నిర్ణయించుకుంటాయి.
సర్వర్ విశ్లేషకులు
సర్వర్-సైడ్ అనలిటిక్స్ అనేది కంపెనీలో దాని స్వంత సర్వర్లలో మరియు (సాధారణంగా) దాని స్వంత ప్రయత్నాలతో అమలు చేయగల సేవ. ఈ నమూనాలో, అన్ని వినియోగదారు ఈవెంట్లు అంతర్గత సర్వర్లలో నిల్వ చేయబడతాయి, డెవలపర్లు విభిన్న నిల్వ డేటాబేస్లను ప్రయత్నించడానికి మరియు అత్యంత అనుకూలమైన నిర్మాణాన్ని ఎంచుకోవడానికి అనుమతిస్తుంది. మీరు ఇప్పటికీ కొన్ని టాస్క్ల కోసం థర్డ్-పార్టీ క్లయింట్ అనలిటిక్స్ని ఉపయోగించాలనుకున్నా, అది ఇప్పటికీ సాధ్యమే.
సర్వర్ వైపు విశ్లేషణలను రెండు విధాలుగా అమలు చేయవచ్చు. మొదటిది: కొన్ని ఓపెన్ సోర్స్ యుటిలిటీలను ఎంచుకోండి, వాటిని మీ మెషీన్లలో అమర్చండి మరియు వ్యాపార లాజిక్ను అభివృద్ధి చేయండి.
Плюсы Минусы
మీరు మీకు కావలసిన ఏదైనా అనుకూలీకరించవచ్చు
ఇది తరచుగా చాలా కష్టం మరియు ప్రత్యేక డెవలపర్లు అవసరం
రెండవది: SaaS సేవలను (అమెజాన్, గూగుల్, అజూర్) మీరే ఉపయోగించుకునే బదులు తీసుకోండి. మేము మూడవ భాగంలో SaaS గురించి మరింత వివరంగా మాట్లాడుతాము.
Плюсы Минусы
ఇది మీడియం వాల్యూమ్లలో చౌకగా ఉండవచ్చు, కానీ పెద్ద పెరుగుదలతో ఇది ఇప్పటికీ చాలా ఖరీదైనదిగా మారుతుంది
అన్ని పారామితులను నియంత్రించడం సాధ్యం కాదు
అడ్మినిస్ట్రేషన్ పూర్తిగా సర్వీస్ ప్రొవైడర్ భుజాలకు బదిలీ చేయబడుతుంది
సేవ లోపల ఏమి ఉందో ఎల్లప్పుడూ తెలియదు (ఇది అవసరం ఉండకపోవచ్చు)
సర్వర్ విశ్లేషణలను ఎలా సేకరించాలి
మనం క్లయింట్ అనలిటిక్స్ని ఉపయోగించడం నుండి దూరంగా వెళ్లి, మన స్వంతంగా నిర్మించుకోవాలనుకుంటే, ముందుగా మనం కొత్త సిస్టమ్ యొక్క నిర్మాణం గురించి ఆలోచించాలి. మీరు ఏమి పరిగణించాలి, ప్రతి దశ ఎందుకు అవసరం మరియు మీరు ఏ సాధనాలను ఉపయోగించవచ్చో నేను దశల వారీగా మీకు తెలియజేస్తాను.
1. డేటాను స్వీకరించడం
కస్టమర్ అనలిటిక్స్ విషయంలో మాదిరిగానే, మొదటగా, కంపెనీ విశ్లేషకులు వారు భవిష్యత్తులో అధ్యయనం చేయాలనుకుంటున్న ఈవెంట్ల రకాలను ఎంచుకుని, వాటిని జాబితాగా సేకరిస్తారు. సాధారణంగా, ఈ సంఘటనలు ఒక నిర్దిష్ట క్రమంలో జరుగుతాయి, దీనిని "ఈవెంట్ నమూనా" అని పిలుస్తారు.
తరువాత, మొబైల్ అప్లికేషన్ (వెబ్సైట్) సాధారణ వినియోగదారులు (పరికరాలు) మరియు అనేక సర్వర్లను కలిగి ఉందని ఊహించండి. ఈవెంట్లను పరికరాల నుండి సర్వర్లకు సురక్షితంగా బదిలీ చేయడానికి, ఇంటర్మీడియట్ లేయర్ అవసరం. ఆర్కిటెక్చర్పై ఆధారపడి, అనేక విభిన్న ఈవెంట్ క్యూలు ఉండవచ్చు. అపాచీ కాఫ్కా అది - పబ్/సబ్ క్యూ, ఇది ఈవెంట్లను సేకరించడానికి క్యూగా ఉపయోగించబడుతుంది.
ప్రకారం Quoraలో పోస్ట్ 2014లో, అపాచీ కాఫ్కా సృష్టికర్త సాఫ్ట్వేర్కు ఫ్రాంజ్ కాఫ్కా పేరు పెట్టాలని నిర్ణయించుకున్నాడు, ఎందుకంటే "ఇది రాయడానికి ఆప్టిమైజ్ చేయబడిన సిస్టమ్" మరియు అతను కాఫ్కా రచనలను ఇష్టపడుతున్నాడు. — వికీపీడియా
మా ఉదాహరణలో, చాలా మంది డేటా నిర్మాతలు మరియు డేటా వినియోగదారులు (పరికరాలు మరియు సర్వర్లు) ఉన్నారు మరియు కాఫ్కా వారిని ఒకదానికొకటి కనెక్ట్ చేయడంలో సహాయపడుతుంది. వినియోగదారులు క్రింది దశల్లో మరింత వివరంగా వివరించబడతారు, ఇక్కడ వారు ప్రధాన సబ్జెక్టులుగా ఉంటారు. ఇప్పుడు మేము డేటా నిర్మాతలను (ఈవెంట్లు) మాత్రమే పరిశీలిస్తాము.
కాఫ్కా క్యూ మరియు విభజన యొక్క భావనలను సంగ్రహిస్తుంది; దీని గురించి ప్రత్యేకంగా మరెక్కడా చదవడం మంచిది (ఉదాహరణకు, లో డాక్యుమెంటేషన్) వివరాల్లోకి వెళ్లకుండా, రెండు వేర్వేరు OS ల కోసం మొబైల్ అప్లికేషన్ ప్రారంభించబడిందని ఊహించుకుందాం. అప్పుడు ప్రతి వెర్షన్ దాని స్వంత ప్రత్యేక ఈవెంట్ స్ట్రీమ్ను సృష్టిస్తుంది. నిర్మాతలు కాఫ్కాకు ఈవెంట్లను పంపుతారు, అవి తగిన క్యూలో రికార్డ్ చేయబడతాయి.
అదే సమయంలో, కాఫ్కా మిమ్మల్ని భాగాలుగా చదవడానికి మరియు మినీ-బ్యాచ్లలో ఈవెంట్ల స్ట్రీమ్ను ప్రాసెస్ చేయడానికి అనుమతిస్తుంది. కాఫ్కా అనేది చాలా అనుకూలమైన సాధనం, ఇది పెరుగుతున్న అవసరాలకు అనుగుణంగా ఉంటుంది (ఉదాహరణకు, ఈవెంట్ల జియోలొకేషన్ ద్వారా).
సాధారణంగా ఒక ముక్క సరిపోతుంది, కానీ స్కేలింగ్ చేసేటప్పుడు విషయాలు మరింత క్లిష్టంగా ఉంటాయి (ఎప్పటిలాగే). వాస్తుశిల్పం తప్పక దోషాలను తట్టుకునేలా ఉండాలి కాబట్టి, ఉత్పత్తిలో ఒక భౌతిక ముక్కను మాత్రమే ఉపయోగించాలని ఎవరూ కోరుకోరు. కాఫ్కాతో పాటు, మరొక ప్రసిద్ధ పరిష్కారం ఉంది - RabbitMQ. ఈవెంట్ అనలిటిక్స్ కోసం మేము దీన్ని ప్రొడక్షన్లో ఉపయోగించలేదు (మీకు అలాంటి అనుభవం ఉంటే, దాని గురించి వ్యాఖ్యలలో మాకు తెలియజేయండి!). అయితే, మేము AWS కినిసిస్ని ఉపయోగించాము.
తదుపరి దశకు వెళ్లే ముందు, మేము సిస్టమ్ యొక్క మరో అదనపు పొరను పేర్కొనాలి - ముడి లాగ్ నిల్వ. ఇది అవసరమైన లేయర్ కాదు, కానీ ఏదైనా తప్పు జరిగితే మరియు కాఫ్కాలోని ఈవెంట్ క్యూలు రీసెట్ చేయబడితే అది ఉపయోగకరంగా ఉంటుంది. ముడి లాగ్లను నిల్వ చేయడానికి సంక్లిష్టమైన మరియు ఖరీదైన పరిష్కారం అవసరం లేదు; మీరు వాటిని సరైన క్రమంలో ఎక్కడో వ్రాయవచ్చు (హార్డ్ డ్రైవ్లో కూడా).
2. ఈవెంట్ స్ట్రీమ్లను ప్రాసెస్ చేస్తోంది
మేము అన్ని ఈవెంట్లను సిద్ధం చేసి, వాటిని తగిన క్యూలలో ఉంచిన తర్వాత, మేము ప్రాసెసింగ్ దశకు వెళ్తాము. ఇక్కడ నేను రెండు అత్యంత సాధారణ ప్రాసెసింగ్ ఎంపికల గురించి మీకు చెప్తాను.
అపాచీ సిస్టమ్లో స్పార్క్ స్ట్రీమింగ్ను ప్రారంభించడం మొదటి ఎంపిక. అన్ని Apache ఉత్పత్తులు HDFSలో ప్రత్యక్ష ప్రసారం, ఫైల్ ప్రతిరూపాలతో సురక్షితమైన ఫైల్ సిస్టమ్. స్పార్క్ స్ట్రీమింగ్ అనేది స్ట్రీమింగ్ డేటా మరియు స్కేల్లను బాగా హ్యాండిల్ చేసే సులభమైన ఉపయోగించే సాధనం. అయితే, దానిని నిర్వహించడం కష్టం కావచ్చు.
మీ స్వంత ఈవెంట్ హ్యాండ్లర్ను నిర్మించడం మరొక ఎంపిక. దీన్ని చేయడానికి, మీరు ఉదాహరణకు, పైథాన్ అప్లికేషన్ను వ్రాయాలి, దానిని డాకర్లో నిర్మించి, కాఫ్కా క్యూకు సభ్యత్వాన్ని పొందాలి. ట్రిగ్గర్లు డాకర్ హ్యాండ్లర్ల వద్దకు వచ్చినప్పుడు, ప్రాసెసింగ్ ప్రారంభమవుతుంది. ఈ పద్ధతితో, మీరు అన్ని సమయాల్లో అప్లికేషన్లు అమలులో ఉంచుకోవాలి.
మేము పైన వివరించిన ఎంపికలలో ఒకదానిని ఎంచుకున్నామని మరియు ప్రాసెసింగ్కు వెళ్లామని అనుకుందాం. డేటా యొక్క చెల్లుబాటును తనిఖీ చేయడం, చెత్తను ఫిల్టర్ చేయడం మరియు "విరిగిన" ఈవెంట్లను ప్రాసెసర్లు ప్రారంభించాలి. ధృవీకరణ కోసం మేము సాధారణంగా ఉపయోగిస్తాము సెర్బెరస్. దీని తర్వాత, మీరు డేటా మ్యాపింగ్ చేయవచ్చు: సాధారణ పట్టికకు జోడించడానికి వివిధ మూలాల నుండి డేటా సాధారణీకరించబడుతుంది మరియు ప్రామాణికం చేయబడుతుంది.
3. డేటాబేస్
మూడవ దశ సాధారణ సంఘటనలను నిర్వహించడం. రెడీమేడ్ అనలిటికల్ సిస్టమ్తో పని చేస్తున్నప్పుడు, మేము వాటిని తరచుగా యాక్సెస్ చేయాల్సి ఉంటుంది, కాబట్టి అనుకూలమైన డేటాబేస్ను ఎంచుకోవడం చాలా ముఖ్యం.
డేటా ఫిక్స్డ్ స్కీమ్కి బాగా సరిపోతుంటే, మీరు ఎంచుకోవచ్చు క్లిక్హౌస్ లేదా కొన్ని ఇతర స్తంభాల డేటాబేస్. ఈ విధంగా అగ్రిగేషన్లు చాలా త్వరగా పని చేస్తాయి. ప్రతికూలత ఏమిటంటే పథకం కఠినంగా పరిష్కరించబడింది మరియు అందువల్ల మార్పు లేకుండా ఏకపక్ష వస్తువులను జోడించడం సాధ్యం కాదు (ఉదాహరణకు, ప్రామాణికం కాని సంఘటన జరిగినప్పుడు). కానీ మీరు చాలా త్వరగా లెక్కించవచ్చు.
నిర్మాణాత్మక డేటా కోసం, మీరు NoSQL తీసుకోవచ్చు, ఉదాహరణకు, అపాచీ కాసాండ్రా. ఇది హెచ్డిఎఫ్ఎస్లో నడుస్తుంది, బాగా నకలు చేస్తుంది, మీరు చాలా సందర్భాలను లేవనెత్తవచ్చు మరియు తప్పులను తట్టుకుంటుంది.
మీరు సరళమైనదాన్ని కూడా పెంచవచ్చు, ఉదాహరణకు, MongoDB. ఇది చాలా నెమ్మదిగా మరియు చిన్న వాల్యూమ్ల కోసం. కానీ ప్లస్ ఏమిటంటే ఇది చాలా సులభం మరియు ప్రారంభించడానికి తగినది.
4. అగ్రిగేషన్స్
అన్ని ఈవెంట్లను జాగ్రత్తగా సేవ్ చేసిన తర్వాత, మేము వచ్చిన బ్యాచ్ నుండి అన్ని ముఖ్యమైన సమాచారాన్ని సేకరించి డేటాబేస్ను అప్డేట్ చేయాలనుకుంటున్నాము. ప్రపంచవ్యాప్తంగా, మేము సంబంధిత డాష్బోర్డ్లు మరియు మెట్రిక్లను పొందాలనుకుంటున్నాము. ఉదాహరణకు, ఈవెంట్ల నుండి వినియోగదారు ప్రొఫైల్ని సేకరించి, ప్రవర్తనను కొలవండి. ఈవెంట్లు సమగ్రపరచబడతాయి, సేకరించబడతాయి మరియు మళ్లీ సేవ్ చేయబడతాయి (వినియోగదారు పట్టికలలో). అదే సమయంలో, మీరు ఒక వ్యవస్థను నిర్మించవచ్చు, తద్వారా మీరు అగ్రిగేటర్-కోఆర్డినేటర్కు ఫిల్టర్ను కూడా కనెక్ట్ చేయవచ్చు: నిర్దిష్ట రకమైన ఈవెంట్ నుండి మాత్రమే వినియోగదారులను సేకరించండి.
ఆ తర్వాత, టీమ్లో ఎవరికైనా హై-లెవల్ అనలిటిక్స్ అవసరమైతే, ఎక్స్టర్నల్ అనలిటిక్స్ సిస్టమ్లను కనెక్ట్ చేయవచ్చు. మీరు మళ్ళీ Mixpanel తీసుకోవచ్చు. కానీ ఇది చాలా ఖరీదైనది కాబట్టి, అన్ని వినియోగదారు ఈవెంట్లు అక్కడకు పంపబడవు, కానీ అవసరమైనవి మాత్రమే. దీన్ని చేయడానికి, మేము ఒక కోఆర్డినేటర్ని సృష్టించాలి, అతను కొన్ని అసలైన ఈవెంట్లను లేదా మనం ఇంతకు ముందు సమగ్రపరచిన వాటిని బాహ్య సిస్టమ్లు, APIలు లేదా అడ్వర్టైజింగ్ ప్లాట్ఫారమ్లకు బదిలీ చేస్తాడు.
5. ఫ్రంటెండ్
మీరు సృష్టించిన సిస్టమ్కు ఫ్రంటెండ్ను కనెక్ట్ చేయాలి. ఒక మంచి ఉదాహరణ సేవ redash, డాష్బోర్డ్లను రూపొందించడంలో సహాయపడే డేటాబేస్ GUI. పరస్పర చర్య ఎలా పనిచేస్తుంది:
వినియోగదారు SQL ప్రశ్నను వేస్తారు.
ప్రతిస్పందనగా అతను ఒక గుర్తును అందుకుంటాడు.
ఇది దాని కోసం 'కొత్త విజువలైజేషన్'ని సృష్టిస్తుంది మరియు మీ కోసం మీరు సేవ్ చేసుకోగల అందమైన గ్రాఫ్ను పొందుతుంది.
సేవలోని విజువలైజేషన్లు స్వయంచాలకంగా నవీకరించబడతాయి, మీరు మీ పర్యవేక్షణను అనుకూలీకరించవచ్చు మరియు ట్రాక్ చేయవచ్చు. Redash స్వీయ-హోస్ట్ అయితే ఉచితం, కానీ SaaSగా దీని ధర నెలకు $50 అవుతుంది.
తీర్మానం
పైన ఉన్న అన్ని దశలను పూర్తి చేసిన తర్వాత, మీరు మీ సర్వర్ విశ్లేషణలను సృష్టిస్తారు. దయచేసి ఇది కస్టమర్ అనలిటిక్స్ని కనెక్ట్ చేయడం అంత సులభం కాదని గుర్తుంచుకోండి, ఎందుకంటే ప్రతిదీ మీరే కాన్ఫిగర్ చేసుకోవాలి. అందువల్ల, మీ స్వంత సిస్టమ్ను సృష్టించే ముందు, మీరు దానికి కేటాయించడానికి సిద్ధంగా ఉన్న వనరులతో తీవ్రమైన విశ్లేషణల వ్యవస్థ అవసరాన్ని పోల్చడం విలువ.
మీరు గణితాన్ని పూర్తి చేసి, ఖర్చులు చాలా ఎక్కువగా ఉన్నాయని గుర్తించినట్లయితే, తర్వాతి భాగంలో నేను సర్వర్-సైడ్ అనలిటిక్స్ యొక్క చౌక వెర్షన్ను ఎలా తయారు చేయాలో గురించి మాట్లాడతాను.
చదివినందుకు ధన్యవాదములు! వ్యాఖ్యలలో ప్రశ్నలు అడగడానికి నేను సంతోషిస్తాను.