கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

மூன்று ஆண்டுகளுக்கு முன்பு மேடையில் யாண்டெக்ஸைச் சேர்ந்த விக்டர் டர்னாவ்ஸ்கி மற்றும் அலெக்ஸி மிலோவிடோவ் ஹைலோட்++ கூறினார், ClickHouse எவ்வளவு நன்றாக இருக்கிறது, அது எப்படி வேகத்தைக் குறைக்காது. மற்றும் அடுத்த கட்டத்தில் இருந்தது அலெக்சாண்டர் ஜைட்சேவ் с அறிக்கை நகர்வது பற்றி கிளிக்ஹவுஸ் மற்றொரு பகுப்பாய்வு DBMS இலிருந்து மற்றும் முடிவுடன் கிளிக்ஹவுஸ், நிச்சயமாக, நல்லது, ஆனால் மிகவும் வசதியானது அல்ல. 2016 இல் நிறுவனம் எப்போது LifeStreet, அலெக்சாண்டர் அப்போது பணிபுரிந்த இடத்தில், பல-பெட்டாபைட் பகுப்பாய்வு அமைப்பை மாற்றினார் கிளிக்ஹவுஸ், இது அறியப்படாத ஆபத்துகள் நிறைந்த ஒரு கண்கவர் "மஞ்சள் செங்கல் சாலை" - கிளிக்ஹவுஸ் அப்போது அது ஒரு கண்ணிவெடி போல் காட்சியளித்தது.

மூன்று வருடங்களுக்கு பிறகு கிளிக்ஹவுஸ் மிகவும் சிறப்பாக மாறியது - இந்த நேரத்தில் அலெக்சாண்டர் ஆல்டினிட்டி நிறுவனத்தை நிறுவினார், இது மக்கள் செல்ல உதவுவது மட்டுமல்லாமல் கிளிக்ஹவுஸ் டஜன் கணக்கான திட்டங்கள், ஆனால் Yandex இன் சக ஊழியர்களுடன் சேர்ந்து தயாரிப்பை மேம்படுத்துகிறது. இப்போது கிளிக்ஹவுஸ் இன்னும் ஒரு கவலையற்ற உலா இல்லை, ஆனால் இனி ஒரு கண்ணிவெடி.

அலெக்சாண்டர் 2003 முதல் விநியோகிக்கப்பட்ட அமைப்புகளுடன் இணைந்து பெரிய திட்டங்களை உருவாக்கி வருகிறார் MySQL, ஆரக்கிள் и வெர்டிகா. கடைசியில் ஹைலோட்++ 2019 அலெக்சாண்டர், பயன்படுத்திய முன்னோடிகளில் ஒருவர் கிளிக்ஹவுஸ், இந்த DBMS இப்போது என்ன என்று கூறினார். முக்கிய அம்சங்களைப் பற்றி அறிந்து கொள்வோம் கிளிக்ஹவுஸ்: இது மற்ற அமைப்புகளிலிருந்து எவ்வாறு வேறுபடுகிறது மற்றும் எந்த சந்தர்ப்பங்களில் அதைப் பயன்படுத்துவது மிகவும் பயனுள்ளதாக இருக்கும். எடுத்துக்காட்டுகளைப் பயன்படுத்தி, கட்டிட அமைப்புகளுக்கான சமீபத்திய மற்றும் திட்ட-சோதனை செய்யப்பட்ட நடைமுறைகளைப் பார்ப்போம் கிளிக்ஹவுஸ்.


பின்னோக்கி: 3 ஆண்டுகளுக்கு முன்பு என்ன நடந்தது

மூன்று ஆண்டுகளுக்கு முன்பு நாங்கள் நிறுவனத்தை மாற்றினோம் LifeStreet மீது கிளிக்ஹவுஸ் மற்றொரு பகுப்பாய்வு தரவுத்தளத்திலிருந்து, மற்றும் விளம்பர நெட்வொர்க் பகுப்பாய்வு இடம்பெயர்வு இப்படி இருந்தது:

  • ஜூன் 2016. இல் ஓப்பன்சோர்ஸ் தோன்றினார் கிளிக்ஹவுஸ் மற்றும் எங்கள் திட்டம் தொடங்கியது;
  • ஆகஸ்ட். கருத்துக்கான சான்று: பெரிய விளம்பர நெட்வொர்க், உள்கட்டமைப்பு மற்றும் 200-300 டெராபைட் தரவு;
  • அக்டோபர். முதல் உற்பத்தி தரவு;
  • டிசம்பர். முழு தயாரிப்பு சுமை ஒரு நாளைக்கு 10-50 பில்லியன் நிகழ்வுகள் ஆகும்.
  • ஜூன் 2017. பயனர்களின் வெற்றிகரமான இடம்பெயர்வு கிளிக்ஹவுஸ், 2,5 சேவையகங்களின் தொகுப்பில் 60 பெட்டாபைட் தரவு.

இடம்பெயர்வு செயல்பாட்டின் போது, ​​ஒரு வளர்ந்து வரும் புரிதல் இருந்தது கிளிக்ஹவுஸ் வேலை செய்ய இனிமையான ஒரு நல்ல அமைப்பு, ஆனால் இது Yandex இன் உள் திட்டமாகும். எனவே, நுணுக்கங்கள் உள்ளன: யாண்டெக்ஸ் முதலில் அதன் சொந்த உள் வாடிக்கையாளர்களுடன் சமாளிக்கும், பின்னர் சமூகம் மற்றும் வெளிப்புற பயனர்களின் தேவைகளை மட்டுமே கையாளும், மேலும் கிளிக்ஹவுஸ் பின்னர் பல செயல்பாட்டு பகுதிகளில் நிறுவன அளவை எட்டவில்லை. அதனால்தான் மார்ச் 2017 இல் ஆல்டினிட்டியை உருவாக்கினோம் கிளிக்ஹவுஸ் Yandex க்கு மட்டுமல்ல, பிற பயனர்களுக்கும் இன்னும் வேகமான மற்றும் வசதியானது. இப்போது நாம்:

  • அதன் அடிப்படையில் தீர்வுகளை உருவாக்க நாங்கள் பயிற்சியளித்து உதவுகிறோம் கிளிக்ஹவுஸ் வாடிக்கையாளர்கள் சிக்கலில் சிக்காமல் இருக்கவும், தீர்வு இறுதியில் வேலை செய்யும் வகையில்;
  • நாங்கள் 24/7 ஆதரவை வழங்குகிறோம் கிளிக்ஹவுஸ்- நிறுவல்கள்;
  • நாங்கள் எங்கள் சொந்த சுற்றுச்சூழல் திட்டங்களை உருவாக்குகிறோம்;
  • நாம் சுறுசுறுப்பாக எங்களுக்காக அர்ப்பணிக்கிறோம் கிளிக்ஹவுஸ், குறிப்பிட்ட அம்சங்களைப் பார்க்க விரும்பும் பயனர்களின் கோரிக்கைகளுக்குப் பதிலளிப்பது.

நிச்சயமாக, நாங்கள் நகர்த்த உதவுகிறோம் கிளிக்ஹவுஸ் с MySQL,, வெர்டிகா, Oracle , கிரீன்பிளம், சிவப்புப் பெயர்ச்சி மற்றும் பிற அமைப்புகள். நாங்கள் பல்வேறு நகர்வுகளில் ஈடுபட்டுள்ளோம், அவை அனைத்தும் வெற்றி பெற்றுள்ளன.

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

ஏன் நகர்த்த வேண்டும் கிளிக்ஹவுஸ்

வேகம் குறையாது! இதுவே முக்கிய காரணம். கிளிக்ஹவுஸ் - வெவ்வேறு காட்சிகளுக்கான மிக விரைவான தரவுத்தளம்:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

நீண்ட காலமாக மக்களுடன் பணிபுரியும் நபர்களிடமிருந்து சீரற்ற மேற்கோள்கள் கிளிக்ஹவுஸ்.

அளவீடல். வேறு சில தரவுத்தளத்தில் நீங்கள் ஒரு வன்பொருளில் நல்ல செயல்திறனை அடைய முடியும், ஆனால் கிளிக்ஹவுஸ் சேவையகங்களைச் சேர்ப்பதன் மூலம் நீங்கள் செங்குத்தாக மட்டுமன்றி கிடைமட்டமாகவும் அளவிட முடியும். எல்லாம் நாம் விரும்பும் அளவுக்கு சீராக வேலை செய்யாது, ஆனால் அது வேலை செய்கிறது. உங்கள் வணிகம் வளரும்போது நீங்கள் அமைப்பை விரிவுபடுத்தலாம். நாம் இப்போது தீர்வுக்கு மட்டுப்படுத்தப்படவில்லை என்பதும், வளர்ச்சிக்கான சாத்தியக்கூறுகள் எப்போதும் இருப்பதும் முக்கியம்.

பெயர்வுத்திறன். ஒரு விஷயத்தில் பற்றுதல் இல்லை. உதாரணமாக, உடன் அமேசான் ரெட்ஷிஃப்ட் எங்காவது நகர்வது கடினம். ஏ கிளிக்ஹவுஸ் நீங்கள் அதை உங்கள் லேப்டாப், சர்வரில் நிறுவி, மேகக்கணியில் வரிசைப்படுத்தலாம், செல்லலாம் Kubernetes - உள்கட்டமைப்பின் செயல்பாட்டில் எந்த கட்டுப்பாடுகளும் இல்லை. இது அனைவருக்கும் வசதியானது, மேலும் பல ஒத்த தரவுத்தளங்கள் பெருமை கொள்ள முடியாத ஒரு பெரிய நன்மை.

நெகிழ்வு. கிளிக்ஹவுஸ் ஒரு விஷயத்தை நிறுத்தாது, எடுத்துக்காட்டாக, Yandex.Metrica, ஆனால் மேலும் மேலும் பல்வேறு திட்டங்கள் மற்றும் தொழில்களில் உருவாகிறது மற்றும் பயன்படுத்தப்படுகிறது. புதிய சிக்கல்களைத் தீர்க்க புதிய திறன்களைச் சேர்ப்பதன் மூலம் இது விரிவாக்கப்படலாம். எடுத்துக்காட்டாக, தரவுத்தளத்தில் பதிவுகளை சேமிப்பது மோசமான நடத்தை என்று நம்பப்படுகிறது, எனவே அவை கொண்டு வந்தன Elasticsearch. ஆனால் நெகிழ்வுத்தன்மைக்கு நன்றி கிளிக்ஹவுஸ், நீங்கள் அதில் பதிவுகளையும் சேமிக்கலாம், மேலும் பெரும்பாலும் இது உள்ளதை விட சிறந்தது Elasticsearch - இல் கிளிக்ஹவுஸ் இதற்கு 10 மடங்கு குறைவான இரும்பு தேவைப்படுகிறது.

இலவசம் திறந்த மூல. நீங்கள் எதற்கும் பணம் செலுத்த வேண்டியதில்லை. உங்கள் லேப்டாப் அல்லது சர்வரில் கணினியை நிறுவ அனுமதி பெற வேண்டிய அவசியம் இல்லை. மறைக்கப்பட்ட கட்டணங்கள் இல்லை. அதே நேரத்தில், வேறு எந்த திறந்த மூல தரவுத்தள தொழில்நுட்பமும் வேகத்தில் போட்டியிட முடியாது கிளிக்ஹவுஸ். MySQL, MariaDB, Greenplum - அவை அனைத்தும் மிகவும் மெதுவாக உள்ளன.

சமூகம், ஓட்டு மற்றும் வேடிக்கை. இல் கிளிக்ஹவுஸ் சிறந்த சமூகம்: சந்திப்புகள், அரட்டைகள் மற்றும் அலெக்ஸி மிலோவிடோவ், அவர் தனது ஆற்றல் மற்றும் நம்பிக்கையுடன் நம் அனைவரையும் வசூலிக்கிறார்.

கிளிக்ஹவுஸுக்கு நகர்கிறது

செல்ல கிளிக்ஹவுஸ் சில காரணங்களால், உங்களுக்கு மூன்று விஷயங்கள் மட்டுமே தேவை:

  • வரம்புகளைப் புரிந்து கொள்ளுங்கள் கிளிக்ஹவுஸ் மற்றும் அது எதற்கு ஏற்றதல்ல.
  • பயன்படுத்திக் கொள்ளுங்கள் தொழில்நுட்பம் மற்றும் அதன் மிகப்பெரிய பலம்.
  • பரிசோதனை. இது எவ்வாறு செயல்படுகிறது என்பதைப் புரிந்துகொள்வது கூட கிளிக்ஹவுஸ், எப்போது வேகமாக இருக்கும், எப்போது மெதுவாக இருக்கும், எப்போது சிறப்பாக இருக்கும், எப்போது மோசமாக இருக்கும் என்று கணிப்பது எப்போதும் சாத்தியமில்லை. எனவே முயற்சிக்கவும்.

நகரும் பிரச்சனை

ஒரே ஒரு "ஆனால்" உள்ளது: நீங்கள் நகர்ந்தால் கிளிக்ஹவுஸ் வேறு ஏதாவது இருந்து, பின்னர் பொதுவாக ஏதாவது தவறு நடக்கும். நமக்குப் பிடித்த தரவுத்தளத்தில் செயல்படும் சில நடைமுறைகள் மற்றும் விஷயங்களுக்கு நாங்கள் பழக்கமாகிவிட்டோம். உதாரணமாக, உடன் பணிபுரியும் எவரும் SQஎல்-தரவுத்தளங்கள் பின்வரும் செயல்பாடுகளை கட்டாயமாகக் கருதுகின்றன:

  • பரிவர்த்தனைகள்;
  • கட்டுப்பாடுகள்;
  • நிலைத்தன்மையும்;
  • குறியீடுகள்;
  • புதுப்பி/நீக்கு;
  • NULLகள்;
  • மில்லி விநாடிகள்;
  • தானியங்கி வகை நடிகர்கள்;
  • பல இணைப்புகள்;
  • தன்னிச்சையான பகிர்வுகள்;
  • கிளஸ்டர் மேலாண்மை கருவிகள்.

ஆட்சேர்ப்பு கட்டாயமானது, ஆனால் மூன்று ஆண்டுகளுக்கு முன்பு கிளிக்ஹவுஸ் இந்த செயல்பாடுகள் எதுவும் கிடைக்கவில்லை! இப்போது நடைமுறைப்படுத்தப்படாதவற்றில் பாதிக்குக் குறைவாகவே உள்ளது: பரிவர்த்தனைகள், கட்டுப்பாடுகள், நிலைத்தன்மை, மில்லி விநாடிகள் மற்றும் வகை வார்ப்பு.

மற்றும் முக்கிய விஷயம் என்னவென்றால் கிளிக்ஹவுஸ் சில நிலையான நடைமுறைகள் மற்றும் அணுகுமுறைகள் வேலை செய்யாது அல்லது நாம் பழகியதை விட வித்தியாசமாக வேலை செய்யாது. தோன்றும் அனைத்தும் கிளிக்ஹவுஸ், ஒத்துள்ளது "கிளிக்ஹவுஸ் வழி", அதாவது செயல்பாடுகள் மற்ற தரவுத்தளங்களிலிருந்து வேறுபடுகின்றன. உதாரணத்திற்கு:

  • குறியீடுகள் தேர்ந்தெடுக்கப்படவில்லை, ஆனால் தவிர்க்கப்பட்டன.
  • புதுப்பி/நீக்கு ஒத்திசைவு அல்ல, ஆனால் ஒத்திசைவற்றது.
  • பல இணைப்புகள் உள்ளன, ஆனால் வினவல் திட்டமிடுபவர் இல்லை. பின்னர் அவை எவ்வாறு செயல்படுகின்றன என்பது பொதுவாக தரவுத்தள உலகில் உள்ளவர்களுக்கு தெளிவாகத் தெரியவில்லை.

கிளிக்ஹவுஸ் ஸ்கிரிப்ட்கள்

1960 இல், ஹங்கேரிய வம்சாவளியைச் சேர்ந்த ஒரு அமெரிக்க கணிதவியலாளர் விக்னர் ஈ.பி ஒரு கட்டுரை எழுதினார்"இயற்கை அறிவியலில் கணிதத்தின் நியாயமற்ற செயல்திறன்” (“இயற்கை அறிவியலில் கணிதத்தின் புரிந்துகொள்ள முடியாத விளைவு”) நம்மைச் சுற்றியுள்ள உலகம் சில காரணங்களால் கணிதச் சட்டங்களால் நன்கு விவரிக்கப்பட்டுள்ளது. கணிதம் ஒரு சுருக்கமான அறிவியல், மற்றும் கணித வடிவத்தில் வெளிப்படுத்தப்படும் இயற்பியல் விதிகள் அற்பமானவை அல்ல, மற்றும் விக்னர் ஈ.பி இது மிகவும் விசித்திரமானது என்று வலியுறுத்தினார்.

என் பார்வையில் இருந்து, கிளிக்ஹவுஸ் - அதே விசித்திரம். விக்னரை மறுபெயரிட, நாம் இதைச் சொல்லலாம்: சிந்திக்க முடியாத செயல்திறன் வியக்க வைக்கிறது கிளிக்ஹவுஸ் பல்வேறு வகையான பகுப்பாய்வு பயன்பாடுகளில்!

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

உதாரணமாக, எடுத்துக் கொள்வோம் நிகழ்நேர தரவுக் கிடங்கு, இதில் தரவு கிட்டத்தட்ட தொடர்ச்சியாக ஏற்றப்படுகிறது. இரண்டாவது தாமதத்துடன் அதிலிருந்து கோரிக்கைகளைப் பெற விரும்புகிறோம். தயவுசெய்து - அதைப் பயன்படுத்தவும் கிளிக்ஹவுஸ், ஏனெனில் இது வடிவமைக்கப்பட்ட காட்சியாகும். கிளிக்ஹவுஸ் இது இணையத்தில் மட்டுமல்ல, சந்தைப்படுத்தல் மற்றும் நிதி பகுப்பாய்வுகளிலும் பயன்படுத்தப்படுகிறது, AdTech, அத்துடன் உள்ள மோசடி கண்டறிதல்n IN நிகழ்நேர தரவுக் கிடங்கு "நட்சத்திரம்" அல்லது "ஸ்னோஃப்ளேக்" போன்ற சிக்கலான கட்டமைக்கப்பட்ட திட்டம் பயன்படுத்தப்படுகிறது, பல அட்டவணைகள் சேர்க (சில நேரங்களில் பல), மற்றும் தரவு பொதுவாக சில கணினிகளில் சேமிக்கப்பட்டு மாற்றப்படும்.

இன்னொரு காட்சியை எடுத்துக் கொள்வோம் - நேரத் தொடர்: சாதனங்கள், நெட்வொர்க்குகள், பயன்பாட்டு புள்ளிவிவரங்கள், இன்டர்நெட் ஆஃப் திங்ஸ் ஆகியவற்றின் கண்காணிப்பு. சரியான நேரத்தில் ஒழுங்குபடுத்தப்பட்ட மிகவும் எளிமையான நிகழ்வுகளை இங்கே சந்திக்கிறோம். கிளிக்ஹவுஸ் இதற்காக முதலில் உருவாக்கப்படவில்லை, ஆனால் அது நன்றாக வேலை செய்வதாகக் காட்டியது, அதனால்தான் பெரிய நிறுவனங்கள் பயன்படுத்துகின்றன கிளிக்ஹவுஸ் தகவல்களைக் கண்காணிப்பதற்கான களஞ்சியமாக. பொருத்தமானதா என ஆராய வேண்டும் கிளிக்ஹவுஸ் நேரத் தொடருக்கு, அணுகுமுறை மற்றும் முடிவுகளின் அடிப்படையில் ஒரு அளவுகோலை உருவாக்கினோம் InfluxDB и டைம்ஸ்கேல் டி.பி. - சிறப்பு நேரத் தொடர் தரவுத்தளங்கள். அது மாறியது, என்று கிளிக்ஹவுஸ், அத்தகைய பணிகளுக்கான தேர்வுமுறை இல்லாமல் கூட, ஒரு வெளிநாட்டு துறையில் வெற்றி பெறுகிறார்:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

В நேரத் தொடர் பொதுவாக ஒரு குறுகிய அட்டவணை பயன்படுத்தப்படுகிறது - பல சிறிய நெடுவரிசைகள். கண்காணிப்பில் இருந்து நிறைய தரவுகள் வரலாம்—வினாடிக்கு மில்லியன் கணக்கான பதிவுகள்—அவை பொதுவாக சிறிய வெடிப்புகளில் வரும் (நிகழ் நேர ஸ்ட்ரீமிங்). எனவே, வேறு செருகும் ஸ்கிரிப்ட் தேவை, மேலும் வினவல்கள் அவற்றின் சொந்த விவரங்களைக் கொண்டுள்ளன.

பதிவு மேலாண்மை. தரவுத்தளத்தில் பதிவுகளை சேகரிப்பது பொதுவாக மோசமானது, ஆனால் கிளிக்ஹவுஸ் மேலே விவரிக்கப்பட்ட சில கருத்துகள் மூலம் இதைச் செய்யலாம். பல நிறுவனங்கள் பயன்படுத்துகின்றன கிளிக்ஹவுஸ் சரியாக இந்த நோக்கத்திற்காக. இந்த வழக்கில், நாங்கள் ஒரு தட்டையான பரந்த அட்டவணையைப் பயன்படுத்துகிறோம், அங்கு முழு பதிவுகளையும் சேமிக்கிறோம் (எடுத்துக்காட்டாக, வடிவத்தில் எஞ்சினியரிங்), அல்லது துண்டுகளாக வெட்டவும். தரவு பொதுவாக பெரிய தொகுதிகளில் (கோப்புகள்) ஏற்றப்படும், மேலும் சில புலங்களில் தேடுவோம்.

இந்த செயல்பாடுகள் ஒவ்வொன்றிற்கும், சிறப்பு தரவுத்தளங்கள் பொதுவாகப் பயன்படுத்தப்படுகின்றன. கிளிக்ஹவுஸ் ஒருவரால் அனைத்தையும் செய்ய முடியும் மற்றும் அது அவர்களை விஞ்சிவிடும். இப்போது ஒரு நெருக்கமான தோற்றத்தை எடுத்துக் கொள்வோம் நேரத் தொடர் சூழ்நிலை மற்றும் சரியாக "சமைப்பது" எப்படி கிளிக்ஹவுஸ் இந்த சூழ்நிலையில்.

நேரத் தொடர்

தற்போது இது முக்கிய காட்சியாக உள்ளது கிளிக்ஹவுஸ் நிலையான தீர்வு கருதப்படுகிறது. நேரத் தொடர் காலப்போக்கில் வரிசைப்படுத்தப்பட்ட நிகழ்வுகளின் தொகுப்பாகும், இது காலப்போக்கில் சில செயல்முறைகளில் ஏற்படும் மாற்றங்களைக் குறிக்கிறது. உதாரணமாக, இது நாளொன்றுக்கு இதயத் துடிப்பு அல்லது அமைப்பில் உள்ள செயல்முறைகளின் எண்ணிக்கையாக இருக்கலாம். சில பரிமாணங்களைக் கொண்ட காலத்தைத் தரும் அனைத்தும் நேரத் தொடர்:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

இந்த வகையான நிகழ்வுகளில் பெரும்பாலானவை கண்காணிப்பில் இருந்து வருகின்றன. இது இணையத்தை கண்காணிப்பது மட்டுமல்ல, உண்மையான சாதனங்களும் கூட: கார்கள், தொழில்துறை அமைப்புகள், சனத்தொகை, தொழிற்சாலைகள் அல்லது ஆளில்லா டாக்சிகள், அதன் உடற்பகுதியில் ஏற்கனவே Yandex போடுகிறது கிளிக்ஹவுஸ்- சர்வர்.

உதாரணமாக, கப்பல்களில் இருந்து தரவு சேகரிக்கும் நிறுவனங்கள் உள்ளன. ஒவ்வொரு சில வினாடிகளிலும், கொள்கலன் கப்பலில் உள்ள சென்சார்கள் நூற்றுக்கணக்கான வெவ்வேறு அளவீடுகளை அனுப்புகின்றன. பொறியாளர்கள் அவற்றைப் படித்து, மாதிரிகளை உருவாக்கி, கப்பல் எவ்வளவு திறமையாகப் பயன்படுத்தப்படுகிறது என்பதைப் புரிந்துகொள்ள முயற்சி செய்கிறார்கள், ஏனென்றால் ஒரு கொள்கலன் கப்பல் ஒரு நொடி கூட சும்மா இருக்கக்கூடாது. எந்த வேலையில்லா நேரமும் பண இழப்பாகும், எனவே நிறுத்தங்கள் குறைவாக இருக்கும் வகையில் வழியைக் கணிப்பது முக்கியம்.

இப்போதெல்லாம் அளவிடும் சிறப்பு தரவுத்தளங்களின் வளர்ச்சி உள்ளது நேரத் தொடர். தளத்தில் டிபி-என்ஜின்கள் வெவ்வேறு தரவுத்தளங்கள் எப்படியோ தரவரிசைப்படுத்தப்பட்டுள்ளன, மேலும் அவற்றை வகையின்படி பார்க்கலாம்:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

வேகமாக வளரும் வகை நேரத் தொடர்கள். வரைபட தரவுத்தளங்களும் வளர்ந்து வருகின்றன, ஆனால் நேரத் தொடர்கடந்த சில ஆண்டுகளாக வேகமாக வளர்ந்து வருகிறது. இந்த தரவுத்தளங்களின் குடும்பத்தின் பொதுவான பிரதிநிதிகள் InfluxDB, பிரமீதீயஸ், KDB, டைம்ஸ்கேல் டி.பி. (கட்டப்பட்டது போஸ்ட்கெரே), தீர்வுகள் அமேசான். கிளிக்ஹவுஸ் இங்கேயும் பயன்படுத்தலாம் மற்றும் பயன்படுத்தப்படுகிறது. சில பொது உதாரணங்களை தருகிறேன்.

முன்னோடி நிறுவனங்களில் ஒன்று CloudFlare (வலம்புரி- வழங்குபவர்). அவர்கள் அவர்களை கண்காணிக்கிறார்கள் வலம்புரி மூலம் கிளிக்ஹவுஸ் (டிஎன்எஸ்-கோரிக்கைகளை, , HTTP-வினவல்கள்) ஒரு பெரிய சுமையுடன் - வினாடிக்கு 6 மில்லியன் நிகழ்வுகள். எல்லாம் கடந்து செல்கிறது காஃப்கா, செல்லும் கிளிக்ஹவுஸ், இது கணினியில் நிகழ்வுகளின் டாஷ்போர்டுகளை உண்மையான நேரத்தில் பார்க்கும் வாய்ப்பை வழங்குகிறது.

