ከዚህ በፊት የተመን ሉህ የፋብሪካ ማጓጓዣ ቀበቶን እንዲሰራ ለማድረግ ሞክረዋል? ያ ነበርኩት፣ ከጥቂት ክረምት በፊት፣ በሚሊዮኖች የሚቆጠሩ ሎግ ፋይሎችን እንደ ቺዋዋ በነጎድጓድ ጊዜ በሚያለቅስ ላፕቶፕ ለመቆጣጠር ስሞክር። ያኔ አንድ ሰው “Databricksን ሞክረህ ታውቃለህ?” አለኝ። ሪከርዱ ተቋረጠ።
“Spark”፣ “ክላስተር” እና “Delta Lake” የሚሉት ቃላት ወደ ኮረብታ ለመሮጥ የሚያደርጉዎት ከሆነ፣ መልካም ዜና፡ Databricksን መጠቀም የሮኬት መርከብን እንደማብረር ሊሰማዎት አይገባም። እንደ ዳታ ሰዎች የጋራ ኩሽና አድርገው ያስቡት—ሼፎች (እርስዎ እና ቡድንዎ) ግብዓቶችን (ዳታ) ማምጣት፣ ማቃጠያዎችን (የኮምፒውተር ክላስተሮችን) መጠቀም እና የምግብ አዘገጃጀቶችን (ማስታወሻ ደብተሮችን) በመከተል ምግቦችን (ትንታኔዎችን፣ ዳሽቦርዶችን፣ የማሽን-መማሪያ ሞዴሎችን) ማብሰል ይችላሉ ንግዱን ይመግቡ።
በዚህ መመሪያ ውስጥ የሥራ ቦታዎን እናዘጋጃለን፣ የመጀመሪያውን ክላስተርዎን እናሽከረክራለን፣ በማስታወሻ ደብተር ውስጥ ኮድ እንጽፋለን፣ በSQL እንጠይቃለን፣ ውጤቶችን በዴልታ ሠንጠረዦች ውስጥ እናስቀምጣለን፣ ስራዎችን እንይዛለን፣ እና ሁለቱን ክላሲክ ወጥመዶች እናስወግዳለን፡ ያልተጠበቁ ክፍያዎች እና ሚስጥራዊ “ስራዬ ለምን አልተሳካም?” የሚሉ ምሽቶች። ነገሮችን ሰብአዊ፣ ተግባራዊ እና ሐቀኛ አድርጌ እጠብቃለሁ—ሁለት ጎረቤቶች በአጥር ላይ ምክሮችን እንደምንለዋወጥ ያህል፣ አጥሩ በፓርኬት ፋይሎች የተሰራ ካልሆነ በስተቀር።
Databricks ምንድን ነው፣ በእውነት?
Databricksን ለትልቅ ዳታ እና AI እንደ አንድ-ውስጥ-አንድ ስቱዲዮ አድርገው ያስቡት። Apache Sparkን ወዳጃዊ በሆነ በይነገጽ ጠቅልሎ፣ የትብብር ማስታወሻ ደብተሮችን ይጨምራል፣ በዴልታ ሐይቅ (እጅግ በጣም ኃይለኛ የሠንጠረዥ ቅርጸት) መረጃን ያስተዳድራል፣ እና የውሂብ ቧንቧን በአጋጣሚ ሌሊቱን ሙሉ እንዳያሄዱ የመንግስት መሳሪያዎችን ይሰጥዎታል። Python፣ SQL፣ Scala ወይም R መጻፍ ይችላሉ; መቀላቀል እና ማዛመድ; እና የቡድን ጓደኞችን ሳይነካኩ በተመሳሳይ ማስታወሻ ደብተሮች ውስጥ እንዲሰሩ ይጋብዙ።
የአእምሮ ሞዴልዎ
- የስራ ቦታ፡ የፕሮጀክትዎ ዋና መሥሪያ ቤት—ተጠቃሚዎች፣ ማስታወሻ ደብተሮች፣ ማከማቻዎች፣ ስራዎች።
- ኮምፒዩተር፡ ክላስተሮች (ለማስታወሻ ደብተሮች እና ስራዎች) እና SQL መጋዘኖች (ለ BI/SQL ጥያቄዎች)።
- ማከማቻ፡ የእርስዎ የደመና ውሂብ (S3/ADLS/GCS)። Databricks ሊጠይቋቸው በሚችሏቸው ሰንጠረዦች ወዳጃዊ ካታሎግ ያክላል።
- አስተዳደር፡ የመዳረሻ መቆጣጠሪያዎች እና የዩኒቲ ካታሎግ ትክክለኛ ሰዎች ትክክለኛውን መረጃ እንዲያዩ።
- ፓይፕላይኖች፡ ዴልታ ላይቭ ሠንጠረዦች ለዳታ ምህንድስና፤ ስራዎች ነገሮችን ለማቀድ; MLflow ለሙከራዎች እና ሞዴሎች።
ደረጃ 1፡ የስራ ቦታ ይፍጠሩ ወይም ይቀላቀሉ
ኩባንያዎ ቀድሞውኑ Databricks ካለው ግብዣ ይደርስዎታል። ያለበለዚያ ለሙከራ (የመረጡት ደመና) ይመዝገቡ እና የስራ ቦታ ይፍጠሩ። በንጹህ የግራ የጎን አሞሌ በይነገጽ ላይ ያርፋሉ። በምርጫዎቹ ላይ አትደናገጡ—በሦስት ብቻ እንጀምራለን፡ የስራ ቦታ፣ ኮምፒዩተር እና ዳታ።
ደረጃ 2፡ የመጀመሪያውን ክላስተርዎን ያሽከርክሩ (ከኮፈኑ ስር ያለው “ሞተር”)
ክላስተር Databricks ለእርስዎ የሚጀምራቸው የደመና ማሽኖች ስብስብ ነው።
- ኮምፒዩተር → አዲስ ክላስተርን ጠቅ ያድርጉ።
- የክላስተር ሁነታን ይምረጡ (ለሙከራ በነጠላ ተጠቃሚ ወይም በተጋራ ይጀምሩ)።
- ወጪዎችን ወዳጃዊ ለማድረግ ትንሽ ምሳሌ አይነት ይምረጡ።
- ራስ-ሰር መቋረጥን ያብሩ (ለምሳሌ፣ 15–30 ደቂቃዎች)። ያ ለደመናው “መብራቶች ጠፍተዋል” ቆጣሪ ነው።
- ፍጠር። አንድ ወይም ሁለት ደቂቃዎችን ይጠብቁ; አረንጓዴ “በመሮጥ ላይ” ያያሉ።
የፖግ ጠቃሚ ምክር፡ ክላስተርዎን ግልጽ የሆነ ነገር ይሰይሙ (“dev-pogue-15min-autoterm”)። የወደፊት እርስዎ ያመሰግናሉ።
ደረጃ 3፡ ማስታወሻ ደብተር ይክፈቱ (“የስራ ቤንች”ዎ)
- የስራ ቦታ → አዲስ → ማስታወሻ ደብተር።
- ቋንቋ ይምረጡ። Python ምቹ መነሻ ነጥብ ነው; አሁንም በአስማት ትዕዛዞች SQLን ማስኬድ ይችላሉ።
- ማስታወሻ ደብተሩን በሚሰራው ክላስተርዎ ላይ ያያይዙት (ከላይ ባለው ተቆልቋይ)።
የመጀመሪያውን ሴልዎን ይሞክሩ፡
print("ሰላም፣ Databricks!")
ከዚያ Spark teaser ይሞክሩ፡
spark.range(5).show
እንኳን ደስ አለዎት፣ እስከ አምስት ለመቁጠር የተሰራጨ የኮምፒዩተር ሞተር አስጀምረዋል። እርስዎ በይፋ የውሂብ ጠንቋይ ነዎት።
ደረጃ 4፡ መረጃን ይዘው ይምጡ (“የግብዓት መደርደሪያ”)
ፋይሎችን ማስገባት፣ ከነገር ማከማቻ ጋር መገናኘት ወይም ነባር ሠንጠረዦችን መጠየቅ ይችላሉ።
- በጎን አሞሌው ውስጥ ዳታን ጠቅ ያድርጉ። ካታሎጎች እና ንድፎች (ለሰንጠረዦች አቃፊዎች) እና መረጃን ለመጨመር አማራጮችን ያያሉ።
- CSV ካለህ፣ ፈጣን ሙከራ ለማድረግ ስቀለው። Databricks ንድፉን ሊያመለክት ይችላል።
ደመና ማከማቻ ውስጥ CSV ን ለማንበብ Python ን መጠቀም:
df = spark.read.option("header", True).csv("/mnt/my-bucket/sales.csv")
df.printSchema
df.limit(10).display
ያ የማሳያ ተግባር Databricks አስማት ነው፡ ቀላል መደርደር፣ ማጣራት እና ቻርት በቅጽበት።
ደረጃ 5፡ ውጤቶችዎን እንደ ዴልታ ሠንጠረዦች ያስቀምጡ (ለምን ዴልታ?)
ዴልታ ሠንጠረዦች እንደ እጅግ በጣም ኃይለኛ የተመን ሉሆች ናቸው፡ የግብይት ዋስትናዎችን (“ACID”) ይጠብቃሉ፣ ስሪቶችን ይከታተላሉ፣ እና ዝማኔዎችን/ማስገቢያዎችን/ውህዶችን ምክንያታዊ ያደርጋሉ።
df.write.mode("overwrite").format("delta").saveAsTable("analytics.sales_clean")
አሁን በSQL መጠየቅ ይችላሉ:
-- ሴልዎን ወደ SQL በ%%sql ይቀይሩ
%%sql
ምርት፣ ድምር(መጠን) እንደ ጠቅላላ ይምረጡ
ከ analytics.sales_clean
በምርት ይመድቡ
በድምር DESC ይመድቡ
ኦዲት-ተስማሚ፣ ስሪት ያለው መረጃ ይፈልጋሉ? ጊዜ መጓዝ ይችላሉ፡
%%sql
* ከ analytics.sales_clean VERSION AS OF 2 ይምረጡ
ደረጃ 6፡ ከSQL መጋዘኖች ጋር ጓደኛ ይፍጠሩ (ለ BI ሰዎች)
በአብዛኛው ዳሽቦርዶችን እና የንግድ ጥያቄዎችን እየሰሩ ከሆነ፣ SQL መጋዘንን ያሽከርክሩ (ኮምፒዩተር → SQL መጋዘኖች)። ለSQL የተቀናጀ ቀላል ክብደት ያለው ሞተር ነው።
- የእርስዎን BI መሣሪያ (Power BI፣ Tableau ወይም Databricks SQL ዳሽቦርድ) ያገናኙ።
- ዳሽቦርድ ይፍጠሩ፡ ምስላዊ መግለጫዎች፣ ማጣሪያዎች፣ የማደስ መርሃግብሮች።
ደረጃ 7፡ ቧንቧዎች ከዴልታ ላይቭ ሠንጠረዦች ጋር (“ከእጅ” ወደ “አውቶማቲክ”)
ሊደገሙ የሚችሉ ለውጦች ካሉዎት—“ጥሬ ሽያጮችን ያጽዱ፣ የምርት ሜታዳታን ይቀላቀሉ፣ በሳምንት ይሰብስቡ”—ዴልታ ላይቭ ሠንጠረዦች (DLT) ያንን ወደ የሚተዳደር ቧንቧ በቼኮች እና በዘር ሐረግ ይለውጠዋል።
አንድ ትንሽ SQL DLT ምሳሌ:
CREATE OR REFRESH LIVE TABLE sales_clean AS
* ከ cloud_files('/mnt/data/sales_raw', 'csv') ይምረጡ፤
CREATE OR REFRESH LIVE TABLE weekly_sales AS
ምርት፣ የሳምንት ዓመት(ቀን) እንደ ሳምንት ይምረጡ፣
ድምር(መጠን) እንደ ሳምንታዊ_ጠቅላላ
FROM LIVE.sales_clean
በምርት፣ በሳምንት ይመድቡ፤
- DLT ክትትልን፣ ዳግም ሙከራዎችን እና የውሂብ ጥራት ደንቦችን ያስተናግዳል።
- መጥፎ መረጃ ሩብ ዓመትዎን በጸጥታ ከማበላሸት ይልቅ ጮክ ብሎ እንዲወድቅ የሚጠበቁ ነገሮችን (እንደ “መጠን >= 0”) ያክሉ።
ደረጃ 8፡ ከስራዎች ጋር ያቅዱት (ምክንያቱም መተኛት ይወዳሉ)
- ማስታወሻ ደብተርዎን ይምረጡ፣ መርሃ ግብር ያዘጋጁ (ለምሳሌ፣ በየቀኑ 2 am)፣ ትንሽ የስራ ክላስተር ይምረጡ።
- ለመሳካት ኢሜይል ወይም Slack ማንቂያዎችን ያክሉ።
ጉርሻ፡ ተመሳሳይ ኮድ ለተለያዩ ግብአቶች ለ dev/test/prod እንዲሰራ ማስታወሻ ደብተሮችን መለኪያ ያድርጉ።
ደረጃ 9፡ ያለ እንባ ፈቃዶች እና አስተዳደር
የመረጃ መዳረሻ ቁጥጥር አስፈላጊ ነው። ትክክለኛ አንባቢዎችን፣ ጸሐፊዎችን እና ባለቤቶችን ለማረጋገጥ አብሮ የተሰሩ የካታሎግ ፈቃዶችን ይጠቀሙ። ድርጅትዎ ማዕከላዊ ሜታስቶር የሚጠቀም ከሆነ፣ Unity Catalogን ያጋጥሙዎታል፡ እንደ catalog.schema.table ያሉ ስሞችን ያስተካክላል እና የተሻሉ ኦዲቶችን እና ጥሩ ቁጥጥሮችን ይሰጥዎታል።
የፖግ ጠቃሚ ምክር፡ በቀላል ይጀምሩ—አንድ ካታሎግ ለትንታኔ፣ አንድ ለአሸዋ ሳጥን—እና ነገሮችን በግልጽ ይሰይሙ። የወደፊት ተንታኞች ቡና ይገዙልዎታል።
ደረጃ 10፡ የወጪ ቁጥጥር (“ያልተጠበቀ ሂሳብ አትቀበል” ክፍል)
- ሲያስሱ ወደ ትናንሽ ምሳሌዎች በነባሪነት።
- በ dev ክላስተሮች ላይ ሁልጊዜ ራስ-ሰር መቋረጥን ያንቁ።
- ለታቀዱ ተግባራት የስራ ክላስተሮችን ይምረጡ (ይጀምሩ፣ ያሂዱ፣ ይዝጉ)።
- በብልህነት መሸጎጫ፡ እንደገና ለመጠቀም ካላስፈለገ በስተቀር ግዙፍ DataFrames አታስቀምጡ።
- የ UI የወጪ መለኪያዎችን ይመልከቱ እና በደመና አቅራቢዎ ውስጥ በጀቶችን/ማንቂያዎችን ያዘጋጁ።
የዕለት ተዕለት ሕይወት፡ ፈጣን ማሳያ
አለቃዎ “የትኞቹ የምርት መስመሮች በዚህ ሩብ ዓመት በፍጥነት አደጉ?” ብለው ቢጠይቁ እንበል። የDatabricks ፍሰት እነሆ፡
- ማስታወሻ ደብተር ይፍጠሩ፣ የ dev ክላስተር ያያይዙ።
- የሽያጭ እና የምርት ሜታዳታ (CSV በደመና ማከማቻ) ያስገቡ።
- ንፁህ፡ ንድፎችን ያስገድዱ፣ ባዶዎችን ያስወግዱ፣ የቀን ቅርጸቶችን ያስተካክሉ።
- SQL ሩብ-በላይ-ሩብ እድገትን ለማስላት።
- በማስታወሻ ደብተር ውስጥ ምስላዊ ያድርጉ; ከዚያ ዳሽቦርድን ለአለቃው ያትሙ።
- በየማለዳው ለማደስ ማስታወሻ ደብተሩን በስራ ውስጥ ጠቅልሉ።
የመላ መፈለጊያ ጥግ (ምክንያቱም ይከሰታል)
- ክላስተር አይጀምርም፡ የእርስዎን ኮታ/የምሳሌ አይነት ያረጋግጡ; ትንሽ ቪኤም ይሞክሩ; ፈቃዶችን ያረጋግጡ።
- መረጃ አይነበብም፡ መንገድ እና ምስክርነቶችን ያረጋግጡ; ትንሽ ናሙና ይሞክሩ; የተገመተውን ንድፍ ይፈትሹ።
- ስራው ያለማቋረጥ ይከሽፋል፡ መዝገብ (የህትመት መግለጫዎች፣ ማሳያ)፣ ትይዩነትን ዝቅ ያድርጉ እና ግብዓቶችን ያረጋግጡ።
- ውጤቶቹ “ጠፍተዋል” ይመስላሉ፡ የሰዓት ዞኖች! ተንኮለኛ ናቸው። የጊዜ ማህተሞችን ይውሰዱ፣ ነባሪ የሰዓት ሰቅ ያዘጋጁ እና ግምቶችን ይመዝግቡ።
ትብብር፡ እንደ ባንድ ስራ፣ እንደ ብቸኛ ድርጊት አይደለም
- ማስታወሻ ደብተሮችን ከ Git ጋር ለማመሳሰል Repos ይጠቀሙ። ቀድመው ቁርጠኛ ይሁኑ፣ ብዙ ጊዜ ቁርጠኛ ይሁኑ።
- በማስታወሻ ደብተር ሴሎች ውስጥ በቀጥታ አስተያየት ይስጡ። በአናት ላይ “መጀመሪያ አንብብ” ሴል ከመመሪያዎች ጋር ያስቀምጡ።
- ትንንሽ፣ ሊቀናጁ የሚችሉ ማስታወሻ ደብተሮችን (አስገባ፣ ቀይር፣ ተንትን) ያድርጉ ስለዚህ የቡድን ጓደኞች ሳይሳተፉ መዝለል ይችላሉ።
Python? SQL? ሁለቱም።
በአንድ ማስታወሻ ደብተር ውስጥ ቋንቋዎችን መቀላቀል ይችላሉ። ለምሳሌ፣ አመክንዮዎን በSQL (ፈጣን ድግግሞሽ) ውስጥ ይቅረጹ፣ ከዚያ ለልዩ ቤተ-መጻሕፍት ወደ Python ይቀይሩ (ትንበያ፣ NLP)። UDFsን በትንሹ ይጠቀሙ—ቤተኛ የ Spark ተግባራት ፈጣን እና ለሚዛን ተስማሚ ናቸው።
አፈጻጸም፡ ሶስቱ ማንሻዎች
- ክፍሎች፡ የሣር ክምርን ዝለል፣ መርፌዎቹን ብቻ አንብብ። የዴልታ ሠንጠረዦችን በተደጋጋሚ በተጣሩ አምዶች (ቀን፣ ክልል) ይከፋፍሉ።
- የፋይል መጠኖች፡ ትናንሽ ፋይሎች እንደ ብልጭልጭ ናቸው—በየቦታው እና የሚያበሳጩ። ትናንሽ ፋይሎችን ወደ ወፍራም፣ ቀልጣፋ ወደሚያደርጉት ለማጣመር የተመቻቹ ጽሑፎችን/ራስ-ሰር ማመቻቸትን ይጠቀሙ።
- መሸጎጫ እና የስርጭት መጋጠሚያዎች፡ እንደገና ጥቅም ላይ የዋሉ DataFrames መሸጎጫ; መንቀጥቀጥን ለማስወገድ በትልልቅ መጋጠሚያዎች ውስጥ ትንሽ ጠረጴዛን ያስተላልፉ።
በሁለተኛው ቀን የሚፈልጓቸው የደህንነት መሰረታዊ ነገሮች
- ምስጢሮችን በተዘጋጀ የምስጢር ወሰን ውስጥ ያስቀምጡ; ቁልፎችን በጭራሽ አይኮዱ።
- የምርት ሰንጠረዦችን በትንሹ-የመብት ስጦታዎች ይቆልፉ።
- ማን ምን እንደለወጠ ለማየት የኦዲት ምዝግብ ማስታወሻዎችን ይጠቀሙ፣ መቼ።
ከማጣመር እስከ ምርት፡ ተጨባጭ መንገድ
- ሳምንት 1፡ በማስታወሻ ደብተሮች እና በትንሽ ክላስተር ያስሱ። የመጀመሪያ ዴልታ ሠንጠረዦችን ያስቀምጡ። ድሎችን ያካፍሉ።
- ሳምንት 2፡ ለተደጋጋሚ ለውጦችዎ የDLT ቧንቧ ይገንቡ። የውሂብ ጥራት ቼኮችን ያክሉ።
- ሳምንት 3፡ ማስታወሻ ደብተሮችን ወደ ስራዎች ጠቅልሉ፣ ማንቂያዎችን ያክሉ እና ዳሽቦርዶችን ከ SQL መጋዘን ጋር ያገናኙ።
- ሳምንት 4፡ ሚስጥሮችን ወደ ቮልት ያንቀሳቅሱ፣ ፈቃዶችን ያስተካክሉ፣ የስምምነት ስምምነቶችን ያዘጋጁ እና ሁሉንም ነገር ይመዝግቡ።
የተለመዱ አፈ ታሪኮች፣ በቀስታ የተነፈሱ
- “Databricks ለ Spark ጉሩዎች ብቻ ነው።” ከእንግዲህ። SQL መጋዘኖች እና የUI ረዳቶች ማለት ተንታኞች የስካላ መስመር ሳይጽፉ ማደግ ይችላሉ ማለት ነው።
- “ውድ ይሆናል።” የስታዲየም መብራቶችን በሳምንቱ መጨረሻ ካላበሩ ሊሆን ይችላል። በራስ-ሰር መቋረጥ እና በትናንሽ የስራ ክላስተሮች፣ ወጪዎችን ስልጡን ማድረግ ይችላሉ።
- “ስሪት ማድረግ ራስ ምታት ነው።” የዴልታ የጊዜ ጉዞ እና የሠንጠረዥ ታሪክ ተመላሾችን እና ኦዲቶችን የሚያድስ አሰልቺ ያደርገዋል።
ጠቃሚ በሆኑ አጋሮች ላይ ፈጣን ቃል
እራስህን የቦይለርፕሌት Spark ኮድ ስትጽፍ፣ የራስህን ማስታወሻ ደብተር ለራስህ ስታብራራ ወይም ግምታዊ ውጤትን ወደ ንጹህ ማጠቃለያ ስትቀይር ካገኘህ ብልህ አብራሪ ሰዓታትን መቆጠብ ይችላል። እንደ Sider.AI ያሉ መሳሪያዎች በአሳሽዎ ውስጥ እንደ ወዳጃዊ የውይይት ሳጥን ሆነው መቀመጥ፣ ጀማሪ PySpark ሕዋስን እንዲያዘጋጁ፣ አንድ ግትር መጋጠሚያን እንዲያሻሽሉ ወይም የማስታወሻ ደብተርዎን ውጤት ለአለቃዎ ወደሚነበብ አጭር መግለጫ እንዲቀይሩ ሊረዱዎት ይችላሉ። ዘዴው እዚህ አለ፡ ልዩ፣ መሬት ላይ የተመሰረቱ ጥያቄዎችን ጠይቁ (“ይህንን ንድፍ ለማግኘት የ PySpark ውህደትን ወደ ዴልታ ሠንጠረዥ ከማዘመን አመክንዮ ጋር ይፃፉ…”) እና የአስተያየቱ ትክክለኛ እንዲሆን አነስተኛ፣ ተወካይ የንድፍ ናሙና ይለጥፉ። ሁሉንም ነገር እንዲገምት ለማድረግ ከሞከሩ ሁለታችሁም ትከሻችሁን ትነቅፋላችሁ። የመጀመሪያ ሳምንትዎ፡ አነስተኛ ጨዋታ ደብተር
ቀን 1፡ የስራ ቦታ መግቢያ ይፍጠሩ። በራስ-ሰር መቋረጥ ትንሽ የ dev ክላስተር ይጀምሩ።
ቀን 2፡ ትንሽ CSV አስመጣ። በማሳያ ያስሱ። የዴልታ ሠንጠረዥ ያስቀምጡ።
ቀን 3፡ ቀላል የማስታወሻ ደብተር ቧንቧ ይገንቡ፡ ጥሬ → ንጹህ → ድምር። አስተያየቶችን ያክሉ።
ቀን 4፡ ውጤቶችን ለማረጋገጥ ወደ SQL ይቀይሩ። ትንሽ ዳሽቦርድ ይገንቡ።
ቀን 5፡ በየቀኑ ለማደስ ስራ ይፍጠሩ። ክላስተርን ያጥፉ፣ በሰዓቱ ወደ ቤት ይሂዱ።
ማጭበርበር ሉህ፡ በትክክል የሚጠቀሙባቸው ትዕዛዞች
- CSV/Parquet ያንብቡ፡ spark.read.option("header", True).csv(path) / spark.read.parquet(path)
- ዴልታ ሠንጠረዥ ይፃፉ፡ df.write.format("delta").mode("append").saveAsTable("catalog.schema.table")
- SQL ሕዋስ፡ %%sql በተከተለው ጥያቄዎ
- በSQL ውስጥ አዋህድ (አሻሽል) ንድፍ፡
MERGE INTO target t
USING source s
ON t.id = s.id
WHEN MATCHED THEN UPDATE SET *
WHEN NOT MATCHED THEN INSERT *;
- በ Python ውስጥ ራስ-ጫኝ (ተጨማሪ ማስገባት)፡
df = (spark.readStream
.format("cloudFiles")
.option("cloudFiles.format", "json")
.load("/mnt/raw/events"))
df.writeStream.format("delta").option("checkpointLocation","/mnt/chk").start("/mnt/delta/events")
ከማስታወሻ ደብተሮች ወደ ቧንቧዎች መቼ መቀየር አለብዎት
- ተመሳሳይ ማስታወሻ ደብተር በየቀኑ እያሄዱ ከሆነ ወደ ስራ ያንቀሳቅሱት።
- ሶስት ወይም ከዚያ በላይ ማስታወሻ ደብተሮችን እያስኬዱ ከሆነ፣ DLTን ያስቡበት—ጥገኝነትን ያቃልላል እና የውሂብ ጥራት ደንቦችን ይጨምራል።
- ብዙ ቡድኖች በውጤቶቹ ላይ የሚመሰረቱ ከሆነ፣ ግልጽ SLAs ባለው በተዘጋጀ ካታሎግ ውስጥ ያስተዋውቁ።
አንድ የመጨረሻ ነገር (የፖግ የውሂብ የስበት ህግ)
መረጃ የስበት ኃይል አለው። ለመንቀሳቀስ ከባድ እና ለመጣል ውድ ነው። Databricks ኮምፒውተሩን ወደ ዳታው ሲያመጡ፣ ሠንጠረዦችዎን ሥርዓታማ (ዴልታ) ሲያደርጉ እና አሰልቺ የሆኑትን ቢት ሲያደርጉት በተሻለ ሁኔታ ይሰራል። በትንሹ ይጀምሩ፣ ሁሉንም ነገር ይሰይሙ እና እነዚያን ራስ-ሰር መቋረጥ ሰዓት ቆጣሪዎች እንደ ደመና ቢልዎ በእሱ ላይ የተመሠረተ አድርገው ያዘጋጁት—ምክንያቱም እንደዚያ ነው።
ቁልፍ መውሰጃዎች
- በትንሽ ክላስተር እና በራስ-ሰር መቋረጥ ይጀምሩ።
- ለማሰስ ማስታወሻ ደብተሮችን ይጠቀሙ; ንጹህ ውጤቶችን እንደ ዴልታ ሠንጠረዦች ያስቀምጡ።
- ሊደገሙ የሚችሉ ለውጦችን ለማድረግ፣ DLT ይጠቀሙ እና በስራዎች ያቅዱ።
- በ SQL መጋዘኖች እና ዳሽቦርዶች በኩል ግንዛቤዎችን ያካፍሉ።
- ፈቃዶችን እና ምስጢሮችን ቀድመው ይቆልፉ; በሄዱበት ጊዜ ይመዝግቡ።
- መግፋት በሚፈልጉበት ጊዜ በአብራሪ ላይ ዘንበል ይበሉ—ነገር ግን ጥያቄዎችዎን የተለዩ ያድርጉ።
በ spark.range(5).show እስከ አምስት መቁጠር ከቻሉ በ Databricks ውስጥ ጠቃሚ ነገር መገንባት ይችላሉ። እና አንድ ጊዜ የሌሊት ስራዎ በጠዋቱ 2 ሰዓት ላይ ሳይደውሉ ሲሰራ፣ ወደዚያ ያልተለመደ እና የሚያምር ክልል “ባህሪ ያለው መረጃ” ተብሎ ወደሚታወቀው እንደተሻገሩ ያውቃሉ።
FAQ
Q1:ለጀማሪ Databricks መጠቀም ለመጀመር ፈጣኑ መንገድ ምንድነው?
ትንሽ፣ ራስን የሚያቋርጥ ክላስተር ይፍጠሩ፣ ማስታወሻ ደብተር ይክፈቱ እና ለማሰስ ትንሽ CSV በማሳያ ይጫኑ። ንጹህ ውጤቶችዎን እንደ ዴልታ ሠንጠረዥ ያስቀምጡ እና ቀላል የSQL መጠይቅ ይሞክሩ—ይህ የላቁ ባህሪያት ውስጥ ሳይጠፉ በመጀመሪያው ቀን እውነተኛ ድሎችን ያመጣልዎታል።
Q2:ለኔ ቧንቧ ማስታወሻ ደብተሮችን ወይስ ዴልታ ላይቭ ሠንጠረዦችን መጠቀም አለብኝ?
ነገሮችን እያወቁ በማስታወሻ ደብተሮች ይጀምሩ; ለማሰስ እና ፈጣን ድሎች ፍጹም ናቸው። የእርስዎ አመክንዮ ሲረጋጋ እና በአስተማማኝ ሁኔታ መሮጥ ሲያስፈልግ፣ ለሚተዳደሩ ጥገኞች፣ የውሂብ ጥራት ቼኮች እና ቀላል ክትትል ወደ ዴልታ ላይቭ ሠንጠረዦች ይቀይሩ።
Q3:የ Databricks ወጪዎችን እንዴት መቆጣጠር እችላለሁ?
ለ dev ትናንሽ ምሳሌዎችን ይጠቀሙ፣ ራስ-ሰር መቋረጥን ያንቁ እና ለታቀዱ ሩጫዎች የስራ ክላስተሮችን ይምረጡ። አስፈላጊ ካልሆነ በስተቀር ግዙፍ DataFrames ከማቆየት ይቆጠቡ እና ምንም ነገር በሳምንቱ መጨረሻ እንዳይሰራ የወጪ መለኪያዎችን እና የደመና በጀቶችን ይመልከቱ።
Q4:ኮድ አውጪዎች ያልሆኑ ሰዎች Databricksን በብቃት መጠቀም ይችላሉ?
አዎ—SQL መጋዘኖች እና ዳሽቦርዶች Databricksን ለተንታኞች ተስማሚ ያደርጉታል። PySparkን ሳይነኩ ተራ SQL መጻፍ፣ ውጤቶችን ማየት እና ግንዛቤዎችን ማጋራት ይችላሉ፣ ከዚያ የበለጠ ከባድ ለውጦችን ሲፈልጉ መሐንዲሶችን ብቻ ይዘው ይምጡ።
Q5:ውሂብን እንደ ዴልታ ሠንጠረዦች ማስቀመጥ ምን ጥቅም አለው?
ዴልታ ሠንጠረዦች የACID ግብይቶችን፣ የስሪት ታሪክን (የጊዜ ጉዞን) እና የተሻለ አፈጻጸምን ይሰጡዎታል። ይህ ማለት ደህንነቱ የተጠበቀ ዝመናዎች፣ የሆነ ችግር ከተፈጠረ ቀላል ተመላሾች እና ለተመሳሳይ መረጃ ፈጣን ጥያቄዎች ማለት ነው።