በጥያቄዎች እና መልሶች ውስጥ ለላቁ ተጠቃሚዎች ClickHouse

በሚያዝያ ወር የአቪቶ መሐንዲሶች የ ClickHouse ዋና ገንቢ ከሆነው አሌክሲ ሚሎቪዶቭ እና ከኢንተግሮስ የጎላንግ ገንቢ ኪሪል ሽቫኮቭ ጋር በመስመር ላይ ስብሰባዎች ላይ ተሰብስበዋል። የውሂብ ጎታ አስተዳደር ስርዓቱን እንዴት እንደምንጠቀም እና ምን ችግሮች እንደሚያጋጥሙን ተወያይተናል።

በስብሰባው ላይ በመመስረት፣ ስለ ምትኬ፣ የውሂብ መልሶ ማጋራት፣ ውጫዊ መዝገበ ቃላት፣ የጎላንግ ሾፌር እና የ ClickHouse ስሪት ማሻሻያዎችን በተመለከተ ለኛ እና ለተመልካቾች ጥያቄዎች የባለሙያዎችን መልሶች የያዘ ጽሑፍ አዘጋጅተናል። ቀድሞውኑ ከ Yandex DBMS ጋር በንቃት ለሚሰሩ እና ለአሁኑ እና ለወደፊቱ ፍላጎት ላላቸው ገንቢዎች ጠቃሚ ሊሆን ይችላል። የአሌክሲ ሚሎቪዶቭ መልሶች በነባሪነት፣ በሌላ መልኩ ካልተገለጸ በስተቀር።

ይጠንቀቁ, በቆራጩ ስር ብዙ ጽሑፍ አለ. ከጥያቄዎች ጋር ያለው ይዘት ለማሰስ እንደሚረዳዎት ተስፋ እናደርጋለን።

በጥያቄዎች እና መልሶች ውስጥ ለላቁ ተጠቃሚዎች ClickHouse

ይዘቶች

ጽሑፉን ማንበብ ካልፈለጉ የስብሰባዎችን ቀረጻ መመልከት ይችላሉ። በዩቲዩብ ቻናላችን. የጊዜ ማህተሞች ከቪዲዮው በታች ባለው የመጀመሪያ አስተያየት ውስጥ አሉ።

ClickHouse በቋሚነት ይዘምናል፣ ግን የእኛ ውሂብ አይደለም። ምን ይደረግ?

ClickHouse በቋሚነት ይዘምናል፣ እና በopmize final የተሰራው የእኛ ውሂብ አልተዘመነም እና በመጠባበቂያ ላይ ነው።

የሆነ ችግር አጋጥሞናል እና ውሂቡ ጠፋ እንበል። ወደነበረበት ለመመለስ ወስነናል፣ እና በመጠባበቂያ አገልጋዮች ውስጥ እየተከማቹ ያሉት የድሮ ክፍልፋዮች አሁን ጥቅም ላይ ከሚውለው የ ClickHouse ስሪት በጣም የተለዩ ናቸው። በእንደዚህ ዓይነት ሁኔታ ውስጥ ምን ማድረግ, እና ይቻላል?

በቀድሞው ቅርጸት ከመጠባበቂያ ቅጂ ውሂብን ወደነበረበት የመለሱበት ሁኔታ ግን በአዲሱ ስሪት ላይ ያልተገናኙበት ሁኔታ የማይቻል ነው። በ ClickHouse ውስጥ ያለው የውሂብ ቅርጸት ሁልጊዜ ወደ ኋላ ተኳሃኝ ሆኖ እንደሚቆይ እናረጋግጣለን። አንዳንድ አልፎ አልፎ ጥቅም ላይ የዋሉ ተግባራት ባህሪ ከተቀየረ ይህ በተግባራዊነት ውስጥ ከኋላ ተኳሃኝነት የበለጠ አስፈላጊ ነው። በዲስክ ላይ የተቀመጠው መረጃ፣ አዲሱ የ ClickHouse ስሪት ሁል ጊዜ ማንበብ መቻል አለበት። ይህ ህግ ነው።

ከ ClickHouse ውሂብን ለመደገፍ አሁን ያሉት ምርጥ ልምዶች ምንድናቸው?

የመጨረሻውን ኦፕሬሽኖች ፣ትልቅ የቴራባይት ዳታቤዝ እና የተዘመነ መረጃ እንዳለን ከግምት ውስጥ በማስገባት መጠባበቂያዎችን እንዴት መሥራት እንደሚቻል ፣ እንበል ፣ ላለፉት ሶስት ቀናት ፣ ከዚያ ምንም ሂደቶች በእነሱ ላይ አይከሰቱም?

የራሳችንን መፍትሄ ማሰባሰብ እና በጭንቅላቱ ላይ መፃፍ እንችላለን-እነዚህን መጠባበቂያዎች በእንደዚህ አይነት እና በእንደዚህ አይነት መንገድ ይሰብስቡ. ምናልባት ምንም ነገር መጨፍጨፍ አያስፈልግዎትም, እና ብስክሌቱ ከረጅም ጊዜ በፊት የተፈጠረ ነው?

በምርጥ ልምዶች እንጀምር. የሥራ ባልደረቦቼ ስለ መጠባበቂያዎች ለሚነሱ ጥያቄዎች ምላሽ በመስጠት ስለ Yandex.Cloud አገልግሎት ለማስታወስ ሁልጊዜ ምክር ይሰጣሉ, ይህ ተግባር ቀድሞውኑ ተፈትቷል. ስለዚህ ከተቻለ ይጠቀሙበት.

ለመጠባበቂያዎች መቶ በመቶ በ ClickHouse ውስጥ የተሰራ ሙሉ መፍትሄ የለም። ሊጠቀሙባቸው የሚችሏቸው አንዳንድ ባዶዎች አሉ። የተሟላ መፍትሄ ለማግኘት በእጅዎ ትንሽ መቆንጠጥ ወይም መጠቅለያዎችን በስክሪፕት መልክ መስራት ይኖርብዎታል።

በቀላል መፍትሄዎች እጀምራለሁ እና እንደ የውሂብ መጠን እና እንደ ክላስተር መጠን በጣም በተራቀቁ እጨርሳለሁ። ክላስተር በትልቁ፣ መፍትሄው ይበልጥ አስቸጋሪ ይሆናል።

የውሂብ ሠንጠረዡ ጥቂት ጊጋባይት ብቻ የሚይዝ ከሆነ, መጠባበቂያው እንደሚከተለው ሊከናወን ይችላል.

  1. የሰንጠረዦችን ትርጉም አስቀምጥ፣ ማለትም ሜታዳታ - ፍጠር ሰንጠረዥ አሳይ.
  2. የ ClickHouse ደንበኛን በመጠቀም ቆሻሻ ይሥሩ ይምረጡ * ከጠረጴዛ ወደ ፋይል. በነባሪነት፣ በ TabSeparated ቅርጸት ፋይል ይደርስዎታል። የበለጠ ቀልጣፋ ለመሆን ከፈለጉ፣ የቤተኛን ቅርጸት መጠቀም ይችላሉ።

የመረጃው መጠን ትልቅ ከሆነ, መጠባበቂያው ተጨማሪ ጊዜ እና ብዙ ቦታ ይወስዳል. ይህ አመክንዮአዊ ምትኬ ይባላል፣ ከ ClickHouse የውሂብ ቅርጸት ጋር የተሳሰረ አይደለም። ከሆነ ፣በመቆንጠጥ ምትኬ ወስደህ መልሶ ለማግኘት ወደ MySQL መስቀል ትችላለህ።

ለበለጠ የላቁ ጉዳዮች ClickHouse በአካባቢያዊ የፋይል ስርዓት ውስጥ የክፍሎችን ቅጽበታዊ ገጽ እይታ ለመፍጠር አብሮ የተሰራ ችሎታ አለው። ይህ ባህሪ እንደ ጥያቄ ይገኛል። የጠረጴዛ ቅዝቃዜ ክፍልፍልን ይቀይሩ. ወይም በቀላሉ የጠረጴዛ ቅዝቃዜን ይቀይሩ የጠቅላላው ጠረጴዛ ቅጽበታዊ ገጽ እይታ ነው።

ቅጽበተ-ፎቶው በአንድ ሸርተቴ ላይ ለአንድ ጠረጴዛ ወጥነት ያለው ይሆናል, ማለትም, በዚህ መንገድ ሙሉውን ክላስተር አንድ ወጥ የሆነ ቅጽበታዊ ገጽ እይታ ለመፍጠር የማይቻል ነው. ግን ለአብዛኛዎቹ ተግባራት, እንደዚህ አይነት ፍላጎት የለም, እና በእያንዳንዱ ሸርተቴ ላይ ጥያቄን ለማስፈጸም እና ወጥ የሆነ ቅጽበታዊ ገጽ እይታ ለማግኘት በቂ ነው. በሃርድሊንኮች መልክ የተፈጠረ ስለሆነ ተጨማሪ ቦታ አይወስድም. ከዚያ ይህን ቅጽበታዊ ገጽ እይታ ወደ ምትኬ አገልጋይ ወይም ለመጠባበቂያ ወደ ተጠቀሙበት ማከማቻ ይገለበጣሉ።

እንዲህ ዓይነቱን ምትኬ ወደነበረበት መመለስ በጣም ቀላል ነው። በመጀመሪያ, አሁን ባለው የሠንጠረዥ ፍቺዎች መሰረት ሰንጠረዦችን ይፈጥራሉ. በመቀጠል ለእነዚህ ሰንጠረዦች የተቀመጡ የክፍልፋይ ቅጽበተ-ፎቶዎችን ወደ ማውጫ-ዲታችድ ይቅዱ እና መጠይቁን ያሂዱ ክፋይ ማያያዝ. ይህ መፍትሔ በጣም ከባድ ለሆኑ የውሂብ መጠኖች በጣም ተስማሚ ነው።

አንዳንድ ጊዜ ይበልጥ ቀዝቃዛ የሆነ ነገር ያስፈልገዎታል - በእያንዳንዱ አገልጋይ እና በመቶዎች የሚቆጠሩ አገልጋዮች ላይ አስር ​​ወይም እንዲያውም በመቶዎች የሚቆጠሩ ቴራባይት ባሉበት ሁኔታ። ከ Yandex.Metrica ባልደረቦች የሰለልኩበት መፍትሄ እዚህ አለ። ለሁሉም ሰው አልመክረውም - ያንብቡት እና ተስማሚ መሆን አለመሆኑን ለራስዎ ይወስኑ.

በመጀመሪያ ትላልቅ የዲስክ መደርደሪያዎች ያላቸው ብዙ አገልጋዮችን መፍጠር ያስፈልግዎታል. በመቀጠል በነዚህ አገልጋዮች ላይ ብዙ የ ClickHouse አገልጋዮችን ያሳድጉ እና ለተመሳሳይ ሻርዶች ሌላ ቅጂ ሆነው እንዲሰሩ ያዋቅሯቸው። እና ከዚያ የፋይል ስርዓቱን በእነዚህ አገልጋዮች ላይ ወይም ቅጽበተ-ፎቶዎችን ለመፍጠር የሚያስችልዎትን አንዳንድ መሳሪያ ይጠቀሙ። እዚህ ሁለት አማራጮች አሉ. የመጀመሪያው አማራጭ LVM ቅጽበተ-ፎቶዎች ነው, ሁለተኛው አማራጭ በሊኑክስ ላይ ZFS ነው.

ከዚያ በኋላ, በየቀኑ ቅጽበተ-ፎቶ መፍጠር ያስፈልግዎታል, ይዋሻል እና የተወሰነ ቦታ ይወስዳል. በተፈጥሮ, መረጃው ከተቀየረ, ከጊዜ በኋላ የቦታው መጠን ይጨምራል. ይህንን ቅጽበታዊ ገጽ እይታ በማንኛውም ጊዜ ማግኘት እና ውሂቡን ወደነበረበት መመለስ ይችላሉ ፣ እንደዚህ ያለ እንግዳ ውሳኔ። በተጨማሪም፣ አሁንም መሪ ለመሆን እንዳይሞክሩ እነዚህን ቅጂዎች በማዋቀሩ ውስጥ መወሰን ያስፈልግዎታል።

በዘንጎች ውስጥ የተባዙ የቁጥጥር መዝገብ ማደራጀት ይቻል ይሆን?

በዚህ አመት በ ClickHouse ውስጥ ዘንጎች ለመስራት እያሰቡ ነው። በውስጣቸው የተገለበጡ ቅጂዎች ቁጥጥር የሚደረግበት ማደራጀት ይቻል ይሆን? ከተለዋዋጭ እና ሌሎች ለውጦች እራሳችንን ከአሉታዊ ሁኔታዎች ለመጠበቅ ልንጠቀምበት እንፈልጋለን።

ለለውጦች አንድ ዓይነት ጥቅልል ​​ማድረግ ይቻላል? ለምሳሌ፣ አሁን ባለው ዘንግ ውስጥ፣ እስከዚህ ጊዜ ድረስ ለውጦቹን ይተግብሩ እና ይናገሩ እና ከዚህ ጊዜ ጀምሮ ለውጦቹን መተግበር ያቁሙ?

ትእዛዝ ወደ ክላስተርችን መጥቶ ከሰበረ፣ የአንድ ሰአት ቆይታ ያለው ሁኔታዊ ቅጂ አለን፣ በዚህ ጊዜ እንጠቀምበት ማለት የምንችልበት፣ ነገር ግን ለውጦቹን ላለፉት አስር ደቂቃዎች ተግባራዊ አንሆንም?

ለመጀመር፣ ስለ ቁጥጥር የተደረገው የቅጂዎች መዝገብ። ከተጠቃሚዎች እንደዚህ ያለ ጥያቄ ነበር፣ እና በ Github ላይ ችግር ፈጥረናል፡- “አንድ ሰው ይህን የሚያስፈልገው ከሆነ ላይክ ያድርጉ፣ ልብ ያድርጉ። ማንም ውርርድ የለም፣ እና ጉዳዩ ተዘግቷል። ሆኖም፣ ClickHouseን በማዘጋጀት ይህንን እድል አስቀድመው ማግኘት ይችላሉ። እውነት ነው፣ ከስሪት 20.3 ጀምሮ ብቻ።

ClickHouse ያለማቋረጥ ከበስተጀርባ ያለውን ውሂብ ያዋህዳል - አዋህድ። ውህደት በሚፈጠርበት ጊዜ, አንዳንድ የውሂብ ቁርጥራጮች ስብስብ በትልቁ ቁራጭ ይተካል. በተመሳሳይ ጊዜ, ከዚህ በፊት የነበሩ የውሂብ ቁርጥራጮች ለተወሰነ ጊዜ በዲስክ ላይ ይቆያሉ.

በመጀመሪያ፣ ያልተከለከሉ ተግባራትን ለማረጋገጥ የሚጠቀሙባቸው የተመረጡ መጠይቆች እስካሉ ድረስ መከማቸታቸውን ይቀጥላሉ። ምረጥ ጥያቄዎች ከአሮጌ ቁርጥራጮች በጸጥታ ይነበባሉ።

በሁለተኛ ደረጃ, የጊዜ ገደብም አለ - የቆዩ የውሂብ ቁርጥራጮች ዲስኩ ላይ ለስምንት ደቂቃዎች ይተኛሉ. እነዚህ ስምንት ደቂቃዎች ሊበጁ እና ወደ አንድ ቀን እንኳን ሊቀየሩ ይችላሉ። ይህ የዲስክ ቦታን ያስከፍላል-በመረጃ ፍሰት ላይ በመመስረት በመጨረሻው ቀን ውሂቡ በእጥፍ ብቻ ሳይሆን በአምስት እጥፍ ሊጨምር ይችላል። ነገር ግን ከባድ ችግር በሚፈጠርበት ጊዜ የ ClickHouse አገልጋይን ማቆም እና ሁሉንም ነገር ማስተናገድ ይችላሉ.

አሁን ጥያቄው ይህ እንዴት ለውጦችን እንደሚከላከል ነው. እዚህ በጥልቀት መመልከት ተገቢ ነው፣ ምክንያቱም በቆዩ የ ClickHouse ስሪቶች ውስጥ፣ መለወጫው በቀላሉ ቁርጥራጮቹን እንዲቀይር በሚያስችል መንገድ ሰርቷል። አንዳንድ ፋይሎች ያሉት አንድ ቁራጭ ውሂብ አለ፣ እና እኛ ለምሳሌ፣ ተቆልቋይ አምድ ቀይር. ከዚያ ይህ አምድ በአካል ከሁሉም ቁርጥራጮች ይወገዳል.

