Connettore Amazon Athena per Google BigQuery - Amazon Athena

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 Amazon Athena per Google BigQuery

Il connettore Amazon Athena per Google BigQuery consente ad Amazon Athena di eseguire query SQL sui dati in Google BigQuery.

Questo connettore può essere registrato con il Catalogo Dati Glue come catalogo federato. Supporta i controlli di accesso ai dati definiti in Lake Formation a livello di catalogo, database, tabella, colonna, riga e tag. Questo connettore utilizza connessioni Glue per centralizzare le proprietà di configurazione in Glue.

Prerequisiti

Limitazioni

  • Le funzioni Lambda hanno un valore di timeout massimo di 15 minuti. Ogni suddivisione esegue una query su BigQuery e deve terminare con un tempo sufficiente per archiviare i risultati affinché Athena possa leggerli. Se la funzione Lambda scade, la query ha esito negativo.

  • Google BigQuery fa distinzione tra maiuscole e minuscole. Il connettore tenta di correggere la formattazione di maiuscole e minuscole dei nomi dei set di dati, delle tabelle e degli ID di progetto. Ciò è necessario perché Athena applica la formattazione minuscola a tutti i metadati. Queste correzioni effettuano molte chiamate aggiuntive a Google BigQuery.

  • I tipi di dati binari non sono supportati.

  • A causa dei limiti di simultaneità e di quota di Google BigQuery, il connettore potrebbe riscontrare problemi con i limiti di quota di Google. Per evitare questi problemi, applica a Google BigQuery il maggior numero possibile di vincoli. Per informazioni sulle quote di BigQuery, consulta la sezione Quotas and limits (Quote e limiti) nella documentazione di Google BigQuery.

Parametri

Utilizza i parametri in questa sezione per configurare il connettore Google BigQuery.

Consigliamo di configurare un connettore Google BigQuery utilizzando un oggetto delle connessioni Glue. Per fare ciò, impostare la variabile di ambiente glue_connection del connettore Lambda Google BigQuery sul nome della connessione Glue da utilizzare.

Proprietà delle connessioni Glue

Utilizzare il seguente comando per ottenere lo schema di un oggetto di connessione Glue. Questo schema contiene tutti i parametri che possono essere usati per controllare la connessione.

aws glue describe-connection-type --connection-type BIGQUERY

Proprietà dell'ambiente Lambda

glue_connection: specifica il nome della connessione Glue associata al connettore federato.

Nota
  • Tutti i connettori che utilizzano le connessioni Glue devono utilizzare Gestione dei segreti AWS per memorizzare le credenziali.

  • Il connettore Google BigQuery creato utilizzando le connessioni Glue non supporta l'uso di un gestore multiplexing.

  • Il connettore Google BigQuery creato utilizzando le connessioni Glue supporta solo 2 ConnectionSchemaVersion.

Nota

I connettori di origine dati Athena creati il 3 dicembre 2024 e versioni successive utilizzano connessioni AWS Glue.

I nomi e le definizioni dei parametri elencati di seguito si riferiscono ai connettori di origine dati Athena creati senza una connessione Glue associata. Utilizzare i seguenti parametri solo quando distribuisci manualmente una versione precedente di un connettore di origine dati Athena o quando la proprietà dell'ambiente glue_connection non è specificata.

Proprietà dell'ambiente Lambda

  • 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 chiamata athena-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 codificata in JSON delle intestazioni e dei valori della richiesta per la richiesta putObject di Amazon S3 utilizzata per lo spill (ad esempio, {"x-amz-server-side-encryption" : "AES256"}). Per altre possibili intestazioni, consulta l'argomento relativo a PutObject nella Documentazione di riferimento dell'API di Amazon Simple Storage Service.

  • kms_key_id: (facoltativo) per impostazione predefinita, tutti i dati riversati in Amazon S3 vengono crittografati utilizzando la modalità di crittografia autenticata AES-GCM e una chiave generata casualmente. Per fare in modo che la tua funzione Lambda utilizzi chiavi di crittografia più potenti generate da KMS come a7e63k4b-8loc-40db-a2a1-4d0en2cd8331, puoi specificare l'ID della chiave KMS.

  • disable_spill_encryption: (facoltativo) se impostato su True, disabilita la crittografia dello spill. L'impostazione predefinita è False: in questo modo, i dati riversati su S3 vengono crittografati utilizzando AES-GCM tramite una chiave generata casualmente o una chiave generata mediante KMS. La disabilitazione della crittografia dello spill può migliorare le prestazioni, soprattutto se la posizione dello spill utilizza la crittografia lato server.

  • gcp_project_id: l'ID del progetto (non il nome del progetto) che contiene i set di dati da cui il connettore deve leggere (ad esempio, semiotic-primer-1234567).

  • secret_manager_gcp_creds_name: il nome del segreto all'interno di Gestione dei segreti AWS che contiene le tue credenziali BigQuery in formato JSON (ad esempio, GoogleCloudPlatformCredentials).

  • big_query_endpoint: (facoltativo) L'URL di un endpoint privato BigQuery. Usa questo parametro quando vuoi accedere a BigQuery tramite un endpoint privato.

