paint-brush
QA ukax Jach’a Datos ukanakat Deequ & Métodos Estadísticos ukamp uñakipiukata@akshayjain1986
41,958 ullart’awinaka
41,958 ullart’awinaka

QA ukax Jach’a Datos ukanakat Deequ & Métodos Estadísticos ukamp uñakipi

ukata Akshay Jain7m2024/05/30
Read on Terminal Reader
Read this story w/o Javascript

Sinti jaya pachanakawa; Uñxatt’añataki

Deequ biblioteca ukax mä perfil de datos abierto ukat QA marco ukawa, ukax Spark ukan luratawa. Ukax complejas kamachinak validación ukar uñt’ayañatakiw jayti, ukax específicos requisitos ukarjam wakicht’atawa, ukhamat taqpach cobertura ukarjam uñjañataki. Deequ ukax jach’a métricas ukat anomalías uñt’ayañ ch’amanchawinak uñacht’ayi, ukax yanapt’ätamwa uñt’ayañataki ukhamarak proactivamente askichañataki datos calidad uka jan walt’awinak. Akax kunjams uka uñakipäwinak Deequ apnaqañamp phuqhasispa.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - QA ukax Jach’a Datos ukanakat Deequ & Métodos Estadísticos ukamp uñakipi
Akshay Jain HackerNoon profile picture

Mä yatxatat yatxatat yatxatat jaqin wali wakiskir yatiñanakapax jach’a yatxatañ yänak sum apnaqañawa, datos ukan suma uñt’ayasiñapataki ukhamarak atiniskañapataki. Datos ukax kuna sistema de datos ukanx central ukhamarak fundamental ukhamawa, ukatx kuna aski yatiñanakas yaqha aspectos de nuestra alxañ tuqinx utji, akax janiw jan yäqañjamäkiti.


Aka qillqatanx, jach’a conjuntos de datos ukan QA uñakipañanak lurañatakix ch’aman técnicas ukanakaw Deequ biblioteca ukat estadísticas ukan thakhinak apnaqasa. Nayax akham qhanañcht’kta uka thakhinak mayacht’asax, datos ukan chiqapar uñjañapataki, yatiyawinak apnaqañ lurawinakam juk’amp jach’anchayañataki, ukat jan walt’awinak jark’aqañatakiw aplicaciones descendentes ukan.

QA Uñakipt’añatakix Deequ Biblioteca apnaqasa

¿Kunatsa Deequ?

Escala ukan datos ukan calidad ukar uñjañax mä ch’amäspawa, juk’ampirus sistemas de archivos distribuidos jan ukax almacenes de datos ukan imatäki uka millones de filas ukanakamp apasiñax wali ch’amawa. Deequ biblioteca ukax mä perfil de datos abierto ukat QA marco ukawa, ukax Spark ukan luratawa ukax mä moderno ukat versatil herramienta ukawa, ukax aka jan walt’äw askichañatakiw lurata. Kunatix ukham herramientas ukanakat sipan mayjäki ukax Spark ukamp jan kuna jan walt’awimp mayacht’asiñ yatiñawa, aprovechando poder de procesamiento distribuido ukax jach’a conjuntos de datos ukanakar sum apnaqañataki.


Kunawsatix yant’apk ukhax uñjapxätawa kunjams flexibilidad ukax complejas reglamentos de validación ukar uñt’ayañ yanapt’i, ukax específicos requisitos ukarjam wakicht’atawa, ukhamat taqpach cobertura ukarjam uñjañataki. Ukhamarus, Deequ ukax jach’a métricas ukat anomalías uñt’ayañ ch’amanchawinak uñacht’ayi, ukax yanapt’ätamwa uñt’ayañataki ukhamarak proactivamente askichañataki datos calidad uka jan walt’awinak. Datos profesionales ukanakatakix jach’a ukat dinámico conjuntos de datos ukanakamp irnaqapxi, Deequ ukax mä solución suizo-cuchillo ukhamawa. Kunjamsa apnaqsna uk uñjañäni.

Ukax Deequ ukan utt’ayatawa

Deequ biblioteca ukan wakicht'awipata ukhamarak apnaqañ tuqit juk'amp yatiyawinakax perfil de datos ukar muyuntat uñt'ayatawa . Jan ch’amäñapatakix aka uñacht’äwinx mä qawqha anatt’añ registronak uñstayapxta:


 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)


Datos Asumciones ukanaka qhanañchaña

