ወደ አገልጋይ አልባ የውሂብ ጎታዎች - እንዴት እና ለምን

ሰላም ሁላችሁም! ስሜ ጎሎቭ ኒኮላይ ነው። ከዚህ ቀደም በአቪቶ ውስጥ ሠርቻለሁ እና የውሂብ መድረክን ለስድስት ዓመታት አስተዳድር ነበር ፣ ማለትም ፣ በሁሉም የውሂብ ጎታዎች ላይ ሠርቻለሁ- analytical (Vertica ፣ ClickHouse) ፣ ዥረት እና OLTP (Redis ፣ Tarantool ፣ VoltDB ፣ MongoDB ፣ PostgreSQL)። በዚህ ጊዜ ውስጥ ብዙ ቁጥር ያላቸውን የውሂብ ጎታዎች - በጣም የተለያዩ እና ያልተለመዱ እና መደበኛ ባልሆኑ አጠቃቀማቸው ጉዳዮች ላይ ተወያይቻለሁ።

በአሁኑ ጊዜ ManyChat ላይ እየሰራሁ ነው። በመሰረቱ፣ ይህ ጅምር ነው - አዲስ፣ ትልቅ ምኞት ያለው እና በፍጥነት እያደገ። እና ኩባንያውን ለመጀመሪያ ጊዜ ስቀላቀል፣ “ወጣት ጀማሪ አሁን ከዲቢኤምኤስ እና የውሂብ ጎታ ገበያ ምን መውሰድ አለበት?” የሚል አንድ የተለመደ ጥያቄ ተነሳ።

በዚህ ጽሁፍ ላይ ባቀረብኩት ዘገባ መሰረት የመስመር ላይ ፌስቲቫል RIT++2020, ለዚህ ጥያቄ መልስ እሰጣለሁ. የሪፖርቱ የቪዲዮ ሥሪት በ ላይ ይገኛል። YouTube.

ወደ አገልጋይ አልባ የውሂብ ጎታዎች - እንዴት እና ለምን

የተለመዱ የመረጃ ቋቶች 2020

እ.ኤ.አ. 2020 ነው፣ ዙሪያውን ስመለከት ሶስት አይነት የውሂብ ጎታዎችን አየሁ።

የመጀመሪያው ዓይነት - ክላሲክ OLTP የውሂብ ጎታዎችPostgreSQL፣ SQL አገልጋይ፣ Oracle፣ MySQL የተጻፉት ከረጅም ጊዜ በፊት ነው, ነገር ግን ለገንቢው ማህበረሰብ በጣም የተለመዱ ስለሆኑ አሁንም ጠቃሚ ናቸው.

ሁለተኛው ዓይነት - መሠረት ከ "ዜሮ". አብሮ የተሰራ ሻርዲንግ እና ሌሎች ማራኪ ባህሪያትን በመጨመር SQLን፣ ባህላዊ መዋቅሮችን እና ACIDን በመተው ከጥንታዊ ቅጦች ለመራቅ ሞክረዋል። ለምሳሌ፣ ይህ ካሳንድራ፣ ሞንጎዲቢ፣ ሬዲስ ወይም ታራንቶል ነው። እነዚህ ሁሉ መፍትሄዎች ለገበያው አዲስ የሆነ አዲስ ነገር ለማቅረብ ፈልገዋል እና ቦታቸውን ተቆጣጠሩ ምክንያቱም ለተወሰኑ ስራዎች እጅግ በጣም ምቹ ሆነው ተገኝተዋል። እነዚህን የውሂብ ጎታዎች NOSQL በሚለው የጃንጥላ ቃል እገልጻለሁ።

“ዜሮዎቹ” አልቀዋል፣ ከ NOSQL የውሂብ ጎታዎች ጋር ተላምደናል፣ እና አለም፣ በእኔ እይታ፣ ቀጣዩን እርምጃ ወስዷል - ወደ የሚተዳደሩ የውሂብ ጎታዎች. እነዚህ የመረጃ ቋቶች ልክ እንደ ክላሲክ OLTP ዳታቤዝ ወይም አዲስ NoSQL ተመሳሳይ ኮር አላቸው። ግን ለ DBA እና DevOps አያስፈልጋቸውም እና በደመና ውስጥ በሚተዳደር ሃርድዌር ይሰራሉ። ለገንቢ፣ ይህ የሆነ ቦታ የሚሰራ “መሰረት ብቻ” ነው፣ ነገር ግን በአገልጋዩ ላይ እንዴት እንደተጫነ፣ አገልጋዩን ማን እንዳዋቀረው እና ማን እንደሚያዘምነው ማንም ደንታ የለውም።

እንደዚህ ያሉ የውሂብ ጎታዎች ምሳሌዎች

  • AWS RDS ለ PostgreSQL/MySQL የሚተዳደር መጠቅለያ ነው።
  • DynamoDB እንደ ሬዲስ እና ሞንጎዲቢ ተመሳሳይ የሆነ ሰነድ ላይ የተመሰረተ የውሂብ ጎታ የAWS አናሎግ ነው።
  • Amazon Redshift የሚተዳደር የትንታኔ ዳታቤዝ ነው።

እነዚህ በመሠረቱ የቆዩ የውሂብ ጎታዎች ናቸው, ነገር ግን በሚተዳደር አካባቢ ውስጥ ያደጉ, ከሃርድዌር ጋር መስራት ሳያስፈልግ.

ማስታወሻ. ምሳሌዎቹ የተወሰዱት ለAWS አካባቢ ነው፣ ነገር ግን ምስሎቻቸው በMicrosoft Azure፣ Google Cloud ወይም Yandex.Cloud ውስጥም አሉ።

