Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Connecteur Amazon Athena pour Google BigQuery
Le connecteur Amazon Athena pour Google BigQuery
Prérequis
Déployez le connecteur sur votre Compte AWS à l’aide de la console Athena ou du AWS Serverless Application Repository. Pour plus d’informations, consultez Déployer un connecteur de source de données ou Utilisez le AWS Serverless Application Repository pour déployer un connecteur de source de données.
Limites
-
Les fonctions Lambda ont un délai d’expiration maximal de 15 minutes. Chaque division exécute une requête BigQuery et doit se terminer avec suffisamment de temps pour stocker les résultats afin qu'Athéna puisse les lire. Si le délai imparti à la fonction Lambda expire, la requête échoue.
-
Google BigQuery fait la distinction majuscules/minuscules. Le connecteur tente de corriger le cas des noms de jeux de données, des noms de tables et des projetsIDs. Cette opération est nécessaire, car Athena met en minuscules toutes les métadonnées. Ces corrections font passer de nombreux appels supplémentaires à Google BigQuery.
-
Les types de données binaires ne sont pas pris en charge.
-
En raison de la BigQuery simultanéité de Google et des limites de quotas, le connecteur peut rencontrer des problèmes liés aux limites de quotas Google. Pour éviter ces problèmes, soumettez autant de contraintes BigQuery que possible à Google. Pour plus d'informations sur BigQuery les quotas, consultez la section Quotas et limites
dans la BigQuery documentation de Google.
Paramètres
Utilisez les variables d'environnement Lambda de cette section pour configurer le connecteur Google BigQuery .
-
spill_bucket – Spécifie le compartiment Amazon S3 pour les données qui dépassent les limites des fonctions Lambda.
-
spill_prefix – (Facultatif) Par défaut, il s’agit d’un sous-dossier dans le
spill_bucket
spécifié appeléathena-federation-spill
. Nous vous recommandons de configurer un cycle de vie de stockage Amazon S3 à cet endroit pour supprimer les déversements supérieurs à un nombre de jours ou d’heures prédéterminé. -
spill_put_request_headers — (Facultatif) Carte JSON codée des en-têtes de demande et des valeurs pour la
putObject
demande Amazon S3 utilisée pour le spilling (par exemple,).{"x-amz-server-side-encryption" : "AES256"}
Pour les autres en-têtes possibles, consultez PutObjectle Amazon Simple Storage Service API Reference. -
kms_key_id — (Facultatif) Par défaut, toutes les données transmises à Amazon S3 sont chiffrées à l'aide AES du mode de chiffrement authentifié et d'une clé GCM générée de manière aléatoire. Pour que votre fonction Lambda utilise des clés de chiffrement plus fortes générées par KMS like
a7e63k4b-8loc-40db-a2a1-4d0en2cd8331
, vous pouvez spécifier un ID de KMS clé. -
disable_spill_encryption – (Facultatif) Lorsque la valeur est définie sur
True
, le chiffrement des déversements est désactivé. Par défaut, les donnéesFalse
transmises à S3 sont chiffrées à l'aide de AES GCM -, soit à l'aide d'une clé générée de manière aléatoire, soit KMS pour générer des clés. La désactivation du chiffrement des déversements peut améliorer les performances, surtout si votre lieu de déversement utilise le chiffrement côté serveur. -
gcp_project_id – L’ID du projet (et non le nom du projet) qui contient les jeux de données à partir desquels le connecteur doit lire (par exemple,
semiotic-primer-1234567
). -
secret_manager_gcp_creds_name — Le nom du secret AWS Secrets Manager qui contient vos informations d'identification au format (par exemple,). BigQuery JSON
GoogleCloudPlatformCredentials
-
big_query_endpoint — (Facultatif) Le URL point de terminaison privé. BigQuery Utilisez ce paramètre lorsque vous souhaitez accéder BigQuery via un point de terminaison privé.
Divisions et vues
Comme le BigQuery connecteur utilise le BigQuery Storage Read API pour interroger les tables et que le BigQuery Storage API ne prend pas en charge les vues, le connecteur utilise le BigQuery client avec une seule division pour les vues.
Performance
Pour interroger des tables, le BigQuery connecteur utilise le BigQuery Storage ReadAPI, qui utilise un protocole RPC basé qui fournit un accès rapide au stockage BigQuery géré. Pour plus d'informations sur le BigQuery Storage ReadAPI, consultez la section Utiliser le BigQuery Storage Read API pour lire les données des tables
La sélection d'un sous-ensemble de colonnes accélère considérablement l'exécution des requêtes et réduit le nombre de données analysées. Le connecteur est sujet à des échecs de requête lorsque la simultanéité augmente, et est généralement un connecteur lent.
Le BigQuery connecteur Google Athena effectue le transfert des prédicats vers le bas pour réduire le nombre de données scannées par la requête. LIMIT
les ORDER BY
clauses, les prédicats simples et les expressions complexes sont transférés vers le connecteur afin de réduire la quantité de données numérisées et le temps d'exécution des requêtes.
LIMITclauses
Une instruction LIMIT N
réduit les données analysées par la requête. Grâce à la poussée vers le bas LIMIT N
, le connecteur renvoie uniquement des lignes N
à Athena.
Requêtes Top N
Une requête Top N
spécifie le classement du jeu de résultats et la limite du nombre de lignes renvoyées. Vous pouvez utiliser ce type de requête pour déterminer les valeurs Top N
maximales ou Top N
minimales pour vos jeux de données. Grâce à la poussée vers le bas Top N
, le connecteur renvoie uniquement des lignes N
classées à Athena.
Prédicats
Un prédicat est une expression contenue dans la WHERE
clause d'une SQL requête qui donne une valeur booléenne et filtre les lignes en fonction de plusieurs conditions. Le BigQuery connecteur Athena Google peut combiner ces expressions et les envoyer directement à Google BigQuery pour améliorer les fonctionnalités et réduire la quantité de données numérisées.
Les opérateurs de BigQuery connecteurs Athena Google suivants prennent en charge le transfert de prédicats :
-
Booléen :AND, OU, NOT
-
Égalité :EQUAL, NOT _EQUAL, _THAN, LESS _ LESS THAN _OR_, _EQUAL, _ GREATER THAN _OR_THAN, GREATER IS_ _, EQUAL _IF, IS_ DISTINCT FROM NULL NULL
-
Arithmétique : ADDSUBTRACT,,MULTIPLY,DIVIDE, MODULUS NEGATE
-
Autres : LIKE _PATTERN, IN
Exemple de poussée combinée vers le bas
Pour améliorer les capacités de requête, combinez les types de poussée vers le bas, comme dans l'exemple suivant :
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;
Requêtes directes
Le BigQuery connecteur Google prend en charge les requêtes directes. Les requêtes passthrough utilisent une fonction de table pour transférer votre requête complète vers la source de données pour exécution.
Pour utiliser des requêtes directes avec Google BigQuery, vous pouvez utiliser la syntaxe suivante :
SELECT * FROM TABLE( system.query( query => '
query string
' ))
L'exemple de requête suivant permet de transférer une requête vers une source de données dans Google BigQuery. La requête sélectionne toutes les colonnes de la customer
table, limitant les résultats à 10.
SELECT * FROM TABLE( system.query( query => 'SELECT * FROM customer LIMIT 10' ))
Informations de licence
Le projet Amazon Athena Google BigQuery Connector est concédé sous licence Apache-2.0
En utilisant ce connecteur, vous reconnaissez l'inclusion de composants tiers, dont la liste se trouve dans le fichier pom.xml
Ressources supplémentaires
Pour plus d'informations sur ce connecteur, rendez-vous sur le site correspondant