42,167 ንባባት
42,167 ንባባት

QA ንዓበይቲ ዳታሴታት ብ Deequ & Statistical Methods ይምርምር

akshayjain...7m2024/05/30
Read on Terminal Reader
Read this story w/o Javascript

ኣዝዩ ነዊሕ፤ ንምንባብ

ቤተ መጻሕፍቲ Deequ ኣብ ስፓርክ ዝተሃንጸ ክፉት ምንጪ ዳታ ፕሮፋይሊንግን QA ፍሬምዎርክን እዩ። ምስ ፍሉይ ጠለባትካ ዝተመጣጠኑ ዝተሓላለኹ ሕግታት ምጽዳቕ ክትገልጽ የኽእለካ፣ ኩለመዳያዊ ሽፋን የረጋግጽ። Deequ ንጉዳያት ጽሬት ዳታ ንምልላይን ብንጥፈት ንምፍታሕን ዝሕግዙኻ ሰፊሕ መለክዒታትን ናይ ምፍላጥ ኣኖማሊ ዓቕምታትን ኣለዎ። ነዞም ቼክታት ብኸመይ Deequ ተጠቂምካ ከተተግብሮም ከም እትኽእል ኣብዚ ኣሎ።

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - QA ንዓበይቲ ዳታሴታት ብ Deequ & Statistical Methods ይምርምር
Akshay Jain HackerNoon profile picture

ሓደ ካብቲ ኣገዳሲ ክእለት ናይ ሓደ ንፉዕ በዓል ሞያ ዳታ፡ ውጽኢታዊ ኣተሓሕዛ ዓበይቲ ዳታሴታት ኮይኑ፡ ጽሬትን ተኣማንነትን ዳታ ምርግጋጽ እዩ። ዳታ ማእከላይን መሰረታውን ቁራጽ ናይ ዝኾነ ዳታ ሲስተም ኮይኑ፡ ኣብ ካልእ መዳያት ንግድና ዝኾነ ጽቡቕ ክእለት እንተሃልዩካ፡ እዚ ሸለል ክትብሎ ዘይትኽእል እዩ።


ኣብዚ ጽሑፍ፡ Deequ libraryን ስታቲስቲካዊ ኣገባባትን ተጠቒመ፡ ኣብ ዓበይቲ ዳታሴታት QA ምፍታሽ ንምፍጻም ዝሕግዙ ድልዱላት ሜላታት ይድህስስ። እዞም ኣብ ታሕቲ ዝገልጾም ኣገባባት ብምውህሃድ፡ ምሉእነት ዳታ ክትሕሉ፡ ኣሰራርሓ ምሕደራ ዳታኻ ከተዕቢ፡ ከምኡ’ውን ኣብ ታሕተዎት ኣፕሊኬሽናት ክህልዉ ዝኽእሉ ጸገማት ክትከላኸል ትኽእል።

QA ን Deequ Library ብምጥቃም ይምርምር

ስለምንታይ ደቁ?

ጽሬት ዳታ ብዓቐን ምርግጋጽ ኣዝዩ ከቢድ ዕማም እዩ፣ ብፍላይ ኣብ ዝተዘርግሑ ፋይል ሲስተማት ወይ መኽዘናት ዳታ ዝተዓቀቡ ቢልዮናት መስመራት ኣብ እትገጥመሉ እዋን። ቤተ መጻሕፍቲ Deequ ኣብ ስፓርክ ዝተሃንጸ ክፉት ምንጪ ዳታ ፕሮፋይሊንግን QA ፍሬምዎርክን ኮይኑ ነዚ ጸገም ንምፍታሕ ዝተዳለወ ዘመናውን ብዙሕ ዕዮ ዝዓዪን መሳርሒ እዩ። ካብ ተመሳሰልቲ መሳርሒታት ዝፈልዮ ነገር እንተሃልዩ፡ ምስ ስፓርክ ብዘይ ገለ ጸገም ናይ ምውህሃድ ዓቕሙ ኮይኑ፡ ንብቑዕ ኣተሓሕዛ ዓበይቲ ዳታሴታት ዝተዘርግሐ ናይ መስርሕ ሓይሊ ብምጥቃም እዩ።


