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 che i tuoi carichi di lavoro EMR Serverless Spark leggono e scrivono senza uscire dall'applicazione Spark. Questa pagina descrive i prerequisiti e la procedura dettagliata di EMR Serverless. Per concetti, API, monitoraggio e risoluzione dei problemi, consulta Amazon EMR Data Quality nella Amazon EMR Management Guide.
Prerequisiti
Amazon EMR Data Quality è installato per impostazione predefinita nelle versioni di Amazon EMR emr-spark-8.1.0 e successive. Sono supportati solo i carichi di lavoro Apache Spark.
Il ruolo di job runtime IAM assunto dall'applicazione EMR Serverless (passato tramite --execution-role-arn onstart-job-run) deve concedere le seguenti autorizzazioni per eseguire Data Quality e pubblicare i risultati.
| Azione | Quando richiesto |
|---|---|
glue:PublishDataQuality |
Pubblicare ogni valutazione su AWS Glue Data Quality in modo da poter visualizzare la cronologia, confrontare le esecuzioni e rilevare le anomalie dei feed. La pubblicazione è attivata per impostazione predefinita (enableDataQualityResultsPublishingèTrue), quindi concedi questa autorizzazione a meno che non la disattivi esplicitamente impostando l'opzione su. False |
glue:AccessDataQualityRuntimeConfiguration |
Per recuperare la configurazione di pubblicazione dal servizio quando la libreria inizializza la pubblicazione. Richiesto ogni volta che la pubblicazione è abilitata; senza di essa, la libreria disabilita automaticamente la pubblicazione per l'esecuzione. |
cloudwatch:PutMetricData |
Per inviare ad CloudWatch Amazon parametri relativi agli accessi e ai fallimenti per esecuzione per dashboard e allarmi. Richiesto solo quando lo imposti. enableDataQualityCloudWatchMetrics True |
glue:GetTable, glue:GetDatabase |
Per leggere i metadati della tabella del catalogo. Richiesto quando l'input DataFrame viene letto da una tabella di AWS Glue Data Catalog o quando l'applicazione passa publishToDataCatalogTarget in modo che il servizio possa attribuire l'esecuzione a una tabella di catalogo specifica. |
glue:GetDataQualityRuleset |
Per recuperare un set di regole salvato dal AWS Glue Data Catalog. Richiesto solo quando lo script Spark carica un set di regole dal catalogo invece di definire DQDL in linea. Vedi Recupero di un set di regole salvato dal AWS Glue Data Catalog. |
La seguente politica in linea concede il set minimo di autorizzazioni necessarie per pubblicare i risultati della qualità dei dati da un'applicazione EMR Serverless Spark.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GlueDataQuality", "Effect": "Allow", "Action": [ "glue:PublishDataQuality", "glue:AccessDataQualityRuntimeConfiguration" ], "Resource": "*" } ] }
Esegui la tua prima valutazione
-
Crea un'applicazione EMR Serverless. Usa release
emr-spark-8.1.0o versioni successive. Crea un'applicazione Spark e allega un ruolo lavorativo con le autorizzazioni elencate in. PrerequisitiAd esempio, per creare un'applicazione Spark, esegui:
aws emr-serverless create-application \ --name My_Spark_DataQuality_Application \ --release-label emr-spark-8.1.0 \ --type SPARK -
Definite un set di regole e valutatelo. PySpark Lo script seguente definisce un set di regole in DQDL, lo valuta rispetto a e stampa il risultato di ogni regola. DataFrame
from pyspark.sql import SparkSession from awsdataquality.transforms import EvaluateDataQuality spark = SparkSession.builder.appName("dq-example").getOrCreate() df = spark.read.parquet("s3://amzn-s3-demo-bucket/orders/") ruleset = """ Rules = [ RowCount > 1000, IsComplete "order_id", IsUnique "order_id", ColumnValues "status" in ["PLACED", "SHIPPED", "CANCELED"], Mean "order_total" between 10 and 500 ] """ results = EvaluateDataQuality.apply( frame=df, ruleset=ruleset, publishing_options={ "dataQualityEvaluationContext": "orders_daily", "enableDataQualityResultsPublishing": True, }, ) results.show(truncate=False)resultsDataFrame Contiene una riga per regola con le seguenti colonne:,, e.RuleOutcomeFailureReasonEvaluatedMetricsLe righe con unOutcomeofFailedincludono il valore osservato inFailureReason. -
Invia il job run. Inviate lo script come processo eseguito sulla vostra applicazione.
aws emr-serverless start-job-run \ --application-id<application-id>\ --execution-role-arn<execution-role-arn>\ --name dq-example \ --job-driver '{ "sparkSubmit": { "entryPoint": "s3://amzn-s3-demo-bucket/scripts/dq_example.py" } }' -
Recupera il risultato. Al termine dell'esecuzione del lavoro, elenca l'esecuzione e recuperane i dettagli con le API AWS Glue Data Quality o il. AWS CLI Se l'applicazione è impostata anche
publishToDataCatalogTargetcon unDatabaseNameandTableName, l'esecuzione viene visualizzata nella scheda Qualità dei dati di quella tabella del catalogo nella console AWS Glue.aws glue list-data-quality-results-v2 --max-results 5 aws glue get-data-quality-result-v2 --result-id<result-id>
Scopri di più su Amazon EMR Data Quality
Per il riferimento completo, consulta i seguenti argomenti nella Amazon EMR Management Guide: