

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
<a name="emr-serverless-data-quality"></a>

Amazon EMR Data Quality, basato su [AWS Glue Data Quality](https://docs.aws.amazon.com/glue/latest/dg/glue-data-quality.html), 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*](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-data-quality.html) Management Guide.

## Prerequisiti
<a name="emr-serverless-dq-prerequisites"></a>

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` on`start-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](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-dq-getting-started.html#emr-dq-saved-rulesets) 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
<a name="emr-serverless-dq-walkthrough"></a>

1. **Crea un'applicazione EMR Serverless.** Usa release `emr-spark-8.1.0` o versioni successive. Crea un'applicazione Spark e allega un ruolo lavorativo con le autorizzazioni elencate in. [Prerequisiti](#emr-serverless-dq-prerequisites)

   Ad 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
   ```

1. **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)
   ```

   `results` DataFrame Contiene una riga per regola con le seguenti colonne:,, e. `Rule` `Outcome` `FailureReason` `EvaluatedMetrics` Le righe con un `Outcome` of `Failed` includono il valore osservato in`FailureReason`.

1. **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"
       }
   }'
   ```

1. **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 `publishToDataCatalogTarget` con un `DatabaseName` and`TableName`, 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
<a name="emr-serverless-dq-learn-more"></a>

Per il riferimento completo, consulta i seguenti argomenti nella *Amazon EMR Management* Guide:
+ [Panoramica, concetti e limiti sulla qualità dei dati di Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-data-quality.html)
+ [Funzionalità chiave (DQDL, analizzatori, rilevamento delle anomalie, regole dinamiche)](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-dq-key-capabilities.html)
+ [Recupero di un set di regole salvato dal AWS Glue Data Catalog](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-dq-getting-started.html#emr-dq-saved-rulesets)
+ [Lavorare con i risultati](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-dq-working-with-results.html)
+ [Monitoraggio e invio di avvisi con Amazon CloudWatch](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-dq-monitoring.html)
+ [Risoluzione dei problemi](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-dq-troubleshooting.html)