ወደ አገልጋይ አልባ የውሂብ ጎታዎች - እንዴት እና ለምን

በዚህ ጉዳይ ምን አዲስ ነገር አለ? በ 2020 ፣ ከእነዚህ ውስጥ አንዳቸውም

አገልጋይ-አልባ ጽንሰ-ሀሳብ

በ2020 በገበያ ላይ ያለው አዲስ ነገር አገልጋይ አልባ ወይም አገልጋይ አልባ መፍትሄዎች ነው።

የመደበኛ አገልግሎት ወይም የድጋፍ ማመልከቻ ምሳሌ በመጠቀም ይህ ምን ማለት እንደሆነ ለማስረዳት እሞክራለሁ።
መደበኛ የጀርባ አፕሊኬሽን ለማሰማራት ሰርቨር እንገዛለን ወይም እንከራያለን፣ ኮዱን በእሱ ላይ ገልብጠን፣ የመጨረሻ ነጥቡን ወደ ውጭ አሳትመን በመደበኛነት ለቤት ኪራይ፣ ለመብራት እና ለዳታ ሴንተር አገልግሎቶች እንከፍላለን። ይህ መደበኛ እቅድ ነው.

ሌላ መንገድ አለ? ከአገልጋይ አልባ አገልግሎቶች ጋር ማድረግ ይችላሉ።

የዚህ አቀራረብ ትኩረት ምንድን ነው፡ አገልጋይ የለም፣ በደመና ውስጥ ምናባዊ ምሳሌ እንኳን መከራየት የለም። አገልግሎቱን ለማሰማራት, ኮዱን (ተግባራትን) ወደ ማከማቻው ይቅዱ እና ወደ መጨረሻው ነጥብ ያትሙት. ከዚያ ለእያንዳንዱ ጥሪ ወደዚህ ተግባር በቀላሉ እንከፍላለን, የሚሠራበትን ሃርድዌር ሙሉ በሙሉ ችላ በማለት.

ይህንን አቀራረብ በስዕሎች ለማሳየት እሞክራለሁ.
ወደ አገልጋይ አልባ የውሂብ ጎታዎች - እንዴት እና ለምን

ክላሲክ ማሰማራት. የተወሰነ ጭነት ያለው አገልግሎት አለን። ሁለት ምሳሌዎችን እናነሳለን፡ አካላዊ አገልጋዮች ወይም በAWS ውስጥ። የውጭ ጥያቄዎች ወደ እነዚህ አጋጣሚዎች ይላካሉ እና እዚያ ይካሄዳሉ።

በሥዕሉ ላይ እንደሚታየው አገልጋዮቹ በእኩል አይጣሉም. አንዱ 100% ጥቅም ላይ ይውላል፣ ሁለት ጥያቄዎች አሉ፣ እና አንዱ 50% ብቻ ነው - ከፊል ስራ ፈት። ሶስት ጥያቄዎች ካልደረሱ ፣ ግን 30 ፣ ከዚያ አጠቃላይ ስርዓቱ ጭነቱን መቋቋም አይችልም እና ፍጥነት መቀነስ ይጀምራል።

ወደ አገልጋይ አልባ የውሂብ ጎታዎች - እንዴት እና ለምን

አገልጋይ አልባ ማሰማራት. አገልጋይ በሌለው አካባቢ፣ እንዲህ ዓይነቱ አገልግሎት ምሳሌዎች ወይም አገልጋዮች የሉትም። የተወሰነ የሙቅ ሀብቶች ገንዳ አለ - ትናንሽ የተዘጋጁ ዶከር ኮንቴይነሮች ከተዘረጋ የተግባር ኮድ ጋር። ስርዓቱ የውጭ ጥያቄዎችን ይቀበላል እና ለእያንዳንዳቸው አገልጋይ-አልባ ማዕቀፍ ኮድ ያለው ትንሽ መያዣ ያነሳል-ይህን ልዩ ጥያቄ ያስኬዳል እና መያዣውን ይገድላል።

አንድ ጥያቄ - አንድ መያዣ ተነሳ, 1000 ጥያቄዎች - 1000 ኮንቴይነሮች. እና በሃርድዌር አገልጋዮች ላይ መሰማራት ቀድሞውኑ የደመና አቅራቢው ስራ ነው። በአገልጋይ አልባ ማዕቀፍ ሙሉ በሙሉ ተደብቋል። በዚህ ጽንሰ-ሃሳብ ውስጥ ለእያንዳንዱ ጥሪ እንከፍላለን. ለምሳሌ በቀን አንድ ጥሪ መጣ - ለአንድ ጥሪ ከፍለናል፣ በደቂቃ አንድ ሚሊዮን መጣ - ለአንድ ሚሊዮን ከፍለናል። ወይም በሴኮንድ ውስጥ, ይህ እንዲሁ ይከሰታል.

አገልጋይ-አልባ ተግባርን የማተም ጽንሰ-ሀሳብ ሀገር ለሌለው አገልግሎት ተስማሚ ነው። እና (ግዛት) ሙሉ አገልግሎት ከፈለጉ ፣ ከዚያ ወደ አገልግሎቱ የውሂብ ጎታ እንጨምራለን ። በዚህ ጉዳይ ላይ ከስቴት ጋር ለመስራት ሲመጣ እያንዳንዱ የመንግስት ሙሉ ተግባር በቀላሉ ከመረጃ ቋቱ ውስጥ ይጽፋል እና ያነባል። ከዚህም በላይ በአንቀጹ መጀመሪያ ላይ ከተገለጹት ከሦስቱ ዓይነቶች የውሂብ ጎታ.

