Partizionare i log per velocità e costi
Organizzi i dati per rendere le indagini più rapide e meno costose.
Partizionare i log per velocità e costi è una lezione AWS Security Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AWS Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AWS Security Academy include 4 lezioni in totale.
Il costo dell'analisi
Poiché Athena addebita i costi in base ai dati analizzati, interrogare un anno di log per trovare gli eventi di un solo giorno fa sprecare tempo e denaro. Il partizionamento è la tecnica che consente ad Athena di leggere solo la porzione di dati pertinente, rendendo le query molto più rapide ed economiche. È la più importante ottimizzazione per Athena.
Che cos'è una partizione
Una partizione suddivide i dati di una tabella in base ai valori di una o più colonne, in genere componenti della data, associati a prefissi S3. I log CloudTrail sono già organizzati secondo region/year/month/day, quindi partizionare in base a questi elementi rispecchia la struttura fisica e consente ad Athena di ignorare le cartelle che non rientrano nella query.
Potatura delle partizioni
Quando una query filtra in base a una colonna di partizione, Athena esegue la potatura delle partizioni: legge solo i prefissi corrispondenti e ignora gli altri. Una query relativa a un solo giorno, con partizioni configurate correttamente, analizza una frazione minima del bucket. Senza questa potatura, la stessa query analizzerebbe tutto, compresi i dati di cui non può avere bisogno.
Aggiungere manualmente le partizioni
Un modo per registrare le partizioni consiste nell'usare ALTER TABLE ADD PARTITION, associando un valore di partizione alla relativa posizione S3. Questo metodo funziona, ma è laborioso per i dati di log giornalieri, poiché richiederebbe l'aggiunta di una partizione ogni giorno. È adatto per caricamenti storici una tantum, ma non è scalabile per i log acquisiti continuamente.
Proiezione delle partizioni
La proiezione delle partizioni è l'approccio moderno consigliato: si comunica ad Athena il pattern delle partizioni, ad esempio le date comprese in un intervallo, e Athena calcola i prefissi al momento della query senza memorizzare ogni partizione nel catalogo. Per i dati CloudTrail e Flow Log in continua crescita, questo evita la manutenzione costante e mantiene automatica la potatura.
TBLPROPERTIES (
'projection.enabled'='true',
'projection.dt.type'='date',
'projection.dt.range'='2023/01/01,NOW',
'projection.dt.format'='yyyy/MM/dd'
)Crawler Glue per le partizioni
Un Glue crawler può anche individuare periodicamente le nuove partizioni e aggiungerle al catalogo. In questo modo la gestione delle partizioni per dati soggetti a evoluzione viene automatizzata; tuttavia, per strutture prevedibili basate sulle date, la proiezione delle partizioni è in genere più semplice e non comporta costi per il crawler.
I formati colonnari aumentano il risparmio
Il partizionamento limita i file letti, mentre i formati colonnari come Parquet limitano le colonne lette all'interno di tali file. La combinazione dei due approcci, convertendo i log in Parquet e partizionandoli per data, può ridurre di diversi ordini di grandezza i dati analizzati. Molti team eseguono un processo di conversione per archiviare copie dei log ad alto volume ottimizzate per le query.
Compressione
La compressione dei dati di log con formati come GZIP o Snappy riduce ulteriormente i byte analizzati e i costi di archiviazione. Athena legge i file compressi in modo trasparente. Insieme al partizionamento e all'archiviazione colonnare, la compressione completa il trittico di tecniche che rende economicamente sostenibile l'analisi dei log su larga scala.
Progettare le partizioni per la sicurezza
Per i log di sicurezza, partizioni principalmente per data, poiché le analisi sono limitate nel tempo, e valuti il partizionamento per account o regione per gli organization trail, così da poter individuare rapidamente un singolo account. Le chiavi di partizione corrette rispecchiano il modo in cui le analisi filtrano effettivamente i dati e massimizzano la potatura nelle query reali.
Monitorare le metriche di analisi
Athena comunica la quantità di dati analizzati per ogni query. Monitorare questa metrica indica se il partizionamento funziona: una query limitata nel tempo e partizionata correttamente dovrebbe analizzare megabyte, non terabyte. Se una query analizza molti più dati del previsto, probabilmente il filtro non è allineato alle colonne di partizione.
Integrare le ottimizzazioni
La sequenza di ottimizzazione consiste nel partizionamento per saltare i dati irrilevanti, nel formato colonnare per leggere solo le colonne necessarie e nella compressione per ridurre i byte. Applicate a CloudTrail e ai Flow Logs, queste tecniche trasformano analisi lente e costose in indagini rapide ed economiche, proprio ciò che richiede l'analisi della sicurezza su larga scala.
Verifica rapida
Verifichi le sue conoscenze sul partizionamento.
Riepilogo
Il partizionamento suddivide i dati della tabella in base alle colonne, in genere la data, così Athena può eseguire la potatura delle partizioni e analizzare solo i prefissi pertinenti, riducendo costi e tempi. Per i log in crescita, preferisca la proiezione delle partizioni all'uso manuale di ADD PARTITION o dei crawler. Combini le partizioni con Parquet colonnare e compressione per ottenere grandi risparmi, partizioni i log di sicurezza per data e account e monitori la metrica dei dati analizzati.
Domande Frequenti
La lezione «Partizionare i log per velocità e costi» è gratuita?
Sì — il testo completo di «Partizionare i log per velocità e costi» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AWS Security Academy, passa a CoddyKit PRO. Il corso AWS Security Academy include 4 lezioni in totale.
Cosa imparerò in «Partizionare i log per velocità e costi»?
Organizzi i dati per rendere le indagini più rapide e meno costose. Eserciti AWS Security Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AWS Security Academy?
Non è richiesta alcuna esperienza precedente. AWS Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Partizionare i log per velocità e costi»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AWS Security Academy?
Sì. Ogni lezione AWS Security Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Interrogare i log S3 con Athena
- Creare tabelle sui dati CloudTrail
- Indagare sugli incidenti con query SQL
- Partizionare i log per velocità e costi