Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Qualità dei dati di Amazon EMR
Amazon EMR Data Quality, basato su AWS Glue Data Quality, ti consente di misurare e monitorare la qualità dei dati letti e scritti dai carichi di lavoro Amazon EMR Spark senza uscire dall'applicazione Spark. Amazon EMR Data Quality utilizza lo stesso motore Deequemr-spark-8.1.0) su Amazon EMR, puoi valutare la qualità dei dati direttamente all'interno delle tue applicazioni Amazon EMR Spark aggiungendo la trasformazione allo script Spark. EvaluateDataQuality La trasformazione esegue un set di regole dichiarativo rispetto al tuo DataFrame e restituisce il risultato per regola durante il processo, in modo che l'applicazione possa agire sul risultato (ad esempio, interrompere una scrittura a valle quando una regola fallisce). Ogni valutazione viene pubblicata anche su AWS Glue Data Quality, così puoi rivedere la cronologia delle tue esecuzioni e avvisarle insieme alle esecuzioni di AWS Glue ETL e del AWS Glue Data Catalog.
L'uso di Amazon EMR Data Quality richiede un'applicazione Spark e un set di regole scritto in Data Quality Definition Language (DQDL). Non è richiesta nessun'altra programmazione oltre al flusso di lavoro Spark esistente.
Amazon EMR Data Quality è disponibile in tutte e tre le modalità di implementazione di Amazon EMR: Amazon EMR su EC2, Amazon EMR su EKS e Amazon EMR Serverless. È supportato solo per Apache Spark.
Argomenti
Come funziona la qualità dei dati
Amazon EMR Data Quality è una trasformazione di Spark. Gli passi un set di regole DQDL DataFrame e valuta le regole e restituisce una serie di risultati. DataFrame Ogni valutazione viene inoltre pubblicata su AWS Glue Data Quality in modo da poter interrogare il risultato in un secondo momento tramite le API o la console AWS Glue. AWS Glue ETL e AWS Glue Data Catalog vengono pubblicati nello stesso store, quindi puoi confrontare le esecuzioni di Amazon EMR con le esecuzioni di uno di questi motori.
Definisci le tue aspettative sulla qualità dei dati come un set di regole dichiarativo scritto nel riferimento Data Quality Definition Language (DQDL). Un set di regole è un insieme di regole che descrivono le proprietà previste di un set di dati. Ad esempio, il set di regole seguente verifica che una tabella abbia più di 100 righe, che la customer_id colonna sia completa e unica e che la country colonna sia estratta da un insieme fisso di valori.
Rules = [ RowCount > 100, IsComplete "customer_id", IsUnique "customer_id", ColumnValues "country" in ["US", "CA", "MX"] ]
In fase di esecuzione, la EvaluateDataQuality trasformazione legge la tua DataFrame, valuta ogni regola con lo stesso motore Deequ utilizzato da AWS Glue Data Quality e AWS Glue Data Catalog e restituisce il risultato (PassedFailed, oError) per ogni regola. Le regole non riuscite includono il valore osservato in modo da poterle classificare senza riavviare l'applicazione. Il risultato è uno Spark su cui DataFrame l'applicazione può diramarsi, registrarsi o persistere.
Data Quality pubblica inoltre ogni valutazione sul servizio AWS Glue Data Quality. Da lì puoi:
-
Interroga i risultati storici con le API AWS Glue Data Quality (
GetDataQualityResultV2ListDataQualityResultsV2,,BatchGetDataQualityResultV2) AWS CLI, o la console AWS Glue. -
Visualizza l'esecuzione nella console AWS Glue nella tabella AWS Glue Data Catalog che è stata convalidata al momento dell'impostazione
publishToDataCatalogTargetdell'applicazione. L'esecuzione viene visualizzata nella scheda Qualità dei dati del database e della tabella specificati, insieme alle esecuzioni di AWS Glue ETL destinate alla stessa tabella. -
Abilita il rilevamento delle anomalie nelle serie temporali di statistiche prodotte da ogni esecuzione.
Poiché i risultati possono essere pubblicati nello stesso archivio utilizzato da AWS Glue Data Quality, puoi correlare le esecuzioni tra i motori di elaborazione. Le esecuzioni che condividono un EvaluationContext (un identificatore di stringa che passi alla trasformazione) vengono visualizzate come un singolo set di dati logico nella console e nei corsi di formazione sul rilevamento delle anomalie, indipendentemente dal fatto che provengano da un'applicazione Amazon EMR Spark o da un processo Glue ETL. AWS
Concetti e terminologia
I seguenti termini compaiono in questo capitolo e nelle API e nella console di AWS Glue Data Quality.
- Regola
-
Una singola affermazione dichiarativa su un set di dati, scritta in DQDL. Ad esempio
RowCount > 1000oIsUnique "order_id". Ogni regola restituisce, o.PassedFailedError - Set di regole
-
Una raccolta denominata di regole che vengono valutate insieme in un'unica chiamata a.
EvaluateDataQuality - Analizzatore
-
Una statistica calcolata per un set di dati senza indicare un esito positivo o negativo, ad esempio.
Mean "order_total"Gli analizzatori stabiliscono le soglie delle regole e addestrano il modello di rilevamento delle anomalie. Consulta Analizzatori. - Punteggio di qualità dei dati
-
La percentuale di regole di un set di regole passate in una determinata esecuzione, calcolata come.
rules passed / (rules passed + rules failed)Le regole che prevedono errori e le osservazioni non contribuiscono al punteggio. Il punteggio viene restituito dalle API AWS Glue Data Quality e, quando l'applicazione viene impostatapublishToDataCatalogTarget, appare nella console AWS Glue nella scheda Qualità dei dati della tabella del catalogo attribuita. - Osservazione
-
Un valore contrassegnato dal rilevamento di anomalie come al di fuori dell'intervallo previsto. Le osservazioni non riducono il punteggio di qualità dei dati. Consulta Rilevamento anomalie.
EvaluationContext-
Un identificatore di stringa che raggruppa le esecuzioni dello stesso set di dati logici tra i motori di elaborazione. Le esecuzioni che condividono e
EvaluationContextalimentano lo stesso modello di rilevamento delle anomalie e vengono visualizzate insieme nella console AWS Glue. Consulta Confronto delle esecuzioni tra Amazon EMR e AWS Aderenza. - Pubblicazione
-
Il passaggio che scrive il risultato di un'
EvaluateDataQualityesecuzione al servizio AWS Glue Data Quality in modo che possa essere letto in seguito tramite le API AWS Glue Data Quality e la console AWS Glue. La pubblicazione è abilitata per impostazione predefinita e controllata dalenableDataQualityResultsPublishingkey inpublishing_options. Ogni pubblicazione è contrassegnata daEvaluationContext, l'identificatore utilizzato dal rilevamento delle anomalie e dal confronto tra motori per raggruppare le esecuzioni. Quando anche l'applicazione viene impostatapublishToDataCatalogTarget, l'esecuzione viene attribuita a una tabella di catalogo e viene visualizzata nella scheda Qualità dei dati di tale tabella nella console AWS Glue. - DQDL
-
Data Quality Definition Language, il linguaggio dichiarativo utilizzato per creare set di regole di Data Quality. Consulta Valutazione delle regole e DQDL.
Dove eseguire la convalida nella tua pipeline
Puoi richiamare EvaluateDataQuality ovunque in uno script Spark. I tre modelli più comuni sono:
-
Pre-validation. Valuta l'input non elaborato subito dopo la lettura. Utilizzatelo per risolvere rapidamente i problemi iniziali (file mancanti, variazioni dello schema, tabelle vuote) prima di dedicare il calcolo al resto dell'applicazione.
-
Convalida in linea. Valuta un intervallo intermedio DataFrame tra le trasformazioni. Utilizzatelo per controllare l'output di un passaggio specifico (ad esempio, dopo un'unione o un'aggregazione).
-
Post-validation. Valuta la finale DataFrame prima di scrivere sul lavandino. Utilizzatelo per bloccare una pubblicazione successiva sul risultato: ramificatevi sulla
Outcomecolonna e interrompete la scrittura se una regola fallisce.
Il seguente PySpark frammento di codice inserisce una scrittura sul risultato di una valutazione successiva alla convalida.
results = EvaluateDataQuality.apply( frame=final_df, ruleset=ruleset, publishing_options={ "dataQualityEvaluationContext": "orders_daily", "enableDataQualityResultsPublishing": True, }, ) failed = results.filter("Outcome in ('Failed', 'Error')").count() if failed > 0: raise RuntimeError(f"{failed} data quality rules failed or errored; aborting write") final_df.write.mode("overwrite").parquet("s3://amzn-s3-demo-bucket/orders_curated/")
Limits
-
Un singolo set di regole può contenere fino a 2.000 regole.
-
L'origine DQDL serializzata di un set di regole non deve superare i 65 KB.
-
Data Quality raccoglie statistiche quando si crea una regola o un analizzatore. Non vi è alcun costo associato alla memorizzazione di queste statistiche. Tuttavia, esiste un limite di 100.000 statistiche per account e tali statistiche verranno conservate per un massimo di due anni.
-
La qualità dei dati è supportata solo per le applicazioni Apache Spark su Amazon EMR. Non funziona su Hive, Trino, Flink o altri motori non Spark supportati da Amazon EMR.