ምስ ፈተንካዮ፡ ተዓጻጻፍነቱ ምስ ፍሉይ ጠለባትካ ዝተመጣጠኑ ዝተሓላለኹ ሕግታት ምጽዳቕ ክትገልጽ ከም ዘኽእለካ ክትዕዘብ ኢኻ፡ እዚ ድማ ኩለመዳያዊ ሽፋን የረጋግጽ። ብተወሳኺ፡ Deequ ሰፊሕ መለክዒታትን ናይ ምፍላጥ ኣኖማሊ ዓቕምን ዘለዎ ኮይኑ፡ ንጉዳያት ጽሬት ዳታ ንምልላይን ብንጥፈት ንምፍታሕን ክሕግዘካ እዩ። ንዓበይትን ዳይናሚክን ዳታሴት ዝሰርሑ ሰብ ሞያ ዳታ፡ Deequ ስዊስ-ካራ መፍትሒ እዩ። ከመይ ጌርና ክንጥቀመሉ ከም እንኽእል እስከ ንርአ።

ምቛም ዲቁ

ተወሳኺ ዝርዝር ሓበሬታ ብዛዕባ ኣወዳድባ ቤተ - መጻሕፍቲ Deequን ኣብ ዙርያ ዳታ ፕሮፋይሊንግ ዘሎ ኣጠቓቕማን ኣብዚ ክትረኽብዎ ትኽእሉ ኢኹም ። ንቐሊልነት ኣብዚ ኣብነት ውሑዳት መጻወቲ መዛግብቲ ጥራይ ኢና ኣፍሪና፤


 val rdd = spark.sparkContext.parallelize(Seq( Item(1, "Thingy A", "awesome thing.", "high", 0), Item(2, "Thingy B", "available at http://thingb.com", null, 0), Item(3, null, null, "low", 5), Item(4, "Thingy D", "checkout https://thingd.ca", "low", 10), Item(5, "Thingy E", null, "high", 12))) val data = spark.createDataFrame(rdd)


ምግላጽ ዳታ ግምታት

መብዛሕትኦም ኣፕሊኬሽናት ዳታ ብዛዕባ ባህርያት ዳታ ብዘይተሓበረ ግምታት ይመጹ፣ ከም ዘይ-NULL ክብርታትን ፍሉይነትን። ምስ ደቁ እዞም ግምታት ብኣሃዳዊ ፈተናታት ኣቢሎም ግሉጽ ይኾኑ። ገለ ልሙዳት ቸክታት እነሆ፤


  1. ቁጽሪ መስርዕ፦ እቲ ዳታሴት ፍሉይ ቁጽሪ መስመራት ከም ዝሓዘ ኣረጋግጽ።


  2. ምሉእነት ባህርያት፦ ከም idን productNameን ዝኣመሰሉ ባህርያት ፈጺሞም NULL ከምዘይኮኑ ኣረጋግጽ።


  3. ፍሉይነት ባህርያት፦ ዝተወሰኑ ባህርያት ከም id ፍሉያት ምዃኖም ኣረጋግጽ።


  4. Value Range: ከም priorityን numViewsን ዝኣመሰሉ ባህርያት ኣብ ውሽጢ ትጽቢት ዝግበረሎም ደረጃታት ከም ዝወድቁ ምርግጋጽ።


  5. ምትእስሳር ቅዲ (Pattern Matching)፦ መግለጺታት ትጽቢት ኣብ ዝግበረሉ እዋን URL ከም ዘለዎም ኣረጋግጽ።


  6. ስታቲስቲካዊ ባህርያት፦ ሚድያን ናይ ቁጽራዊ ባህርያት ፍሉይ መዐቀኒታት ከምዘማልእ ምርግጋጽ።


