ఈ వ్యాసం మీడియంపై నా వ్యాసానికి అనువాదం -
నేను డేటా సరస్సు గురించి ఎందుకు వ్రాయాలనుకున్నాను? నేను 10 సంవత్సరాలుగా డేటా మరియు అనలిటిక్స్తో పని చేస్తున్నాను మరియు ఇప్పుడు నేను ఖచ్చితంగా బోస్టన్లోని కేంబ్రిడ్జ్లోని Amazon Alexa AIలో పెద్ద డేటాతో పని చేస్తున్నాను, అయినప్పటికీ నేను వాంకోవర్ ద్వీపంలోని విక్టోరియాలో నివసిస్తున్నాను మరియు తరచుగా బోస్టన్, సీటెల్ని సందర్శిస్తాను. , మరియు వాంకోవర్లో మరియు కొన్నిసార్లు మాస్కోలో కూడా నేను సమావేశాలలో మాట్లాడతాను. నేను కూడా ఎప్పటికప్పుడు వ్రాస్తాను, కానీ నేను ప్రధానంగా ఆంగ్లంలో వ్రాస్తాను మరియు నేను ఇప్పటికే వ్రాసాను
నేను ఎల్లప్పుడూ డేటా గిడ్డంగులతో పని చేస్తున్నాను మరియు 2015 నుండి నేను అమెజాన్ వెబ్ సేవలతో కలిసి పని చేయడం ప్రారంభించాను మరియు సాధారణంగా క్లౌడ్ అనలిటిక్స్ (AWS, Azure, GCP)కి మారాను. నేను 2007 నుండి అనలిటిక్స్ సొల్యూషన్స్ యొక్క పరిణామాన్ని గమనించాను మరియు డేటా వేర్హౌస్ విక్రేత టెరాడేటా కోసం కూడా పని చేసాను మరియు దానిని స్బేర్బ్యాంక్లో అమలు చేసాను మరియు హడూప్తో బిగ్ డేటా కనిపించినప్పుడు. నిల్వ యుగం గడిచిపోయిందని, ఇప్పుడు అంతా హడూప్లో ఉందని అందరూ చెప్పడం ప్రారంభించారు, ఆపై వారు డేటా లేక్ గురించి మాట్లాడటం ప్రారంభించారు, ఇప్పుడు డేటా గిడ్డంగి ముగింపు ఖచ్చితంగా వచ్చింది. కానీ అదృష్టవశాత్తూ (దురదృష్టవశాత్తూ హడూప్ని ఏర్పాటు చేయడం ద్వారా చాలా డబ్బు సంపాదించిన కొంతమందికి), డేటా గిడ్డంగి దూరంగా లేదు.
ఈ వ్యాసంలో మనం డేటా సరస్సు అంటే ఏమిటో చూద్దాం. ఈ కథనం డేటా గిడ్డంగులతో తక్కువ లేదా అనుభవం లేని వ్యక్తుల కోసం ఉద్దేశించబడింది.
చిత్రంలో లేక్ బ్లెడ్ ఉంది, ఇది నాకు ఇష్టమైన సరస్సులలో ఒకటి, నేను అక్కడ ఒక్కసారి మాత్రమే ఉన్నా, నా జీవితాంతం గుర్తుంచుకున్నాను. కానీ మేము మరొక రకమైన సరస్సు గురించి మాట్లాడుతాము - డేటా సరస్సు. బహుశా మీలో చాలామంది ఇప్పటికే ఈ పదం గురించి ఒకటి కంటే ఎక్కువసార్లు విన్నారు, కానీ మరొక నిర్వచనం ఎవరికీ హాని కలిగించదు.
అన్నింటిలో మొదటిది, డేటా లేక్ యొక్క అత్యంత ప్రసిద్ధ నిర్వచనాలు ఇక్కడ ఉన్నాయి:
“సంస్థలోని ఎవరికైనా విశ్లేషణ కోసం అందుబాటులో ఉండే అన్ని రకాల ముడి డేటా యొక్క ఫైల్ నిల్వ” - మార్టిన్ ఫౌలర్.
"డేటా మార్ట్ అనేది నీటి బాటిల్ అని మీరు అనుకుంటే - శుద్ధి చేయబడి, ప్యాక్ చేయబడి మరియు సౌకర్యవంతమైన వినియోగం కోసం ప్యాక్ చేయబడి ఉంటుంది, అప్పుడు డేటా సరస్సు దాని సహజ రూపంలో ఉన్న నీటి భారీ రిజర్వాయర్. వినియోగదారులు, నేను నా కోసం నీటిని సేకరించగలను, లోతుగా డైవ్ చేయగలను, అన్వేషించగలను” - జేమ్స్ డిక్సన్.
డేటా సరస్సు అనేది విశ్లేషణలకు సంబంధించినదని ఇప్పుడు మాకు ఖచ్చితంగా తెలుసు, ఇది పెద్ద మొత్తంలో డేటాను దాని అసలు రూపంలో నిల్వ చేయడానికి అనుమతిస్తుంది మరియు మేము డేటాకు అవసరమైన మరియు అనుకూలమైన ప్రాప్యతను కలిగి ఉన్నాము.
నేను తరచుగా విషయాలను సరళీకృతం చేయాలనుకుంటున్నాను, నేను సంక్లిష్టమైన పదాన్ని సరళమైన పదాలలో వివరించగలిగితే, అది ఎలా పనిచేస్తుందో మరియు అది దేనికి అవసరమో నాకు నేను అర్థం చేసుకున్నాను. ఒక రోజు, నేను ఐఫోన్ ఫోటో గ్యాలరీలో తిరుగుతున్నాను, అది నాకు అర్థమైంది, ఇది నిజమైన డేటా లేక్, నేను సమావేశాల కోసం స్లయిడ్ను కూడా తయారు చేసాను:
ప్రతిదీ చాలా సులభం. మేము ఫోన్లో ఫోటో తీస్తాము, ఫోటో ఫోన్లో సేవ్ చేయబడుతుంది మరియు ఐక్లౌడ్ (క్లౌడ్ ఫైల్ నిల్వ) లో సేవ్ చేయబడుతుంది. ఫోన్ ఫోటో మెటాడేటాను కూడా సేకరిస్తుంది: ఏమి చూపబడింది, జియో ట్యాగ్, సమయం. ఫలితంగా, మేము మా ఫోటోను కనుగొనడానికి iPhone యొక్క వినియోగదారు-స్నేహపూర్వక ఇంటర్ఫేస్ను ఉపయోగించవచ్చు మరియు మేము సూచికలను కూడా చూస్తాము, ఉదాహరణకు, నేను అగ్ని అనే పదంతో ఫోటోల కోసం శోధిస్తున్నప్పుడు, నేను అగ్ని చిత్రంతో 3 ఫోటోలను కనుగొంటాను. నాకు, ఇది చాలా త్వరగా మరియు ఖచ్చితంగా పని చేసే బిజినెస్ ఇంటెలిజెన్స్ సాధనం లాంటిది.
మరియు వాస్తవానికి, భద్రత (అధికారీకరణ మరియు ప్రమాణీకరణ) గురించి మనం మరచిపోకూడదు, లేకుంటే మా డేటా సులభంగా పబ్లిక్ డొమైన్లో ముగుస్తుంది. డెవలపర్ల నిర్లక్ష్యం మరియు సాధారణ నియమాలను పాటించడంలో వైఫల్యం కారణంగా డేటా పబ్లిక్గా అందుబాటులోకి వచ్చిన పెద్ద సంస్థలు మరియు స్టార్టప్ల గురించి చాలా వార్తలు ఉన్నాయి.
అటువంటి సాధారణ చిత్రం కూడా డేటా సరస్సు అంటే ఏమిటో, సాంప్రదాయ డేటా గిడ్డంగి నుండి దాని తేడాలు మరియు దాని ప్రధాన అంశాలని ఊహించడంలో మాకు సహాయపడుతుంది:
- డేటా లోడ్ అవుతోంది (ఇంజెషన్) అనేది డేటా లేక్లో కీలకమైన భాగం. డేటా రెండు విధాలుగా డేటా వేర్హౌస్లోకి ప్రవేశించవచ్చు - బ్యాచ్ (విరామాలలో లోడ్ చేయడం) మరియు స్ట్రీమింగ్ (డేటా ఫ్లో).
- ఫైల్ నిల్వ (నిల్వ) అనేది డేటా లేక్ యొక్క ప్రధాన భాగం. సులువుగా స్కేలబుల్గా, అత్యంత విశ్వసనీయంగా మరియు తక్కువ ధరకు నిల్వ ఉండేలా మాకు అవసరం. ఉదాహరణకు, AWSలో ఇది S3.
- కేటలాగ్ మరియు శోధన (కేటలాగ్ మరియు సెర్చ్) - డేటా స్వాంప్ను నివారించడానికి (ఇది మేము మొత్తం డేటాను ఒకే కుప్పలో డంప్ చేసినప్పుడు, ఆపై దానితో పని చేయడం అసాధ్యం), డేటాను వర్గీకరించడానికి మేము మెటాడేటా లేయర్ను సృష్టించాలి. తద్వారా వినియోగదారులు విశ్లేషణకు అవసరమైన డేటాను సులభంగా కనుగొనగలరు. అదనంగా, మీరు ElasticSearch వంటి అదనపు శోధన పరిష్కారాలను ఉపయోగించవచ్చు. యూజర్ ఫ్రెండ్లీ ఇంటర్ఫేస్ ద్వారా అవసరమైన డేటాను కనుగొనడంలో వినియోగదారుకు శోధన సహాయపడుతుంది.
- ప్రాసెసింగ్ (ప్రాసెస్) - ఈ దశ డేటాను ప్రాసెస్ చేయడానికి మరియు మార్చడానికి బాధ్యత వహిస్తుంది. మేము డేటాను మార్చవచ్చు, దాని నిర్మాణాన్ని మార్చవచ్చు, శుభ్రం చేయవచ్చు మరియు మరెన్నో చేయవచ్చు.
- భద్రత (భద్రత) - పరిష్కారం యొక్క భద్రతా రూపకల్పనపై సమయాన్ని వెచ్చించడం ముఖ్యం. ఉదాహరణకు, నిల్వ, ప్రాసెసింగ్ మరియు లోడింగ్ సమయంలో డేటా ఎన్క్రిప్షన్. ప్రామాణీకరణ మరియు అధికార పద్ధతులను ఉపయోగించడం ముఖ్యం. చివరగా, ఆడిట్ సాధనం అవసరం.
ఆచరణాత్మక దృక్కోణం నుండి, మేము డేటా సరస్సును మూడు లక్షణాల ద్వారా వర్గీకరించవచ్చు:
- ఏదైనా సేకరించి నిల్వ చేయండి — డేటా సరస్సు మొత్తం డేటాను కలిగి ఉంటుంది, ఏ సమయంలోనైనా ముడి ప్రాసెస్ చేయని డేటా మరియు ప్రాసెస్ చేయబడిన/క్లీన్ చేయబడిన డేటా రెండూ ఉంటాయి.
- డీప్ స్కాన్ — డేటా సరస్సు వినియోగదారులను డేటాను అన్వేషించడానికి మరియు విశ్లేషించడానికి అనుమతిస్తుంది.
- సౌకర్యవంతమైన యాక్సెస్ — డేటా సరస్సు విభిన్న డేటా మరియు విభిన్న దృశ్యాలకు అనువైన యాక్సెస్ను అందిస్తుంది.
ఇప్పుడు మనం డేటా వేర్హౌస్ మరియు డేటా లేక్ మధ్య వ్యత్యాసం గురించి మాట్లాడవచ్చు. సాధారణంగా ప్రజలు అడుగుతారు:
- డేటా గిడ్డంగి గురించి ఏమిటి?
- మేము డేటా వేర్హౌస్ని డేటా లేక్తో భర్తీ చేస్తున్నామా లేదా దానిని విస్తరిస్తున్నామా?
- డేటా లేక్ లేకుండా చేయడం ఇప్పటికీ సాధ్యమేనా?
సంక్షిప్తంగా, స్పష్టమైన సమాధానం లేదు. ఇది అన్ని నిర్దిష్ట పరిస్థితి, జట్టు నైపుణ్యాలు మరియు బడ్జెట్ మీద ఆధారపడి ఉంటుంది. ఉదాహరణకు, డేటా గిడ్డంగిని ఒరాకిల్కి AWSకి మార్చడం మరియు Amazon అనుబంధ సంస్థ - Woot - ద్వారా డేటా సరస్సును సృష్టించడం
మరోవైపు, వారి డేటా ప్లాట్ఫారమ్ (2020 వరకు ఇది డేటా వేర్హౌస్) డేటా లేక్ మరియు డేటా వేర్హౌస్ రెండింటినీ కలపడానికి మిమ్మల్ని అనుమతిస్తుంది కాబట్టి, మీరు ఇకపై డేటా లేక్ గురించి ఆలోచించాల్సిన అవసరం లేదని విక్రేత స్నోఫ్లేక్ చెప్పారు. నేను స్నోఫ్లేక్తో పెద్దగా పని చేయలేదు మరియు ఇది నిజంగా దీన్ని చేయగల ప్రత్యేకమైన ఉత్పత్తి. సమస్య యొక్క ధర మరొక విషయం.
ముగింపులో, నా వ్యక్తిగత అభిప్రాయం ఏమిటంటే, మా రిపోర్టింగ్ కోసం డేటా యొక్క ప్రధాన వనరుగా మాకు ఇప్పటికీ డేటా వేర్హౌస్ అవసరం మరియు సరిపోని వాటిని మేము డేటా సరస్సులో నిల్వ చేస్తాము. వ్యాపారానికి నిర్ణయాలు తీసుకోవడానికి సులభమైన ప్రాప్యతను అందించడం అనేది విశ్లేషణల యొక్క మొత్తం పాత్ర. ఎవరైనా ఏది చెప్పినప్పటికీ, వ్యాపార వినియోగదారులు డేటా సరస్సు కంటే డేటా వేర్హౌస్తో మరింత సమర్థవంతంగా పని చేస్తారు, ఉదాహరణకు అమెజాన్లో - రెడ్షిఫ్ట్ (విశ్లేషణాత్మక డేటా గిడ్డంగి) ఉంది మరియు రెడ్షిఫ్ట్ స్పెక్ట్రమ్/ఎథీనా (S3లో డేటా లేక్ కోసం SQL ఇంటర్ఫేస్ ఆధారంగా అందులో నివశించే తేనెటీగలు/ప్రెస్టో). ఇతర ఆధునిక విశ్లేషణాత్మక డేటా గిడ్డంగులకు కూడా ఇది వర్తిస్తుంది.
సాధారణ డేటా వేర్హౌస్ నిర్మాణాన్ని చూద్దాం:
ఇది ఒక క్లాసిక్ పరిష్కారం. మాకు సోర్స్ సిస్టమ్లు ఉన్నాయి, ETL/ELTని ఉపయోగించి మేము డేటాను విశ్లేషణాత్మక డేటా వేర్హౌస్లోకి కాపీ చేసి, దానిని బిజినెస్ ఇంటెలిజెన్స్ సొల్యూషన్కి కనెక్ట్ చేస్తాము (నాకు ఇష్టమైనది టేబుల్, మీది ఏమిటి?).
ఈ పరిష్కారం క్రింది ప్రతికూలతలను కలిగి ఉంది:
- ETL/ELT కార్యకలాపాలకు సమయం మరియు వనరులు అవసరం.
- నియమం ప్రకారం, విశ్లేషణాత్మక డేటా గిడ్డంగిలో డేటాను నిల్వ చేయడానికి మెమరీ చౌకగా ఉండదు (ఉదాహరణకు, Redshift, BigQuery, Teradata), ఎందుకంటే మేము మొత్తం క్లస్టర్ను కొనుగోలు చేయాలి.
- వ్యాపార వినియోగదారులు క్లీన్ చేయబడిన మరియు తరచుగా సమగ్ర డేటాకు యాక్సెస్ కలిగి ఉంటారు మరియు ముడి డేటాకు ప్రాప్యతను కలిగి ఉండరు.
వాస్తవానికి, ఇది మీ కేసుపై ఆధారపడి ఉంటుంది. మీ డేటా వేర్హౌస్తో మీకు సమస్యలు లేకుంటే, మీకు డేటా లేక్ అవసరం లేదు. కానీ స్థలం, శక్తి లేదా ధర లేకపోవడంతో సమస్యలు తలెత్తినప్పుడు, మీరు డేటా సరస్సు ఎంపికను పరిగణించవచ్చు. అందుకే డేటా సరస్సు బాగా ప్రాచుర్యం పొందింది. డేటా లేక్ ఆర్కిటెక్చర్ యొక్క ఉదాహరణ ఇక్కడ ఉంది:
డేటా లేక్ విధానాన్ని ఉపయోగించి, మేము మా డేటా లేక్ (బ్యాచ్ లేదా స్ట్రీమింగ్) లోకి ముడి డేటాను లోడ్ చేస్తాము, ఆపై మేము అవసరమైన డేటాను ప్రాసెస్ చేస్తాము. డేటా లేక్ వ్యాపార వినియోగదారులను వారి స్వంత డేటా ట్రాన్స్ఫార్మేషన్లను (ETL/ELT) సృష్టించడానికి లేదా బిజినెస్ ఇంటెలిజెన్స్ సొల్యూషన్లలో డేటాను విశ్లేషించడానికి అనుమతిస్తుంది (అవసరమైన డ్రైవర్ అందుబాటులో ఉంటే).
ఏదైనా విశ్లేషణ పరిష్కారం యొక్క లక్ష్యం వ్యాపార వినియోగదారులకు సేవ చేయడం. అందువల్ల, మేము ఎల్లప్పుడూ వ్యాపార అవసరాలకు అనుగుణంగా పని చేయాలి. (అమెజాన్లో ఇది సూత్రాలలో ఒకటి - వెనుకకు పని చేయడం).
డేటా గిడ్డంగి మరియు డేటా సరస్సు రెండింటితో పని చేస్తూ, మేము రెండు పరిష్కారాలను పోల్చవచ్చు:
డేటా గిడ్డంగి డేటా సరస్సుతో పోటీపడదు, కానీ దానిని పూర్తి చేస్తుంది అనేది డ్రా చేయగల ప్రధాన ముగింపు. అయితే మీ విషయంలో ఏది సరైనదో నిర్ణయించుకోవడం మీ ఇష్టం. దీన్ని మీరే ప్రయత్నించడం మరియు సరైన తీర్మానాలు చేయడం ఎల్లప్పుడూ ఆసక్తికరంగా ఉంటుంది.
నేను డేటా సరస్సు విధానాన్ని ఉపయోగించడం ప్రారంభించిన సందర్భాలలో ఒకదాన్ని కూడా మీకు చెప్పాలనుకుంటున్నాను. ప్రతిదీ చాలా చిన్నవిషయం, నేను ELT టూల్ను ఉపయోగించేందుకు ప్రయత్నించాను (మాకు Matillion ETL ఉంది) మరియు Amazon Redshift, నా పరిష్కారం పనిచేసింది, కానీ అవసరాలకు సరిపోలేదు.
నేను 2 కేసుల కోసం డేటాను అందించడానికి వెబ్ లాగ్లను తీసుకొని, వాటిని మార్చాలి మరియు వాటిని సమగ్రపరచాలి:
- మార్కెటింగ్ బృందం SEO కోసం బోట్ కార్యాచరణను విశ్లేషించాలనుకుంది
- IT వెబ్సైట్ పనితీరు కొలమానాలను చూడాలని కోరుకుంది
చాలా సులభమైన, చాలా సులభమైన లాగ్లు. ఇక్కడ ఒక ఉదాహరణ:
https 2018-07-02T22:23:00.186641Z app/my-loadbalancer/50dc6c495c0c9188
192.168.131.39:2817 10.0.0.1:80 0.086 0.048 0.037 200 200 0 57
"GET https://www.example.com:443/ HTTP/1.1" "curl/7.46.0" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2
arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067
"Root=1-58337281-1d84f3d73c47ec4e58577259" "www.example.com" "arn:aws:acm:us-east-2:123456789012:certificate/12345678-1234-1234-1234-123456789012"
1 2018-07-02T22:22:48.364000Z "authenticate,forward" "-" "-"
ఒక ఫైల్ బరువు 1-4 మెగాబైట్లు.
కానీ ఒక కష్టం వచ్చింది. మేము ప్రపంచవ్యాప్తంగా 7 డొమైన్లను కలిగి ఉన్నాము మరియు ఒక రోజులో 7000 వేల ఫైల్లు సృష్టించబడ్డాయి. ఇది చాలా ఎక్కువ వాల్యూమ్ కాదు, 50 గిగాబైట్లు మాత్రమే. కానీ మా రెడ్షిఫ్ట్ క్లస్టర్ పరిమాణం కూడా చిన్నది (4 నోడ్లు). సాంప్రదాయ పద్ధతిలో ఒక ఫైల్ని లోడ్ చేయడానికి ఒక నిమిషం పట్టింది. అంటే సమస్య తలదించుకోలేదు. నేను డేటా లేక్ విధానాన్ని ఉపయోగించాలని నిర్ణయించుకున్నప్పుడు ఇది జరిగింది. పరిష్కారం ఇలా కనిపించింది:
ఇది చాలా సులభం (క్లౌడ్లో పని చేయడం వల్ల కలిగే ప్రయోజనం సరళత అని నేను గమనించాలనుకుంటున్నాను). నేను వాడినాను:
- కంప్యూట్ పవర్ కోసం AWS సాగే మ్యాప్ తగ్గింపు (హడూప్).
- AWS S3 డేటాను గుప్తీకరించే మరియు యాక్సెస్ని పరిమితం చేసే సామర్థ్యంతో ఫైల్ నిల్వగా ఉంటుంది
- InMemory కంప్యూటింగ్ పవర్గా స్పార్క్ మరియు లాజిక్ మరియు డేటా ట్రాన్స్ఫర్మేషన్ కోసం PySpark
- స్పార్క్ ఫలితంగా పారేకెట్
- కొత్త డేటా మరియు విభజనల గురించి మెటాడేటా కలెక్టర్గా AWS గ్లూ క్రాలర్
- రెడ్షిఫ్ట్ స్పెక్ట్రమ్ ఇప్పటికే ఉన్న రెడ్షిఫ్ట్ వినియోగదారుల కోసం డేటా లేక్కు SQL ఇంటర్ఫేస్గా
అతిచిన్న EMR+Spark క్లస్టర్ 30 నిమిషాలలో ఫైల్ల మొత్తం స్టాక్ను ప్రాసెస్ చేసింది. AWS కోసం ఇతర కేసులు ఉన్నాయి, ముఖ్యంగా అలెక్సాకు సంబంధించిన అనేకం, ఇక్కడ చాలా డేటా ఉంది.
డేటా సరస్సు యొక్క ప్రతికూలతలలో ఒకటి GDPR అని ఇటీవలే నేను తెలుసుకున్నాను. క్లయింట్ దానిని తొలగించమని అడిగినప్పుడు మరియు డేటా ఫైల్లలో ఒకదానిలో ఉన్నప్పుడు సమస్య ఏమిటంటే, మేము డేటా మానిప్యులేషన్ లాంగ్వేజ్ మరియు డిలీట్ ఆపరేషన్ని డేటాబేస్లో ఉపయోగించలేము.
ఈ కథనం డేటా వేర్హౌస్ మరియు డేటా సరస్సు మధ్య వ్యత్యాసాన్ని స్పష్టం చేసిందని నేను ఆశిస్తున్నాను. మీకు ఆసక్తి ఉంటే, నేను చదివిన నా కథనాలు లేదా నిపుణుల కథనాలను మరిన్ని అనువదించగలను. మరియు నేను పని చేసే పరిష్కారాలు మరియు వాటి నిర్మాణం గురించి కూడా చెప్పండి.
మూలం: www.habr.com