ELK, Big Query மற்றும் TimescaleDB க்கு மாற்றாக Clickhouse ஐப் பயன்படுத்துதல்

கிளிக்ஹவுஸ் Yandex ஆல் உருவாக்கப்பட்ட ஆன்லைன் பகுப்பாய்வு வினவல் செயலாக்கத்திற்கான (OLAP) திறந்த மூல நிரல் தரவுத்தள மேலாண்மை அமைப்பு ஆகும். இது Yandex, CloudFlare, VK.com, Badoo மற்றும் உலகெங்கிலும் உள்ள பிற சேவைகளால் உண்மையில் பெரிய அளவிலான தரவைச் சேமிக்கப் பயன்படுத்தப்படுகிறது (வினாடிக்கு ஆயிரக்கணக்கான வரிசைகளைச் செருகுவது அல்லது வட்டில் சேமிக்கப்பட்ட பெட்டாபைட் தரவு).

ஒரு சாதாரண, "ஸ்ட்ரிங்" DBMS இல், MySQL, Postgres, MS SQL சர்வர் போன்ற எடுத்துக்காட்டுகள், தரவு இந்த வரிசையில் சேமிக்கப்படுகிறது:

ELK, Big Query மற்றும் TimescaleDB க்கு மாற்றாக Clickhouse ஐப் பயன்படுத்துதல்

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

ELK, Big Query மற்றும் TimescaleDB க்கு மாற்றாக Clickhouse ஐப் பயன்படுத்துதல்

நெடுவரிசை DBMSகளின் எடுத்துக்காட்டுகள் Vertica, Paraccel (Actian Matrix, Amazon Redshift), Sybase IQ, Exasol, Infobright, InfiniDB, MonetDB (VectorWise, Actian Vector), LucidDB, SAP HANA, Google Dremel, Google PowerDrill, Druid, ட்ரூயிட்.

நிறுவனம் ஒரு அஞ்சல் அனுப்புபவர் குவின்ட்ரி 2018 இல் கிளிக்ஹவுஸைப் புகாரளிப்பதற்காகப் பயன்படுத்தத் தொடங்கினேன், அதன் எளிமை, அளவிடுதல், SQL ஆதரவு மற்றும் வேகம் ஆகியவற்றால் மிகவும் ஈர்க்கப்பட்டேன். இந்த DBMS இன் வேகம் மாயாஜாலத்தின் எல்லையில் உள்ளது.

எளிதாக்க

கிளிக்ஹவுஸ் உபுண்டுவில் ஒரு கட்டளையுடன் நிறுவுகிறது. உங்களுக்கு SQL தெரிந்தால், உடனடியாக உங்கள் தேவைகளுக்கு Clickhouse ஐப் பயன்படுத்தத் தொடங்கலாம். இருப்பினும், நீங்கள் MySQL இல் "உருவாக்கும் அட்டவணையைக் காட்டலாம்" மற்றும் கிளிக்ஹவுஸில் SQL ஐ நகலெடுத்து ஒட்டலாம் என்று இது அர்த்தப்படுத்துவதில்லை.

MySQL உடன் ஒப்பிடும்போது, ​​இந்த DBMS இல் உள்ள டேபிள் ஸ்கீமா வரையறைகளில் முக்கியமான தரவு வகை வேறுபாடுகள் உள்ளன, எனவே டேபிள் ஸ்கீமா வரையறைகளை மாற்றவும், வசதியாக டேபிள் இன்ஜின்களைக் கற்றுக்கொள்ளவும் உங்களுக்கு இன்னும் சிறிது நேரம் தேவை.

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

உற்பத்தித்

  • அளவுகோல் உள்ளமைவு சேவையகத்தில் Clickhouse மற்றும் Vertica மற்றும் MySQL ஒப்பீடுகள்: இரண்டு சாக்கெட்டுகள் Intel® Xeon® CPU E5-2650 v2 @ 2.60GHz; 128 ஜிபி ரேம்; md RAID-5 இல் 8 6TB SATA HDD, ext4.
  • அளவுகோல் Clickhouse ஐ Amazon RedShift கிளவுட் சேமிப்பகத்துடன் ஒப்பிடுதல்.
  • வலைப்பதிவு பகுதிகள் Clickhouse செயல்திறன் பற்றி Cloudflare:

