Redshift et Athena
Introduction
Les entreprises utilisent de plus en plus les services cloud pour stocker, travailler et analyser leurs données dans le monde actuel axé sur les données. Les services cloud offrent un moyen pratique et sécurisé pour les entreprises de gérer de grandes quantités d’informations. Elles s’appuient sur les services cloud pour stocker des données, collaborer sur des projets et obtenir des informations à partir de l’analyse de leurs données. Cette tendance reflète l’importance croissante des données dans le monde des affaires. Deux services populaires offerts par Amazon Web Services (AWS) sont Amazon Redshift et Athena. Ces deux outils sont bien adaptés pour travailler avec des données dans le cloud. Cependant, ils ont des méthodes et des objectifs différents.
Cet article comparera Redshift et Athena, en examinant comment ils stockent les données dans le cloud, gèrent l’accès et suivent l’utilisation. Nous examinerons les principales différences entre les deux services. La comparaison mettra en évidence leurs approches de stockage des données, de contrôle d’accès et d’audit d’utilisation. Lors du choix d’un outil pour vos besoins en données, il est important de prendre des décisions éclairées.
Comprendre les forces et les limites de chaque service est crucial. Cela vous aidera à choisir le bon outil pour vos besoins spécifiques. Choisir la bonne option répondra efficacement à vos besoins en données.
Qu’est-ce qu’Amazon Redshift ?
Amazon Redshift est un service d’entreposage de données entièrement managé, à l’échelle du pétaoctet, conçu pour le stockage et l’analyse de données à grande échelle.
Il se base sur PostgreSQL et fournit une solution rentable pour exécuter des requêtes complexes sur de grands ensembles de données. Redshift stocke les données en colonnes et utilise de nombreux processeurs pour exécuter rapidement les requêtes et bien performer. Il est bien adapté aux charges de travail d’entreposage de données, d’intelligence d’affaires et de reporting.
Qu’est-ce qu’Amazon Athena ?
Amazon Athena est un service qui permet d’analyser des données depuis Amazon S3 en utilisant le SQL standard. Il est sans serveur, ce qui signifie que vous n’avez pas besoin de provisionner ni de gérer une infrastructure.
Athena permet aux utilisateurs d’effectuer des requêtes ad hoc et d’explorer les données stockées dans S3. Il prend en charge divers formats de données, notamment CSV, JSON, ORC, Avro et Parquet.
Athena est idéal pour analyser rapidement les données sans avoir à traiter des processus ETL complexes ou de l’entreposage de données.
Il est parfait pour les situations nécessitant une analyse rapide des données. Athena élimine la nécessité de processus ETL compliqués et d’entreposage de données.
Stockage des Données dans le Cloud
En ce qui concerne le stockage des données dans le cloud, Redshift et Athena ont des approches différentes. Redshift stocke les données dans sa propre couche de stockage managée, qu’il optimise pour des requêtes et une analyse rapides.
Vous chargez les données dans des clusters Redshift, qui consistent en des nœuds qui stockent et traitent les données. Redshift distribue automatiquement les données entre les nœuds en fonction du style de distribution que vous sélectionnez, tel que uniforme, par clé ou tout. Cela permet un traitement parallèle et une exécution des requêtes efficaces.
Exemple
Pour stocker des données dans Redshift, vous commencez par créer un cluster avec le nombre de nœuds et les types de nœuds souhaités. Ensuite, vous pouvez utiliser la commande COPY pour charger les données depuis S3 dans les tables Redshift. Par exemple, pour charger des données depuis un fichier CSV dans S3 dans une table Redshift nommée “users”, vous pouvez utiliser la commande suivante :
COPY users FROM 's3://your-bucket/path/to/file.csv' IAM_ROLE 'arn:aws:iam::123456789012:role/RedshiftLoadRole' FORMAT AS CSV;
Athena, en revanche, ne stocke pas de données en soi. Au lieu de cela, il utilise Amazon S3 comme couche de stockage sous-jacente. Vous définissez des tables dans Athena qui mappent aux données stockées dans S3, en spécifiant le schéma et le format des données. Athena utilise ces métadonnées pour interroger directement les données de S3 sans besoin de chargement ou de transformation.
Exemple
Pour créer une table dans Athena qui mappe aux données dans S3, vous pouvez utiliser l’instruction CREATE EXTERNAL TABLE. Voici un exemple :
CREATE EXTERNAL TABLE users ( id INT, name STRING, age INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE LOCATION 's3://your-bucket/path/to/data/';
Cela crée une table externe nommée “users” qui mappe aux données CSV stockées dans l’emplacement S3 spécifié. Athena peut maintenant interroger ces données en utilisant le SQL standard.
Contrôle d’Accès et Sécurité
Redshift et Athena ont tous deux de solides fonctionnalités de sécurité pour protéger vos données.
Redshift offre plusieurs mécanismes de sécurité, notamment :
- Isolement du réseau : les clusters Redshift peuvent être lancés dans un Virtual Private Cloud (VPC), offrant une sécurité et un isolement au niveau du réseau.
- Chiffrement : Redshift prend en charge le chiffrement au repos en utilisant le AWS Key Management Service (KMS) et le chiffrement en transit en utilisant SSL/TLS.
- Contrôle d’accès : Redshift s’intègre à AWS Identity and Access Management (IAM) pour gérer l’authentification et l’autorisation des utilisateurs. Vous pouvez définir des politiques d’accès granulaires pour contrôler qui peut accéder et manipuler les données dans Redshift.
- Audit : Redshift fournit une journalisation détaillée des audits et une intégration avec AWS CloudTrail pour suivre les activités des utilisateurs et les modifications apportées au cluster.
Exemple : pour accorder un accès en lecture seule à un utilisateur pour une table Redshift spécifique, vous pouvez créer une politique IAM comme celle-ci :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials", "redshift:DescribeTable", "redshift:SelectFromTable" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:cluster:your-cluster-name", "arn:aws:redshift:us-west-2:123456789012:table:your-schema-name/your-table-name" ] } ] }
Athena utilise les fonctionnalités de sécurité d’Amazon S3, notamment :
- Contrôle d’accès : Athena utilise les politiques IAM pour contrôler l’accès aux buckets et objets S3. Vous pouvez définir des politiques pour restreindre l’accès à des chemins S3 spécifiques ou à des actions Athena.
- Chiffrement : Athena prend en charge l’interrogation des données chiffrées au repos dans S3 en utilisant AWS KMS.
- Audit : Athena s’intègre à AWS CloudTrail pour consigner tous les appels API et les activités des utilisateurs, fournissant une piste d’audit à des fins de conformité et de sécurité.
Pour qu’un utilisateur puisse exécuter des requêtes sur une certaine table Athena, vous pouvez créer une politique IAM.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults" ], "Resource": [ "arn:aws:athena:us-west-2:123456789012:workgroup/your-workgroup-name" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::your-bucket-name", "arn:aws:s3:::your-bucket-name/*" ] } ] }
Cette politique permet à l’utilisateur d’exécuter des requêtes dans le workgroup Athena choisi et de visualiser les objets S3 nécessaires.
Audit et Conformité des Données dans le Cloud
L’audit est crucial pour maintenir la conformité et suivre les activités des utilisateurs dans Redshift et Athena.
Redshift offre les capacités d’audit suivantes :
- Tables systèmes : Redshift maintient des tables systèmes qui contiennent des informations sur les connexions des utilisateurs, les requêtes exécutées et les modifications apportées à la configuration du cluster.
- Intégration avec AWS CloudTrail : Redshift s’intègre à CloudTrail pour consigner les appels API et les événements de gestion, fournissant une piste d’audit complète.
- Journalisation : Redshift peut journaliser l’activité des utilisateurs, les connexions et les requêtes vers Amazon S3 ou Amazon CloudWatch Logs pour l’analyse et la surveillance.
Pour journaliser les connexions et l’activité des utilisateurs dans Redshift, ajustez le groupe de paramètres du cluster et définissez des paramètres spécifiques.
enable_user_activity_logging = true enable_user_activity_logging_level = STANDARD
Athena, étant un service sans serveur, s’appuie sur AWS CloudTrail pour l’audit
- Intégration avec AWS CloudTrail : Athena consigne automatiquement tous les appels API et les activités des utilisateurs dans CloudTrail, fournissant une piste d’audit détaillée.
- Journalisation des accès des serveurs S3 : vous pouvez activer la journalisation des accès serveurs sur les buckets S3 utilisés par Athena pour suivre les accès et opérations au niveau de l’objet.
Exemple : pour analyser les requêtes Athena en utilisant les journaux CloudTrail, vous pouvez utiliser Amazon Athena lui-même pour interroger les journaux stockés dans S3. Premièrement, créez une table Athena qui mappe aux journaux CloudTrail :
CREATE EXTERNAL TABLE cloudtrail_logs ( eventversion STRING, useridentity STRUCT< type: STRING, principalid: STRING, arn: STRING, accountid: STRING, invokedby: STRING >, eventtime STRING, eventsource STRING, eventname STRING, awsregion STRING, sourceipaddress STRING, useragent STRING, errorcode STRING, errormessage STRING, requestparameters STRING, responseelements STRING, additionaleventdata STRING, requestid STRING, eventid STRING, resources ARRAY<STRUCT< arn: STRING, accountid: STRING, type: STRING >>, eventtype STRING, apiversion STRING, readonly STRING, recipientaccountid STRING, serviceeventdetails STRING, sharedeventid STRING, vpcendpointid STRING ) ROW FORMAT SERDE 'com.amazon.emr.hive.serde.CloudTrailSerde' STORED AS INPUTFORMAT 'com.amazon.emr.cloudtrail.CloudTrailInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://your-cloudtrail-bucket/AWSLogs/123456789012/CloudTrail/';
Notez que l’utilisation de < et > pour définir les types de données strcut est spécifique au dialecte SQL d’Amazon Athena.
Athena utilise une variante de SQL appelée Presto SQL, qui est basée sur le moteur de requête SQL distribué Presto. Presto SQL introduit certaines extensions et différences de syntaxe par rapport au SQL standard.
Ensuite, vous pouvez interroger les journaux CloudTrail pour analyser l’utilisation d’Athena :
SELECT useridentity.arn, eventtime, eventsource, eventname, requestparameters FROM cloudtrail_logs WHERE eventsource = 'athena.amazonaws.com' AND eventname LIKE 'Start%' ORDER BY eventtime DESC LIMIT 100;
Cette requête récupère les 100 derniers événements d’exécution de requêtes Athena, y compris l’ARN de l’utilisateur, le temps de l’événement, la source de l’événement, le nom de l’événement et les paramètres de la requête.
Redshift vs Athena : Conclusion
Redshift et Athena sont tous deux de puissantes solutions offertes par AWS pour travailler avec les données dans le cloud. Redshift est une solution d’entreposage de données managée pour stocker et interroger de grands ensembles de données. Athena est un service de requête sans serveur pour analyser des données de S3 en utilisant SQL. Les deux services offrent des capacités robustes de contrôle d’accès, de sécurité et d’audit pour assurer la protection et la conformité de vos données.
Lors du choix entre Redshift et Athena, prenez en compte votre cas d’utilisation spécifique et vos besoins. Si vous avez besoin de requêtes complexes, de stockage de données à grande échelle et d’analyses hautes performances, Redshift peut être le meilleur choix. En revanche, si vous avez des données stockées dans S3 et avez besoin de requêtes ad hoc et d’exploration sans les contraintes de gestion de l’infrastructure, Athena est une excellente option.
Il est important d’avoir des contrôles d’accès appropriés, un chiffrement et un audit en place pour protéger vos données. Peu importe votre choix, ces mesures sont essentielles pour la sécurité et l’intégrité de vos données.
Les contrôles d’accès appropriés garantissent que seuls les utilisateurs autorisés peuvent accéder aux données. Le chiffrement aide à sécuriser les données contre les accès non autorisés. L’audit aide à surveiller et à suivre les modifications ou les accès aux données.
En utilisant les fonctionnalités de sécurité et en suivant les meilleures pratiques, vous pouvez garder vos données en sécurité dans le cloud. Cela garantira que vos données restent sécurisées et conformes aux réglementations.
DataSunrise propose des outils conviviaux et flexibles pour la sécurité des données, les règles d’audit, le masquage et la conformité pour Redshift et Athena. Nos solutions s’intègrent parfaitement aux services AWS, offrant une couche supplémentaire de sécurité et de contrôle sur vos données.
Avez-vous besoin de solutions de sécurité des données et de conformité de haut niveau ? Ne cherchez pas plus loin que l’équipe DataSunrise ! Rejoignez-nous pour une démonstration en ligne pour voir comment nos offres peuvent bénéficier à votre organisation.