View a markdown version of this page

Creazione e utilizzo AWS Glue DataBrew recipes - AWS Glue DataBrew Guida per gli sviluppatori

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

Creazione e utilizzo AWS Glue DataBrew recipes

In DataBrew, una ricetta è un insieme di passaggi di trasformazione dei dati. Puoi applicare questi passaggi a un campione di dati o applicare la stessa ricetta a un set di dati.

Il modo più semplice per sviluppare una ricetta è creare un DataBrew progetto, in cui puoi lavorare in modo interattivo con un campione dei tuoi dati. Per ulteriori informazioni, consulta. Creazione e utilizzo AWS Glue DataBrew progetti Come parte del flusso di lavoro per la creazione del progetto, viene creata e allegata al progetto una nuova ricetta (vuota). Puoi quindi iniziare a creare la tua ricetta aggiungendo trasformazioni di dati.

Nota

Puoi includere fino a 100 trasformazioni di dati in una singola DataBrew ricetta.

Man mano che procedi con lo sviluppo della ricetta, puoi salvare il lavoro pubblicando la ricetta. DataBrew mantiene un elenco di versioni pubblicate della ricetta. Puoi utilizzare qualsiasi versione pubblicata in un processo di ricetta, per eseguire la ricetta (in un processo di ricetta) per trasformare il tuo set di dati. Puoi anche scaricare una copia dei passaggi della ricetta, in modo da riutilizzare la ricetta in altri progetti o altre trasformazioni di set di dati.

Puoi anche sviluppare DataBrew ricette a livello di codice, utilizzando AWS Command Line Interface(AWS CLI) o uno degli SDK.AWSNell' DataBrew API, le trasformazioni sono note come azioni di ricetta.

Nota

In una sessione di DataBrew progetto interattiva, ogni trasformazione di dati applicata comporta una chiamata all' DataBrew API. Queste chiamate API avvengono automaticamente, senza che tu debba conoscere i dettagli dietro le quinte.

Anche se non sei un programmatore, è utile comprendere la struttura di una ricetta e come DataBrew organizza le azioni della ricetta.

Pubblicazione di una nuova versione della ricetta

Pubblichi nuove versioni di una ricetta in una sessione interattiva DataBrew del progetto.

Per pubblicare una nuova versione della ricetta
  1. Nel riquadro della ricetta, scegliete Pubblica.

  2. Inserisci una descrizione per questa versione della ricetta e scegli Pubblica.

Puoi visualizzare tutte le ricette pubblicate e le relative versioni scegliendo PROGETTI dal pannello di navigazione.

Definizione della struttura di una ricetta

Quando crei per la prima volta un progetto utilizzando la DataBrew console, definisci una ricetta da associare a quel progetto. Se non hai una ricetta esistente, la console ne crea una per te.

Mentre lavori con il tuo progetto nella console, usi la barra degli strumenti di trasformazione per applicare azioni ai dati di esempio del tuo set di dati. La console mostra i passaggi della ricetta e l'ordine di tali passaggi, man mano che continui a creare la ricetta. Puoi iterare e rifinire la ricetta finché non sei soddisfatto dei passaggi.

NelNozioni di base su AWS Glue DataBrew, crei una ricetta per trasformare un set di dati di famose partite di scacchi. Puoi scaricare una copia dei passaggi della ricetta, scegliendo Scarica come JSON o Scarica come YAML, come mostrato nella schermata seguente.

Altro menu ampliato con le opzioni Importa ricetta, Scarica come YAML e Scarica come JSON.

Il file JSON scaricato contiene le azioni relative alla ricetta corrispondenti alle trasformazioni che hai aggiunto alla ricetta.

Una nuova ricetta non prevede passaggi. Puoi rappresentare una nuova ricetta come un elenco JSON vuoto, come mostrato di seguito.

[ ]

Di seguito è riportato un esempio di tale file, perchess-project-recipe. L'elenco JSON contiene diversi oggetti che descrivono i passaggi della ricetta. Ogni oggetto nell'elenco JSON è racchiuso tra parentesi graffe (). { } Le righe JSON sono delimitate da virgole.

[ { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "black_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "black_rating" } ] }, { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "white_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "white_rating" } ] }, { "Action": { "Operation": "GROUP_BY", "Parameters": { "groupByAggFunctionOptions": "[{\"sourceColumnName\":\"winner\",\"targetColumnName\":\"winner_count\",\"targetColumnDataType\":\"int\",\"functionName\":\"COUNT\"}]", "sourceColumns": "[\"winner\",\"victory_status\"]", "useNewDataFrame": "true" } } }, { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "winner" } }, "ConditionExpressions": [ { "Condition": "IS", "Value": "[\"draw\"]", "TargetColumn": "winner" } ] }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "mate", "sourceColumn": "victory_status", "value": "checkmate" } } }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "resign", "sourceColumn": "victory_status", "value": "other player resigned" } } }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "outoftime", "sourceColumn": "victory_status", "value": "ran out of time" } } } ]

È più facile vedere che ogni azione è una riga individuale se aggiungiamo solo nuove righe per nuove azioni, come mostrato di seguito.

[ { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "black_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "black_rating" } ] }, { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "white_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "white_rating" } ] }, { "Action": { "Operation": "GROUP_BY", "Parameters": { "groupByAggFunctionOptions": "[{\"sourceColumnName\":\"winner\",\"targetColumnName\":\"winner_count\",\"targetColumnDataType\":\"int\",\"functionName\":\"COUNT\"}]", "sourceColumns": "[\"winner\",\"victory_status\"]", "useNewDataFrame": "true" } } }, { "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "winner" } }, "ConditionExpressions": [ { "Condition": "IS", "Value": "[\"draw\"]", "TargetColumn": "winner" } ] }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "mate", "sourceColumn": "victory_status", "value": "checkmate" } } }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "resign", "sourceColumn": "victory_status", "value": "other player resigned" } } }, { "Action": { "Operation": "REPLACE_TEXT", "Parameters": { "pattern": "outoftime", "sourceColumn": "victory_status", "value": "ran out of time" } } } ]

Le azioni vengono eseguite in sequenza, nello stesso ordine del file:

  • REMOVE_VALUES— Per filtrare tutte le partite in cui il punteggio di un giocatore è inferiore a 1.800, il punteggio minimo richiesto per essere un giocatore di scacchi di classe A. Questa azione si ripete in due occasioni: una per rimuovere i giocatori dal lato nero che non appartengono almeno alla classe A, e un'altra per rimuovere i giocatori dalla parte bianca che non sono a questo livello.

  • GROUP_BY— Per riassumere i dati. In questo caso, GROUP_BY ordina le righe in gruppi in base ai valori di winner (e). black white Ciascuno di questi gruppi viene quindi ulteriormente suddiviso, ordinando le righe in sottogruppi in base ai valori di victory_status (mate,, resign e). outoftime draw Infine, viene contato il numero di occorrenze per ogni sottogruppo. Il riepilogo risultante sostituisce quindi il campione di dati originale.

  • REMOVE_VALUES— Per eliminare i risultati delle partite terminate condraw.

  • REPLACE_TEXT— Per modificare i valori divictory_status. Esistono tre occorrenze di questa azione, una permate, e. resign oufoftime

In una sessione interattiva DataBrew del progetto, ciascuna RecipeAction corrisponde a una trasformazione dei dati che si applica a un campione di dati.

DataBrew fornisce oltre 200 azioni relative alle ricette. Per ulteriori informazioni, consulta Fase della ricetta e riferimento alla funzione.

Utilizzo delle condizioni

È possibile utilizzare le condizioni per restringere l'ambito di un'azione relativa alla ricetta. Le condizioni vengono utilizzate nelle trasformazioni che filtrano i dati, ad esempio rimuovendo le righe indesiderate in base a un particolare valore di colonna.

Diamo un'occhiata più da vicino alle azioni di una ricetta. chess-project-recipe

{ "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "black_rating" } }, "ConditionExpressions": [ { "Condition": "LESS_THAN", "Value": "1800", "TargetColumn": "black_rating" } ] }

Questa trasformazione legge i valori nella black_rating colonna. L'ConditionExpressionselenco determina i criteri di filtro: qualsiasi riga con un black_rating valore inferiore a 1.800 viene rimossa dal set di dati.

Una successiva trasformazione nella ricetta fa la stessa cosa, per. white_rating In questo modo, i dati sono limitati ai giochi in cui ogni giocatore (bianco o nero) è classificato nella classe A o superiore.

Ecco un altro esempio di condizione, applicata a una colonna di dati relativi a un personaggio.

{ "Action": { "Operation": "REMOVE_VALUES", "Parameters": { "sourceColumn": "winner" } }, "ConditionExpressions": [ { "Condition": "IS", "Value": "[\"draw\"]", "TargetColumn": "winner" } ] }

Questa trasformazione legge i valori nella winner colonna, cerca il valore draw e rimuove quelle righe. In questo modo, i dati sono limitati solo ai giochi in cui c'è stato un chiaro vincitore.

DataBrew supporta le seguenti condizioni:

  • IS— Il valore nella colonna è uguale al valore fornito nella condizione.

  • IS_NOT— Il valore nella colonna non è lo stesso del valore fornito nella condizione.

  • IS_BETWEEN— Il valore nella colonna è compreso tra i LESS_THAN_EQUAL parametri GREATER_THAN_EQUAL e.

  • CONTAINS— Il valore della stringa nella colonna contiene il valore fornito nella condizione.

  • NOT_CONTAINS— Il valore nella colonna non contiene la stringa di caratteri fornita nella condizione.

  • STARTS_WITH— Il valore nella colonna inizia con la stringa di caratteri fornita nella condizione.

  • NOT_STARTS_WITH— Il valore nella colonna non inizia con la stringa di caratteri fornita nella condizione.

  • ENDS_WITH— Il valore nella colonna termina con la stringa di caratteri fornita nella condizione.

  • NOT_ENDS_WITH— Il valore nella colonna non termina con la stringa di caratteri fornita nella condizione.

  • LESS_THAN— Il valore nella colonna è inferiore al valore fornito nella condizione.

  • LESS_THAN_EQUAL— Il valore nella colonna è inferiore o uguale al valore fornito nella condizione.

  • GREATER_THAN— Il valore nella colonna è maggiore del valore fornito nella condizione.

  • GREATER_THAN_EQUAL— Il valore nella colonna è maggiore o uguale al valore fornito nella condizione.

  • IS_INVALID— Il valore nella colonna ha un tipo di dati errato.

  • IS_MISSING— Non vi è alcun valore nella colonna.