ELK, Big Query மற்றும் TimescaleDB க்கு மாற்றாக Clickhouse ஐப் பயன்படுத்துதல்

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

கிளிக்ஹவுஸ் காஃப்காவிடமிருந்து நேரடியாக தரவைப் பெறுவதை ஆதரிக்காது, ஏனெனில் இது ஒரு தரவுத்தளமாகும், எனவே நாங்கள் எங்கள் சொந்த அடாப்டர் சேவையை Go இல் எழுதினோம். இது காஃப்காவிடமிருந்து Cap'n Proto குறியிடப்பட்ட செய்திகளைப் படித்து, அவற்றை TSV ஆக மாற்றி, HTTP இடைமுகம் வழியாக அவற்றைத் தொகுப்புகளாக ClickHouse இல் செருகியது. செயல்திறனை மேம்படுத்த எங்கள் சொந்த ClickHouse இடைமுகத்துடன் இணைந்து Go நூலகத்தைப் பயன்படுத்த இந்தச் சேவையை நாங்கள் பின்னர் மீண்டும் எழுதினோம். பெறுதல் பாக்கெட்டுகளின் செயல்திறனை மதிப்பிடும்போது, ​​​​ஒரு முக்கியமான விஷயத்தை நாங்கள் கண்டுபிடித்தோம் - கிளிக்ஹவுஸுக்கு இந்த செயல்திறன் பாக்கெட்டின் அளவைப் பொறுத்தது, அதாவது ஒரே நேரத்தில் செருகப்பட்ட வரிசைகளின் எண்ணிக்கையைப் பொறுத்தது. இது ஏன் நிகழ்கிறது என்பதைப் புரிந்துகொள்ள, ClickHouse தரவை எவ்வாறு சேமிக்கிறது என்பதைப் படித்தோம்.

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

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

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

அனைத்து நெடுவரிசைகளும் "முதன்மை விசை" மூலம் வரிசைப்படுத்தப்பட்டதால், குறியீட்டு கோப்பில் ஒவ்வொரு Nவது வரிசையின் லேபிள்கள் (பிடிக்கப்பட்ட வரிசைகள்) மட்டுமே உள்ளன, அவை மிகப் பெரிய அட்டவணைகளுக்கு கூட நினைவகத்தில் வைத்திருக்க முடியும். எடுத்துக்காட்டாக, "ஒவ்வொரு 8192 வது வரிசையையும் குறிக்க" இயல்புநிலை அமைப்புகளை அமைக்கலாம், பின்னர் 1 டிரில்லியன் கொண்ட அட்டவணையின் "மிகக் குறைவான" அட்டவணையை அமைக்கலாம். நினைவகத்தில் எளிதில் பொருந்தக்கூடிய கோடுகள் 122 எழுத்துகளை மட்டுமே எடுக்கும்.

கணினி மேம்பாடு

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

ELK, Big Query மற்றும் TimescaleDB க்கு மாற்றாக Clickhouse ஐப் பயன்படுத்துதல்

புகழ்

கிளிக்ஹவுஸின் புகழ் அதிவேகமாக வளர்ந்து வருகிறது, குறிப்பாக ரஷ்ய மொழி பேசும் சமூகத்தில். கடந்த ஆண்டு ஹை லோட் 2018 மாநாடு (மாஸ்கோ, நவம்பர் 8-9, 2018) vk.com மற்றும் Badoo போன்ற அரக்கர்கள் கிளிக்ஹவுஸைப் பயன்படுத்துவதைக் காட்டியது, அவை ஒரே நேரத்தில் பல்லாயிரக்கணக்கான சேவையகங்களிலிருந்து தரவை (எடுத்துக்காட்டாக, பதிவுகள்) செருகுகின்றன. 40 நிமிட வீடியோவில் VKontakte குழுவைச் சேர்ந்த யூரி நஸ்ரெட்டினோவ் இது எவ்வாறு செய்யப்படுகிறது என்பதைப் பற்றி பேசுகிறார். பொருளுடன் பணிபுரியும் வசதிக்காக, விரைவில் டிரான்ஸ்கிரிப்டை Habr இல் வெளியிடுவோம்.