காம்காஸ்ட் - அமெரிக்காவில் தொலைத்தொடர்புத் தலைவர்களில் ஒருவர்: இணையம், டிஜிட்டல் தொலைக்காட்சி, தொலைபேசி. அவர்கள் இதே போன்ற கட்டுப்பாட்டு அமைப்பை உருவாக்கினர் வலம்புரி உள்ளே திறந்த மூல திட்டம் அப்பாச்சி போக்குவரத்து கட்டுப்பாடு உங்கள் பெரிய தரவுகளுடன் வேலை செய்ய. கிளிக்ஹவுஸ் பகுப்பாய்வுக்கான பின்தளமாகப் பயன்படுத்தப்படுகிறது.

பெர்கோனா கட்டப்பட்டது கிளிக்ஹவுஸ் உங்கள் உள்ளே PMMபல்வேறு கண்காணிப்புகளை சேமிக்க MySQL,.

குறிப்பிட்ட தேவைகள்

நேர-தொடர் தரவுத்தளங்கள் அவற்றின் சொந்த குறிப்பிட்ட தேவைகளைக் கொண்டுள்ளன.

  • பல முகவர்களிடமிருந்து விரைவான செருகல். பல ஸ்ட்ரீம்களில் இருந்து தரவை மிக விரைவாகச் செருக வேண்டும். கிளிக்ஹவுஸ் அதன் அனைத்து செருகல்களும் தடுக்காதவை என்பதால் இது நன்றாகச் செய்கிறது. ஏதேனும் நுழைக்க வட்டில் ஒரு புதிய கோப்பு, மற்றும் சிறிய செருகல்களை ஒரு வழியில் அல்லது வேறு வழியில் இடையகப்படுத்தலாம். IN கிளிக்ஹவுஸ் ஒரு நேரத்தில் ஒரு வரியை விட பெரிய தொகுதிகளில் தரவைச் செருகுவது நல்லது.
  • நெகிழ்வான திட்டம். தி நேரத் தொடர் பொதுவாக தரவுக் கட்டமைப்பை நாம் முழுமையாக அறிவதில்லை. ஒரு குறிப்பிட்ட பயன்பாட்டிற்கான கண்காணிப்பு அமைப்பை உருவாக்குவது சாத்தியம், ஆனால் மற்றொரு பயன்பாட்டிற்கு அதைப் பயன்படுத்துவது கடினம். இதற்கு மிகவும் நெகிழ்வான திட்டம் தேவை. கிளிக்ஹவுஸ், இது வலுவாக தட்டச்சு செய்யப்பட்ட தளமாக இருந்தாலும் இதைச் செய்ய உங்களை அனுமதிக்கிறது.
  • திறமையான சேமிப்பு மற்றும் தரவை மறத்தல். பொதுவாக உள்ள நேரத் தொடர் ஒரு பெரிய அளவிலான தரவு, எனவே அது முடிந்தவரை திறமையாக சேமிக்கப்பட வேண்டும். உதாரணமாக, மணிக்கு InfluxDB நல்ல சுருக்கம் அதன் முக்கிய அம்சமாகும். ஆனால் சேமிப்பதைத் தவிர, நீங்கள் பழைய தரவை "மறந்து" சில வகையானவற்றைச் செய்ய வேண்டும் கீழிறக்கம் - திரட்டுகளின் தானியங்கி எண்ணுதல்.
  • ஒருங்கிணைக்கப்பட்ட தரவுகளில் விரைவான வினவல்கள். சில நேரங்களில் மில்லி விநாடிகளின் துல்லியத்துடன் கடைசி 5 நிமிடங்களைப் பார்ப்பது சுவாரஸ்யமானது, ஆனால் மாதாந்திர தரவு நிமிடம் அல்லது இரண்டாவது கிரானுலாரிட்டி தேவைப்படாது - பொதுவான புள்ளிவிவரங்கள் போதும். இந்த வகையான ஆதரவு அவசியம், இல்லையெனில் 3 மாதங்களுக்கு ஒரு கோரிக்கையை முடிக்க மிக நீண்ட நேரம் எடுக்கும் கிளிக்ஹவுஸ்.
  • போன்ற கோரிக்கைகள் "கடைசி புள்ளி, என». இவை பொதுவானவை நேரத் தொடர் வினவல்கள்: ஒரு நேரத்தில் கணினியின் கடைசி அளவீடு அல்லது நிலையைப் பார்க்கவும் t. இவை தரவுத்தளத்திற்கான மிகவும் இனிமையான வினவல்கள் அல்ல, ஆனால் நீங்கள் அவற்றைச் செய்ய முடியும்.
  • "ஒட்டுதல்" நேரத் தொடர். நேரத் தொடர் ஒரு நேரத் தொடராகும். இரண்டு நேரத் தொடர்கள் இருந்தால், அவை அடிக்கடி இணைக்கப்பட்டு தொடர்புபடுத்தப்பட வேண்டும். எல்லா தரவுத்தளங்களிலும், குறிப்பாக சீரமைக்கப்படாத நேரத் தொடரில் இதைச் செய்வது வசதியானது அல்ல: இங்கே சில நேர புள்ளிகள் உள்ளன, மற்றவை உள்ளன. நீங்கள் சராசரியைக் கருத்தில் கொள்ளலாம், ஆனால் திடீரென்று இன்னும் ஒரு துளை இருக்கும், எனவே அது தெளிவாக இல்லை.

இந்த தேவைகள் எவ்வாறு பூர்த்தி செய்யப்படுகின்றன என்பதைப் பார்ப்போம் கிளிக்ஹவுஸ்.

திட்டம்

В கிளிக்ஹவுஸ் திட்டம் நேரத் தொடர் தரவுகளின் ஒழுங்குமுறையின் அளவைப் பொறுத்து, வெவ்வேறு வழிகளில் செய்ய முடியும். அனைத்து அளவீடுகளையும் முன்கூட்டியே அறிந்தால் வழக்கமான தரவுகளில் ஒரு அமைப்பை உருவாக்குவது சாத்தியமாகும். உதாரணமாக, நான் இதைச் செய்தேன் CloudFlare கண்காணிப்புடன் வலம்புரி நன்கு உகந்த அமைப்பாகும். முழு உள்கட்டமைப்பு மற்றும் பல்வேறு சேவைகளை கண்காணிக்கும் பொதுவான அமைப்பை நீங்கள் உருவாக்கலாம். ஒழுங்கற்ற தரவுகளின் விஷயத்தில், நாங்கள் எதைக் கண்காணிக்கிறோம் என்பது எங்களுக்கு முன்கூட்டியே தெரியாது - மேலும் இது மிகவும் பொதுவான வழக்கு.

வழக்கமான தரவு. நெடுவரிசைகள். திட்டம் எளிதானது - தேவையான வகைகளைக் கொண்ட நெடுவரிசைகள்:

CREATE TABLE cpu (
  created_date Date DEFAULT today(),  
  created_at DateTime DEFAULT now(),  
  time String,  
  tags_id UInt32,  /* join to dim_tag */
  usage_user Float64,  
  usage_system Float64,  
  usage_idle Float64,  
  usage_nice Float64,  
  usage_iowait Float64,  
  usage_irq Float64,  
  usage_softirq Float64,  
  usage_steal Float64,  
  usage_guest Float64,  
  usage_guest_nice Float64
) ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);

இது ஒரு வழக்கமான அட்டவணையாகும், இது சில வகையான கணினி ஏற்றுதல் செயல்பாட்டைக் கண்காணிக்கிறது (பயனர், அமைப்பு, சும்மா, நல்ல) எளிய மற்றும் வசதியான, ஆனால் நெகிழ்வானது அல்ல. நாம் மிகவும் நெகிழ்வான திட்டத்தை விரும்பினால், நாம் வரிசைகளைப் பயன்படுத்தலாம்.

ஒழுங்கற்ற தரவு. அணிவரிசைகள்:

CREATE TABLE cpu_alc (
  created_date Date,  
  created_at DateTime,  
  time String,  
  tags_id UInt32,  
  metrics Nested(
    name LowCardinality(String),  
    value Float64
  )
) ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);

SELECT max(metrics.value[indexOf(metrics.name,'usage_user')]) FROM ...

அமைப்பு கூடு இரண்டு வரிசைகள்: அளவீடுகள்.பெயர் и அளவீடுகள்.மதிப்பு. ஒவ்வொரு நிகழ்விற்கும் பெயர்களின் வரிசை மற்றும் அளவீடுகளின் வரிசை போன்ற தன்னிச்சையான கண்காணிப்புத் தரவை இங்கே நீங்கள் சேமிக்கலாம். மேலும் தேர்வுமுறைக்கு, அத்தகைய ஒரு கட்டமைப்பிற்கு பதிலாக, நீங்கள் பலவற்றை செய்யலாம். உதாரணமாக, ஒன்று மிதவை-மதிப்பு, மற்றொன்று - க்கு எண்ணாக- ஏனெனில் எண்ணாக நான் இன்னும் திறமையாக சேமிக்க விரும்புகிறேன்.

ஆனால் அத்தகைய கட்டமைப்பை அணுகுவது மிகவும் கடினம். நீங்கள் ஒரு சிறப்பு கட்டுமானத்தைப் பயன்படுத்த வேண்டும், சிறப்பு செயல்பாடுகளைப் பயன்படுத்தி முதலில் குறியீட்டின் மதிப்புகளையும் பின்னர் வரிசையையும் வெளியே இழுக்க வேண்டும்:

