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 Amazon Athena BigQuery
Il connettore Amazon Athena per Google BigQuery
Prerequisiti
Implementa il connettore sul tuo Account AWS utilizzando la console Athena o AWS Serverless Application Repository. Per ulteriori informazioni, consulta Distribuzione di un connettore origine dati o Utilizzo di AWS Serverless Application Repository per distribuire un connettore origine dati.
Limitazioni
-
Le funzioni Lambda hanno un valore di timeout massimo di 15 minuti. Ogni split esegue una query su BigQuery e deve terminare con un tempo sufficiente per memorizzare i risultati da consentire ad Athena di leggerli. Se la funzione Lambda scade, la query ha esito negativo.
-
Google distingue tra maiuscole e BigQuery minuscole. Il connettore tenta di correggere la formattazione di maiuscole e minuscole dei nomi dei set di dati e delle tabelle, ma non apporta tale tipo di correzione agli ID di progetto. Ciò è necessario perché Athena applica la formattazione minuscola a tutti i metadati. Queste correzioni effettuano molte chiamate aggiuntive verso Google BigQuery.
-
I tipi di dati binari non sono supportati.
-
A causa della BigQuery concorrenza e dei limiti di quota di Google, il connettore potrebbe riscontrare problemi con i limiti di quota di Google. Per evitare questi problemi, imponi a Google BigQuery il maggior numero possibile di vincoli. Per informazioni sulle BigQuery quote, consulta Quote e limiti nella documentazione di Google
. BigQuery
Parametri
Utilizza le variabili di ambiente Lambda in questa sezione per configurare il connettore Google BigQuery .
-
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 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 il riferimento PutObjectall'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 AWS Secrets Manager del quale sono contenute le credenziali in formato JSON (ad esempio,). BigQuery
GoogleCloudPlatformCredentials
-
big_query_endpoint — (Facoltativo) L'URL di un endpoint privato. BigQuery Utilizza questo parametro quando desideri accedere tramite un endpoint privato. BigQuery
Divisioni e visualizzazioni
Poiché il BigQuery connettore utilizza l'API BigQuery Storage Read per interrogare le tabelle e l'API BigQuery Storage non supporta le visualizzazioni, il connettore utilizza il BigQuery client con un'unica suddivisione per le visualizzazioni.
Prestazioni
Per interrogare le tabelle, il BigQuery connettore utilizza l'API BigQuery Storage Read, che utilizza un protocollo basato su RPC che fornisce un accesso rapido allo storage BigQuery gestito. Per ulteriori informazioni sull'API BigQuery Storage Read, consulta Utilizzare l'API BigQuery Storage Read per leggere i dati delle tabelle
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 BigQuery connettore Google Athena esegue il pushdown dei predicati per ridurre i dati scansionati dalla query. LIMIT
clausole, ORDER BY
clausole, predicati semplici ed espressioni complesse vengono inserite nel connettore per ridurre la quantità di dati analizzati e ridurre il tempo di esecuzione delle query.
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 BigQuery connettore Google Athena può combinare queste espressioni e inviarle direttamente a Google BigQuery per funzionalità avanzate e ridurre la quantità di dati scansionati.
I seguenti operatori del BigQuery connettore Google 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;
Interrogazioni pass-through
Il BigQuery connettore Google supporta le query passthrough. Le query passthrough utilizzano una funzione di tabella per inviare l'intera query alla fonte di dati per l'esecuzione.
Per utilizzare le query passthrough con Google BigQuery, puoi utilizzare la seguente sintassi:
SELECT * FROM TABLE( system.query( query => '
query string
' ))
La seguente query di esempio invia una query a una fonte di dati in Google. BigQuery La query seleziona tutte le colonne della customer
tabella, limitando i risultati a 10.
SELECT * FROM TABLE( system.query( query => 'SELECT * FROM customer LIMIT 10' ))
Informazioni sulla licenza
Il progetto Amazon Athena Google BigQuery Connector è concesso in licenza con la licenza Apache-2.0.
Utilizzando questo connettore, riconosci 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