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 Google Cloud Storage
Le connecteur Amazon Athena Google Cloud Storage permet à Amazon Athena d'exécuter des requêtes sur Parquet CSV et des fichiers stockés dans un bucket Google Cloud Storage GCS (). Après avoir regroupé un ou plusieurs Parquet ou CSV fichiers dans un dossier non partitionné ou partitionné d'un GCS bucket, vous pouvez les organiser dans un AWS Glue
Si Lake Formation est activé sur votre compte, le IAM rôle de votre connecteur Lambda fédéré Athena que vous avez déployé dans le AWS Serverless Application Repository doit avoir un accès en lecture dans Lake Formation au AWS Glue Data Catalog.
Pour un article expliquant comment utiliser Athena pour exécuter des requêtes sur Parquet ou des CSV fichiers dans un GCS bucket, consultez le AWS Article de blog sur le Big Data Utilisez Amazon Athena pour interroger les données stockées sur Google Cloud Platform
Prérequis
-
Configurez un AWS Glue base de données et table correspondant à votre bucket et à vos dossiers dans Google Cloud Storage. Pour consulter les étapes à suivre, reportez-vous à Configuration de bases de données et de tables dans AWS Glue plus loin dans ce document.
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 ouUtilisez le AWS Serverless Application Repository pour déployer un connecteur de source de données.
Limites
-
Les DDL opérations d'écriture ne sont pas prises en charge.
-
Toutes les limites Lambda pertinentes. Pour plus d'informations, consultez la section Quotas Lambda dans le AWS Lambda Guide du développeur.
-
Actuellement, le connecteur ne prend en charge que le
VARCHAR
type pour les colonnes de partition (string
ouvarchar
dans un AWS Glue schéma de table). Les autres types de champs de partition génèrent des erreurs lorsque vous les interrogez dans Athena.
Conditions
Les termes suivants concernent le GCS connecteur.
-
Handler : un gestionnaire Lambda qui accède à votre bucket. GCS Un gestionnaire peut être destiné aux métadonnées ou aux enregistrements de données.
-
Gestionnaire de métadonnées : gestionnaire Lambda qui extrait les métadonnées de votre compartiment. GCS
-
Gestionnaire d'enregistrements : gestionnaire Lambda qui extrait les enregistrements de données de votre compartiment. GCS
-
Gestionnaire composite : gestionnaire Lambda qui extrait à la fois les métadonnées et les enregistrements de données de votre compartiment. GCS
Types de fichier pris en charge
Le GCS connecteur prend en charge le parquet et les types de CSV fichiers.
Note
Assurez-vous de ne pas placer les deux fichiers CSV et les fichiers Parquet dans le même GCS compartiment ou le même chemin. Cela peut entraîner une erreur d'exécution lorsque les fichiers Parquet sont tentés d'être lus CSV ou vice versa.
Paramètres
Utilisez les variables d'environnement Lambda de cette section pour configurer le GCS connecteur.
-
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 identifiant 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. -
secret_manager_gcp_creds_name — Le nom du secret dans AWS Secrets Manager qui contient vos GCS informations d'identification au JSON format (par exemple,
GoogleCloudPlatformCredentials
).
Configuration de bases de données et de tables dans AWS Glue
La capacité d'inférence de schéma intégrée du GCS connecteur étant limitée, nous vous recommandons d'utiliser AWS Glue pour vos métadonnées. Les procédures suivantes indiquent comment créer une base de données et une table dans AWS Glue auquel vous pouvez accéder depuis Athéna.
Création d'une base de données dans AWS Glue
Vous pouvez utiliser le plugin AWS Glue console pour créer une base de données à utiliser avec le GCS connecteur.
Pour créer une base de données dans AWS Glue
Connectez-vous au AWS Management Console et ouvrez le AWS Glue console à https://console.aws.amazon.com/glue/
. -
Dans le volet de navigation, sélectionnez Databases (Bases de données).
-
Choisissez Ajouter une base de données.
-
Dans Nom, entrez le nom de la base de données que vous souhaitez utiliser avec le GCS connecteur.
-
Pour Emplacement, spécifiez
google-cloud-storage-flag
. Cet emplacement indique au GCS connecteur que AWS Glue La base de données contient des tables pour les GCS données à interroger dans Athena. Le connecteur reconnaît les bases de données qui présentent cet indicateur dans Athena et ignore les bases de données qui ne le présentent pas. -
Choisissez Créer une base de données.
Création d'une table dans AWS Glue
Vous pouvez maintenant créer une table pour la base de données. Lorsque vous créez un AWS Glue table à utiliser avec le GCS connecteur, vous devez spécifier des métadonnées supplémentaires.
Pour créer un tableau dans AWS Glue console
-
Dans le volet AWS Glue console, dans le volet de navigation, choisissez Tables.
-
Sur la page Tables, sélectionnez Add table (Ajouter une table).
-
Sur la page Set table properties (Définir les propriétés de la table), saisissez les informations suivantes.
-
Name (Nom) – Un nom unique pour la table.
-
Base de données — Choisissez le AWS Glue base de données que vous avez créée pour le GCS connecteur.
-
Inclure le chemin : dans la section Banque de données, pour Inclure le chemin, entrez l'URIemplacement du GCS préfixé par
gs://
(par exemple,gs://
). Si vous disposez d’un ou de plusieurs dossiers de partition, ne les incluez pas dans le chemin.gcs_table
/data
/Note
Lorsque vous entrez le chemin non
s3://
tabulaire, AWS Glue la console affiche une erreur. Vous pouvez ignorer cette erreur. La création de la table réussira. -
Format des données — Pour Classification, sélectionnez CSVou Parquet.
-
-
Choisissez Suivant.
-
Sur la page Choose or define schema (Choisir ou définir un schéma), il est vivement recommandé de définir un schéma de table, mais cela n’est pas obligatoire. Si vous ne définissez pas de schéma, le GCS connecteur tente d'en déduire un pour vous.
Effectuez l’une des actions suivantes :
-
Si vous souhaitez que le GCS connecteur tente de déduire un schéma pour vous, choisissez Next, puis Create.
-
Pour définir vous-même un schéma, suivez les étapes décrites dans la section suivante.
-
Définition d'un schéma de table dans AWS Glue
Définition d'un schéma de table dans AWS Glue nécessite davantage d'étapes mais vous permet de mieux contrôler le processus de création des tables.
Pour définir un schéma pour votre table dans AWS Glue
-
Sur la page Choose or define schema (Choisir ou définir un schéma), sélectionnez Add (Ajouter).
-
Dans la boîte de dialogue Add schema entry (Ajouter une entrée de schéma), saisissez un nom de colonne et un type de données.
-
Pour désigner la colonne en tant que colonne de partition, sélectionnez l’option Set as partition key (Définir en tant que clé de partition).
-
Sélectionnez Save (Enregistrer) pour enregistrer la colonne.
-
Sélectionnez Add (Ajouter) pour ajouter une autre colonne.
-
Lorsque vous avez terminé d’ajouter des colonnes, sélectionnez Next (Suivant).
-
Sur la page Review and create (Examiner et créer), examinez la table, puis sélectionnez Create (Créer).
-
Si votre schéma contient des informations de partition, suivez les étapes de la section suivante pour ajouter un modèle de partition aux propriétés de la table dans AWS Glue.
Ajout d'un modèle de partition aux propriétés d'une table dans AWS Glue
Si vos GCS compartiments comportent des partitions, vous devez ajouter le modèle de partition aux propriétés de la table dans AWS Glue.
Pour ajouter des informations de partition aux propriétés de la table AWS Glue
-
Sur la page de détails de la table que vous avez créée dans AWS Glue, choisissez Actions, Modifier le tableau.
-
Sur la page Edit table (Modifier le table), faites défiler l’écran vers le bas jusqu’à la section Table properties (Propriétés de la table).
-
Sélectionnez Add (Ajouter) pour ajouter une clé de partition.
-
Pour Key (Clé), saisissez
partition.pattern
. Cette clé définit le modèle de chemin de dossier. -
Dans le champ Value (Valeur), saisissez un modèle de chemin de dossier tel que
StateName=${statename}/ZipCode=${zipcode}/
,statename
etzipcode
entourés par${}
étant des noms de colonne de partition. Le GCS connecteur prend en charge les schémas de partition Hive et non-Hive. -
Lorsque vous avez terminé, choisissez Save.
-
Pour afficher les propriétés de la table que vous venez de créer, sélectionnez l’onglet Advanced properties (Propriétés avancées).
À ce stade, vous pouvez accéder à la console Athena. La base de données et la table que vous avez créées dans AWS Glue sont disponibles pour effectuer des requêtes dans Athéna.
Prise en charge du type de données
Les tableaux suivants indiquent les types de données pris en charge pour CSV et pour Parquet.
CSV
Nature des données | Type de données inféré |
---|---|
Les données ressemblent à un nombre | BIGINT |
Les données ressemblent à une chaîne | VARCHAR |
Les données ressemblent à une virgule flottante (flottante, double ou décimale) | DOUBLE |
Les données ressemblent à une date | Horodatage |
Données contenant des valeurs true/false (vrai/faux) | BOOL |
Parquet
PARQUET | Athena (flèche) |
---|---|
BINARY | VARCHAR |
BOOLEAN | BOOL |
DOUBLE | DOUBLE |
ENUM | VARCHAR |
FIXED_LEN_BYTE_ARRAY | DECIMAL |
FLOAT | FLOAT (32 bits) |
INT32 |
|
INT64 |
|
INT96 | Horodatage |
MAP | MAP |
STRUCT | STRUCT |
LIST | LIST |
Autorisations nécessaires
Pour plus de détails sur les IAM politiques requises par ce connecteur, consultez la Policies
section du fichier athena-gcs.yaml
-
Amazon S3 write access (Accès en écriture Amazon S3) – Le connecteur nécessite un accès en écriture à un emplacement dans Amazon S3 pour déverser les résultats à partir de requêtes volumineuses.
-
Athena GetQueryExecution — Le connecteur utilise cette autorisation pour échouer rapidement lorsque la requête Athena en amont est terminée.
-
AWS Glue Data Catalog— Le GCS connecteur nécessite un accès en lecture seule au AWS Glue Data Catalog pour obtenir des informations sur le schéma.
-
CloudWatch Journaux : le connecteur a besoin d'accéder aux CloudWatch journaux pour stocker les journaux.
Performance
Lorsque le schéma de la table contient des champs de partition et que la propriété de la table partition.pattern
est correctement configurée, vous pouvez inclure le champ de partition dans la clause WHERE
de vos requêtes. Pour de telles requêtes, le GCS connecteur utilise les colonnes de partition pour affiner le chemin du GCS dossier et éviter de scanner les fichiers inutiles dans les GCS dossiers.
Pour les jeux de données Parquet, la sélection d’un sous-ensemble de colonnes permet de réduire la quantité de données analysées. Cela se traduit généralement par un temps d’exécution des requêtes plus court lorsque la projection de colonnes est appliquée.
Pour les CSV ensembles de données, la projection par colonnes n'est pas prise en charge et ne réduit pas la quantité de données numérisées.
Les clauses LIMIT
réduisent la quantité de données analysées, mais si vous ne fournissez pas de prédicat, vous devez vous attendre à ce que les requêtes SELECT
dotées d’une clause LIMIT
analysent au moins 16 Mo de données. Le GCS connecteur analyse davantage de données pour des ensembles de données plus volumineux que pour des ensembles de données plus petits, quelle que soit la LIMIT
clause appliquée. Par exemple, la requête SELECT * LIMIT 10000
analyse une plus grande quantité de données pour un jeu de données sous-jacent plus volumineux que pour un jeu de données sous-jacent plus petit.
Informations de licence
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