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
Quindi, configura le fonti di dati e i classificatori per il crawler.
Per ulteriori informazioni sulle fonti di dati supportate, consulta. Fonti di dati supportate per la scansione
- Configurazione dell'origine dati
-
Seleziona l'opzione appropriata per I tuoi dati sono già mappati su AWS Glue tavoli? scegli «Non ancora» o «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 può eseguire la scansione di più archivi di dati di diversi tipi (Amazon S3 e così via). JDBC
È 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 AWS Glue Catalogo dati. 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.
Quando specifichi le tabelle esistenti come tipo di origine crawler, si applicano le seguenti condizioni:
-
Il nome del database è facoltativo.
-
Sono consentite solo le tabelle di catalogo che specificano gli archivi dati Amazon S3, Amazon DynamoDB o Delta Lake.
-
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 Creazione di un unico schema per ogni percorso di inclusione di Amazon S3 -
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 usando Athena DDL o il. AWS Glue API
Utilizzando Athena, imposta la posizione della 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 AWS Glue API, specifica il tipo di tabella all'interno della mappa dei parametri della tabella. I parametri della tabella devono includere la seguente coppia chiave/valore. Per ulteriori informazioni su come creare una tabella, consulta la documentazione di Boto3
per create_table. { "table_type":"delta" }
- Origini dati
-
Seleziona o aggiungi l'elenco di origini dati che devono essere scansionate dal crawler.
(Facoltativo) Se scegli JDBC come fonte di dati, puoi utilizzare i tuoi JDBC driver 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 verso le 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 cartella Iceberg/Hudi 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 JDBC un archivio dati
-
Invio
<database>
/<schema>
/<table>
oppure<database>
/<table>
, a seconda del prodotto del database. Oracle Database e My SQL non supportano lo schema nel percorso. È possibile sostituire il carattere percentuale (%) con<schema>
oppure<table>
. Ad esempio, per un database Oracle con un identificatore di sistema (SID) diorcl
, immettereorcl/%
per importare tutte le tabelle a cui ha accesso l'utente indicato nella connessione.Importante
Questo campo fa distinzione tra minuscole e maiuscole.
Nota
Se scegli di importare le tue versioni dei JDBC driver, AWS Glue i crawler consumeranno risorse in AWS Glue job e bucket Amazon S3 per garantire che il driver fornito venga eseguito nel tuo ambiente. L'utilizzo aggiuntivo delle risorse si rifletterà nel tuo account. I driver sono limitati alle proprietà descritte in Aggiungere un AWS Glue connessione.
- 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 JDBC dati, la sintassi è
database-name/schema-name/table-name
odatabase-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 My SQL o Oracle, non specificate aschema-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 dal tuo JDBC data store, digita il nome della tabella nel percorso di esclusione.
Un crawler si connette a un JDBC data store utilizzando un AWS Glue connessione che contiene una stringa di JDBC URI connessione. Il crawler ha accesso solo agli oggetti nel motore di database utilizzando il nome JDBC utente e la password presenti nel AWS Glue connessione. Il crawler può creare solo tabelle a cui può accedere tramite la JDBC connessione. Dopo che il crawler ha effettuato l'accesso al motore di database con JDBCURI, il percorso di inclusione viene utilizzato per determinare quali tabelle nel motore di database vengono create nel Data Catalog. Ad esempio, con MySQL, se si specifica un percorso di inclusione di
MyDatabase/%
, tutte le tabelle al suo internoMyDatabase
vengono create nel Data Catalog. Se quando accedi ad Amazon Redshift specifichi il percorso di inclusione diMyDatabase/%
, nel catalogo dati vengono create tutte le tabelle in tutti gli schemi per il databaseMyDatabase
. Se si specifica un percorso di inclusione diMyDatabase/MySchema/%
, vengono create tutte le tabelle nel databaseMyDatabase
e lo schemaMySchema
.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 memorizzati anche come proprietà di tabelle create dal crawler. AWS Glue PySpark le estensioni, ad esempiocreate_dynamic_frame.from_catalog
, leggono le proprietà della tabella ed escludono gli oggetti definiti dal modello di esclusione.AWS Glue supporta i seguenti
glob
modelli nel pattern di esclusione.Modello di esclusione Descrizione *.csv
Individua un percorso Amazon S3 che rappresenta un nome di oggetto nella cartella corrente che termina con .csv
*.*
Individua tutti i nomi degli oggetti che contengono un punto *.{csv,avro}
Individua i nomi di oggetti che terminano con .csv
o.avro
foo.?
Individua i nomi degli oggetti che iniziano con foo.
che sono seguiti da un'estensione di un singolo carattere.myfolder/*
Individua gli oggetti in un livello di sottocartella di myfolder
, ad esempio/myfolder/mysource
myfolder/*/*
Individua gli oggetti in due livelli di sottocartella di myfolder
, ad esempio/myfolder/mysource/data
myfolder/**
Individua gli oggetti in tutte le sottocartelle di myfolder
, ad esempio/myfolder/mysource/mydata
e/myfolder/mysource/data
myfolder**
Individua la sottocartella myfolder
, insieme ai file all'interno dimyfolder
, ad esempio/myfolder
e/myfolder/mydata.txt
Market*
Corrisponde alle tabelle di un JDBC database con nomi che iniziano con Market
, ad esempioMarket_us
eMarket_fr
AWS Glue interpreta i modelli di
glob
esclusione come segue:-
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]
individuaa
,b
oc
. Il trattino (-
) può essere utilizzato per specificare un intervallo, quindi[a-z]
specifica un intervalloa
–z
(estremi inclusi). Questi moduli possono essere mescolati, perciò [abce-g
] individuaa
,b
,c
,e
,f
og
. 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, trannea
,b
oc
.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
.
Esempio 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 risultati di esempio per i modelli di esclusione:Modello di esclusione Risultati departments/**
Esclude tutti i file e le cartelle sotto departments
e include la cartellaemployees
e i relativi filedepartments/market*
Esclude market-us.json
,market-emea.json
emarket-ap.json
**.csv
Esclude tutti gli oggetti sotto myfolder
che hanno un nome che termina con.csv
employees/*.csv
Esclude tutti i file .csv
nella cartellaemployees
Esempio 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 "**" viene utilizzato come suffisso per il modello del numero del giorno e si estende alle cartelle di livello inferiore. Se viene utilizzato "*", 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.Esempio JDBCesclude i modelli
Si supponga di eseguire la scansione di un JDBC database 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 risultati di esempio per i modelli di esclusione:Modello di esclusione Risultati HR*
Esclude le tabelle con nomi che iniziano con HR
Market_*
Esclude le tabelle con nomi che iniziano con Market_
**_Table
Esclude tutte le tabelle con nomi che terminano con _Table
-
- Ulteriori parametri per l'origine del crawler
-
Ogni tipo di origine richiede un diverso set di parametri aggiuntivi.
- Connessione
-
Seleziona o aggiungi un AWS Glue connessione. Per informazioni sulle connessioni, consulta Connessione ai dati.
- Metadati aggiuntivi: opzionali (per gli archivi JDBC dati)
-
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.
- JDBCNome della classe del driver: opzionale (per gli archivi JDBC dati)
-
Digitate un nome di classe JDBC driver personalizzato per consentire al crawler di connettersi all'origine dati:
Postgres: org.postgresql.Driver
Il mioSQL: 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
SQLServer: com.microsoft.sqlserver.jdbc. SQLServerDriver
- JDBCDriver S3 Path - opzionale (per archivi JDBC dati)
-
Scegli un percorso Amazon S3 esistente verso un file
.jar
. Qui è dove verrà archiviato il.jar
file quando si utilizza un JDBC driver personalizzato per la connessione del crawler alla fonte di 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 predisposte e 1/4 della capacità massima configurata per le tabelle su richiesta. Tieni presente che con i crawler deve essere utilizzata solo la modalità di capacità assegnata. AWS Glue
Nota
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: opzionale (per gli archivi dati 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.
- 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 scansioni incrementali per l'aggiunta di nuove partizioni.
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.
- 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.