ቀፎ በንግዱ ውስጥ በስፋት ጥቅም ላይ የዋለ የBig Data Analytics መሳሪያ ነው፣ እና ለBig Data አዲስ ከሆኑ ለመጀመር በጣም ጥሩ ቦታ ነው። ይህ የApache Hive ትምህርት በ Apache Hive መሠረታዊ ነገሮች፣ ለምን ቀፎ እንደሚያስፈልግ፣ ባህሪያቱ እና ሌሎች ማወቅ ያለብዎትን ነገሮች ሁሉ ያልፋል።
በመጀመሪያ Apache Hive የተገነባበትን የHadoop ማዕቀፍ እንረዳ።
Apache Hadoop
Apache Hadoop ነፃ እና ነው። ክፍት ምንጭ ከጊጋባይት እስከ ፔታባይት መጠን ያላቸው ትላልቅ የውሂብ ስብስቦችን ለማከማቸት እና ለማስኬድ መድረክ። ሃዱፕ አንድ ትልቅ ኮምፒዩተር መረጃውን ለማከማቸት እና ለመተንተን ከመጠየቅ ይልቅ በርካታ ኮምፒውተሮችን ሰብስቦ ግዙፍ የመረጃ ስብስቦችን በትይዩ ለመተንተን ያስችላል።
MapReduce እና Hadoop Distributed File System ሁለቱ አካላት ናቸው።
- የካርታ ቅነሳ – MapReduce በሸቀጦች ሃርድዌር ዘለላዎች ላይ ግዙፍ የተደራጁ፣ ከፊል የተዋቀሩ እና ያልተዋቀሩ መረጃዎችን ለማስተናገድ ትይዩ የፕሮግራም አወጣጥ ዘዴ ነው።
- ኤች.ዲ.ኤፍ.ኤስ. – HDFS (Hadoop Distributed File System) መረጃን የሚያከማች እና የሚያስኬድ የሃዱፕ ማዕቀፍ አካል ነው። በመደበኛ ሃርድዌር የሚሰራ ስህተትን የሚቋቋም የፋይል ስርዓት ነው።
በ Hadoop ስነ-ምህዳር ውስጥ ያሉ የተለያዩ ንዑስ ፕሮጀክቶች (መሳሪያዎች)፣ Sqoop፣ Pig፣ እና Hiveን ጨምሮ፣ Hadoop ሞጁሎችን ለመርዳት ጥቅም ላይ ይውላሉ።
- ሆል - ቀፎ MapReduce ስሌት የሚሰሩ የSQL-style ስክሪፕቶችን ለመፃፍ ማዕቀፍ ነው።
- አሳማ - አሳማ ለ MapReduce ሂደቶች ስክሪፕት ለመፍጠር የሚያገለግል የሥርዓት ፕሮግራሚንግ ቋንቋ ነው።
- ስኩፕ - Sqoop በኤችዲኤፍኤስ እና በ RDBMS መካከል ውሂብን የማስመጣት እና ወደ ውጭ ለመላክ መሳሪያ ነው።
ምንድነው Apache ቀፎ?
Apache Hive ክፍት ምንጭ ነው። የውሂብ መጋዘን በ Apache Hadoop Distributed File System (HDFS) ወይም እንደ Apache HBase ባሉ ሌሎች የውሂብ ማከማቻ ስርዓቶች ውስጥ በቀጥታ የተከማቹ ግዙፍ የውሂብ ስብስቦችን የማንበብ፣ የመጻፍ እና የማስተዳደር ፕሮግራም።
የSQL ገንቢዎች ከመደበኛ የSQL መግለጫዎች ጋር የሚነፃፀሩ ለውሂብ መጠይቅ እና ትንተና የHive Query Language (HQL) መግለጫዎችን ለመፍጠር ቀፎን ሊጠቀሙ ይችላሉ። ረጅም የጃቫ ኮድ የመማር እና የመፃፍ ፍላጎትን በማስቀረት MapReduce ፕሮግራሚንግ ቀላል ለማድረግ ነው የተፈጠረው። በምትኩ ጥያቄዎችህን በHQL ውስጥ ልትጽፍ ትችላለህ፣ እና ሂቭ ካርታውን ይገነባል እና ተግባራቶቹን ይቀንሳል።
የApache Hive SQL መሰል በይነገጽ ማስታወቂያ ሆክ ፍለጋዎችን ለማከናወን፣ ለማጠቃለል እና የHadoop ውሂብን ለመተንተን የወርቅ ደረጃ ሆኗል። በደመና ውስጥ ሲካተት የኮምፒውተር ኔትወርኮች, ይህ መፍትሔ በተለይ ወጪ ቆጣቢ እና ሊሰፋ የሚችል ነው, ለዚህም ነው ብዙ ኩባንያዎች, Netflix እና Amazon ን ጨምሮ, Apache Hive ን ማዳበር እና ማሻሻል ይቀጥላሉ.
ታሪክ
በፌስቡክ ቆይታቸው ጆይዲፕ ሴን ሳርማ እና አሽሽ ሶሶ Apache Hiveን ፈጥረዋል። ሁለቱም ከሃዱፕ ምርጡን ለማግኘት አንዳንድ የተወሳሰቡ የጃቫ ካርታ - ቅነሳ ስራዎችን መፍጠር እንዳለባቸው ተገንዝበው ነበር። በፍጥነት እየተስፋፉ ያሉትን የምህንድስና እና የትንታኔ ቡድኖቻቸውን በኩባንያው ውስጥ ሃዱፕን ለመጠቀም በሚያስፈልጋቸው ችሎታ ላይ ማስተማር እንደማይችሉ ተገንዝበዋል። መሐንዲሶች እና ተንታኞች SQLን እንደ የተጠቃሚ በይነገጽ ደጋግመው ይጠቀሙ ነበር።
SQL አብዛኞቹን የትንታኔ ፍላጎቶች ሊያሟላ ቢችልም፣ ገንቢዎቹ የHadoopን ፕሮግራማዊነት ለማካተትም አስበው ነበር። Apache Hive ከእነዚህ ሁለት ዓላማዎች ተነስቷል፡ SQL ላይ የተመሰረተ ገላጭ ቋንቋ ገንቢዎች SQL በቂ ባልነበረበት ጊዜ የራሳቸውን ስክሪፕቶች እና ፕሮግራሞች እንዲያመጡ ያስቻላቸው ነው።
እንዲሁም በመረጃ የሚመሩ ድርጅቶችን ግንባታ ቀላል ለማድረግ በኩባንያው ውስጥ ስላሉት ሁሉም የውሂብ ስብስቦች የተማከለ ሜታዳታ (Hadoop-based) እንዲይዝ ተዘጋጅቷል።
Apache Hive እንዴት ነው የሚሰራው?
በአጭሩ፣ Apache Hive በ HiveQL (SQL-like) ቋንቋ የተጻፈውን የግቤት ፕሮግራም ወደ አንድ ወይም ከዚያ በላይ የJava MapReduce፣ Tez ወይም Spark ተግባራት ይለውጠዋል። (እነዚህ ሁሉ የማስፈጸሚያ ሞተሮች ከHadoop YARN ጋር ተኳሃኝ ናቸው።) ከዚያ በኋላ፣ Apache Hive መረጃውን ለHadoop Distributed File System HDFS በሰንጠረዥ ያዘጋጃል እና መልስ ለማግኘት በክላስተር ላይ ተግባራቶቹን ያከናውናል።
መረጃ
የ Apache Hive ሰንጠረዦች በተዛማጅ ዳታቤዝ ውስጥ ያሉ ሰንጠረዦች ሲደራጁ በተመሳሳይ መልኩ የተደረደሩ ሲሆን መጠናቸውም ከትልቅ እስከ ትንሽ ይለያያል። የውሂብ ጎታዎች በክፍሎች የተከፋፈሉ ሰንጠረዦች የተገነቡ ናቸው, እነሱም በባልዲዎች ተጨማሪ ይከፈላሉ. HiveQL (Hive Query Language) ውሂቡን ለመድረስ ይጠቅማል፣ ሊቀየር ወይም ሊጨመር ይችላል። የሠንጠረዥ መረጃ በእያንዳንዱ የውሂብ ጎታ ውስጥ ተከታታይ ነው, እና እያንዳንዱ ጠረጴዛ የራሱ HDFS ማውጫ አለው.
ሥነ ሕንፃ
አሁን ስለ Hive Architecture በጣም አስፈላጊው ገጽታ እንነጋገራለን. የ Apache Hive አካላት የሚከተሉት ናቸው
ሜታስቶር - ስለ እያንዳንዱ ጠረጴዛ እንደ አወቃቀሩ እና ቦታው ያሉ መረጃዎችን ይከታተላል. የክፋይ ዲበ ዳታ በተመሳሳይ ቀፎ ውስጥ ተካትቷል። ይህ ነጂው በክላስተር ውስጥ የተበተኑትን የተለያዩ የውሂብ ስብስቦች ሂደት እንዲከታተል ያስችለዋል። ውሂቡ በተለመደው የ RDBMS ቅርጸት ነው የሚቀመጠው። ቀፎ ሜታዳታ ለአሽከርካሪው መረጃውን መከታተል እንዲችል እጅግ በጣም አስፈላጊ ነው። ባክአፕ አገልጋዩ ዳታ በሚጠፋበት ጊዜ ተመልሶ እንዲገኝ በመደበኛነት ያባዛዋል።
ሾፌር - የ HiveQL መግለጫዎች እንደ ተቆጣጣሪ ሆኖ በሚሠራ ሹፌር ይቀበላሉ። ክፍለ-ጊዜዎችን በማቋቋም አሽከርካሪው የመግለጫውን አፈፃፀም ይጀምራል. የአስፈፃሚውን የህይወት ዘመን እና እድገት ይከታተላል። የ HiveQL መግለጫ በሚፈፀምበት ጊዜ ነጂው አስፈላጊውን ሜታዳታ ያስቀምጣል። እንዲሁም የመቀነስ ሂደቱን ተከትሎ እንደ ዳታ ወይም የመጠይቅ ውጤት መሰብሰቢያ ነጥብ ሆኖ ያገለግላል።
ኮምፓየር - የ HiveQL መጠይቅን ያዘጋጃል። መጠይቁ አሁን ወደ ማስፈጸሚያ እቅድ ተቀይሯል። ተግባሮቹ በእቅዱ ውስጥ ተዘርዝረዋል. በጥያቄው እንደተተረጎመ ውጤቱን ለማግኘት MapReduce መውሰድ ያለባቸውን እርምጃዎችም ያካትታል። ጥያቄው በ Hive's compiler (AST) ወደ አብስትራክት የአገባብ ዛፍ ተቀይሯል። የተኳኋኝነት እና የማጠናቀር-ጊዜ ጥፋቶችን (DAG) ካጣራ በኋላ ASTን ወደ ዳይሬክትድ አሲክሊክ ግራፍ ይለውጠዋል።
አመቻች - በአፈፃፀም እቅዱ ላይ የተለያዩ ለውጦችን በማድረግ DAG ን ያሻሽላል። ለተሻሻለ ቅልጥፍና ለውጦችን ያጣምራል፣ ለምሳሌ የቧንቧ መስመር ወደ አንድ መጋጠሚያ መቀየር። ፍጥነትን ለማሻሻል አመቻቹ እንቅስቃሴዎችን ሊከፋፍል ይችላል፣ ለምሳሌ የመቀነስ ስራን ከማከናወኑ በፊት ወደ ውሂብ መለወጥን መተግበር።
አስጠብቅ - ማጠናቀር እና ማመቻቸት ሲጠናቀቅ አስፈፃሚው ተግባራቶቹን ያካሂዳል. ሥራዎቹ የሚከናወኑት በኤክሰኪዩተር ነው።
CLI፣ UI እና Thrift Server - የትዕዛዝ-መስመር በይነገጽ (CLI) የውጭ ተጠቃሚ ከቀፎ ጋር እንዲገናኝ የሚያስችል የተጠቃሚ በይነገጽ ነው። ከጄዲቢሲ ወይም ከኦዲቢሲ ፕሮቶኮሎች ጋር የሚመሳሰል የ Hive thrift አገልጋይ የውጭ ደንበኞች በኔትወርክ ከቀፎ ጋር እንዲገናኙ ያስችላቸዋል።
መያዣ
Apache Hive ከHadoop ደህንነት ጋር ተዋህዷል፣ እሱም ከርቤሮስን ለደንበኛ-አገልጋይ የጋራ ማረጋገጥ። ኤችዲኤፍኤስ በ Apache Hive ውስጥ አዲስ ለተፈጠሩ ፋይሎች ፈቃዶችን ይደነግጋል፣ ይህም በተጠቃሚ፣ ቡድን እና ሌሎች እንዲያጸድቁ ያስችሎታል።
ቁልፍ ባህሪያት
- ቀፎ ውጫዊ ሰንጠረዦችን ይደግፋል፣ ይህም ውሂብን በኤችዲኤፍኤስ ውስጥ ሳያከማቹ እንዲሰሩ ያስችልዎታል።
- ፍጥነትን ለመጨመር በጠረጴዛ ደረጃ የመረጃ ክፍፍልንም ያስችላል።
- Apache Hive የሃዱፕን ዝቅተኛ-ደረጃ የበይነገጽ ፍላጎትን በጥሩ ሁኔታ ያሟላል።
- ቀፎ መረጃን ማጠቃለልን፣ መጠይቅን እና ትንታኔን ቀላል ያደርገዋል።
- HiveQL ምንም የፕሮግራም ችሎታ አይፈልግም; ስለ SQL ጥያቄዎች ቀላል ግንዛቤ በቂ ነው።
- እንዲሁም ለመረጃ ትንተና የማስታወቂያ ጥያቄዎችን ለማካሄድ Hive ን መጠቀም እንችላለን።
- ሊሰፋ የሚችል፣ የሚታወቅ እና የሚለምደዉ ነው።
- HiveQL ምንም የፕሮግራም ችሎታ አይፈልግም; ስለ SQL ጥያቄዎች ቀላል ግንዛቤ በቂ ነው።
ጥቅሞች
Apache Hive የቀኑ መጨረሻ ሪፖርቶችን፣ ዕለታዊ የግብይት ግምገማዎችን፣ ማስታወቂያ ሰሪ ፍለጋዎችን እና የውሂብ ትንታኔን ይፈቅዳል። በApache Hive የቀረቡት አጠቃላይ ግንዛቤዎች ጠቃሚ የውድድር ጥቅሞችን ይሰጡዎታል እና ለገቢያ ፍላጎቶች ምላሽ ለመስጠት ቀላል ያደርግልዎታል።
እንደዚህ ያለ መረጃ በቀላሉ የሚገኝ አንዳንድ ጥቅሞች እነኚሁና፡
- ቀላል አጠቃቀም - እንደ SQL በሚመስል ቋንቋ ፣ መጠይቅ መረጃ ለመረዳት ቀላል ነው።
- የተፋጠነ የውሂብ ማስገባት - Apache Hive የሠንጠረዡን ዓይነት ወይም የንድፍ ፍቺውን ሳያረጋግጡ ንድፉን ስለሚያነቡ፣ መረጃው በመረጃ ቋቱ ውስጣዊ ቅርጸት ማንበብ፣ መተንተን እና ተከታታይነት እንዲኖረው ማድረግ የለበትም። በአንጻሩ፣ በተለመደው የውሂብ ጎታ፣ መረጃው በተጨመረ ቁጥር መረጋገጥ አለበት።
- የላቀ ልኬት፣ ተለዋዋጭነት እና ወጪ ቆጣቢነት - መረጃ በኤችዲኤፍኤስ ውስጥ ስለሚከማች፣ Apache Hive 100s petabytes ውሂብን ይይዛል፣ ይህም ከተለመደው የውሂብ ጎታ የበለጠ ሊሰፋ የሚችል አማራጭ ያደርገዋል። Apache Hive፣ እንደ ደመና ላይ የተመሰረተ የሃዱፕ አገልግሎት፣ ደንበኞች የሚቀይሩትን የስራ ጫናዎች ለማሟላት ቨርቹዋል ሰርቨሮችን በፍጥነት እንዲያሽከረክሩ እና እንዲያወርዱ ያስችላቸዋል።
- ሰፊ የሥራ አቅም - ትላልቅ የውሂብ ስብስቦች በሰዓት እስከ 100,000 መጠይቆችን ይይዛሉ።
ገደቦች
- በአጠቃላይ፣ Apache Hive መጠይቆች በጣም ከፍተኛ መዘግየት አላቸው።
- የምዝገባ ድጋፍ ውስን ነው።
- የእውነተኛ ጊዜ መጠይቆች እና የረድፍ-ደረጃ ለውጦች በApache Hive ውስጥ አይገኙም።
- ለቁሳዊ እይታዎች ምንም ድጋፍ የለም.
- በቀፎው ውስጥ እርምጃዎችን ማዘመን እና መሰረዝ አይደገፍም።
- ለOLTP (የመስመር ላይ የሽግግር ሂደት) የታሰበ አይደለም።
በApache Hive መጀመር
Apache Hive የእርስዎን የስራ ሂደት የሚያቃልል እና የሚያስተካክል ጠንካራ የሃዱፕ አጋር ነው። ከApache Hive ምርጡን ለማግኘት እንከን የለሽ ውህደት አስፈላጊ ነው። የመጀመሪያው እርምጃ ወደ መሄድ ነው ድህረገፅ.
1. የመጫኛ ቀፎ ከተረጋጋ መለቀቅ
ከ Apache አውርድ መስተዋቶች ውስጥ የቅርብ ጊዜውን የተረጋጋ የ Hive ልቀትን በማውረድ ጀምር (ተመልከት የቀፎ ልቀቶች). ከዚያ በኋላ ታርቦው መንቀል አለበት። ይህ hive-xyz የሚባል ንዑስ አቃፊ ይፈጥራል (xyz የሚለቀቅበት ቁጥር)
የመጫኛ ማውጫውን ለመጠቆም የከባቢውን ተለዋዋጭ HIVE_HOME ያዘጋጁ፡-
በመጨረሻ፣ $HIVE_HOME/ቢን ወደ የእርስዎ PATH
:
2. እየሮጠ ቀፎ
ቀፎ Hadoop ይጠቀማል፣ ስለዚህ፡-
- በመንገድዎ ላይ Hadoop ሊኖርዎት ይገባል OR
3. DLL ኦፕሬሽን
የቀፎ ጠረጴዛ መፍጠር
በሁለት ዓምዶች ፖክ የተሰየመ ጠረጴዛ ያመነጫል, የመጀመሪያው ኢንቲጀር ሲሆን ሁለተኛው ደግሞ ሕብረቁምፊ ነው.
በጠረጴዛዎች ውስጥ ማሰስ
ሁሉንም ጠረጴዛዎች መዘርዘር
ጠረጴዛዎችን መቀየር እና መጣል
የሰንጠረዥ ስሞች ሊቀየሩ እና ዓምዶች ሊጨመሩ ወይም ሊተኩ ይችላሉ፡
ዓምዶችን ይተኩ የሠንጠረዡን መዋቅር ብቻ እንጂ ውሂቡን ሲቀይር ሁሉንም አምዶች እንደሚተካ ልብ ሊባል የሚገባው ጉዳይ ነው። ተወላጅ SerDe በሠንጠረዥ ውስጥ ጥቅም ላይ መዋል አለበት. ዓምዶችን ከሠንጠረዡ ንድፍ ለማውጣት እንዲሁ መጠቀም ይቻላል፡-
የሚጣሉ ጠረጴዛዎች
ኦፊሴላዊውን ድህረ ገጽ በመጎብኘት ሊማሩባቸው የሚችሏቸው ብዙ ተጨማሪ ኦፕሬሽኖች እና ባህሪያት በ Apache Hive ውስጥ አሉ።
መደምደሚያ
ቀፎ ትርጉም በ Apache Hadoop ላይ ለተገነቡት ግዙፍ የውሂብ ስብስቦች ለመጠየቅ እና ለመተንተን የዳታ ፕሮግራም በይነገጽ ነው። በዋናነት ለ Hive ሰፊ መረጃ የተነደፈ እና ለመጠቀም ቀላል ስለሆነ ከሌሎች ፕሮግራሞች፣ መሳሪያዎች እና ሶፍትዌሮች ይልቅ ባለሙያዎች ይመርጣሉ።
ይህ አጋዥ ስልጠና በApache Hive እንዲጀምሩ እና የስራ ፍሰቶችዎን የበለጠ ቀልጣፋ ለማድረግ እንደሚረዳዎት ተስፋ ያድርጉ። በአስተያየቶቹ ውስጥ ያሳውቁን.
መልስ ይስጡ