የእነዚህ ሁሉ የውሂብ ጎታዎች የጋራ ገደብ ምንድን ነው? እነዚህ በቋሚነት ጥቅም ላይ የሚውሉ የደመና ወይም የሃርድዌር አገልጋይ (ወይም የበርካታ አገልጋዮች) ወጪዎች ናቸው። የሚታወቀው ወይም የሚተዳደር ዳታቤዝ፣ ዴቮፕስ እና አስተዳዳሪ ይኑረንም አልኖረን ምንም ለውጥ የለውም፣ አሁንም ለሃርድዌር፣ ለመብራት እና ለዳታ ማእከል ኪራይ 24/7 እንከፍላለን። ክላሲክ መሠረት ካለን ለጌታ እና ለባሪያ እንከፍላለን። በጣም የተጫነ የተከፋፈለ የውሂብ ጎታ ከሆነ ለ 10, 20 ወይም 30 አገልጋዮች እንከፍላለን, እና ያለማቋረጥ እንከፍላለን.

በወጪ መዋቅር ውስጥ በቋሚነት የተያዙ አገልጋዮች መኖራቸው ቀደም ሲል እንደ አስፈላጊ ክፋት ይታወቅ ነበር። የተለመዱ የመረጃ ቋቶች እንዲሁ ሌሎች ችግሮች አሏቸው ፣ ለምሳሌ በግንኙነቶች ብዛት ላይ ገደቦች ፣ የመለኪያ ገደቦች ፣ የጂኦ-ተከፋፈለ መግባባት - እነሱ በሆነ መንገድ በተወሰኑ የውሂብ ጎታዎች ውስጥ ሊፈቱ ይችላሉ ፣ ግን ሁሉም በአንድ ጊዜ አይደሉም እና በትክክል አይደሉም።

አገልጋይ የሌለው ዳታቤዝ - ቲዎሪ

የ2020 ጥያቄ፡ የውሂብ ጎታ አገልጋይ አልባ ማድረግም ይቻላል? ሁሉም ሰው ስለ አገልጋይ-አልባ የጀርባ ማሰራጫ ሰምቷል ... የውሂብ ጎታውን አገልጋይ አልባ ለማድረግ እንሞክር?

ይህ እንግዳ ይመስላል፣ ምክንያቱም የመረጃ ቋቱ ሙሉ አገልግሎት ነው፣ አገልጋይ ለሌለው መሠረተ ልማት በጣም ተስማሚ አይደለም። በተመሳሳይ ጊዜ የመረጃ ቋቱ ሁኔታ በጣም ትልቅ ነው-ጊጋባይት, ቴራባይት እና በመተንተን የውሂብ ጎታዎች እንኳን ፔታባይት. ቀላል ክብደት ባለው ዶከር ኮንቴይነሮች ውስጥ ማሳደግ በጣም ቀላል አይደለም.

በሌላ በኩል ፣ ሁሉም ማለት ይቻላል ዘመናዊ የመረጃ ቋቶች እጅግ በጣም ብዙ አመክንዮ እና አካላት ይይዛሉ-ግብይቶች ፣ የታማኝነት ማስተባበር ፣ ሂደቶች ፣ ተዛማጅ ጥገኞች እና ብዙ አመክንዮዎች። ለብዙ የውሂብ ጎታ ሎጂክ፣ ትንሽ ግዛት በቂ ነው። ጊጋባይት እና ቴራባይት በቀጥታ የሚጠቀሙት መጠይቆችን በቀጥታ ለማስፈጸም በተሳተፈው የውሂብ ጎታ ሎጂክ ትንሽ ክፍል ብቻ ነው።

በዚህ መሰረት፣ ሀሳቡ፡- የአመክንዮው አካል ሀገር አልባ መገደል የሚፈቅድ ከሆነ፣ መሰረቱን ለምን የመንግስት እና ሀገር የለሽ ክፍሎችን አንከፋፈልም።

ለOLAP መፍትሄዎች አገልጋይ አልባ

ተግባራዊ ምሳሌዎችን በመጠቀም የውሂብ ጎታውን ወደ ስቴት እና አገር አልባ ክፍሎች መቁረጥ ምን እንደሚመስል እንመልከት።

ወደ አገልጋይ አልባ የውሂብ ጎታዎች - እንዴት እና ለምን

ለምሳሌ፣ የትንታኔ ዳታቤዝ አለን።ውጫዊ መረጃ (በስተግራ ያለው ቀይ ሲሊንደር)፣ መረጃን ወደ ዳታቤዝ የሚጭን የኢቲኤል ሂደት እና የSQL ጥያቄዎችን ወደ ዳታቤዙ የሚልክ ተንታኝ። ይህ የሚታወቅ የመረጃ ማከማቻ አሰራር ዘዴ ነው።

በዚህ እቅድ ውስጥ፣ ETL በሁኔታዊ ሁኔታ አንድ ጊዜ ይከናወናል። ከዚያ በኋላ መጠይቆችን የሚልኩበት ነገር እንዲኖር የውሂብ ጎታ በ ETL በተሞላ መረጃ ለሚሰራባቸው አገልጋዮች ያለማቋረጥ መክፈል ያስፈልግዎታል።

