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éploiement d'un connecteur de source de données ou Utilisation de 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 la casse des noms de jeux de données et des noms de tables, mais n’effectue aucune correction de casse pour les ID de projet. 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) Une carte codée au format JSON des en-têtes et des valeurs des demandes pour la demande
putObject
Amazon S3 utilisée pour le déversement (par exemple,{"x-amz-server-side-encryption" : "AES256"}
). Pour les autres en-têtes possibles, consultez le PutObjectmanuel Amazon Simple Storage Service API Reference. -
kms_key_id – (Facultatif) Par défaut, toutes les données déversées vers Amazon S3 sont chiffrées à l'aide du mode de chiffrement authentifié AES-GCM et d'une clé générée de manière aléatoire. Pour que votre fonction Lambda utilise des clés de chiffrement plus puissantes générées par KMS, comme
a7e63k4b-8loc-40db-a2a1-4d0en2cd8331
, vous pouvez spécifier l’ID d’une clé KMS. -
disable_spill_encryption – (Facultatif) Lorsque la valeur est définie sur
True
, le chiffrement des déversements est désactivé. La valeur par défaut estFalse
afin que les données déversées vers S3 soient chiffrées à l’aide d’AES-GCM, soit à l’aide d’une clé générée de manière aléatoire soit à l’aide de 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 JSON (par exemple,). BigQuery
GoogleCloudPlatformCredentials
-
big_query_endpoint — (Facultatif) L'URL d'un point de terminaison privé. BigQuery Utilisez ce paramètre lorsque vous souhaitez accéder BigQuery via un point de terminaison privé.
Divisions et vues
Étant donné que le BigQuery connecteur utilise l'API BigQuery Storage Read pour interroger les tables et que l'API BigQuery Storage ne prend pas en charge les vues, le connecteur utilise le BigQuery client avec une seule division pour les vues.
Performance
Pour interroger les tables, le BigQuery connecteur utilise l'API BigQuery Storage Read, qui utilise un protocole basé sur le RPC qui fournit un accès rapide au stockage BigQuery géré. Pour plus d'informations sur l'API BigQuery Storage Read, consultez la section Utiliser l'API BigQuery Storage Read 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 afin de 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.
Clauses LIMIT
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 clause WHERE
d'une requête SQL qui prend 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, OR, NOT
-
Égalité : EQUAL, NOT_EQUAL, LESS_THAN, LESS_THAN_OR_EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL, IS_DISTINCT_FROM, NULL_IF, IS_NULL
-
Arithmétique : ADD, SUBTRACT, 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 passthrough
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