దాదాపు ప్రతిచోటా ఇప్పుడు చాలా డేటా ఉన్నప్పటికీ, విశ్లేషణాత్మక డేటాబేస్లు ఇప్పటికీ చాలా అన్యదేశంగా ఉన్నాయి. అవి పేలవంగా తెలిసినవి మరియు వాటిని సమర్థవంతంగా ఉపయోగించగల సామర్థ్యం కలిగి ఉంటాయి. చాలా మంది MySQL లేదా PostgreSQLతో "కాక్టస్ తినడం" కొనసాగిస్తున్నారు, ఇవి ఇతర దృశ్యాల కోసం రూపొందించబడ్డాయి, NoSQLతో బాధపడతాయి లేదా వాణిజ్య పరిష్కారాల కోసం ఎక్కువ చెల్లించబడతాయి. ClickHouse గేమ్ నియమాలను మారుస్తుంది మరియు విశ్లేషణాత్మక DBMS ప్రపంచంలోకి ప్రవేశించడానికి థ్రెషోల్డ్ను గణనీయంగా తగ్గిస్తుంది.
BackEnd Conf 2018 నుండి నివేదించండి మరియు అది స్పీకర్ అనుమతితో ప్రచురించబడింది.
నేను ఎవరు మరియు నేను క్లిక్హౌస్ గురించి ఎందుకు మాట్లాడుతున్నాను? నేను ClickHouseని ఉపయోగించే LifeStreetలో డెవలప్మెంట్ డైరెక్టర్ని. అలాగే, నేను ఆల్టినిటీ వ్యవస్థాపకుడిని. ఇది క్లిక్హౌస్ను ప్రమోట్ చేసే Yandex భాగస్వామి మరియు క్లిక్హౌస్ని మరింత విజయవంతం చేయడంలో Yandexకి సహాయపడుతుంది. ClickHouse గురించి జ్ఞానాన్ని పంచుకోవడానికి కూడా సిద్ధంగా ఉంది.
మరియు నేను పెట్యా జైట్సేవ్ సోదరుడిని కాదు. దీని గురించి నన్ను తరచుగా అడుగుతుంటారు. లేదు, మేము సోదరులం కాదు.
“అందరికీ తెలుసు” అని క్లిక్హౌస్:
- చాలా త్వరగా,
- చాలా సౌకర్యంగా ఉంటుంది
- Yandexలో ఉపయోగించబడుతుంది.
ఏయే కంపెనీల్లో ఎలా ఉపయోగించబడుతుందో కొంచెం తక్కువగానే తెలుసు.
Yandex మినహా క్లిక్హౌస్ ఎందుకు, ఎక్కడ మరియు ఎలా ఉపయోగించబడుతుందో నేను మీకు చెప్తాను.
వివిధ కంపెనీలలో ClickHouse సహాయంతో నిర్దిష్ట పనులు ఎలా పరిష్కరించబడతాయి, మీ పనుల కోసం మీరు ఏ ClickHouse సాధనాలను ఉపయోగించవచ్చు మరియు అవి వివిధ కంపెనీలలో ఎలా ఉపయోగించబడ్డాయి అని నేను మీకు చెప్తాను.
నేను క్లిక్హౌస్ని విభిన్న కోణాల నుండి చూపించే మూడు ఉదాహరణలను ఎంచుకున్నాను. ఇది ఆసక్తికరంగా ఉంటుందని నేను భావిస్తున్నాను.
మొదటి ప్రశ్న: "మనకు ClickHouse ఎందుకు అవసరం?". ఇది చాలా స్పష్టమైన ప్రశ్నగా కనిపిస్తోంది, కానీ దీనికి ఒకటి కంటే ఎక్కువ సమాధానాలు ఉన్నాయి.
- మొదటి సమాధానం పనితీరు కోసం. ClickHouse చాలా వేగంగా ఉంది. క్లిక్హౌస్లో విశ్లేషణలు కూడా చాలా వేగంగా ఉంటాయి. ఏదైనా చాలా నెమ్మదిగా లేదా చాలా చెడ్డగా ఉన్న చోట ఇది తరచుగా ఉపయోగించబడుతుంది.
- రెండవ సమాధానం ఖర్చు. మరియు అన్నింటిలో మొదటిది, స్కేలింగ్ ఖర్చు. ఉదాహరణకు, Vertica ఖచ్చితంగా గొప్ప డేటాబేస్. మీ దగ్గర చాలా టెరాబైట్ల డేటా లేకపోతే ఇది చాలా బాగా పనిచేస్తుంది. కానీ వందల టెరాబైట్లు లేదా పెటాబైట్ల విషయానికి వస్తే, లైసెన్స్ మరియు మద్దతు ధర చాలా ముఖ్యమైన మొత్తంలోకి వెళుతుంది. మరియు అది ఖరీదైనది. మరియు ClickHouse ఉచితం.
- మూడవ సమాధానం నిర్వహణ ఖర్చు. ఇది కొంచెం భిన్నమైన విధానం. RedShift ఒక గొప్ప అనలాగ్. RedShiftలో, మీరు చాలా త్వరగా నిర్ణయం తీసుకోవచ్చు. ఇది బాగా పని చేస్తుంది, కానీ అదే సమయంలో, ప్రతి గంట, ప్రతి రోజు మరియు ప్రతి నెల, మీరు అమెజాన్కు చాలా చెల్లించాలి, ఎందుకంటే ఇది చాలా ఖరీదైన సేవ. Google BigQuery కూడా. ఎవరైనా దానిని ఉపయోగించినట్లయితే, అక్కడ మీరు అనేక అభ్యర్థనలను అమలు చేయగలరని మరియు అకస్మాత్తుగా వందల డాలర్లకు బిల్లును పొందవచ్చని అతనికి తెలుసు.
ClickHouseలో ఈ సమస్యలు లేవు.
క్లిక్హౌస్ ఇప్పుడు ఎక్కడ ఉపయోగించబడుతుంది? Yandexతో పాటు, ClickHouse వివిధ వ్యాపారాలు మరియు కంపెనీల సమూహంలో ఉపయోగించబడుతుంది.
- అన్నింటిలో మొదటిది, ఇది వెబ్ అప్లికేషన్ అనలిటిక్స్, అంటే ఇది Yandex నుండి వచ్చిన వినియోగ సందర్భం.
- అనేక AdTech కంపెనీలు ClickHouseని ఉపయోగిస్తాయి.
- వివిధ మూలాల నుండి లావాదేవీ లాగ్లను విశ్లేషించాల్సిన అనేక కంపెనీలు.
- భద్రతా లాగ్లను పర్యవేక్షించడానికి అనేక కంపెనీలు ClickHouseని ఉపయోగిస్తాయి. వారు వాటిని క్లిక్హౌస్కి అప్లోడ్ చేస్తారు, నివేదికలు తయారు చేస్తారు మరియు వారికి అవసరమైన ఫలితాలను పొందుతారు.
- కంపెనీలు ఆర్థిక విశ్లేషణలో దీన్ని ఉపయోగించడం ప్రారంభించాయి, అంటే క్రమంగా పెద్ద వ్యాపారాలు కూడా క్లిక్హౌస్ను చేరుకుంటున్నాయి.
- మేఘ మంట. ఎవరైనా క్లిక్హౌస్ని అనుసరిస్తే, వారు బహుశా ఈ కంపెనీ పేరును విని ఉండవచ్చు. సంఘం నుండి అవసరమైన సహాయకులలో ఇది ఒకటి. మరియు వారు చాలా తీవ్రమైన ClickHouse సంస్థాపనను కలిగి ఉన్నారు. ఉదాహరణకు, వారు క్లిక్హౌస్ కోసం కాఫ్కా ఇంజిన్ను తయారు చేశారు.
- టెలికమ్యూనికేషన్ కంపెనీలు ఉపయోగించడం ప్రారంభించాయి. అనేక కంపెనీలు క్లిక్హౌస్ను భావనపై రుజువుగా లేదా ఇప్పటికే ఉత్పత్తిలో ఉపయోగిస్తున్నాయి.
- ఉత్పత్తి ప్రక్రియలను పర్యవేక్షించడానికి ఒక కంపెనీ ClickHouseని ఉపయోగిస్తుంది. వారు మైక్రో సర్క్యూట్లను పరీక్షిస్తారు, పారామితుల సమూహాన్ని వ్రాస్తారు, సుమారు 2 లక్షణాలు ఉన్నాయి. ఆపై ఆట మంచిదా చెడ్డదా అని విశ్లేషిస్తారు.
- బ్లాక్చెయిన్ అనలిటిక్స్. Bloxy.info వంటి రష్యన్ కంపెనీ ఉంది. ఇది ఎథెరియం నెట్వర్క్ యొక్క విశ్లేషణ. వారు దీన్ని క్లిక్హౌస్లో కూడా చేసారు.
మరియు పరిమాణం పట్టింపు లేదు. ఒక చిన్న సర్వర్ని ఉపయోగించే అనేక కంపెనీలు ఉన్నాయి. మరియు వారి సమస్యలను పరిష్కరించడానికి అతను వారిని అనుమతిస్తాడు. మరియు మరిన్ని కంపెనీలు అనేక సర్వర్లు లేదా డజన్ల కొద్దీ సర్వర్ల పెద్ద క్లస్టర్లను ఉపయోగిస్తాయి.
మరియు మీరు రికార్డులను పరిశీలిస్తే, అప్పుడు:
- Yandex: 500+ సర్వర్లు, వారు అక్కడ రోజుకు 25 బిలియన్ రికార్డులను నిల్వ చేస్తారు.
- లైఫ్స్ట్రీట్: 60 సర్వర్లు, రోజుకు సుమారు 75 బిలియన్ రికార్డులు. Yandex లో కంటే తక్కువ సర్వర్లు, ఎక్కువ రికార్డులు ఉన్నాయి.
- క్లౌడ్ఫ్లేర్: 36 సర్వర్లు, అవి రోజుకు 200 బిలియన్ రికార్డులను ఆదా చేస్తాయి. వారు ఇంకా తక్కువ సర్వర్లను కలిగి ఉన్నారు మరియు మరింత డేటాను నిల్వ చేస్తారు.
- బ్లూమ్బెర్గ్: 102 సర్వర్లు, రోజుకు సుమారు ట్రిలియన్ ఎంట్రీలు. రికార్డ్ హోల్డర్.
భౌగోళికంగా, ఇది కూడా చాలా ఎక్కువ. ఈ మ్యాప్ ప్రపంచంలో క్లిక్హౌస్ ఎక్కడ ఉపయోగించబడుతుందో హీట్మ్యాప్ను చూపుతుంది. రష్యా, చైనా, అమెరికా ఇక్కడ స్పష్టంగా నిలుస్తాయి. కొన్ని యూరోపియన్ దేశాలు ఉన్నాయి. మరియు 4 క్లస్టర్లు ఉన్నాయి.
ఇది తులనాత్మక విశ్లేషణ, సంపూర్ణ గణాంకాల కోసం వెతకవలసిన అవసరం లేదు. ఇది ఆల్టినిటీ వెబ్సైట్లో ఆంగ్ల భాషా మెటీరియల్లను చదివే సందర్శకుల విశ్లేషణ, ఎందుకంటే అక్కడ రష్యన్ మాట్లాడేవి ఏవీ లేవు. మరియు రష్యా, ఉక్రెయిన్, బెలారస్, అంటే కమ్యూనిటీలో రష్యన్ మాట్లాడే భాగం, వీరు చాలా మంది వినియోగదారులు. తర్వాత US మరియు కెనడా వస్తుంది. చైనా చాలా పట్టుబడుతోంది. ఆరు నెలల క్రితం అక్కడ దాదాపు చైనా లేదు, ఇప్పుడు చైనా ఇప్పటికే యూరప్ను అధిగమించింది మరియు అభివృద్ధి చెందుతూనే ఉంది. పాత ఐరోపా కూడా చాలా వెనుకబడి లేదు మరియు క్లిక్హౌస్ వాడకంలో అగ్రగామిగా ఉంది, విచిత్రమేమిటంటే, ఫ్రాన్స్.
ఇదంతా ఎందుకు చెబుతున్నాను? పెద్ద డేటా విశ్లేషణ కోసం ClickHouse ఒక ప్రామాణిక పరిష్కారంగా మారిందని మరియు ఇప్పటికే చాలా ప్రదేశాలలో ఉపయోగించబడుతుందని చూపించడానికి. మీరు దానిని ఉపయోగిస్తే, మీరు సరైన ధోరణిలో ఉన్నారు. మీరు దీన్ని ఇంకా ఉపయోగించకపోతే, మీరు ఒంటరిగా మిగిలిపోతారని మరియు ఎవరూ మీకు సహాయం చేయరని మీరు భయపడలేరు, ఎందుకంటే చాలా మంది ఇప్పటికే దీన్ని చేస్తున్నారు.
ఇవి అనేక కంపెనీలలో నిజమైన ClickHouse వినియోగానికి ఉదాహరణలు.
- మొదటి ఉదాహరణ ప్రకటన నెట్వర్క్: వెర్టికా నుండి క్లిక్హౌస్కి వలస. వెర్టికా నుండి మారిన లేదా పరివర్తన ప్రక్రియలో ఉన్న కొన్ని కంపెనీలు నాకు తెలుసు.
- రెండవ ఉదాహరణ ClickHouseలో లావాదేవీ నిల్వ. ఇది యాంటీప్యాటర్న్లపై నిర్మించిన ఉదాహరణ. డెవలపర్ల సలహా మేరకు క్లిక్హౌస్లో చేయకూడనివన్నీ ఇక్కడ చేయబడతాయి. మరియు ఇది చాలా ప్రభావవంతంగా పని చేస్తుంది. మరియు ఇది సాధారణ లావాదేవీల పరిష్కారం కంటే మెరుగ్గా పనిచేస్తుంది.
- మూడవ ఉదాహరణ ClickHouseలో పంపిణీ చేయబడిన కంప్యూటింగ్. క్లిక్హౌస్ను హడూప్ పర్యావరణ వ్యవస్థలో ఎలా విలీనం చేయవచ్చు అనే ప్రశ్న ఉంది. చాలా పనికిమాలిన పనిని లెక్కించడానికి, క్లిక్హౌస్లో మ్యాప్ తగ్గింపు కంటైనర్ను, డేటా స్థానికీకరణను ట్రాక్ చేయడం మొదలైన వాటిని ఒక కంపెనీ ఎలా చేసిందో నేను ఉదాహరణగా చూపుతాను.
- లైఫ్స్ట్రీట్ అనేది యాడ్ టెక్ కంపెనీ, ఇది యాడ్ నెట్వర్క్తో వచ్చే అన్ని సాంకేతికతను కలిగి ఉంది.
- ఆమె యాడ్ ఆప్టిమైజేషన్, ప్రోగ్రామాటిక్ బిడ్డింగ్లో నిమగ్నమై ఉంది.
- చాలా డేటా: రోజుకు సుమారు 10 బిలియన్ ఈవెంట్లు. అదే సమయంలో, అక్కడ సంఘటనలను అనేక ఉప సంఘటనలుగా విభజించవచ్చు.
- ఈ డేటాకు చాలా మంది క్లయింట్లు ఉన్నారు మరియు వీరు వ్యక్తులు మాత్రమే కాదు, చాలా ఎక్కువ - ఇవి ప్రోగ్రామాటిక్ బిడ్డింగ్లో నిమగ్నమై ఉన్న వివిధ అల్గోరిథంలు.
సంస్థ సుదీర్ఘమైన మరియు ముళ్ల మార్గంలో వచ్చింది. మరియు నేను హైలోడ్లో దాని గురించి మాట్లాడాను. మొదట, లైఫ్స్ట్రీట్ MySQL (ఒరాకిల్లో చిన్న స్టాప్తో) నుండి వెర్టికాకు మారింది. మరియు మీరు దాని గురించి ఒక కథనాన్ని కనుగొనవచ్చు.
మరియు ప్రతిదీ చాలా బాగుంది, కానీ డేటా పెరుగుతోందని మరియు వెర్టికా ఖరీదైనదని త్వరగా స్పష్టమైంది. అందుకోసం రకరకాల ప్రత్యామ్నాయాలను అన్వేషించారు. వాటిలో కొన్ని ఇక్కడ జాబితా చేయబడ్డాయి. వాస్తవానికి, మేము 13వ సంవత్సరం నుండి 16వ సంవత్సరం వరకు మార్కెట్లో అందుబాటులో ఉన్న దాదాపు అన్ని డేటాబేస్ల యొక్క కాన్సెప్ట్ లేదా కొన్నిసార్లు పనితీరు పరీక్షను రుజువు చేసాము మరియు కార్యాచరణ పరంగా సుమారుగా తగినవి. మరియు నేను హైలోడ్లో వాటిలో కొన్నింటి గురించి కూడా మాట్లాడాను.
మొదటి స్థానంలో వెర్టికా నుండి వలస వెళ్లడమే పని, ఎందుకంటే డేటా పెరిగింది. మరియు వారు సంవత్సరాలుగా విపరీతంగా పెరిగారు. అప్పుడు వారు షెల్ఫ్లోకి వెళ్లారు, అయితే. మరియు ఈ వృద్ధిని అంచనా వేయడం, కొన్ని రకాల విశ్లేషణలు చేయాల్సిన డేటా మొత్తానికి వ్యాపార అవసరాలు, పెటాబైట్లు త్వరలో చర్చించబడతాయని స్పష్టమైంది. మరియు పెటాబైట్ల కోసం చెల్లించడం ఇప్పటికే చాలా ఖరీదైనది, కాబట్టి మేము ఎక్కడికి వెళ్లాలో ప్రత్యామ్నాయం కోసం చూస్తున్నాము.
ఎక్కడికి వెళ్ళాలి? మరియు చాలా కాలంగా ఎక్కడికి వెళ్లాలో స్పష్టంగా లేదు, ఎందుకంటే ఒక వైపు వాణిజ్య డేటాబేస్లు ఉన్నాయి, అవి బాగా పనిచేస్తున్నట్లు అనిపిస్తుంది. కొన్ని దాదాపు వెర్టికా వలె పని చేస్తాయి, కొన్ని అధ్వాన్నంగా ఉంటాయి. కానీ అవన్నీ ఖరీదైనవి, చౌకైనవి మరియు మంచివి ఏవీ కనుగొనబడలేదు.
మరోవైపు, ఓపెన్ సోర్స్ సొల్యూషన్స్ ఉన్నాయి, అవి చాలా ఎక్కువ కాదు, అంటే విశ్లేషణల కోసం, వాటిని వేళ్లపై లెక్కించవచ్చు. మరియు అవి ఉచితం లేదా చౌకగా ఉంటాయి, కానీ నెమ్మదిగా ఉంటాయి. మరియు వారు తరచుగా అవసరమైన మరియు ఉపయోగకరమైన కార్యాచరణను కలిగి ఉండరు.
మరియు వాణిజ్య డేటాబేస్లలో ఉన్న మంచిని మరియు ఓపెన్ సోర్స్లో ఉన్న అన్ని ఉచితాలను కలపడానికి ఏమీ లేదు.
ఊహించని విధంగా, Yandex ఒక కుందేలు వంటి, ఒక టోపీ నుండి ఒక మాంత్రికుడు వంటి, ClickHouse బయటకు లాగి వరకు ఏమీ లేదు. మరియు ఇది ఊహించని నిర్ణయం, వారు ఇప్పటికీ ప్రశ్న అడుగుతారు: "ఎందుకు?", అయితే.
మరియు వెంటనే 2016 వేసవిలో, మేము క్లిక్హౌస్ అంటే ఏమిటో చూడటం ప్రారంభించాము. మరియు కొన్నిసార్లు ఇది వెర్టికా కంటే వేగంగా ఉంటుందని తేలింది. మేము వేర్వేరు అభ్యర్థనలపై విభిన్న దృశ్యాలను పరీక్షించాము. మరియు క్వెరీ ఒక టేబుల్ని మాత్రమే ఉపయోగించినట్లయితే, అంటే, ఎటువంటి జాయిన్లు లేకుండా (చేరండి), అప్పుడు క్లిక్హౌస్ వెర్టికా కంటే రెండు రెట్లు వేగంగా ఉంటుంది.
నేను చాలా సోమరి కాదు మరియు ఇతర రోజు Yandex పరీక్షలను చూసాను. ఇది అక్కడ కూడా అదే: ClickHouse వెర్టికా కంటే రెండు రెట్లు వేగంగా ఉంటుంది, కాబట్టి వారు దాని గురించి తరచుగా మాట్లాడతారు.
కానీ ప్రశ్నలలో చేరికలు ఉంటే, అప్పుడు ప్రతిదీ చాలా నిస్సందేహంగా కాదు. మరియు క్లిక్హౌస్ వెర్టికా కంటే రెండు రెట్లు నెమ్మదిగా ఉంటుంది. మరియు మీరు అభ్యర్థనను కొద్దిగా సరిచేసి తిరిగి వ్రాస్తే, అవి దాదాపు సమానంగా ఉంటాయి. చెడ్డది కాదు. మరియు ఉచితం.
మరియు పరీక్ష ఫలితాలను స్వీకరించి, వివిధ కోణాల్లో చూసిన తర్వాత, LifeStreet ClickHouseకి వెళ్లింది.
ఇది 16వ సంవత్సరం, నేను మీకు గుర్తు చేస్తున్నాను. ఇది ఎలుకల గురించి ఒక జోక్ లాగా ఉంది, అది ఏడ్చింది మరియు తమను తాము కుట్టుకుంది, కానీ కాక్టస్ తినడం కొనసాగించింది. మరియు ఇది వివరంగా వివరించబడింది, దీని గురించి ఒక వీడియో ఉంది, మొదలైనవి.
అందుచేత దాని గురించి వివరంగా మాట్లాడను, ఫలితాల గురించి మరియు అప్పుడు నేను మాట్లాడని కొన్ని ఆసక్తికరమైన విషయాల గురించి మాత్రమే మాట్లాడతాను.
ఫలితాలు:
- విజయవంతమైన వలస మరియు ఒక సంవత్సరానికి పైగా సిస్టమ్ ఇప్పటికే ఉత్పత్తిలో పని చేస్తోంది.
- ఉత్పాదకత మరియు వశ్యత పెరిగింది. మేము రోజుకు నిల్వ చేయగలిగిన 10 బిలియన్ రికార్డ్లలో మరియు కొద్దికాలం పాటు, లైఫ్స్ట్రీట్ ఇప్పుడు రోజుకు 75 బిలియన్ రికార్డ్లను నిల్వ చేస్తుంది మరియు దీన్ని 3 నెలలు లేదా అంతకంటే ఎక్కువ కాలం పాటు చేయగలదు. మీరు గరిష్టంగా లెక్కించినట్లయితే, ఇది సెకనుకు ఒక మిలియన్ ఈవెంట్ల వరకు ఉంటుంది. ఈ సిస్టమ్లో రోజుకు మిలియన్ కంటే ఎక్కువ SQL ప్రశ్నలు వస్తాయి, ఎక్కువగా వివిధ రోబోల నుండి.
- వెర్టికా కంటే క్లిక్హౌస్ కోసం ఎక్కువ సర్వర్లు ఉపయోగించబడినప్పటికీ, అవి హార్డ్వేర్లో కూడా సేవ్ చేయబడ్డాయి, ఎందుకంటే వెర్టికాలో ఖరీదైన SAS డిస్క్లు ఉపయోగించబడ్డాయి. ClickHouse SATAని ఉపయోగించింది. మరియు ఎందుకు? ఎందుకంటే వెర్టికాలో ఇన్సర్ట్ సింక్రోనస్గా ఉంటుంది. మరియు సమకాలీకరణకు డిస్క్లు ఎక్కువగా వేగాన్ని తగ్గించకుండా ఉండటం మరియు నెట్వర్క్ ఎక్కువగా వేగాన్ని తగ్గించకపోవడం, అంటే ఖరీదైన ఆపరేషన్ అవసరం. మరియు క్లిక్హౌస్లో ఇన్సర్ట్ అసమకాలికంగా ఉంటుంది. అంతేకాకుండా, మీరు ఎల్లప్పుడూ స్థానికంగా ప్రతిదీ వ్రాయవచ్చు, దీనికి అదనపు ఖర్చులు లేవు, కాబట్టి నెమ్మదిగా డ్రైవ్లలో కూడా వెర్టికా కంటే చాలా వేగంగా క్లిక్హౌస్లోకి డేటాను చొప్పించవచ్చు. మరియు పఠనం దాదాపు అదే. SATAలో చదవడం, వారు RAIDలో ఉన్నట్లయితే, ఇది తగినంత వేగంగా ఉంటుంది.
- లైసెన్స్ ద్వారా పరిమితం కాదు, అంటే 3 సర్వర్లలో 60 పెటాబైట్ల డేటా (20 సర్వర్లు ఒక ప్రతిరూపం) మరియు వాస్తవాలు మరియు అగ్రిగేషన్లలో 6 ట్రిలియన్ రికార్డులు. వెర్టికాలో ఇలాంటివి ఏవీ భరించలేవు.
నేను ఇప్పుడు ఈ ఉదాహరణలో ఆచరణాత్మక విషయాల వైపు తిరుగుతున్నాను.
- మొదటిది సమర్థవంతమైన పథకం. చాలా స్కీమాపై ఆధారపడి ఉంటుంది.
- రెండవది సమర్థవంతమైన SQL ఉత్పత్తి.
ఒక సాధారణ OLAP ప్రశ్న ఎంపిక. కొన్ని నిలువు వరుసలు సమూహానికి వెళ్తాయి, కొన్ని నిలువు వరుసలు మొత్తం ఫంక్షన్లకు వెళ్తాయి. ఒక క్యూబ్ స్లైస్గా సూచించబడే చోటు ఉంది. ద్వారా మొత్తం సమూహాన్ని ప్రొజెక్షన్గా భావించవచ్చు. అందుకే దీన్ని మల్టీవియారిట్ డేటా అనాలిసిస్ అంటారు.
మరియు తరచుగా ఇది స్టార్-స్కీమ్ రూపంలో రూపొందించబడింది, కేంద్ర వాస్తవం మరియు ఈ వాస్తవం యొక్క లక్షణాలు వైపులా, కిరణాల వెంట ఉన్నప్పుడు.
మరియు భౌతిక రూపకల్పన పరంగా, ఇది పట్టికలో ఎలా సరిపోతుంది, వారు సాధారణంగా సాధారణీకరించిన ప్రాతినిధ్యాన్ని చేస్తారు. మీరు డీనార్మలైజ్ చేయవచ్చు, కానీ ఇది డిస్క్లో ఖరీదైనది మరియు ప్రశ్నలపై చాలా సమర్థవంతంగా ఉండదు. అందువల్ల, వారు సాధారణంగా సాధారణీకరించిన ప్రాతినిధ్యాన్ని తయారు చేస్తారు, అనగా వాస్తవ పట్టిక మరియు అనేక డైమెన్షన్ పట్టికలు.
కానీ క్లిక్హౌస్లో ఇది బాగా పని చేయదు. రెండు కారణాలు ఉన్నాయి:
- మొదటిది ఎందుకంటే క్లిక్హౌస్లో చాలా మంచి జాయిన్లు లేవు, అనగా చేరికలు ఉన్నాయి, కానీ అవి చెడ్డవి. అయితే చెడు.
- రెండవది పట్టికలు నవీకరించబడవు. సాధారణంగా ఈ ప్లేట్లలో, స్టార్-సర్క్యూట్ చుట్టూ ఉన్న, ఏదో మార్చవలసి ఉంటుంది. ఉదాహరణకు, కస్టమర్ పేరు, కంపెనీ పేరు మొదలైనవి. మరియు అది పని చేయదు.
మరియు క్లిక్హౌస్లో దీని నుండి బయటపడే మార్గం ఉంది. రెండు కూడా:
- మొదటిది నిఘంటువుల వాడకం. ఎక్స్టర్నల్ డిక్షనరీలు అంటే స్టార్-స్కీమాతో, అప్డేట్లు మొదలైన వాటితో సమస్యను పరిష్కరించడానికి 99% సహాయపడతాయి.
- రెండవది శ్రేణుల ఉపయోగం. శ్రేణులు సాధారణీకరణతో చేరడం మరియు సమస్యలను వదిలించుకోవడానికి కూడా సహాయపడతాయి.
- చేరాల్సిన అవసరం లేదు.
- అప్గ్రేడబుల్. మార్చి 2018 నుండి, నిఘంటువులను పాక్షికంగా నవీకరించడానికి నమోదుకాని అవకాశం కనిపించింది (మీరు దీన్ని డాక్యుమెంటేషన్లో కనుగొనలేరు) అంటే మారిన ఎంట్రీలు. ఆచరణాత్మకంగా, ఇది పట్టిక వంటిది.
- ఎల్లప్పుడూ మెమరీలో ఉంటుంది, కాబట్టి అది డిస్క్లో ఉన్న టేబుల్గా ఉంటే దాని కంటే వేగంగా డిక్షనరీ పనితో చేరుతుంది మరియు అది కాష్లో ఉందనేది ఇంకా వాస్తవం కాదు, చాలా మటుకు కాదు.
- మీరు కూడా చేరాల్సిన అవసరం లేదు.
- ఇది కాంపాక్ట్ 1 నుండి అనేక ప్రాతినిధ్యం.
- మరియు నా అభిప్రాయం ప్రకారం, శ్రేణులు గీక్స్ కోసం తయారు చేయబడ్డాయి. ఇవి లాంబ్డా విధులు మరియు మొదలైనవి.
ఇది ఎరుపు పదాల కోసం కాదు. ఇది చాలా శక్తివంతమైన కార్యాచరణ, ఇది చాలా సులభమైన మరియు సొగసైన మార్గంలో అనేక పనులను చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
శ్రేణులను పరిష్కరించడంలో సహాయపడే సాధారణ ఉదాహరణలు. ఈ ఉదాహరణలు సరళమైనవి మరియు తగినంత స్పష్టంగా ఉన్నాయి:
- ట్యాగ్ల ద్వారా శోధించండి. మీకు అక్కడ హ్యాష్ట్యాగ్లు ఉంటే మరియు హ్యాష్ట్యాగ్ ద్వారా కొన్ని పోస్ట్లను కనుగొనాలనుకుంటే.
- కీ-విలువ జతల ద్వారా శోధించండి. విలువతో కూడిన కొన్ని గుణాలు కూడా ఉన్నాయి.
- మీరు వేరొకదానికి అనువదించాల్సిన కీల జాబితాలను నిల్వ చేయడం.
ఈ పనులన్నీ శ్రేణులు లేకుండా పరిష్కరించబడతాయి. ట్యాగ్లను కొన్ని లైన్లో ఉంచవచ్చు మరియు రెగ్యులర్ ఎక్స్ప్రెషన్తో లేదా ప్రత్యేక పట్టికలో ఎంచుకోవచ్చు, కానీ మీరు చేరికలు చేయాలి.
క్లిక్హౌస్లో, మీరు ఏమీ చేయనవసరం లేదు, హ్యాష్ట్యాగ్ల కోసం స్ట్రింగ్ శ్రేణిని వివరించడానికి లేదా కీ-విలువ సిస్టమ్ల కోసం సమూహ నిర్మాణాన్ని రూపొందించడానికి సరిపోతుంది.
సమూహ నిర్మాణం ఉత్తమ పేరు కాకపోవచ్చు. ఇవి పేరు మరియు కొన్ని సంబంధిత లక్షణాలను కలిగి ఉండే రెండు శ్రేణులు.
మరియు ట్యాగ్ ద్వారా శోధించడం చాలా సులభం. ఒక ఫంక్షన్ చేయండి has
, ఇది శ్రేణిలో ఒక మూలకం ఉందో లేదో తనిఖీ చేస్తుంది. ప్రతి ఒక్కరూ, మా సమావేశానికి సంబంధించిన అన్ని ఎంట్రీలను కనుగొన్నారు.
Subid ద్వారా శోధన కొంచెం క్లిష్టంగా ఉంటుంది. మేము మొదట కీ యొక్క సూచికను కనుగొనాలి, ఆపై ఈ సూచికతో మూలకాన్ని తీసుకొని, ఈ విలువ మనకు అవసరమైనది అని తనిఖీ చేయండి. అయితే, ఇది చాలా సరళమైనది మరియు కాంపాక్ట్.
మీరు అన్నింటినీ ఒకే వరుసలో ఉంచినట్లయితే మీరు వ్రాయాలనుకుంటున్న సాధారణ వ్యక్తీకరణ, మొదటగా, వికృతంగా ఉంటుంది. మరియు, రెండవది, ఇది రెండు శ్రేణుల కంటే చాలా ఎక్కువ పని చేసింది.
మరొక ఉదాహరణ. మీరు IDని నిల్వ చేసే శ్రేణిని కలిగి ఉన్నారు. మరియు మీరు వాటిని పేర్లలోకి అనువదించవచ్చు. ఫంక్షన్ arrayMap
. ఇది ఒక సాధారణ లాంబ్డా ఫంక్షన్. మీరు అక్కడ లాంబ్డా వ్యక్తీకరణలను పాస్ చేస్తారు. మరియు ఆమె నిఘంటువు నుండి ప్రతి ID పేరు యొక్క విలువను తీసివేస్తుంది.
శోధన కూడా అదే విధంగా చేయవచ్చు. మూలకాలు ఏవి సరిపోతాయో తనిఖీ చేసే ప్రిడికేట్ ఫంక్షన్ పాస్ చేయబడింది.
ఈ విషయాలు సర్క్యూట్ను చాలా సులభతరం చేస్తాయి మరియు అనేక సమస్యలను పరిష్కరిస్తాయి.
కానీ మేము ఎదుర్కొంటున్న తదుపరి సమస్య మరియు నేను ప్రస్తావించదలిచినది సమర్థవంతమైన ప్రశ్నలు.
- ClickHouseకి క్వెరీ ప్లానర్ లేదు. ఖచ్చితంగా కాదు.
- అయినప్పటికీ, క్లిష్టమైన ప్రశ్నలను ఇంకా ప్లాన్ చేయాలి. ఏ సందర్భాలలో?
- ప్రశ్నలో బహుళ చేరికలు ఉంటే, మీరు వాటిని ఉప ఎంపికలలో వ్రాప్ చేయండి. మరియు వాటిని అమలు చేసే క్రమం ముఖ్యమైనది.
- మరియు రెండవది - అభ్యర్థన పంపిణీ చేయబడితే. ఎందుకంటే పంపిణీ చేయబడిన ప్రశ్నలో, అంతర్భాగంలోని ఉప ఎంపిక మాత్రమే పంపిణీ చేయబడుతుంది మరియు మిగతావన్నీ మీరు కనెక్ట్ చేసిన మరియు అక్కడ అమలు చేసిన ఒక సర్వర్కు పంపబడతాయి. అందువల్ల, మీరు అనేక చేరికలతో (చేరండి) ప్రశ్నలను పంపిణీ చేసినట్లయితే, మీరు ఆర్డర్ను ఎంచుకోవాలి.
మరియు సరళమైన సందర్భాల్లో కూడా, కొన్నిసార్లు షెడ్యూలర్ యొక్క పనిని చేయడం మరియు ప్రశ్నలను కొద్దిగా తిరిగి వ్రాయడం కూడా అవసరం.
ఇక్కడ ఒక ఉదాహరణ ఉంది. ఎడమ వైపున టాప్ 5 దేశాలను చూపే ప్రశ్న ఉంది. మరియు ఇది 2,5 సెకన్లు పడుతుంది, నా అభిప్రాయం. మరియు కుడి వైపున, అదే ప్రశ్న, కానీ కొద్దిగా తిరిగి వ్రాయబడింది. స్ట్రింగ్ ద్వారా సమూహం చేయడానికి బదులుగా, మేము కీ (int) ద్వారా సమూహం చేయడం ప్రారంభించాము. మరియు ఇది వేగంగా ఉంటుంది. ఆపై మేము ఫలితానికి నిఘంటువును కనెక్ట్ చేసాము. 2,5 సెకన్లకు బదులుగా, అభ్యర్థన 1,5 సెకన్లు పడుతుంది. ఇది బాగుంది.
ఫిల్టర్లను తిరిగి వ్రాయడానికి ఇదే ఉదాహరణ. ఇక్కడ రష్యా కోసం ఒక అభ్యర్థన ఉంది. ఇది 5 సెకన్ల పాటు నడుస్తుంది. మేము దానిని మళ్లీ స్ట్రింగ్తో కాకుండా, రష్యాకు సంబంధించిన కొన్ని కీల సెట్తో పోల్చే విధంగా తిరిగి వ్రాస్తే, అది చాలా వేగంగా ఉంటుంది.
ఇలాంటి ట్రిక్స్ చాలా ఉన్నాయి. మరియు మీరు ఇప్పటికే వేగంగా నడుస్తున్నట్లు భావించే ప్రశ్నలను గణనీయంగా వేగవంతం చేయడానికి అవి మిమ్మల్ని అనుమతిస్తాయి లేదా దానికి విరుద్ధంగా నెమ్మదిగా నడుస్తున్నాయి. వాటిని మరింత వేగంగా తయారు చేయవచ్చు.
- పంపిణీ మోడ్లో గరిష్ట పని.
- నేను ints ద్వారా చేసినట్లు కనీస రకాల ద్వారా క్రమబద్ధీకరించడం.
- ఏవైనా చేరికలు (చేరడం), నిఘంటువులు ఉంటే, వాటిని చివరి ప్రయత్నంగా చేయడం ఉత్తమం, మీకు ఇప్పటికే డేటా కనీసం పాక్షికంగా సమూహం చేయబడినప్పుడు, అప్పుడు చేరిక ఆపరేషన్ లేదా డిక్షనరీ కాల్ తక్కువ సార్లు కాల్ చేయబడుతుంది మరియు అది వేగంగా ఉంటుంది. .
- ఫిల్టర్లను భర్తీ చేస్తోంది.
ఇతర పద్ధతులు ఉన్నాయి, నేను ప్రదర్శించినవి మాత్రమే కాదు. మరియు అవన్నీ కొన్నిసార్లు ప్రశ్నల అమలును గణనీయంగా వేగవంతం చేస్తాయి.
తదుపరి ఉదాహరణకి వెళ్దాం. USA నుండి కంపెనీ X. ఆమె ఏమి చేస్తున్నది?
ఒక పని ఉంది:
- ప్రకటనల లావాదేవీల ఆఫ్లైన్ లింక్.
- విభిన్న బైండింగ్ నమూనాలను మోడలింగ్ చేయడం.
దృశ్యం ఏమిటి?
ఒక సాధారణ సందర్శకుడు సైట్కి వస్తారు, ఉదాహరణకు, వివిధ ప్రకటనల నుండి నెలకు 20 సార్లు, లేదా కొన్నిసార్లు ఎలాంటి ప్రకటనలు లేకుండా వస్తుంది, ఎందుకంటే అతను ఈ సైట్ను గుర్తుంచుకుంటాడు. కొన్ని ఉత్పత్తులను చూస్తుంది, వాటిని బుట్టలో ఉంచుతుంది, వాటిని బుట్టలో నుండి బయటకు తీస్తుంది. మరియు, చివరికి, ఏదో కొనుగోలు చేస్తుంది.
సహేతుకమైన ప్రశ్నలు: "అవసరమైతే ప్రకటనల కోసం ఎవరు చెల్లించాలి?" మరియు "ఏదైనా ఉంటే అతనిని ఏ ప్రకటన ప్రభావితం చేసింది?". అంటే, అతను ఎందుకు కొన్నాడు మరియు ఈ వ్యక్తిని కూడా కొనేలా చేయడం ఎలా?
ఈ సమస్యను పరిష్కరించడానికి, మీరు వెబ్సైట్లో సంభవించే ఈవెంట్లను సరైన మార్గంలో కనెక్ట్ చేయాలి, అంటే, వాటి మధ్య ఏదో ఒక కనెక్షన్ను ఏర్పరచుకోవాలి. అప్పుడు వారు DWH కు విశ్లేషణ కోసం పంపబడతారు. మరియు ఈ విశ్లేషణ ఆధారంగా, ఎవరు మరియు ఏ ప్రకటనలను చూపించాలనే నమూనాలను రూపొందించండి.
ప్రకటన లావాదేవీ అనేది ప్రకటనను చూపడం నుండి ప్రారంభమయ్యే సంబంధిత వినియోగదారు ఈవెంట్ల సమితి, ఆ తర్వాత ఏదైనా జరుగుతుంది, ఆపై కొనుగోలు చేయవచ్చు, ఆపై కొనుగోలులో కొనుగోళ్లు ఉండవచ్చు. ఉదాహరణకు, ఇది మొబైల్ అప్లికేషన్ లేదా మొబైల్ గేమ్ అయితే, సాధారణంగా అప్లికేషన్ యొక్క ఇన్స్టాలేషన్ ఉచితంగా జరుగుతుంది మరియు అక్కడ ఏదైనా జరిగితే, దీనికి డబ్బు అవసరం కావచ్చు. మరియు ఒక వ్యక్తి అప్లికేషన్లో ఎంత ఎక్కువ ఖర్చు చేస్తాడో, అది మరింత విలువైనది. కానీ దీని కోసం మీరు ప్రతిదీ కనెక్ట్ చేయాలి.
అనేక బైండింగ్ నమూనాలు ఉన్నాయి.
అత్యంత ప్రజాదరణ పొందినవి:
- చివరి పరస్పర చర్య, ఇక్కడ పరస్పర చర్య ఒక క్లిక్ లేదా ఇంప్రెషన్.
- మొదటి పరస్పర చర్య, అనగా ఒక వ్యక్తిని సైట్కి తీసుకువచ్చిన మొదటి విషయం.
- లీనియర్ కలయిక - అన్నీ సమానంగా.
- క్షీణత.
- మరియు అందువలన న.
మరియు ఇది మొదటి స్థానంలో ఎలా పని చేసింది? రన్టైమ్ మరియు కాసాండ్రా ఉన్నాయి. కాసాండ్రా లావాదేవీ నిల్వగా ఉపయోగించబడింది, అనగా అన్ని సంబంధిత లావాదేవీలు అందులో నిల్వ చేయబడ్డాయి. మరియు ఏదైనా ఈవెంట్ రన్టైమ్లో వచ్చినప్పుడు, ఉదాహరణకు, కొంత పేజీని చూపడం లేదా మరేదైనా, అప్పుడు కాసాండ్రాకు ఒక అభ్యర్థన వచ్చింది - అలాంటి వ్యక్తి ఉన్నారా లేదా. అప్పుడు దానికి సంబంధించిన లావాదేవీలు లభించాయి. మరియు కనెక్షన్ జరిగింది.
మరియు అభ్యర్థనలో లావాదేవీ ఐడి ఉండటం అదృష్టమైతే, అది సులభం. కానీ సాధారణంగా అదృష్టం లేదు. అందువల్ల, చివరి లావాదేవీ లేదా చివరి క్లిక్తో లావాదేవీని కనుగొనడం అవసరం.
మరియు బైండింగ్ చివరి క్లిక్కి ఉన్నంత వరకు ఇది చాలా బాగా పనిచేసింది. ఎందుకంటే, మనం ఒక నెల విండోను సెట్ చేస్తే, రోజుకు 10 మిలియన్ క్లిక్లు, నెలకు 300 మిలియన్లు ఉన్నాయి. మరియు కాసాండ్రాలో వేగంగా నడపడానికి ఇది మొత్తం మెమరీలో ఉండాలి, ఎందుకంటే రన్టైమ్ త్వరగా స్పందించాల్సిన అవసరం ఉంది, దీనికి 10-15 సర్వర్లు పట్టింది.
మరియు వారు లావాదేవీని డిస్ప్లేకు లింక్ చేయాలనుకున్నప్పుడు, అది వెంటనే అంత సరదాగా ఉండదు. మరియు ఎందుకు? 30 రెట్లు ఎక్కువ ఈవెంట్లను నిల్వ చేయాల్సిన అవసరం ఉందని చూడవచ్చు. మరియు, తదనుగుణంగా, మీకు 30 రెట్లు ఎక్కువ సర్వర్లు అవసరం. మరియు ఇది ఒక రకమైన ఖగోళ వ్యక్తి అని తేలింది. రన్టైమ్లో చాలా తక్కువ సర్వర్లు ఉన్నప్పటికీ, లింకింగ్ చేయడానికి 500 సర్వర్ల వరకు ఉంచడానికి, ఇది ఒక రకమైన తప్పు సంఖ్య. మరియు వారు ఏమి చేయాలో ఆలోచించడం ప్రారంభించారు.
మరియు మేము క్లిక్హౌస్కి వెళ్లాము. మరియు క్లిక్హౌస్లో దీన్ని ఎలా చేయాలి? మొదటి చూపులో, ఇది వ్యతిరేక నమూనాల సెట్ అని అనిపిస్తుంది.
- లావాదేవీ పెరుగుతుంది, మేము దానికి మరిన్ని ఈవెంట్లను హుక్ అప్ చేస్తాము, అనగా ఇది మార్చదగినది మరియు మార్చగల వస్తువులతో ClickHouse బాగా పని చేయదు.
- ఒక సందర్శకుడు మా వద్దకు వచ్చినప్పుడు, మేము అతని విజిట్ ఐడి ద్వారా కీ ద్వారా అతని లావాదేవీలను తీసివేయాలి. ఇది కూడా ఒక పాయింట్ ప్రశ్న, వారు క్లిక్హౌస్లో అలా చేయరు. సాధారణంగా ClickHouseలో పెద్ద …స్కాన్లు ఉంటాయి, కానీ ఇక్కడ మనం కొన్ని రికార్డ్లను పొందాలి. యాంటీప్యాటర్న్ కూడా.
- అదనంగా, లావాదేవీ jsonలో ఉంది, కానీ వారు దానిని తిరిగి వ్రాయాలని కోరుకోలేదు, కాబట్టి వారు jsonని నిర్మాణాత్మకంగా నిల్వ చేయాలనుకున్నారు మరియు అవసరమైతే, దాని నుండి ఏదైనా లాగండి. మరియు ఇది కూడా యాంటీప్యాటర్న్.
అంటే, యాంటీప్యాటర్న్ల సమితి.
అయినప్పటికీ, ఇది చాలా బాగా పనిచేసే వ్యవస్థను తయారు చేసింది.
ఏం చేశారు? క్లిక్హౌస్ కనిపించింది, దీనిలో లాగ్లు విసిరి, రికార్డులుగా విభజించబడ్డాయి. క్లిక్హౌస్ నుండి లాగ్లను స్వీకరించిన ఆపాదించబడిన సేవ కనిపించింది. ఆ తర్వాత, ప్రతి ఎంట్రీకి, సందర్శన id ద్వారా, నేను ఇంకా ప్రాసెస్ చేయని లావాదేవీలను మరియు స్నాప్షాట్లను అందుకున్నాను, అంటే ఇప్పటికే కనెక్ట్ చేయబడిన లావాదేవీలు, అవి మునుపటి పని ఫలితం. నేను ఇప్పటికే వాటి నుండి లాజిక్ చేసాను, సరైన లావాదేవీని ఎంచుకున్నాను, కొత్త ఈవెంట్లను కనెక్ట్ చేసాను. మళ్లీ లాగిన్ అయ్యాను. లాగ్ క్లిక్హౌస్కి తిరిగి వెళ్లింది, అనగా ఇది నిరంతరం చక్రీయ వ్యవస్థ. అంతేకాకుండా, నేను దానిని విశ్లేషించడానికి DWHకి వెళ్లాను.
ఈ రూపంలోనే ఇది బాగా పని చేయలేదు. క్లిక్హౌస్ను సులభతరం చేయడానికి, విజిట్ ఐడి ద్వారా అభ్యర్థన వచ్చినప్పుడు, వారు ఈ అభ్యర్థనలను 1-000 విజిట్ ఐడిల బ్లాక్లుగా వర్గీకరించారు మరియు 2-000 మంది వ్యక్తుల కోసం అన్ని లావాదేవీలను ఉపసంహరించుకున్నారు. ఆపై అంతా పనిచేసింది.
మీరు క్లిక్హౌస్ లోపల చూస్తే, వీటన్నింటిని అందించే 3 ప్రధాన పట్టికలు మాత్రమే ఉన్నాయి.
లాగ్లు అప్లోడ్ చేయబడిన మొదటి పట్టిక మరియు లాగ్లు దాదాపు ప్రాసెస్ చేయకుండానే అప్లోడ్ చేయబడతాయి.
రెండవ పట్టిక. మెటీరియలైజ్డ్ వీక్షణ ద్వారా, ఇంకా ఆపాదించబడని సంఘటనలు, అంటే, సంబంధం లేనివి, ఈ లాగ్ల నుండి బయటపడ్డాయి. మరియు మెటీరియలైజ్డ్ వీక్షణ ద్వారా, స్నాప్షాట్ను రూపొందించడానికి లావాదేవీలు ఈ లాగ్ల నుండి తీసివేయబడ్డాయి. అంటే, ఒక ప్రత్యేక మెటీరియలైజ్డ్ వీక్షణ స్నాప్షాట్ను రూపొందించింది, అంటే లావాదేవీ యొక్క చివరిగా సేకరించబడిన స్థితి.
SQLలో వ్రాసిన వచనం ఇక్కడ ఉంది. అందులో కొన్ని ముఖ్యమైన విషయాలపై వ్యాఖ్యానించాలనుకుంటున్నాను.
క్లిక్హౌస్లోని json నుండి నిలువు వరుసలు మరియు ఫీల్డ్లను బయటకు తీయగల సామర్థ్యం మొదటి ముఖ్యమైన విషయం. అంటే, క్లిక్హౌస్లో jsonతో పనిచేయడానికి కొన్ని పద్ధతులు ఉన్నాయి. అవి చాలా చాలా ప్రాచీనమైనవి.
visitParamExtractInt మిమ్మల్ని json నుండి అట్రిబ్యూట్లను సేకరించేందుకు అనుమతిస్తుంది, అంటే మొదటి హిట్ వర్క్స్. మరియు ఈ విధంగా మీరు లావాదేవీ ఐడిని లేదా విజిట్ ఐడిని తీసివేయవచ్చు. ఈసారి.
రెండవది, ఇక్కడ ఒక గమ్మత్తైన మెటీరియలైజ్డ్ ఫీల్డ్ ఉపయోగించబడుతుంది. దాని అర్థం ఏమిటి? దీని అర్థం మీరు దానిని పట్టికలోకి చొప్పించలేరు, అనగా ఇది చొప్పించబడలేదు, చొప్పించిన తర్వాత లెక్కించబడుతుంది మరియు నిల్వ చేయబడుతుంది. అతికించేటప్పుడు, క్లిక్హౌస్ మీ కోసం పని చేస్తుంది. మరియు మీకు తర్వాత అవసరమైనది ఇప్పటికే json నుండి తీసివేయబడింది.
ఈ సందర్భంలో, మెటీరియలైజ్డ్ వీక్షణ ముడి వరుసల కోసం. మరియు ఆచరణాత్మకంగా ముడి లాగ్లతో మొదటి పట్టిక కేవలం ఉపయోగించబడుతుంది. మరియు అతను ఏమి చేస్తాడు? ముందుగా, ఇది సార్టింగ్ను మారుస్తుంది, అంటే ఇప్పుడు సార్టింగ్ అనేది విజిట్ ఐడి ద్వారా జరుగుతుంది, ఎందుకంటే మనం నిర్దిష్ట వ్యక్తి కోసం అతని లావాదేవీని త్వరగా ఉపసంహరించుకోవాలి.
రెండవ ముఖ్యమైన విషయం ఇండెక్స్_గ్రాన్యులారిటీ. మీరు MergeTreeని చూసినట్లయితే, ఇది సాధారణంగా డిఫాల్ట్ ఇండెక్స్_గ్రాన్యులారిటీ ద్వారా 8. అదేంటి? ఇది ఇండెక్స్ స్పార్సెనెస్ పరామితి. క్లిక్హౌస్లో సూచిక చాలా తక్కువగా ఉంటుంది, ఇది ప్రతి ఎంట్రీని ఎప్పుడూ సూచిక చేయదు. ఇది ప్రతి 192 8కి ఇలా చేస్తుంది. మరియు చాలా డేటాను లెక్కించాల్సిన అవసరం వచ్చినప్పుడు ఇది మంచిది, కానీ కొంచెం ఎక్కువగా ఉన్నప్పుడు ఇది చెడ్డది, ఎందుకంటే పెద్ద ఓవర్హెడ్ ఉంది. మరియు మేము ఇండెక్స్ గ్రాన్యులారిటీని తగ్గిస్తే, అప్పుడు మేము ఓవర్హెడ్ను తగ్గిస్తాము. ఇది ఒకదానికి తగ్గించబడదు, ఎందుకంటే తగినంత మెమరీ ఉండకపోవచ్చు. సూచిక ఎల్లప్పుడూ మెమరీలో నిల్వ చేయబడుతుంది.
స్నాప్షాట్ కొన్ని ఇతర ఆసక్తికరమైన ClickHouse లక్షణాలను కూడా ఉపయోగిస్తుంది.
మొదటిది, ఇది అగ్రిగేటింగ్ మెర్జ్ట్రీ. మరియు AggregatingMergeTree స్టోర్లు argMax, అంటే ఇది చివరి టైమ్స్టాంప్కు సంబంధించిన లావాదేవీ స్థితి. ఇచ్చిన సందర్శకుడి కోసం లావాదేవీలు అన్ని సమయాలలో రూపొందించబడతాయి. మరియు ఈ లావాదేవీ యొక్క చివరి స్థితిలో, మేము ఒక ఈవెంట్ను జోడించాము మరియు మేము కొత్త స్థితిని కలిగి ఉన్నాము. ఇది మళ్లీ క్లిక్హౌస్ను తాకింది. మరియు ఈ మెటీరియలైజ్డ్ వీక్షణలో argMax ద్వారా, మనం ఎల్లప్పుడూ ప్రస్తుత స్థితిని పొందవచ్చు.
- బైండింగ్ రన్టైమ్ నుండి "విడదీయబడింది".
- నెలకు 3 బిలియన్ల వరకు లావాదేవీలు నిల్వ చేయబడతాయి మరియు ప్రాసెస్ చేయబడతాయి. ఇది కాసాండ్రాలో కంటే ఎక్కువ పరిమాణంలో ఉంది, అనగా ఒక సాధారణ లావాదేవీ వ్యవస్థలో.
- 2x5 క్లిక్హౌస్ సర్వర్ల క్లస్టర్. 5 సర్వర్లు మరియు ప్రతి సర్వర్కు ప్రతిరూపం ఉంటుంది. ఇది క్లిక్ బేస్డ్ అట్రిబ్యూషన్ చేయడానికి కాసాండ్రాలో ఉన్న దానికంటే కూడా తక్కువ, మరియు ఇక్కడ మనకు ఇంప్రెషన్ ఆధారితంగా ఉంది. అంటే, సర్వర్ల సంఖ్యను 30 రెట్లు పెంచడానికి బదులుగా, వారు వాటిని తగ్గించగలిగారు.
మరియు చివరి ఉదాహరణ ఆర్థిక సంస్థ Y, ఇది స్టాక్ ధరలలో మార్పుల సహసంబంధాలను విశ్లేషించింది.
మరియు పని ఏమిటంటే:
- దాదాపు 5 షేర్లు ఉన్నాయి.
- ప్రతి 100 మిల్లీసెకన్ల కోట్లు తెలుసు.
- డేటా 10 సంవత్సరాలుగా సేకరించబడింది. స్పష్టంగా, కొన్ని కంపెనీలకు ఎక్కువ, కొన్ని తక్కువ.
- మొత్తం మీద సుమారు 100 బిలియన్ వరుసలు ఉన్నాయి.
మరియు మార్పుల సహసంబంధాన్ని లెక్కించడం అవసరం.
ఇక్కడ రెండు స్టాక్లు మరియు వాటి కోట్లు ఉన్నాయి. ఒకటి పైకి వెళ్లి మరొకటి పైకి వెళితే, ఇది సానుకూల సహసంబంధం, అంటే ఒకటి పైకి వెళ్తుంది మరియు మరొకటి పైకి వెళ్తుంది. గ్రాఫ్ చివరిలో ఉన్నట్లుగా ఒకటి పైకి వెళ్లి, మరొకటి క్రిందికి వెళితే, ఇది ప్రతికూల సహసంబంధం, అంటే ఒకటి పైకి లేచినప్పుడు, మరొకటి పడిపోతుంది.
ఈ పరస్పర మార్పులను విశ్లేషించడం ద్వారా, ఆర్థిక మార్కెట్లో అంచనాలు వేయవచ్చు.
కానీ పని కష్టం. దీనికోసం ఏం చేస్తున్నారు? మాకు 100 బిలియన్ల రికార్డులు ఉన్నాయి: సమయం, స్టాక్ మరియు ధర. మేము ధర అల్గారిథమ్ నుండి రన్నింగ్ డిఫరెన్స్ని మొదటి 100 బిలియన్ రెట్లు లెక్కించాలి. RunningDifference అనేది క్లిక్హౌస్లోని ఒక ఫంక్షన్, ఇది రెండు స్ట్రింగ్ల మధ్య వ్యత్యాసాన్ని వరుసగా గణిస్తుంది.
మరియు ఆ తరువాత, మీరు సహసంబంధాన్ని లెక్కించాలి మరియు ప్రతి జత కోసం సహసంబంధాన్ని లెక్కించాలి. 5 షేర్లకు, జతల 000 మిలియన్లు. మరియు ఇది చాలా ఉంది, అంటే 12,5 సార్లు అటువంటి సహసంబంధ ఫంక్షన్ను లెక్కించడం అవసరం.
మరియు ఎవరైనా మర్చిపోయి ఉంటే, అప్పుడు ͞x మరియు ͞y చెక్మేట్. నమూనా నిరీక్షణ. అంటే, మూలాలు మరియు మొత్తాలను లెక్కించడం మాత్రమే కాకుండా, ఈ మొత్తాలలో మరో మొత్తాలను కూడా లెక్కించడం అవసరం. గణనల సమూహాన్ని 12,5 మిలియన్ సార్లు చేయాలి మరియు గంటల వారీగా కూడా సమూహపరచాలి. మాకు కూడా చాలా గంటలు ఉన్నాయి. మరియు మీరు దీన్ని 60 సెకన్లలో చేయాలి. ఇది ఒక జోక్.
కనీసం ఏదో ఒకవిధంగా సమయం ఉండటం అవసరం, ఎందుకంటే క్లిక్హౌస్ వచ్చే ముందు ఇవన్నీ చాలా చాలా నెమ్మదిగా పనిచేశాయి.
వారు దానిని హడూప్లో, స్పార్క్లో, గ్రీన్ప్లమ్లో లెక్కించడానికి ప్రయత్నించారు. మరియు ఇవన్నీ చాలా నెమ్మదిగా లేదా ఖరీదైనవి. అంటే, ఏదో ఒకవిధంగా లెక్కించడం సాధ్యమైంది, కానీ అది ఖరీదైనది.
ఆపై క్లిక్హౌస్ వచ్చింది మరియు విషయాలు మరింత మెరుగయ్యాయి.
డేటా స్థానికతతో మాకు సమస్య ఉందని నేను మీకు గుర్తు చేస్తున్నాను, ఎందుకంటే సహసంబంధాలు స్థానికీకరించబడవు. మేము కొన్ని డేటాను ఒక సర్వర్లో ఉంచలేము, కొన్నింటిని మరొకదానిపై ఉంచలేము మరియు లెక్కించలేము, మన దగ్గర అన్ని డేటా ఉండాలి.
వాళ్ళు ఏం చేశారు? ప్రారంభంలో, డేటా స్థానికీకరించబడింది. ప్రతి సర్వర్ ఒక నిర్దిష్ట సెట్ షేర్ల ధరపై డేటాను నిల్వ చేస్తుంది. మరియు అవి అతివ్యాప్తి చెందవు. అందువల్ల, లాగ్రిటర్న్ను సమాంతరంగా మరియు స్వతంత్రంగా లెక్కించడం సాధ్యమవుతుంది, ఇవన్నీ ఇప్పటివరకు సమాంతరంగా మరియు పంపిణీ చేయబడతాయి.
వ్యక్తీకరణను కోల్పోకుండా, ఈ డేటాను తగ్గించాలని మేము నిర్ణయించుకున్నాము. శ్రేణులను ఉపయోగించడం తగ్గించండి, అనగా ప్రతి కాలానికి, స్టాక్ల శ్రేణిని మరియు ధరల శ్రేణిని రూపొందించండి. అందువల్ల, ఇది చాలా తక్కువ డేటా స్థలాన్ని తీసుకుంటుంది. మరియు వారు పని చేయడం కొంచెం సులభం. ఇవి దాదాపు సమాంతర కార్యకలాపాలు, అనగా మేము పాక్షికంగా సమాంతరంగా చదివి, ఆపై సర్వర్కు వ్రాస్తాము.
ఆ తరువాత, అది ప్రతిరూపం చేయవచ్చు. "r" అనే అక్షరం అంటే మేము ఈ డేటాను పునరావృతం చేసాము. అంటే, మనకు మూడు సర్వర్లలో ఒకే డేటా ఉంది - ఇవి శ్రేణులు.
ఆపై లెక్కించాల్సిన 12,5 మిలియన్ల సహసంబంధాల ఈ సెట్ నుండి ప్రత్యేక స్క్రిప్ట్తో, మీరు ప్యాకేజీలను తయారు చేయవచ్చు. అంటే, 2 జతల సహసంబంధాలతో 500 పనులు. మరియు ఈ పని నిర్దిష్ట ClickHouse సర్వర్లో లెక్కించబడుతుంది. అతని వద్ద మొత్తం డేటా ఉంది, ఎందుకంటే డేటా ఒకే విధంగా ఉంటుంది మరియు అతను వాటిని వరుసగా లెక్కించగలడు.
మరోసారి ఇలాగే కనిపిస్తోంది. మొదట, మేము ఈ నిర్మాణంలో మొత్తం డేటాను కలిగి ఉన్నాము: సమయం, షేర్లు, ధర. అప్పుడు మేము లాగ్రిటర్న్ను లెక్కించాము, అంటే అదే నిర్మాణం యొక్క డేటా, కానీ ధరకు బదులుగా మనకు ఇప్పటికే లాగ్రిటర్న్ ఉంది. అప్పుడు అవి మళ్లీ చేయబడ్డాయి, అంటే స్టాక్లు మరియు ధరల కోసం మాకు సమయం మరియు సమూహ శ్రేణి లభించింది. రెప్లికేట్ చేయబడింది. మరియు ఆ తర్వాత, మేము టాస్క్ల సమూహాన్ని రూపొందించాము మరియు వాటిని క్లిక్హౌస్కి అందించాము, తద్వారా అది వాటిని లెక్కించబడుతుంది. మరియు అది పనిచేస్తుంది.
కాన్సెప్ట్ రుజువుపై, టాస్క్ సబ్టాస్క్, అంటే తక్కువ డేటా తీసుకోబడింది. మరియు కేవలం మూడు సర్వర్లు.
మొదటి రెండు దశలు: లాగ్_రిటర్న్ని గణించడం మరియు శ్రేణులలో చుట్టడం దాదాపు గంట సమయం పట్టింది.
మరియు సహసంబంధం యొక్క గణన సుమారు 50 గంటలు. కానీ 50 గంటలు సరిపోవు, ఎందుకంటే వారు వారాలపాటు పని చేసేవారు. ఇది పెద్ద విజయం సాధించింది. మరియు మీరు లెక్కించినట్లయితే, సెకనుకు 70 సార్లు ఈ క్లస్టర్లో ప్రతిదీ లెక్కించబడుతుంది.
కానీ చాలా ముఖ్యమైన విషయం ఏమిటంటే, ఈ వ్యవస్థ ఆచరణాత్మకంగా అడ్డంకులు లేకుండా ఉంటుంది, అంటే, ఇది దాదాపు సరళంగా స్కేల్ చేస్తుంది. మరియు వారు దాన్ని తనిఖీ చేశారు. దాన్ని విజయవంతంగా పెంచారు.
- సరైన పథకం సగం యుద్ధం. మరియు సరైన పథకం అన్ని అవసరమైన ClickHouse సాంకేతికతలను ఉపయోగించడం.
- సమ్మింగ్/అగ్రిగేటింగ్ మెర్జ్ట్రీస్ అనేవి స్టేట్ స్నాప్షాట్ను ఒక ప్రత్యేక సందర్భంగా సమగ్రపరచడానికి లేదా పరిగణించడానికి మిమ్మల్ని అనుమతించే సాంకేతికతలు. మరియు ఇది చాలా విషయాలను సులభతరం చేస్తుంది.
- మెటీరియలైజ్డ్ వీక్షణలు ఒక ఇండెక్స్ పరిమితిని దాటవేయడానికి మిమ్మల్ని అనుమతిస్తాయి. బహుశా నేను చాలా స్పష్టంగా చెప్పలేదు, కానీ మేము లాగ్లను లోడ్ చేసినప్పుడు, ముడి లాగ్లు ఒక ఇండెక్స్తో టేబుల్లో ఉన్నాయి మరియు అట్రిబ్యూట్ లాగ్లు టేబుల్లో ఉన్నాయి, అంటే అదే డేటా, ఫిల్టర్ మాత్రమే, కానీ ఇండెక్స్ పూర్తిగా ఉంది ఇతరులు. ఇది ఒకే డేటాగా ఉంది, కానీ విభిన్న క్రమబద్ధీకరణ. మరియు మెటీరియలైజ్డ్ వీక్షణలు మీకు అవసరమైతే, అటువంటి ClickHouse పరిమితిని దాటవేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
- పాయింట్ ప్రశ్నల కోసం ఇండెక్స్ గ్రాన్యులారిటీని తగ్గించండి.
- మరియు డేటాను తెలివిగా పంపిణీ చేయండి, సాధ్యమైనంతవరకు సర్వర్లోని డేటాను స్థానికీకరించడానికి ప్రయత్నించండి. మరియు అభ్యర్థనలు వీలైనంత వరకు సాధ్యమైన చోట స్థానికీకరణను కూడా ఉపయోగిస్తాయని నిర్ధారించుకోవడానికి ప్రయత్నించండి.
మరియు ఈ సంక్షిప్త ప్రసంగాన్ని సంగ్రహించి, క్లిక్హౌస్ ఇప్పుడు వాణిజ్య డేటాబేస్లు మరియు ఓపెన్ సోర్స్ డేటాబేస్లు రెండింటినీ గట్టిగా ఆక్రమించిందని మేము చెప్పగలం, అంటే ప్రత్యేకంగా విశ్లేషణల కోసం. అతను ఈ ప్రకృతి దృశ్యానికి సరిగ్గా సరిపోతాడు. ఇంకా ఏమిటంటే, ఇది నెమ్మదిగా ఇతరులను ఆకర్షించడం ప్రారంభిస్తుంది, ఎందుకంటే మీకు క్లిక్హౌస్ ఉన్నప్పుడు, మీకు InfiniDB అవసరం లేదు. వారు సాధారణ SQL మద్దతును చేస్తే వెర్టికా త్వరలో అవసరం లేదు. ఆనందించండి!
-నివేదికకు ధన్యవాదాలు! చాలా ఆసక్తికరమైన! అపాచీ ఫీనిక్స్తో ఏదైనా పోలికలు ఉన్నాయా?
లేదు, ఎవరూ పోల్చడం నేను వినలేదు. మేము మరియు Yandex వివిధ డేటాబేస్లతో అన్ని ClickHouse పోలికలను ట్రాక్ చేయడానికి ప్రయత్నిస్తాము. ఎందుకంటే అకస్మాత్తుగా ఏదైనా క్లిక్హౌస్ కంటే వేగంగా మారితే, లెషా మిలోవిడోవ్ రాత్రి నిద్రపోలేడు మరియు దానిని త్వరగా వేగవంతం చేయడం ప్రారంభిస్తాడు. నేను అలాంటి పోలిక గురించి వినలేదు.
-
(అలెక్సీ మిలోవిడోవ్) Apache Phoenix అనేది Hbase ద్వారా ఆధారితమైన SQL ఇంజిన్. Hbase ప్రధానంగా కీ-విలువ పని దృశ్యం కోసం. అక్కడ, ప్రతి పంక్తిలో, ఏకపక్ష పేర్లతో ఏకపక్ష సంఖ్యలో నిలువు వరుసలు ఉండవచ్చు. Hbase, Cassandra వంటి వ్యవస్థల గురించి ఇది చెప్పవచ్చు. మరియు ఇది ఖచ్చితంగా భారీ విశ్లేషణాత్మక ప్రశ్నలు వారికి సాధారణంగా పని చేయదు. లేదా క్లిక్హౌస్తో మీకు అనుభవం లేకుంటే అవి బాగా పనిచేస్తాయని మీరు అనుకోవచ్చు.
-
Спасибо
-
శుభ మద్యాహ్నం నేను ఇప్పటికే ఈ అంశంపై చాలా ఆసక్తిని కలిగి ఉన్నాను, ఎందుకంటే నాకు విశ్లేషణాత్మక ఉపవ్యవస్థ ఉంది. కానీ నేను క్లిక్హౌస్ని చూసినప్పుడు, ఈవెంట్ అనాలిసిస్కి, మ్యూటబుల్కి క్లిక్హౌస్ చాలా బాగా సరిపోతుందని నాకు అనిపిస్తుంది. మరియు నేను పెద్ద పట్టికల సమూహంతో చాలా వ్యాపార డేటాను విశ్లేషించాల్సిన అవసరం ఉంటే, క్లిక్హౌస్, నేను అర్థం చేసుకున్నంతవరకు, నాకు చాలా సరిఅయినది కాదా? ముఖ్యంగా వారు మారితే. ఇది సరైనదేనా లేదా దీనిని తిరస్కరించే ఉదాహరణలు ఉన్నాయా?
-
ఇది సరైనది. మరియు ఇది చాలా ప్రత్యేకమైన విశ్లేషణాత్మక డేటాబేస్ల విషయంలో నిజం. మార్చగల ఒకటి లేదా అంతకంటే ఎక్కువ పెద్ద పట్టికలు మరియు నెమ్మదిగా మారే అనేక చిన్న వాటి కోసం అవి రూపొందించబడ్డాయి. అంటే, క్లిక్హౌస్ ఒరాకిల్ లాంటిది కాదు, ఇక్కడ మీరు ప్రతిదీ ఉంచవచ్చు మరియు చాలా క్లిష్టమైన ప్రశ్నలను రూపొందించవచ్చు. ClickHouseని సమర్థవంతంగా ఉపయోగించడానికి, మీరు ClickHouseలో బాగా పనిచేసే విధంగా ఒక పథకాన్ని రూపొందించాలి. అంటే, అధిక సాధారణీకరణను నివారించండి, నిఘంటువులను ఉపయోగించండి, తక్కువ పొడవైన లింక్లను చేయడానికి ప్రయత్నించండి. మరియు పథకం ఈ విధంగా నిర్మించబడితే, సాంప్రదాయ రిలేషనల్ డేటాబేస్ కంటే క్లిక్హౌస్లో ఇలాంటి వ్యాపార పనులు చాలా సమర్థవంతంగా పరిష్కరించబడతాయి.
-
నివేదికకు ధన్యవాదాలు! తాజా ఆర్థిక కేసు గురించి నాకు ఒక ప్రశ్న ఉంది. వారు విశ్లేషణలను కలిగి ఉన్నారు. అవి ఎలా పైకి క్రిందికి వెళ్తాయో పోల్చడం అవసరం. మరియు మీరు ఈ విశ్లేషణల కోసం ప్రత్యేకంగా సిస్టమ్ను రూపొందించారని నేను అర్థం చేసుకున్నాను? రేపు, ఉదాహరణకు, వారికి ఈ డేటాపై వేరే నివేదిక అవసరమైతే, వారు స్కీమాను మళ్లీ రూపొందించి, డేటాను అప్లోడ్ చేయాలా? అంటే, అభ్యర్థనను పొందడానికి కొన్ని రకాల ప్రీప్రాసెసింగ్ చేయాలా?
వాస్తవానికి, ఇది చాలా నిర్దిష్టమైన పని కోసం ClickHouse యొక్క ఉపయోగం. ఇది మరింత సాంప్రదాయకంగా హడూప్లో పరిష్కరించబడుతుంది. హడూప్ కోసం, ఇది ఆదర్శవంతమైన పని. కానీ హడూప్లో ఇది చాలా నెమ్మదిగా ఉంది. మరియు నా లక్ష్యం క్లిక్హౌస్ సాధారణంగా పూర్తిగా భిన్నమైన మార్గాల ద్వారా పరిష్కరించబడే పనులను పరిష్కరించగలదని ప్రదర్శించడం, కానీ అదే సమయంలో దీన్ని మరింత సమర్థవంతంగా చేస్తుంది. ఇది ఒక నిర్దిష్ట పని కోసం రూపొందించబడింది. ఇలాంటి వాటితో ఏదైనా సమస్య ఉంటే, దానిని ఇదే విధంగా పరిష్కరించవచ్చు.
అది స్పష్టమైనది. 50 గంటలు ప్రాసెస్ చేయబడిందని మీరు చెప్పారు. ఇది మొదటి నుండే, మీరు డేటాను ఎప్పుడు లోడ్ చేసారు లేదా ఫలితాలను పొందారు?
అవును అవును.
సరే చాలా ధన్యవాదాలు.
ఇది 3 సర్వర్ క్లస్టర్లో ఉంది.
శుభాకాంక్షలు! నివేదికకు ధన్యవాదాలు! ప్రతిదీ చాలా ఆసక్తికరంగా ఉంది. నేను కార్యాచరణ గురించి కొంచెం అడగను, కానీ స్థిరత్వం పరంగా ClickHouse ఉపయోగం గురించి. అంటే, మీకు ఏమైనా ఉందా, మీరు పునరుద్ధరించవలసి ఉందా? ఈ సందర్భంలో ClickHouse ఎలా ప్రవర్తిస్తుంది? మరియు మీకు ప్రతిరూపం కూడా ఉందా? ఉదాహరణకు, క్లిక్హౌస్ దాని పరిమితి నుండి బయటపడి పడిపోయినప్పుడు మేము దానితో సమస్యను ఎదుర్కొన్నాము.
వాస్తవానికి, ఆదర్శవంతమైన వ్యవస్థలు లేవు. మరియు ClickHouse దాని స్వంత సమస్యలను కూడా కలిగి ఉంది. కానీ Yandex.Metrica చాలా కాలంగా పనిచేయడం లేదని మీరు విన్నారా? బహుశా కాకపోవచ్చు. ఇది క్లిక్హౌస్లో 2012-2013 నుండి విశ్వసనీయంగా పని చేస్తోంది. నా అనుభవం గురించి నేను అదే చెప్పగలను. మాకు ఎప్పుడూ పూర్తి వైఫల్యాలు లేవు. కొన్ని పాక్షిక విషయాలు జరగవచ్చు, కానీ అవి వ్యాపారాన్ని తీవ్రంగా ప్రభావితం చేసేంత క్లిష్టమైనవి కావు. అది ఎప్పుడూ జరగలేదు. ClickHouse చాలా నమ్మదగినది మరియు యాదృచ్ఛికంగా క్రాష్ అవ్వదు. మీరు దాని గురించి ఆందోళన చెందాల్సిన అవసరం లేదు. ఇది పచ్చి విషయం కాదు. ఇది చాలా కంపెనీలు నిరూపించాయి.
హలో! మీరు వెంటనే డేటా స్కీమా గురించి ఆలోచించాలని చెప్పారు. అది జరిగితే? నా డేటా కుమ్మరిస్తోంది. ఆరు నెలలు గడిచాయి, మరియు ఇలా జీవించడం అసాధ్యం అని నేను అర్థం చేసుకున్నాను, నేను డేటాను మళ్లీ అప్లోడ్ చేయాలి మరియు వారితో ఏదైనా చేయాలి.
ఇది ఖచ్చితంగా మీ సిస్టమ్పై ఆధారపడి ఉంటుంది. వాస్తవంగా ఎటువంటి స్టాప్ లేకుండా దీన్ని చేయడానికి అనేక మార్గాలు ఉన్నాయి. ఉదాహరణకు, మీరు ఒక మెటీరియలైజ్డ్ వీక్షణను సృష్టించవచ్చు, దానిలో ప్రత్యేకంగా మ్యాప్ చేయబడితే వేరే డేటా నిర్మాణాన్ని రూపొందించవచ్చు. అంటే, ఇది క్లిక్హౌస్ని ఉపయోగించి మ్యాపింగ్ను అనుమతించినట్లయితే, అంటే కొన్ని విషయాలను సంగ్రహించడం, ప్రాథమిక కీని మార్చడం, విభజనను మార్చడం, అప్పుడు మీరు మెటీరియలైజ్డ్ వీక్షణను రూపొందించవచ్చు. మీ పాత డేటాను అక్కడ ఓవర్రైట్ చేయండి, కొత్తవి స్వయంచాలకంగా వ్రాయబడతాయి. ఆపై మెటీరియలైజ్డ్ వ్యూను ఉపయోగించేందుకు మారండి, ఆపై రికార్డ్ను మార్చండి మరియు పాత పట్టికను చంపండి. ఇది సాధారణంగా నాన్-స్టాప్ పద్ధతి.
Спасибо.
మూలం: www.habr.com