SELECT max(metrics.value[indexOf(metrics.name,'usage_user')]) FROM ...

ஆனால் அது இன்னும் விரைவாக வேலை செய்கிறது. ஒழுங்கற்ற தரவைச் சேமிப்பதற்கான மற்றொரு வழி வரிசை.

ஒழுங்கற்ற தரவு. சரங்கள். இந்த பாரம்பரிய முறையில், வரிசைகள் இல்லாமல், பெயர்கள் மற்றும் மதிப்புகள் ஒரே நேரத்தில் சேமிக்கப்படும். ஒரு சாதனத்திலிருந்து ஒரே நேரத்தில் 5 அளவீடுகள் வந்தால், தரவுத்தளத்தில் 000 வரிசைகள் உருவாக்கப்படும்:

CREATE TABLE cpu_rlc (
  created_date Date,  
  created_at DateTime,  
  time String,  
  tags_id UInt32,  
  metric_name LowCardinality(String),  
  metric_value Float64
) ENGINE = MergeTree(created_date, (metric_name, tags_id, created_at), 8192);


SELECT 
    maxIf(metric_value, metric_name = 'usage_user'),
    ... 
FROM cpu_r
WHERE metric_name IN ('usage_user', ...)

கிளிக்ஹவுஸ் இதை சமாளிக்கிறது - இது சிறப்பு நீட்டிப்புகளைக் கொண்டுள்ளது கிளிக்ஹவுஸ் எஸ்கியூஎல். உதாரணமாக அதிகபட்சம் என்றால் — சில நிபந்தனைகள் பூர்த்தி செய்யப்படும்போது அதிகபட்ச அளவை மெட்ரிக் மூலம் கணக்கிடும் ஒரு சிறப்பு செயல்பாடு. நீங்கள் ஒரு கோரிக்கையில் இதுபோன்ற பல வெளிப்பாடுகளை எழுதலாம் மற்றும் பல அளவீடுகளுக்கான மதிப்பை உடனடியாக கணக்கிடலாம்.

மூன்று அணுகுமுறைகளை ஒப்பிடுவோம்:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

Детали

இங்கே நான் சில சோதனை தரவுத் தொகுப்பிற்காக "வட்டு தரவு அளவு" சேர்த்துள்ளேன். நெடுவரிசைகளைப் பொறுத்தவரை, எங்களிடம் மிகச்சிறிய தரவு அளவு உள்ளது: அதிகபட்ச சுருக்கம், அதிகபட்ச வினவல் வேகம், ஆனால் எல்லாவற்றையும் ஒரே நேரத்தில் பதிவுசெய்வதன் மூலம் நாங்கள் பணம் செலுத்துகிறோம்.

வரிசைகளின் விஷயத்தில், எல்லாம் கொஞ்சம் மோசமாக உள்ளது. தரவு இன்னும் நன்றாக சுருக்கப்பட்டுள்ளது மற்றும் ஒழுங்கற்ற வடிவத்தை சேமிக்க முடியும். ஆனாலும் கிளிக்ஹவுஸ் - ஒரு நெடுவரிசை தரவுத்தளம், மற்றும் நாம் எல்லாவற்றையும் ஒரு வரிசையில் சேமிக்கத் தொடங்கும் போது, ​​அது ஒரு வரிசையாக மாறும், மேலும் நாம் செயல்திறனுடன் நெகிழ்வுத்தன்மைக்கு பணம் செலுத்துகிறோம். எந்தவொரு செயல்பாட்டிற்கும், நீங்கள் முழு வரிசையையும் நினைவகத்தில் படிக்க வேண்டும், பின்னர் அதில் விரும்பிய உறுப்பைக் கண்டறியவும் - மேலும் வரிசை வளர்ந்தால், வேகம் குறைகிறது.

இந்த அணுகுமுறையைப் பயன்படுத்தும் நிறுவனங்களில் ஒன்றில் (உதாரணமாக, கிழித்து), வரிசைகள் 128 உறுப்புகளின் துண்டுகளாக வெட்டப்படுகின்றன. 200 TB தரவு/நாள் அளவு கொண்ட பல ஆயிரம் அளவீடுகளின் தரவு ஒரு வரிசையில் அல்ல, சிறப்பு சேமிப்பக தர்க்கத்துடன் 10 அல்லது 30 வரிசைகளில் சேமிக்கப்படுகிறது.

எளிமையான அணுகுமுறை சரங்களுடன் உள்ளது. ஆனால் தரவு மோசமாக சுருக்கப்பட்டுள்ளது, அட்டவணை அளவு பெரியது, மேலும் வினவல்கள் பல அளவீடுகளின் அடிப்படையில் இருந்தாலும், ClickHouse உகந்ததாக வேலை செய்யாது.

கலப்பின திட்டம்

வரிசை சுற்று ஒன்றைத் தேர்ந்தெடுத்துள்ளோம் என்று வைத்துக் கொள்வோம். ஆனால் எங்கள் டாஷ்போர்டுகளில் பெரும்பாலானவை பயனர் மற்றும் சிஸ்டம் அளவீடுகளை மட்டுமே காட்டுகின்றன என்பது எங்களுக்குத் தெரிந்தால், கூடுதலாக இந்த அளவீடுகளை அட்டவணை மட்டத்தில் உள்ள வரிசையில் இருந்து நெடுவரிசைகளாக மாற்றலாம்:

CREATE TABLE cpu_alc (
  created_date Date,  
  created_at DateTime,  
  time String,  
  tags_id UInt32,  
  metrics Nested(
    name LowCardinality(String),  
    value Float64
  ),
  usage_user Float64 
             MATERIALIZED metrics.value[indexOf(metrics.name,'usage_user')],
  usage_system Float64 
             MATERIALIZED metrics.value[indexOf(metrics.name,'usage_system')]
) ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);

செருகும் போது கிளிக்ஹவுஸ் தானாகவே அவற்றை எண்ணும். இந்த வழியில் நீங்கள் வணிகத்தை மகிழ்ச்சியுடன் இணைக்கலாம்: திட்டம் நெகிழ்வானது மற்றும் பொதுவானது, ஆனால் நாங்கள் அடிக்கடி பயன்படுத்தப்படும் நெடுவரிசைகளை வெளியே எடுத்தோம். இதற்கு இன்செர்ட்டை மாற்ற வேண்டிய அவசியமில்லை மற்றும் சேதஇது அட்டவணையில் வரிசைகளைச் செருகுவதைத் தொடர்கிறது. நாங்கள் தான் செய்தோம் மாற்று அட்டவணை, இரண்டு ஸ்பீக்கர்களைச் சேர்த்துள்ளோம், மேலும் நீங்கள் இப்போதே பயன்படுத்தத் தொடங்கக்கூடிய ஹைப்ரிட் மற்றும் வேகமான திட்டத்தைப் பெற்றுள்ளோம்.

கோடெக்குகள் மற்றும் சுருக்கம்

செய்ய நேரத் தொடர் நீங்கள் தரவை எவ்வளவு நன்றாக பேக் செய்வது என்பது முக்கியம், ஏனெனில் தகவலின் அளவு மிகப் பெரியதாக இருக்கும். IN கிளிக்ஹவுஸ் 1:10, 1:20 மற்றும் சில சமயங்களில் ஒரு சுருக்க விளைவை அடைய கருவிகளின் தொகுப்பு உள்ளது. அதாவது, வட்டில் 1 TB பேக் செய்யப்படாத தரவு 50-100 GB வரை எடுக்கும். சிறிய அளவு நல்லது, தரவை விரைவாகப் படிக்கவும் செயலாக்கவும் முடியும்.

உயர் மட்ட சுருக்கத்தை அடைய, கிளிக்ஹவுஸ் பின்வரும் கோடெக்குகளை ஆதரிக்கிறது:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

எடுத்துக்காட்டு அட்டவணை:

CREATE TABLE benchmark.cpu_codecs_lz4 (
    created_date Date DEFAULT today(), 
    created_at DateTime DEFAULT now() Codec(DoubleDelta, LZ4), 
    tags_id UInt32, 
    usage_user Float64 Codec(Gorilla, LZ4), 
    usage_system Float64 Codec(Gorilla, LZ4), 
    usage_idle Float64 Codec(Gorilla, LZ4), 
    usage_nice Float64 Codec(Gorilla, LZ4), 
    usage_iowait Float64 Codec(Gorilla, LZ4), 
    usage_irq Float64 Codec(Gorilla, LZ4), 
    usage_softirq Float64 Codec(Gorilla, LZ4), 
    usage_steal Float64 Codec(Gorilla, LZ4), 
    usage_guest Float64 Codec(Gorilla, LZ4), 
    usage_guest_nice Float64 Codec(Gorilla, LZ4), 
    additional_tags String DEFAULT ''
)
ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);

இங்கே நாம் கோடெக்கை வரையறுக்கிறோம் டபுள் டெல்டா ஒரு வழக்கில், இரண்டாவது - கொரில்லா, நாங்கள் நிச்சயமாக மேலும் சேர்ப்போம் LZ4 சுருக்கம். இதன் விளைவாக, வட்டில் உள்ள தரவின் அளவு வெகுவாகக் குறைக்கப்படுகிறது:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

வெவ்வேறு கோடெக்குகள் மற்றும் சுருக்கங்களைப் பயன்படுத்தி, அதே தரவு எவ்வளவு இடத்தை எடுத்துக்கொள்கிறது என்பதை இது காட்டுகிறது:

  • வட்டில் உள்ள GZIP கோப்பில்;
  • கோடெக்குகள் இல்லாமல் ClickHouse இல், ஆனால் ZSTD சுருக்கத்துடன்;
  • கோடெக்குகள் மற்றும் சுருக்க LZ4 மற்றும் ZSTD உடன் ClickHouse இல்.

கோடெக்குகள் கொண்ட அட்டவணைகள் மிகக் குறைந்த இடத்தை எடுத்துக்கொள்வதைக் காணலாம்.

அளவு விஷயங்கள்

குறைவான முக்கியத்துவம் இல்லை தேர்வு சரியான தரவு வகை:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

மேலே உள்ள எல்லா எடுத்துக்காட்டுகளிலும் நான் பயன்படுத்தினேன் மிதவை64. ஆனால் நாம் தேர்வு செய்தால் மிதவை32, அது இன்னும் சிறப்பாக இருக்கும். மேலே இணைக்கப்பட்ட கட்டுரையில் பெர்கோனாவைச் சேர்ந்த தோழர்களால் இது நன்கு நிரூபிக்கப்பட்டுள்ளது. பணிக்கு ஏற்ற மிகவும் கச்சிதமான வகையைப் பயன்படுத்துவது முக்கியம்: வினவல் வேகத்தை விட வட்டு அளவு குறைவாக உள்ளது. கிளிக்ஹவுஸ் இதற்கு மிகவும் உணர்திறன்.

நீங்கள் பயன்படுத்தினால் int32 அதற்கு பதிலாக int64, பின்னர் செயல்திறன் கிட்டத்தட்ட இருமடங்கு அதிகரிப்பு எதிர்பார்க்கலாம். தரவு குறைந்த நினைவகத்தை எடுக்கும், மேலும் அனைத்து "கணிதம்" மிக வேகமாக வேலை செய்கிறது. கிளிக்ஹவுஸ் உள்நாட்டில் இது மிகவும் கண்டிப்பாக தட்டச்சு செய்யப்பட்ட அமைப்பாகும்; நவீன அமைப்புகள் வழங்கும் அனைத்து சாத்தியக்கூறுகளையும் இது அதிகபட்சமாகப் பயன்படுத்துகிறது.

திரட்டுதல் மற்றும் பொருள்சார் காட்சிகள்

ஒருங்கிணைத்தல் மற்றும் பொருள்படுத்தப்பட்ட காட்சிகள் வெவ்வேறு சந்தர்ப்பங்களில் மொத்தங்களை உருவாக்க உங்களை அனுமதிக்கின்றன:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

எடுத்துக்காட்டாக, உங்களிடம் ஒருங்கிணைக்கப்படாத மூலத் தரவு இருக்கலாம், மேலும் ஒரு சிறப்பு இயந்திரத்தின் மூலம் தானியங்கு கூட்டுத்தொகை மூலம் பல்வேறு பொருளடக்கம் செய்யப்பட்ட காட்சிகளை அவற்றுடன் இணைக்கலாம். சம்மிங்மெர்ஜ் ட்ரீ (SMT). திருமதி ஒரு சிறப்பு திரட்டும் தரவு கட்டமைப்பாகும், இது திரட்டுகளை தானாக கணக்கிடுகிறது. மூல தரவு தரவுத்தளத்தில் செருகப்படுகிறது, அது தானாகவே ஒருங்கிணைக்கப்படுகிறது, மேலும் டாஷ்போர்டுகளை உடனடியாகப் பயன்படுத்தலாம்.

டி.டி.எல் - பழைய தரவை "மறக்க"

இனி தேவைப்படாத தரவை "மறப்பது" எப்படி? கிளிக்ஹவுஸ் இதை எப்படி செய்வது என்று தெரியும். அட்டவணைகளை உருவாக்கும் போது, ​​நீங்கள் குறிப்பிடலாம் டி.டி.எல் வெளிப்பாடுகள்: எடுத்துக்காட்டாக, நிமிடத் தரவை ஒரு நாளுக்கும், தினசரி தரவை 30 நாட்களுக்கும் சேமித்து வைப்போம், மேலும் வாராந்திர அல்லது மாதாந்திரத் தரவைத் தொடவே மாட்டோம்:

CREATE TABLE aggr_by_minute
…
TTL time + interval 1 day

CREATE TABLE aggr_by_day
…
TTL time + interval 30 day

CREATE TABLE aggr_by_week
…
/* no TTL */

பல அடுக்கு - வட்டுகள் முழுவதும் தரவைப் பிரிக்கவும்

இந்த யோசனையை மேற்கொண்டு, தரவை சேமிக்க முடியும் கிளிக்ஹவுஸ் வெவ்வேறு இடங்களில். கடந்த வாரத்திற்கான சூடான தரவை மிக வேகமாக உள்ளூரில் சேமிக்க விரும்புகிறோம் என்று வைத்துக்கொள்வோம் எஸ்எஸ்டி, மேலும் வரலாற்றுத் தரவுகளை வேறொரு இடத்தில் வைக்கிறோம். IN கிளிக்ஹவுஸ் இது இப்போது சாத்தியம்:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

நீங்கள் ஒரு சேமிப்பக கொள்கையை உள்ளமைக்கலாம் (சேமிப்பு கொள்கை) அதனால் கிளிக்ஹவுஸ் சில நிபந்தனைகளை அடைந்தவுடன் தானாகவே வேறொரு சேமிப்பகத்திற்கு தரவை மாற்றும்.

ஆனால் அதெல்லாம் இல்லை. ஒரு குறிப்பிட்ட அட்டவணையின் மட்டத்தில், தரவு குளிர்ச்சியான சேமிப்பகத்திற்குச் செல்லும் போது நீங்கள் விதிகளை வரையறுக்கலாம். எடுத்துக்காட்டாக, தரவு 7 நாட்களுக்கு மிக விரைவான வட்டில் சேமிக்கப்படுகிறது, மேலும் பழைய அனைத்தும் மெதுவாக மாற்றப்படும். இது நல்லது, ஏனெனில் இது கணினியை அதிகபட்ச செயல்திறனில் வைத்திருக்க உங்களை அனுமதிக்கிறது, அதே நேரத்தில் செலவுகளைக் கட்டுப்படுத்துகிறது மற்றும் குளிர் தரவுகளில் பணத்தை வீணாக்காது:

CREATE TABLE 
... 
TTL date + INTERVAL 7 DAY TO VOLUME 'cold_volume', 
    date + INTERVAL 180 DAY DELETE

தனிப்பட்ட அம்சங்கள் கிளிக்ஹவுஸ்

கிட்டத்தட்ட எல்லாவற்றிலும் கிளிக்ஹவுஸ் அத்தகைய "சிறப்பம்சங்கள்" உள்ளன, ஆனால் அவை பிரத்தியேகத்தால் ஈடுசெய்யப்படுகின்றன - மற்ற தரவுத்தளங்களில் இல்லாத ஒன்று. உதாரணமாக, இங்கே சில தனித்துவமான அம்சங்கள் உள்ளன கிளிக்ஹவுஸ்:

  • அணிவரிசைகள். தி கிளிக்ஹவுஸ் வரிசைகளுக்கு மிகவும் நல்ல ஆதரவு, அத்துடன் சிக்கலான கணக்கீடுகளைச் செய்யும் திறன்.
  • தரவு கட்டமைப்புகளை ஒருங்கிணைத்தல். இது "கொலையாளி அம்சங்களில்" ஒன்றாகும் கிளிக்ஹவுஸ். Yandex இன் தோழர்கள் நாங்கள் தரவைத் திரட்ட விரும்பவில்லை என்று கூறினாலும், எல்லாமே இதில் ஒருங்கிணைக்கப்பட்டுள்ளன. கிளிக்ஹவுஸ், ஏனெனில் இது வேகமானது மற்றும் வசதியானது.
  • பொருளடக்கம் செய்யப்பட்ட காட்சிகள். தரவு கட்டமைப்புகளை ஒருங்கிணைத்து, பொருளடக்கம் செய்யப்பட்ட காட்சிகள் உங்களுக்கு வசதியாக இருக்க அனுமதிக்கின்றன நிகழ் நேர திரட்டுதல்.
  • கிளிக்ஹவுஸ் SQL. இது ஒரு மொழி நீட்டிப்பு எஸ்கியூஎல் சில கூடுதல் மற்றும் பிரத்தியேக அம்சங்களுடன் மட்டுமே கிடைக்கும் கிளிக்ஹவுஸ். முன்பு, இது ஒருபுறம் விரிவாக்கம் போலவும், மறுபுறம் பாதகமாகவும் இருந்தது. இப்போது ஒப்பிடும்போது கிட்டத்தட்ட அனைத்து தீமைகளும் SQL 92 நாங்கள் அதை அகற்றினோம், இப்போது அது ஒரு நீட்டிப்பு மட்டுமே.
  • லாம்ப்டா- வெளிப்பாடுகள். அவை இன்னும் ஏதேனும் தரவுத்தளத்தில் உள்ளதா?
  • ML-ஆதரவு. இது வெவ்வேறு தரவுத்தளங்களில் கிடைக்கிறது, சில சிறந்தவை, சில மோசமானவை.
  • திறந்த மூல. நாம் விரிவாக்க முடியும் கிளிக்ஹவுஸ் ஒன்றாக. இப்போது உள்ளே கிளிக்ஹவுஸ் சுமார் 500 பங்களிப்பாளர்கள், இந்த எண்ணிக்கை தொடர்ந்து அதிகரித்து வருகிறது.