በAWS Athena Serverless ውስጥ የተተገበረ አማራጭ አካሄድን እንመልከት። የወረደ ውሂብ የሚከማችበት በቋሚነት የተወሰነ ሃርድዌር የለም። ከዚህ ይልቅ፡-

  • ተጠቃሚው የSQL ጥያቄን ለአቴና ያቀርባል። አቴና አመቻች የSQL ጥያቄን ይመረምራል እና መጠይቁን ለማስፈጸም የሚያስፈልገውን ልዩ ውሂብ ለማግኘት ሜታዳታ ማከማቻውን (ሜታዳታ) ይፈልጋል።
  • አመቻቹ, በተሰበሰበው መረጃ ላይ በመመስረት, አስፈላጊውን ውሂብ ከውጭ ምንጮች ወደ ጊዜያዊ ማከማቻ (ጊዜያዊ የውሂብ ጎታ) ያወርዳል.
  • ከተጠቃሚው የ SQL ጥያቄ በጊዜያዊ ማከማቻ ውስጥ ይከናወናል እና ውጤቱም ለተጠቃሚው ይመለሳል.
  • ጊዜያዊ ማከማቻ ተጠርጓል እና ሀብቶች ተለቀቁ።

በዚህ አርክቴክቸር ውስጥ ጥያቄውን ለመፈጸም ሂደት ብቻ እንከፍላለን. ምንም ጥያቄዎች የሉም - ምንም ወጪዎች የሉም።

ወደ አገልጋይ አልባ የውሂብ ጎታዎች - እንዴት እና ለምን

ይህ የስራ አካሄድ ነው እና በአቴና አገልጋይ አልባ ብቻ ሳይሆን በ Redshift Spectrum (በAWS) ውስጥም ይተገበራል።

የአቴና ምሳሌ እንደሚያሳየው አገልጋይ አልባ ዳታቤዝ በአስር እና በመቶዎች በሚቆጠር ቴራባይት ዳታ በእውነተኛ ጥያቄዎች ላይ እንደሚሰራ ያሳያል። በመቶዎች የሚቆጠሩ ቴራባይት በመቶዎች የሚቆጠሩ አገልጋዮችን ይፈልጋሉ ነገርግን ለእነሱ መክፈል የለብንም - ለጥያቄዎቹ እንከፍላለን። እንደ ቬርቲካ ካሉ ልዩ የትንታኔ ዳታቤዝ ጋር ሲወዳደር የእያንዳንዱ ጥያቄ ፍጥነት (በጣም) ዝቅተኛ ነው፣ ነገር ግን ለእረፍት ጊዜ ክፍያ አንከፍልም።

እንዲህ ዓይነቱ የመረጃ ቋት ለብርቅዬ የትንታኔ አድ-ሆክ መጠይቆች ተፈጻሚ ይሆናል። ለምሳሌ፣ በድንገት በሆነ ግዙፍ የውሂብ መጠን ላይ መላምትን ለመሞከር ስንወስን። አቴና ለእነዚህ ጉዳዮች ተስማሚ ነው. ለመደበኛ ጥያቄዎች እንዲህ ዓይነቱ ሥርዓት ውድ ነው. በዚህ አጋጣሚ ውሂቡን በአንዳንድ ልዩ መፍትሄዎች መሸጎጫ።

ለOLTP መፍትሄዎች አገልጋይ አልባ

የቀደመው ምሳሌ የ OLAP (ትንታኔ) ተግባራትን ተመልክቷል። አሁን የOLTP ተግባራትን እንይ።

ሊሰፋ የሚችል PostgreSQL ወይም MySQL እናስብ። መደበኛ የሚተዳደር ለምሳሌ PostgreSQL ወይም MySQL በትንሹ ሀብቶች እናነሳ። ምሳሌው ብዙ ጭነት ሲቀበል፣ የንባብ ጭነቱን ከፊል የምናከፋፍልባቸውን ተጨማሪ ቅጂዎች እናገናኛለን። ምንም ጥያቄዎች ወይም ጭነት ከሌሉ ቅጂዎቹን እናጠፋለን። የመጀመሪያው ምሳሌ ጌታው ነው, የተቀሩት ደግሞ ቅጂዎች ናቸው.

ይህ ሃሳብ Aurora Serverless AWS በሚባል ዳታቤዝ ውስጥ ተተግብሯል። መርሆው ቀላል ነው፡ ከውጪ መተግበሪያዎች የሚቀርቡ ጥያቄዎች በፕሮክሲ መርከቦች ተቀባይነት አላቸው። የጭነቱን መጨመር ሲመለከት የኮምፒዩተር ሃብቶችን ከቅድመ-ሙቅ አነስተኛ ሁኔታዎች ይመድባል - ግንኙነቱ በተቻለ ፍጥነት ይከናወናል. የማሰናከል አጋጣሚዎች በተመሳሳይ መንገድ ይከሰታሉ.

በአውሮራ ውስጥ የAurora Capacity Unit፣ ACU ጽንሰ-ሀሳብ አለ። ይህ (በሁኔታዊ) ምሳሌ (አገልጋይ) ነው። እያንዳንዱ የተወሰነ ACU ጌታ ወይም ባሪያ ሊሆን ይችላል. እያንዳንዱ አቅም ዩኒት የራሱ ራም ፣ ፕሮሰሰር እና አነስተኛ ዲስክ አለው። በዚህ መሠረት አንዱ ጌታ ነው, የተቀሩት ቅጂዎች ብቻ ይነበባሉ.

የእነዚህ አውሮራ አቅም ክፍሎች ብዛት የሚዋቀር ልኬት ነው። ዝቅተኛው መጠን አንድ ወይም ዜሮ ሊሆን ይችላል (በዚህ ጉዳይ ላይ, ምንም ጥያቄዎች ከሌሉ የውሂብ ጎታ አይሰራም).

ወደ አገልጋይ አልባ የውሂብ ጎታዎች - እንዴት እና ለምን