Suddivisioni e visualizzazioni

Poiché il connettore BigQuery utilizza l'API BigQuery Storage Read per eseguire query sulle tabelle e l'API BigQuery Storage non supporta le visualizzazioni, il connettore utilizza il client BigQuery con un'unica suddivisione per le visualizzazioni.

Prestazioni

Per eseguire query sulle tabelle, il connettore BigQuery utilizza l'API BigQuery Storage Read, che utilizza un protocollo basato su RPC che fornisce un accesso rapido allo storage gestito da BigQuery. Per ulteriori informazioni sull'API BigQuery Storage Read, consulta Come utilizzare l'API BigQuery Storage Read per leggere i dati delle tabelle nella documentazione di Google Cloud.

La selezione di un sottoinsieme di colonne velocizza notevolmente il runtime delle query e riduce i dati scansionati. Il connettore è soggetto a errori di query all'aumentare della simultaneità e generalmente è lento.

Il connettore Google BigQuery di Athena esegue il pushdown del predicato per ridurre la quantità di dati scansionati dalla query. Per ridurre la quantità di dati analizzati e ridurre il tempo di esecuzione delle query, nel connettore viene eseguito il pushdown delle clausole LIMIT, delle clausole ORDER BY, dei predicati semplici e delle espressioni complesse.

Clausole LIMIT

Una dichiarazione LIMIT N riduce la quantità di dati analizzati dalla query. Con il pushdown LIMIT N, il connettore restituisce solo le righe N ad Athena.

Query top N

Una query top N principale specifica un ordinamento dei set di risultati e un limite al numero di righe restituite. Puoi utilizzare questo tipo di query per determinare i valori massimi top N o i valori minimi top N per i set di dati. Con il pushdown top N, il connettore restituisce solo le righe ordinate N ad Athena.

Predicati

Un predicato è un'espressione nella clausola WHERE di una query SQL che valuta a un valore booleano e filtra le righe in base a più condizioni. Il connettore Google BigQuery di Athena può combinare queste espressioni e inviarle direttamente a Google BigQuery per le funzionalità avanzate e per ridurre la quantità di dati analizzati.

I seguenti operatori del connettore Google BigQuery di Athena supportano il pushdown dei predicati:

  • Booleano: AND, OR, NOT

  • Uguaglianza: EQUAL, NOT_EQUAL, LESS_THAN, LESS_THAN_OR_EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL, IS_DISTINCT_FROM, NULL_IF, IS_NULL

  • Aritmetica: ADD, SUBTRACT, MULTIPLY, DIVIDE, MODULUS, NEGATE

  • Altro: LIKE_PATTERN, IN

Esempio di pushdown combinato

Per le funzionalità di esecuzione di query avanzate, combina i tipi di pushdown, come nell'esempio seguente:

SELECT * FROM my_table WHERE col_a > 10 AND ((col_a + col_b) > (col_c % col_d)) AND (col_e IN ('val1', 'val2', 'val3') OR col_f LIKE '%pattern%') ORDER BY col_a DESC LIMIT 10;

Query passthrough

Il connettore Google BigQuery supporta le query passthrough. Le query passthrough utilizzano una funzione di tabella per inviare l'intera query all’origine dati per l'esecuzione.

Per utilizzare le query passthrough con Google BigQuery, è possibile utilizzare la seguente sintassi:

SELECT * FROM TABLE( system.query( query => 'query string' ))

La seguente query di esempio invia una query a un’origine dati in Google BigQuery. La query seleziona tutte le colonne della tabella customer, limitando i risultati a 10.

SELECT * FROM TABLE( system.query( query => 'SELECT * FROM customer LIMIT 10' ))

Informazioni sulla licenza

Il progetto del connettore Google BigQuery per Amazon Athena è concesso in licenza ai sensi della Licenza Apache-2.0.

Utilizzando questo connettore, riconosci l'inclusione di componenti di terze parti, un elenco dei quali è disponibile nel file pom.xml di questo connettore, e accetti i termini delle rispettive licenze di terze parti fornite nel file LICENSE.txt su GitHub.com.

Risorse aggiuntive

Per ulteriori informazioni su questo connettore, visita il sito corrispondente su GitHub.com.