பயன்பாடுகள்

சிறிது நேரம் ஆராய்ச்சி செய்த பிறகு, ClickHouse பயனுள்ளதாக இருக்கும் அல்லது MySQL, PostgreSQL, ELK, Google Big Query, Amazon RedShift, TimescaleDB, Hadoop, MapReduce, Pinot போன்ற பாரம்பரிய மற்றும் பிரபலமான தீர்வுகளை முழுமையாக மாற்றக்கூடிய பகுதிகள் இருப்பதாக நான் நினைக்கிறேன். ட்ரூயிட். மேலே உள்ள DBMS ஐ மேம்படுத்த அல்லது முழுமையாக மாற்ற கிளிக்ஹவுஸைப் பயன்படுத்துவதற்கான விவரங்கள் பின்வருமாறு.

MySQL மற்றும் PostgreSQL ஆகியவற்றை விரிவாக்குகிறது

மிக சமீபத்தில், நாங்கள் MySQL ஐ பகுதியளவில் கிளிக்ஹவுஸ் மூலம் செய்திமடல் தளத்திற்கு மாற்றினோம் மாட்டிக் செய்திமடல். பிரச்சனை என்னவென்றால், MySQL தவறான வடிவமைப்பு காரணமாக அனுப்பப்பட்ட ஒவ்வொரு மின்னஞ்சலையும் அந்த மின்னஞ்சலில் உள்ள ஒவ்வொரு இணைப்பையும் base64 ஹாஷ் மூலம் பதிவுசெய்து, ஒரு பெரிய MySQL அட்டவணையை (email_stats) உருவாக்கியது. சேவையின் சந்தாதாரர்களுக்கு 10 மில்லியன் மின்னஞ்சல்களை மட்டுமே அனுப்பிய பிறகு, இந்த அட்டவணை 150 GB கோப்பு இடத்தை ஆக்கிரமித்தது, மேலும் MySQL எளிய வினவல்களில் "முட்டாள்தனமாக" தொடங்கியது. கோப்பு இட சிக்கலைச் சரிசெய்ய, InnoDB டேபிள் கம்ப்ரஷனை வெற்றிகரமாகப் பயன்படுத்தினோம், இது 4 மடங்கு குறைக்கப்பட்டது. இருப்பினும், வரலாற்றைப் படிப்பதற்காக 20-30 மில்லியனுக்கும் அதிகமான மின்னஞ்சல்களை MySQL இல் சேமிப்பதில் அர்த்தமில்லை, சில காரணங்களால் முழு ஸ்கேன் செய்ய வேண்டிய எளிய வினவல் ஸ்வாப் மற்றும் ஹெவி I/O இல் முடிவுகள் மேல்நிலை, இது பற்றி நாங்கள் தொடர்ந்து Zabbix எச்சரிக்கைகளைப் பெற்றோம்.

ELK, Big Query மற்றும் TimescaleDB க்கு மாற்றாக Clickhouse ஐப் பயன்படுத்துதல்

கிளிக்ஹவுஸ் இரண்டு சுருக்க அல்காரிதம்களைப் பயன்படுத்துகிறது, அவை தரவுகளின் அளவைக் குறைக்கின்றன 3-4 முறை, ஆனால் இந்த குறிப்பிட்ட விஷயத்தில், தரவு குறிப்பாக "சுருக்கக்கூடியதாக" இருந்தது.

ELK, Big Query மற்றும் TimescaleDB க்கு மாற்றாக Clickhouse ஐப் பயன்படுத்துதல்

ELK மாற்றீடு

