Partycjonowanie logów na rzecz szybkości i kosztów
Zorganizują Państwo dane tak, aby dochodzenia przebiegały szybciej i kosztowały mniej.
Partycjonowanie logów na rzecz szybkości i kosztów to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Koszt skanowania
Ponieważ Athena pobiera opłaty za data scanned, odpytywanie całego roku logów w celu znalezienia zdarzeń z jednego dnia powoduje niepotrzebne koszty i stratę czasu. Partitioning to technika, która pozwala Athenie odczytywać tylko odpowiedni fragment danych, dzięki czemu zapytania są znacznie szybsze i tańsze. Jest to najważniejsza pojedyncza optymalizacja w Athena.
Czym jest partycja
Partition dzieli dane tabeli według wartości jednej lub większej liczby kolumn, zazwyczaj składników daty, mapowanych na prefiksy S3. Logi CloudTrail są już uporządkowane według region/year/month/day, więc partycjonowanie według tych wartości odpowiada strukturze fizycznej i pozwala Athenie pomijać foldery znajdujące się poza zakresem zapytania.
Przycinanie partycji
Gdy zapytanie filtruje według kolumny partycji, Athena wykonuje partition pruning: odczytuje tylko pasujące prefiksy i pomija pozostałe. Zapytanie dotyczące jednego dnia, przy prawidłowo skonfigurowanych partycjach, skanuje niewielką część bucketu. Bez przycinania to samo zapytanie skanowałoby wszystko, nawet dane, których z pewnością nie potrzebuje.
Ręczne dodawanie partycji
Jednym ze sposobów rejestrowania partycji jest ALTER TABLE ADD PARTITION, które mapuje wartość partycji na jej lokalizację w S3. To rozwiązanie działa, ale jest uciążliwe w przypadku codziennie generowanych logów, ponieważ partycję trzeba dodawać każdego dnia. Sprawdza się przy jednorazowym ładowaniu danych historycznych, ale nie skaluje się dla stale napływających logów.
Projekcja partycji
Partition projection to nowoczesne i zalecane podejście: określają Państwo wzorzec partycji, na przykład daty z danego zakresu, a Athena oblicza prefiksy podczas wykonywania zapytania, bez przechowywania każdej partycji w katalogu. W przypadku stale rosnących danych CloudTrail i Flow Log eliminuje to konieczność ciągłej konserwacji i zapewnia automatyczne przycinanie partycji.
TBLPROPERTIES (
'projection.enabled'='true',
'projection.dt.type'='date',
'projection.dt.range'='2023/01/01,NOW',
'projection.dt.format'='yyyy/MM/dd'
)Glue crawlers dla partycji
Glue crawler może również zgodnie z harmonogramem wykrywać nowe partycje i dodawać je do katalogu. Automatyzuje to zarządzanie partycjami w przypadku zmieniających się danych, jednak dla przewidywalnych układów opartych na datach projekcja partycji jest zwykle prostsza i nie wiąże się z kosztem crawlera.
Formaty kolumnowe zwiększają oszczędności
Partycjonowanie ogranicza liczbę odczytywanych plików, a columnar formats, takie jak Parquet, ograniczają liczbę odczytywanych kolumn w tych plikach. Połączenie obu technik — konwersja logów do Parquet i partycjonowanie według daty — może zmniejszyć ilość skanowanych danych o rzędy wielkości. Wiele zespołów uruchamia zadanie konwersji, aby przechowywać zoptymalizowane pod kątem odpytywania kopie logów o dużym wolumenie.
Kompresja
Kompresowanie danych logów za pomocą formatów takich jak GZIP lub Snappy dodatkowo zmniejsza liczbę skanowanych bajtów i koszt przechowywania. Athena odczytuje skompresowane pliki w sposób przezroczysty. W połączeniu z partycjonowaniem i przechowywaniem kolumnowym kompresja dopełnia zestaw trzech technik, które sprawiają, że analiza logów na dużą skalę jest przystępna cenowo.
Projektowanie partycji na potrzeby bezpieczeństwa
W przypadku logów bezpieczeństwa należy przede wszystkim partycjonować według date, ponieważ dochodzenia są ograniczone do przedziałów czasu. W przypadku organization trail warto również rozważyć partycjonowanie według account or region, aby szybko kierować zapytania do jednego konta. Właściwe klucze partycji odzwierciedlają sposób filtrowania w rzeczywistych dochodzeniach i maksymalizują skuteczność przycinania.
Monitorowanie metryk skanowania
Athena raportuje wartość data scanned dla każdego zapytania. Monitorowanie tej metryki pokazuje, czy partycjonowanie działa: dobrze spartycjonowane zapytanie ograniczone do przedziału czasu powinno skanować megabajty, a nie terabajty. Jeśli zapytanie skanuje znacznie więcej danych, niż oczekiwano, filtr prawdopodobnie nie odpowiada kolumnom partycji.
Łączenie optymalizacji
Stos optymalizacji obejmuje partition do pomijania nieistotnych danych, columnar format do odczytywania tylko potrzebnych kolumn oraz compression do zmniejszania liczby bajtów. Zastosowanie tych technik do CloudTrail i Flow Logs przekształca powolne i kosztowne skanowanie w szybkie, tanie dochodzenia — dokładnie tego wymaga analiza bezpieczeństwa na dużą skalę.
Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat partycjonowania.
Podsumowanie
Partitioning dzieli dane tabeli według kolumn, zwykle daty, dzięki czemu Athena wykonuje partition pruning i skanuje tylko odpowiednie prefiksy, ograniczając koszty i czas. W przypadku rosnących logów należy preferować partition projection zamiast ręcznego ADD PARTITION lub crawlerów. Połączenie partycji z columnar Parquet i compression zapewnia ogromne oszczędności. Logi bezpieczeństwa należy partycjonować według date i account, a także monitorować metrykę data-scanned.
Ucz się Cloud & IT Cert Prep dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 150
- Lekcje
- 600
Często zadawane pytania
Czy lekcja „Partycjonowanie logów na rzecz szybkości i kosztów” jest bezpłatna?
Tak — pełny tekst „Partycjonowanie logów na rzecz szybkości i kosztów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Co nauczysz się w „Partycjonowanie logów na rzecz szybkości i kosztów”?
Zorganizują Państwo dane tak, aby dochodzenia przebiegały szybciej i kosztowały mniej. Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?
Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Partycjonowanie logów na rzecz szybkości i kosztów”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?
Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Odpytywanie logów S3 za pomocą Athena
- Tworzenie tabel na podstawie danych CloudTrail
- Badanie incydentów za pomocą zapytań SQL
- Partycjonowanie logów na rzecz szybkości i kosztów