Agence web » Actualités du digital » Interroger des données S3 comme une base de données avec AWS Athena

Interroger des données S3 comme une base de données avec AWS Athena

interroger-des-donnees-s3-comme-une-base-de-donnees-avec-6762261

Athena est un service AWS qui peut analyser les données stockées dans S3 et renvoyer des résultats basés sur des requêtes, à l'aide d'instructions SQL standard que vous utiliseriez pour une base de données traditionnelle. Il est particulièrement utile pour extraire des données de CSV et de fichiers texte volumineux.

Combien coûte Athena?

Athena n'a qu'une seule charge: Go de données traitées. Le tarif en vigueur est de 5 USD par To, soit environ 0,005 USD par Go. C'est déjà assez bon marché à moins que vous ne traitiez des fichiers gigantesques (ce qu'Athena peut certainement), mais il existe plusieurs façons de réduire encore plus ce coût.

Tout d'abord, Athena soutient gzip compression, dont vous devriez profiter. Les fichiers texte se compressent étonnamment bien, et il n'est pas rare de voir des gains de compression 3: 1 ou même 4: 1. Si Athena doit analyser l'intégralité du fichier, vous obtiendrez des économies de 70 à 80% s'il est compressé avec un gzip.

Athena prend également en charge un format en colonnes avec Apache Parquet. Si vous utilisez Parquet sur CSV, Athena peut limiter la recherche à des colonnes spécifiques, ce qui vous permet d'économiser beaucoup d'argent dans le processus.

Vraiment, Athena est assez bon marché, mais le coût est là pour inciter les gens à utiliser Parquet et gzipping. Si vous souhaitez apprendre à convertir automatiquement vos fichiers CSV au format Parquet, vous pouvez le faire avec AWS Glue.

Comment commencer

Rendez-vous sur la console Athena et choisissez «Commencer». Vous serez redirigé vers l'éditeur de requêtes, où il existe déjà un exemple de base de données et de table créés pour vous. Vous pouvez jouer avec cela si vous le souhaitez, mais une fois que vous avez terminé, allez-y et créez une nouvelle base de données:

CREATE DATABASE PRIMARY

Sélectionnez la base de données dans la barre latérale une fois qu'elle est créée. Cliquez sur "Créer une table" et sélectionnez "à partir des données du compartiment S3":

1598361388_100_interroger-des-donnees-s3-comme-une-base-de-donnees-avec-4923230

Téléchargez vos données sur S3 et sélectionnez «Copier le chemin» pour obtenir un lien vers celui-ci. Vous souhaiterez créer un nouveau dossier dans lequel stocker le fichier, même si vous n'avez qu'un seul fichier, car Athena s'attend à ce qu'il se trouve dans au moins un dossier.

1598361388_903_interroger-des-donnees-s3-comme-une-base-de-donnees-avec-3754087

De retour dans la console Athena, entrez le chemin du dossier contenant vos données (pas un chemin de fichier direct), et donnez un nom à votre table. Assurez-vous qu'il est importé dans la même base de données que vous avez créée auparavant.

1598361388_123_interroger-des-donnees-s3-comme-une-base-de-donnees-avec-7185517

Ensuite, sélectionnez votre type de données. Athena prend en charge un certain nombre d'options, telles que les journaux de serveur Web standard, CSV et TSV, JSON et les délimiteurs personnalisés.

1598361388_801_interroger-des-donnees-s3-comme-une-base-de-donnees-avec-5217377

Ensuite, vous indiquerez à Athena comment vos données sont structurées, en ajoutant des noms pour chaque colonne. Vous pouvez ajouter des colonnes manuellement ou en bloc (l'option la plus simple).

Pour ajouter des colonnes de manière groupée, vous devez générer des paires clé-valeur avec le nom de la colonne et le type de données, comme suit:

emailaddress string

Si votre fichier CSV comporte des en-têtes de colonne, vous pouvez diriger le fichier vers head pour saisir l'en-tête, et pour sed pour ajouter une valeur. Le script suivant définit chaque colonne sur le type "Chaîne":

cat search.csv | head -n1 | sed  's/((^,)*)/1 string/g'

Vous pouvez le changer pour le type correct dans la console Athena, mais il doit être formaté comme ceci pour qu'Athena l'accepte du tout.

Une fois que vous avez terminé de configurer les colonnes, créez la table, et vous serez ramené à l'éditeur de requête et affiché la requête utilisée pour créer la table. Vous verrez également le tableau nouvellement créé dans la barre latérale.

1598361389_82_interroger-des-donnees-s3-comme-une-base-de-donnees-avec-9352840

Si tout fonctionnait correctement, vous devriez maintenant pouvoir accéder aux données de votre table depuis Athena.

Athena utilise la syntaxe SQL standard, vous pouvez donc interroger cette base de données virtuelle et cette table exactement comme vous le feriez pour n'importe quelle autre base de données:

SELECT * FROM mtg WHERE cmc > 4

Vous pouvez ajouter plusieurs tables qui extraient des données de différents dossiers S3 et les interroger de la même manière.

★★★★★