எனது சொந்த அனுபவத்தின் அடிப்படையில், ELK ஸ்டேக்கிற்கு (ElasticSearch, Logstash மற்றும் Kibana, இந்த குறிப்பிட்ட விஷயத்தில் ElasticSearch) பதிவுகளை சேமிப்பதற்குத் தேவையானதை விட அதிக ஆதாரங்கள் இயங்க வேண்டும். நீங்கள் நல்ல முழு-உரை பதிவு தேடலை விரும்பினால் ElasticSearch ஒரு சிறந்த இயந்திரம் (இது உங்களுக்கு உண்மையில் தேவையில்லை என்று நான் நினைக்கிறேன்), ஆனால் இது ஏன் நடைமுறை நிலையான பதிவு இயந்திரமாக மாறியது என்று நான் யோசிக்கிறேன். அதன் உட்செலுத்துதல் செயல்திறன், Logstash உடன் இணைந்து, மிகவும் குறைவான பணிச்சுமைகளில் கூட எங்களுக்கு சிக்கல்களை அளித்தது மேலும் மேலும் மேலும் RAM மற்றும் வட்டு இடத்தை சேர்க்க வேண்டியிருந்தது. தரவுத்தளமாக, பின்வரும் காரணங்களுக்காக ElasticSearch ஐ விட Clickhouse சிறந்தது:

  • SQL பேச்சுவழக்கு ஆதரவு;
  • சேமிக்கப்பட்ட தரவின் சுருக்கத்தின் சிறந்த அளவு;
  • முழு உரைத் தேடலுக்குப் பதிலாக Regex தேடலுக்கான ஆதரவு;
  • மேம்படுத்தப்பட்ட வினவல் திட்டமிடல் மற்றும் அதிக ஒட்டுமொத்த செயல்திறன்.

தற்போது, ​​ClickHouse ஐ ELK உடன் ஒப்பிடும் போது எழும் மிகப்பெரிய பிரச்சனை, பதிவுகளை பதிவேற்றுவதற்கான தீர்வுகள் இல்லாதது, அத்துடன் இந்த தலைப்பில் ஆவணங்கள் மற்றும் பயிற்சிகள் இல்லாதது. அதே நேரத்தில், ஒவ்வொரு பயனரும் டிஜிட்டல் ஓஷன் கையேட்டைப் பயன்படுத்தி ELK ஐ அமைக்கலாம், இது போன்ற தொழில்நுட்பங்களை விரைவாக செயல்படுத்துவதற்கு இது மிகவும் முக்கியமானது. இங்கே ஒரு தரவுத்தள இயந்திரம் உள்ளது, ஆனால் ClickHouse க்கு இதுவரை Filebeat இல்லை. ஆம், இருக்கிறது சரளமாக மற்றும் பதிவுகளுடன் வேலை செய்வதற்கான ஒரு அமைப்பு லாக்ஹவுஸ், ஒரு கருவி உள்ளது வால் கிளிக் செய்யவும் கிளிக்ஹவுஸில் பதிவு கோப்பு தரவை உள்ளிட, ஆனால் இவை அனைத்திற்கும் அதிக நேரம் எடுக்கும். இருப்பினும், ClickHouse அதன் எளிமை காரணமாக இன்னும் முன்னணியில் உள்ளது, எனவே ஆரம்பநிலையாளர்கள் கூட இதை எளிதாக நிறுவலாம் மற்றும் 10 நிமிடங்களில் முழுமையாக செயல்படத் தொடங்கலாம்.

குறைந்தபட்ச தீர்வுகளை விரும்பி, காஃப்காவைப் பயன்படுத்துவதைத் தவிர்க்கும் போது கிளிக்ஹவுஸ் மூலம் FluentBit ஐப் பயன்படுத்த முயற்சித்தேன். இருப்பினும், சிறிய இணக்கமின்மைகள் கவனிக்கப்பட வேண்டும் தேதி வடிவம் சிக்கல்கள்FluentBit இலிருந்து ClickHouse க்கு தரவை மாற்றும் ப்ராக்ஸி லேயர் இல்லாமல் செய்ய முடியும்.

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