መሰረቱ ጥያቄዎችን ሲቀበል፣ የተኪው ፍሊት ኦውራ አቅም ዩኒትስን ያሳድጋል፣ ይህም የስርዓቱን የአፈጻጸም ሀብቶች ይጨምራል። ሀብቶችን የመጨመር እና የመቀነስ ችሎታ ስርዓቱ ሀብቶችን "እንዲያንቀሳቅስ" ያስችለዋል-የግለሰብ ACUዎችን በራስ-ሰር ያሳዩ (በአዲሶቹ መተካት) እና ሁሉንም ወቅታዊ ዝመናዎች በተወገዱ ሀብቶች ላይ ያሰራጫሉ።

የ Aurora Serverless መሰረት የንባብ ሸክሙን ሊለካው ይችላል። ነገር ግን ሰነዱ ይህንን በቀጥታ አይናገርም. ባለብዙ-ማስተር ማንሳት እንደሚችሉ ሊሰማቸው ይችላል። ምንም አስማት የለም.

ይህ ዳታቤዝ ሊገመት በማይችል ተደራሽነት ላይ ከፍተኛ መጠን ያለው ገንዘብ ከማውጣት ለመዳን በጣም ተስማሚ ነው። ለምሳሌ፣ MVP ወይም የግብይት የንግድ ካርድ ጣቢያዎችን ስንፈጥር ብዙውን ጊዜ የተረጋጋ ጭነት አንጠብቅም። በዚህ መሠረት, ምንም መዳረሻ ከሌለ, ለአብነት ክፍያ አንከፍልም. ያልተጠበቀ ጭነት ሲከሰት ለምሳሌ ከኮንፈረንስ ወይም የማስታወቂያ ዘመቻ በኋላ ብዙ ሰዎች ወደ ጣቢያው ይጎበኛሉ እና ጭነቱ በከፍተኛ ሁኔታ ይጨምራል, አውሮራ ሰርቨር አልባስ ይህን ጭነት በራስ-ሰር ይወስዳል እና የጎደሉትን ሀብቶች (ACU) በፍጥነት ያገናኛል. ከዚያ ኮንፈረንሱ ያልፋል ፣ ሁሉም ሰው ስለ ፕሮቶታይፕ ይረሳል ፣ አገልጋዮች (ACU) ይጨልማሉ ፣ እና ወጪዎች ወደ ዜሮ ይወድቃሉ - ምቹ።

ይህ መፍትሄ ለተረጋጋ ከፍተኛ ጭነት ተስማሚ አይደለም, ምክንያቱም የጽሕፈት ሸክሙን አይጨምርም. እነዚህ ሁሉ የሀብቶች ግንኙነቶች እና ግንኙነቶች የሚከሰቱት “ሚዛን ነጥብ” ተብሎ በሚጠራው - የውሂብ ጎታ በግብይት ወይም በጊዜያዊ ሰንጠረዦች የማይደገፍበት ጊዜ ውስጥ ነው። ለምሳሌ፣ በአንድ ሳምንት ጊዜ ውስጥ የመለኪያ ነጥቡ ላይከሰት ይችላል፣ እና መሰረቱ በተመሳሳይ ሃብቶች ላይ ይሰራል እና በቀላሉ ሊሰፋ ወይም ሊዋዋል አይችልም።

ምንም አስማት የለም - እሱ መደበኛ PostgreSQL ነው። ነገር ግን ማሽኖችን የመጨመር እና የማቋረጥ ሂደት በከፊል አውቶማቲክ ነው.

በንድፍ አገልጋይ አልባ

አውሮራ ሰርቨር አልባ ከሰርቨር አልባ አንዳንድ ጥቅማ ጥቅሞች ለመጠቀም ለዳመና በድጋሚ የተፃፈ የቆየ ዳታቤዝ ነው። እና አሁን በመጀመሪያ ለደመናው የተፃፈውን መሠረት እነግርዎታለሁ ፣ ለአገልጋይ-አልባ አቀራረብ - አገልጋይ-በ-ንድፍ። በአካላዊ አገልጋዮች ላይ ይሰራል ተብሎ ሳይታሰብ ወዲያውኑ ተፈጠረ።

ይህ መሠረት የበረዶ ቅንጣት ተብሎ ይጠራል. ሶስት ቁልፍ ብሎኮች አሉት።

ወደ አገልጋይ አልባ የውሂብ ጎታዎች - እንዴት እና ለምን

የመጀመሪያው የሜታዳታ እገዳ ነው። ይህ ፈጣን የማህደረ ትውስታ አገልግሎት ከደህንነት፣ ዲበዳታ፣ ግብይቶች እና መጠይቅ ማመቻቸት ጋር ያሉ ችግሮችን የሚፈታ (በስተግራ ባለው ስእል ላይ የሚታየው) ነው።

ሁለተኛው እገዳ ለስሌቶች የሚሆን የቨርቹዋል ኮምፒውቲንግ ስብስቦች ስብስብ ነው (በምሳሌው ላይ ሰማያዊ ክበቦች ስብስብ አለ).

ሦስተኛው እገዳ በ S3 ላይ የተመሰረተ የውሂብ ማከማቻ ስርዓት ነው. S3 በAWS ውስጥ ልኬት የሌለው የነገር ማከማቻ ነው፣ ልክ እንደ ልኬት የሌለው Dropbox ለንግድ።

