Aggiunta di classificatori a un crawler in AWS Glue - 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à.

Aggiunta di classificatori a un crawler in AWS Glue

Un classificatore legge i dati in un archivio dati. Se riconosce il formato dei dati, genera uno schema. Il classificatore inoltre restituisce un numero di certezza per indicare quanto è stato certo il riconoscimento del formato.

AWS Glue fornisce un set di classificatori predefiniti, ma puoi anche crearne di personalizzati. AWS Glue richiama per primi i classificatori personalizzati, in base all'ordine che hai specificato nella definizione del crawler. A seconda dei risultati restituiti dai classificatori personalizzati, AWS Glue può anche richiamare i classificatori predefiniti. Se un classificatore restituisce certainty=1.0 durante l'elaborazione, significa che la certezza di creare uno schema corretto è del 100%. AWS Glue usa quindi l'oputput di questo classificatore.

Se nessun classificatore restituisce certainty=1.0, AWS Glue usa l'output del classificatore che indica la certezza maggiore. Se nessun classificatore restituisce una certezza superiore a 0.0, AWS Glue restituisce la stringa di classificazione predefinita UNKNOWN.

Quando si utilizza un classificatore?

Puoi usare classificatori quando esegui il crawling di un datastore per definire tabelle di metadati nel AWS Glue Data Catalog. È possibile configurare il crawler con un set ordinato di classificatori. Quando il crawler richiama un classificatore, il classificatore determina se i dati vengono riconosciuti. Se il classificatore non è in grado di riconoscere i dati o non è certo al 100 percento, il crawler richiama il prossimo classificatore nell'elenco per determinare se è in grado di riconoscere i dati.

Per ulteriori informazioni sulla creazione di un classificatore tramite la console AWS Glue, consulta Uso di classificatori nella console AWS Glue.

Classificatori personalizzati

L'output di un classificatore include una stringa che indica la classificazione del file o il formato (ad esempio, json) e lo schema del file. Per classificatori personalizzati, è possibile definire la logica per la creazione di uno schema in base al tipo di classificatore. I tipi di classificatore includono definizioni di schemi in base a pattern grok, tag XML e percorsi JSON.

Se si modifica una definizione di classificatore, qualsiasi tipo di dati precedentemente sottoposto a crawling utilizzando il classificatore non è riclassificato. Un crawler tiene traccia dei dati precedentemente sottoposti a crawling. I nuovi dati sono classificati con il classificatore aggiornato, che potrebbe dare origine a uno schema aggiornato. Se lo schema dei dati si è evoluto, aggiornare il classificatore per verificare qualsiasi modifica dello schema quando viene eseguito il crawler. Per riclassificare i dati al fine di correggere un classificatore errato, creare un nuovo crawler con il classificatore aggiornato.

Per ulteriori informazioni sulla creazione di classificatori personalizzati in AWS Glue, consulta Scrittura di classificatori personalizzati.

Nota

Se il formato di dati è riconosciuto da uno dei classificatori integrati, non è necessario creare un classificatore personalizzato.

Classificatori predefiniti in AWS Glue

AWS Glue fornisce classificatori predefiniti per diversi formati, tra cui JSON, CSV, log Web e molti sistemi di database.

Se AWS Glue non trova un classificatore personalizzato appropriato al formato di dati di input con una certezza del 100%, richiama i classificatori predefiniti in base all'ordine mostrato nella tabella seguente. Il classificatore integrato restituisce un risultato per indicare se il formato corrisponde (certainty=1.0) o non, corrisponde (certainty=0.0). Il primo classificatore con certainty=1.0 fornisce la stringa di classificazione e lo schema per una tabella di metadati nel catalogo dati.

Tipo di classificatore Stringa di classificazione Note
Apache Avro avro Legge lo schema nella parte iniziale del file per determinare il formato.
Apache ORC orc Legge i metadati dei file per determinare il formato.
Apache Parquet parquet Legge lo schema nella parte finale del file per determinare il formato.
JSON json Legge la parte iniziale del file per determinare il formato.
Binary JSON bson Legge la parte iniziale del file per determinare il formato.
XML xml Legge la parte iniziale del file per determinare il formato. AWS Glue determina lo schema della tabella in base ai tag XML nel documento.

Per ulteriori informazioni su come creare un classificatore XML personalizzato per specificare le righe nel documento, consulta Scrittura di classificatori personalizzati XML.

