የፋይል ቅርጸቶች በትልቁ ውሂብ፡ አጭር ትምህርታዊ ፕሮግራም

የፋይል ቅርጸቶች በትልቁ ውሂብ፡ አጭር ትምህርታዊ ፕሮግራም
የአየር ሁኔታ አምላክነት በሬማሪን

ቡድን Mail.ru የደመና መፍትሄዎች ቅናሾች የጽሑፍ ትርጉም መሐንዲስ ራህል ባቲያ ከ Clairvoyant ስለ ምን የፋይል ቅርጸቶች በትልቁ ውሂብ ውስጥ እንዳሉ፣ የ Hadoop ቅርጸቶች በጣም የተለመዱ ባህሪያት ምንድናቸው እና የትኛውን ቅርጸት መጠቀም የተሻለ እንደሆነ።

የተለያዩ የፋይል ቅርጸቶች ለምን ያስፈልጋሉ?

እንደ MapReduce እና Spark ላሉ HDFS የነቁ አፕሊኬሽኖች ዋነኛ የአፈጻጸም ማነቆ መረጃን ለመፈለግ፣ማንበብ እና ለመፃፍ የሚፈጀው ጊዜ ነው። እነዚህ ችግሮች ከተስተካከሉ ይልቅ እየተሻሻለ የመጣ ንድፍ ካለን ወይም አንዳንድ የማከማቻ ገደቦች ካሉ ትላልቅ የውሂብ ስብስቦችን ለማስተዳደር ባለው ችግር ይጠቃለላሉ።

ትልቅ መረጃን ማካሄድ በማከማቻው ንዑስ ስርዓት ላይ ያለውን ጭነት ይጨምራል - ሃዱፕ ስህተትን መቻቻልን ለማግኘት ውሂብን ያለማቋረጥ ያከማቻል። ከዲስኮች በተጨማሪ ፕሮሰሰር፣ ኔትወርክ፣ የግብአት/ውፅዓት ስርዓት እና የመሳሰሉት ተጭነዋል። የመረጃው መጠን እየጨመረ በሄደ መጠን እሱን የማቀናበር እና የማከማቸት ዋጋ እንዲሁ ይጨምራል።

ውስጥ የተለያዩ የፋይል ቅርጸቶች Hadoop እነዚህን ችግሮች በትክክል ለመፍታት ፈለሰፈ. ተገቢውን የፋይል ቅርጸት መምረጥ አንዳንድ ጠቃሚ ጥቅሞችን ሊሰጥ ይችላል-

  1. ፈጣን የንባብ ጊዜ።
  2. ፈጣን የመቅጃ ጊዜ።
  3. የተጋሩ ፋይሎች።
  4. ለ schema ዝግመተ ለውጥ ድጋፍ.
  5. የተዘረጋ የማመቅ ድጋፍ።

አንዳንድ የፋይል ቅርጸቶች ለአጠቃላይ ጥቅም የታሰቡ ናቸው፣ ሌሎች ደግሞ ለተወሰኑ አጠቃቀሞች፣ እና አንዳንዶቹ የተወሰኑ የውሂብ ባህሪያትን ለማሟላት የተነደፉ ናቸው። ስለዚህ ምርጫው በጣም ትልቅ ነው.

Avro ፋይል ቅርጸት

የውሂብ ተከታታይነት አቭሮ በሰፊው ጥቅም ላይ ይውላል - እሱ ሕብረቁምፊ የተመሠረተበ Hadoop ውስጥ ያለ የሕብረቁምፊ ውሂብ ማከማቻ ቅርጸት። ንድፉን በJSON ቅርጸት ያከማቻል፣ ይህም በማንኛውም ፕሮግራም ለማንበብ እና ለመተርጎም ቀላል ያደርገዋል። ውሂቡ ራሱ በሁለትዮሽ ፎርማት፣ የታመቀ እና ቀልጣፋ ነው።

የአቭሮ ተከታታይነት ስርዓት የቋንቋ ገለልተኛ ነው። ፋይሎች በተለያዩ ቋንቋዎች ሊሠሩ ይችላሉ፣ በአሁኑ ጊዜ C፣ C++፣ C#፣ Java፣ Python እና Ruby።

የአቭሮ ቁልፍ ባህሪ በጊዜ ሂደት ለሚለዋወጡት የውሂብ መርሃ ግብሮች ጠንካራ ድጋፍ ነው ማለትም በዝግመተ ለውጥ። አቭሮ የመርሃግብር ለውጦችን ይረዳል—መስኮችን መሰረዝ፣ ማከል ወይም መቀየር።

አቭሮ የተለያዩ የውሂብ አወቃቀሮችን ይደግፋል። ለምሳሌ፣ ድርድር፣ የተዘረዘረ አይነት እና ንዑስ መዝገብ የያዘ መዝገብ መፍጠር ትችላለህ።

የፋይል ቅርጸቶች በትልቁ ውሂብ፡ አጭር ትምህርታዊ ፕሮግራም
ይህ ቅርጸት የውሂብ ሐይቅ ወደ ማረፊያ (ሽግግር) ዞን ለመጻፍ ተስማሚ ነው (የውሂብ ሐይቅ, ወይም የውሂብ ሐይቅ - በቀጥታ ከመረጃ ምንጮች በተጨማሪ የተለያዩ አይነት መረጃዎችን ለማከማቸት የአብነት ስብስብ).

ስለዚህ ይህ ቅርጸት በሚከተሉት ምክንያቶች ወደ የውሂብ ሐይቅ ማረፊያ ዞን ለመፃፍ በጣም ተስማሚ ነው ።

  1. ከዚህ ዞን የሚገኘው መረጃ አብዛኛውን ጊዜ ሙሉ ለሙሉ የሚነበበው ለቀጣይ ስርአቶች ለቀጣይ ሂደት ነው - እና በረድፍ ላይ የተመሰረተ ቅርጸት በዚህ ጉዳይ ላይ የበለጠ ቀልጣፋ ነው።
  2. የታችኞቹ ስርአቶች የሼማ ሰንጠረዦችን ከፋይሎች በቀላሉ ማውጣት ይችላሉ—በውጫዊ ሜታ ማከማቻ ውስጥ ንድፎችን ለየብቻ ማከማቸት አያስፈልግም።
  3. በዋናው ንድፍ ላይ የሚደረግ ማንኛውም ለውጥ በቀላሉ ይከናወናል (የሼማ ኢቮሉሽን)።

የፓርኬት ፋይል ቅርጸት

ፓርኬት ለሃዱፕ የሚያከማች ክፍት ምንጭ ፋይል ቅርጸት ነው። በጠፍጣፋ የአዕማድ ቅርፀት የተቀመጡ የውሂብ አወቃቀሮች.

ከተለምዷዊ የረድፍ አቀራረብ ጋር ሲነጻጸር, ፓርኬት በማከማቻ እና በአፈፃፀም የበለጠ ቀልጣፋ ነው.

ይህ በተለይ ከሰፊ (ብዙ ዓምዶች) ሰንጠረዥ የተወሰኑ ዓምዶችን ለሚያነቡ መጠይቆች ጠቃሚ ነው። ለፋይል ቅርፀቱ ምስጋና ይግባውና አስፈላጊዎቹ ዓምዶች ብቻ ይነበባሉ, ስለዚህ I / O በትንሹ ይጠበቃል.

ትንሽ ማብራሪያ እና ማብራሪያበHadoop ውስጥ ያለውን የፓርኬት ፋይል ቅርጸት በተሻለ ለመረዳት፣ አምድ ላይ የተመሰረተ - ማለትም columnar - ቅርጸት ምን እንደሆነ እንይ። ይህ ቅርጸት ለእያንዳንዱ አምድ አንድ ላይ ተመሳሳይ እሴቶችን ያከማቻል።

ለምሳሌመዝገቡ መታወቂያ፣ ስም እና የመምሪያውን መስኮች ያካትታል። በዚህ ሁኔታ, ሁሉም የመታወቂያው አምድ ዋጋዎች አንድ ላይ ይቀመጣሉ, እንዲሁም የስም ዓምድ ዋጋዎች, ወዘተ. ጠረጴዛው እንደዚህ ያለ ነገር ይመስላል:

