Les 6 meilleurs répulsifs pour lapins + 8 alternatives non chimiques 2020
12 août 2020
Le GMMK est un clavier modulaire fiable et flexible qui ne cassera pas la banque – Review Geek
12 août 2020

Image de héros AWS Glue

Les formats en colonnes, tels qu'Apache Parquet, offrent de grandes économies de compression et sont beaucoup plus faciles à numériser, traiter et analyser que d'autres formats tels que CSV. Dans cet article, nous vous montrons comment convertir vos données CSV en Parquet à l'aide d'AWS Glue.

Qu'est-ce qu'un format en colonne?

Les fichiers CSV, les fichiers journaux et tout autre fichier délimité par des caractères stockent tous efficacement les données dans des colonnes. Chaque ligne de données comporte un certain nombre de colonnes, toutes séparées par le délimiteur, comme des virgules ou des espaces. Mais sous le capot, ces formats ne sont encore que des lignes de chaînes. Il n’existe pas de moyen simple de scanner une seule colonne d’un fichier CSV.

Cela peut être un problème avec des services comme AWS Athena, qui sont capables d'exécuter des requêtes SQL sur des données stockées dans CSV et d'autres fichiers délimités. Même si vous n’interrogez qu’une seule colonne, Athena doit analyser le tout contenu du fichier. La seule charge d'Athena est le Go de données traitées, donc augmenter la facture en traitant des données inutiles n'est pas la meilleure idée.

La solution est un véritable format en colonnes. Les formats en colonne stockent les données dans des colonnes, un peu comme une base de données relationnelle traditionnelle. Les colonnes sont stockées ensemble et les données sont beaucoup plus homogènes, ce qui les rend plus faciles à compresser. Ils sont pas exactement lisible par l'homme, mais ils sont bien compris par l'application qui les traite. En fait, comme il y a moins de données à analyser, elles sont beaucoup plus faciles à traiter.

Étant donné qu'Athena n'a qu'à analyser une colonne pour effectuer une sélection par colonne, cela réduit considérablement les coûts, en particulier pour les ensembles de données plus volumineux. Si vous avez 10 colonnes dans chaque fichier et n'en numérisez qu'une seule, cela représente une économie de 90% en passant simplement à Parquet.

Convertir automatiquement à l'aide d'AWS Glue

AWS Glue est un outil d'Amazon qui convertit les ensembles de données entre les formats. Il est principalement utilisé dans le cadre d'un pipeline pour traiter les données stockées dans des formats délimités et autres, et les injecter dans des bases de données à utiliser dans Athena. Bien qu'il puisse être configuré pour être automatique, vous pouvez également l'exécuter manuellement, et avec quelques ajustements, il peut être utilisé pour convertir des fichiers CSV au format Parquet.

Rendez-vous sur AWS Glue Console et sélectionnez «Get Started». Dans la barre latérale, cliquez sur «Add Crawler» et créez un nouveau robot. Le robot d'exploration est configuré pour rechercher des données à partir de Seaux S3et importez les données dans une base de données pour les utiliser dans la conversion.

Création d'un robot.

Donnez un nom à votre robot d'exploration et choisissez d'importer des données à partir d'un magasin de données. Sélectionnez S3 (bien que DynamoDB soit une autre option) et entrez le chemin d'accès à un dossier contenant vos fichiers. Si vous n'avez qu'un seul fichier à convertir, placez-le dans son propre dossier.

Choisir le magasin de données à partir duquel importer les données dans votre robot d'exploration.

Ensuite, vous êtes invité à créer un rôle IAM pour que votre robot d'exploration fonctionne. Créez le rôle, puis choisissez-le dans la liste. Vous devrez peut-être appuyer sur le bouton d'actualisation à côté pour qu'il apparaisse.

Choix et rôle IAM pour votre robot d'exploration.

Choisissez une base de données vers laquelle le robot doit générer une sortie; si vous avez déjà utilisé Athena, vous pouvez utiliser votre base de données personnalisée, mais si ce n’est pas le cas, celle par défaut devrait fonctionner correctement.

Configuration de la base de données de sortie de votre robot.

Si vous souhaitez automatiser le processus, vous pouvez donner à votre robot d'exploration un calendrier afin qu'il s'exécute régulièrement. Sinon, choisissez le mode manuel et exécutez-le vous-même depuis la console.

Une fois créé, lancez le robot d'exploration pour importer les données dans la base de données que vous avez choisie. Si tout a fonctionné, vous devriez voir votre fichier importé avec le schéma approprié. Les types de données pour chaque colonne sont attribués automatiquement en fonction de l'entrée source.

Fichiers importés avec le schéma approprié.

Une fois vos données dans le système AWS, vous pouvez les convertir. Depuis la console Glue, passez à l'onglet «Travaux» et créez un nouveau travail. Donnez-lui un nom, ajoutez votre rôle IAM et sélectionnez «Un script proposé généré par AWS Glue» comme exécution de la tâche.

Nommez votre nouvelle tâche, ajoutez le rôle IAM et sélectionnez

Sélectionnez votre table sur l'écran suivant, puis choisissez «Modifier le schéma» pour spécifier que ce travail exécute une conversion.

Choisir

Ensuite, vous devez sélectionner «Créer des tableaux dans votre cible de données», spécifier Parquet comme format et entrer un nouveau chemin cible. Assurez-vous qu'il s'agit d'un emplacement vide sans aucun autre fichier.

Choisissez une cible de données en sélectionnant

Ensuite, vous pouvez modifier le schéma de votre fichier. Par défaut, il s'agit d'un mappage un à un des colonnes CSV aux colonnes Parquet, ce qui est probablement ce que vous souhaitez, mais vous pouvez le modifier si vous en avez besoin.

Modification du schéma de votre fichier.

Créez la tâche et vous serez redirigé vers une page qui vous permet de modifier le script Python qu'il exécute. Le script par défaut devrait fonctionner correctement, alors cliquez sur "Enregistrer" et revenez à l'onglet travaux.

Lors de nos tests, le script a toujours échoué à moins que le rôle IAM ne reçoive l'autorisation spécifique d'écrire à l'emplacement où nous avons spécifié la sortie vers laquelle accéder. Vous devrez peut-être modifier manuellement les autorisations à partir du Console de gestion IAM si vous rencontrez le même problème.

Sinon, cliquez sur «Exécuter» et votre script devrait démarrer. Le traitement peut prendre une minute ou deux, mais vous devriez voir l'état dans le panneau d'informations. Une fois terminé, vous verrez un nouveau fichier créé dans S3.

Ce travail peut être configuré pour exécuter les déclencheurs définis par le robot d'exploration qui importe les données, de sorte que l'ensemble du processus puisse être automatisé du début à la fin. Si vous importez des journaux de serveur dans S3 de cette manière, cela peut être une méthode simple pour les convertir dans un format plus utilisable.

//]]>