

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

# Fase 2: Scelta delle origini dei dati e dei classificatori
<a name="define-crawler-choose-data-sources"></a>

Quindi, configura le origini dati e i classificatori per il crawler.

Per ulteriori informazioni sulle origini dati supportate, consulta [Origini dati supportate per il crawling](crawler-data-stores.md).

**Configurazione dell'origine dati**  
Seleziona l'opzione appropriata per **I tuoi dati sono già mappati alle tabelle AWS Glue?** scegli 'Non ancora' or 'Sì'. Per impostazione predefinita, è selezionata la risposta "Non ancora".   
Il crawler è in grado di accedere agli archivi dati direttamente come origine del crawling oppure utilizza le tabelle di catalogo esistenti come origine. Se il crawler utilizza le tabelle di catalogo esistenti, esegue il crawling degli archivi dati specificati dalle tabelle di catalogo.   
+ Non ancora: seleziona una o più origini dati da sottoporre a crawling. Un crawler è in grado di eseguire il crawling di più archivi dati di diversi tipi (Amazon S3, JDBC e così via).

  È possibile configurare un solo archivio dati alla volta. Dopo aver fornito le informazioni di connessione e incluso percorsi ed escluso i modelli, è possibile aggiungere un altro archivio dati.
+ Sì: seleziona le tabelle esistenti dal tuo catalogo dati AWS Glue. Le tabelle del catalogo specificano gli archivi dati da sottoporre a crawling. In una singola esecuzione, il crawler è in grado di eseguire il crawling solo di tabelle di catalogo; non può combinare altri tipi di origine.

  Un motivo comune per specificare una tabella di catalogo come origine è quando la tabella viene creata manualmente (poiché si conosce già la struttura dell'archivio dati) e desideri che un crawler mantenga aggiornata la tabella, inclusa l'aggiunta di nuove partizioni. Per una discussione degli altri motivi, consulta [Aggiornamento delle tabelle del catalogo dati create manualmente usando i crawler](tables-described.md#update-manual-tables).

  Quando specifichi le tabelle esistenti come tipo di origine crawler, si applicano le seguenti condizioni:
  + Il nome del database è facoltativo.
  + Solo le tabelle di catalogo che specificano archivi dati Amazon S3, Amazon DynamoDB o Delta Lake sono consentite.
  + Nessuna nuova tabella di catalogo viene creata quando viene eseguito il crawler. Le tabelle esistenti vengono aggiornate in base alle esigenze, inclusa l'aggiunta di nuove partizioni.
  + Gli oggetti eliminati trovati negli archivi dati vengono ignorati e non vengono eliminate le tabelle di catalogo. Al contrario, il crawler scrive un messaggio di log. (`SchemaChangePolicy.DeleteBehavior=LOG`)
  + L'opzione di configurazione del crawler per creare un singolo schema per ogni percorso Amazon S3 è abilitata per impostazione predefinita e non può essere disattivata. (`TableGroupingPolicy`=`CombineCompatibleSchemas`) Per ulteriori informazioni, consulta [Creare un singolo schema per ogni percorso di inclusione Amazon S3](crawler-grouping-policy.md)
  + Non è possibile combinare le tabelle di catalogo come origine con altri tipi di origine (ad esempio Amazon S3 o Amazon DynamoDB).
  
 Per utilizzare le tabelle Delta, crea prima una tabella Delta utilizzando Athena DDL o l'API. AWS Glue   
 Usando Athena, imposta la posizione sulla cartella Amazon S3 e il tipo di tabella su "DELTA".   

```
CREATE EXTERNAL TABLE database_name.table_name
LOCATION 's3://bucket/folder/'
TBLPROPERTIES ('table_type' = 'DELTA')
```
 Utilizzando l' AWS Glue API, specifica il tipo di tabella all'interno della mappa dei parametri della tabella. I parametri della tabella devono includere la key/value coppia seguente. Per maggiori informazioni su come creare una tabella, consulta la [documentazione Boto3 per create\$1table](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/glue/client/create_table.html).   

```
{
    "table_type":"delta"
}
```

**Origini dati**  
Seleziona o aggiungi l'elenco di origini dati che devono essere scansionate dal crawler.  
 (Facoltativo) Se scegli JDBC come origine dati, puoi utilizzare i tuoi driver JDBC per specificare l'accesso alla connessione in cui sono archiviate le informazioni sul driver. 

**Percorso di inclusione**  
 Per stabilire cosa includere o escludere dal crawling, il crawler inizia la valutazione del percorso di inclusione richiesto. Per gli archivi dati Amazon S3, MongoDB, MongoDB Atlas, Amazon DocumentDB (compatibile con MongoDB) e relazionali, è necessario specificare un percorso di inclusione.     
Per un archivio dati Amazon S3  
Scegli se specificare un percorso in questo account o in uno differente, quindi seleziona un percorso Amazon S3.  
Per gli archivi dati Amazon S3, la sintassi del percorso di inclusione è `bucket-name/folder-name/file-name.ext`. Per eseguire il crawling di tutti gli oggetti in un bucket, devi specificare solo il nome del bucket nel percorso di inclusione. Il modello di esclusione è relativo rispetto al percorso di inclusione  
Per un archivio dati Delta Lake  
Specificare uno o più percorsi Amazon S3 alle tabelle Delta come s3:////*bucket*. *prefix* *object*  
Per un datastore Iceberg o Hudi  
Specificare uno o più percorsi Amazon S3 che contengono cartelle con metadati delle tabelle Iceberg o Hudi come s3:///. *bucket* *prefix*  
Per gli archivi dati Iceberg e Hudi, la Iceberg/Hudi cartella può trovarsi in una cartella secondaria della cartella principale. Il crawler scansionerà tutte le cartelle al di sotto del percorso di una cartella Hudi.  
Per un archivio dati JDBC  
Immettere*<database>*/*<schema>*/*<table>*o*<database>*/*<table>*, a seconda del prodotto del database. Oracle Database e MySQL non supportano lo schema nel percorso. È possibile sostituire *<schema>* o *<table>* con il carattere percentuale (%). Ad esempio, per un database Oracle con un identificatore di sistema (SID) di `orcl`, immettere `orcl/%` per importare tutte le tabelle a cui può accedere l'utente denominato nella connessione.  
Questo campo fa distinzione tra minuscole e maiuscole.
 Se scegli di importare le tue versioni dei driver JDBC, i crawler AWS Glue consumeranno risorse nei processi AWS Glue e nei bucket Amazon S3 per garantire che i driver forniti vengano eseguiti nel tuo ambiente. L'utilizzo aggiuntivo delle risorse si rifletterà nel tuo account. I driver sono limitati alle proprietà descritte nella sezione [Adding an AWS Glue connection](https://docs.aws.amazon.com/glue/latest/dg/console-connections.html).   
Per un archivio dati MongoDB, MongoDB Atlas o Amazon DocumentDB  
Per MongoDB, MongoDB Atlas e Amazon DocumentDB (compatibile con MongoDB), la sintassi è `database/collection`.
Per gli archivi dati JDBC, la sintassi è `database-name/schema-name/table-name` oppure `database-name/table-name`. La sintassi dipende dal fatto che il motore di database supporti schemi all'interno di un database. Ad esempio, per i motori di database come MySQL o Oracle, non è necessario specificare un `schema-name` nel percorso di inclusione. È possibile sostituire il segno di percentuale (`%`) per uno schema o una tabella nel percorso di inclusione per rappresentare tutti gli schemi o tutte le tabelle all'interno di un database. Non è possibile sostituire il segno di percentuale (`%`) per il database nel percorso di inclusione. 

**Profondità trasversale massima (solo per i datastore Iceberg o Hudi)**  
Definisce la profondità massima del percorso Amazon S3 che il crawler può percorrere per scoprire la cartella di metadati Iceberg o Hudi nel percorso Amazon S3. Lo scopo di questo parametro è limitare il tempo di esecuzione del crawler. Il valore predefinito è 10, il valore massimo è 20.

**Modelli di esclusione**  
Consentono di escludere alcuni file o tabelle dal crawling. Il percorso di esclusione è relativo rispetto al percorso di inclusione. Ad esempio, per escludere una tabella nel tuo archivio dati JDBC, digita il nome della tabella nel percorso di esclusione.   
Un crawler si connette a un archivio dati JDBC usando una connessione AWS Glue che contiene una stringa di connessione URI JDBC. Il crawler ha accesso a oggetti nel motore di database solo usando il nome utente e la password JDBC nella connessione AWS Glue. *Il crawler può creare solo le tabelle cui può accedere tramite la connessione JDBC.* Dopo che il crawler accede al motore del database con l'URI JDBC, viene usato il percorso di inclusione per determinare quali tabelle del motore del database vengono create nel catalogo dati. Ad esempio, se con MySQL specifichi il percorso di inclusione `MyDatabase/%`, nel catalogo dati verranno create tutte le tabelle presenti in `MyDatabase`. Se quando accedi ad Amazon Redshift specifichi il percorso di inclusione di `MyDatabase/%`, nel catalogo dati vengono create tutte le tabelle in tutti gli schemi per il database `MyDatabase`. Se si specifica un percorso di inclusione di `MyDatabase/MySchema/%`, vengono create tutte le tabelle nel database `MyDatabase` e lo schema `MySchema`.   
Dopo aver specificato un percorso di inclusione, puoi quindi escludere dal crawling oggetti che il percorso di inclusione altrimenti includerebbe, specificando uno o più modelli di esclusione `glob` in stile Unix. Questi modelli vengono applicati al tuo percorso di inclusione per determinare quali oggetti sono esclusi. Questi modelli vengono inoltre memorizzati come proprietà delle tabelle create dal crawler. AWS Glue PySpark le estensioni, ad esempio`create_dynamic_frame.from_catalog`, leggono le proprietà della tabella ed escludono gli oggetti definiti dal modello di esclusione.   
AWS Glue supporta i seguenti modelli `glob` nel modello di esclusione.       
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/define-crawler-choose-data-sources.html)
AWS Glue interpreta i modelli di esclusione `glob` in questo modo:  
+ La barra (`/`) è il delimitatore per separare chiavi Amazon S3 in una gerarchia di cartelle.
+ L'asterisco (`*`) individua zero o più caratteri di un componente del nome entro i limiti della cartella.
+ Un doppio asterisco (`**`) individua zero o più caratteri al di fuori della cartella o dello schema.
+ Il punto interrogativo (`?`) individua esattamente un carattere di un componente del nome.
+ La barra rovesciata (`\`) è utilizzata per ignorare i caratteri che potrebbero essere interpretati come caratteri speciali. L'espressione `\\` individua una singola barra rovesciata, mentre `\{` a una parentesi aperta.
+ Le parentesi `[ ]` creano un'espressione tra parentesi che individua un singolo carattere di un componente nome fuori da un set di caratteri. Ad esempio, `[abc]` individua `a`, `b` o `c`. Il trattino (`-`) può essere utilizzato per specificare un intervallo, quindi `[a-z]` specifica un intervallo `a` – `z` (estremi inclusi). Questi moduli possono essere mescolati, perciò [`abce-g`] individua `a`, `b`, `c`, `e`, `f` o `g`. Se il carattere dopo la parentesi (`[`) è un punto esclamativo (`!`), l'espressione all'interno della parentesi viene ignorata. Ad esempio, `[!a-c]` corrisponde a tutti i caratteri, tranne `a`, `b` o `c`.

  All'interno di un'espressione tra parentesi, i caratteri `*`, `?` e `\` corrispondono. Il trattino (`-`) corrisponde a se stesso se è il primo carattere all'interno della parentesi oppure se è il primo carattere dopo il `!` quando l'espressione viene ignorata.
+ Le parentesi graffe (`{ }`) racchiudono un gruppo di sotto-modelli, dove il gruppo individua un eventuale sotto-modello corrispondente all'interno del gruppo. Una virgola (`,`) è utilizzata per separare i sotto-modelli. I gruppi non possono essere annidati.
+ Il punto iniziale o i punti nei nomi di file vengono trattati come caratteri normali nelle operazioni di confronto. Ad esempio, il modello di esclusione `*` corrisponde al nome di file `.hidden`.

**Example Modelli di esclusione Amazon S3**  
Ogni modello di esclusione è valutato rispetto al percorso di inclusione. Ad esempio, supponiamo di avere la seguente struttura di directory Amazon S3:  

```
/mybucket/myfolder/
   departments/
      finance.json
      market-us.json
      market-emea.json
      market-ap.json
   employees/
      hr.json
      john.csv
      jane.csv
      juan.txt
```
Dato il percorso di inclusione `s3://mybucket/myfolder/`, i seguenti sono esempi di risultati per i modelli di esclusione:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/define-crawler-choose-data-sources.html)

**Example Esclusione di un sottoinsieme di partizioni Amazon S3**  
Supponiamo che i dati vengano partizionati in base al giorno, in modo che ogni giorno di un anno si trovi in una partizione Amazon S3 separata. Per gennaio 2015, ci sono 31 partizioni. Ora, per eseguire il crawling solo per i dati della prima settimana di gennaio, devi escludere tutte le partizioni eccetto i giorni da 1 a 7:  

```
 2015/01/{[!0],0[8-9]}**, 2015/0[2-9]/**, 2015/1[0-2]/**    
```
Diamo uno sguardo alle parti di questo modello glob. La prima parte, ` 2015/01/{[!0],0[8-9]}**`, esclude tutti i giorni che non iniziano con "0" oltre ai giorni 08 e 09 dal mese 01 nel 2015. Tieni presente che "\$1\$1" viene utilizzato come suffisso per il modello del numero del giorno e si estende alle cartelle di livello inferiore. Se viene utilizzato "\$1", i livelli di cartella inferiori non sono esclusi.  
La seconda parte, ` 2015/0[2-9]/**`, esclude i giorni nei mesi da 02 a 09, nel 2015.  
La terza parte, `2015/1[0-2]/**`, esclude i giorni nei mesi 10, 11 e 12, nel 2015.

**Example Modelli di esclusione JDBC**  
Supponiamo di eseguire il crawling di un database JDBC con la seguente struttura di schema:  

```
MyDatabase/MySchema/
   HR_us
   HR_fr
   Employees_Table
   Finance
   Market_US_Table
   Market_EMEA_Table
   Market_AP_Table
```
Dato il percorso di inclusione `MyDatabase/MySchema/%`, i seguenti sono esempi di risultati per i modelli di esclusione:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/glue/latest/dg/define-crawler-choose-data-sources.html)

**Ulteriori parametri per l'origine del crawler**  
Ogni tipo di origine richiede un diverso set di parametri aggiuntivi.

**Connessione**  
Selezionare o aggiungere una connessione AWS Glue. Per informazioni sulle connessioni, consulta [Connessione ai dati](glue-connections.md).

**Metadati aggiuntivi: facoltativi (per gli archivi di dati JDBC)**  
Seleziona proprietà di metadati aggiuntive per il crawler da sottoporre a crawling.  
+ Commenti: esegui il crawling dei commenti associati a livello di tabella e colonna.
+ Tipi non elaborati: mantengono i tipi di dati non elaborati delle colonne della tabella in metadati aggiuntivi. Come comportamento predefinito, il crawler traduce i tipi di dati non elaborati in tipi compatibili con Hive.

**Nome della classe del driver JDBC: facoltativo (per i datastore JDBC)**  
 Digita un nome di classe del driver JDBC personalizzato per consentire al crawler di connettersi all'origine dati:   
+ Postgres: org.postgresql.Driver
+ MySQL: com.mysql.jdbc.Driver, com.mysql.cj.jdbc.Driver
+ Redshift: com.amazon.redshift.jdbc.Driver, com.amazon.redshift.jdbc42.Driver
+ Oracle: oracle.jdbc.driver. OracleDriver
+ SQL Server: com.microsoft.sqlserver.jdbc. SQLServerAutista

**Percorso S3 del driver JDBC: facoltativo (per i datastore JDBC)**  
Scegli un percorso Amazon S3 esistente verso un file `.jar`. Questa è la posizione in cui verrà archiviato il file `.jar` quando si utilizza un driver JDBC personalizzato per la connessione del crawler all'origine dati.

**Abilitazione del campionamento dei dati (solo per gli archivi dati Amazon DynamoDB, MongoDB, MongoDB Atlas e Amazon DocumentDB)**  
Selezionare se eseguire il crawling solo di un campione di dati. Se non è selezionata, l'intera tabella viene sottoposta a crawling. La scansione di tutti i registri può richiedere molto tempo quando la tabella non è una tabella di throughput elevato.

**Creazione di tabelle per l'esecuzione di query (solo per gli archivi dati Delta Lake)**  
Seleziona come desideri creare le tabelle Delta Lake:  
+ Creazione di tabelle native: consente l'integrazione con i motori di query che supportano l'interrogazione diretta del log delle transazioni Delta.
+ Creazione di tabelle Symlink: crea una cartella dei manifesti Symlink con file manifesti partizionati con chiavi di partizioni in base ai parametri di configurazione specificati.

**Velocità di scansione (facoltativo, solo per i datastore DynamoDB)**  
Specifica la percentuale delle unità di capacità di lettura della tabella DynamoDB che deve essere utilizzata dal crawler. L'unità di capacità di lettura è un termine definito da DynamoDB ed è un valore numerico che funge da limitatore di velocità per il numero di letture che possono essere eseguite su tale tabella al secondo. Inserire un valore tra 0.1 e 1.5. Se non specificato, il valore predefinito è 0,5 per le tabelle con provisioning e 1/4 della capacità massima configurata per le tabelle on demand. Tieni presente che con i AWS Glue crawler deve essere utilizzata solo la modalità di capacità assegnata.  
Per gli archivi dati DynamoDB, impostare la modalità di capacità assegnata per l'elaborazione delle letture e delle scritture sulle tabelle. Il AWS Glue crawler non deve essere utilizzato con la modalità di capacità su richiesta.

**Connessione di rete: facoltativa (per i datastore di destinazione Amazon S3, Delta, Iceberg, Hudi e Catalog)**  
Facoltativamente, includi una connessione di rete da utilizzare con questa destinazione Amazon S3. Tieni presente che ogni crawler è limitato a una connessione di rete, quindi anche qualsiasi altra destinazione Amazon S3 utilizzerà la stessa connessione (o nessuna, se lasciata vuota).  
Per informazioni sulle connessioni, consulta [Connessione ai dati](glue-connections.md).

**Campionamento di un solo sottoinsieme di file e dimensioni del campione (solo per gli archivi dati Amazon S3)**  
Specificare il numero di file in ogni cartella foglia da sottoporre al crawling durante il crawling di file di esempio in un set di dati. Quando questa caratteristica è attivata, invece di eseguire il crawling di tutti i file in questo set di dati, il crawler seleziona in modo casuale alcuni file in ogni cartella foglia da sottoporre a crawling.   
Il crawler di campionamento è adatto ai clienti che hanno conoscono i loro formati di dati e sanno che gli schemi nelle loro cartelle non cambiano. L'attivazione di questa funzione ridurrà significativamente il tempo di esecuzione del crawler.  
Un valore valido è un numero intero compreso tra 1 e 249. Se non è specificato, tutti i file vengono sottoposti al crawling.

**Esecuzioni successive del crawler**  
Questo campo è un campo globale che riguarda tutte le origini dati Amazon S3.  
+ Esecuzione del crawling di tutte le sottocartelle: esegui nuovamente il crawling di tutte le cartelle ad ogni crawling successivo.
+ Esecuzione del crawling solo delle nuove sottocartelle: verrà eseguito il crawling solo delle cartelle Amazon S3 che sono state aggiunte dall'ultimo crawling. Se gli schemi sono compatibili, verranno aggiunte nuove partizioni alle tabelle esistenti. Per ulteriori informazioni, consulta [Pianificazione di crawling incrementale per l'aggiunta di nuove partizioni](incremental-crawls.md).
+ Crawling in base agli eventi: basati sugli eventi di Amazon S3 per controllare quali cartelle sottoporre a crawling. Per ulteriori informazioni, consulta [Accelerazione del crawling con le notifiche eventi Amazon S3](crawler-s3-event-notifications.md).

**Classificatori personalizzati: facoltativi**  
Definisci i classificatori personalizzati prima di definire i crawler. Un classificatore verifica se un determinato file è in un formato che può essere gestito dal crawler. In questo caso il classificatore crea uno schema nel formato di un oggetto `StructType` che corrisponde a quel formato di dati.  
Per ulteriori informazioni, consulta [Definizione e gestione dei classificatori](add-classifier.md).