ID
ስም
መምሪያ

1
emp1 እ.ኤ.አ.
d1

2
emp2 እ.ኤ.አ.
d2

3
emp3 እ.ኤ.አ.
d3

በሕብረቁምፊ ቅርጸት ውሂቡ እንደሚከተለው ይቀመጣል።

1
emp1 እ.ኤ.አ.
d1
2
emp2 እ.ኤ.አ.
d2
3
emp3 እ.ኤ.አ.
d3

በአምድ ፋይል ቅርጸት፣ ተመሳሳይ ውሂብ እንደሚከተለው ይቀመጣል፡-

1
2
3
emp1 እ.ኤ.አ.
emp2 እ.ኤ.አ.
emp3 እ.ኤ.አ.
d1
d2
d3

ከጠረጴዛ ላይ ብዙ ዓምዶችን ለመጠየቅ ሲያስፈልግ የአምድ ቅርጸቱ የበለጠ ቀልጣፋ ነው። የሚፈለጉትን ዓምዶች ብቻ ነው የሚያነበው ምክንያቱም አጠገባቸው ናቸው። በዚህ መንገድ የI/O ስራዎች በትንሹ ይቀመጣሉ።

ለምሳሌ፣ የNAME አምድ ብቻ ነው የሚያስፈልግህ። ውስጥ የሕብረቁምፊ ቅርጸት በመረጃ ቋቱ ውስጥ ያለው እያንዳንዱ መዝገብ መጫን፣ በመስክ መተንተን እና ከዚያ የNAME ውሂብ ማውጣት አለበት። የዓምድ ቅርፀቱ በቀጥታ ወደ ስም ዓምድ ለመቆፈር ይፈቅድልዎታል ምክንያቱም ሁሉም የዚያ አምድ እሴቶች በአንድ ላይ ስለሚከማቹ። ሙሉውን ቅጂ መቃኘት አያስፈልግም።

ስለዚህ የዓምድ ቅርፀቱ የጥያቄ አፈጻጸምን ያሻሽላል ምክንያቱም ወደሚፈለጉት አምዶች ለመድረስ ትንሽ የመፈለጊያ ጊዜ ስለሚፈልግ እና የሚፈለጉት ዓምዶች ብቻ ስለሚነበቡ የI/O ኦፕሬሽኖችን ቁጥር ይቀንሳል።

ልዩ ከሆኑት ባህሪያት አንዱ ፓርኩር በዚህ ቅርጸት ማድረግ ይችላል መረጃን ከጎጆው መዋቅሮች ጋር ያከማቹ. ይህ ማለት በፓርኬት ፋይል ውስጥ ፣ በጎጆው ውስጥ ያሉ መስኮች እንኳን በጎጆው መዋቅር ውስጥ ያሉትን ሁሉንም መስኮች ማንበብ ሳያስፈልግ በተናጥል ሊነበቡ ይችላሉ። ፓርኬት የጎጆ አወቃቀሮችን ለማከማቸት የመሰባበር እና የመሰብሰቢያ ስልተ-ቀመር ይጠቀማል።

የፋይል ቅርጸቶች በትልቁ ውሂብ፡ አጭር ትምህርታዊ ፕሮግራም
በHadoop ውስጥ ያለውን የፓርኬት ፋይል ቅርጸት ለመረዳት የሚከተሉትን ውሎች ማወቅ አለብዎት።

  1. የሕብረቁምፊዎች ቡድን (የረድፍ ቡድን)፡ አመክንዮአዊ አግድም የውሂብ ክፍፍል ወደ ረድፎች። የረድፍ ቡድን በውሂብ ስብስብ ውስጥ የእያንዳንዱ አምድ ቁርጥራጭን ያካትታል።
  2. የአምድ ቁርጥራጭ (የአምድ ቁራጭ): የአንድ የተወሰነ አምድ ቁራጭ። እነዚህ የአምድ ቁርጥራጮች በአንድ የተወሰነ የረድፎች ቡድን ውስጥ ይኖራሉ እና በፋይሉ ውስጥ ቀጣይ እንደሚሆኑ ዋስትና ተሰጥቷቸዋል።
  3. ክልሉ (ገጽ)፡- የአምድ ቁርጥራጭ እርስ በርስ በተፃፉ ገፆች የተከፋፈሉ ናቸው። ገጾቹ የጋራ ርዕስ ስላላቸው በማንበብ ጊዜ አላስፈላጊ የሆኑትን መዝለል ይችላሉ።

የፋይል ቅርጸቶች በትልቁ ውሂብ፡ አጭር ትምህርታዊ ፕሮግራም
እዚህ ርዕሱ የአስማት ቁጥር ብቻ ይዟል PAR1 (4 ባይት) ፋይሉን እንደ Parquet ፋይል የሚለይ።

ግርጌ የሚከተለውን ይላል፡-

  1. የእያንዳንዱ አምድ ሜታዳታ መነሻ መጋጠሚያዎችን የያዘ ዲበ ውሂብ ፋይል ያድርጉ። በማንበብ ጊዜ፣ ሁሉንም የፍላጎት ክፍሎችን ለማግኘት መጀመሪያ የፋይሉን ሜታዳታ ማንበብ አለቦት። የአምዱ ክፍሎች በቅደም ተከተል መነበብ አለባቸው። ሌላ ሜታዳታ የቅርጸት ስሪቱን፣ ንድፉን እና ማንኛውም ተጨማሪ የቁልፍ-እሴት ጥንዶችን ያካትታል።
  2. የዲበ ውሂብ ርዝመት (4 ባይት)።
  3. አስማት ቁጥር PAR1 (4 ባይት)።

የ ORC ፋይል ቅርጸት

የተመቻቸ የረድፍ-አምድ ፋይል ቅርጸት (የተመቻቸ የረድፍ አምድ፣ CRO) መረጃን ለማከማቸት በጣም ቀልጣፋ መንገድ ያቀርባል እና የሌሎች ቅርጸቶችን ውሱንነት ለማሸነፍ የተነደፈ ነው። ትልቅ ፣ ውስብስብ ወይም በእጅ የተያዙ ኢንዴክሶችን መገንባት ሳያስፈልግ አላስፈላጊ ዝርዝሮችን እንዲዘሉ የሚያስችልዎ መረጃን ፍጹም በሆነ የታመቀ ቅጽ ያከማቻል።

የ ORC ቅርጸት ጥቅሞች፡-

  1. አንድ ፋይል የእያንዳንዱ ተግባር ውጤት ነው, ይህም በ NameNode (ስም መስቀለኛ መንገድ) ላይ ያለውን ጭነት ይቀንሳል.
  2. የDateTime፣ የአስርዮሽ እና ውስብስብ የውሂብ አይነቶችን (መዋቅር፣ ዝርዝር፣ ካርታ እና ህብረትን ጨምሮ) ለ Hive የውሂብ አይነቶች ድጋፍ።
  3. በተለያዩ የሪከርድ አንባቢ ሂደቶች አንድ አይነት ፋይል በአንድ ጊዜ ማንበብ።
  4. ለጠቋሚዎች ሳይቃኙ ፋይሎችን የመከፋፈል ችሎታ።
  5. በፋይል ግርጌ ላይ ባለው መረጃ ላይ በመመስረት ለንባብ/መፃፍ ሂደቶች የሚቻለውን ከፍተኛው የክምር ማህደረ ትውስታ ምደባ ግምት።
  6. ዲበ ውሂብ በፕሮቶኮል ቋት ሁለትዮሽ ተከታታይ ቅርጸት ይከማቻል፣ ይህም መስኮችን ለመጨመር እና ለማስወገድ ያስችላል።

የፋይል ቅርጸቶች በትልቁ ውሂብ፡ አጭር ትምህርታዊ ፕሮግራም
ORC የሕብረቁምፊዎች ስብስቦችን በአንድ ፋይል ያከማቻል፣ እና በክምችቱ ውስጥ የሕብረቁምፊ ውሂብ በአምድ ቅርጸት ይከማቻል።

የ ORC ፋይል በፋይሉ ግርጌ ላይ ግርፋት የሚባሉ መስመሮችን እና ደጋፊ መረጃዎችን ያከማቻል። በፋይሉ መጨረሻ ላይ ያለው ፖስትስክሪፕት የመጨመቂያ መለኪያዎችን እና የተጨመቀው ግርጌ መጠን ይዟል።

ነባሪው የጭረት መጠን 250 ሜባ ነው። በእንደዚህ አይነት ትላልቅ ጭረቶች ምክንያት, ከኤችዲኤፍኤስ ማንበብ የበለጠ በብቃት ይከናወናል: በትላልቅ ተላላፊ ብሎኮች.

የፋይሉ ግርጌ በፋይሉ ውስጥ ያሉትን የሌኖች ዝርዝር፣ የረድፎችን ብዛት በአንድ መስመር እና የእያንዳንዱን አምድ የውሂብ አይነት ይመዘግባል። ለእያንዳንዱ አምድ የተገኘው የቆጠራ፣ ደቂቃ፣ ከፍተኛ እና ድምር ዋጋ እዚያ ተጽፏል።

የዝርፊያው ግርጌ የዥረት መገኛ ቦታዎች ማውጫ ይዟል።

የረድፍ ውሂብ ጠረጴዛዎችን ሲቃኝ ጥቅም ላይ ይውላል.

የመረጃ ጠቋሚ መረጃ ለእያንዳንዱ አምድ አነስተኛ እና ከፍተኛ እሴቶችን እና በእያንዳንዱ አምድ ውስጥ ያሉትን የረድፎች አቀማመጥ ያካትታል። የ ORC ኢንዴክሶች ጥቅም ላይ የሚውሉት ጭረቶችን እና የረድፍ ቡድኖችን ለመምረጥ ብቻ ነው እንጂ ጥያቄዎችን ለመመለስ አይደለም።

የተለያዩ የፋይል ቅርጸቶችን ማወዳደር

አቭሮ ከፓርኬት ጋር ሲነጻጸር

  1. አቭሮ የረድፍ ማከማቻ ቅርጸት ሲሆን ፓርኬት ግን ውሂብ በአምዶች ውስጥ ያከማቻል።
  2. ፓርኬት ለትንታኔ መጠይቆች የበለጠ ተስማሚ ነው፣ ይህ ማለት የንባብ ክዋኔዎች እና የመጠይቅ ዳታ ከመፃፍ የበለጠ ቀልጣፋ ናቸው።
  3. በአቭሮ ውስጥ የመፃፍ ስራዎች ከፓርኬት ይልቅ በብቃት ይከናወናሉ።
  4. አቭሮ ከወረዳ ዝግመተ ለውጥ ጋር በብስለት ይሠራል። ፓርኬት የመርሃግብር መደመርን ብቻ ይደግፋል፣ አቭሮ ደግሞ ባለብዙ ተግባር ዝግመተ ለውጥን ማለትም አምዶችን ማከል ወይም መለወጥን ይደግፋል።
  5. ፓርኬት በበርካታ አምድ ሠንጠረዥ ውስጥ የአምዶችን ንዑስ ክፍል ለመጠየቅ ተስማሚ ነው. አቭሮ ሁሉንም አምዶች የምንጠይቅበት ለETL ስራዎች ተስማሚ ነው።

ORC vs Parquet

  1. ፓርኬት የተከማቸ ውሂብን በተሻለ ሁኔታ ያከማቻል።
  2. ORC መግፋትን ለመተንበይ የተሻለ ነው።
  3. ORC የ ACID ንብረቶችን ይደግፋል።
  4. ORC ውሂብን በተሻለ ሁኔታ ይጨምቃል።

በርዕሱ ላይ ሌላ ምን ማንበብ:

  1. በደመና ውስጥ ትልቅ የዳታ ትንተና፡ አንድ ኩባንያ እንዴት በመረጃ ላይ የተመሰረተ ሊሆን ይችላል።.
  2. ለዳታቤዝ መርሃግብሮች ትሑት መመሪያ.
  3. የቴሌግራም ቻናላችን ስለ ዲጂታል ትራንስፎርሜሽን.

ምንጭ: hab.com

አስተያየት ያክሉ