Usługa Amazon Redshift Serverless – teraz ogólnodostępna z nowymi możliwościami
W zeszłym roku na konferencji re:Invent, AWS przedstawił wprowadzenie usługi Amazon Redshift Serverless, bezserwerowej opcji Amazon Redshift, która umożliwia analizowanie danych w dowolnej skali bez konieczności zarządzania infrastrukturą hurtowni danych.
Jedyne co wystarczy zrobić, to wczytać i odpytać swoje dane, a opłata naliczana jest tylko za to, z czego korzystasz. Ta możliwość pozwala większej liczbie firm na zbudowanie nowoczesnej strategii dotyczącej danych, zwłaszcza w przypadkach użycia (use cases), w których workloady analityczne nie działają 24 godziny na dobę, 7 dni w tygodniu, a hurtownia danych nie jest aktywna przez cały czas. Ma to również zastosowanie w firmach, w których wykorzystanie danych rośnie w organizacji, a użytkownicy w nowych działach chcą prowadzić analitykę bez konieczności przejmowania na własność infrastruktury hurtowni danych.
W lipcu, AWS ogłosił, że usługa Amazon Redshift Serverless jest ogólnodostępna i dodano do niej wiele nowych możliwości. Dodatkowo porównaniu do wersji zapoznawczej, AWS obniżył również koszty obliczeniowe Amazon Redshift Serverless.
Możesz teraz utworzyć wiele bezserwerowych punktów końcowych na konto AWS i Region przy użyciu przestrzeni nazw i grup roboczych:
- Namespace (przestrzeń nazw) to zbiór obiektów bazy danych i użytkowników, takich jak nazwa bazy danych i hasło, uprawnienia i konfiguracja szyfrowania. W tym miejscu zarządza się Twoimi danymi, a także miejsce gdzie możesz sprawdzić, ile miejsca jest używane.
- Workgroup (grupa robocza) to zbiór zasobów obliczeniowych, w tym ustawień sieci i zabezpieczeń. Każda grupa robocza ma bezserwerowy punkt końcowy, z którym można łączyć swoje aplikacje. Podczas konfigurowania grupy roboczej można skonfigurować prywatne lub publicznie dostępne punkty końcowe.
Z każdą przestrzenią nazw może być skojarzona tylko jedna grupa robocza. I odwrotnie, każda grupa robocza może być powiązana tylko z jedną przestrzenią nazw. Możesz mieć przestrzeń nazw bez powiązanej z nią grupy roboczej, na przykład, aby używać jej tylko do udostępniania danych innym przestrzeniom nazw na tym samym lub innym koncie AWS lub regionie.
W konfiguracji grupy roboczej możesz teraz używać reguł monitorowania zapytań, aby utrzymać kontrolę nad kosztami. Ponadto sposób, w jaki Amazon Redshift Serverless automatycznie skaluje pojemność hurtowni danych, jest bardziej inteligentny, aby zapewnić wysoką wydajność w przypadku wymagających i nieprzewidywalnych workloadów.
Zobaczmy, jak to działa, korzystając z szybkiego demo. Następnie pokażemy, co możesz zrobić z przestrzeniami nazw i grupami roboczymi.
Korzystanie z Amazon Redshift Serverless
W konsoli Amazon Redshift wybieramy Redshift serverless w okienku nawigacji. Aby rozpocząć, wybieramy opcję Use default settings, aby skonfigurować przestrzeń nazw i grupę roboczą z najczęstszymi opcjami. Na przykład będziemy mogli łączyć się przy użyciu domyślnego VPC i domyślnej grupy bezpieczeństwa.
Przy ustawieniach domyślnych jedyną opcją do skonfigurowania są Permissions. Tutaj możemy określić, w jaki sposób Amazon Redshift może współdziałać z innymi usługami, takimi jak S3, Amazon CloudWatch Logs, Amazon SageMaker i AWS Glue. Aby później załadować dane, nadajemy Amazon Redshift dostęp do bucketu S3. Wybieramy Manage IAM roles, a następnie Create IAM role.
Tworząc rolę uprawnień IAM, wybieramy opcję przyznania dostępu do określonych bucketów S3 i wybieramy bucket S3 w tym samym regionie AWS. Następnie wybieramy opcję Create IAM role as default, aby zakończyć tworzenie roli i automatycznie używać jej jako domyślnej roli dla przestrzeni nazw.
Wybieramy Save configuration i po kilku minutach baza jest gotowa do użycia. W Serverless dashboard, wybieramy Query data, aby otworzyć edytor Redshift query editor v2. Tam postępujemy zgodnie z instrukcjami z przewodnika Amazon Redshift Database Developer, aby załadować przykładową bazę danych. Jeśli chcesz zrobić szybki test, kilka przykładowych baz danych (w tym ta, której tutaj używamy) jest już dostępnych w bazie sample_data_dev. Pamiętaj również, że ładowanie danych do Amazon Redshift nie jest wymagane do uruchamiania zapytań. Możemy używać danych z jeziora danych S3 w naszych zapytaniach, tworząc tzw. external schema and external table (schemat zewnętrzny i tabelę zewnętrzną).
Przykładowa baza danych składa się z siedmiu tabel i śledzi aktywność sprzedaży fikcyjnej strony „TICKIT”, na której użytkownicy kupują i sprzedają bilety na wydarzenia sportowe, pokazy i koncerty.
Aby skonfigurować schemat bazy danych, uruchamiamy kilka poleceń SQL w celu utworzenia tabel users, venue, category, date, event, listing i sales.
Następnie pobieramy plik tickitdb.zip, który zawiera przykładowe dane dla tabel bazy danych. Rozpakowujemy i ładujemy pliki do folderu tickit w tym samym buckecie S3, którego używaliśmy podczas konfigurowania roli uprawnień IAM.
Teraz możemy użyć polecenia COPY command, aby załadować dane z bucketu S3 do naszej bazy danych. Na przykład, aby załadować dane do tabeli users:
copy users from 's3://MYBUCKET/tickit/allusers_pipe.txt' iam_role default;
Plik zawierający dane do tabeli sales wykorzystuje wartości oddzielone tabulatorami:
copy sales from 's3://MYBUCKET/tickit/sales_tab.txt' iam_role default delimiter '\t' timeformat 'MM/DD/YYYY HH:MI:SS';
Po załadowaniu danych we wszystkich tabelach zaczynamy uruchamiać kilka zapytań. Na przykład poniższe zapytanie łączy pięć tabel, aby znaleźć pięciu największych sprzedawców w Kalifornii (zwróć uwagę, że przykładowe dane dotyczą roku 2008):
select sellerid, username, (firstname ||' '|| lastname) as sellername, venuestate, sum(qtysold) from sales, date, users, event, venue where sales.sellerid = users.userid and sales.dateid = date.dateid and sales.eventid = event.eventid and event.venueid = venue.venueid and year = 2008 and venuestate = 'CA' group by sellerid, username, sellername, venuestate order by 5 desc limit 5;
Teraz, gdy nasza baza danych jest gotowa, zobaczmy, co możemy zrobić, konfigurując przestrzenie nazw i grupy robocze Amazon Redshift Serverless.
Używanie i konfiguracja przestrzeni nazw
Przestrzenie nazw to kolekcje danych bazy danych i ich konfiguracji zabezpieczeń. W panelu nawigacyjnym konsoli Amazon Redshift wybieramy Namespace configuration. Z listy wybieramy default przestrzeń nazw, którą właśnie utworzyliśmy.
W zakładce Data backup możemy utworzyć lub przywrócić migawkę lub przywrócić dane z jednego z punktów przywracania, które są tworzone automatycznie co 30 minut i przechowywane przez 24 godziny. Może to być przydatne do odzyskania danych w sytuacji przypadkowego nadpisania lub usunięcia.
W zakładce Security and encryption możemy zaktualizować uprawnienia i ustawienia szyfrowania, w tym klucz AWS Key Management Service (AWS KMS) używany do szyfrowania i odszyfrowywania naszych zasobów. W tej zakładce możemy również włączyć logi typu audit oraz eksportować logi użytkowników, połączeń i aktywności użytkowników do CloudWatch Logs.
W zakładce Datashares możemy utworzyć datashare, aby udostępniać dane innym przestrzeniom nazw i kontom AWS w tym samym lub różnych Regionach. W tej zakładce możemy również utworzyć bazę danych z udziału, który otrzymujemy z innych przestrzeni nazw lub kont AWS, a także widzimy subskrypcje na udziały danych zarządzane przez AWS Data Exchange.
Podczas tworzenia datashare, możemy wybrać, które obiekty mają zostać uwzględnione. Na przykład tutaj chcemy udostępnić tylko tabele date i event, ponieważ nie zawierają one wrażliwych danych.
Używanie i konfiguracja grup roboczych
Grupy robocze to zbiory zasobów obliczeniowych oraz ich ustawień sieciowych i zabezpieczeń. Zapewniają bezserwerowy punkt końcowy dla przestrzeni nazw, dla której są skonfigurowane. W panelu nawigacyjnym konsoli Amazon Redshift wybieramy Workgroup configuration. Z listy wybieramy przestrzeń nazw default, którą utworzyliśmy.
Na karcie Data access możemy zaktualizować ustawienia sieci i bezpieczeństwa (na przykład zmienić VPC, podsieci lub grupę bezpieczeństwa) lub udostępnić punkt końcowy publicznie. Tutaj możemy również włączyć opcję Enhanced VPC routing, aby kierować ruch sieciowy między naszą bezserwerową bazą danych a repozytoriami danych, których używamy (na przykład bucketami S3 używanymi do ładowania lub rozładowywania danych) przez VPC zamiast Internetu. Aby uzyskać dostęp do bezserwerowych punktów końcowych, które znajdują się w innej VPC lub podsieci, możemy utworzyć VPC endpoint zarządzany przez Amazon Redshift.
W zakładce Limits możemy skonfigurować podstawową pojemność (base capacity) (wyrażoną w jednostkach przetwarzania Redshift lub RPU) używaną do przetwarzania naszych zapytań. Amazon Redshift Serverless skaluje zdolność obsługi większej liczby użytkowników. Tutaj mamy również możliwość zwiększenia pojemności bazy, aby przyspieszyć nasze zapytania lub zmniejszyć ją, aby obniżyć koszty.
W tej zakładce możemy również ustawić Usage limits, aby skonfigurować dzienne, tygodniowe i miesięczne progi, aby nasze koszty były przewidywalne. Na przykład skonfigurowaliśmy dzienny limit 200 RPU godzin i miesięczny limit 2000 RPU godzin dla zasobów obliczeniowych. Aby kontrolować koszty transferu danych dla współużytkowania danych między regionami, skonfigurowaliśmy dzienny limit 3 TB i tygodniowy limit 10 TB. Na koniec, aby ograniczyć zasoby używane przez każde zapytanie, używamy Query limits, aby ograniczyć czas trwania zapytań działających przez ponad 60 sekund.
Dostępność i koszty
Amazon Redshift Serverless jest obecnie ogólnodostępny we AWS Regionach wschodnich stanach USA (Ohio), wschodnich stanach USA (Pn. Wirginia), zachodnich stanach USA (Oregon), Europie (Frankfurt), Europie (Irlandia), Europie (Londyn), Europie (Sztokholm) i AWS Azja i Pacyfik (Seul), Azja i Pacyfik (Singapur), Azja i Pacyfik (Sydney) oraz Azja-Pacyfik (Tokio).
Możesz połączyć się z punktem końcowym grupy roboczej za pomocą narzędzi klienckich za pośrednictwem JDBC/ODBC lub edytora Amazon Redshift query editor v2, internetowej aplikacji klienckiej SQL dostępnej w konsoli Amazon Redshift. Korzystając z aplikacji opartych na usługach internetowych (takich jak funkcje AWS Lambda lub notebooki Amazon SageMaker), możesz uzyskać dostęp do bazy danych i wykonywać zapytania za pomocą wbudowanego interfejsu Amazon Redshift Data API.
W przypadku usługi Amazon Redshift Serverless płacisz tylko za moc obliczeniową zużywaną przez bazę danych, gdy jest aktywna. Wydajność obliczeniowa skaluje się w górę lub w dół automatycznie w zależności od obciążenia i wyłącza się w okresach braku aktywności, aby zaoszczędzić czas i koszty. Twoje dane są przechowywane w pamięci zarządzanej i płacisz za stawkę GB/miesiąc.
Aby zapewnić lepszą wydajność cenową i elastyczność korzystania z usługi Amazon Redshift Serverless w jeszcze szerszym zestawie przypadków użycia, AWS obniżył cenę z 0,5$ do 0,375$ za RPU-godzinę dla regionu US East (Pn. Virginia). Podobnie obniżyli również cenę w innych Regionach średnio o 25 procent w porównaniu z ceną przedpremierową. Więcej informacji można znaleźć na stronie cennika Amazon Redshift.
Aby pomóc Ci przećwiczyć własne przypadki użycia, AWS zapewnia również kwotę 300$ na 90 dni na wypróbowanie Amazon Redshift Serverless. Kwota ta jest wykorzystywana wyłącznie do pokrycia kosztów przetwarzania, przechowywania i migawek w trybie bezserwerowym Amazon Redshift.
Uzyskaj wgląd w swoje dane w ciągu kilku sekund dzięki Amazon Redshift Serverless.
źródło: AWS