የቀዝቃዛ ጅምር በማሰብ የበረዶ ቅንጣት እንዴት እንደሚሰራ እንይ። ያም ማለት የውሂብ ጎታ አለ, ውሂቡ በውስጡ ተጭኗል, ምንም አሂድ ጥያቄዎች የሉም. በዚህ መሠረት ለዳታቤዝ ምንም ጥያቄዎች ከሌሉ ፈጣን የሜታዳታ አገልግሎትን (የመጀመሪያው ብሎክ) ከፍ አድርገናል። እና የ S3 ማከማቻ አለን, የጠረጴዛ ውሂብ የሚከማችበት, ወደ ማይክሮፋይሎች ተከፋፍሏል. ለቀላልነት: ሰንጠረዡ ግብይቶችን ከያዘ, ማይክሮፓርትስ የግብይቶች ቀናት ናቸው. እያንዳንዱ ቀን የተለየ ማይክሮፓርትመንት፣ የተለየ ፋይል ነው። እና የውሂብ ጎታው በዚህ ሁነታ ሲሰራ, በመረጃው የተያዘውን ቦታ ብቻ ይከፍላሉ. ከዚህም በላይ በእያንዳንዱ መቀመጫ ላይ ያለው ፍጥነት በጣም ዝቅተኛ ነው (በተለይም ጉልህ የሆነ መጨናነቅን ግምት ውስጥ በማስገባት). የሜታዳታ አገልግሎቱም ያለማቋረጥ ይሰራል፣ ነገር ግን መጠይቆችን ለማመቻቸት ብዙ ግብዓቶች አያስፈልጉዎትም፣ እና አገልግሎቱ እንደ መጋራት ሊቆጠር ይችላል።

አሁን አንድ ተጠቃሚ ወደ የውሂብ ጎታችን መጥቶ የ SQL ጥያቄ እንደላከ እናስብ። የSQL መጠይቁን ለማስኬድ ወዲያውኑ ወደ ሜታዳታ አገልግሎት ይላካል። በዚህ መሠረት, ጥያቄ ሲደርሰው, ይህ አገልግሎት ጥያቄውን, ያለውን ውሂብ, የተጠቃሚ ፈቃዶችን ይመረምራል እና ሁሉም ነገር ደህና ከሆነ, ጥያቄውን ለማስኬድ እቅድ ያወጣል.

በመቀጠል, አገልግሎቱ የኮምፒዩተር ክላስተር መጀመርን ይጀምራል. የኮምፒውተር ክላስተር ስሌቶችን የሚያከናውኑ የአገልጋዮች ስብስብ ነው። ማለትም፣ ይህ 1 አገልጋይ፣ 2 አገልጋይ፣ 4፣ 8፣ 16፣ 32 - የፈለጋችሁትን ያህል ሊይዝ የሚችል ክላስተር ነው። ጥያቄ ጣሉ እና የዚህ ስብስብ መጀመር ወዲያውኑ ይጀምራል። በእርግጥ ሰከንዶች ይወስዳል።

ወደ አገልጋይ አልባ የውሂብ ጎታዎች - እንዴት እና ለምን

በመቀጠል፣ ክላስተር ከጀመረ በኋላ፣ ጥያቄዎን ለማስኬድ የሚያስፈልጉት ማይክሮፓፍሎች ከS3 ወደ ክላስተር መቅዳት ይጀምራሉ። ያም ማለት የ SQL ጥያቄን ለማስፈጸም ከአንድ ጠረጴዛ እና አንድ ከሁለተኛው ሁለት ክፍልፋዮች ያስፈልግዎታል ብለን እናስብ. በዚህ ሁኔታ, ሶስት አስፈላጊ ክፍፍሎች ብቻ ወደ ክላስተር ይገለበጣሉ, እና ሁሉም ጠረጴዛዎች ሙሉ በሙሉ አይደሉም. ለዚያም ነው ፣ እና በትክክል ሁሉም ነገር በአንድ የውሂብ ማእከል ውስጥ የሚገኝ እና በጣም ፈጣን በሆኑ ቻናሎች የተገናኘ ስለሆነ ፣ አጠቃላይ የማስተላለፍ ሂደት በፍጥነት ይከናወናል-በሴኮንዶች ውስጥ ፣ በጣም አልፎ አልፎ ፣ በደቂቃዎች ውስጥ ፣ ስለ አንዳንድ አስፈሪ ጥያቄዎች ካልተነጋገርን በስተቀር . በዚህ መሠረት ማይክሮፓርቲሽኖች ወደ ኮምፒተር ክላስተር ይገለበጣሉ, እና ሲጠናቀቅ, የ SQL ጥያቄ በዚህ የኮምፒዩተር ክላስተር ላይ ይከናወናል. የዚህ ጥያቄ ውጤት አንድ መስመር ፣ ብዙ መስመር ወይም ጠረጴዛ ሊሆን ይችላል - ወደ ተጠቃሚው ማውረድ ፣ በ BI መሣሪያ ለማሳየት ወይም በሌላ መንገድ እንዲጠቀም ወደ ውጫዊ ይላካሉ ።

እያንዳንዱ የSQL መጠይቅ ቀደም ሲል ከተጫነው ውሂብ ውስጥ ያሉትን ድምርን ማንበብ ብቻ ሳይሆን በመረጃ ቋቱ ውስጥ አዲስ ውሂብ መጫን/ማመንጨት ይችላል። ማለትም ፣ ለምሳሌ ፣ አዲስ መዝገቦችን ወደ ሌላ ሠንጠረዥ የሚያስገባ መጠይቅ ሊሆን ይችላል ፣ ይህም በኮምፒዩተር ክላስተር ላይ አዲስ ክፍልፍል እንዲታይ ያደርገዋል ፣ እሱም በተራው ፣ በአንድ S3 ማከማቻ ውስጥ በራስ-ሰር ይቀመጣል።

