
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 fournissent un moyen pratique et sécurisé pour les entreprises de gérer de grandes quantités d’informations. Elles s’appuient sur ces services pour stocker des données, collaborer sur des projets et tirer des insights de leurs analyses. Cette tendance reflète l’importance croissante des données dans le monde des affaires. Deux services populaires proposés par Amazon Web Services (AWS) sont Amazon Redshift et Athena. Ces deux outils sont excellents 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 ces deux services. La comparaison mettra en évidence leurs approches en matière de stockage de 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 limitations de chaque service est crucial. Cela vous aidera à sélectionner le bon outil pour vos exigences 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 géré, échelonnable en pétaoctets, conçu pour le stockage et l’analyse de données à grande échelle.
Il repose sur PostgreSQL et offre 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 fournir de bonnes performances. Il est bien adapté aux charges de travail d’entreposage de données, d’intelligence d’affaires et de rapports.
Qu’est-ce qu’Amazon Athena ?
Amazon Athena est un service qui vous permet d’analyser des données stockées dans Amazon S3 en utilisant du SQL standard. Il est sans serveur, ce qui signifie que vous n’avez pas besoin de provisionner ou 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 une large gamme de formats de données, y compris CSV, JSON, ORC, Avro et Parquet.
Athena est idéal pour analyser rapidement des données sans avoir à gérer des processus ETL complexes ou un entrepôt de données.
Il est idéal pour les situations nécessitant une analyse rapide des données. Athena élimine la nécessité de processus ETL complexes et d’entreposage de données.
Stockage des Données dans le Cloud
En ce qui concerne le stockage de données dans le cloud, Redshift et Athena ont des approches différentes. Redshift stocke les données dans sa propre couche de stockage gérée, qu’il optimise pour des requêtes rapides et une analyse efficace.
Vous chargez des données dans des clusters Redshift, qui se composent de 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, comme même, clé ou tous. Cela permet un traitement parallèle et une exécution de requêtes efficaces.
Exemple
Pour stocker des données dans Redshift, vous créez d’abord 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 des données depuis S3 dans les tables Redshift. Par exemple, pour charger des données d’un fichier CSV situé 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 les données elle-même. Au lieu de cela, elle utilise Amazon S3 comme couche de stockage sous-jacente. Vous définissez des tables dans Athena qui mappent les 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 stockées dans S3 sans besoin de chargement ou de transformation.
Exemple
Pour créer une table dans Athena qui mappe les données stocké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 les données CSV stockées à l’emplacement spécifié de S3. Athena peut maintenant interroger ces données en utilisant SQL standard.
Contrôle d’Accès et Sécurité
Redshift et Athena offrent tous deux des fonctionnalités de sécurité robustes pour protéger vos données.
Redshift offre plusieurs mécanismes de sécurité, notamment :
- Isole-ment réseau : Les clusters Redshift peuvent être lancés dans une Virtual Private Cloud (VPC), fournissant une sécurité au niveau réseau et une isolation.
- Cryptage : Redshift prend en charge le cryptage au repos à l’aide du AWS Key Management Service (KMS) et le cryptage en transit à l’aide de SSL/TLS.
- Contrôle d’accès : Redshift s’intègre avec 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 précises pour contrôler qui peut accéder aux données et les manipuler 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 utilisateur un accès en lecture seule à une table Redshift spécifique, vous pouvez créer une politique IAM comme ceci :
{ "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 exploite les fonctionnalités de sécurité d’Amazon S3, y compris :
- Contrôle d’accès : Athena utilise des 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 spécifiques dans S3 ou des actions Athena.
- Cryptage : Athena prend en charge l’interrogation des données cryptées au repos dans S3 en utilisant AWS KMS.
- Audit : Athena s’intègre avec AWS CloudTrail pour enregistrer tous les appels API et les activités des utilisateurs, fournissant une piste d’audit à des fins de conformité et de sécurité.
Pour permettre à un utilisateur d’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 groupe de travail Athena choisi et de consulter les objets S3 requis.
Audit et Conformité des Données 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ème : Redshift maintient des tables système contenant des informations sur les connexions des utilisateurs, les requêtes exécutées et les changements apportés à la configuration du cluster.
- Intégration à AWS CloudTrail : Redshift s’intègre à CloudTrail pour enregistrer 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 dans Amazon S3 ou Amazon CloudWatch Logs pour analyse et surveillance.
Pour journaliser les connexions et l’activité des utilisateurs dans Redshift, ajustez le groupe de paramètres du cluster et réglez des paramètres spécifiques.
enable_user_activity_logging = true enable_user_activity_logging_level = STANDARD
Athena, étant un service sans serveur, repose sur AWS CloudTrail pour l’audit.
- Intégration à AWS CloudTrail : Athena enregistre 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 serveur S3 : Vous pouvez activer la journalisation des accès serveur sur les buckets S3 utilisés par Athena pour suivre les accès et les opérations à un niveau d’objet.
Exemple : Pour analyser les requêtes Athena à l’aide des journaux CloudTrail, vous pouvez utiliser Amazon Athena lui-même pour interroger les journaux stockés dans S3. Tout d’abord, créez une table Athena qui mappe les 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 struct est spécifique au dialecte SQL d’Amazon Athena.
Athena utilise une variante du SQL appelée Presto SQL, basée sur le moteur de requêtes 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 moment 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
Ils sont tous deux des solutions puissantes proposées par AWS pour travailler avec des données dans le cloud. Redshift est une solution d’entreposage de données gérée pour stocker et interroger de grands ensembles de données. Athena est un service de requêtes sans serveur pour analyser des données depuis 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 garantir 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 exigences. Si vous avez besoin de requêtes complexes, de stockage de données à grande échelle et d’analyses haute performance, Redshift peut être le meilleur choix. En revanche, si vous avez des données stockées dans S3 et que vous 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 en place des contrôles d’accès appropriés, un cryptage et un audit pour protéger vos données. Quoi que vous choisissiez, ces mesures sont cruciales pour la sécurité et l’intégrité de vos données.
Des contrôles d’accès appropriés garantissent que seuls les utilisateurs autorisés peuvent accéder aux données. Le cryptage aide à sécuriser les données contre les accès non autorisés. L’audit aide à surveiller et suivre les changements ou accès aux données.
Vous pouvez conserver vos données en sécurité dans le cloud en utilisant les fonctionnalités de sécurité et en suivant les meilleures pratiques. Cela garantira la sécurité de vos données et leur conformité aux réglementations.
DataSunrise offre des outils conviviaux et flexibles pour la sécurité des données, les règles d’audit, le masquage et la conformité tant pour Redshift que pour Athena. Nos solutions s’intègrent parfaitement avec les services AWS, fournissant 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 premier ordre ? 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.