Connecteur Amazon Athena pour Timestream
Le connecteur Amazon Athena pour Timestream permet à Amazon Athena de communiquer avec Amazon Timestream
Amazon Timestream est une base de données de séries temporelles rapide, évolutive, entièrement gérée et spécialement conçue pour faciliter le stockage et l'analyse de milliers de milliards de points de données en séries chronologiques par jour. Timestream vous fait gagner du temps et réduire les coûts de gestion du cycle de vie des données en séries chronologiques en conservant les données récentes en mémoire et en déplaçant les données historiques vers un niveau de stockage à coût optimisé en fonction des politiques définies par l'utilisateur.
Ce connecteur peut être enregistré auprès du Catalogue de données Glue en tant que catalogue fédéré. Il prend en charge les contrôles d’accès aux données définis dans Lake Formation aux niveaux catalogue, base de données, table, colonne, ligne et balise. Ce connecteur utilise les connexions Glue pour centraliser les propriétés de configuration dans Glue.
Si Lake Formation est activé sur votre compte, le rôle IAM 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 au AWS Glue Data Catalog dans Lake Formation.
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 Création d’une connexion à une source de données ou Utilisation d’AWS Serverless Application Repository pour déployer un connecteur de source de données.
Paramètres
Utilisez les paramètres de cette section pour configurer le connecteur Timestream.
Nous vous recommandons de configurer un connecteur Timestream en utilisant un objet des connexions Glue. Pour ce faire, définissez la variable d’environnement glue_connection du connecteur Timestream Lambda sur le nom de la connexion Glue à utiliser.
Propriétés des connexions Glue
Utilisez la commande suivante afin d’obtenir le schéma d’un objet de connexion Glue. Ce schéma contient tous les paramètres que vous pouvez utiliser pour contrôler votre connexion.
aws glue describe-connection-type --connection-type TIMESTREAM
Propriétés d’environnement Lambda
glue_connection – Spécifie le nom de la connexion Glue associée au connecteur fédéré.
Note
-
Tous les connecteurs qui utilisent des connexions Glue doivent utiliser AWS Secrets Manager pour stocker les informations d’identification.
-
Le connecteur Timestream créé à l’aide des connexions Glue ne prend pas en charge l’utilisation d’un gestionnaire de multiplexage.
-
Le connecteur Timestream créé à l’aide des connexions Glue prend uniquement en charge
ConnectionSchemaVersion2.
Note
Les connecteurs de source de données Athena créés le 3 décembre 2024 et les versions ultérieures utilisent des connexions AWS Glue.
Les noms et définitions de paramètres répertoriés ci-dessous concernent les connecteurs de source de données Athena créés sans connexion Glue associée. Utilisez les paramètres suivants uniquement lorsque vous déployez manuellement une version antérieure d’un connecteur de source de données Athena ou lorsque la propriété d’environnement glue_connection n’est pas spécifiée.
Propriétés d’environnement Lambda
-
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_bucketspé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
putObjectAmazon S3 utilisée pour le déversement (par exemple,{"x-amz-server-side-encryption" : "AES256"}). Pour les autres en-têtes possibles, consultez PutObject dans la Référence d'API Amazon Simple Storage Service. -
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 estFalseafin 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. -
glue_catalog – (Facultatif) Utilisez cette option pour spécifier un catalogue AWS Glue entre compte. Par défaut, le connecteur tente d’obtenir des métadonnées depuis son propre compte AWS Glue.
Configuration de bases de données et de tables dans AWS Glue
Vous pouvez éventuellement utiliser la valeur AWS Glue Data Catalog comme source de métadonnées supplémentaires. Pour activer une table AWS Glue à utiliser avec Timestream, vous devez posséder une base de données AWS Glue et une table dont les noms correspondent à la base de données et à la table Timestream pour lesquelles vous souhaitez fournir des métadonnées supplémentaires.
Note
Pour des performances optimales, n'utilisez que des minuscules pour vos noms de bases de données et de tables. L'utilisation d'une casse mixte oblige le connecteur à effectuer une recherche insensible à la casse, ce qui demande plus de temps de calcul.
Pour configurer une table AWS Glue à utiliser avec Timestream, vous devez définir ses propriétés de table dans AWS Glue.
Pour utiliser une table AWS Glue pour des métadonnées supplémentaires
-
Modifiez le tableau dans la console AWS Glue pour ajouter les propriétés de table suivantes :
timestream-metadata-flag – Cette propriété indique au connecteur Timestream que le connecteur peut utiliser la table pour des métadonnées supplémentaires. Vous pouvez fournir n’importe quelle valeur pour
timestream-metadata-flagtant que la propriététimestream-metadata-flagest présente dans la liste des propriétés de la table.-
_view_template – Lorsque vous utilisez AWS Glue pour des métadonnées supplémentaires, vous pouvez utiliser cette propriété de table et spécifier n’importe quel SQL Timestream en tant que vue. Le connecteur Athena Timestream utilise le SQL de la vue avec votre SQL d’Athena pour exécuter votre requête. Cela s’avère utile si vous souhaitez utiliser une fonctionnalité de Timestream SQL qui n’est pas disponible dans Athena.
-
Veillez à utiliser les types de données appropriés pour AWS Glue, comme indiqué dans ce document.
Types de données
Actuellement, le connecteur Timestream ne prend en charge qu’un sous-ensemble des types de données disponibles dans Timestream, en particulier les valeurs scalaires varchar, double et timestamp.
Pour interroger le type de données timeseries, vous devez configurer une vue dans les propriétés de la table AWS Glue qui utilise la fonction CREATE_TIME_SERIES de Timestream. Vous devez également fournir un schéma pour la vue qui utilise la syntaxe ARRAY<STRUCT<time:timestamp,measure_value::double:double>> comme type pour n’importe laquelle de vos colonnes de séries chronologiques. Assurez-vous de remplacer double par le type scalaire approprié pour votre table.
L’image suivante illustre un exemple de propriétés de table AWS Glue configurées pour définir une vue sur une série chronologique.
Autorisations nécessaires
Pour plus de détails sur les politiques IAM requises par ce connecteur, reportez-vous à la section Policies du fichier athena-timestream.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 aboutir à un échec rapide lorsque la requête Athena en amont est terminée.
-
AWS Glue Data Catalog – Le connecteur Timestream nécessite un accès en lecture seule au AWS Glue Data Catalog pour obtenir des informations sur le schéma.
-
CloudWatch Logs – Le connecteur nécessite un accès à CloudWatch Logs pour stocker les journaux.
-
Accès à Timestream – Pour exécuter des requêtes Timestream.
Performances
Nous vous recommandons d'utiliser la clause LIMIT afin de limiter les données renvoyées (et non les données numérisées) à moins de 256 Mo afin de garantir les performances des requêtes interactives.
Le connecteur Athena pour Timestream procède à la transmission des prédicats pour réduire les données analysées par la requête. 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 avec une clause LIMIT analysent au moins 16 Mo de données. 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 Timestream résiste à la limitation due à la simultanéité.
Requêtes de transmission
Le connecteur Timestream prend en charge les requêtes de transmission. Les requêtes de transmission utilisent une fonction de table pour transmettre votre requête complète à la source de données à des fins d’exécution.
Pour utiliser les requêtes de transmission avec Timestream, vous pouvez utiliser la syntaxe suivante :
SELECT * FROM TABLE( system.query( query => 'query string' ))
L’exemple de requête suivant transmet une requête à une source de données dans Timestream. La requête sélectionne toutes les colonnes dans la table customer, en limitant les résultats à 10.
SELECT * FROM TABLE( system.query( query => 'SELECT * FROM customer LIMIT 10' ))
Informations de licence
Le projet de connecteur Timestream Amazon Athena est concédé sous licence dans le cadre de la licence Apache-2.0
Ressources supplémentaires
Pour plus d'informations sur ce connecteur, consultez le site correspondant