ከላይ የተገለጸው ሁኔታ ከተጠቃሚው መምጣት ጀምሮ ክላስተርን እስከማሳደግ፣ መረጃን መጫን፣ መጠይቆችን ማስፈጸም፣ ውጤት ማግኘት፣ የሚከፈለው ለተነሳው የቨርቹዋል ኮምፒውቲንግ ክላስተር፣ ቨርቹዋል መጋዘን በመጠቀም ለደቂቃዎች ክፍያ ነው። ዋጋው እንደ AWS ዞን እና ክላስተር መጠን ይለያያል፣ ግን በአማካይ በሰዓት ጥቂት ዶላር ነው። የአራት ማሽኖች ክላስተር ከሁለት ማሽን ክላስተር በእጥፍ ይበልጣል፣ የስምንት ማሽኖች ክላስተር አሁንም በእጥፍ ይበልጣል። እንደ ጥያቄዎቹ ውስብስብነት የ 16, 32 ማሽኖች አማራጮች ይገኛሉ. ግን ክላስተር በትክክል በሚሠራበት ጊዜ ለእነዚያ ደቂቃዎች ብቻ ይከፍላሉ ፣ ምክንያቱም ምንም ጥያቄዎች በማይኖሩበት ጊዜ እጃችሁን አውጡ ፣ እና ከ5-10 ደቂቃዎች መጠበቅ (ሊዋቀር የሚችል ልኬት) በራሱ ይጠፋል ፣ ሀብቶችን ነፃ አውጡ እና ነፃ ይሁኑ።

ፍፁም እውነታዊ ሁኔታ ጥያቄ ሲልኩ ክላስተር ብቅ ይላል ፣ በአንጻራዊ ሁኔታ ፣ በአንድ ደቂቃ ውስጥ ፣ ሌላ ደቂቃ ይቆጥራል ፣ ከዚያ ለመዝጋት አምስት ደቂቃዎች ፣ እና እርስዎ ለዚህ ክላስተር ሥራ ሰባት ደቂቃ ክፍያ ይጨርሳሉ ፣ እና ለወራት እና ለዓመታት አይደለም.

በነጠላ ተጠቃሚ ቅንብር ውስጥ የበረዶ ቅንጣትን በመጠቀም የተገለጸው የመጀመሪያው ሁኔታ። አሁን ብዙ ተጠቃሚዎች እንዳሉ እናስብ፣ ይህም ወደ ትክክለኛው ሁኔታ ቅርብ ነው።

ብዙ ተንታኞች እና የTableau ሪፖርቶች አሉን እንበል።

በተጨማሪም፣ በመረጃ የሚዘገንን ነገር ለመስራት የሚሞክሩ፣ በአስር ቴራባይት የሚሰሩ፣ በቢሊዮኖች እና በትሪሊዮን የሚቆጠሩ የመረጃ ረድፎችን የሚተነትኑ የፈጠራ ዳታ ሳይንቲስቶች አሉን እንበል።

ከላይ ለተገለጹት ሁለት አይነት የስራ ጫናዎች የበረዶ ቅንጣት የተለያየ አቅም ያላቸውን በርካታ ገለልተኛ የኮምፒውተር ስብስቦችን እንድታሳድግ ይፈቅድልሃል። ከዚህም በላይ እነዚህ የኮምፒዩተር ስብስቦች በተናጥል ይሰራሉ፣ ግን በጋራ ወጥነት ያለው መረጃ አላቸው።

ለብዙ የብርሃን መጠይቆች 2-3 ትናንሽ ዘለላዎችን እያንዳንዳቸው በግምት 2 ማሽኖችን ማንሳት ይችላሉ። ይህ ባህሪ ከሌሎች ነገሮች በተጨማሪ አውቶማቲክ ቅንብሮችን በመጠቀም ሊተገበር ይችላል. ስለዚህ እንዲህ ትላለህ፣ “የበረዶ ቅንጣት፣ ትንሽ ዘለላ አሳድግ። በእሱ ላይ ያለው ሸክም ከተወሰነ ግቤት በላይ ከጨመረ, ተመሳሳይ የሆነ ሰከንድ, ሶስተኛውን ከፍ ያድርጉ. ጭነቱ መቀነስ ሲጀምር ትርፍውን አጥፉ። ስለዚህ ምንም ያህል ተንታኞች መጥተው ሪፖርቶችን መመልከት ቢጀምሩ ሁሉም ሰው በቂ ሀብት አለው።

በተመሳሳይ ጊዜ ተንታኞች ተኝተው ከሆነ እና ማንም ሰው ሪፖርቶቹን አይመለከትም, ዘለላዎቹ ሙሉ በሙሉ ጨለማ ሊሆኑ ይችላሉ, እና ለእነሱ መክፈል ያቆማሉ.

በተመሳሳይ ጊዜ ለከባድ መጠይቆች (ከዳታ ሳይንቲስቶች) ለ 32 ማሽኖች አንድ በጣም ትልቅ ክላስተር ማንሳት ይችላሉ. ይህ ዘለላ የሚከፈለው ለነዚያ ደቂቃዎች እና ሰዓቶች ብቻ ነው ግዙፍ ጥያቄዎ እዚያ ሲሄድ።

ከዚህ በላይ የተገለጸው እድል 2 ብቻ ሳይሆን ተጨማሪ የስራ ጫናዎችን ወደ ክላስተር ለመከፋፈል ይፈቅድልዎታል (ኢቲኤል፣ ክትትል፣ ሪፖርቱ ማቴሪያል፣...)።

