![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Huk allin yachayniyuq huk ruwasqa willay profesional kaqmanta allin ruway hatun willay huñukuna, willaypa allin kayninta chaymanta atiyniyuq kayninta qhaway. Willayta mayqin sistema willaypa chawpi kaqnin chaymanta fundamental kaqnin, chaymanta ima allin yachaykuna wak aspectokuna qhatuyniykupi kanki, kayqa huk mana qhawayta atikunkichu.
Kay qillqasqapi, hatun willay huñukunapi QA qhawaykunata ruwanapaq sinchi técnicas nisqakunata maskani Deequ biblioteca nisqawan chaymanta estadística nisqa ruwaykunawan. Uraypi sut'inchasqay ruwanakuna huñuspa, willaypa hunt'asqa kayninta waqaychayta atikunki, willay kamachiy ruwayniykikunata aswan allinchayta chaymanta uray ruwanakunapi atikuq sasachakuykunata hark'ayta atikunki.
Escala kaqpi willaypa allin kayninta qhawayqa manchachikuy ruwaymi, aswanta waranqa waranqa waranqa filakuna rakisqa willañiqi sistemakunapi utaq willay waqaychanakunapi waqaychasqa kaqwan ruwaspa. Deequ biblioteca huk kichasqa-qullqi willay perfil ruway chaymanta QA marco Spark kaqpi ruwasqa chaymanta huk kunan pacha chaymanta versatil yanapakuy kay sasachakuy allichanapaq ruwasqa. Imachus rikch'aq yanapakuykunamanta t'aqakun chaymi Spark kaqwan mana pantasqa tinkiynin atiynin, rakisqa ruway atiyta aprovechaspa hatun willay huñukuna allin llamk'achinapaq.
Mayk'aq pruebanki, qhawanki imaynatachus flexibilidadnin saqisunki definiyta complejos validación kamachiykunata ruwasqa específicas requisitosniykimanhina, tukuypaq coberturata qhawaspa. Chaymanta, Deequ hatun métricas chaymanta anomalía tariy atiykunata ruwan chaymanta yanapasunki riqsiyta chaymanta proactivamente willaypa calidadninmanta sasachakuykunata allichayta. Hatun chaymanta kallpasapa willay huñukunawan llamk'aq willay profesionalkunapaq, Deequ huk Suiza-cuchillo solucionmi. Qawasun imaynata servichikunanchikmanta.
Aswan sut'inchaykuna Deequ biblioteca churaymanta chaymanta llamk'ana casokuna willaypa perfilnin muyuriqpi kaypi yaykuy atikun . Simplicidadrayku, kay ejemplopi, huk iskay kimsa pukllana registrokunatalla paqarichirqayku:
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)
Yaqa llapan willay ruwanakuna willay atributokunamanta implícito suposicionkunawan hamunku, mana NULL chanikuna chaymanta sapalla kaynin hina. Deequwanqa, kay suposiciones nisqakuna pruebas unitarias nisqawan sut’iman tukupun. Kaypi wakin común chequekuna:
Fila yupay: Willayta huñupi huk yupay filakuna kasqanmanta qhaway.
Atributo hunt'asqa kay: id hinallataq productName hina atributokuna mana hayk'aqpas NULL kasqankuta qhaway.
Atributo Sapaq kaynin: Wakin atributokuna, id hina, sapalla kasqankuta qhaway.
Chaninpa llikan: Ñawpaqchay hinallataq numViews hina atributokuna suyasqa llimp'ikuna ukhupi urmasqankuta chiqaqchay.
Patrón tupachiy: Chiqaqchay sut'inchaykuna URLkuna kasqanmanta suyasqa kaqtin.
Propiedades Estadísticas: Aseguray mediana de atributos numéricos nisqa criterios específicos nisqawan tupasqanmanta.
Kaypi imayna kay qhawaykunata Deequ kaqwan ruwayta atikunki:
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()
Kay qhawaykunata purichisqanmanta, Deequ huk serie Spark llamkanakunaman tikran, mayqinkunatachus ruwan willaykunapi mitricakuna yupananpaq. Chaymanta, afirmacion ruwanakunaykita waqyan (kayhina, _ == 5 sayay qhawaypaq) kay mitricakunapi qhawanapaq sichus harkaykuna willayta hap'in. "verificationResult" nisqa objetota qhawayta atiykuman, prueba pantaykunata tarisqachu icha manachu chayta qhawanapaq:
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}") } }
Ejemplota purichiptinchikqa kay lluqsiytam tarinchik:
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!
¡Chay pruebapin tarirqanku suposicionninchiskuna violasqa kashasqanmanta! 5manta 4lla (80%) productName laya chanikuna mana ch'usaq kanku, chaymanta 2 5manta (icha, 40%) willay laya chanikunalla URLyuq karqan. Ancha kusisqa, prueba purichirqayku, pantaykunata tarirqayku; pipas chaylla allichanan chay datoskunata!
Deequ huk sinchi marco willayta chiqaqchaypaq qun, estadística ruwanakuna tinkiyqa QA qhawayniyki aswan allinchayta atin, aswanta sichus huk willay huñumanta huñusqa métricas kaqwan ruwachkanki. Qhawarisunchis imaynatachus métodos estadísticas nisqakunata llamk'achiyta atikunki qhawanapaq chaymanta willaypa allin kayninta qhawanapaq.
Yuyaykuy huk negocio escenario maypi huk ETL (Extracto, Transformar, Carga) ruway N registrokunata sapa p'unchaw programasqa llamk'aypi ruwan. Yanapakuy equipokuna QA qhawaykunata churayta munankuman huk alerta hatarichinapaq sichus huk hatun desviación kan registro yupaypi. Ejemplopaq, sichus proceso típicamente 9.500manta 10.500 registrokunata sapa p’unchaw iskay killakunapi ruwan, ima hatun yapakuypas utaq pisiyaypas huk sasachakuy kaqta rikuchinman chay datos subyacentes kaqwan.
Kay umbral kaqmanta riqsichinapaq huk método estadístico kaqwan ruwayta atiykuman mayqin ruwaypichus huk alerta yanapakuy equipoman hatarichinan tiyan. Uraypiqa iskay killamanta registro yupay qatipaymanta huk rikch'anachiymi kachkan:
Kayta t’aqwinapaqqa, registro yupay willakuykunata t’ikrasunman, sapa p’unchay t’ikrakuykunata qhawanapaq. Kay tikrakuykunaqa cero muyuriqpim kuyurin, kay tablapi qawarisqa hina:
Kay tasa de cambio nisqa normal rakiywan rikuchiptinchikqa, campana kurva nisqatam ruwan, chaymi qawachin datos normalmente rakisqa kasqanmanta. Chay suyasqa tikrayqa 0% muyuriqpim kachkan, desviación estándar nisqawanmi 2,63%.
Kay anlisismi qawarichin chay registro yupayqa típicamente urmamun -5,26%manta +5,25%kama 90% confianzawan. Kaypi hapipakuspa, huk kamachiyta churayta atikunki huk alerta hatarichinapaq sichus registro yupay kay rangomanta aswan karun, pacha intervención kaqta qhawaspa.
Atributo qata e mana NULL chanikunap ratio kaqninmanta tukuy registro yupayman huk willay huñupaq instantánea kaqpaq riman. Ejemplopaq, sichus 8 100 registrokunamanta NULL chaniyuq kanku huk layapaq, chay layapaq qatasqa 92%.
Huk negocio casota huk ETL ruwaywan sapa p'unchaw huk ruru tabla instantánea paqarichiqwan qhawasunchik. Munayku qhawayta kay cobertura kaqmanta rurumanta willakuy atributokunamanta. Sichus cobertura huk umbral urapi urmamun chayqa, huk alerta ruwakunan tiyan chay equipo de apoyo kaqpaq. Uraypi huk rikuy rikuchiy kachkan atributokuna qatasqamanta ruru willakuykunapaq iskay killamanta:
Cobertura nisqapi sapa punchaw absoluto diferenciakunata qawarispaqa, qawarinchikmi chay cambiokuna cero muyuriqpi kuyurisqankuta:
Kay willayta normal rakiy hina rikuchiyqa qawarichinmi normal rakisqa kasqanmanta, suyasqa tikraywan 0% muyuriqpi, desviación estándar 2,45% nisqawan.
Rikusqaykuhina, kay willay huñupaq, ruru willakuy atributo qata típicamente -4.9% kaqmanta +4.9% kaqkama 90% hapipakuywan. Kay rikuchiqman hina, huk kamachiyta churayta atiykuman huk alerta hatarichinapaq sichus cobertura kay rangomanta aswan karunchakun.
Sichus llamk'achkanki willay huñukunawan mayqinkunachus hatun t'ikraykunata rikuchinku factores kaqhina estacionalidad utaq tendenciakunarayku, tradicional métodos estadísticas llulla alertas kaqta llamk'achinkuman. Algoritmos serie de tiempo kaqmanta aswan ch'uyanchasqa ruwayta qunku, QA qhawayniykikunap chiqan kayninta chaymanta atiyniyuq kayninta allinchaspa.
Aswan yuyaysapa alertas ruwanapaq, mayqintapas llamk'achiy atikunki
Sapa p'unchaw rantiykunata simulachikusun, chaykuna iskaynin tendenciata chaymanta pacha ruwaykunata rikuchinku Holt-Winters llamk'achispa:
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)
Kay ruwayta llamk'achispa, hatun desviaciones kaqta tariyta atikunki mayqinkunachus willaypa calidadninmanta sasachakuykunata rikuchinman, aswan matizada enfoqueta QA qhawaykunaman quspa.
Suyachkani kay qillqasqa yanapasunki allinta QA qhawaykunata hatun willay huñuykikunapaq ruwayta. Deequ bibliotecata llamk'achispa chaymanta estadística ruwanakuna chaymanta pacha serie algoritmokuna tinkispa, willaypa hunt'asqa kayninta chaymanta atiyniyuq kayninta qhawayta atikunki, qhipaman willay kamachiy ruwanakunayki allinchayta atikunki.
Hawa willasqa técnicas ruwayqa yanapasunki hark'ayta atikuq sasachakuykunata uray ruwanakunapi chaymanta allinchayta tukuy calidadta willay llamkanakunaykimanta.