ግን ከስሪት 20.3 ጀምሮ ፣ የመቀየሪያ ዘዴው ሙሉ በሙሉ ተቀይሯል ፣ እና አሁን የውሂብ ቁርጥራጮች ሁል ጊዜ የማይለዋወጡ ናቸው። ምንም አይለወጡም - ለውጦች አሁን ልክ እንደ ውህደት በተመሳሳይ መንገድ ይሰራሉ። በቦታው ላይ አንድ ቁራጭ ከመቀየር ይልቅ አዲስ እንፈጥራለን. በአዲሱ ክፍል ውስጥ፣ ያልተለወጡ ፋይሎች ሃርድሊንኮች ይሆናሉ፣ እና አንድን አምድ ከሰረዝን በቀላሉ በአዲሱ ክፍል ውስጥ ይጎድላል። የድሮው ቁራጭ ከስምንት ደቂቃዎች በኋላ በነባሪነት ይሰረዛል, እና እዚህ ከላይ የተጠቀሱትን ቅንብሮች ማስተካከል ይችላሉ.

እንደ ሚውቴሽን ላሉ ለውጦችም ተመሳሳይ ነው። ሲያደርጉ ሰርዝ ቀይር ወይም ዝማኔ መቀየር, ቁርጥራጭን አይለውጥም, ግን አዲስ ይፈጥራል. እና ከዚያ አሮጌውን ይሰርዛል.

የጠረጴዛው መዋቅር ከተለወጠስ?

በአሮጌው እቅድ የተሰራ ምትኬን እንዴት ማሳደግ ይቻላል? እና ሁለተኛው ጥያቄ በቅጽበተ-ፎቶዎች እና በፋይል ስርዓት መሳሪያዎች ላይ ስላለው ጉዳይ ነው. በLinux LVM ላይ ከ ZFS ይልቅ Btrfs እዚህ ተስማሚ ነው?

ካደረጉ ክፋይ ማያያዝ ክፍልፋዮች ከተለየ መዋቅር ፣ ከዚያ ClickHouse ይህ የማይቻል መሆኑን ይነግርዎታል። መፍትሄው ይህ ነው። የመጀመሪያው የMergeTree አይነት ጊዜያዊ ሠንጠረዥ ከአሮጌው መዋቅር ጋር መፍጠር፣አባሪን በመጠቀም መረጃን እዚያ ማያያዝ እና የመቀየር ጥያቄ ማቅረብ ነው። ከዚያ ይህንን ውሂብ መቅዳት ወይም ማስተላለፍ እና እንደገና ማያያዝ ወይም መጠይቁን መጠቀም ይችላሉ። የሠንጠረዥ እንቅስቃሴ ክፍልፍልን ይቀይሩ.

አሁን ሁለተኛው ጥያቄ Btrfs መጠቀም ይቻል እንደሆነ ነው. ለመጀመር ያህል, LVM ካለዎት, ከዚያ LVM ቅጽበተ-ፎቶዎች በቂ ናቸው, እና የፋይል ስርዓቱ ext4 ሊሆን ይችላል, ምንም አይደለም. በBtrts፣ ሁሉም ነገር በእሱ ላይ ባለዎት ልምድ ላይ የተመሰረተ ነው። ይህ የበሰለ የፋይል ስርዓት ነው, ነገር ግን በተወሰነ ሁኔታ ውስጥ ሁሉም ነገር በተግባር እንዴት እንደሚሰራ አሁንም አንዳንድ ጥርጣሬዎች አሉ. በምርት ላይ Btrfs ከሌለዎት በስተቀር ይህንን እንዲጠቀሙ አልመክርም።

ለመረጃ መልሶ ማጋራት የአሁኑ ምርጥ ልምዶች ምንድናቸው?

እንደገና የማጋራት ጥያቄ ውስብስብ እና ብዙ ገጽታ ያለው ነው። እዚህ ብዙ አማራጮችን በአንድ ጊዜ መመለስ ይችላሉ. ከአንድ ወገን ገብተህ ይህን ማለት ትችላለህ - በ ClickHouse ውስጥ አብሮ የተሰራ ዳግም የማጋራት አማራጭ የለም። ግን ይህ መልስ ለማንም እንደማይስማማ እሰጋለሁ። ስለዚህ፣ ከሌላኛው ወገን ሄደው ClickHouse ውሂብን እንደገና ለማጋራት ብዙ መንገዶች እንዳሉት መናገር ይችላሉ።

ክላስተር ቦታ ካለቀ ወይም ጭነቱን መቋቋም ካልቻለ አዳዲስ አገልጋዮችን ይጨምራሉ። ነገር ግን እነዚህ አገልጋዮች በነባሪ ባዶ ናቸው, በእነሱ ላይ ምንም ውሂብ የለም, ምንም ጭነት የለም. በአዲሱ ትልቅ ዘለላ ላይ በእኩል እንዲሰራጭ ውሂቡን መቀየር አለቦት።

ይህን ለማድረግ የመጀመሪያው መንገድ መጠይቁን በመጠቀም የክፍሎቹን ክፍል ወደ አዲስ አገልጋዮች መቅዳት ነው የጠረጴዛ አምጣ ክፍልፍልን ቀይር. ለምሳሌ፣ ክፍልፋዮች በወራት ነበሩዎት፣ እና የ2017ን የመጀመሪያ ወር ወስደህ ወደ አዲስ አገልጋይ ገልብጠህ፣ ከዚያም ሶስተኛውን ወር ወደ ሌላ አዲስ አገልጋይ ገልብጠህ። እና የበለጠ ወይም ያነሰ እኩል እስኪሆን ድረስ እንዲሁ ያድርጉ።

ማይግሬሽን ሊደረግ የሚችለው በሚቀዳበት ጊዜ የማይለወጡ ክፍልፋዮች ብቻ ነው። ለአዲስ ክፍልፋዮች፣ መፃፍ መሰናከል አለበት፣ ምክንያቱም ዝውውራቸው አቶሚክ አይደለም። ያለበለዚያ በመረጃው ውስጥ የተባዙ ወይም ክፍተቶች ይኖሩዎታል። ሆኖም, ይህ ዘዴ ተግባራዊ እና በጣም ውጤታማ በሆነ መንገድ ይሰራል. ዝግጁ-የተጨመቁ ክፍልፋዮች በአውታረ መረቡ ላይ ይተላለፋሉ ፣ ማለትም ፣ መረጃው አልተጨመቀም ወይም እንደገና አልተቀየረም።

ይህ ዘዴ አንድ መሰናክል አለው፣ እና በሻርዲንግ ዘዴው ላይ ይመሰረታል፣ ለዚህ ​​የሻርዲንግ እቅድ ቃል የገቡት ምን አይነት የመቃጠያ ቁልፍ እንዳለዎት ነው። በመለኪያዎች ጉዳይ በምሳሌዎ፣ የሻርዲንግ ቁልፉ የመንገዱ ሃሽ ነው። የተከፋፈለ ሠንጠረዥ ሲመርጡ በአንድ ጊዜ ወደ ሁሉም የክላስተር ቁርጥራጮች ይሄዳል እና ከዚያ ውሂብ ይወስዳል።

ይህ ማለት የትኛው ውሂብ በየትኛው ስብርባሪዎች ላይ እንደሚያልቅ ለእርስዎ ምንም አይደለም ማለት ነው። ዋናው ነገር በአንድ መንገድ ላይ ያለው መረጃ በአንድ ሸርተቴ ላይ ያበቃል, ግን የትኛው አስፈላጊ አይደለም. በዚህ ሁኔታ ፣ ዝግጁ-ክፍልፋዮችን ማስተላለፍ ፍጹም ነው ፣ ምክንያቱም በተመረጡ መጠይቆች ፣ እንዲሁም ሙሉ ውሂብ ይቀበላሉ - እንደገና ከመጋራቱ በፊት እና በኋላ ፣ መርሃግብሩ በእውነቱ ምንም አይደለም ።

ግን የበለጠ ውስብስብ የሆኑ ጉዳዮች አሉ. በመተግበሪያው አመክንዮ ደረጃ ላይ በልዩ የሻርዲንግ እቅድ ላይ ከተደገፉ, ይህ ደንበኛ በእንደዚህ አይነት እና በእንደዚህ አይነት ሸርተቴ ላይ ይገኛል, እና ጥያቄው ወዲያውኑ ወደዚያ ሊላክ ይችላል, እና ወደ የተከፋፈለው ጠረጴዛ አይደለም. ወይም በትክክል የቅርብ ጊዜውን የ ClickHouse ስሪት እየተጠቀሙ ነው እና ቅንብሩን አንቅተዋል። ጥቅም ላይ ያልዋሉ ሸርቆችን መዝለልን ያመቻቹ. በዚህ ሁኔታ, በምርጫ መጠይቁ ወቅት, በክፍል ውስጥ ያለው አገላለጽ የሚተነተንበት እና በሸርተቴ መርሃ ግብር መሰረት ወደ የትኞቹ ቁርጥራጮች እንደሚሄድ ይሰላል. ይህ የሚሠራው ውሂቡ በዚህ የሻርዲንግ እቅድ መሰረት በትክክል ከተበላሸ ነው። በእጅ ከቀያየርካቸው፣ የደብዳቤ ልውውጡ ሊቀየር ይችላል።

ስለዚህ ቁጥር አንድ መንገድ ነው. እና መልስህን እየጠበቅኩ ነው፣ ዘዴው ተስማሚ ነው ወይስ ቀጥል።

ቭላድሚር Kolobaev, በአቪቶ ውስጥ መሪ ስርዓት አስተዳዳሪ: አሌክሲ, የጠቀስከው ዘዴ ንባብን ጨምሮ ሸክሙን ለማሰራጨት በሚያስፈልግበት ጊዜ በደንብ አይጣጣምም. ወርሃዊ የሆነ ክፍልፍል ወስደን ያለፈውን ወር ወደ ሌላ መስቀለኛ መንገድ ልንወስድ እንችላለን ነገር ግን ለዚህ መረጃ ጥያቄ ሲመጣ, እኛ ብቻ እንጭነዋለን. ነገር ግን ሙሉውን ክላስተር መጫን እፈልጋለሁ, ምክንያቱም, አለበለዚያ, ለተወሰነ ጊዜ, ሙሉውን የንባብ ጭነት በሁለት ጥራጊዎች ይካሄዳል.

አሌክሲ ሚሎቪዶቭ: እዚህ መልሱ እንግዳ ነው - አዎ, መጥፎ ነው, ግን ሊሠራ ይችላል. በትክክል እንዴት እንደሆነ እገልጻለሁ. ከእርስዎ ውሂብ ጋር የሚመጣውን የጭነት ሁኔታ መመልከት ተገቢ ነው። ይህ የክትትል ውሂብ ከሆነ፣ አብዛኞቹ ጥያቄዎች ትኩስ መረጃ መሆናቸው እርግጠኛ ነው።

አዲስ አገልጋዮችን ጭነሃል፣ የድሮ ክፍልፋዮችን ተሸጋግረሃል፣ ነገር ግን አዲስ ውሂብ እንዴት እንደሚጻፍም ቀይረሃል። እና ትኩስ መረጃዎች በክላስተር ውስጥ ይሰራጫሉ። ስለዚህ፣ ከአምስት ደቂቃ በኋላ፣ ላለፉት አምስት ደቂቃዎች የሚቀርቡ ጥያቄዎች ክላስተርን በእኩል መጠን ይጭናሉ፣ ከአንድ ቀን በኋላ የአንድ ቀን ጥያቄዎች ክላስተርን በእኩል መጠን ይጭናሉ። እና ያለፈው ወር ጥያቄዎች፣ በሚያሳዝን ሁኔታ፣ ወደ የክላስተር አገልጋዮች ክፍል ብቻ ይሄዳሉ።

ግን ብዙ ጊዜ ለየካቲት 2019 ጥያቄዎች አይኖርዎትም። ምናልባትም ፣ ጥያቄዎች ወደ 2019 ከሄዱ ፣ ከዚያ ለ 2019 በሙሉ ይሆናሉ - ለትልቅ የጊዜ ክፍተት ፣ እና ለአንዳንድ አነስተኛ ክልል። እና እንደዚህ አይነት ጥያቄዎች ክላስተርን በእኩል መጠን መጫን ይችላሉ። በአጠቃላይ ግን ይህ መረጃውን ሙሉ በሙሉ በእኩል የማያሰራጭ የአድሆክ መፍትሄ ነው የሚለው አስተያየትዎ በጣም ትክክል ነው።

ጥያቄውን ለመመለስ ጥቂት ተጨማሪ ነጥቦች አሉኝ. ከመካከላቸው አንዱ የሻርዲንግ እቅዱን እንዴት እንደገና ማጋራት ትንሽ ህመም እንደሚሰማው በመጀመሪያ እንዴት እንደሚሰራ ነው። ይህ ሁልጊዜ የሚቻል አይደለም.

ለምሳሌ፣ የክትትል ውሂብ አለዎት። የክትትል መረጃ በሶስት ምክንያቶች እያደገ ነው. የመጀመሪያው የታሪክ መረጃ መሰብሰብ ነው። ሁለተኛው የትራፊክ እድገት ነው. ሦስተኛው ደግሞ ክትትል ሊደረግባቸው የሚገቡ ነገሮች ቁጥር መጨመር ነው። መዳን የሚያስፈልጋቸው አዳዲስ ማይክሮ አገልግሎቶች እና መለኪያዎች አሉ።

ከእነዚህ ውስጥ ትልቁ መጨመር በሶስተኛው ምክንያት ሊሆን ይችላል - ይህ የክትትል አጠቃቀም መጨመር ነው. እናም በዚህ ጉዳይ ላይ የጭነቱን ባህሪ መመልከት ተገቢ ነው, ለመምረጥ ዋና ጥያቄዎች ምንድ ናቸው. ዋናዎቹ የተመረጡ መጠይቆች የተወሰኑ የልኬቶችን ንዑስ ክፍል ሊከተሉ ይችላሉ።

ለምሳሌ፣ በአንዳንድ አገልጋዮች ላይ የሲፒዩ አጠቃቀም። ይህን ውሂብ ያገኙበት አንዳንድ የቁልፎች ስብስብ እንዳለ ታወቀ። እና የዚህ መረጃ ጥያቄ ራሱ በጣም ቀላል እና በአስር ሚሊሰከንዶች ውስጥ የሚሄድ ነው። ለክትትል አገልግሎቶች፣ ለዳሽቦርዶች ያገለግላል። ይህንን በትክክል እንደተረዳሁት ተስፋ አደርጋለሁ።

ቭላድሚር ኮሎባቭ: እውነታው ግን የአሁኑን አቋም ከታሪካዊው ጋር በእውነተኛ ጊዜ ስላነፃፅር ብዙ ጊዜ ወደ ታሪካዊ መረጃ እንግባባለን። እና ብዙ መጠን ያለው ውሂብ በፍጥነት ማግኘት ለእኛ አስፈላጊ ነው፣ እና ClickHouse በዚህ ጥሩ ስራ ይሰራል።

ልክ ነህ፣ በመጨረሻው ቀን የምናገኛቸው አብዛኛዎቹ የንባብ ጥያቄዎች እንደ ማንኛውም የክትትል ስርዓት። ግን በተመሳሳይ ጊዜ በታሪካዊ መረጃ ላይ ያለው ሸክም በጣም ትልቅ ነው። በአብዛኛው በየሰላሳ ሰከንድ የሚዞር እና ClickHouse ከሚለው የማንቂያ ስርዓት ነው፣ "ባለፉት ስድስት ሳምንታት ውሂቡን ስጠኝ። እና አሁን ከነሱ ውስጥ ጥቂት የሚንቀሳቀስ አማካኝ ይገንቡኝ እና አሁን ያለውን ዋጋ ከታሪካዊ እሴት ጋር እናወዳድር።

ለእንደዚህ አይነት በጣም ትኩስ ጥያቄዎች ሁለት ቀን ውሂብን ብቻ የምናከማችበት ሌላ ትንሽ ጠረጴዛ አለን እና ዋናዎቹ ጥያቄዎች ወደ እሱ ይበርራሉ ማለት እፈልጋለሁ። ትልቅ ታሪካዊ መጠይቆችን ብቻ ወደ አንድ ትልቅ የተጠረበ ጠረጴዛ እንልካለን።

አሌክሲ ሚሎቪዶቭ: እንደ አለመታደል ሆኖ፣ ለእርስዎ ሁኔታ በደንብ የማይተገበር ሆኖ ተገኝቷል፣ ነገር ግን ጥቅም ላይ መዋል የማይፈልጉትን፣ ነገር ግን በጓደኞቼ አገልግሎት ውስጥ ጥቅም ላይ የሚውሉ ሁለት መጥፎ እና ውስብስብ የሻርኪንግ እቅዶችን እገልጻለሁ።

ከ Yandex.Metrica ክስተቶች ጋር ዋና ክላስተር አለ። ክስተቶች የገጽ እይታዎች፣ ጠቅታዎች እና ሽግግሮች ናቸው። አብዛኛዎቹ ጥያቄዎች ወደ አንድ የተወሰነ ድር ጣቢያ ይሄዳሉ። የ Yandex.Metrica አገልግሎትን ይከፍታሉ, ድር ጣቢያ አለዎት - avito.ru, ወደ ሪፖርቱ ይሂዱ እና ለድር ጣቢያዎ ጥያቄ ቀርቧል.

ነገር ግን ሌሎች ጥያቄዎች አሉ - ትንታኔያዊ እና ዓለም አቀፋዊ, ይህም በውስጣዊ ተንታኞች ነው. እንደዚያ ከሆነ ፣ የውስጥ ተንታኞች ለ Yandex አገልግሎቶች ብቻ እንደሚጠይቁ አስተውያለሁ። ግን የ Yandex አገልግሎቶች እንኳን የሁሉንም ውሂብ ጉልህ ድርሻ ይይዛሉ። እነዚህ ጥያቄዎች ለተወሰኑ ቆጣሪዎች ሳይሆን ለሰፋፊ ማጣሪያዎች ናቸው።

ለአንድ ቆጣሪ ሁሉም ነገር በብቃት እንዲሠራ እና ዓለም አቀፍ መጠይቆችን በሚያስችል መንገድ መረጃን እንዴት ማደራጀት ይቻላል? ሌላው ችግር ደግሞ በ ClickHouse ውስጥ ለሜትሪክስ ክላስተር የጥያቄዎች ብዛት በሰከንድ ብዙ ሺዎች መሆኑ ነው። በተመሳሳይ ጊዜ, አንድ የ ClickHouse አገልጋይ ቀላል ያልሆኑ ጥያቄዎችን አይይዝም, ለምሳሌ, በሴኮንድ ብዙ ሺዎች.

የክላስተር መጠኑ ስድስት መቶ እና የሆነ ነገር አገልጋዮች ነው። በቀላሉ የተከፋፈለ ጠረጴዛ በዚህ ዘለላ ላይ ዘርግተህ ብዙ ሺ ጥያቄዎችን ከላከ ወደ አንድ አገልጋይ ከመላክ የበለጠ የከፋ ይሆናል። በሌላ በኩል ውሂቡ በእኩል መጠን የሚሰራጭ እና ሄደን ከሁሉም አገልጋዮች የምንጠይቀው ምርጫ ወዲያውኑ ውድቅ ይሆናል።

ዲያሜትራዊ ተቃራኒ አማራጭ አለ. አስቡት ውሂብን በየጣቢያው ብናካፍል እና የአንድ ጣቢያ ጥያቄ ወደ አንድ ሻርድ ይሄዳል። አሁን ክላስተር በሰከንድ አስር ሺህ ጥያቄዎችን ማውጣት ይችላል፣ ነገር ግን በአንድ ሻርድ ላይ አንድ ጥያቄ በጣም በዝግታ ይሰራል። ከአሁን በኋላ የመተላለፊያ ይዘት አይለካም። በተለይም ጣቢያው avito.ru ከሆነ. አቪቶ በሩኔት ውስጥ በጣም ከሚጎበኙ ጣቢያዎች አንዱ ነው ካልኩ ሚስጥር አልገልጽም። እና በአንድ ሸርተቴ ላይ ማስኬድ እብደት ነው.

ስለዚህ, የሻርዲንግ መርሃግብሩ ይበልጥ አስቸጋሪ በሆነ መንገድ ተዘጋጅቷል. መላው ክላስተር ወደ ብዙ ስብስቦች የተከፋፈለ ነው, እኛ ንብርብሮች ብለን እንጠራዋለን. በእያንዳንዱ ክላስተር ውስጥ ከአስር እስከ ብዙ ደርዘን የሚደርሱ ሸርተቴዎች አሉ። በአጠቃላይ ሰላሳ ዘጠኝ እንደዚህ ያሉ ስብስቦች አሉ።

ሁሉም እንዴት ነው የሚለካው? የክላስተር ቁጥር አይለወጥም - ከሰላሳ ዘጠኝ አመታት በፊት እንደነበረው ሁሉ አሁንም ተመሳሳይ ነው. ነገር ግን በእያንዳንዳቸው ውስጥ, መረጃ በሚከማችበት ጊዜ ቀስ በቀስ የሻርዶችን ቁጥር እንጨምራለን. እና የሻርዲንግ መርሃግብሩ በአጠቃላይ ይህ ነው - ወደ እነዚህ ዘለላዎች ያለው ክፍፍል በድር ጣቢያዎች ነው የሚሄደው ፣ እና የትኛው ጣቢያ በየትኛው ክላስተር ላይ እንዳለ ለመረዳት ፣ በ MySQL ውስጥ የተለየ ሜታቤዝ በአጠቃላይ ጥቅም ላይ ይውላል። አንድ ጣቢያ - በአንድ ዘለላ ላይ. እና በውስጡ, ሻርዲንግ የሚከናወነው እንደ ጎብኝዎች መለያዎች ነው.

በሚቀዳበት ጊዜ በቀሪው የጎብኚ መታወቂያ እንከፋፍላቸዋለን። ነገር ግን አዲስ ሸርተቴ ሲጨመር የሻርዲንግ እቅድ ይለወጣል, መከፋፈሉን እንቀጥላለን, ነገር ግን የቀረውን በሌላ ቁጥር በመከፋፈል. ይህ ማለት አንድ ጎብኚ አስቀድሞ በበርካታ አገልጋዮች ላይ ይገኛል, እና በእሱ ላይ መወራረድ አይችሉም. ይህ የሚደረገው መረጃው በተሻለ ሁኔታ መጨመዱን ለማረጋገጥ ብቻ ነው። እና ስንጠይቅ፣ ወደ ተከፋፈለ ጠረጴዛ እንሄዳለን፣ እሱም ክላስተርን ይመለከታል እና በደርዘን የሚቆጠሩ አገልጋዮችን ይደርሳል። ይህ እንደዚህ ያለ ደደብ እቅድ ነው.

ነገር ግን ይህንን ዘዴ ትተናል ካልኩ ታሪኬ የተሟላ አይሆንም። በአዲሱ እቅድ ሁሉንም ነገር ቀይረናል እና ሁሉንም ውሂብ ጠቅታሃውስ-ኮፒየርን በመጠቀም ገልብጠናል።

በአዲሱ እቅድ ሁሉም ጣቢያዎች በሁለት ምድቦች ይከፈላሉ - ትልቅ እና ትንሽ. ጣራው እዚያ እንዴት እንደተመረጠ አላውቅም ፣ ግን በውጤቱ ፣ ትላልቅ ጣቢያዎች በአንድ ክላስተር ላይ ተመዝግበው 120 ሻርዶች በእያንዳንዱ ሶስት ቅጂዎች አሉ - ማለትም 360 አገልጋዮች። እና የሻርዲንግ መርሃግብሩ ማንኛውም ጥያቄ በአንድ ጊዜ ወደ ሁሉም ቁርጥራጮች ይሄዳል። አሁን ማንኛውንም የሪፖርት ገጽ ለ avito.ru በ Yandex.Metrica ከከፈቱ ጥያቄው ወደ 120 አገልጋዮች ይሄዳል። Runet ውስጥ ጥቂት ትልልቅ ጣቢያዎች አሉ። እና ጥያቄዎቹ በሴኮንድ አንድ ሺህ አይደሉም, ግን ከመቶ ያነሱ ናቸው. ይህ ሁሉ በጸጥታ የሚታኘከው በተከፋፈለው ጠረጴዛ ሲሆን እያንዳንዳቸው 120 አገልጋዮችን ያስኬዳሉ።

እና ሁለተኛው ክላስተር ለአነስተኛ ጣቢያዎች ነው. በጣቢያ መታወቂያ የመጋራት ዘዴ እዚህ አለ፣ እና እያንዳንዱ ጥያቄ በትክክል ወደ አንድ ሻርድ ይሄዳል።

ClickHouse የጠቅታ ቤት-ኮፒተር መገልገያ አለው። ስለ እሷ መናገር ትችላለህ?

ይህ መፍትሔ ይበልጥ አስቸጋሪ እና በመጠኑም ቢሆን ውጤታማ መሆኑን ወዲያውኑ መናገር አለብኝ. ጥቅሙ እርስዎ በገለጹት ንድፍ መሰረት ውሂቡን ሙሉ ለሙሉ መቀባቱ ነው። ነገር ግን የመገልገያው ጉዳቱ ጨርሶ አይጋራም ማለት ነው። ከአንድ የክላስተር እቅድ ወደ ሌላ የክላስተር እቅድ ውሂብን ይቀዳል።

ይህ ማለት እንዲሰራ ሁለት ዘለላዎች ሊኖሩዎት ይገባል ማለት ነው። በተመሳሳዩ አገልጋዮች ላይ ሊገኙ ይችላሉ, ነገር ግን, ሆኖም ግን, ውሂቡ እየጨመረ አይሄድም, ነገር ግን ይገለበጣል.

ለምሳሌ, አራት አገልጋዮች ነበሩ, አሁን ስምንት ናቸው. በሁሉም አገልጋዮች ላይ አዲስ የተከፋፈለ ሠንጠረዥ፣ አዲስ የአካባቢ ሰንጠረዦችን ፈጥረዋል፣ እና ክሊክሃውስ-ኮፒየርን ያስጀምራሉ፣ በእሱ ውስጥ ማንበብ ያለበትን የስራ መርሃ ግብር በመጥቀስ፣ አዲሱን የሻርዲንግ እቅድ ይቀበሉ እና ውሂብን ወደዚያ ያስተላልፋሉ። እና አሁን ካላችሁት በላይ በአሮጌው አገልጋዮች ላይ አንድ ተኩል ጊዜ የሚበልጥ ቦታ ያስፈልጎታል፣ ምክንያቱም አሮጌው መረጃ በእነሱ ላይ መቆየት አለበት እና ግማሹ ተመሳሳይ አሮጌ መረጃ በላያቸው ላይ ይመጣል። ውሂቡ እንደገና ማጋራት እንዳለበት እና ቦታ እንዳለ አስቀድመው ካሰቡ ይህ ዘዴ ተስማሚ ነው.

ክሊክ ሃውስ-ኮፒየር እንዴት ነው የሚሰራው? በአንድ ሸርተቴ ላይ የአንድ ጠረጴዛን አንድ ክፍል ለማስኬድ ሁሉንም ስራ ወደ የተግባር ስብስብ ይከፋፍላል. እነዚህ ሁሉ ተግባራት በትይዩ ሊሄዱ ይችላሉ፣ እና ክሊክሃውስ-ኮፒየር በተለያዩ ማሽኖች ላይ ብዙ አጋጣሚዎችን ሊያሄድ ይችላል፣ ነገር ግን ለአንድ ክፍልፋይ የሚያደርገው ነገር ከማስገባት ምርጫ ያለፈ አይደለም። ውሂቡ ይነበባል፣ ይጨመቃል፣ እንደገና ይከፋፈላል፣ ከዚያም እንደገና ይጨመቃል፣ የሆነ ቦታ ይፃፋል፣ እንደገና ይደረደራል። ይህ የበለጠ ከባድ ውሳኔ ነው።

ዳግም ማጋራት የሚባል አብራሪ ነገር ነበረህ። እሷስ?

እ.ኤ.አ. በ2017፣ ዳግም ማጋራት የሚባል አብራሪ ነገር ነበረህ። በ ClickHouse ውስጥ እንኳን አንድ አማራጭ አለ። እንዳልተነሳ ይገባኛል። ለምን እንደተከሰተ መናገር ትችላለህ? በጣም ተዛማጅነት ያለው ይመስላል.

ችግሩ በሙሉ ውሂብን በቦታው እንደገና ማጋራት ካስፈለገዎት ይህንን በአቶሚክ ለማድረግ በጣም የተወሳሰበ ማመሳሰል ያስፈልጋል። ይህ ማመሳሰል እንዴት እንደሚሰራ ማየት ስንጀምር, መሰረታዊ ችግሮች እንዳሉ ግልጽ ሆነ. እና እነዚህ መሰረታዊ ችግሮች በንድፈ-ሀሳባዊ ብቻ አይደሉም, ነገር ግን ወዲያውኑ በጣም ቀላል በሆነ መልኩ ሊገለጽ በሚችል ነገር ውስጥ እራሳቸውን በተግባር ማሳየት ጀመሩ - ምንም አይሰራም.

ወደ ዲስኮች ፍጥነት ከመሄድዎ በፊት ሁሉንም የውሂብ ክፍሎች አንድ ላይ ማዋሃድ ይቻላል?

ስለ ቲቲኤል ጥያቄ በማዋሃድ አውድ ውስጥ የዲስክ አማራጭን ወደ ቀስ በቀስ መውሰድ። ወደ ቀርፋፋ ዲስኮች ከመሄድዎ በፊት ሁሉንም ክፍሎች ወደ አንድ የሚያዋህድበት ከክሮን ሌላ ሌላ መንገድ አለ?

እነሱን ከማስተላለፍዎ በፊት በሆነ መንገድ ሁሉንም ቁርጥራጮች ወደ አንድ ማጣበቅ ይቻል እንደሆነ ለሚለው ጥያቄ መልሱ የለም ነው። ይህ አስፈላጊ እንዳልሆነ ለእኔ ይመስላል. ሁሉንም ክፍሎች ወደ አንድ ማዋሃድ አይችሉም, ነገር ግን በቀላሉ በራስ-ሰር ወደ ቀርፋፋ ዲስኮች ስለሚተላለፉ በቀላሉ ይተማመኑ.

ለዝውውር ደንቦች ሁለት መስፈርቶች አሉን. የመጀመሪያው ሲሞላ ነው. አሁን ያለው የማከማቻ ደረጃ ከተወሰነ የነፃ ቦታ መቶኛ ያነሰ ከሆነ፣ አንድ ቁራጭ መርጠን ወደ ዘገምተኛ ማከማቻ እንወስደዋለን። ወይም ይልቁንስ, ቀርፋፋ አይደለም, ግን የሚከተለው - እንዴት እንዳዘጋጁት.

ሁለተኛው መስፈርት መጠን ነው. እሱ ስለ ትላልቅ ቁርጥራጮች ዝውውር እያወራ ነው። በፈጣን ዲስክ ላይ ባለው ነፃ ቦታ ላይ በመመስረት የመግቢያውን መጠን ማስተካከል ይችላሉ እና ውሂቡ በራስ-ሰር ይፈልሳል።

ተኳኋኝነትን አስቀድሞ ለመፈተሽ ምንም መንገድ ከሌለ ወደ አዲስ የ ClickHouse ስሪቶች እንዴት እንደሚሰደዱ?

ይህ ርዕስ በመደበኛነት ይብራራል በቴሌግራም ውይይት ክሊክ ሃውስ ውስጥ የተለያዩ ስሪቶችን ግምት ውስጥ በማስገባት, እና አሁንም. ከስሪት 19.11 ወደ 19.16 እና ለምሳሌ ከ19.16 ወደ 20.3 ማሻሻል ምን ያህል አስተማማኝ ነው። በማጠሪያው ውስጥ ያለውን ተኳሃኝነት አስቀድመው ማረጋገጥ ሳይችሉ ወደ አዲስ ስሪቶች ለመሄድ ምርጡ መንገድ ምንድነው?

እዚህ ጥቂት ወርቃማ ህጎች አሉ. አንደኛ - changelog አንብብ. ትልቅ ነው፣ ነገር ግን ወደ ኋላ የማይጣጣሙ ለውጦች የተለዩ ነጥቦች አሉ። እነዚህን ነገሮች እንደ ቀይ ባንዲራ አድርገው አይመልከቷቸው። እነዚህ ብዙውን ጊዜ ምናልባት ከማይጠቀሙባቸው አንዳንድ የጠርዝ ተግባራት ጋር የሚዛመዱ ጥቃቅን አለመጣጣሞች ናቸው።

በሁለተኛ ደረጃ, በማጠሪያው ውስጥ ተኳሃኝነትን ለመፈተሽ ምንም መንገድ ከሌለ, እና በምርት ውስጥ ወዲያውኑ ማሻሻል ከፈለጉ, ምክሩ ይህንን ማድረግ አያስፈልግዎትም. መጀመሪያ ማጠሪያ ይፍጠሩ እና ይሞክሩ። የሙከራ አካባቢ ከሌለ ምናልባት በጣም ትልቅ ኩባንያ የለዎትም ማለት ነው ፣ ይህ ማለት አንዳንድ መረጃዎችን ወደ ላፕቶፕዎ መቅዳት እና ሁሉም ነገር በትክክል መስራቱን ያረጋግጡ። እንዲያውም ጥቂት ቅጂዎችን በአገር ውስጥ በማሽንዎ ላይ ማምጣት ይችላሉ። ወይም አዲስ ስሪት በአቅራቢያዎ የሆነ ቦታ ከፍ ማድረግ እና የተወሰነ ውሂብ እዚያ ላይ መስቀል ይችላሉ - ማለትም ያለጊዜው የሙከራ አካባቢ ይፍጠሩ።

ሌላው ደንብ ደግሞ ስሪቱ ከተለቀቀ በኋላ በአንድ ሳምንት ጊዜ ውስጥ ማዘመን አይደለም ምክንያቱም በምርት ውስጥ ያሉ ስህተቶችን በመያዝ እና በቀጣይ ፈጣን ጥገናዎች ምክንያት. ግራ እንዳንገባ የ ClickHouse ሥሪት ቁጥርን እንረዳ።

