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à.
Connettore Google Cloud Storage per Amazon Athena
Il connettore Amazon Athena Google Cloud Storage consente ad Amazon Athena di eseguire query su Parquet CSV e file archiviati in un bucket Google Cloud Storage (). GCS Dopo aver raggruppato uno o più Parquet o più CSV file in una cartella non partizionata o partizionata all'interno di un bucket, puoi organizzarli in un GCS AWS Glue
Se hai abilitato Lake Formation nel tuo account, il IAM ruolo del tuo connettore Lambda federato Athena che hai distribuito nel AWS Serverless Application Repository deve aver letto l'accesso in Lake Formation al AWS Glue Data Catalog.
Per un articolo che mostra come usare Athena per eseguire interrogazioni su Parquet o CSV file in un GCS bucket, consulta il AWS Post sul blog sui Big Data Usa Amazon Athena per interrogare i dati archiviati in Google Cloud Platform
Prerequisiti
-
Configura un AWS Glue database e tabella che corrispondono al tuo bucket e alle tue cartelle in Google Cloud Storage. Per i passaggi, consulta Configurazione di database e tabelle in AWS Glue più avanti in questo documento.
Implementa il connettore sul tuo Account AWS utilizzando la console Athena o il AWS Serverless Application Repository. Per ulteriori informazioni, vedere Implementa un connettore di origine dati oUtilizzare il AWS Serverless Application Repository per distribuire un connettore di origine dati.
Limitazioni
-
DDLLe operazioni di scrittura non sono supportate.
-
Eventuali limiti Lambda pertinenti. Per ulteriori informazioni, consulta Quote Lambda nel AWS Lambda Guida per gli sviluppatori.
-
Attualmente, il connettore supporta solo il
VARCHAR
tipo di colonna di partizione (string
ovarchar
in un AWS Glue schema tabellare). Altri tipi di campi di partizione generano errori quando vengono interrogati in Athena.
Termini
I seguenti termini si riferiscono al GCS connettore.
-
Handler: un gestore Lambda che accede al tuo bucket. GCS Un gestore può gestire i metadati o i record di dati.
-
Gestore di metadati: un gestore Lambda che recupera i metadati dal bucket. GCS
-
Record handler: un gestore Lambda che recupera i record di dati dal bucket. GCS
-
Gestore composito: un gestore Lambda che recupera sia i metadati che i record di dati dal bucket. GCS
Tipi di file supportati
Il GCS connettore supporta Parquet e i tipi di file. CSV
Nota
Assicurati di non collocare entrambi i file CSV e Parquet nello stesso GCS bucket o percorso. Ciò può causare un errore di runtime quando si tenta di leggere i file Parquet CSV o viceversa.
Parametri
Usa le variabili di ambiente Lambda in questa sezione per configurare il GCS connettore.
-
spill_bucket: specifica il bucket Amazon S3 per i dati che superano i limiti della funzione Lambda.
-
spill_prefix: (facoltativo) per impostazione predefinita, viene utilizzata una sottocartella nello
spill_bucket
specificato chiamataathena-federation-spill
. Ti consigliamo di configurare un ciclo di vita dell'archiviazione di Amazon S3 in questa posizione per eliminare gli spill più vecchi di un numero predeterminato di giorni o ore. -
spill_put_request_headers — (Facoltativo) Una mappa JSON codificata delle intestazioni e dei valori delle richieste per la richiesta Amazon S3 utilizzata per lo spilling (ad esempio,).
putObject
{"x-amz-server-side-encryption" : "AES256"}
Per altre possibili intestazioni, consulta PutObjectAmazon Simple Storage Service API Reference. -
kms_key_id — (Facoltativo) Per impostazione predefinita, tutti i dati trasferiti su Amazon S3 vengono crittografati utilizzando la modalità di crittografia autenticata e una chiave generata AES GCM casualmente. Per fare in modo che la funzione Lambda utilizzi chiavi di crittografia più potenti generate da KMS like
a7e63k4b-8loc-40db-a2a1-4d0en2cd8331
, puoi specificare un ID di KMS chiave. -
disable_spill_encryption: (facoltativo) se impostato su
True
, disabilita la crittografia dello spill. L'impostazione predefinita èFalse
che i dati trasferiti su S3 vengano crittografati utilizzando AES GCM -, utilizzando una chiave generata casualmente o per generare chiavi. KMS La disabilitazione della crittografia dello spill può migliorare le prestazioni, soprattutto se la posizione dello spill utilizza la crittografia lato server. -
secret_manager_gcp_creds_name — Il nome del segreto in AWS Secrets Manager che contiene le credenziali in formato (ad esempio,). GCS JSON
GoogleCloudPlatformCredentials
Configurazione di database e tabelle in AWS Glue
Poiché la capacità di inferenza dello schema integrata del GCS connettore è limitata, si consiglia di utilizzare AWS Glue per i tuoi metadati. Le seguenti procedure mostrano come creare un database e una tabella in AWS Glue a cui puoi accedere da Athena.
Creazione di un database in AWS Glue
Puoi utilizzare il plugin AWS Glue console per creare un database da utilizzare con il GCS connettore.
Per creare un database in AWS Glue
Accedi a AWS Management Console e apri il AWS Glue console presso https://console.aws.amazon.com/glue/
. -
Nel pannello di navigazione seleziona Databases (Database).
-
Scegli Aggiungi database.
-
Per Nome, inserisci un nome per il database che desideri utilizzare con il GCS connettore.
-
Per Posizione, specificare
google-cloud-storage-flag
. Questa posizione indica al GCS connettore che AWS Glue il database contiene tabelle per GCS i dati da interrogare in Athena. Il connettore riconosce i database in Athena che hanno questo flag e ignora quelli che non lo hanno. -
Scegliere Crea database.
Creare una tabella in AWS Glue
Ora puoi creare una tabella per il database. Quando si crea un AWS Glue tabella da utilizzare con il GCS connettore, è necessario specificare metadati aggiuntivi.
Per creare una tabella in AWS Glue console
-
Nel AWS Glue console, dal pannello di navigazione, scegli Tabelle.
-
Nella pagina Tables (Tabelle), scegli Add table (Aggiungi tabella).
-
Nella pagina Set table properties (Imposta proprietà tabella) immetti le seguenti informazioni.
-
Name (Nome): un nome univoco per la tabella.
-
Database: scegli il AWS Glue database creato per il GCS connettore.
-
Includi percorso: nella sezione Data store, per Includi percorso, inserisci la URI posizione GCS preceduta da
gs://
(ad esempio,gs://
). Se disponi di una o più cartelle di partizione, non includerle nel percorso.gcs_table
/data
/Nota
Quando si immette un percorso non
s3://
tabellare, AWS Glue la console mostra un errore. Puoi ignorare questo errore. La tabella verrà creata correttamente. -
Formato dei dati: per la classificazione, select CSVo Parquet.
-
-
Scegli Next (Successivo).
-
Nella pagina Choose or define schema (Scegli o definisci schema), la definizione di uno schema di tabella è altamente consigliata, ma non obbligatoria. Se non definite uno schema, il GCS connettore tenta di dedurne uno per voi.
Esegui una di queste operazioni:
-
Se desiderate che il GCS connettore tenti di dedurre uno schema al posto vostro, scegliete Avanti, quindi scegliete Crea.
-
Per definire uno schema personale, seguire la procedura descritta nella sezione successiva.
-
Definizione di uno schema di tabella in AWS Glue
Definizione di uno schema di tabella in AWS Glue richiede più passaggi ma offre un maggiore controllo sul processo di creazione della tabella.
Per definire uno schema per la tabella in AWS Glue
-
Nella pagina Choose or define schema (Scegli o definisci schema), seleziona Add (Aggiungi).
-
Utilizza la finestra di dialogo Add schema entry (Aggiungi voce allo schema) per fornire un nome di colonna e un tipo di dati.
-
Per designare la colonna come colonna di partizione, seleziona l'opzione Set as partition key (Imposta come chiave di partizione).
-
Seleziona Save (Salva) per salvare la colonna.
-
Scegli Add (Aggiungi) per aggiungere un'altra colonna.
-
Dopo aver aggiunto le colonne, seleziona Next (Successivo).
-
Nella pagina Review and create (Rivedi e crea), verifica la tabella, quindi scegli Create (Crea).
-
Se lo schema contiene informazioni sulla partizione, segui i passaggi nella sezione successiva per aggiungere uno schema di partizione alle proprietà della tabella in AWS Glue.
Aggiungere uno schema di partizione alle proprietà della tabella in AWS Glue
Se i GCS bucket dispongono di partizioni, è necessario aggiungere il modello di partizione alle proprietà della tabella in AWS Glue.
Per aggiungere informazioni sulle partizioni alle proprietà della tabella AWS Glue
-
Nella pagina dei dettagli della tabella creata in AWS Glue, scegli Azioni, Modifica tabella.
-
Nella pagina Edit table (Modifica tabella), scorri verso il basso fino alla sezione Table properties (Proprietà della tabella).
-
Scegli Add (Aggiungi) per aggiungere una chiave di partizione.
-
In Chiave, inserire
partition.pattern
. Questa chiave definisce il modello del percorso della cartella. -
In Value (Valore), inserisci un modello di percorso della cartella come
StateName=${statename}/ZipCode=${zipcode}/
, dovestatename
ezipcode
racchiusi tra${}
sono i nomi delle colonne delle partizioni. Il GCS connettore supporta schemi di partizione Hive e non Hive. -
Quando hai terminato, seleziona Save (Salva).
-
Per visualizzare le proprietà della tabella appena creata, scegli la scheda Advanced properties (Proprietà avanzate).
A questo punto, è possibile passare alla console Athena. Il database e la tabella che hai creato in AWS Glue sono disponibili per l'interrogazione in Athena.
Supporto dei tipi di dati
Le tabelle seguenti mostrano i tipi di dati supportati per CSV e per Parquet.
CSV
Natura dei dati | Tipo di dati dedotto |
---|---|
I dati hanno l'aspetto di un numero | BIGINT |
I dati hanno l'aspetto di una stringa | VARCHAR |
I dati hanno l'aspetto di una virgola mobile (mobile, doppia o decimale) | DOUBLE |
I dati hanno l'aspetto di una data | Timestamp |
Dati che contengono valori vero/falso | BOOL |
Parquet
PARQUET | Athena (freccia) |
---|---|
BINARY | VARCHAR |
BOOLEAN | BOOL |
DOUBLE | DOUBLE |
ENUM | VARCHAR |
FIXED_LEN_BYTE_ARRAY | DECIMAL |
FLOAT | FLOAT (32 bit) |
INT32 |
|
INT64 |
|
INT96 | Timestamp |
MAP | MAP |
STRUCT | STRUCT |
LIST | LIST |
Autorizzazioni richieste
Per tutti i dettagli sulle IAM politiche richieste da questo connettore, consulta la Policies
sezione del file athena-gcs.yaml
-
Accesso in scrittura ad Amazon S3: per trasferire i risultati di query di grandi dimensioni, il connettore richiede l'accesso in scrittura a una posizione in Amazon S3.
-
Athena GetQueryExecution: il connettore utilizza questa autorizzazione per fallire rapidamente quando la query Athena upstream è terminata.
-
AWS Glue Data Catalog— Il GCS connettore richiede l'accesso in sola lettura al AWS Glue Data Catalog per ottenere informazioni sullo schema.
-
CloudWatch Registri: il connettore richiede l'accesso ai CloudWatch registri per l'archiviazione dei registri.
Prestazioni
Quando lo schema della tabella contiene campi di partizione e la proprietà della tabella partition.pattern
è configurata correttamente, è possibile includere il campo di partizione nella clausola WHERE
delle query. Per tali interrogazioni, il GCS connettore utilizza le colonne delle partizioni per rifinire il percorso della GCS cartella ed evitare la scansione dei file non necessari nelle cartelle. GCS
Per i set di dati Parquet, la selezione di un sottoinsieme di colonne comporta un minor numero di dati da scansionare. Ciò si traduce in genere in un runtime di esecuzione delle query più breve quando viene applicata la proiezione di colonne.
Per CSV i set di dati, la proiezione su colonne non è supportata e non riduce la quantità di dati da scansionare.
Le clausole LIMIT
riducono la quantità di dati scansionati, ma se non viene fornito un predicato, le query SELECT
con una clausola LIMIT
eseguiranno la scansione di almeno 16 MB di dati. Il GCS connettore esegue la scansione di più dati per set di dati più grandi rispetto a set di dati più piccoli, indipendentemente dalla clausola applicata. LIMIT
Ad esempio, la query SELECT * LIMIT 10000
esegue la scansione di un maggior numero di dati per un set di dati sottostante più grande rispetto a uno più piccolo.
Informazioni sulla licenza
Utilizzando questo connettore, l'utente riconosce l'inclusione di componenti di terze parti, un elenco dei quali è disponibile nel file pom.xml
Risorse aggiuntive
Per ulteriori informazioni su questo connettore, visitate il sito corrispondente