Amazon Ion ion Legge la parte iniziale del file per determinare il formato.
Combined Apache log combined_apache Determina i formati dei log attraverso un pattern grok.
Apache log apache Determina i formati dei log attraverso un pattern grok.
Linux kernel log linux_kernel Determina i formati dei log attraverso un pattern grok.
Microsoft log microsoft_log Determina i formati dei log attraverso un pattern grok.
Ruby log ruby_logger Legge la parte iniziale del file per determinare il formato.
Squid 3.x log squid Legge la parte iniziale del file per determinare il formato.
Redis monitor log redismonlog Legge la parte iniziale del file per determinare il formato.
Redis log redislog Legge la parte iniziale del file per determinare il formato.
CSV csv Verifica dei seguenti delimitatori: virgola (,), barra verticale (|), tabulazione (\ t), punto e virgola (;) e Ctrl-A (\u0001). Ctrl-A è il carattere di controllo Unicode per Start Of Heading.
Amazon Redshift redshift Utilizza la connessione JDBC per importare i metadati.
MySQL mysql Utilizza la connessione JDBC per importare i metadati.
PostgreSQL postgresql Utilizza la connessione JDBC per importare i metadati.
Oracle database oracle Utilizza la connessione JDBC per importare i metadati.
Microsoft SQL Server sqlserver Utilizza la connessione JDBC per importare i metadati.
Amazon DynamoDB dynamodb Legge i dati dalla tabella DynamoDB.

I file nei seguenti formati compressi possono essere classificati:

  • ZIP (supportato per gli archivi che contengono un solo file). Il formato ZIP non è supportato in modo adeguato in altri servizi (a causa dell'archivio).

  • BZIP

  • GZIP

  • LZ4

  • Snappy (supportato sia per i formati Snappy standard che nativi Hadoop)

Classificatore CSV integrato

Il classificatore CSV predefinito analizza il contenuto dei file CSV per determinare lo schema per una tabella AWS Glue. Questo classificatore controlla i seguenti delimitatori:

  • Virgola (,)

  • Barra verticale (|)

  • Tabulazione (\t)

  • Punto e virgola (;)

  • Ctrl-A (\u0001)

    Ctrl-A è il carattere di controllo Unicode per Start Of Heading.

Per essere classificato come CSV, lo schema della tabella deve avere almeno due colonne e due righe di dati. Il classificatore CSV utilizza una serie di procedimenti euristici per determinare se un'intestazione è presente in un determinato file. Se il classificatore non è in grado di determinare l'intestazione della prima riga di dati, le intestazioni delle colonne vengono visualizzate come col1, col2, col3 e così via. Il classificatore CSV integrato stabilisce se dedurre un'intestazione valutando le seguenti caratteristiche del file:

  • Ogni colonna in una potenziale intestazione compare come tipo di dati STRING.

  • Ad eccezione dell'ultima colonna, ogni colonna in una potenziale intestazione contiene meno di 150 caratteri. Per consentire un delimitatore finale, l'ultima colonna può essere vuota in tutto il file.

  • Ogni colonna in una potenziale intestazione deve soddisfare i requisiti di AWS Glue in regex.

  • La riga di intestazione deve essere sufficientemente diversa dalle righe di dati. Per determinarla, una o più righe devono comparire come diverse dal tipo STRING. Se tutte le colonne sono di tipo STRING, la prima riga di dati non è abbastanza diversa dalle righe successive per essere utilizzata come intestazione.

Nota

Se il classificatore CSV predefinito non crea la tabella AWS Glue come desideri, puoi usare una delle alternative seguenti:

  • Modifica i nomi delle colonne nel catalogo dati, imposta SchemaChangePolicy su LOG e imposta la configurazione di output della partizione su InheritFromTable per le future esecuzioni del crawler.

  • Creare un classificatore grok personalizzato per analizzare i dati e assegnare le colonne desiderate.

  • Il classificatore CSV integrato crea tabelle referenziando LazySimpleSerDe come libreria di serializzazione, che è una valida scelta per l'inferenza del tipo. Tuttavia, se i dati CSV contengono stringhe racchiuse tra virgolette, modificare la definizione della tabella e modificare la libreria SerDe in OpenCSVSerDe. Modificare tutti i tipi dedotti in STRING, impostare SchemaChangePolicy su LOG e impostare la configurazione di output delle partizioni su InheritFromTable per le future esecuzioni del crawler. Per ulteriori informazioni sulle librerie SerDe, consulta la documentazione di riferimento su SerDe nella guida per l'utente di Amazon Athena.