Comment convertir des fichiers CSV et journaux en un format en colonnes - CloudSavvy IT
Agence web » Actualités du digital » Comment convertir des fichiers CSV et journaux en un format en colonnes –

Comment convertir des fichiers CSV et journaux en un format en colonnes –

Les formats en colonnes, tels que Apache Parquet, offrent d’importantes é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 colonnes ?

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 a 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’y a pas de moyen simple d’analyser 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 le contenu du fichier. Les seuls frais d’Athena sont 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 vrai format en colonnes. Les formats en colonnes 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 ne sont pas exactement lisibles par l’homme, mais ils sont parfaitement compris par l’application qui les traite. En fait, comme il y a moins de données à analyser, elles sont beaucoup plus faciles à traiter.

Comme 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 que vous n’en scannez qu’une, cela représente 90 % d’économies rien qu’en passant à 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 injecte dans des bases de données pour une utilisation dans Athena. Bien qu’il puisse être configuré pour être automatique, vous pouvez également l’exécuter manuellement, et avec un peu de peaufinage, il peut être utilisé pour convertir des fichiers CSV au format Parquet.

Rendez-vous sur AWS Glue Console et sélectionnez « Commencer ». Dans la barre latérale, cliquez sur « Ajouter un robot d’exploration » et créez un nouveau robot d’exploration. Le robot d’exploration est configuré pour rechercher des données à partir de compartiments S3 et importer les données dans une base de données à utiliser dans la conversion.

Création d'un robot d'exploration.

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 votre robot d’exploration. Créez le rôle, puis choisissez-le dans la liste. Vous devrez peut-être appuyer sur le bouton d’actualisation à côté de celui-ci pour qu’il apparaisse.

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

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

Configuration de la base de données de sortie de votre robot d'exploration.

Si vous souhaitez automatiser le processus, vous pouvez donner à votre robot un calendrier pour 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 qu’il est 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 bon schéma. 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 « Tâches » et créez une nouvelle tâche. Donnez-lui un nom, ajoutez votre rôle IAM et sélectionnez « Un script proposé généré par AWS Glue » comme ce que la tâche s’exécute.

Nommez votre nouvelle tâche, ajoutez le rôle IAM et sélectionnez « Un script proposé généré par AWS Glue ».

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

Choisissez "Changer de schéma" pour spécifier que votre travail exécute une conversion.

Ensuite, vous devez sélectionner « Créer des tables 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 "Créer des tables dans votre cible de données", en spécifiant Parquet comme format et en entrant un nouveau chemin cible.

Ensuite, vous pouvez éditer le schéma de votre fichier. Il s’agit par défaut d’un mappage un-à-un des colonnes CSV aux colonnes Parquet, ce qui est probablement ce que vous voulez, mais vous pouvez le modifier si nécessaire.

Modification du schéma de votre fichier.

Créez le travail 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 appuyez sur « Enregistrer » et revenez à l’onglet des tâches.

Lors de nos tests, le script échouait toujours à moins que le rôle IAM n’ait reçu l’autorisation spécifique d’écrire à l’emplacement auquel nous avons spécifié la sortie. Vous devrez peut-être modifier manuellement les autorisations à partir de la 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. Quand c’est fait, vous verrez un nouveau fichier créé dans S3.

Ce travail peut être configuré pour s’exécuter à partir de déclencheurs définis par le robot qui importe les données, de sorte que l’ensemble du processus peut être automatisé du début à la fin. Si vous importez les journaux du serveur vers S3 de cette façon, cela peut être une méthode simple pour les convertir dans un format plus utilisable.

★★★★★