கூகுள் பிக் க்வெரி மற்றும் அமேசான் ரெட்ஷிஃப்ட் (பெரிய நிறுவனங்களுக்கான தீர்வு) மாற்றீடு

1 TB JSON தரவை ஏற்றி, அதில் பகுப்பாய்வு வினவல்களை இயக்குவதே BigQueryக்கான சிறந்த பயன்பாடாகும். பெரிய வினவல் ஒரு சிறந்த தயாரிப்பு ஆகும், அதன் அளவிடுதல் மிகைப்படுத்தப்பட முடியாது. இது கிளிக்ஹவுஸை விட மிகவும் சிக்கலான மென்பொருளாகும், இது உள் கிளஸ்டரில் இயங்குகிறது, ஆனால் கிளையண்டின் பார்வையில் இது ClickHouse உடன் பொதுவானது. நீங்கள் ஒரு SELECTக்கு பணம் செலுத்தத் தொடங்கினால், BigQuery விரைவில் விலை உயர்ந்துவிடும், எனவே இது அதன் அனைத்து நன்மை தீமைகளுடன் உண்மையான SaaS தீர்வாகும்.

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

Altinity இன் இணை நிறுவனர் Alexander Zaitsev எழுதிய கட்டுரையில் "கிளிக்ஹவுஸுக்கு மாறுகிறது" அத்தகைய DBMS இடம்பெயர்வின் நன்மைகளை விவரிக்கிறது.

டைம்ஸ்கேல்டிபி மாற்றீடு