ነዞም ምፍታሻት Deequ ተጠቒምካ ብኸመይ ከተተግብሮም ከም እትኽእል ኣብዚ ኣሎ፤


 import com.amazon.deequ.VerificationSuite import com.amazon.deequ.checks.{Check, CheckLevel, CheckStatus} val verificationResult = VerificationSuite() .onData(data) .addCheck( Check(CheckLevel.Error, "unit testing my data") .hasSize(_ == 5) // we expect 5 rows .isComplete("id") // should never be NULL .isUnique("id") // should not contain duplicates .isComplete("productName") // should never be NULL // should only contain the values "high" and "low" .isContainedIn("priority", Array("high", "low")) .isNonNegative("numViews") // should not contain negative values // at least half of the descriptions should contain a url .containsURL("description", _ >= 0.5) // half of the items should have less than 10 views .hasApproxQuantile("numViews", 0.5, _ <= 10)) .run()


ውጽኢት ምትርጓም

ነዞም ቼክታት ድሕሪ ምጉያይ፡ ዲኩ ናብ ተኸታታሊ ስፓርክ ስራሓት ይትርጉሞም፡ እዚ ድማ ኣብቲ ዳታ ሜትሪክስ ንምሕሳብ ይፍጽሞም። ብድሕሪኡ፡ ኣብዞም መለክዒታት ናይ ምጽራር ተግባራትካ (ንኣብነት፡ _ == 5 ንናይ ዓቐን ምፍታሽ) ይጽውዕ፡ እቶም ደረታት ኣብቲ ዳታ ይሕዙ እንተኾይኖም ይርኢ። እቲ ፈተና ጌጋታት እንተረኺቡ ንምርኣይ ነቲ "verificationResult" ዝብል ነገር ክንፍትሽ ንኽእል ኢና፤


 import com.amazon.deequ.constraints.ConstraintStatus if (verificationResult.status == CheckStatus.Success) { println("The data passed the test, everything is fine!") } else { println("We found errors in the data:\n") val resultsForAllConstraints = verificationResult.checkResults .flatMap { case (_, checkResult) => checkResult.constraintResults } resultsForAllConstraints .filter { _.status != ConstraintStatus.Success } .foreach { result => println(s"${result.constraint}: ${result.message.get}") } }


ነቲ ኣብነት እንተ ኣካይድናዮ እዚ ዝስዕብ ውጽኢት ንረክብ፤


 We found errors in the data: CompletenessConstraint(Completeness(productName)): Value: 0.8 does not meet the requirement! PatternConstraint(containsURL(description)): Value: 0.4 does not meet the requirement!


እቲ ፈተና ግምታትና ከም ዝተጣሕሰ ረኺቡ! ካብ 5 (80%) ጥራይ ካብ ክብርታት ናይቲ productName ባህሪ ዘይ-ባዶ እዮም፣ ካብ 5 (ማለት 40%) ክብርታት ናይቲ መግለጺ ባህሪ ድማ 2 ጥራይ እዮም URL ዝሓዙ። ጽቡቕ ኣጋጣሚ ኮይኑ ፈተና ኣካይድና ጌጋታት ረኺብና፤ ሓደ ሰብ ብቕልጡፍ ነቲ ዳታ ከዐርዮ ኣለዎ!

QA ብስታቲስቲካዊ ኣገባብ ይምርምር

Deequ ንመረጋገጺ ዳታ ድልዱል ማዕቀፍ ክህብ እንከሎ፡ ስታቲስቲካዊ ኣገባባት ምውህሃድ ንQA ምፍታሽካ ዝያዳ ከዕብዮ ይኽእል እዩ፡ ብፍላይ ምስ ዝተጠርነፈ መለክዒታት ናይ ሓደ ዳታሴት ትራኸብ እንተኾንካ። ንጽሬት ዳታ ንምክትታልን ንምርግጋጽን ብኸመይ ስታቲስቲካዊ ኣገባባት ክትጥቀም ከም እትኽእል ንርአ።

ምክትታል ቁጽሪ መዝገብ

መስርሕ ETL (Extract, Transform, Load) ኣብ መዓልታዊ መደብ ስራሕ N መዛግብቲ ዘፍሪ ናይ ንግዲ ስናርዮ ንርአ። ናይ ደገፍ ጋንታታት ኣብ ቁጽሪ መዝገብ ርኡይ ምዝንባል እንተሃልዩ መጠንቀቕታ ንምልዓል ናይ QA ምፍታሽ ከዳልዋ ክደልያ ይኽእላ እየን። ንኣብነት፡ እቲ መስርሕ ብተለምዶ ኣብ ውሽጢ ክልተ ኣዋርሕ መዓልታዊ ካብ 9,500 ክሳብ 10,500 መዛግብቲ ዘመንጩ እንተኾይኑ፡ ዝኾነ ርኡይ ወሰኽ ወይ ምንካይ ምስቲ መሰረታዊ ዳታ ጸገም ከምዘሎ ከመልክት ይኽእል።


ነዚ ደረት ንምግላፅ ስታቲስቲካዊ ኣገባብ ክንጥቀም ንኽእል ኢና፣ ኣየናይ መስርሕ እዩ ነቲ ናይ ደገፍ ጉጅለ መጠንቀቕታ ከልዕል ዘለዎ። ኣብ ታሕቲ ኣብ ውሽጢ ክልተ ወርሒ ምክትታል ቁጽሪ መዝገብ ዝገልጽ ስእሊ ኣሎ፤











ነዚ ንምትንታን ድማ ነቲ መዓልታዊ ዝመጽእ ለውጢ ንምዕዛብ ነቲ ዳታ ቁጽሪ መዝገብ ክንቅይሮ ንኽእል። እዞም ለውጥታት ብሓፈሻ ኣብ ከባቢ ዜሮ ይንቀሳቐሱ እዮም፣ ከምቲ ኣብዚ ዝስዕብ ሰንጠረዥ ተገሊጹ ዘሎ፤












ነዚ ናህሪ ለውጢ ብንቡር ዝርገሐ ክንውክሎ ከለና፡ ደወል መስመር ይፈጥር፡ እዚ ድማ እቲ ዳታ ብንቡር ከም ዝተዘርግሐ የመልክት። እቲ ትጽቢት ዝግበረሉ ለውጢ ከባቢ 0% ኮይኑ፡ ስታንዳርድ ዲቪዥን 2.63% እዩ።













እዚ ትንታነ ከም ዝሕብሮ፡ እቲ ቁጽሪ ክብረወሰን ብተለምዶ ኣብ ውሽጢ -5.26% ክሳብ +5.25% ዝበጽሕ ደረጃ ምስ 90% ርእሰ-ምትእምማን ይወድቕ። ካብዚ ብምብጋስ ቁጽሪ መዝገብ ካብዚ ደረጃ ወጻኢ እንተኾይኑ መጠንቀቕታ ንምልዓል ሕጊ ከተቐምጥ ትኽእል ኢኻ፣ እዚ ድማ ኣብ እዋኑ ምትእትታው የረጋግጽ።

ምክትታል ሽፋን ባህርያት

Atribute coverag e ንሓደ ዳታሴት ቅጽበታዊ ስእሊ ዝኸውን ሬሾ ናይ ዘይ-NULL ክብርታት ምስ ጠቕላላ ቁጽሪ መዝገብ የመልክት። ንኣብነት ካብ 100 መዛግብቲ እቶም 8 ንሓደ ፍሉይ ባህሪ NULL ዋጋ እንተሃልይዎም፡ ሽፋን ናይቲ ባህሪ 92% እዩ።


ካልእ ቢዝነስ ኬዝ ምስ መስርሕ ETL መዓልታዊ ቅጽበታዊ ስእሊ ሰንጠረዥ ፍርያት ዘመንጩ ንገምግም። ሽፋን ናይ ፍርያት መግለጺ ባህርያት ክንከታተል ንደሊ። እቲ ሽፋን ትሕቲ ዝተወሰነ ደረት እንተወዲቑ፡ ነቲ ናይ ደገፍ ጉጅለ መጠንቀቕታ ክለዓል ኣለዎ። ኣብ ታሕቲ ንመግለጺታት ፍርያት ኣብ ውሽጢ ክልተ ወርሒ ስእላዊ ውክልና ሽፋን ባህርያት ኣሎ፤









ፍጹም መዓልታዊ ፍልልያት ሽፋን ብምትንታን፡ እቲ ለውጢ ኣብ ከባቢ ዜሮ ከም ዝንቀሳቐስ ንዕዘብ፤










ነዚ ዳታ ከም ንቡር ዝርገሐ ምውካል ንቡር ዝርገሐ ዘለዎ ኮይኑ ትፅቢት ዝግበረሉ ለውጢ ከባቢ 0%ን መደበኛ ምዝንባል 2.45%ን ከምዘለዎ የረድእ።















ከምቲ ንርእዮ ዘለና፡ ነዚ ዳታሴት፡ ሽፋን ባህሪ መግለጺ ፍርያት ብተለምዶ ካብ -4.9% ክሳብ +4.9% ምስ 90% ርእሰ-ምትእምማን ይበጽሕ። ካብዚ መርኣዪ መሰረት ብምግባር እቲ ሽፋን ካብዚ ደረጃ ንላዕሊ እንተኾይኑ መጠንቀቕታ ንምልዓል ሕጊ ከነቐምጥ ንኽእል ኢና።

QA ብናይ ግዜ ተኸታታሊ ኣልጎሪዝም ይምርምር

ብሰንኪ ከም ወቕታዊነት ወይ ኣንፈታት ዝኣመሰሉ ረቛሒታት ርኡይ ፍልልይ ዘርእዩ ዳታሴታት እንተሰሪሕካ፡ ባህላዊ ስታቲስቲካዊ ኣገባባት ናይ ሓሶት መጠንቀቕታታት ከበግሱ ይኽእሉ። ናይ ግዜ ተኸታታሊ ኣልጎሪዝም ዝያዳ ዝተጸረየ ኣገባብ የቕርቡ፣ ንልክዕነትን ተኣማንነትን ናይ QA ምፍታሽካ የመሓይሹ።


ዝያዳ ርትዓዊ መጠንቀቕታታት ንምፍራይ፡ ወይ ነቲ... ኣውቶሪግረሲቭ ዝተዋደደ ምንቅስቓስ ማእከላይ ዋጋ (ARIMA) ወይ ድማ እቲ... ሆልት-ዊንተርስ ሜላ . እቲ ቀዳማይ ንኣንፈት ዘለዎም ዳታሴታት ጽቡቕ እዩ፣ እቲ ካልኣይ ግን ምስ ክልቲኡ ትረንድን ወቕታዊነትን ዘለዎም ዳታሴታት ክንገጥሞም የኽእለና። እዚ ኣገባብ እዚ ንደረጃ፣ ኣንፈትን ወቕታዊነትን ዝኸውን ባእታታት ይጥቀም፣ እዚ ድማ ምስ ግዜ ምስ ዝመጽእ ለውጢ ብተዓጻጻፊ መንገዲ ክላመድ የኽእሎ።


ንሆልት-ዊንተርስ ተጠቒምና ንኽልቲኡ ትረንድን ወቕታዊ ቅዲን ዘርኢ መዓልታዊ መሸጣ ሞክ-ሞዴል ንግበር፤

 import pandas as pd from statsmodels.tsa.holtwinters import ExponentialSmoothing # Load and preprocess the dataset data = pd.read_csv('sales_data.csv', index_col='date', parse_dates=True) data = data.asfreq('D').fillna(method='ffill') # Fit the Holt-Winters model model = ExponentialSmoothing(data, trend='add', seasonal='add', seasonal_periods=365) fit = model.fit() # Forecast and detect anomalies forecast = fit.fittedvalues residuals = data - forecast threshold = 3 * residuals.std() anomalies = residuals[abs(residuals) > threshold] print("Anomalies detected:") print(anomalies)


ነዚ ኣገባብ ብምጥቃም፡ ንጉዳያት ጽሬት ዳታ ከመልክቱ ዝኽእሉ ርኡይ ምዝንባላት ክትፈልጥ ትኽእል ኢኻ፡ እዚ ድማ ዝያዳ ንኡስ ኣገባብ ንQA ምፍታሽ ይህብ።


እዚ ጽሑፍ እዚ ንዓበይቲ ዳታሴታትኩም QA checks ብብቕዓት ንምትግባር ክሕግዘኩም ተስፋ እገብር። ቤተ-መጻሕፍቲ Deequ ብምጥቃምን ስታቲስቲካዊ ኣገባባትን ናይ ግዜ ተኸታታሊ ኣልጎሪዝማትን ብምውህሃድ፡ ምሉእነትን ተኣማንነትን ዳታ ከተረጋግጽ ትኽእል ኢኻ፡ ኣብ መወዳእታ ድማ ንኣሰራርሓታት ምሕደራ ዳታኻ ከተዕብዮ ትኽእል።


ኣብ ላዕሊ ዝተገልጹ ሜላታት ምትግባር ኣብ ታሕተዎት ኣፕሊኬሽናት ክህልዉ ዝኽእሉ ጸገማት ንምክልኻልን ሓፈሻዊ ጽሬት ዋሕዚ ስራሕ ዳታኻ ንምምሕያሽን ይሕግዘካ።

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks