Amazon Redshift
Amazon Redshift
Chmurowa hurtownia danych z kolumnowym storage. Analizuj petabajty danych w sekundach za pomocą standardowego SQL - w wersji zarządzanej lub serverless.
Amazon Redshift to w pełni zarządzana, petabajtowa hurtownia danych w chmurze. Wykorzystuje kolumnowy format storage i masywną równoległość (MPP - Massively Parallel Processing), dzięki czemu zapytania analityczne na miliardach wierszy wykonują się w sekundach zamiast godzin.
Redshift oferuje dwa tryby pracy: provisionowane klastry z węzłami RA3 (dane na managed storage S3) oraz Redshift Serverless - bez zarządzania infrastrukturą, z automatycznym skalowaniem. Dzięki Redshift Spectrum możesz odpytywać dane bezpośrednio w S3 bez ładowania ich do hurtowni, co daje dostęp do praktycznie nieograniczonej ilości danych.
Redshift automatycznie kompresuje dane kolumnowo, osiągając typowo 3-4x kompresję. Oznacza to, że 1 TB surowych danych zajmuje tylko 250-330 GB na dysku. Kompresja jest dobierana automatycznie na podstawie analizy próbki danych przy pierwszym ładowaniu (COPY command).
Użyj materialized views do przyspieszenia powtarzalnych, złożonych zapytań. Redshift automatycznie odświeża materialized views inkrementalnie - aktualizuje tylko zmienione dane zamiast przeliczać wszystko od zera. Dashboardy BI oparte na materialized views ładują się w milisekundach.
Amazon Redshift to petabajtowa hurtownia danych w chmurze, zoptymalizowana pod zapytania analityczne (OLAP). Redshift uzywa kolumnowego przechowywania danych, masywnej rownoleglej kompresji (MPP) i automatycznej kompresji kolumn, co pozwala analizowac miliardy wierszy w sekundach. Integruje sie natywnie z ekosystemem AWS - S3, Glue, QuickSight, SageMaker.
Tworzenie klastra (wybor typu node)
Klaster Redshift sklada sie z leader node (parsuje zapytania, koordynuje) i compute nodes (przechowuja dane, wykonuja obliczenia). Typy nodow: ra3.xlplus (4 vCPU, 32 GiB RAM, managed storage), ra3.4xlarge (12 vCPU, 96 GiB), ra3.16xlarge (48 vCPU, 384 GiB). Ra3 oddziela compute od storage (dane w S3 z lokalnym cache SSD). Minimalny klaster to 2 nody ra3.
Ladowanie danych (COPY z S3)
Komenda COPY to najszybszy sposob ladowania danych do Redshift - rownolegle wczytuje pliki z S3, DynamoDB lub EMR. Dla optymalnej wydajnosci podziel dane na pliki rowne liczbie slices (np. 16 plikow dla 8-node klastra z 2 slices/node). Format Parquet lub ORC z kompresja jest 2-5x szybszy niz CSV. COPY automatycznie stosuje kompresje kolumn przy pierwszym ladowaniu.
Projektowanie tabel (distribution i sort keys)
Distribution key okresla, jak dane sa rozproszone miedzy nody: KEY (kolumna JOIN), EVEN (rowny rozklad), ALL (kopia na kazdym nodzie dla malych tabel wymiarowych). Sort key determinuje fizyczna kolejnosc danych na dysku - Redshift uzywa zone maps do pomijania blokow niespelniajacych warunkow WHERE. Compound sort key dla stalych zapytan, interleaved dla zmiennych wzorcow.
Wykonywanie zapytan analitycznych
Redshift kompiluje zapytania SQL do kodu C++ wykonywanego bezposrednio na compute nodes. Kolumnowe przechowywanie oznacza, ze czytane sa tylko potrzebne kolumny (np. SELECT 3 kolumn z tabeli 200 kolumn czyta 1.5% danych). Automatyczna kompresja (LZO, ZSTD, AZ64) redukuje rozmiar danych 3-10x. Result caching zwraca wyniki powtarzanych zapytan w < 1 ms.
Konfiguracja WLM (Workload Management)
WLM kontroluje alokacje zasobow miedzy rozne typy zapytan. Automatic WLM (zalecany) dynamicznie przydziela pamiec i sloty na podstawie priorytetu i zlozonosci zapytan. Mozesz zdefiniowac kolejki: np. "ETL" (niski priorytet, dlugie zapytania), "BI" (wysoki priorytet, szybkie odpowiedzi), "Superuser" (zarezerwowane). Short Query Acceleration (SQA) automatycznie przyspiesza krotkie zapytania.
Redshift Spectrum - zapytania na S3
Spectrum pozwala wykonywac zapytania SQL bezposrednio na danych w S3 bez ladowania ich do Redshift. Uzywa tabel zewnetrznych zdefiniowanych w Glue Data Catalog. Spectrum skaluje sie niezaleznie od klastra - AWS automatycznie przydziela zasoby obliczeniowe. Idealne dla data lakehouse: gorace dane w Redshift, historyczne w S3. Spectrum obsluguje formaty Parquet, ORC, JSON, CSV.
Praktyczne wskazowki do projektowania wydajnych tabel, optymalizacji zapytan i minimalizacji kosztow w Amazon Redshift.
Distribution key dla optymalizacji JOIN
Ustaw distribution key na kolumnie najczesciej uzywanej w JOIN (np. customer_id). Gdy obie tabele maja ten sam distribution key, Redshift wykonuje JOIN lokalnie na kazdym nodzie (collocated join) zamiast przesylac dane miedzy nodami (redistribution). Sprawdz plan zapytania (EXPLAIN) - DS_DIST_NONE oznacza collocated join, DS_DIST_BOTH to najgorszy scenariusz wymagajacy optymalizacji.
ZaawansowanySort keys dla zapytan zakresowych
Sort key na kolumnie uzywanej w WHERE z filtrami zakresowymi (np. created_at BETWEEN) pozwala Redshift pominac do 95% blokow danych dzieki zone maps. Compound sort key (kolumna1, kolumna2) dziala najlepiej gdy filtrujesz po pierwszej kolumnie. Dla dashboardow z roznymi filtrami rozważ interleaved sort key - rownoważy skutecznosc miedzy wszystkimi kolumnami kosztem wolniejszego VACUUM.
ZaawansowanyVACUUM i ANALYZE regularnie
Redshift nie nadpisuje wierszy przy UPDATE/DELETE - oznacza je jako usunięte (ghost rows). VACUUM odzyskuje miejsce i ponownie sortuje dane. ANALYZE aktualizuje statystyki optymalizatora zapytan. Uruchamiaj VACUUM DELETE co noc, VACUUM SORT co tydzien. Od Redshift ra3 automatyczny VACUUM dziala w tle, ale monitoruj metryce unsorted_rows. Dla duzych tabel VACUUM BOOST przyspiesza operacje kosztem wiekszego zuzycia zasobow.
PoczatkujacyRedshift Serverless dla zmiennych workloadow
Redshift Serverless automatycznie skaluje zasoby obliczeniowe (w RPU - Redshift Processing Units) na podstawie obciazenia. Placisz za faktycznie zuzyty czas obliczen (USD/RPU-godzine). Idealny dla: ad-hoc analiz, srodowisk dev/test, workloadow z pikami (np. raporty konca miesiaca). Base capacity od 8 RPU do 512 RPU. Dla stalego, przewidywalnego obciazenia provisioned cluster jest tanszy.
PoczatkujacyMaterialized Views dla powtarzalnych zapytan
Materialized Views przechowuja przeliczone wyniki zlozonych zapytan i automatycznie sie odswiezaja (AUTO REFRESH). Idealne dla dashboardow BI i raportow, ktore wykonuja te same agregacje wielokrotnie. Redshift automatycznie routuje zapytania do materialized view gdy to mozliwe (automatic query rewriting). Monitoruj czas odswiezania - dla duzych tabel uzyj incremental refresh.
ZaawansowanySpectrum dla architektury data lakehouse
Trzymaj gorace dane (ostatnie 3-6 miesiecy) w tabelach natywnych Redshift, a historyczne w S3 jako tabele Spectrum. Uzywaj formatu Parquet z partycjonowaniem po dacie - Spectrum czyta tylko potrzebne partycje. Mozesz laczyc tabele natywne ze Spectrum w jednym zapytaniu (UNION ALL). To 5-10x tansze niz przechowywanie wszystkich danych w klastrze, z akceptowalnym spadkiem wydajnosci dla starych danych.
ZaawansowanyScreenshoty z AWS Console
Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon Redshift bezposrednio w konsoli AWS.
Do czego sluzy Amazon Redshift?
Centralna hurtownia danych
Zbierz dane z wielu źródeł (bazy transakcyjne, logi, API) w jednym miejscu. SQL-owe zapytania analityczne na petabajtach danych w sekundach.
Business Intelligence i raporty
Podłącz QuickSight, Tableau czy Power BI do Redshift. Materialized views przyspieszają powtarzalne raporty dashboardowe.
Data lake queries z Spectrum
Odpytuj dane w S3 (Parquet, ORC, CSV, JSON) standardowym SQL-em bez ładowania do Redshift. Łącz dane z hurtowni i data lake w jednym zapytaniu.
Analityka real-time z streaming ingestion
Ładuj dane z Kinesis Data Streams bezpośrednio do Redshift w niemal real-time. Analizuj najświeższe dane bez opóźnień ETL.
Co musisz wiedziec?
Kolumnowy storage
Dane przechowywane kolumnami, nie wierszami. Zapytania analityczne czytają tylko potrzebne kolumny - dramatycznie mniej I/O. Kompresja kolumnowa zmniejsza rozmiar danych 3-4x.
RA3 Nodes
Najnowsza generacja węzłów Redshift. Dane przechowywane na zarządzanym storage S3 (Redshift Managed Storage) - skalujesz compute i storage niezależnie od siebie.
Redshift Serverless
Tryb bez zarządzania klastrem. Automatyczne skalowanie, płacisz za zużyte RPU (Redshift Processing Units). Idealny dla nieregularnych workloadów.
Redshift Spectrum
Silnik do odpytywania danych w S3 bezpośrednio z Redshift za pomocą external tables. Nie trzeba ładować danych do hurtowni - odpytujesz data lake SQL-em.
Concurrency Scaling
Automatyczne dodawanie tymczasowych klastrów, gdy liczba jednoczesnych zapytań przekracza pojemność. Użytkownicy nie czekają w kolejce - Redshift skaluje się w sekundach.
AQUA
Advanced Query Accelerator - sprzętowa akceleracja zapytań na warstwie storage. Przenosi operacje filtrowania i agregacji bliżej danych, przyspieszając zapytania do 10x.
Architektura: Redshift jako hurtownia danych
Typowa architektura analityczna z Redshift jako centralnym silnikiem. Dane plyna z S3 przez COPY lub streaming z Kinesis, sa analizowane w klastrze i prezentowane w narzediach BI. Spectrum rozszerza zapytania na dane w S3 data lake.
Ile kosztuje Amazon Redshift?
Redshift Serverless
Płacisz za zużyte RPU (Redshift Processing Units) w sekundach. Brak opłat gdy hurtownia jest nieaktywna.
$0.375/RPU-godz. (bazowe 8 RPU = $3/godz.)
RA3 Nodes (On-Demand)
Opłata za węzeł na godzinę plus managed storage. Skalujesz compute i storage niezależnie.
ra3.xlplus: $1.086/godz. + $0.024/GB-mies. storage
Reserved Instances
Rezerwacja węzłów na 1 lub 3 lata. Znaczne oszczędności dla stałych workloadów.
ra3.xlplus 1-rok: do 36% taniej niż On-Demand
Spectrum
Opłata za ilość danych przeskanowanych z S3. Brak opłat za transfer czy przechowywanie.
$5.00 za TB przeskanowanych danych
Przyklady AWS CLI
Utwórz klaster Redshift
Tworzy klaster z 2 węzłami RA3 w prywatnej podsieci
aws redshift create-cluster \
--cluster-identifier moja-hurtownia \
--node-type ra3.xlplus \
--number-of-nodes 2 \
--master-username admin \
--master-user-password MojeHaslo123! \
--encrypted
Utwórz namespace Serverless
Tworzy namespace Redshift Serverless z bazą danych
aws redshift-serverless create-namespace \
--namespace-name analytics-ns \
--admin-username admin \
--admin-user-password MojeHaslo123! \
--db-name analytics
Wykonaj zapytanie SQL
Uruchamia zapytanie SQL na klastrze Redshift i zwraca wynik
aws redshift-data execute-statement \
--cluster-identifier moja-hurtownia \
--database analytics \
--db-user admin \
--sql "SELECT date_trunc('month', created_at) AS month, COUNT(*) AS orders FROM orders GROUP BY 1 ORDER BY 1"
Zmień rozmiar klastra
Elastyczny resize - zmienia liczbę węzłów bez downtime
aws redshift resize-cluster \
--cluster-identifier moja-hurtownia \
--cluster-type multi-node \
--number-of-nodes 4 \
--node-type ra3.xlplus
Quiz: Amazon Redshift
Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.
1. Dlaczego Redshift jest szybszy od tradycyjnych baz danych dla analityki?
2. Co robi Redshift Spectrum?
3. Czym różnią się węzły RA3 od starszych typów (DC2)?
4. Kiedy warto wybrać Redshift Serverless zamiast provisionowanego klastra?
Czesto uzywane razem z Amazon Redshift
Chcesz poznac Amazon Redshift w praktyce?
Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon Redshift krok po kroku. Teoria + praktyka od zera.