ስሪት 20.3.4 አለ. ቁጥር 20 የሚያመለክተው የምርት አመት - 2020. ከውስጥ ካለው አንጻር ሲታይ, ይህ ምንም አይደለም, ስለዚህ ለእሱ ትኩረት አንሰጥም. ተጨማሪ - 20.3. ሁለተኛው ቁጥር - በዚህ ሁኔታ 3 - ከአንዳንድ አዲስ ተግባራት ጋር ልቀት በለቀን ቁጥር እንጨምራለን ። አንዳንድ ባህሪን ወደ ClickHouse ማከል ከፈለግን ይህን ቁጥር መጨመር አለብን። ማለትም፣ በስሪት 20.4 ClickHouse በተሻለ ሁኔታ ይሰራል። ሦስተኛው አሃዝ 20.3.4 ነው. እዚህ 4 አዲስ ባህሪያትን ያልጨመርንበት ነገር ግን አንዳንድ ስህተቶችን ያስተካከልንበት የ patch ልቀቶች ቁጥር ነው። 4 ደግሞ አራት ጊዜ አደረግን ማለት ነው።

አስፈሪ ነገር እንዳይመስልህ። ብዙውን ጊዜ ተጠቃሚው የቅርብ ጊዜውን ስሪት መጫን ይችላል እና በዓመት በእረፍት ጊዜ ያለምንም ችግር ይሰራል። ነገር ግን በቻይናውያን ጓዶቻችን የተጨመረው ቢትማፕን ለመስራት በአንዳንድ ተግባራት የተሳሳቱ ክርክሮችን ሲያስተላልፍ አገልጋዩ ይበላሻል ብለው ያስቡ። ይህንን ማስተካከል አለብን። አዲስ የ patch ስሪት እንለቅቃለን እና ClickHouse የበለጠ የተረጋጋ ይሆናል።

እርስዎ በምርት ውስጥ የሚሰሩ ClickHouse ካለዎት እና ተጨማሪ ባህሪያት ጋር ClickHouse አዲስ ስሪት ተለቀቀ - ለምሳሌ, 20.4.1 በጣም የመጀመሪያው ነው, በመጀመሪያው ቀን ላይ ወደ ምርት ለማድረግ አትቸኩሉ. ለምንድነው በፍፁም ያስፈለገችው? ገና ClickHouseን እየተጠቀሙ ካልሆኑ ሊጭኑት ይችላሉ እና ምናልባትም ሁሉም ነገር ደህና ይሆናል። ግን ClickHouse ቀድሞውንም በተረጋጋ ሁኔታ እየሰራ ከሆነ ፣እዚያ ለጥፍ እና ዝመናዎች ይከታተሉ - ምን ችግሮችን እናስተካክላለን።

ኪሪል ሽቫኮቭ: ስለ የሙከራ አካባቢዎች ትንሽ ማከል እፈልጋለሁ። ሁሉም ሰው የፈተና አካባቢዎችን በጣም ይፈራል እና በሆነ ምክንያት በጣም ትልቅ የ ClickHouse ክላስተር ካለዎት የሙከራ አካባቢው ያነሰ ወይም ቢያንስ አስር እጥፍ ያነሰ መሆን አለበት ብለው ያምናሉ። በፍፁም እንደዛ አይደለም።

በምሳሌዬ መናገር እችላለሁ። ፕሮጀክት አለኝ እና ClickHouse አለ። ለእሱ ያለን የሙከራ አካባቢ በሄትዝነር ውስጥ ለሃያ ዩሮ የሚሆን ትንሽ ምናባዊ ማሽን ነው ፣ እዚያም ሁሉም ነገር በተሰማራበት። ይህንን ለማድረግ በ Ansible ውስጥ ሙሉ አውቶማቲክ አለን, እና ስለዚህ በመርህ ደረጃ, የት እንደሚንከባለል ምንም ልዩነት የለም - በብረት አገልጋዮች ላይ ወይም በቨርቹዋል ማሽኖች ውስጥ ማሰማራት.

ምን ሊደረግ ይችላል? በእራስዎ ትንሽ ክላስተር እንዴት ማሰማራት እንደሚቻል በ ClickHouse ዶክመንቶች ውስጥ ምሳሌ ብንሰጥ ጥሩ ይሆናል - በ Docker ፣ in LXC ፣ ምናልባት ሊቻል የሚችል የመጫወቻ መጽሐፍ ይፍጠሩ ፣ ምክንያቱም የተለያዩ ሰዎች የተለያዩ ምደባዎች አሏቸው። ይህ ብዙ ነገሮችን ቀላል ያደርገዋል. በአምስት ደቂቃ ውስጥ ክላስተር ወስደህ ስታሰማራ፣ የሆነ ነገር ለማወቅ መሞከር በጣም ቀላል ነው። በዚህ መንገድ በጣም ምቹ ነው, ምክንያቱም እርስዎ ያልሞከሩትን ስሪት ወደ ምርት ማሽከርከር የትም የማይሄድ መንገድ ነው. አንዳንዴ ይሰራል አንዳንዴ ደግሞ አይሰራም። እናም ለስኬት ተስፋ ማድረግ መጥፎ ነው።

ማክስም ኮቲያኮቭ፣ ከፍተኛ የኋላ መሐንዲስ አቪቶ፡- ለትላልቅ ኩባንያዎች ከተከታታይ ችግሮች ስለ የሙከራ አካባቢዎች ትንሽ እጨምራለሁ. በመረጃ ዕቅዶች እና መቼቶች መሠረት፣ በምርት ላይ ያለው ትክክለኛ ቅጂ፣ የተሟላ የ ClickHouse ተቀባይነት ዘለላ አለን። ይህ ክላስተር በትንሹ ሃብቶች በበሰበሰ ኮንቴይነሮች ውስጥ ተዘርግቷል። በካፍካ ውስጥ ዥረቱን ለመድገም እድሉ ስላለ የተወሰነውን የምርት መረጃን እዚያ እንጽፋለን። ሁሉም ነገር የተመሳሰለ እና የሚለካው እዚያ ነው - ሁለቱም በአቅም እና ፍሰት፣ እና በንድፈ ሀሳብ፣ ሁሉም ሌሎች ነገሮች እኩል ሲሆኑ፣ በመለኪያዎች ልክ እንደ ምርት መሆን አለበት። ሊፈነዳ የሚችል ነገር ሁሉ መጀመሪያ ወደዚህ መቆሚያ ተንከባሎ እስኪዘጋጅ ድረስ ለብዙ ቀናት እዚያ ውስጥ እንዲገባ ይደረጋል። ግን በእርግጥ ይህ መፍትሔ ውድ, ከባድ እና ዜሮ ያልሆኑ የድጋፍ ወጪዎች ናቸው.

አሌክሲ ሚሎቪዶቭ: ከ Yandex.Metrica የጓደኞቻችን የሙከራ አካባቢ ምን እንደሚመስል እነግርዎታለሁ. አንዱ ዘለላ 600 ወይም ከዚያ በላይ አገልጋዮች ነበሯቸው፣ ሌላኛው 360 ነበር፣ እና ሶስተኛ እና ብዙ ዘለላዎች አሉ። የአንደኛው የፈተና አካባቢ በእያንዳንዳቸው ሁለት ቅጂዎች ያሉት ሁለት ጥራጊዎች ብቻ ናቸው. ለምን ሁለት ቁርጥራጮች? ብቻውን ላለመሆን። እና ቅጂዎች, በጣም, መሆን. እርስዎ ሊገዙት የሚችሉት አነስተኛ መጠን።

ይህ የፍተሻ አካባቢ የጥያቄዎችን ጤና እና የሆነ ነገር በትልቁ እንደተሰበረ እንዲፈትሹ ያስችልዎታል። ነገር ግን ብዙውን ጊዜ ችግሮች ሙሉ ለሙሉ የተለየ ተፈጥሮ ይነሳሉ, ሁሉም ነገር ሲሰራ, ነገር ግን በጭነቱ ላይ አንዳንድ ጥቃቅን ለውጦች አሉ.

አንድ ምሳሌ እሰጥሃለሁ። አዲስ የ ClickHouse ስሪት ለመጫን ወስነናል። በሙከራ አካባቢ ላይ ተዘርግቷል, ራስ-ሰር ሙከራዎች በ Yandex.Metrica እራሱ ውስጥ ያልፋሉ, ይህም በአሮጌው ስሪት እና በአዲሱ ላይ ያለውን መረጃ በማነፃፀር ሙሉውን የቧንቧ መስመር ይሠራል. እና በእርግጥ የእኛ የ CI አረንጓዴ ሙከራዎች። ያለበለዚያ፣ ይህን እትም እንኳ አንቀርም ነበር።

ሁሉ ነገር ጥሩ ነው. ወደ ምርት መሸጋገር እንጀምራለን. ጭነቱ በግራፍዎቹ ላይ ብዙ ጊዜ እንደጨመረ መልእክት ደርሰኛል። ስሪቱን ወደ ኋላ እያንከባለልን ነው። ግራፉን ተመለከትኩ እና አየሁ፡ ጭነቱ በታቀደው ጊዜ ብዙ ጊዜ ጨምሯል፣ እና ሲገለበጥ ወደ ኋላ ቀንሷል። ከዚያም ስሪቱን ወደ ኋላ መመለስ ጀመርን. እና ጭነቱ በተመሳሳይ መንገድ ጨምሯል እና በተመሳሳይ መንገድ ወደ ኋላ ወደቀ። ስለዚህ መደምደሚያው ይህ ነው - ጭነቱ ከስሌቱ ጋር ተያይዞ ጨምሯል, ምንም አያስደንቅም.

ከዚያ በኋላ አዲሱን ስሪት እንዲጭኑ ባልደረቦች ማሳመን አስቸጋሪ ነበር. እላለሁ፡- “ምንም አይደለም፣ ያውጡ። ጣቶችዎን ይለፉ, ሁሉም ነገር ይሰራል. አሁን ጭነቱ በገበታዎቹ ላይ ጨምሯል, ነገር ግን ሁሉም ነገር ጥሩ ነው. ቆይ አንዴ." በአጠቃላይ, ይህንን አደረግን, እና ያ ነው - ስሪቱ በምርት ቦታው ላይ ተለጠፈ. ግን በእያንዳንዱ ስሌት ማለት ይቻላል ተመሳሳይ ችግሮች ይነሳሉ.

የግድያ ጥያቄ መጠይቆችን መግደል አለበት፣ ግን አያደርገውም። ለምን?

አንድ ተጠቃሚ ወደ እኔ መጣ፣ አንድ ዓይነት ተንታኝ፣ እና የተወሰነ ጥያቄ ፈጠረ፣ እሱም የእኔን ClickHouse ክላስተር አስቀመጠ። አንዳንድ መስቀለኛ መንገድ ወይም አንድ ሙሉ ዘለላ፣ ጥያቄው በየትኛው ቅጂ ወይም ቁርጥራጭ ላይ በመመስረት። በዚህ አገልጋይ ላይ ያሉት ሁሉም የሲፒዩ ምንጮች በመደርደሪያው ውስጥ እንዳሉ አይቻለሁ፣ ሁሉም ነገር ቀይ ነው። በተመሳሳይ ጊዜ, ClickHouse ራሱ ለጥያቄዎች ምላሽ ይሰጣል. እኔም እጽፋለሁ: "እባክዎ የሂደቱን ዝርዝር አሳዩኝ, ይህም ጥያቄ ይህን እብደት የፈጠረ ነው."

ይህን ጥያቄ አግኝቼ ግድያ ጻፍኩት። እና ምንም ነገር እንዳልተፈጠረ አይቻለሁ. የእኔ አገልጋይ በመደርደሪያው ውስጥ ነው ፣ ClickHouse አንዳንድ ትዕዛዞችን ይሰጠኛል ፣ አገልጋዩ በሕይወት እንዳለ ያሳያል ፣ እና ሁሉም ነገር ደህና ነው። ነገር ግን በሁሉም የተጠቃሚ ጥያቄዎች ውስጥ ዝቅጠት አለኝ፣ በ ClickHouse ውስጥ መግባቱ መበስበስ ይጀምራል፣ እና ግድያ ጥያቄዬ አይሰራም። ለምን? ግድያ መጠይቆችን መግደል የነበረበት መስሎኝ ነበር፣ ግን አያደርገውም።

አሁን በጣም እንግዳ የሆነ መልስ ይኖራል. ቁም ነገሩ ግድያ ጥያቄን አይገድልም።

የግድያ መጠይቅ "ይህ መጠይቅ እንዲገደል እፈልጋለሁ" የሚል ትንሽ አመልካች ሳጥን ያስቀምጣል። እና ጥያቄው ራሱ፣ እያንዳንዱን ብሎክ ሲሰራ፣ ይህንን ባንዲራ ይመለከታል። ከተዋቀረ ጥያቄው መስራት ያቆማል። ማንም ሰው ጥያቄውን እንደማይገድለው ታወቀ, እሱ ራሱ ሁሉንም ነገር መፈተሽ እና ማቆም አለበት. እና ይህ ጥያቄው በአግድ ሂደት ውስጥ በሚሆንበት በሁሉም ሁኔታዎች ውስጥ መስራት አለበት. የሚቀጥለውን የውሂብ ብሎክ ያስኬዳል፣ ባንዲራውን ይፈትሻል እና ያቆማል።

በአንዳንድ ክዋኔዎች ላይ ጥያቄው በታገደበት ጊዜ ይህ አይሰራም። እውነት ነው ፣ ይህ ምናልባት የእርስዎ ጉዳይ አይደለም ፣ ምክንያቱም እርስዎ እንደሚሉት ፣ ብዙ የአገልጋይ ሀብቶችን ይጠቀማል። ይህ በውጫዊ መደርደር እና በሌሎች አንዳንድ ዝርዝሮች ላይ የማይሰራ ሊሆን ይችላል. ግን በአጠቃላይ ይህ መሆን የለበትም, ይህ ስህተት ነው. እና የምመክረው ብቸኛው ነገር ClickHouseን ማዘመን ነው።

በንባብ ጭነት ውስጥ የምላሽ ጊዜን እንዴት ማስላት ይቻላል?

የንጥል ስብስቦችን የሚያከማች ጠረጴዛ አለ - የተለያዩ ቆጣሪዎች. የመስመሮች ብዛት አንድ መቶ ሚሊዮን ያህል ነው. በ 1K እቃዎች ላይ 1K RPS ካፈሰሱ ሊገመት በሚችል የምላሽ ጊዜ ላይ መቁጠር ይቻላል?

በዐውደ-ጽሑፉ በመመዘን, ስለ አንድ የንባብ ጭነት እየተነጋገርን ነው, ምክንያቱም በመጻፍ ላይ ምንም ችግሮች ስለሌለ - ቢያንስ አንድ ሺህ, ቢያንስ አንድ መቶ ሺህ, እና አንዳንድ ጊዜ በርካታ ሚሊዮን መስመሮችን ማስገባት ይቻላል.

የማንበብ ጥያቄዎች በጣም የተለያዩ ናቸው። በ 1 ምረጥ ውስጥ ፣ ClickHouse በሴኮንድ በአስር ሺዎች የሚቆጠሩ ጥያቄዎችን ማከናወን ይችላል ፣ ስለዚህ የአንድ ቁልፍ ጥያቄ እንኳን አንዳንድ ሀብቶችን ይፈልጋል። እና እንደዚህ ያሉ የነጥብ መጠይቆች ከአንዳንድ የቁልፍ እሴት የውሂብ ጎታዎች የበለጠ አስቸጋሪ ይሆናሉ, ምክንያቱም ለእያንዳንዱ ንባብ የመረጃውን እገዳ በመረጃ ጠቋሚ ማንበብ አስፈላጊ ነው. የእኛ መረጃ ጠቋሚ እያንዳንዱን መዝገብ አይመለከትም, ግን እያንዳንዱን ክልል. ያም ማለት ሙሉውን ክልል ማንበብ አለብዎት - እነዚህ በነባሪ 8192 መስመሮች ናቸው. እና የተጨመቀውን የዳታ ማገጃ ከ 64 ኪ.ባ ወደ 1 ሜባ መፍታት አለብዎት. በተለምዶ እንደዚህ ያሉ የነጥብ መጠይቆች ከጥቂት ሚሊሰከንዶች ይወስዳሉ። ግን ይህ በጣም ቀላሉ አማራጭ ነው.

እስቲ አንዳንድ ቀላል አርቲሜቲክን እንሞክር። ጥቂት ሚሊሰከንዶችን በሺህ ካባዙት ጥቂት ሰከንዶች ያገኛሉ። በሴኮንድ አንድ ሺህ ጥያቄዎችን ማቆየት የማይቻል ይመስል ፣ ግን በእውነቱ ይቻላል ፣ ምክንያቱም ብዙ ፕሮሰሰር ኮሮች አሉን። ስለዚህ, በመርህ ደረጃ, 1000 RPS ClickHouse አንዳንድ ጊዜ ሊይዝ ይችላል, ነገር ግን በአጫጭር ጥያቄዎች, ማለትም ነጥቦች.

የ ClickHouse ክላስተርን በቀላል ጥያቄዎች ብዛት ማመጣጠን ከፈለጉ ቀላሉን ነገር እመክራለሁ - የተባዙ ብዛት ይጨምሩ እና ጥያቄዎችን ወደ የዘፈቀደ ቅጂ ይላኩ። አንድ ቅጂ በሴኮንድ አምስት መቶ ጥያቄዎችን ከያዘ ፣ ይህ ሙሉ በሙሉ እውን ከሆነ ፣ ከዚያ ሶስት ቅጂዎች አንድ ሺህ ተኩል ይይዛሉ።

አንዳንድ ጊዜ፣ በእርግጥ፣ ለከፍተኛው የነጥብ ንባቦች ብዛት ClickHouseን ማዋቀር ይችላሉ። ለዚህ ምን ያስፈልጋል? የመጀመሪያው የጠቋሚውን ጥራጥሬ መቀነስ ነው. በተመሳሳይ ጊዜ, ወደ አንድ መቀነስ የለበትም, ነገር ግን በመረጃ ጠቋሚው ውስጥ ያሉት መዝገቦች ብዛት በአንድ አገልጋይ ብዙ ሚሊዮን ወይም በአስር ሚሊዮኖች የሚቆጠሩ ይሆናሉ. ሠንጠረዡ አንድ መቶ ሚሊዮን ረድፎች ካሉት, 64 እንደ ጥራጥሬነት ሊዘጋጅ ይችላል.

የታመቀውን እገዳ መጠን መቀነስ ይችላሉ. ለዚህ ቅንጅቶች አሉ። ደቂቃ compress የማገጃ መጠን, max compress block መጠን. እነሱን መቀነስ፣ ውሂብን እንደገና መጫን ትችላለህ፣ እና ከዚያ የነጥብ መጠይቆች ፈጣን ይሆናሉ። ግን አሁንም ፣ ClickHouse ቁልፍ እሴት የውሂብ ጎታ አይደለም። ብዙ ቁጥር ያላቸው ትናንሽ ጥያቄዎች የጭነት ፀረ-ንድፍ ነው.

ኪሪል ሽቫኮቭ: ተራ የሂሳብ ባለሙያዎች ካሉ ምክር እሰጣለሁ. በ ClickHouse ውስጥ አንድ ዓይነት ቆጣሪ ሲከማች ይህ ትክክለኛ መደበኛ ሁኔታ ነው። ተጠቃሚ አለኝ፣ እሱ ከእንደዚህ አይነት እና ከእንደዚህ አይነት ሀገር ነው፣ ሌላ ሶስተኛ መስክ ነው፣ እና የሆነ ነገር መጨመር አለብኝ። MySQL ውሰድ ፣ ልዩ ቁልፍ አድርግ - በ MySQL ውስጥ የተባዛ ቁልፍ ነው ፣ እና በ PostgreSQL ውስጥ ግጭት ነው - እና የመደመር ምልክት ጨምር። ይህ በጣም በተሻለ ሁኔታ ይሰራል.

ትንሽ ውሂብ ሲኖርዎት, ClickHouseን ለመጠቀም ብዙ ፋይዳ የለውም. መደበኛ የውሂብ ጎታዎች አሉ, እና ጥሩ ስራ ይሰራሉ.

ተጨማሪ ውሂብ በመሸጎጫ ውስጥ እንዲኖር በ ClickHouse ውስጥ ምን ማስተካከል አለበት?

ሁኔታውን በዓይነ ሕሊናህ እናስብ - አገልጋዮቹ 256 ጊባ ራም አላቸው ፣ በዕለት ተዕለት እንቅስቃሴው ClickHouse ከ60-80 ጊባ ይወስዳል ፣ በከፍታ - እስከ 130. ምን ማንቃት እና ማስተካከል ይቻላል ፣ ስለሆነም ተጨማሪ መረጃ በመሸጎጫ ውስጥ እና ፣ በዚህ መሠረት። ወደ ዲስኩ ያነሱ ጉዞዎች አሉ?

እንደ አንድ ደንብ, የስርዓተ ክወናው ገጽ መሸጎጫ ለዚህ ተግባር ጥሩ ስራ ይሰራል. ከላይ ብቻ ከከፈትክ እዚያ የተሸጎጠ ወይም ነጻ ተመልከት - ምን ያህል እንደተሸጎጠም ይናገራል - ከዚያ ሁሉም ነፃ ማህደረ ትውስታ ለመሸጎጫ ጥቅም ላይ እንደሚውል ማየት ትችላለህ። እና ይህን ውሂብ በሚያነቡበት ጊዜ, ከዲስክ አይነበብም, ግን ከ RAM. በተመሳሳይ ጊዜ, መሸጎጫው ውጤታማ በሆነ መንገድ ጥቅም ላይ ይውላል ማለት እችላለሁ, ምክንያቱም የተጨመቀው መረጃ ነው.

ነገር ግን አንዳንድ ቀላል መጠይቆችን የበለጠ ለማፋጠን ከፈለጉ በ ClickHouse ውስጥ ባለው የተጨመቀ ዳታ ውስጥ መሸጎጫ ማንቃት ይቻላል። ይባላል ያልተጨመቀ መሸጎጫ. በ config.xml ውቅረት ፋይል ውስጥ ያልተጨመቀውን የመሸጎጫ መጠን ወደሚፈልጉት እሴት ያዘጋጁ - ከነፃው RAM ውስጥ ከግማሽ በላይ እንዳይሆን እመክራለሁ ፣ ምክንያቱም የተቀረው በገጹ መሸጎጫ ስር ይሄዳል።

በተጨማሪም, ሁለት የጥያቄ ደረጃ ቅንብሮች አሉ. የመጀመሪያ አቀማመጥ- ያልተጨመቀ መሸጎጫ ይጠቀሙ - አጠቃቀሙን ያካትታል. ሁሉንም መረጃዎች ማንበብ እና ይህን መሸጎጫ ማጽዳት ከሚችሉ ከባድ ካልሆነ በስተቀር ለሁሉም ጥያቄዎች እንዲሰራ ይመከራል። እና ሁለተኛው መቼት መሸጎጫውን ለመጠቀም እንደ ከፍተኛው የመስመሮች ብዛት ነው። ትላልቅ ጥያቄዎችን መሸጎጫውን እንዲያልፉ በራስ-ሰር ይገድባል።

በ RAM ውስጥ የማከማቻ_ውቅረትን እንዴት ማዋቀር እችላለሁ?

በአዲሱ የ ClickHouse ሰነድ ውስጥ, ተዛማጅ የሆነውን ክፍል አንብቤያለሁ ከመረጃ ማከማቻ ጋር. በማብራሪያው ውስጥ ፈጣን SSD ያለው ምሳሌ አለ.

በድምጽ ሙቅ ማህደረ ትውስታ ተመሳሳይውን እንዴት ማዋቀር እንደሚችሉ አስባለሁ። እና አንድ ተጨማሪ ጥያቄ. ከዚህ የመረጃ ድርጅት ጋር እንዴት እንደሚሠራ ፣ ሙሉውን ስብስብ ያነባል ወይንስ በዲስክ ላይ ያለውን ብቻ ፣ እና ይህ መረጃ በማህደረ ትውስታ ውስጥ ተጨምቆ ነው? እና የቅድመ ቦታው ክፍል በእንደዚህ ዓይነት የመረጃ ድርጅት ላይ እንዴት እንደሚሰራ?

ይህ ቅንብር የውሂብ ቁርጥራጮች ማከማቻ ላይ ተጽዕኖ ያሳድራል፣ እና ቅርጻቸው በምንም መልኩ አይቀየርም።
እስቲ ጠለቅ ብለን እንመርምር።

በ RAM ውስጥ የውሂብ ማከማቻ ማዘጋጀት ይችላሉ. ለዲስክ የተዋቀረው ሁሉ መንገዱ ነው። በፋይል ስርዓቱ ውስጥ በሆነ መንገድ ላይ የተጫነ tmpfs ክፍልፍል ይፈጥራሉ። ለሞቃታማው ክፍልፍል እንደ የመረጃ ማከማቻ መንገድ ይህንን መንገድ ይግለጹ ፣ የውሂብ ቁርጥራጮች መምጣት ይጀምራሉ እና እዚያ ይፃፉ ፣ ሁሉም ነገር ጥሩ ነው።

ነገር ግን በአነስተኛ አስተማማኝነት ምክንያት ይህን እንዲያደርጉ አልመክርም, ምንም እንኳን በተለያዩ የመረጃ ማእከሎች ውስጥ ቢያንስ ሶስት ቅጂዎች ካሉ, ከዚያ ይችላሉ. ከሆነ ውሂቡ ወደነበረበት ይመለሳል። አገልጋዩ በድንገት ጠፍቶ ተመልሶ እንደበራ አስቡት። ክፍሉ እንደገና ተጭኗል, ነገር ግን ባዶነት አለ. በሚነሳበት ጊዜ የ ClickHouse አገልጋይ እነዚህ ቁርጥራጮች እንደጠፉ ያያሉ ፣ ምንም እንኳን በ ZooKeeper ሜታዳታ መሠረት ፣ እነሱ መሆን አለባቸው። በየትኞቹ ቅጂዎች እንዳሉ ይመለከታል፣ ጠይቆ ያወርዳቸዋል። ስለዚህ, ውሂቡ ወደነበረበት ይመለሳል.

ከዚህ አንጻር መረጃን በ RAM ውስጥ ማከማቸት በዲስክ ላይ ከማስቀመጥ በመሠረቱ የተለየ አይደለም ምክንያቱም መረጃው ወደ ዲስክ ሲጻፍ በመጀመሪያ በገጹ መሸጎጫ ውስጥ ይወድቃሉ እና በኋላ በአካል ይፃፋሉ. የፋይል ስርዓቱ እንዴት እንደሚሰቀል ይወሰናል. ግን እንደዚያ ከሆነ ፣ ClickHouse በመግቢያው ላይ አይመሳሰልም እላለሁ።

በዚህ አጋጣሚ በ RAM ውስጥ ያለው መረጃ ልክ በዲስክ ላይ ባለው ተመሳሳይ ቅርጸት ይከማቻል. የመምረጥ መጠይቁ በተመሳሳይ መንገድ የሚነበቡትን ቁርጥራጮች ይመርጣል, አስፈላጊዎቹን የውሂብ ክልሎች በክፍል ውስጥ ይመርጣል እና ያነባቸዋል. እና ውሂቡ በ RAMም ሆነ በዲስክ ላይ ምንም ይሁን ምን ቅድመ ቦታ በትክክል ተመሳሳይ ነው የሚሰራው።

ዝቅተኛ ካርዲናሊቲ እስከ ምን ያህል ልዩ እሴቶች ውጤታማ ነው?

ዝቅተኛ ካርዲናሊቲ አስቸጋሪ ነው። የውሂብ መዝገበ-ቃላትን ያጠናቅራል, ግን አካባቢያዊ ናቸው. በመጀመሪያ ፣ መዝገበ-ቃላቱ ለእያንዳንዱ ክፍል የተለያዩ ናቸው ፣ እና ሁለተኛ ፣ በአንድ ክፍል ውስጥ እንኳን ለእያንዳንዱ ክልል ሊለያዩ ይችላሉ። የልዩ እሴቶች ብዛት ደረጃ ላይ ሲደርስ - አንድ ሚሊዮን ፣ እንደማስበው - መዝገበ ቃላቱ በቀላሉ ወደ ጎን ተቀምጧል እና አዲስ ተፈጠረ።

መልሱ በአጠቃላይ ነው: ለእያንዳንዱ የአካባቢ ክልል - ይበሉ, ለእያንዳንዱ ቀን - እስከ አንድ ሚሊዮን የሚደርሱ ልዩ እሴቶች, ዝቅተኛ ካርዲናሊቲ ውጤታማ ነው. ከዚያ በኋላ፣ አንድ ብቻ ሳይሆን ብዙ የተለያዩ መዝገበ-ቃላት ጥቅም ላይ የሚውሉበት ውድቀት ብቻ ይኖራል። ልክ እንደ የሕብረቁምፊ አይነት መደበኛ አምድ በተመሳሳይ መልኩ ይሰራል፣ ምናልባት ትንሽ ቅልጥፍና ያለው ሊሆን ይችላል፣ ነገር ግን ምንም አይነት ከባድ የአፈጻጸም ውድቀት አይኖርም።

አምስት ቢሊዮን ረድፎች ባለው ጠረጴዛ ላይ ለሙሉ ጽሑፍ ፍለጋ ምን ዓይነት ምርጥ ልምዶች አሉ?

የተለያዩ መልሶች አሉ። የመጀመሪያው ClickHouse ሙሉ የጽሑፍ ፍለጋ ሞተር አይደለም ማለት ነው። ለዚህ ልዩ ስርዓቶች አሉ, ለምሳሌ, Elasticsearch и ሰፊኒክስ. ሆኖም፣ ከ Elasticsearch ወደ ClickHouse እየተንቀሳቀሰ ነው የሚሉ ሰዎች እየበዙ አይቻለሁ።

ይህ ለምን እየሆነ ነው? ይህንን ያብራሩት Elasticsearch ከግንባታ ኢንዴክሶች ጀምሮ በአንዳንድ ጥራዞች ላይ ያለውን ሸክም መቋቋም በማቆሙ ነው። ኢንዴክሶች በጣም አስቸጋሪ ይሆናሉ፣ እና በቀላሉ ውሂቡን ወደ ClickHouse ካስተላለፏቸው በድምጽ መጠን ብዙ ጊዜ በብቃት ተከማችተዋል። በተመሳሳይ ጊዜ, የፍለጋ መጠይቆች ብዙውን ጊዜ እንደዚህ አይነት አልነበሩም, ስለ ሞርፎሎጂ ግምት ውስጥ በማስገባት በጠቅላላው የውሂብ መጠን ውስጥ አንዳንድ ሐረጎችን ማግኘት አስፈላጊ ነበር, ነገር ግን ሙሉ ለሙሉ የተለያዩ ናቸው. ለምሳሌ፣ ለአንዳንድ ተከታይ ባይት የመጨረሻዎቹን ሰዓታት በምዝግብ ማስታወሻዎች ውስጥ ለማግኘት።

በዚህ አጋጣሚ, በ ClickHouse ውስጥ ኢንዴክስ ይፈጥራሉ, የመጀመሪያው መስክ በጊዜ ውስጥ ያለው ቀን ይሆናል. እና ትልቁ የውሂብ መቆራረጥ በትክክል ለቀኑ ክልል ይሆናል። በተመረጠው የቀን ክልል ውስጥ፣ እንደ ደንቡ፣ እንደ መውደድን በመጠቀም የብሩት ሃይል ዘዴን እንኳን በመጠቀም የሙሉ ጽሑፍ ፍለጋ ማድረግ ይቻላል። በ ClickHouse ውስጥ ያለው ተመሳሳይ መግለጫ እርስዎ ሊያገኙት ከሚችሉት በጣም ቀልጣፋ መግለጫ ነው። የተሻለ ካገኘህ ንገረኝ።

ግን አሁንም ፣ ልክ እንደ ሙሉ ቅኝት ነው። እና ሙሉ ቅኝት በሲፒዩ ላይ ብቻ ሳይሆን በዲስክ ላይም ቀርፋፋ ሊሆን ይችላል። በድንገት በቀን አንድ ቴራባይት ዳታ ካለህ እና በቀን ውስጥ አንድ ቃል የምትፈልግ ከሆነ ቴራባይት መቃኘት አለብህ። እና ምናልባት በተለመደው ሃርድ ድራይቮች ላይ ነው, እና በዚህ ምክንያት በ SSH በኩል ወደዚህ አገልጋይ እንዳይገቡ በሚያስችል መንገድ ይጫናሉ.

በዚህ አጋጣሚ አንድ ተጨማሪ ትንሽ ብልሃትን ለማቅረብ ዝግጁ ነኝ። ከሙከራ ምድብ ነው - ሊሠራ ይችላል, ወይም ላይሆን ይችላል. ClickHouse በትሪግራም አበባ ማጣሪያዎች መልክ የሙሉ ጽሑፍ ኢንዴክሶች አሉት። በአሬናዳታ ያሉ ባልደረቦቻችን እነዚህን ኢንዴክሶች ሞክረው ነበር፣ እና ብዙ ጊዜ በትክክል እንደታሰበው ይሰራሉ።

እነሱን በትክክል ለመጠቀም በትክክል እንዴት እንደሚሠሩ ጥሩ ግንዛቤ ሊኖርዎት ይገባል-የ trigram bloom filter ምን እንደሆነ እና መጠኑን እንዴት እንደሚመርጡ። ለአንዳንድ ብርቅዬ ሀረጎች፣ በመረጃው ውስጥ ብዙም የማይገኙ ንዑስ ሕብረቁምፊዎች ላይ ለሚጠየቁ ጥያቄዎች ይረዳሉ ማለት እችላለሁ። በዚህ አጋጣሚ ንዑስ ክፍሎች በመረጃ ጠቋሚዎች ይመረጣሉ, እና ያነሰ ውሂብ ይነበባል.

ClickHouse በቅርቡ ለሙሉ ጽሑፍ ፍለጋ የላቁ ባህሪያትን አክሏል። ይህ፣ በመጀመሪያ፣ በአንድ ማለፊያ ውስጥ የንዑስ ሕብረቁምፊዎች ስብስብ ፍለጋ፣ ለጉዳይ ሚስጥራዊነት፣ ለጉዳይ የማይሰማ፣ በUTF-8 የሚደገፍ፣ ወይም ASCII-ብቻ አማራጮችን ይጨምራል። የሚፈልጉትን በጣም ቀልጣፋ ይምረጡ።

በአንድ ማለፊያ ውስጥ ብዙ መደበኛ አገላለጾችን ፍለጋም ነበር። X እንደ አንድ ንዑስ ሕብረቁምፊ ወይም X እንደ ሌላ ንዑስ ሕብረቁምፊ መጻፍ አያስፈልግዎትም። ወዲያውኑ ይፃፉ, እና ሁሉም ነገር በተቻለ መጠን በብቃት ይከናወናል.

በሶስተኛ ደረጃ፣ አሁን ለ regexps ግምታዊ ፍለጋ እና የንዑስ ሕብረቁምፊዎች ግምታዊ ፍለጋ አለ። አንድ ሰው በትየባ የጻፈ ከሆነ ከፍተኛውን ተዛማጅ ለማግኘት ይፈለጋል።

ለብዙ ተጠቃሚዎች የ ClickHouse መዳረሻን ለማደራጀት ምርጡ መንገድ ምንድነው?

ለብዙ ሸማቾች እና ተንታኞች ተደራሽነትን እንዴት ማደራጀት እንደሚቻል ንገረን። ወረፋ እንዴት እንደሚፈጠር፣ ለከፍተኛው በአንድ ጊዜ መጠይቆችን ቅድሚያ መስጠት እና በምን መሳሪያዎች?

ክላስተር በቂ መጠን ያለው ከሆነ, ጥሩ መፍትሄ ሁለት ተጨማሪ አገልጋዮችን ማሳደግ ነው, ይህም ለተንታኞች መግቢያ ይሆናል. ማለትም፣ ተንታኞችን ወደ ተወሰኑ የክላስተር ሻርዶች አትፍቀድ፣ ነገር ግን በቀላሉ ሁለት ባዶ አገልጋዮችን ይፍጠሩ፣ ያለ ውሂብ እና አስቀድመው የመዳረሻ መብቶችን በእነሱ ላይ ያዘጋጁ። በተመሳሳይ ጊዜ የተጠቃሚ ቅንብሮች በተከፋፈሉ ጥያቄዎች ጊዜ ወደ የርቀት አገልጋዮች ይተላለፋሉ። ያም ማለት በእነዚህ ሁለት አገልጋዮች ላይ ሁሉንም ነገር ያዋቅራሉ, እና ቅንብሮቹ በመላው ክላስተር ላይ ተጽእኖ ይኖራቸዋል.

በመርህ ደረጃ, እነዚህ አገልጋዮች ውሂብ የሌላቸው ናቸው, ነገር ግን በእነሱ ላይ ያለው የ RAM መጠን ጥያቄዎችን ለማስፈጸም በጣም አስፈላጊ ነው. ውጫዊ ውህደት ወይም ውጫዊ መደርደር ከነቃ ዲስክ ለጊዜያዊ መረጃም ሊያገለግል ይችላል።

ከሁሉም ሊሆኑ ከሚችሉ ገደቦች ጋር የተቆራኙትን መቼቶች መመልከት አስፈላጊ ነው. አሁን ወደ Yandex.Metrics ክላስተር እንደ ተንታኝ ብሄድ እና ጥያቄ ካዘጋጀሁ ከተመቶች ውስጥ ቆጠራን ይምረጡ, ከዚያም ወዲያውኑ ጥያቄውን ማሟላት የማልችል ልዩ ሁኔታ ይሰጠኛል. እንድቃኝ የሚፈቀድልኝ ከፍተኛው የረድፎች ብዛት አንድ መቶ ቢሊዮን ነው፣ እና በአጠቃላይ በአንድ ጠረጴዛ ላይ በክላስተር ላይ ሃምሳ ትሪሊዮን አለ። ይህ የመጀመሪያው ገደብ ነው.

በረድፎች ብዛት ላይ ያለውን ገደብ አስወግዳለሁ እና ጥያቄውን እንደገና አሂድ እንበል። ከዚያ የሚከተለውን ልዩ ሁኔታ አያለሁ - ቅንብሩ ነቅቷል የግዳጅ መረጃ ጠቋሚ በቀን. የቀን ክልል ካልገለጽኩ መጠይቁን ማስኬድ አልችልም። በእጅ ለማስገባት በተንታኞች ላይ መተማመን አያስፈልግም። የተለመደ ጉዳይ - የቀን ክልል የተፃፈው የክስተት ቀን በሳምንት መካከል በሚሆንበት ጊዜ ነው። እና ከዚያ እዚያ ቅንፍ አልገለጹም፣ እና በምትኩ እና ወደ ወይም - ወይም URL ተዛማጅ ሆኖ ተገኘ። ገደብ ከሌለ የዩአርኤል አምዱን ይጎበኛል እና ብዙ ሃብቶችን ያባክናል።

በተጨማሪም, ClickHouse ሁለት ቅድሚያ ቅንጅቶች አሉት. በሚያሳዝን ሁኔታ, እነሱ በጣም ጥንታዊ ናቸው. አንዱ በቀላሉ ይባላል ቅድሚያ. ቅድሚያ ≠ 0 እና አንዳንድ ቅድሚያ የሚሰጣቸው ጥያቄዎች ከተፈፀሙ ነገር ግን የቅድሚያ ዋጋ ያለው ጥያቄ ዝቅተኛ ማለትም ከፍተኛ ቅድሚያ የሚሰጠው ጥያቄ ከተፈፀመ ቅድሚያ የሚሰጠው ጥያቄ ከቀዳሚ እሴት ይበልጣል ይህም ማለት ዝቅተኛ ቅድሚያ የሚሰጠው ነው. በቀላሉ ታግዷል እና በዚህ ጊዜ ውስጥ ምንም አይሰራም.

ይህ በጣም አስቸጋሪ ሁኔታ ነው እና በክላስተር ላይ የማያቋርጥ ጭነት በሚኖርበት ጊዜ ተስማሚ አይደለም. ነገር ግን አስፈላጊ የሆኑ አጭር፣ ግፊት ጥያቄዎች ካሉዎት እና ክላስተር በአብዛኛው ስራ ፈት ከሆነ ይህ ቅንብር ይሰራል።

የሚቀጥለው የቅድሚያ ቅንብር ይባላል የስርዓተ ክወና ክር ቅድሚያ. በቀላሉ ሁሉንም የጥያቄ ማስፈጸሚያ ክሮች ለሊኑክስ መርሐግብር አውጪው ጥሩ እሴት ያጋልጣል። እሱ እንዲሁ ይሠራል ፣ ግን አሁንም ይሠራል። አነስተኛውን ጥሩ እሴት ካዘጋጁ - ትልቁ እሴት ነው፣ እና ዝቅተኛው ቅድሚያ - እና ለከፍተኛ ቅድሚያ ለሚሰጡ ጥያቄዎች -19 ካዘጋጁ፣ ሲፒዩ ዝቅተኛ ቅድሚያ የሚሰጣቸውን ከከፍተኛ ቅድሚያ ከሚሰጣቸው አራት እጥፍ ያነሰ ይወስዳል።

እንዲሁም ከፍተኛውን የመጠይቅ ማስፈጸሚያ ጊዜ ማዘጋጀት ያስፈልግዎታል - ይበሉ ፣ አምስት ደቂቃዎች። ዝቅተኛው የጥያቄ አፈፃፀም ፍጥነት በጣም ጥሩው ነገር ነው። ይህ ቅንብር ከረጅም ጊዜ በፊት ቆይቷል፣ እና ClickHouse እንደማይዘገይ ለማረጋገጥ ብቻ ሳይሆን እሱን ለማስገደድ ያስፈልጋል።

እያዋቀሩ እንደሆነ አስብ፡ መጠይቅ በሰከንድ ከአንድ ሚሊዮን ረድፎችን ካነሰ ይህን ማድረግ አትችልም። ይህ መልካም ስማችንን፣ ጥሩ የመረጃ ቋታችንን ያዋርዳል። ዝም ብለን እንከልከል። በእውነቱ ሁለት ቅንብሮች አሉ። አንዱ ይባላል አነስተኛ የማስፈጸሚያ ፍጥነት - በሰከንድ በመስመሮች ውስጥ ፣ እና ሁለተኛው የአፈፃፀም ፍጥነትን ከመፈተሽ በፊት ጊዜ ማብቂያ ይባላል - በነባሪ አስራ አምስት ሰከንዶች። ማለትም ፣ አስራ አምስት ሰከንዶች ይቻላል ፣ እና ከዚያ ፣ በቀስታ ከሆነ ፣ ከዚያ ልዩ ሁኔታን ብቻ ይጣሉ - ጥያቄውን ያስወግዱ።

እንዲሁም ኮታዎችን ማዘጋጀት ያስፈልግዎታል. ClickHouse የሃብት ፍጆታን የሚቆጥር አብሮ የተሰራ የኮታ ባህሪ አለው። ግን እንደ አለመታደል ሆኖ እንደ ሲፒዩ ፣ ዲስኮች ያሉ የብረት ሀብቶች አይደሉም ፣ ግን ሎጂካዊ - የተጠናቀቁ ጥያቄዎች ፣ መስመሮች እና ባይቶች ብዛት። እና ለምሳሌ, ቢበዛ አንድ መቶ ጥያቄዎችን በአምስት ደቂቃዎች ውስጥ እና በሰዓት አንድ ሺህ ጥያቄዎችን ማዘጋጀት ይችላሉ.

ለምን አስፈላጊ ነው? ምክንያቱም አንዳንድ የትንታኔ ጥያቄዎች በቀጥታ ከ ClickHouse ደንበኛ በእጅ ይከናወናሉ። እና ሁሉም ነገር ደህና ይሆናል. ነገር ግን በድርጅትዎ ውስጥ የላቁ ተንታኞች ካሉ፣ ስክሪፕት ይጽፋሉ፣ እና በስክሪፕቱ ላይ ስህተት ሊኖር ይችላል። እና ይህ ስህተት ጥያቄው ማለቂያ በሌለው ዑደት ውስጥ እንዲፈፀም ያደርገዋል። ይህ ነው መጠበቅ ያለበት።

የአንድ ጥያቄን ውጤት ለአስር ደንበኞች መስጠት ይቻላል?

በተመሳሳይ ጊዜ በጣም ትልቅ ጥያቄዎችን ይዘው መምጣት የሚፈልጉ ብዙ ተጠቃሚዎች አሉን። ጥያቄው ትልቅ ነው, በመርህ ደረጃ በፍጥነት ይፈጸማል, ነገር ግን ብዙ እንደዚህ ያሉ ጥያቄዎች በተመሳሳይ ጊዜ በመኖራቸው ምክንያት, በጣም ያማል. በተከታታይ አሥር ጊዜ የደረሰውን ተመሳሳይ ጥያቄ አንድ ጊዜ መፈጸም እና ውጤቱን ለአሥር ደንበኞች መስጠት ይቻላል?

ችግሩ የመሸጎጫ ውጤቶች ወይም መካከለኛ የውሂብ መሸጎጫ የለንም። የስርዓተ ክወናው ገጽ መሸጎጫ አለ ፣ ይህም ከዲስክ ላይ መረጃን እንደገና እንዳያነቡ ያስችልዎታል ፣ ግን በሚያሳዝን ሁኔታ ፣ ውሂቡ አሁንም ይቋረጣል ፣ ይደመሰሳል እና እንደገና ይሠራል።

ይህንን እንደምንም ወይም መካከለኛ መረጃን በመሸጎጥ ወይም ተመሳሳይ መጠይቆችን በአንድ ዓይነት ወረፋ ውስጥ በማስቀመጥ እና የውጤት መሸጎጫ በመጨመር ማስወገድ እፈልጋለሁ። አሁን በልማት ውስጥ አንድ የመሳብ ጥያቄ አለን ፣ ይህም የጥያቄ መሸጎጫ ይጨምራል ፣ ግን በ ውስጥ እና ክፍሎች ውስጥ ለሚደረጉ ንዑስ ጥያቄዎች ብቻ - ማለትም ፣ መፍትሄው ዝቅተኛ ነው።

ሆኖም ግን, እኛ ደግሞ እንደዚህ ያለ ሁኔታ አለን. በተለይ ቀኖናዊ ምሳሌ ከገጽ ጋር የተያያዙ ጥያቄዎች ነው። አንድ ሪፖርት አለ, በርካታ ገጾች አሉት, እና ገደብ አለ 10 ጥያቄ. ከዚያም ተመሳሳይ ነገር, ግን ገደብ 10,10. ከዚያ ሌላ ገጽ። እና ጥያቄው ለምን ሁል ጊዜ እንቆጥራለን? አሁን ግን ምንም መፍትሄ የለም, እና እሱን ለማስወገድ ምንም መንገድ የለም.

ከ ClickHouse ቀጥሎ እንደ የጎን መኪና የሚቀመጥ አማራጭ መፍትሄ አለ - ClickHouse ተኪ.

ኪሪል ሽቫኮቭ: ClickHouse ፕሮክሲ አብሮገነብ የዋጋ ገደብ እና አብሮገነብ የውጤት መሸጎጫ አለው። ብዙ ቅንጅቶች እዚያ ተደርገዋል, ምክንያቱም ተመሳሳይ ተግባር ተፈትቷል. ተኪ ጥያቄዎችን በወረፋ እንዲገድቡ እና የጥያቄው መሸጎጫ ለምን ያህል ጊዜ እንደሚቆይ እንዲያዋቅሩ ይፈቅድልዎታል። ጥያቄዎቹ በትክክል ተመሳሳይ ከሆኑ ተኪው ብዙ ጊዜ ይሰጣቸዋል እና አንዴ ብቻ ወደ ClickHouse ይሂዱ።

Nginx በነጻው ስሪት ውስጥ መሸጎጫ አለው እና ይሄም ይሰራል። Nginx ቅንጅቶች አሉት ስለዚህ በተመሳሳይ ጊዜ ጥያቄዎች ከገቡ፣ አንዱ እስኪጠናቀቅ ድረስ ሌሎችን ያቆማል። ግን ቅንጅቶቹ በጣም የተሻሉ የተደረጉት በ ClickHouse ፕሮክሲ ውስጥ ነው። በተለይ ለ ClickHouse የተሰራ ነው፣ በተለይ ለእነዚህ ጥያቄዎች፣ ስለዚህ የበለጠ ተስማሚ ነው። ደህና, ማዋቀር ቀላል ነው.

ስለ ያልተመሳሰሉ ክዋኔዎች እና ተጨባጭ እይታዎችስ?

እንደዚህ አይነት ችግር አለ ከተተካው ሞተር ጋር የሚሰሩ ስራዎች የማይመሳሰሉ ናቸው - መረጃ በመጀመሪያ ይፃፋል, ከዚያም ይወድቃል. አንዳንድ ድምር ያለው ታብሌት በጡባዊው ስር የሚኖር ከሆነ ብዜቶች ይፃፉበታል። እና ምንም ውስብስብ ሎጂክ ከሌለ ውሂቡ ይባዛል. በዚህ ላይ ምን ሊደረግ ይችላል?

ግልጽ የሆነ መፍትሄ አለ - ባልተመሳሰለ የመውደቅ ክዋኔ ላይ ቀስቅሴን በአንድ የተወሰነ የማት እይታ ክፍል ላይ ለመተግበር። እንደዚህ አይነት ተግባርን ለመተግበር "የብር ጥይቶች" እቅዶች አሉ?

ቅነሳ እንዴት እንደሚሰራ መረዳት ተገቢ ነው። እኔ የምለው ከጥያቄው ጋር የተያያዘ አይደለም ነገር ግን እንደ አጋጣሚ ሆኖ ማስታወስ ተገቢ ነው።

በተባዛ ሠንጠረዥ ውስጥ ሲያስገቡ፣ የገቡት ብሎኮች በሙሉ መቀነስ አለ። ተመሳሳዩን ብሎክ በተመሳሳይ ቅደም ተከተል ተመሳሳይ የረድፎች ቁጥር የያዘውን እንደገና ካስገቡ ውሂቡ ተባዝቷል። ለመክተቻው ምላሽ "Ok" ታገኛለህ፣ ነገር ግን አንድ የውሂብ ስብስብ በትክክል ይፃፋል እና አይገለበጥም።

ይህ ለእርግጠኝነት አስፈላጊ ነው. በማስገባቱ ጊዜ "እሺ" ካገኙ, የእርስዎ ውሂብ ገብቷል. ከ ClickHouse ስህተት ከተቀበልክ እነሱ አልተጨመሩም, እና ማስገባቱን መድገም አለብህ. ነገር ግን በመክተቻው ወቅት ግንኙነቱ ከተሰበረ ውሂቡ እንደገባ ወይም እንደሌለበት አታውቁም. ብቸኛው አማራጭ ማስገባቱን እንደገና መድገም ነው. ውሂቡ በትክክል ከገባ እና እንደገና ካስገቡት የማገድ ቅነሳ አለ። የተባዙትን ለማስወገድ ያስፈልጋል.

እና ለቁሳዊ እይታዎች እንዴት እንደሚሰራም አስፈላጊ ነው. ውሂቡ ወደ ዋናው ሠንጠረዥ ሲገባ የተቀነሰ ከሆነ እነሱም ወደ ቁሳዊ እይታ አይሄዱም።

አሁን ስለ ጥያቄው. የግለሰብ መስመሮች ብዜቶችን እየጻፉ ስለሆነ የእርስዎ ሁኔታ የበለጠ የተወሳሰበ ነው። ያም ማለት ሙሉው ጥቅል የተባዛ አይደለም, ነገር ግን የተወሰኑ መስመሮች, እና እነሱ ከበስተጀርባ ይወድቃሉ. በእርግጥ, ውሂቡ በዋናው ሠንጠረዥ ውስጥ ይወድቃል, እና ያልተሰበሰቡት ወደ ተጨባጭ እይታ ይሄዳሉ, እና በማዋሃድ ጊዜ ምንም ነገር አይከሰትም. ምክንያቱም በቁሳቁስ የተደገፈ እይታ በመግቢያው ላይ ከመቀስቀስ ያለፈ ነገር አይደለም። በሌሎች ክዋኔዎች ውስጥ ሌላ ምንም ነገር አይከሰትም.

እና እዚህ ደስተኛ መሆን አልችልም። ለዚህ ጉዳይ የተለየ መፍትሄ መፈለግ ብቻ አስፈላጊ ነው. ለምሳሌ, በተጨባጭ እይታ ውስጥ መተካት ይቻላል, እና የመቀነስ ዘዴ, ምናልባትም, በተመሳሳይ መንገድ ይሰራል. ግን በሚያሳዝን ሁኔታ, ሁልጊዜ አይደለም. እየሰበሰበ ከሆነ አይሰራም።

ኪሪል ሽቫኮቭ: በአንድ ወቅት የአጥንት ግንባታም ነበረን። የማስታወቂያ ግንዛቤዎች መኖራቸው ችግር ነበር፣ እና በእውነተኛ ጊዜ ልናሳያቸው የምንችላቸው አንዳንድ መረጃዎች አሉ - እነዚህ ግንዛቤዎች ናቸው። እነሱ እምብዛም አይባዙም ፣ ግን ካደረጉ ፣ ለማንኛውም እንፈርሳቸዋለን። እና ሊባዙ የማይችሉ ነገሮች ነበሩ - ጠቅታዎች እና ይህ ሙሉ ታሪክ። ነገር ግን እኔም ወዲያውኑ ማለት ይቻላል ላሳያቸው ፈልጌ ነበር።

ተጨባጭ እይታዎች እንዴት ተደረጉ? በቀጥታ የተጻፈባቸው እይታዎች ነበሩ - በጥሬ መረጃ ውስጥ መዝገብ አለ ፣ እና በእይታዎች ተጽፏል። እዚያም, በተወሰነ ጊዜ, ውሂቡ በጣም ትክክል አይደለም, የተባዙ ናቸው, ወዘተ. እና የሠንጠረዡ ሁለተኛ ክፍል አለ, እነሱ በትክክል ከተጨመቁ እይታዎች ጋር ተመሳሳይ ሆነው ይታያሉ, ማለትም, እነሱ በመዋቅር ውስጥ አንድ አይነት ናቸው. አንድ ጊዜ, ውሂቡን እንደገና እናሰላለን, ውሂቡን ያለ ብዜቶች እንቆጥራለን, ወደ እነዚያ ጠረጴዛዎች እንጽፋለን.

በኤፒአይ ውስጥ አልፈናል - ይህ በእጅ በ ClickHouse ውስጥ አይሰራም። እና ኤፒአይ የሚመስለው: በጠረጴዛው ላይ የመጨረሻው የመደመር ቀን ሲኖረኝ, ትክክለኛው መረጃ ቀድሞውኑ እንደተሰላ የተረጋገጠበት እና ለአንድ ጠረጴዛ እና ወደ ሌላ ጠረጴዛ ጥያቄ ያቀርባል. ከአንዱ ጥያቄ እስከ የተወሰነ ጊዜ ይመርጣል, እና ከሌላው ገና ያልተሰላውን ያገኛል. እና ይሰራል፣ ግን በአንድ ClickHouse አማካኝነት አይደለም።

አንድ ዓይነት ኤፒአይ ካለዎት - ለተንታኞች ፣ ለተጠቃሚዎች - ከዚያ በመርህ ደረጃ ይህ አማራጭ ነው። ሁል ጊዜ ትቆጥራለህ ፣ ሁል ጊዜ ትቆጥራለህ። ይህ በቀን አንድ ጊዜ ወይም በሌላ ጊዜ ሊከናወን ይችላል. እርስዎ የማይፈልጉትን እና ወሳኝ ያልሆነውን ክልል ለራስዎ ይመርጣሉ።

ClickHouse ብዙ ምዝግብ ማስታወሻዎች አሉት። በአንድ አፍታ በአገልጋዩ ላይ የሚሆነውን ሁሉ እንዴት ማየት እችላለሁ?

ClickHouse በጣም ብዙ ቁጥር ያላቸው የተለያዩ ምዝግቦች አሉት፣ እና ይህ ቁጥር እየጨመረ ነው። በአዲስ ስሪቶች ውስጥ፣ አንዳንዶቹ በነባሪነት የነቁ ናቸው፣ በአሮጌ ስሪቶች ውስጥ ሲዘምኑ መንቃት አለባቸው። ሆኖም ግን, ከነሱ የበለጠ እና ብዙ ናቸው. በመጨረሻ በአገልጋዬ ምን እየሆነ እንዳለ ማየት እፈልጋለሁ ምናልባትም በአንዳንድ ማጠቃለያ ዳሽቦርድ ላይ።

እነዚህን ምዝግብ ማስታወሻዎች እንደ የተጠናቀቀ ምርት የሚያሳዩ ዝግጁ-የተሰሩ ዳሽቦርዶችን አንዳንድ ተግባራትን በሚደግፉ ClickHouse ቡድን ውስጥ ወይም በጓደኞችዎ ቡድን ውስጥ አለህ? በመጨረሻ፣ በ ClickHouse ውስጥ ያሉትን ምዝግብ ማስታወሻዎች መመልከት ብቻ ጥሩ ነው። ነገር ግን ቀድሞውኑ በዳሽቦርድ መልክ ከተዘጋጀ በጣም ጥሩ ይሆናል. በዚህ ላይ ከፍ ከፍ እላለሁ ።

ደረጃቸውን የጠበቁ ባይሆኑም ዳሽቦርዶች አሉ። በኩባንያችን ውስጥ ClickHouseን በመጠቀም ወደ 60 የሚጠጉ ቡድኖች አሉን ፣ እና በጣም የሚገርመው ነገር ብዙዎቹ እራሳቸውን የሠሩት ዳሽቦርድ ያላቸው እና ትንሽ ለየት ያሉ መሆናቸው ነው። አንዳንድ ቡድኖች የ Yandex.Cloud ውስጣዊ ጭነት ይጠቀማሉ. ሁሉም አስፈላጊ ባይሆኑም አንዳንድ ዝግጁ የሆኑ ሪፖርቶች አሉ። ሌሎች የራሳቸው አላቸው።

የMetrica ባልደረቦቼ በግራፋና ውስጥ የራሳቸው ዳሽቦርድ አላቸው፣ እና እኔ ለራሳቸው ዘለላ የእኔ አለኝ። ለሴሪፍ መሸጎጫ እንደ መሸጎጫ መምታት ያሉ ነገሮችን እያየሁ ነው። እና የበለጠ አስቸጋሪው የተለያዩ መሳሪያዎችን መጠቀማችን ነው። ዳሽቦርዴን የፈጠርኩት ግራፋይት-ድር በተባለ በጣም ያረጀ መሳሪያ ላይ ነው። እሱ ሙሉ በሙሉ አስቀያሚ ነው. እና አሁንም በዚህ መንገድ እጠቀማለሁ, ምንም እንኳን ግራፋና ምናልባት የበለጠ ምቹ እና የበለጠ ቆንጆ ሊሆን ይችላል.

በዳሽቦርዶች ውስጥ ያለው መሠረታዊ ነገር ተመሳሳይ ነው. እነዚህ ለክላስተር የስርዓት መለኪያዎች ናቸው፡ ሲፒዩ፣ ማህደረ ትውስታ፣ ዲስክ፣ አውታረ መረብ። ሌሎች በአንድ ጊዜ የሚደረጉ ጥያቄዎች ብዛት፣ በአንድ ጊዜ የሚደረጉ ውህደቶች ብዛት፣ በሴኮንድ የሚጠየቁት ብዛት፣ ከፍተኛው የሜርጌትሬ ሠንጠረዥ ክፍልፋዮች ብዛት፣ የማባዛት መዘግየት፣ የማባዛት ወረፋ መጠን፣ በሴኮንድ የገቡ የረድፎች ብዛት፣ በሰከንድ የገቡት ብሎኮች ብዛት። ይህ ሁሉ የተገኘው ከመዝገቦች ሳይሆን ከመለኪያዎች ነው.

ቭላድሚር ኮሎባቭ: አሌክሲ ፣ ትንሽ ማረም እፈልጋለሁ። ግራፋና አለ። Grafana የመረጃ ምንጭ አለው እሱም ClickHouse ነው። ማለትም፣ ከግራፋና በቀጥታ ወደ ClickHouse ጥያቄ ማቅረብ እችላለሁ። ClickHouse የምዝግብ ማስታወሻዎች ያሉት ጠረጴዛ አለው, ለሁሉም ሰው ተመሳሳይ ነው. በውጤቱም፣ ይህንን የምዝግብ ማስታወሻ ሠንጠረዥ በ Grafana ውስጥ ማግኘት እና የእኔ አገልጋይ የሚመለከተውን ጥያቄ ማየት እፈልጋለሁ። እንደዚህ አይነት ዳሽቦርድ መኖሩ በጣም ጥሩ ይሆናል.

እኔ ራሴ በብስክሌት ነዳሁ። ግን አንድ ጥያቄ አለኝ - ሁሉም ደረጃውን የጠበቀ ከሆነ እና ግራፋና በሁሉም ሰው ጥቅም ላይ የሚውል ከሆነ Yandex ለምን እንደዚህ ያለ ኦፊሴላዊ ዳሽቦርድ የለውም?

ኪሪል ሽቫኮቭ: በእውነቱ፣ ClickHouse ያለው የመረጃ ምንጭ አሁን Altinityን ይደግፋል። እና የት መቆፈር እና ማን መግፋት እንዳለብኝ ቬክተር መስጠት ብቻ ነው የምፈልገው። ሊጠይቋቸው ይችላሉ, ምክንያቱም Yandex አሁንም ClickHouseን ያደርጋል, እና በዙሪያው ያለውን ታሪክ አይደለም. Altinity በአሁኑ ጊዜ ClickHouseን የሚያስተዋውቅ ዋና ኩባንያ ነው። ይደግፉታል እንጂ አይተዉትም። ምክንያቱም በመርህ ደረጃ ዳሽቦርድን ወደ ግራፋና ድረ-ገጽ ለመጫን መመዝገብ እና መጫን ብቻ ያስፈልግዎታል - ምንም ልዩ ችግሮች የሉም።

አሌክሲ ሚሎቪዶቭ: ባለፈው ዓመት፣ ClickHouse ብዙ የጥያቄ መገለጫ ባህሪያትን አክሏል። ለእያንዳንዱ የንብረት አጠቃቀም ጥያቄ መለኪያዎች አሉ። እና ከቅርብ ጊዜ ወዲህ፣ መጠይቁ በየሚሊ ሰከንድ የት እንደሚያጠፋ ለማየት እንኳን ዝቅተኛ ደረጃ የመጠይቅ ፕሮፋይለር ታክሏል። ግን ይህንን ተግባር ለመጠቀም የኮንሶል ደንበኛን ከፍቼ እየረሳሁት ያለውን ጥያቄ መተየብ አለብኝ። የሆነ ቦታ አስቀምጫለሁ እና ሁልጊዜ የት በትክክል እረሳለሁ.

በቃ የሚል መሳሪያ ቢኖር እመኛለሁ - ከባድ ጥያቄዎችህ እዚህ አሉ፣ በመጠይቅ ክፍል ተመድበው። አንዱን ጠቅ አደረግሁ እና ከባድ እንደሆነ ይነግሩኝ ነበር. አሁን እንዲህ ዓይነት መፍትሔ የለም. እና ሰዎች ሲጠይቁኝ በጣም እንግዳ ነገር ነው፡- “ንገረኝ፣ ለግራፋና ዝግጁ የሆኑ ዳሽቦርዶች አሉ?” ከኮስትያን። ምን እንደሆነ አላውቅም፣ እኔ ራሴ አልተጠቀምኩም።

አገልጋዩ በ OOM ውስጥ እንዳይወድቅ በmerdzhi ላይ እንዴት ተጽእኖ ማድረግ እንደሚቻል?

ጠረጴዛ አለኝ ፣ በሰንጠረዡ ውስጥ አንድ ክፍልፋይ ብቻ ነው ያለው ፣ እሱ መተካት MergeTree ነው። ለአራት ዓመታት ያህል መረጃ እየጻፍኩበት ነው። በእሱ ውስጥ ለውጥ ማድረግ እና የተወሰነ ውሂብ መሰረዝ ነበረብኝ።

ይህን አደረግሁ፣ እና ይህን ጥያቄ በማስተናገድ ሂደት፣ በክላስተር ውስጥ ባሉ ሁሉም አገልጋዮች ላይ ያለው ማህደረ ትውስታ በሙሉ ተበላ፣ እና በክላስተር ውስጥ ያሉት ሁሉም አገልጋዮች ወደ OOM አብረው ገቡ። ከዚያም ሁሉም አንድ ላይ ተነሱ, ተመሳሳይ ክዋኔን ማዋሃድ ጀመሩ, ይህ የውሂብ እገዳ እና እንደገና በኦኦኤም ውስጥ ወደቀ. ከዚያም እንደገና ተነሥተው እንደገና ወደቁ። እና ይሄ ነገር አላቆመም።

ከዚያ ይህ በእውነቱ ሰዎቹ ያስተካክሏቸው ስህተት እንደሆነ ታወቀ። ይህ በጣም ጥሩ ነው, በጣም አመሰግናለሁ. ቀሪው ግን ቀረ። እና አሁን ፣ በጠረጴዛው ውስጥ የተወሰነ ውህደት ማድረግ አስፈላጊ መሆኑን ሳስብ አንድ ጥያቄ አለኝ - ለምን እነዚህን ውህዶች ወስጄ በሆነ መንገድ ተጽዕኖ ማሳደር አልችልም? ለምሳሌ, በሚፈለገው የ RAM መጠን ይገድቧቸው, ወይም በመርህ ደረጃ, በቁጥራቸው ይገድቧቸው, ይህም ይህን ልዩ ሰንጠረዥ ያስኬዳል.

"ሜትሪክስ" የሚባል ሠንጠረዥ አለኝ እባኮትን በሁለት ዥረቶች አስኬዱት። በትይዩ አሥር ወይም አምስት ውህዶችን ማምረት አያስፈልግም, በሁለት ያድርጉት. እኔ እንደማስበው በሁለት ውስጥ በቂ ማህደረ ትውስታ አለኝ, ነገር ግን አሥር ለማስኬድ በቂ ላይሆን ይችላል. ፍርሃት ለምን ይቀራል? ጠረጴዛው እያደገ ስለሆነ እና አንድ ቀን በመርህ ደረጃ በስህተት ምክንያት የማይሆን ​​ሁኔታ ያጋጥመኛል ፣ ግን መረጃው በከፍተኛ መጠን ስለሚቀየር በቀላሉ በቂ ማህደረ ትውስታ የለኝም። አገልጋዩ ። እና ከዚያ አገልጋዩ በውህደቱ ጊዜ ወደ OOM ውስጥ ይወድቃል። በተጨማሪም ፣ ሚውቴሽን መሰረዝ እችላለሁ ፣ ግን ውህደቱ ጠፍቷል።

ታውቃለህ ፣ ሲዋሃድ አገልጋዩ ወደ OOM ውስጥ አይወድቅም ፣ ምክንያቱም ሲዋሃዱ የ RAM መጠን ለአንድ ትንሽ የውሂብ ክልል ብቻ ጥቅም ላይ ይውላል። ስለዚህ የውሂብ መጠን ምንም ይሁን ምን ሁሉም ነገር ጥሩ ይሆናል.

ቭላድሚር ኮሎባቭ: ጥሩ። እዚህ ቅጽበት እንደዚህ ነው ፣ የሳንካ ጥገና ካደረግን በኋላ ፣ ለራሴ አዲስ ስሪት አውርጄ ነበር ፣ እና በሌላ ጠረጴዛ ላይ ፣ ትንሽ ፣ ብዙ ክፍልፋዮች ባሉበት ፣ ተመሳሳይ ክወና አደረግሁ። እና በውህደቱ ወቅት 100 ጂቢ ራም በአገልጋዩ ላይ ተቃጥሏል። 150 ስራ በዝቶብኝ፣ 100 በላሁ፣ እና 50 ጂቢ መስኮት ቀረኝ፣ ስለዚህ በኦኦኤም ውስጥ አልወድቅም።

100 ጊባ ራም የሚበላ ከሆነ በአሁኑ ጊዜ ወደ OOM እንዳትወድቅ የሚጠብቀኝ ምንድን ነው? በድንገት በ merdzh ላይ ያለው ራም ካለቀ በአንድ ሁኔታ ውስጥ ምን ማድረግ አለበት?

አሌክሲ ሚሎቪዶቭ: የ RAM ፍጆታ በ merdzhi ላይ ብቻ የተወሰነ እንዳልሆነ እንደዚህ አይነት ችግር አለ. ሁለተኛው ችግር ደግሞ ውህደቱ ከተመደበ መፈጸም አለበት ምክንያቱም በማባዛት መዝገብ ላይ ስለተፃፈ ነው። የማባዛት ምዝግብ ማስታወሻው ግልባጩን ወደ አንድ ወጥ ሁኔታ ለማምጣት የሚያስፈልጉት ድርጊቶች ናቸው። ይህ የማባዛት ምዝግብ ማስታወሻ ተመልሶ እንደሚሽከረከር በእጅ የማታለል ስራዎችን ካላደረጉ፣ ውህደቱ በአንድ ወይም በሌላ መንገድ መከናወን አለበት።

እርግጥ ነው፣ በ RAM ላይ ገደብ መኖሩ እጅግ የላቀ አይሆንም፣ ይህም “እንደዚያ ከሆነ” ከ OOM ይከላከላል። ውህደቱ እንዲሮጥ አይረዳውም ፣ እንደገና ይጀምራል ፣ የተወሰነ ደረጃ ላይ ይደርሳል ፣ ልዩ ሁኔታን ይጥላል ፣ እና ከዚያ እንደገና ይጀምራል - ምንም ጥሩ ነገር አይመጣም። ነገር ግን በመርህ ደረጃ, ይህንን ገደብ ማስተዋወቅ ጠቃሚ ይሆናል.

ለ ClickHouse የጎላንግ ሾፌር እድገት እንዴት ይከናወናል?

በኪሪል ሽቫኮቭ የተፃፈው የጎላንግ ሾፌር አሁን በ ClickHouse ቡድን በይፋ ይደገፋል። እሱ በ ClickHouse ማከማቻ ውስጥእሱ አሁን ትልቅ እና እውነተኛ ነው።

ትንሽ ማስታወሻ. ያልተለመዱ የመደበኛ ቅደም ተከተል ዓይነቶች አስደናቂ እና ተወዳጅ ማከማቻ አለ - ይህ Vertica ነው። እንዲሁም በVertica ገንቢዎች የሚንከባከበው የራሳቸው ኦፊሴላዊ የፓይቶን ሾፌር አላቸው። እና ብዙ ጊዜ የማከማቻው ስሪቶች እና የአሽከርካሪው ስሪቶች በድንገት ተለያዩ እና አሽከርካሪው በሆነ ጊዜ መስራት አቁሟል። እና ሁለተኛው ቅጽበት። ለዚህ ኦፊሴላዊ ሾፌር ድጋፍ ፣ ለእኔ ይመስላል ፣ በ “ጡት ጫፍ” ስርዓት ይጠበቃል - አንድ ጉዳይ ይጽፉላቸዋል ፣ እና ለዘላለም ይንጠለጠላል።

ሁለት ጥያቄዎች አሉኝ። አሁን የኪሪል ጎላንግ ሾፌር ከጎላንግ በ ClickHouse ለመገናኘት ነባሪ መንገድ ነው። አንድ ሰው አሁንም በ http በይነገጽ በኩል ካልተገናኘ በስተቀር፣ እሱ በጣም ስለሚወደው። ይህ ሹፌር እንዴት ይዘጋጃል? በራሱ ማከማቻ ውስጥ ካሉ አንዳንድ ሰበር ለውጦች ጋር ይመሳሰል ይሆን? እና ጉዳዩን ከግምት ውስጥ ለማስገባት ሂደቱ ምንድን ነው?

ኪሪል ሽቫኮቭ: የመጀመሪያው ሁሉም ነገር በቢሮክራሲያዊ መንገድ እንዴት እንደሚደረደር ነው. ይህ ነጥብ አልተብራራም, ስለዚህ ምንም የምመልሰው ነገር የለም.

ስለ ጉዳዩ ጥያቄ ለመመለስ, የአሽከርካሪው ትንሽ ታሪክ ያስፈልገናል. ብዙ መረጃ ባለው ኩባንያ ውስጥ ሠርቻለሁ። የሆነ ቦታ ማከማቸት የሚያስፈልጋቸው እጅግ በጣም ብዙ ክስተቶች ያለው የማስታወቂያ እሽክርክሪት ነበር። እና በአንድ ወቅት ClickHouse ታየ። ውሂብን ወደ እሱ አፈሰስን ፣ እና መጀመሪያ ላይ ሁሉም ነገር ጥሩ ነበር ፣ ግን ከዚያ ClickHouse ወደቀ። በዚያን ጊዜ እኛ እንደማያስፈልገን ወሰንን.

ከአንድ አመት በኋላ, ClickHouseን የመጠቀም ሀሳብ ተመለስን, እና እዚያ ውሂብን በሆነ መንገድ መጻፍ ያስፈልገናል. ግብአቱ ይህ ነበር - ብረቱ በጣም ደካማ ነው, ጥቂት ሀብቶች አሉ. ግን እኛ ሁልጊዜ በዚህ መንገድ እንሰራለን ፣ እና ስለዚህ ወደ ቤተኛ ፕሮቶኮል ተመለከትን።

በ Go ላይ እየሰራን ስለነበር የ Go ሾፌር እንደሚያስፈልገን ግልጽ ነበር። የሰራሁት በሙሉ ጊዜ ማለት ይቻላል - ስራዬ ነበር። እስከ አንድ ነጥብ ድረስ, አነሳነው, እና በመርህ ደረጃ, ከእኛ ውጭ ሌላ ሰው ይጠቀማል ብሎ ማንም አልጠበቀም. ከዚያ CloudFlare በትክክል ከተመሳሳይ ችግር ጋር አብሮ መጣ፣ እና ለተወሰነ ጊዜ ከእነሱ ጋር በጣም በተቀላጠፈ ሁኔታ ሠርተናል፣ ምክንያቱም ተመሳሳይ ተግባራት ነበሯቸው። እና ሁለቱንም በ ClickHouse እራሱ እና በሾፌሩ ውስጥ አደረግን.

የሆነ ጊዜ ላይ፣ በቀላሉ ማድረግ አቆምኩኝ፣ ምክንያቱም ከ ClickHouse እና ከስራ ጋር ያለው እንቅስቃሴዬ ትንሽ ተቀይሯል። ስለዚህ ጉዳዮች አልተዘጉም. በየጊዜው፣ አንድ ነገር የሚያስፈልጋቸው ሰዎች ራሳቸው ወደ ማከማቻው ይገባሉ። ከዚያ የመጎተት ጥያቄን እመለከታለሁ እና አንዳንድ ጊዜ እኔ ራሴ የሆነ ነገር አርትዕ አደርጋለሁ ፣ ግን ይህ በጣም አልፎ አልፎ ነው።

ወደ ሹፌሩ መመለስ እፈልጋለሁ. ከጥቂት አመታት በፊት፣ ይህ ሁሉ ነገር ሲጀመር፣ ClickHouse እንዲሁ የተለየ እና የተለያዩ ባህሪያት ነበረው። አሁን ጥሩ እንዲሆን ሾፌሩን እንዴት እንደገና ማዘጋጀት እንደሚቻል ግንዛቤ አለ. ይህ ከተከሰተ፣ ከዚያ ስሪት 2 በተከማቹ ክራንች ምክንያት ለማንኛውም ተኳሃኝ አይሆንም።

ይህንን እንዴት ማቀናጀት እንዳለብኝ አላውቅም። እኔ ራሴ ብዙ ጊዜ የለኝም። አንዳንድ ሰዎች ሹፌሩን ከጨረሱ፣ ምን ማድረግ እንዳለብኝ ልረዳቸው እችላለሁ። ነገር ግን በፕሮጀክቱ ልማት ውስጥ የ Yandex ንቁ ተሳትፎ በምንም መልኩ እስካሁን ያልተገለፀው.

አሌክሲ ሚሎቪዶቭ: እንደውም ስለነዚህ አሽከርካሪዎች ምንም አይነት ቢሮክራሲ እስካሁን የለም። ብቸኛው ነገር እነሱ ወደ ኦፊሴላዊ ድርጅት መወሰዳቸው ነው ፣ ማለትም ፣ ይህ አሽከርካሪ ለ Go ኦፊሴላዊ ነባሪ መፍትሄ እንደሆነ ይታወቃል። አንዳንድ ሌሎች አሽከርካሪዎች አሉ, ግን እነሱ ለየብቻ ይመጣሉ.

በውስጣችን ለእነዚህ አሽከርካሪዎች ምንም አይነት ልማት የለንም። ጥያቄው በተለይ ለዚህ ሹፌር ሳይሆን ለሁሉም የማህበረሰብ ሹፌሮች እድገት አንድን ግለሰብ መቅጠር እንችላለን ወይስ ውጭ የሆነ ሰው ማግኘት እንችላለን የሚለው ነው።

lazy_load ከነቃ በኋላ ውጫዊ መዝገበ ቃላት አይነሳም። ምን ለማድረግ?

የ lazy_load ቅንብር ነቅተናል፣ እና አገልጋዩ እንደገና ከጀመረ በኋላ መዝገበ ቃላቱ ራሱ አይነሳም። የሚነሳው ተጠቃሚው ይህንን መዝገበ ቃላት ከደረሰ በኋላ ነው። እና በመጀመሪያው ጥሪ ላይ ስህተት ይጥላል. ክሊክ ሃውስን በመጠቀም መዝገበ-ቃላቶችን እንደምንም መጫን ይቻላል ወይንስ ሁልጊዜ ተጠቃሚዎች ስህተት እንዳይደርስባቸው ዝግጁነታቸውን እራስዎ መቆጣጠር ያስፈልግዎታል?

ምናልባት የድሮው የ ClickHouse ስሪት አለን፣ ስለዚህ መዝገበ-ቃላቱ በራስ-ሰር አልተጫነም። ሊሆን ይችላልን?

በመጀመሪያ ፣ መጠይቁን በመጠቀም መዝገበ-ቃላቶችን በኃይል መጫን ይችላሉ። የስርዓት ዳግም ጫን መዝገበ ቃላት. በሁለተኛ ደረጃ, ስለ ስህተቱ - መዝገበ-ቃላቱ ቀድሞውኑ ከተጫነ, ጥያቄዎቹ በተጫነው ውሂብ ላይ ይሰራሉ. መዝገበ ቃላቱ ገና ካልተጫነ በጥያቄው ጊዜ ወዲያውኑ ይጫናል።

ለከባድ መዝገበ ቃላት, ይህ በጣም ምቹ አይደለም. ለምሳሌ፣ አንድ ሚሊዮን ረድፎችን ከ MySQL ማምጣት አለቦት። አንድ ሰው ቀለል ያለ ምርጫ ያደርጋል፣ ግን ይህ ምርጫ ለተመሳሳይ ሚሊዮን ረድፎች ይጠብቃል። እዚህ ሁለት መፍትሄዎች አሉ. የመጀመሪያው lazy_loadን ማጥፋት ነው። ሁለተኛው አገልጋዩ ሲነሳ, በእሱ ላይ ያለውን ጭነት ከማብራትዎ በፊት, ያድርጉ የስርዓት ዳግም ጫን መዝገበ ቃላት ወይም መዝገበ ቃላትን የሚጠቀም መጠይቅን ብቻ ያስፈጽሙ። ከዚያ መዝገበ-ቃላቱ ይጫናሉ. የመዝገበ-ቃላትን መገኘት የላዚ_ሎድ መቼት እንደነቃ መቆጣጠር አለብህ ምክንያቱም ClickHouse በራስ ሰር አያነሳቸውም።

ለመጨረሻው ጥያቄ መልሱ ወይ ስሪቱ አሮጌ ነው, ወይም ማረም ያስፈልገዋል.

የስርዓት ዳግም መጫን መዝገበ-ቃላት ቢያንስ አንዱ በስህተት ቢበላሽ ከብዙ መዝገበ-ቃላት ውስጥ አንዳቸውንም አይጭኑም?

የስርዓት ዳግም ጭነት መዝገበ ቃላትን በተመለከተ ሌላ ጥያቄ አለ. ሁለት መዝገበ ቃላት አሉን - አንደኛው አልተጫነም, ሁለተኛው ተጭኗል. በዚህ ጉዳይ ላይ የስርዓት ዳግም መጫን መዝገበ-ቃላት ምንም አይነት መዝገበ-ቃላትን አይጭኑም, እና የስርዓት ዳግም ጫን መዝገበ-ቃላትን በመጠቀም የተወሰነውን በስሙ ነጥብ-ወደ-ነጥብ መጫን አለብዎት. ይህ ከ ClickHouse ስሪት ጋር ይዛመዳል?

ማስደሰት እፈልጋለሁ። ይህ ባህሪ ተለውጧል. ስለዚህ፣ ClickHouseን ካዘመኑ፣ እንዲሁ ይለወጣል። አሁን ባለው ባህሪ ካልረኩ የስርዓት ዳግም ጫን መዝገበ ቃላት፣ አዘምን ፣ እና በተሻለ ሁኔታ እንደሚለወጥ ተስፋ እናድርግ።

በ ClickHouse ውቅር ውስጥ ዝርዝሮቹን የሚያዋቅሩበት መንገድ አለ ነገር ግን በስህተት ላይ ብርሃን አያበራላቸውም?

የሚቀጥለው ጥያቄ ከመዝገበ-ቃላቱ ጋር የተያያዙ ስህተቶች ማለትም ዝርዝሮች ናቸው. የግንኙነት ዝርዝሮችን በ ClickHouse config ወደ መዝገበ-ቃላቱ አስመዝግበናል, እና ስህተት ከተፈጠረ, እነዚህን ዝርዝሮች እና የይለፍ ቃሉ በምላሹ እንቀበላለን.

ይህንን ስህተት የፈታነው ዝርዝሮችን ወደ ኦዲቢሲ ሾፌር ውቅረት በማከል ነው። በ ClickHouse ውቅር ውስጥ ዝርዝሮቹን ለማዋቀር አንዳንድ መንገዶች አሉ ነገር ግን እነዚህን ዝርዝሮች በስህተቶች ላይ ለማሳየት አይደለም?

እዚህ ፣ መፍትሄው በእውነቱ ነው - እነዚህን ምስክርነቶች በ odbc.ini ውስጥ ፣ እና በ ClickHouse ውስጥ ፣ የ ODBC የውሂብ ምንጭ ስም ብቻ ይጥቀሱ። ይህ ለሌሎች የመዝገበ-ቃላት ምንጮች አይከሰትም - ለ MySQL መዝገበ-ቃላትም ሆነ ለተቀረው ፣ በስህተት መልእክት ውስጥ የይለፍ ቃሉን ማየት የለብዎትም። ለ ODBC፣ እኔም እመለከተዋለሁ - እንደዚህ አይነት ነገር ካለ እሱን ማስወገድ ብቻ ያስፈልግዎታል።

ጉርሻ፡ ከስብሰባዎች ለዙማ ዳራ

በጣም ጽኑ ለሆኑ አንባቢዎች ምስሉን ጠቅ በማድረግ፣ ከስብሰባዎች የተገኙ ጉርሻዎች ይከፈታሉ። እሳቱን ከአቪቶ የቴክኖሎጂ ማስኮቶች ጋር በማጥፋት፣ ከስርአቱ አስተዳዳሪ ክፍል ወይም ከአሮጌ ትምህርት ቤት ኮምፒውተር ክለብ ከመጡ የስራ ባልደረቦች ጋር በመወያየት እና በድልድዩ ስር በየቀኑ ከግራፊቲ ጀርባ ጋር በመቆም።

በጥያቄዎች እና መልሶች ውስጥ ለላቁ ተጠቃሚዎች ClickHouse

ምንጭ: hab.com

አስተያየት ያክሉ