தந்திரமான கேள்விகள்

В கிளிக்ஹவுஸ் ஒரே காரியத்தைச் செய்ய பல வழிகள் உள்ளன. எடுத்துக்காட்டாக, அட்டவணையில் இருந்து கடைசி மதிப்பை நீங்கள் மூன்று வெவ்வேறு வழிகளில் திரும்பப் பெறலாம் சிபியு (நான்காவது ஒன்றும் உள்ளது, ஆனால் அது இன்னும் கவர்ச்சியானது).

முதலில் அது எவ்வளவு வசதியானது என்பதைக் காட்டுகிறது கிளிக்ஹவுஸ் நீங்கள் அதை சரிபார்க்க விரும்பும் போது வினவுகிறது டூப்பிள் துணைக் கேள்வியில் அடங்கியுள்ளது. இது நான் தனிப்பட்ட முறையில் மற்ற தரவுத்தளங்களில் தவறவிட்ட ஒன்று. நான் எதையாவது ஒரு துணை வினவலுடன் ஒப்பிட விரும்பினால், மற்ற தரவுத்தளங்களில் ஒரு ஸ்கேலரை மட்டுமே அதனுடன் ஒப்பிட முடியும், ஆனால் பல நெடுவரிசைகளுக்கு நான் எழுத வேண்டும் சேர்க. தி கிளிக்ஹவுஸ் நீங்கள் tuple ஐப் பயன்படுத்தலாம்:

SELECT *
  FROM cpu 
 WHERE (tags_id, created_at) IN 
    (SELECT tags_id, max(created_at)
        FROM cpu 
        GROUP BY tags_id)

இரண்டாவது முறையும் அதையே செய்கிறது ஆனால் மொத்த செயல்பாட்டைப் பயன்படுத்துகிறது argMax:

SELECT 
    argMax(usage_user), created_at),
    argMax(usage_system), created_at),
...
 FROM cpu 

В கிளிக்ஹவுஸ் பல டஜன் மொத்த செயல்பாடுகள் உள்ளன, மேலும் நீங்கள் காம்பினேட்டர்களைப் பயன்படுத்தினால், காம்பினேட்டரிக்ஸ் விதிகளின்படி, அவற்றில் சுமார் ஆயிரம் கிடைக்கும். ArgMax - அதிகபட்ச மதிப்பைக் கணக்கிடும் செயல்பாடுகளில் ஒன்று: கோரிக்கை மதிப்பை வழங்குகிறது பயன்பாடு_பயனர், அதிகபட்ச மதிப்பை அடைந்தது உருவாக்கப்பட்ட_அட்:

SELECT now() as created_at,
       cpu.*
  FROM (SELECT DISTINCT tags_id from cpu) base 
  ASOF LEFT JOIN cpu USING (tags_id, created_at)

ASOF சேரவும் - வெவ்வேறு நேரங்களுடன் "ஒட்டுதல்" வரிசைகள். தரவுத்தளங்களில் மட்டுமே கிடைக்கும் தனித்துவமான அம்சம் இது kdb+. வெவ்வேறு நேரங்களுடன் இரண்டு நேரத் தொடர்கள் இருந்தால், ASOF சேரவும் ஒரு கோரிக்கையில் அவற்றை நகர்த்தவும் ஒன்றிணைக்கவும் உங்களை அனுமதிக்கிறது. ஒரு நேரத் தொடரில் உள்ள ஒவ்வொரு மதிப்புக்கும், மற்றொன்றின் மிக நெருக்கமான மதிப்பு காணப்படுகிறது, மேலும் அவை ஒரே வரியில் திரும்பும்:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

பகுப்பாய்வு செயல்பாடுகள்

தரநிலையில் SQL-2003 நீங்கள் இப்படி எழுதலாம்:

SELECT origin,
       timestamp,
       timestamp -LAG(timestamp, 1) OVER (PARTITION BY origin ORDER BY timestamp) AS duration,
       timestamp -MIN(timestamp) OVER (PARTITION BY origin ORDER BY timestamp) AS startseq_duration,
       ROW_NUMBER() OVER (PARTITION BY origin ORDER BY timestamp) AS sequence,
       COUNT() OVER (PARTITION BY origin ORDER BY timestamp) AS nb
  FROM mytable
ORDER BY origin, timestamp;

В கிளிக்ஹவுஸ் நீங்கள் அதை செய்ய முடியாது - இது தரநிலையை ஆதரிக்காது SQL-2003 மற்றும் ஒருவேளை அதை செய்ய மாட்டேன். மாறாக, உள்ளே கிளிக்ஹவுஸ் இப்படி எழுதுவது வழக்கம்.

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

நான் லாம்ப்டாக்களுக்கு வாக்குறுதி அளித்தேன் - இதோ!

இது தரநிலையில் உள்ள பகுப்பாய்வு வினவலின் அனலாக் ஆகும் SQL-2003: இரண்டிற்கும் உள்ள வித்தியாசத்தை அவர் எண்ணுகிறார் நேர முத்திரை, கால அளவு, ஆர்டினல் எண் - பொதுவாக நாம் பகுப்பாய்வு செயல்பாடுகளாக கருதும் அனைத்தும். IN கிளிக்ஹவுஸ் நாங்கள் அவற்றை வரிசைகள் மூலம் எண்ணுகிறோம்: முதலில் தரவை ஒரு வரிசையில் சுருக்கவும், அதன் பிறகு நாம் விரும்பும் அனைத்தையும் வரிசையில் செய்கிறோம், பின்னர் அதை மீண்டும் விரிவுபடுத்துகிறோம். இது மிகவும் வசதியானது அல்ல, குறைந்தபட்சம் செயல்பாட்டு நிரலாக்கத்தில் காதல் தேவைப்படுகிறது, ஆனால் இது மிகவும் நெகிழ்வானது.

சிறப்பு செயல்பாடுகள்

தவிர, இல் கிளிக்ஹவுஸ் பல சிறப்பு செயல்பாடுகள். உதாரணமாக, ஒரே நேரத்தில் எத்தனை அமர்வுகள் நடைபெறுகின்றன என்பதை எவ்வாறு தீர்மானிப்பது? ஒரு வழக்கமான கண்காணிப்பு பணியானது ஒரு கோரிக்கையுடன் அதிகபட்ச சுமையை தீர்மானிப்பதாகும். IN கிளிக்ஹவுஸ் இந்த நோக்கத்திற்காக ஒரு சிறப்பு செயல்பாடு உள்ளது:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

பொதுவாக, ClickHouse பல நோக்கங்களுக்காக சிறப்பு செயல்பாடுகளை கொண்டுள்ளது:

  • இயங்கும் வேறுபாடு, இயங்கும் குவிப்பு, அண்டை;
  • sumMap(விசை, மதிப்பு);
  • timeSeriesGroupSum(uid, நேர முத்திரை, மதிப்பு);
  • timeSeriesGroupRateSum(uid, நேர முத்திரை, மதிப்பு);
  • skewPop, skewSamp, kurtPop, kurtSamp;
  • நிரப்புதலுடன் / உறவுகளுடன்;
  • எளிய நேரியல் பின்னடைவு, சீரற்ற நேரியல் பின்னடைவு.

இது செயல்பாடுகளின் முழுமையான பட்டியல் அல்ல, மொத்தம் 500-600 உள்ளன. குறிப்பு: அனைத்து செயல்பாடுகளும் கிளிக்ஹவுஸ் கணினி அட்டவணையில் உள்ளது (அனைத்தும் ஆவணப்படுத்தப்படவில்லை, ஆனால் அனைத்தும் சுவாரஸ்யமானவை):

select * from system.functions order by name

கிளிக்ஹவுஸ் இது தன்னைப் பற்றிய பல தகவல்களைச் சேமித்து வைக்கிறது பதிவு அட்டவணைகள், வினவல்_பதிவு, டிரேஸ் லாக், டேட்டா பிளாக்குகள் கொண்ட செயல்பாடுகளின் பதிவு (பகுதி_பதிவு), அளவீடுகள் பதிவு மற்றும் கணினி பதிவு, இது வழக்கமாக வட்டுக்கு எழுதுகிறது. பதிவு அளவீடுகள் ஆகும் நேரத் தொடர் в கிளிக்ஹவுஸ் உண்மையில் கிளிக்ஹவுஸ்: தரவுத்தளமே ஒரு பாத்திரத்தை வகிக்க முடியும் நேரத் தொடர் தரவுத்தளங்கள், இதனால் தன்னையே "திண்ணும்".

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