የበረዶ ቅንጣትን እናጠቃልል። መሰረቱ አንድ የሚያምር ሀሳብ እና ሊሠራ የሚችል አተገባበርን ያጣምራል. ManyChat ላይ፣ ያለንን ሁሉንም ውሂብ ለመተንተን የበረዶ ቅንጣትን እንጠቀማለን። እንደ ምሳሌው, ከ 5 እስከ 9, የተለያየ መጠን ያላቸው ሶስት ስብስቦች የሉንም. ለአንዳንድ ስራዎች የተለመደ ባለ 16-ማሽን፣ 2-ማሽን እና እንዲሁም እጅግ በጣም ትንሽ የሆነ 1-ማሽን አለን። ጭነቱን በተሳካ ሁኔታ ያሰራጩ እና ብዙ እንድንቆጥብ ያስችሉናል.

የመረጃ ቋቱ የማንበብ እና የመፃፍ ጭነትን በተሳካ ሁኔታ ያስተካክላል። ይህ ከተመሳሳይ "Aurora" ጋር ሲነፃፀር ትልቅ ልዩነት እና ትልቅ ግኝት ነው, ይህም የማንበብ ሸክሙን ብቻ ተሸክሟል. የበረዶ ቅንጣት በነዚህ የኮምፒዩተር ስብስቦች የመጻፍ ስራዎን መጠን እንዲጨምሩ ያስችልዎታል። ይኸውም እንደገለጽኩት በማንዋይቻት ውስጥ ብዙ ክላስተር እንጠቀማለን፣ትንንሽ እና እጅግ በጣም ትንሽ ዘለላዎች በዋናነት ለኢቲኤል፣ መረጃን ለመጫን ያገለግላሉ። እና ተንታኞች ቀድሞውኑ በመካከለኛ ስብስቦች ላይ ይኖራሉ ፣ እነሱ በ ETL ጭነት በጭራሽ አይጎዱም ፣ ስለሆነም በጣም በፍጥነት ይሰራሉ።

በዚህ መሠረት የውሂብ ጎታው ለ OLAP ተግባራት ተስማሚ ነው. ሆኖም ግን, በሚያሳዝን ሁኔታ, ለ OLTP የስራ ጫናዎች ገና ተፈጻሚ አይሆንም. በመጀመሪያ ፣ ይህ ዳታቤዝ አምድ ነው ፣ ከሁሉም መዘዞች ጋር። በሁለተኛ ደረጃ ፣ አቀራረቡ ራሱ ፣ ለእያንዳንዱ ጥያቄ ፣ አስፈላጊ ከሆነ ፣ የኮምፒዩተር ክላስተር ያነሳሉ እና በመረጃ ያጥለቀልቁታል ፣ በሚያሳዝን ሁኔታ ፣ ለ OLTP ጭነት ገና ፈጣን አይደለም። ለ OLAP ተግባራት ሰከንድ መጠበቅ የተለመደ ነው፣ ለ OLTP ተግባራት ግን ተቀባይነት የለውም፣ 100 ms የተሻለ ይሆናል፣ ወይም 10 ms ደግሞ የተሻለ ይሆናል።

ውጤቱ

አገልጋይ አልባ ዳታቤዝ የሚቻለው ዳታቤዙን ሀገር የለሽ እና መንግስታዊ ክፍሎችን በመከፋፈል ነው። ከላይ በተጠቀሱት ምሳሌዎች ሁሉ፣ የግዛቱ ክፍል በአንጻራዊ ሁኔታ ሲታይ፣ ማይክሮ ክፍልፋዮችን በS3 ውስጥ ማከማቸት፣ እና አገር አልባው አመቻች፣ ከዲበዳታ ጋር አብሮ በመስራት፣ እንደ ገለልተኛ ቀላል ክብደት ያለው ሀገር አልባ አገልግሎቶች ሆነው የሚነሱ የደህንነት ጉዳዮችን እንደሚያስተናግድ አስተውለህ ይሆናል።

የSQL መጠይቆችን ማስፈጸም እንደ ብርሃን-ግዛት አገልግሎቶች እንደ ስኖውፍላክ ኮምፒውቲንግ ክላስተሮች ያሉ አገልጋይ በሌለው ሁነታ ብቅ ብለው ሊታዩ ይችላሉ፣ አስፈላጊውን ውሂብ ብቻ ያውርዱ፣ መጠይቁን ያስፈጽሙ እና “ውጣ።

አገልጋይ አልባ የምርት ደረጃ የውሂብ ጎታዎች ለአገልግሎት ዝግጁ ናቸው፣ እየሰሩ ናቸው። እነዚህ አገልጋይ አልባ የውሂብ ጎታዎች የ OLAP ተግባራትን ለመቆጣጠር አስቀድመው ዝግጁ ናቸው። እንደ አለመታደል ሆኖ፣ ለ OLTP ተግባራት ጥቅም ላይ ይውላሉ ... ከንዑሳን ጋር፣ ገደቦች ስላሉት። በአንድ በኩል, ይህ መቀነስ ነው. ግን, በሌላ በኩል, ይህ እድል ነው. ምናልባት ከአንባቢዎቹ አንዱ የ OLTP ዳታቤዝ ያለአውሮራ ውሱንነት ሙሉ በሙሉ አገልጋይ የሌለው የሚያደርግበትን መንገድ ያገኝ ይሆናል።

አስደሳች ሆኖ እንዳገኙት ተስፋ አደርጋለሁ። አገልጋይ አልባ ወደፊት ነው :)

ምንጭ: hab.com

አስተያየት ያክሉ