Jilapart datos ukan apnaqawinakapax atributos de datos ukanakat implícitas asumciones ukanakampiw jutapxi, kunjamatix jan NULL ukan valores ukat sapakïki ukanaka. Deequ ukampixa, uka asumciones ukanakax unidad pruebas ukanakampiw qhanstayi. Akax mä qawqha cheques comunes ukanakawa:


  1. Fila Jakhuwi: Uñakipt’aña datos conjunto ukaxa mä específico jakhuwi filanaka utjatapa.


  2. Atributo Completo: Uñakipt’añani atributos ukanakax id ukat productName ukanakax janipuniw NULL ukhamäkiti.


  3. Atributos Uniqueness: Yaqhip atributos ukanakax id ukham uñt’atawa.


  4. Valor Rango: Prioridad ukat numViews ukham atributos ukanakax suyt’at rangos ukar jaqukipatap chiqanchañawa.


  5. Patrón ukar uñtasita: Qhanancht’awinakax URL ukan utjatapat suyt’aña.


  6. Propiedades Estadísticas: Uñakipaña mediana de atributos numéricos ukaxa criterios específicos ukanakampi phuqhatapa.


Akax kunjams Deequ apnaqasaw uka uñakipäwinak phuqhasma:


 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()


Resultados ukanakat qhanañchaña

Uka uñakipäwinak apnaqañ tukuyasax Deequ ukax mä serie de trabajos Spark ukar jaqukipi, ukax datos ukan métricas ukar jakthapiñatakiw phuqhi. Uka qhipatxa, ukax afirmación funciones (jan ukax, _ == 5 tama uñakipañataki) uka métricas ukanx jawsatawa, ukhamat uñjañatakix constreñimientos ukax datos ukarux katxarutati janicha. Jiwasax "verificationResult” uka yänak uñakipt'araksnawa, yant'awix pantjasiwinak jikxati janicha uk uñjañataki:


 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}") } }


Jiwasatix uñacht’äw apnaqañänixa, aka mistuwinak jikxatañäni:


 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!


¡Uka yant’awix jiwasan asumciones ukanakax p’akintataw jikxatasïna! 5 (80%) ukjatx 4 (80%) atributo productName ukan chimpunakapax janiw null ukhamäkiti, ukatx 5 (mä arunx 40%) atributo descripción ukanx 2 ukhakiw URL ukanx utji. Wali askiwa, mä yant’aw t’ijtapxta ukatx pantjasiwinak jikxatapxta; maynix jank’akiw datos ukar askichañapa!

QA ukax Métodos Estadísticos ukanakampiw uñakipt’i

Deequ ukax mä ch’aman marco de datos ukar chiqanchañatak uñacht’ayi, ukampirus estadísticas ukan thakhinak mayacht’añax QA ukan uñakipäwinakap juk’amp jach’anchayaspawa, juk’ampirus mä conjunto de datos ukan métricas agregadas ukanakamp apasiñax wakisispawa. Kunjams estadísticas ukanakamp irnaqañax wakisispa uk uñjañäni, ukhamat datos ukan calidad ukar uñjañatakis.

Grabaciona Jakhuwi Uñakipaña

Mä escenario de negocios uñakipt’añäni, kawkhantix mä ETL (Extracto, Transformar, Carga) proceso ukax N registros ukanakaw sapa uru wakicht’at irnaqäwin lurasi. Yanapt’ir tamanakax QA uñakipañanak utt’ayañ munapxaspaw mä alerta uñstayañataki, kunatix mä jach’a desviación ukaw registro jakthapiwin utji. Amuyt’añataki, uka lurawix pä phaxsinx sapa urux 9.500 ukhamarak 10.500 registros ukanakaw lurasispa, kuna jach’a jilxatawi jan ukax jisk’achawix mä jan walt’awiw datos subyacentes ukanakamp uñacht’ayaspa.


Jiwasax mä método estadístico ukampiw aka umbral ukar uñt’ayaraksna, kawkir proceso ukax mä alerta uñstayañapawa equipo de apoyo ukaru. Aka amparamp qillqt’at uñacht’awix pä phaxsitx registros de conteo ukan arknaqawipat uñacht’ayatawa:











Uka uñakipañatakixa, registro jakthapiwi yatiyawixa mayjt’ayaraksnawa, ukhamata urut ururu mayjt’awinaka uñjañataki. Aka mayjt’awinakax jilpachx cero ukjaruw liwxatasi, kunjamatix aka ch’amanchawix uñacht’ayaski ukhama:












Kunawsatix aka tasa de cambio ukax mä distribución normal ukamp uñacht’ayktan ukhax mä curva de campana ukham uñstayi, ukax uñacht’ayiw datos ukanakax normalmente distribuidos ukhama. Suyt’ata mayjt’awix niya 0% ukjawa, ukatx desviación estándar ukax 2,63% ukjawa.













Aka uñakipäwix uñacht’ayiwa, registro jakhüwix -5,26% ukat +5,25% ukjaruw 90% confianzampiw jaqukipasi. Uka tuqitxa, mä kamachiw utt’ayasispa mä alerta uñstayañataki, registro jakthapiwix aka rango ukjat juk’ampiruw saraspa, ukhamat pachapar intervención ukar puriñapataki.

Atributos Cobertura ukax mä juk’a pachanakanwa

Cobertura de atributos e ukax mä jamuqa uñacht’ayañatakiw jan NULL ukan chimpunakax taqpach qillqt’at jakthapiwimp chika uñacht’ayi. Amuyt’añataki, 100 qillqatanakat 8 qillqatanakax mä atributo ukarux NULL valor ukaniwa, uka atributo ukan coberturapax 92% ukhawa.


Yaqha caso de negocios uñakipt’añäni mä proceso ETL ukampi sapa uru mä instantánea de tabla de productos uñstayasa. Jiwasax atributos de descripción de producto ukan coberturap uñjañ munapxta. Uka coberturax mä umbral ukar jaqukipata ukhax mä alerta ukaw equipo de apoyo ukarux sartayañapa. Aka amparamp qillqt’at uñacht’awix atributos ukan cobertura ukan uñacht’ayatawa, pä phaxsitx producto ukan qhanañchäwinakapataki:









Cobertura ukan mayjt’awinaka absoluta urut urur uñakipt’asax uñjtanwa, mayjt’awinakax cero ukar muyuntatw oscila:










Aka yatxatawixa mä normal distribución ukjama uñacht’ayasaxa uñacht’ayiwa normalmente distribuido ukhama suyt’ata mayjt’awimpi niya 0% ukja ukhamaraki desviación estándar 2,45% ukja.















Kunjamtix uñjktanxa, aka conjunto de datos ukatakix, producto descripción atributo cobertura ukax -4,9% ukjat +4,9% ukjakamaw 90% ukja confianzampi. Aka uñacht’awirjamaxa, mä kamachi utt’ayaraksnawa mä alerta uñstayañataki, cobertura ukaxa aka rango uksatxa juk’ampiruwa sarxaspa.

QA ukax Algoritmos de Serie de Tiempo ukampiw uñakipt’i

Jumatix conjuntos de datos ukanakamp irnaqasma, ukax jach’a mayjt’awinak uñacht’ayi kunatix factores ukanakax estacionalidad jan ukax tendencias ukanakaw utji, tradicionales métodos estadísticos ukanakax k’ari alertas ukanakaruw sartayaspa. Algoritmos de series de tiempo ukax mä juk’amp refinado uñakipañ uñacht’ayi, QA uñakipäwinak chiqaparu ukat atiniskañapataki.


Juk’amp amuyt’at alertas uñstayañatakix, ukax mä... Promedio Móvil Integrado Autoregresivo (ARIMA) ukaxa 1.1. jan ukax uka Holt-Winters ukax mä thakhiw sañ muni . Nayrïrix tendencias ukan conjuntos de datos ukanakatakix wali askiwa, ukampis qhipïrix conjuntos de datos ukanakamp tendencias ukat estacionalidad ukanakamp apasiñatakiw jaytistu. Aka lurawixa componentes ukanakawa nivel, tendencia ukatxa estacionalidad ukanakataki apnaqi, ukaxa pachana mayjt’awinakaruxa flexiblemente adaptañatakiwa.


Sapa uru aljasiñanak mock-model lurañäni, ukax tendencia ukat estacional ukanakan uñacht’ayatawa, Holt-Winters apnaqasa:

 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)


Aka lurawimpixa, wali jach’a desviaciones ukanakawa uñt’ayasi, ukaxa inasa uñacht’ayaspa datos calidad uka tuqita, ukaxa mä juk’ampi matizada uñakipaña QA uñakipañataki.


Nayax suyt’twa aka qillqatax yanapt’ätam suma phuqhañapataki QA uñakipañanak jach’a yatxatatanakamataki. Deequ biblioteca apnaqasa ukhamaraki estadísticas ukanakampi ukhamaraki algoritmos de serie de tiempo ukanakampi mayachata, ukaxa datos integridad ukhamaraki confiabilidad ukanaka uñjañataki, qhiparuxa datos ukanaka apnaqaña lurawinakaruxa ch’amanchañataki.


Aka pata tuqina qhananchata técnicas ukanaka phuqhañaxa yanapt’arakiniwa jan walt’awinaka jark’aqañataki aplicaciones descendentes ukanakana ukhamaraki taqpacha calidad de trabajos de datos ukanaka suma uñjañataki.