Personalizzato SQL - AWS Glue

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

Personalizzato SQL

Questo tipo di regola è stato esteso per supportare due casi d'uso:

  • Esegue un'SQListruzione personalizzata su un set di dati e verifica il valore restituito rispetto a una determinata espressione.

  • Esegui un'SQListruzione personalizzata in cui specifichi un nome di colonna nell'SELECTistruzione con cui confrontarla con alcune condizioni per ottenere risultati a livello di riga.

Sintassi

CustomSql <SQL_STATEMENT> <EXPRESSION>
  • SQL_ STATEMENT — Un'SQListruzione che restituisce un singolo valore numerico, racchiuso tra virgolette doppie.

  • EXPRESSION— Un'espressione da eseguire in base alla risposta del tipo di regola per produrre un valore booleano. Per ulteriori informazioni, consulta Espressioni.

Esempio: personalizzato SQL per recuperare il risultato complessivo di una regola

Questa regola di esempio utilizza un'SQListruzione per recuperare il conteggio dei record per un set di dati. La regola verifica quindi che il conteggio dei record sia compreso tra 10 e 20.

CustomSql "select count(*) from primary" between 10 and 20

Esempio: personalizzato SQL per recuperare i risultati a livello di riga

Questa regola di esempio utilizza un'SQListruzione in cui si specifica un nome di colonna nell'SELECTistruzione con cui confrontare con alcune condizioni per ottenere risultati a livello di riga. Un'espressione di condizione di soglia definisce una soglia di quanti record devono avere esito negativo perché l'intera regola abbia esito negativo. Tieni presente che una regola non può contenere contemporaneamente una condizione e una parola chiave.

CustomSql "select Name from primary where Age > 18"

oppure

CustomSql "select Name from primary where Age > 18" with threshold > 3
Importante

L'alias primary sostituisce il nome del set di dati che si desidera valutare. Quando lavori con ETL lavori visivi sulla console, rappresenta primary DynamicFrame sempre il passaggio alla EvaluateDataQuality.apply() trasformazione. Quando si utilizza il AWS Glue Data Catalog per eseguire attività di qualità dei dati su una tabella, primary rappresenta la tabella.

Se utilizzi Catalogo dati AWS Glue, puoi anche utilizzare i nomi effettivi delle tabelle:

CustomSql "select count(*) from database.table" between 10 and 20

È inoltre possibile effettuare il join di più tabelle per confrontare diversi elementi di dati:

CustomSql "select count(*) from database.table inner join database.table2 on id1 = id2" between 10 and 20

In AWS GlueETL, Custom SQL può identificare i record che non hanno superato i controlli di qualità dei dati. Affinché ciò funzioni, è necessario restituire i record che fanno parte della tabella primaria della quale si sta valutando la qualità dei dati. I record restituiti come parte della query sono considerati riusciti, mentre i record che non vengono restituiti sono considerati non riusciti.

La regola seguente garantirà che i record con età < 100 vengano identificati come riusciti e i record al di sopra vengano contrassegnati come non riusciti.

CustomSql "select id from primary where age < 100"

Questa SQL regola personalizzata verrà applicata quando il 50% dei record ha un'età superiore a 10 anni e identificherà anche i record che hanno avuto esito negativo. I record restituiti da questa Custom SQL verranno considerati superati mentre quelli non restituiti verranno considerati non riusciti.

CustomSQL "select ID, CustomerID from primary where age > 10" with threshold > 0.5

Nota: la SQL regola personalizzata avrà esito negativo se si restituiscono record che non sono disponibili nel set di dati.