இதுவும் ஒரு தனித்துவமான விஷயம் - நாங்கள் ஒரு நல்ல வேலையைச் செய்வதால் நேரத் தொடர், ஏன் நமக்குத் தேவையான அனைத்தையும் நமக்குள் சேமித்து வைக்க முடியாது? எங்களுக்கு தேவை இல்லை பிரமீதீயஸ், நாம் எல்லாவற்றையும் நமக்குள் வைத்திருக்கிறோம். இணைக்கப்பட்டது கிரபனா மற்றும் நாம் நம்மை கண்காணிக்கிறோம். எனினும், என்றால் கிளிக்ஹவுஸ் விழுகிறது, ஏன் என்று நாங்கள் பார்க்க மாட்டோம், எனவே அவர்கள் வழக்கமாக அதைச் செய்ய மாட்டார்கள்.

பெரிய கொத்து அல்லது பல சிறியவை கிளிக்ஹவுஸ்

எது சிறந்தது - ஒரு பெரிய கிளஸ்டர் அல்லது பல சிறிய ClickHouses? பாரம்பரிய அணுகுமுறை DWH ஒவ்வொரு பயன்பாட்டிற்கும் சுற்றுகள் ஒதுக்கப்படும் ஒரு பெரிய கிளஸ்டர் ஆகும். நாங்கள் தரவுத்தள நிர்வாகியிடம் வந்தோம் - எங்களுக்கு ஒரு வரைபடத்தைக் கொடுங்கள், அவர்கள் எங்களுக்கு ஒன்றைக் கொடுத்தார்கள்:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

В கிளிக்ஹவுஸ் நீங்கள் அதை வித்தியாசமாக செய்யலாம். ஒவ்வொரு பயன்பாட்டையும் நீங்கள் சொந்தமாக உருவாக்கலாம் கிளிக்ஹவுஸ்:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

பெரிய அசுரன் இனி நமக்குத் தேவையில்லை DWH மற்றும் தவிர்க்க முடியாத நிர்வாகிகள். ஒவ்வொரு பயன்பாட்டிற்கும் அதன் சொந்தமாக கொடுக்கலாம் கிளிக்ஹவுஸ், மற்றும் டெவலப்பர் அதை தானே செய்ய முடியும் கிளிக்ஹவுஸ் நிறுவ மிகவும் எளிதானது மற்றும் சிக்கலான நிர்வாகம் தேவையில்லை:

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

ஆனால் நம்மிடம் நிறைய இருந்தால் கிளிக்ஹவுஸ், மற்றும் நீங்கள் அதை அடிக்கடி நிறுவ வேண்டும், பின்னர் நீங்கள் இந்த செயல்முறையை தானியக்கமாக்க வேண்டும். இதற்கு நாம், எடுத்துக்காட்டாக, பயன்படுத்தலாம் Kubernetes и கிளிக்ஹவுஸ்- ஆபரேட்டர். IN குபெர்னெட்ஸ் கிளிக்ஹவுஸ் நீங்கள் அதை "கிளிக் மீது" வைக்கலாம்: நான் ஒரு பொத்தானைக் கிளிக் செய்யலாம், மேனிஃபெஸ்ட்டை இயக்கலாம் மற்றும் தரவுத்தளம் தயாராக உள்ளது. நான் உடனடியாக ஒரு வரைபடத்தை உருவாக்கி, அங்கு அளவீடுகளைப் பதிவேற்றத் தொடங்கலாம், மேலும் 5 நிமிடங்களில் என்னிடம் டாஷ்போர்டு தயாராக உள்ளது கிரபனா. இது மிகவும் எளிமையானது!

இறுதியில் என்ன?

எனவே கிளிக்ஹவுஸ் - இது:

  • விரைவில். இது அனைவருக்கும் தெரியும்.
  • வெறும். கொஞ்சம் சர்ச்சைக்குரியது, ஆனால் பயிற்சியில் கடினம், போரில் எளிதானது என்று நான் நம்புகிறேன். எப்படி என்று புரிந்து கொண்டால் கிளிக்ஹவுஸ் அது வேலை செய்கிறது, பின்னர் எல்லாம் மிகவும் எளிது.
  • உலகளவில். இது வெவ்வேறு சூழ்நிலைகளுக்கு ஏற்றது: DWH, நேரத் தொடர், பதிவு சேமிப்பு. ஆனால் அது இல்லை OLTP தரவுத்தளமானது, எனவே அங்கு குறுகிய செருகல்கள் மற்றும் வாசிப்புகளை செய்ய முயற்சிக்காதீர்கள்.
  • ஆர்வத்தினை. ஒருவேளை உடன் வேலை செய்பவராக இருக்கலாம் கிளிக்ஹவுஸ், நல்ல மற்றும் கெட்ட அர்த்தத்தில் பல சுவாரஸ்யமான தருணங்களை அனுபவித்தேன். உதாரணமாக, ஒரு புதிய வெளியீடு வெளிவந்தது, எல்லாம் வேலை செய்வதை நிறுத்தியது. அல்லது இரண்டு நாட்கள் நீங்கள் ஒரு பணிக்காக போராடியபோது, ​​​​டெலிகிராம் அரட்டையில் ஒரு கேள்வியைக் கேட்ட பிறகு, இரண்டு நிமிடங்களில் பணி தீர்க்கப்பட்டது. அல்லது லெஷா மிலோவிடோவின் அறிக்கையின் மாநாட்டைப் போல, ஒரு ஸ்கிரீன்ஷாட் கிளிக்ஹவுஸ் ஒளிபரப்பை உடைத்தது ஹைலோட்++. இது போன்ற நிகழ்வுகள் எப்பொழுதும் நிகழ்ந்து நம் வாழ்க்கையை கடினமாக்குகிறது. கிளிக்ஹவுஸ் பிரகாசமான மற்றும் சுவாரஸ்யமான!

நீங்கள் விளக்கக்காட்சியைப் பார்க்கலாம் இங்கே.

கிளிக்ஹவுஸுக்கு நகர்கிறது: 3 ஆண்டுகளுக்குப் பிறகு

அதிக சுமை அமைப்புகளை உருவாக்குபவர்களின் நீண்டகாலமாக எதிர்பார்க்கப்பட்ட சந்திப்பு ஹைலோட்++ நவம்பர் 9 மற்றும் 10 ஆம் தேதிகளில் ஸ்கோல்கோவோவில் நடைபெறும். இறுதியாக, இது ஒரு ஆஃப்லைன் மாநாட்டாக இருக்கும் (எல்லா முன்னெச்சரிக்கை நடவடிக்கைகளும் இருந்தாலும்), ஹைலோட்++ இன் ஆற்றலை ஆன்லைனில் பேக் செய்ய முடியாது.

மாநாட்டில், தொழில்நுட்பத்தின் அதிகபட்ச திறன்களைப் பற்றிய நிகழ்வுகளை நாங்கள் கண்டுபிடித்து உங்களுக்குக் காட்டுகிறோம்: Facebook, Yandex, VKontakte, Google மற்றும் Amazon ஆகியவை எவ்வாறு செயல்படுகின்றன என்பதை இரண்டு நாட்களில் நீங்கள் அறியக்கூடிய ஒரே இடமாக HighLoad++ இருந்தது.

2007ஆம் ஆண்டு முதல் இடையூறு இல்லாமல் கூட்டங்களை நடத்தி வரும் நாங்கள் இந்த ஆண்டு 14வது முறையாக சந்திப்போம். இந்த நேரத்தில், மாநாடு 10 மடங்கு வளர்ந்துள்ளது; கடந்த ஆண்டு, முக்கிய தொழில் நிகழ்வில் 3339 பங்கேற்பாளர்கள், 165 பேச்சாளர்கள், அறிக்கைகள் மற்றும் சந்திப்புகள் மற்றும் 16 தடங்கள் ஒரே நேரத்தில் இயங்கின.
கடந்த ஆண்டு 20 பேருந்துகள், 5280 லிட்டர் டீ மற்றும் காபி, 1650 லிட்டர் பழ பானங்கள் மற்றும் 10200 தண்ணீர் பாட்டில்கள் இருந்தன. மேலும் 2640 கிலோகிராம் உணவு, 16 தட்டுகள் மற்றும் 000 கோப்பைகள். மறுசுழற்சி செய்யப்பட்ட காகிதத்திலிருந்து திரட்டப்பட்ட பணத்தில், நாங்கள் 25 கருவேல மரக்கன்றுகளை நட்டோம் :)

நீங்கள் டிக்கெட் வாங்கலாம் இங்கே, மாநாடு பற்றிய செய்திகளைப் பெற - இங்கே, மற்றும் அனைத்து சமூக வலைப்பின்னல்களிலும் பேசவும்: தந்தி, பேஸ்புக், பேஸ்புக் தலைவர் и ட்விட்டர்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்