TimescaleDB என்பது ஒரு PostgreSQL நீட்டிப்பு ஆகும், இது வழக்கமான தரவுத்தளத்தில் நேரவரிசை நேரத் தொடருடன் வேலை செய்வதை மேம்படுத்துகிறது (https://docs.timescale.com/v1.0/introduction, https://habr.com/ru/company/zabbix/blog/458530/).

ClickHouse நேரத் தொடரின் முக்கியப் போட்டியாளராக இல்லாவிட்டாலும், நெடுவரிசை அமைப்பு மற்றும் வெக்டார் வினவல் செயல்பாட்டின் அடிப்படையில், பகுப்பாய்வு வினவல்களை செயலாக்கும் பெரும்பாலான சந்தர்ப்பங்களில் இது TimescaleDB ஐ விட மிக வேகமாக உள்ளது. அதே நேரத்தில், கிளிக்ஹவுஸ் பாக்கெட் தரவைப் பெறுவதற்கான செயல்திறன் சுமார் 3 மடங்கு அதிகமாக உள்ளது, கூடுதலாக, இது 20 மடங்கு குறைவான வட்டு இடத்தைப் பயன்படுத்துகிறது, இது பெரிய அளவிலான வரலாற்றுத் தரவை செயலாக்க மிகவும் முக்கியமானது: 
https://www.altinity.com/blog/ClickHouse-for-time-series.

ClickHouse போலல்லாமல், TimescaleDB இல் சில வட்டு இடத்தை சேமிப்பதற்கான ஒரே வழி ZFS அல்லது ஒத்த கோப்பு முறைமைகளைப் பயன்படுத்துவதாகும்.

ClickHouse க்கு வரவிருக்கும் புதுப்பிப்புகள் டெல்டா சுருக்கத்தை அறிமுகப்படுத்தும், இது நேரத் தொடர் தரவைச் செயலாக்குவதற்கும் சேமிப்பதற்கும் மிகவும் பொருத்தமானதாக இருக்கும். பின்வரும் சந்தர்ப்பங்களில் வெற்று ClickHouse ஐ விட TimescaleDB சிறந்த தேர்வாக இருக்கலாம்:

  • சிறிய ரேம் கொண்ட சிறிய நிறுவல்கள் (<3 ஜிபி);
  • நீங்கள் பெரிய துண்டுகளாக இடையகப்படுத்த விரும்பாத பெரிய எண்ணிக்கையிலான சிறிய செருகல்கள்;
  • சிறந்த நிலைத்தன்மை, சீரான தன்மை மற்றும் ACID தேவைகள்;
  • PostGIS ஆதரவு;
  • டைம்ஸ்கேல் டிபி அடிப்படையில் PostgreSQL என்பதால், ஏற்கனவே உள்ள PostgreSQL அட்டவணைகளுடன் இணைக்கவும்.

Hadoop மற்றும் MapReduce அமைப்புகளுடன் போட்டி

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

பினோட் மற்றும் ட்ரூயிட் உடன் போட்டி

ClickHouse இன் நெருங்கிய போட்டியாளர்கள் நெடுவரிசை, நேரியல் அளவில் அளவிடக்கூடிய திறந்த மூல தயாரிப்புகளான Pinot மற்றும் Druid. இந்த அமைப்புகளை ஒப்பிடும் ஒரு சிறந்த வேலை கட்டுரையில் வெளியிடப்பட்டுள்ளது ரோமானா லெவென்டோவா பிப்ரவரி 1, 2018

ELK, Big Query மற்றும் TimescaleDB க்கு மாற்றாக Clickhouse ஐப் பயன்படுத்துதல்

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

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

ட்ரூயிட் மற்றும் பினோட் ஆகியவை அப்பாச்சி இன்குபேட்டர் திட்டங்களாகும், அவை அப்பாச்சியால் அவர்களின் கிட்ஹப் திட்டப் பக்கங்களில் விவரிக்கப்பட்டுள்ளன. பினோட் அக்டோபர் 2018 இல் இன்குபேட்டரில் தோன்றினார், மேலும் ட்ரூயிட் 8 மாதங்களுக்கு முன்பு - பிப்ரவரியில் பிறந்தார்.

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

ClickHouse இன் தீமைகள்

முதிர்ச்சியின்மை: வெளிப்படையாக, இது இன்னும் ஒரு சலிப்பான தொழில்நுட்பம், ஆனால் எப்படியிருந்தாலும், மற்ற நெடுவரிசை DBMS இல் இது போன்ற எதுவும் காணப்படவில்லை.

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

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

கண்டுபிடிப்புகள்

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

சில விளம்பரங்கள் 🙂

எங்களுடன் தங்கியதற்கு நன்றி. எங்கள் கட்டுரைகளை விரும்புகிறீர்களா? மேலும் சுவாரஸ்யமான உள்ளடக்கத்தைப் பார்க்க வேண்டுமா? ஒரு ஆர்டரை வைப்பதன் மூலம் அல்லது நண்பர்களுக்கு பரிந்துரை செய்வதன் மூலம் எங்களை ஆதரிக்கவும், $4.99 இலிருந்து டெவலப்பர்களுக்கான கிளவுட் VPS, நுழைவு-நிலை சேவையகங்களின் தனித்துவமான அனலாக், இது உங்களுக்காக எங்களால் கண்டுபிடிக்கப்பட்டது: VPS (KVM) E5-2697 v3 (6 கோர்கள்) 10GB DDR4 480GB SSD 1Gbps பற்றிய முழு உண்மை $19 அல்லது எப்படி ஒரு சர்வரைப் பகிர்வது? (RAID1 மற்றும் RAID10 உடன் கிடைக்கும், 24 கோர்கள் வரை மற்றும் 40GB DDR4 வரை).

ஆம்ஸ்டர்டாமில் உள்ள Equinix Tier IV தரவு மையத்தில் Dell R730xd 2 மடங்கு மலிவானதா? இங்கே மட்டும் 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV $199 இலிருந்து நெதர்லாந்தில்! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - $99 முதல்! பற்றி படிக்கவும் உள்கட்டமைப்பு நிறுவனத்தை எவ்வாறு உருவாக்குவது. ஒரு பைசாவிற்கு 730 யூரோக்கள் மதிப்புள்ள Dell R5xd E2650-4 v9000 சேவையகங்களைப் பயன்படுத்தும் வகுப்பு?

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

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