

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à.

# Risoluzione degli errori di AWS Glue Data Quality
<a name="data-quality-trouble"></a>

Se riscontri errori in AWS Glue Data Quality, utilizza le seguenti soluzioni per aiutarti a trovare l'origine dei problemi e risolverli.

**Contents**
+ [Errore: modulo AWS Glue Data Quality mancante](#data-quality-trouble-error-1)
+ [Errore: permessi di AWS Lake Formation insufficienti](#data-quality-trouble-error-2)
+ [Errore: i set di regole non hanno un nome univoco](#data-quality-trouble-error-3)
+ [Errore: tabelle con caratteri speciali](#data-quality-trouble-error-4)
+ [Errore: errore di overflow con un set di regole di grandi dimensioni](#data-quality-trouble-error-5)
+ [Errore: lo stato generale della regola è non riuscito](#data-quality-trouble-error-6)
+ [AnalysisException: impossibile verificare l'esistenza del database predefinito](#data-quality-trouble-error-7)
+ [Messaggio di errore: Provided key map not suitable for given data frames](#data-quality-trouble-error-8)
+ [Eccezione nella classe utente: java.lang. RuntimeException : Impossibile recuperare i dati. Controlla i log in CloudWatch per avere maggiori dettagli](#data-quality-trouble-error-9)
+ [ERRORE DI AVVIO: errore durante il download da S3 per il bucket](#data-quality-trouble-error-10)
+ [InvalidInputException (status: 400): DataQuality le regole non possono essere analizzate](#data-quality-trouble-error-11)
+ [Errore: EventBridge non attiva i processi Qualità dei dati di Glue in base alla pianificazione che ho impostato](#data-quality-trouble-error-12)
+ [Errori CustomSQL](#data-quality-trouble-error-13)
+ [Regole dinamiche](#data-quality-trouble-error-14)
+ [Eccezione nella classe utente: org.apache.spark.sql. AnalysisException: org.apache.hadoop.hive.ql.metadata. HiveException](#data-quality-trouble-error-15)
+ [UNCLASSIFIED\_ERROR; IllegalArgumentException: Errore di analisi: non sono state fornite regole o analizzatori., nessuna valida alternativa in fase di input](#data-quality-trouble-error-16)

## Errore: modulo AWS Glue Data Quality mancante
<a name="data-quality-trouble-error-1"></a>

**Messaggio di errore**: No module named 'awsgluedq'.

**Risoluzione**: questo errore si verifica quando si esegue AWS Glue Data Quality in una versione non supportata. AWS Glue Data Quality è supportato solo nella versione 3.0 e successive di Glue.

## Errore: permessi di AWS Lake Formation insufficienti
<a name="data-quality-trouble-error-2"></a>

**Messaggio di errore**: Eccezione nella classe utente:`com.amazonaws.services.glue.model.AccessDeniedException`: Autorizzazioni Lake Formation insufficienti su impact\_sdg\_engagement (Service:; Codice di stato: 400; Codice di errore:AWS Glue; ID richiesta: AccessDeniedException 465ae693-b7ba-4df0-a4e4-6b17xxxxxxxx; Proxy: null).

**Risoluzione**: è necessario fornire autorizzazioni sufficienti in AWS Lake Formation.

## Errore: i set di regole non hanno un nome univoco
<a name="data-quality-trouble-error-3"></a>

**Messaggio di errore**: eccezione nella classe utente:... services.glue.model. AlreadyExistsException: Esiste già un altro set di regole con lo stesso nome.

**Risoluzione**: i set di regole sono globali e devono essere univoci.

## Errore: tabelle con caratteri speciali
<a name="data-quality-trouble-error-4"></a>

**Messaggio di errore**: eccezione nella classe utente: org.apache.spark.sql. AnalysisException: impossibile risolvere le colonne di input «C» fornite: [primary.data\_end\_time, primary.data\_start\_time, primary.end\_time, primary.last\_updated, primary.message, primary.process\_date, primary.rowhash, primary.run\_by, primary.run\_id, primary.start\_time, primary.status]; riga 1 pos 44;.

**Risoluzione**: attualmente esiste una limitazione per cui AWS Glue Data Quality non può essere eseguito su tabelle che contengono caratteri speciali come «.».

## Errore: errore di overflow con un set di regole di grandi dimensioni
<a name="data-quality-trouble-error-5"></a>

**Messaggio di errore**: Eccezione nella classe utente: java.lang. StackOverflowError.

**Risoluzione**: se disponi di un set di regole di grandi dimensioni con più di 2.000 regole, potresti riscontrare questo problema. Suddividi le tue regole in più set di regole.

## Errore: lo stato generale della regola è non riuscito
<a name="data-quality-trouble-error-6"></a>

**Condizione di errore**: il mio set di regole ha esito positivo, ma lo stato generale delle regole non è riuscito.

**Risoluzione**: questo errore si è probabilmente verificato perché hai scelto l'opzione per pubblicare le metriche su Amazon CloudWatch durante la pubblicazione. Se il tuo set di dati è in un VPC, il tuo VPC potrebbe non consentire a AWS Glue di pubblicare metriche su Amazon. CloudWatch In questo caso, devi >configurare un endpoint per consentire al tuo VPC di accedere ad Amazon. CloudWatch

## AnalysisException: impossibile verificare l'esistenza del database predefinito
<a name="data-quality-trouble-error-7"></a>

 **Condizione di errore** AnalysisException: impossibile verificare l'esistenza del database predefinito: com.amazonaws.services.glue.model. AccessDeniedException: Autorizzazioni Lake Formation insufficienti per impostazione predefinita (Service:AWS Glue; Codice di stato: 400; Codice di errore:; ID richiesta: XXXXXXXX-XXXX-XXXX-XXXX -XXXXXXXXXXXX AccessDeniedException; Proxy: null) 

**Risoluzione**: nell'integrazione del catalogo del processo AWS Glue, AWS Glue cerca sempre di verificare se il database predefinito esiste o meno utilizzando l'`GetDatabase API` AWS Glue. Quando l'autorizzazione `DESCRIBE` Lake Formation non viene concessa o viene concessa l'autorizzazione `GetDatabase IAM`, il processo ha esito negativo durante la verifica dell'esistenza del database predefinito. 

 Per risolvere: 

1.  Aggiungi l'autorizzazione `DESCRIBE` in Lake Formation per il database predefinito. 

1.  Configura il ruolo IAM associato al processo AWS Glue come Creatore di database in Lake Formation. Questo creerà automaticamente un database predefinito e concederà le autorizzazioni Lake Formation richieste per il ruolo. 

1.  Disabilita l'opzione `--enable-data-catalog`. Viene visualizzato come **Utilizza Data Catalog come metastore Hive** in AWS Glue Studio. 

   Se l'integrazione Data Catalog Spark SQL non è necessaria nel processo, è possibile disabilitarla.

## Messaggio di errore: Provided key map not suitable for given data frames
<a name="data-quality-trouble-error-8"></a>

 **Condizione di errore**: la mappa delle chiavi fornita non è adatta a determinati frame di dati. 

 **Risoluzione**: stai usando il tipo di **DataSetMatch**regola e le chiavi di join hanno dei duplicati. Le tue chiavi di join devono essere univoche e non possono essere NULL. Nei casi in cui non puoi avere chiavi di join univoche, prendi in considerazione l'utilizzo di altri tipi di regole, **AggregateMatch**ad esempio la corrispondenza nei dati di riepilogo. 

## Eccezione nella classe utente: java.lang. RuntimeException : Impossibile recuperare i dati. Controlla i log in CloudWatch per avere maggiori dettagli
<a name="data-quality-trouble-error-9"></a>

 **Condizione di errore**: eccezione nella classe utente: java.lang. RuntimeException : Impossibile recuperare i dati. Controlla i log in CloudWatch per avere maggiori dettagli. 

 **Risoluzione**: questo accade quando crei regole DQ su una tabella basata su Amazon S3 confrontabile con Amazon RDS o. Amazon Redshift In questi casi, AWS Glue non è in grado di caricare la connessione. Prova invece a configurare la regola DQ sul set di dati Amazon Redshift o Amazon RDS. Si tratta di un bug noto. 

## ERRORE DI AVVIO: errore durante il download da S3 per il bucket
<a name="data-quality-trouble-error-10"></a>

 **Condizione di errore**: ERRORE DI AVVIO: Errore durante il download da S3 per il bucket: `aws-glue-ml-data-quality-assets-us-east-1, key: jars/aws-glue-ml-data-quality-etl.jar.Access Denied (Service: Amazon S3; Status Code: 403; Please refer logs for details) `. 

 **Risoluzione**: le autorizzazioni relative al ruolo passate a AWS Glue Data Quality devono consentire la lettura dalla precedente posizione Amazon S3. Al ruolo deve essere collegata questa policy IAM: 

```
{
  "Sid": "allowS3",
  "Effect": "Allow",
  "Action": "s3:GetObject",
  "Resource": "arn:aws:s3:::aws-glue-ml-data-quality-assets-<region>/*"
}
```

 Fai riferimento all'[Autorizzazione di Qualità dei dati](https://docs.aws.amazon.com/glue/latest/dg/data-quality-authorization.html) per le autorizzazioni dettagliate. Queste librerie sono necessarie per valutare la qualità dei dati per i tuoi set di dati. 

## InvalidInputException (status: 400): DataQuality le regole non possono essere analizzate
<a name="data-quality-trouble-error-11"></a>

 **Condizione di errore**: InvalidInputException (status: 400): DataQuality le regole non possono essere analizzate. 

 **Risoluzione**: sono molte le possibili cause di questo errore. Una possibilità è che le regole siano racchiuse tra virgolette singole. Verifica che siano racchiuse tra virgolette doppie. Esempio: 

```
Rules = [
ColumnValues "tipo_vinculo" in ["CODO", "DOCO", "COCO", "DODO"] AND "categoria" = 'ES"
    AND "cod_bandera" = 'CEP'
```

 Modificalo con: 

```
Rules = [
(ColumnValues "tipovinculo" in [ "CODO", "DOCO", "COCO", "DODO"]) AND (ColumnValues "categoria" = "ES") 
    AND (ColumnValues "codbandera" = "CEP")
]
```

## Errore: EventBridge non attiva i processi Qualità dei dati di Glue in base alla pianificazione che ho impostato
<a name="data-quality-trouble-error-12"></a>

 **Condizione di errore**: EventBridge non attiva i processi AWS Glue Data Quality in base alla pianificazione che ho impostato. 

 **Risoluzione**: il ruolo che attiva il processo potrebbe non avere le autorizzazioni corrette. Assicurati che il ruolo che stai utilizzando per avviare i processi disponga delle autorizzazioni menzionate nella sezione [Configurazione IAM richiesta per la pianificazione delle esecuzioni di valutazione](https://docs.aws.amazon.com/glue/latest/dg/data-quality-authorization.html#data-quality-iam-setup-evaluation-runs). 

## Errori CustomSQL
<a name="data-quality-trouble-error-13"></a>

**Condizione di errore**:` The output from CustomSQL must contain at least one column that matches the input dataset for AWS Glue Data Quality to provide row level results. The SQL query is a valid query but no columns from the SQL result are present in the Input Dataset. Ensure that matching columns are returned from the SQL`.

 **Risoluzione**: la query SQL è valida, ma assicurati di selezionare solo le colonne della tabella primaria. La selezione di funzioni aggregate come somma o conteggio delle colonne della tabella primaria può causare questo errore. 



**Condizione di errore**:` There was a problem when executing your SQL statement: cannot resolve "Col"`.

 **Risoluzione**: questa colonna non è presente nella tabella primaria. 



**Condizione di errore**:` The columns that are returned from the SQL statement should only belong to the primary table. "In this case, some columns ( Col ) belong to reference table"`. 

 **Risoluzione**: nelle query SQL, quando esegui il join della tabella primaria con altre tabelle di riferimento, assicurati che l'istruzione select contenga solo i nomi di colonna della tabella primaria per generare risultati a livello di riga per tale tabella. 

## Regole dinamiche
<a name="data-quality-trouble-error-14"></a>

 **Condizione di errore**`: Dynamic rules require job context, and cannot be evaluated in interactive session or data preview.`.

**Causa:** questo messaggio di errore potrebbe apparire nei risultati dell'anteprima dei dati, o in altre sessioni interattive, quando nel set di regole sono presenti regole di qualità dei dati dinamiche. Le regole dinamiche fanno riferimento alle metriche storiche associate a un particolare nome di processo e contesto di valutazione, quindi non possono essere valutate nelle sessioni interattive. 

 **Risoluzione**: l'esecuzione del processo AWS Glue produrrà metriche storiche, a cui è possibile fare riferimento nelle esecuzioni successive per lo stesso processo. 

 **Condizione di errore**: 
+  ` [RuleType] rule only supports simple atomic operands in thresholds.`. 
+  `Function last not yet implemented for [RuleType] rule.` 

 **Risoluzione**: le regole dinamiche sono generalmente supportate per tutti i tipi di regole DQDL nelle espressioni numeriche (consulta il [Riferimento a Data Quality Definition Language (DQDL)](dqdl.md)). Tuttavia, alcune regole che producono più metriche non sono ancora supportate. ColumnValues ColumnLength 

**Condizione di errore**:` Binary expression operands must resolve to a single number.`. 

**Causa**: le regole dinamiche supportano le espressioni binarie, come `RowCount > avg(last(5)) * 0.9`. In questo caso, l'espressione binaria è `avg(last(5)) * 0.9`. Questa regola è valida perché entrambi gli operandi `avg(last(5))` e `0.9` si risolvono in un unico numero. Un esempio errato è `RowCount > last(5) * 0.9`, perché `last(5)` produrrà un elenco che non può essere confrontato in modo significativo con il conteggio delle righe corrente. 

 **Risoluzione**: utilizza le funzioni di aggregazione per ridurre un operando con valori di elenco a un unico numero. 

**Condizione di errore**:
+  `Rule threshold results in list, and a single value is expected. Use aggregation functions to produce a single value. Valid example: sum(last(10)), avg(last(10)).` 
+  `Rule threshold results in empty list, and a single value is expected.` 

**Causa**: è possibile utilizzare regole dinamiche per confrontare alcune funzionalità del set di dati con i valori storici corrispondenti. L'ultima funzione consente il recupero di più valori storici, se viene fornito un argomento intero positivo. Ad esempio, `last(5)` recupererà i cinque valori più recenti osservati nelle esecuzioni dei processi per la regola. 

 **Risoluzione**: è necessario utilizzare una funzione di aggregazione per ridurre questi valori a un unico numero per effettuare un confronto significativo con il valore osservato nell'esecuzione del processo corrente. 

Esempi validi:
+ `RowCount >= avg(last(5))`
+ `RowCount > last(1)`
+ `RowCount < last()`

Esempio non valido: `RowCount > last(5)`.

**Condizione di errore**:
+  `Function index used in threshold requires positive integer argument.` 
+  `Index argument must be an integer. Valid syntax example: RowCount > index(last(10, 2)), which means RowCount must be greater than third most recent execution from last 10 job runs.` 

 **Risoluzione**: durante la creazione di regole dinamiche, è possibile utilizzare la funzione di aggregazione `index` per selezionare un valore storico da un elenco. Ad esempio, `RowCount > index(last(5)`, 1) controllerà se il conteggio delle righe osservato nel processo corrente è strettamente maggiore del secondo conteggio di righe più recente osservato per il processo. `index` è indicizzato a zero. 

**Condizione di errore**:` IllegalArgumentException: Parsing Error: Rule Type: DetectAnomalies is not valid`. 

 **Risoluzione**: il rilevamento delle anomalie è disponibile solo in AWS Glue 4.0. 

**Condizione di errore**:` IllegalArgumentException: Parsing Error: Unexpected condition for rule of type ... no viable alternative at input ...`. 

 Nota: `...` è dinamico. Esempio: `IllegalArgumentException: Parsing Error: Unexpected condition for rule of type RowCount with number return type, line 4:19 no viable alternative at input '>last'`. 

 **Risoluzione**: il rilevamento delle anomalie è disponibile solo in AWS Glue 4.0. 

## Eccezione nella classe utente: org.apache.spark.sql. AnalysisException: org.apache.hadoop.hive.ql.metadata. HiveException
<a name="data-quality-trouble-error-15"></a>

 **Condizione di errore** `: Exception in User Class: org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.ql.metadata.HiveException: Unable to fetch table mailpiece_submitted. StorageDescriptor#InputFormat cannot be null for table: mailpiece_submitted (Service: null; Status Code: 0; Error Code: null; Request ID: null; Proxy: null)` 

 **Causa:** stai usando Apache Iceberg in AWS Glue Data Catalog e l'attributo Input Format in AWS Glue Data Catalog è vuoto. 

 **Soluzione**: questo problema si verifica quando usi il tipo di regola CustomSQL nella tua regola DQ. Un modo per risolvere questo problema è utilizzare "primario" o aggiungere il nome del catalogo `glue_catalog.` a `<database>.<table> in Custom ruletype` nel tipo di regola personalizzata. 

## UNCLASSIFIED\_ERROR; IllegalArgumentException: Errore di analisi: non sono state fornite regole o analizzatori., nessuna valida alternativa in fase di input
<a name="data-quality-trouble-error-16"></a>

 **Condizione di errore** `: UNCLASSIFIED_ERROR; IllegalArgumentException: Parsing Error: No rules or analyzers provided., no viable alternative at input` 

 **Risoluzione**: DQDL non è analizzabile. Ci sono alcuni casi in cui ciò può verificarsi. Se usi regole composite, assicurati che le parentesi giuste siano inserite correttamente. 

```
(RowCount >= avg(last(10)) * 0.6) and (RowCount <= avg(last(10)) * 1.4) instead of
      RowCount >= avg(last(10)) * 0.6 and RowCount <= avg(last(10)) * 1.4
```