
Redshift e Athena

Introduzione
Le aziende utilizzano sempre più frequentemente i servizi cloud per archiviare, lavorare e analizzare i propri dati nel mondo odierno orientato ai dati. I servizi cloud offrono un modo conveniente e sicuro per le aziende di gestire grandi quantità di informazioni. Si affidano ai servizi cloud per archiviare i dati, collaborare ai progetti e ottenere informazioni dalle loro analisi. Questa tendenza riflette l’importanza crescente dei dati nel mondo degli affari. Due servizi popolari offerti da Amazon Web Services (AWS) sono Amazon Redshift e Athena. Entrambi gli strumenti sono utili per lavorare con i dati nel cloud. Tuttavia, hanno metodi e scopi differenti.
Questo articolo confronterà Redshift e Athena, osservando come salvano i dati nel cloud, gestiscono l’accesso e tracciano l’uso. Esamineremo le principali differenze tra i due servizi. Il confronto evidenzierà i loro approcci alla memorizzazione dei dati, al controllo degli accessi e all’auditing dell’utilizzo. Quando si sceglie uno strumento per le proprie esigenze di dati, è importante prendere decisioni informate.
Comprendere i punti di forza e le limitazioni di ciascun servizio è cruciale. Questo La aiuterà a scegliere lo strumento giusto per i Suoi requisiti specifici. Scegliere l’opzione giusta soddisferà efficacemente le Sue esigenze di dati.
Che Cos’è Amazon Redshift?
Amazon Redshift è un servizio di data warehousing completamente gestito a scala petabyte progettato per la memorizzazione e l’analisi di dati su larga scala.
Si basa su PostgreSQL e offre una soluzione economica per eseguire query complesse su grandi insiemi di dati. Redshift memorizza i dati in colonne e utilizza molti processori per eseguire rapidamente le query e ottenere buone performance. È particolarmente adatto per carichi di lavoro di data warehousing, business intelligence e reportistica.
Che Cos’è Amazon Athena?
Amazon Athena è un servizio che consente di analizzare i dati da Amazon S3 utilizzando SQL standard. È serverless, il che significa che non occorre fornire o gestire alcuna infrastruttura.
Athena consente agli utenti di eseguire query ad-hoc ed esplorare i dati memorizzati in S3. Supporta un’ampia gamma di formati di dati, tra cui CSV, JSON, ORC, Avro e Parquet.
Athena è ideale per un’analisi rapida dei dati senza dover gestire processi ETL complessi o di data warehousing.
È perfetto per situazioni che richiedono un’analisi rapida dei dati. Athena elimina la necessità di processi ETL complicati e di data warehousing.
Memorizzazione dei Dati nel Cloud
Per quanto riguarda la memorizzazione dei dati nel cloud, Redshift e Athena hanno approcci differenti. Redshift memorizza i dati nel proprio livello di archiviazione gestito, che ottimizza per una rapida esecuzione delle query e analisi.
Si caricano i dati nei cluster Redshift, che consistono in nodi che memorizzano ed elaborano i dati. Redshift distribuisce automaticamente i dati tra i nodi in base allo stile di distribuzione selezionato, come uniforme, chiave o tutti. Questo consente un’elaborazione parallela efficiente e un’esecuzione rapida delle query.
Esempio
Per memorizzare i dati in Redshift, si crea prima un cluster con il numero desiderato di nodi e tipi di nodo. Quindi, si può utilizzare il comando COPY per caricare i dati da S3 nelle tabelle di Redshift. Per esempio, per caricare i dati da un file CSV in S3 in una tabella Redshift chiamata “users,” si può usare il seguente comando:
COPY users FROM 's3://your-bucket/path/to/file.csv' IAM_ROLE 'arn:aws:iam::123456789012:role/RedshiftLoadRole' FORMAT AS CSV;
Athena, al contrario, non memorizza i dati. Utilizza invece Amazon S3 come livello di archiviazione sottostante. Si definiscono tabelle in Athena che mappano i dati memorizzati in S3, specificando la schema e il formato dei dati. Athena utilizza questi metadati per interrogare direttamente i dati da S3 senza necessità di caricamento o trasformazione.
Esempio
Per creare una tabella in Athena che mappa i dati in S3, si può utilizzare l’istruzione CREATE EXTERNAL TABLE. Ecco un esempio:
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/';
Questo crea una tabella esterna chiamata “users” che mappa i dati CSV memorizzati nella posizione specificata in S3. Athena può ora interrogare questi dati utilizzando SQL standard.
Controllo degli Accessi e Sicurezza
Sia Redshift che Athena offrono funzioni di sicurezza robusta per proteggere i Suoi dati.
Redshift offre diversi meccanismi di sicurezza, tra cui:
- Isolamento della rete: I cluster Redshift possono essere lanciati in una Virtual Private Cloud (VPC), fornendo sicurezza e isolamento a livello di rete.
- Crittografia: Redshift supporta la crittografia a riposo utilizzando AWS Key Management Service (KMS) e la crittografia in transito utilizzando SSL/TLS.
- Controllo degli accessi: Redshift si integra con AWS Identity and Access Management (IAM) per gestire l’autenticazione e l’autorizzazione degli utenti. Si possono definire politiche di accesso granulare per controllare chi può accedere e manipolare i dati all’interno di Redshift.
- Auditing: Redshift fornisce dettagliati log di audit e integrazione con AWS CloudTrail per tracciare le attività degli utenti e le modifiche apportate al cluster.
Esempio: Per concedere a un utente l’accesso in sola lettura a una specifica tabella Redshift, si può creare una politica IAM come questa:
{ "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 sfrutta le funzionalità di sicurezza di Amazon S3, tra cui:
- Controllo degli accessi: Athena utilizza le politiche IAM per controllare l’accesso ai bucket e agli oggetti S3. Si possono definire politiche per limitare l’accesso a percorsi S3 specifici o azioni di Athena.
- Crittografia: Athena supporta l’interrogazione di dati crittografati a riposo in S3 utilizzando AWS KMS.
- Auditing: Athena si integra con AWS CloudTrail per registrare tutte le chiamate API e le attività degli utenti, fornendo una traccia di audit per scopi di conformità e sicurezza.
Per consentire a un utente di eseguire query su una determinata tabella di Athena, si può creare una politica 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/*" ] } ] }
Questa politica consente all’utente di eseguire query nel workgroup di Athena scelto e visualizzare gli oggetti S3 necessari.
Audit dei Dati nel Cloud e Conformità
L’auditing è cruciale per mantenere la conformità e tracciare le attività degli utenti sia in Redshift che in Athena.
Redshift fornisce le seguenti capacità di audit:
- Tabelle di sistema: Redshift mantiene tabelle di sistema che contengono informazioni sulle connessioni degli utenti, le query eseguite e le modifiche apportate alla configurazione del cluster.
- Integrazione con AWS CloudTrail: Redshift si integra con CloudTrail per registrare le chiamate API e gli eventi di gestione, fornendo una traccia di audit completa.
- Logging: Redshift può registrare le attività degli utenti, le connessioni e le query in Amazon S3 o Amazon CloudWatch Logs per l’analisi e il monitoraggio.
Per registrare le connessioni e le attività degli utenti in Redshift, si regolano i parametri del gruppo di parametri del cluster e si impostano parametri specifici.
enable_user_activity_logging = true enable_user_activity_logging_level = STANDARD
Athena, essendo un servizio serverless, si affida a AWS CloudTrail per l’auditing.
- Integrazione con AWS CloudTrail: Athena registra automaticamente tutte le chiamate API e le attività degli utenti su CloudTrail, fornendo una traccia di audit dettagliata.
- Logging dell’accesso ai server S3: È possibile abilitare il logging dell’accesso ai server sui bucket S3 utilizzati da Athena per tracciare l’accesso e le operazioni a livello di oggetto.
Esempio: Per analizzare le query di Athena utilizzando i log di CloudTrail, si può utilizzare lo stesso Athena per interrogare i log memorizzati in S3. Prima, creare una tabella Athena che mappa i log di 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>, 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/';
Si noti che l’uso di < e > per definire i tipi di dati struct è specifico del dialetto SQL di Amazon Athena.
Athena utilizza una variante di SQL chiamata Presto SQL, che si basa sul motore di query distribuito Presto.SQL. Presto SQL introduce alcune estensioni e differenze di sintassi rispetto a SQL standard.
Quindi, si possono interrogare i log di CloudTrail per analizzare l’uso di 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;
Questa query recupera gli ultimi 100 eventi di esecuzione della query di Athena, inclusi l’ARN dell’utente, l’ora dell’evento, la sorgente dell’evento, il nome dell’evento e i parametri di richiesta.
Redshift vs Athena: Conclusione
Entrambi sono soluzioni potenti offerte da AWS per lavorare con i dati nel cloud. Redshift è una soluzione di data warehousing gestita per memorizzare e interrogare grandi dataset. Athena è un servizio di query serverless per analizzare i dati da S3 utilizzando SQL. Entrambi i servizi offrono robuste capacità di controllo degli accessi, sicurezza e auditing per garantire la protezione e la conformità dei Suoi dati.
Nel scegliere tra Redshift e Athena, consideri il Suo caso d’uso specifico e i Suoi requisiti. Se ha bisogno di query complesse, memorizzazione di dati su larga scala e analisi ad alte prestazioni, Redshift potrebbe essere la scelta migliore. Al contrario, se ha dati memorizzati in S3 e ha bisogno di query ad-hoc e esplorazione senza la gestione dell’infrastruttura, Athena è un’ottima opzione.
È importante avere in atto controlli di accesso adeguati, crittografia e auditing per proteggere i Suoi dati. Qualunque sia la Sua scelta, queste misure sono cruciali per la sicurezza e l’integrità dei Suoi dati.
I controlli di accesso adeguati garantiscono che solo gli utenti autorizzati possano accedere ai dati. La crittografia contribuisce a proteggere i dati da accessi non autorizzati. L’auditing consente di monitorare e tracciare eventuali modifiche o accessi ai dati.
Poter mantenere i Suoi dati sicuri nel cloud utilizzando le funzioni di sicurezza e seguendo le best practices. Questo garantirà che i Suoi dati restino sicuri e conformi alle normative.
DataSunrise offre strumenti intuitivi e flessibili per la sicurezza dei dati, regole di audit, mascheramento e conformità sia per Redshift che per Athena. Le nostre soluzioni si integrano perfettamente con i servizi AWS, fornendo uno strato aggiuntivo di sicurezza e controllo sui Suoi dati.
Ha bisogno di soluzioni di sicurezza dei dati e conformità di alta qualità? Non cerchi oltre il team DataSunrise! Partecipi a una demo online per vedere come le nostre offerte possono beneficiare la Sua organizzazione.