Amazon QuickSight to skalowalne, bezserwerowe, oparte na uczeniu maszynowym (ML) rozwiązanie do analizy biznesowej (BI), które ułatwia łączenie się z danymi, tworzenie interaktywnych pulpitów nawigacyjnych, uzyskiwanie dostępu do spostrzeżeń z obsługą uczenia maszynowego oraz udostępnianie wizualizacji i pulpitów nawigacyjnych dziesiątkom tysięcy użytkowników wewnętrznych i zewnętrznych, zarówno w samym programie QuickSight, jak i osadzonym w dowolnej aplikacji.
Zapis zwrotny to możliwość aktualizacji hurtowni danych, hurtowni danych lub dowolnego innego zaplecza bazy danych z poziomu pulpitów nawigacyjnych BI i analizowania zaktualizowanych danych w czasie zbliżonym do rzeczywistego na samym pulpicie nawigacyjnym. W tym poście pokazujemy, jak wykonać bezpieczne zapisywanie wsteczne bazy danych za pomocą QuickSight.
Omówienie przypadków użycia
Aby zademonstrować, jak włączyć funkcję zapisu zwrotnego za pomocą programu QuickSight, rozważmy fikcyjną firmę AnyCompany Inc. AnyCompany to profesjonalna firma usługowa, która specjalizuje się w dostarczaniu swoim klientom rozwiązań dotyczących siły roboczej. Firma AnyCompany ustaliła, że uruchamianie obciążeń w chmurze w celu obsługi rosnących globalnych potrzeb biznesowych stanowi przewagę konkurencyjną i wykorzystuje chmurę do obsługi wszystkich swoich obciążeń. Firma AnyCompany postanowiła udoskonalić sposób, w jaki jej oddziały dostarczają klientom wyceny. Obecnie oddziały generują oferty dla klientów ręcznie, a jako pierwszy krok w tej innowacyjnej podróży AnyCompany chce opracować rozwiązanie dla przedsiębiorstw do generowania ofert dla klientów z możliwością dynamicznego stosowania lokalnych danych cenowych w momencie generowania wyceny.
AnyCompany obecnie używa Amazonka Przesunięcie ku czerwieni jako platformę hurtowni danych przedsiębiorstwa i QuickSight jako rozwiązanie BI.
Tworzenie nowego rozwiązania wiąże się z następującymi wyzwaniami:
- AnyCompany chce rozwiązania, które jest łatwe w budowie i utrzymaniu, i nie chce inwestować w budowanie oddzielnego interfejsu użytkownika.
- AnyCompany chce rozszerzyć możliwości swojego istniejącego pulpitu nawigacyjnego QuickSight BI, aby umożliwić również generowanie i akceptację ofert. Uprości to wdrażanie funkcji, ponieważ ich pracownicy już korzystają z pulpitów nawigacyjnych QuickSight i cieszą się łatwym w użyciu interfejsem, który zapewnia QuickSight.
- AnyCompany chce przechowywać historię negocjacji ofert, która obejmuje wygenerowane, sprawdzone i zaakceptowane oferty.
- AnyCompany chce zbudować nowy pulpit nawigacyjny z danymi historii wycen do analizy i wglądu biznesowego.
Ten post zawiera kroki umożliwiające włączenie funkcji zapisu zwrotnego do Amazon Redshift z QuickSight. Należy pamiętać, że tradycyjne narzędzia BI są dostępne tylko do odczytu i mają niewiele opcji aktualizacji danych źródłowych lub nie mają ich wcale.
Omówienie rozwiązania
To rozwiązanie korzysta z następujących usług AWS:
- Brama Amazon API – Hostuje i zabezpiecza API REST zapisu zwrotnego, które będzie wywoływane przez QuickSight
- AWS Lambda – Uruchamia funkcję obliczeniową wymaganą do wygenerowania skrótu oraz drugą funkcję do bezpiecznego wykonania zapisu zwrotnego
- Amazon QuickSight – Oferuje pulpity nawigacyjne BI i możliwości generowania ofert
- Amazonka Przesunięcie ku czerwieni – Przechowuje oferty, ceny i inne odpowiednie zestawy danych
- Menedżer tajemnic AWS – Przechowuje i zarządza kluczami do podpisywania skrótów (skrót wiadomości)
Chociaż to rozwiązanie wykorzystuje Amazon Redshift jako magazyn danych, podobne podejście można zaimplementować z dowolną bazą danych, która obsługuje tworzenie funkcji zdefiniowanych przez użytkownika (UDF), które mogą wywoływać Lambda.
Poniższy rysunek przedstawia przepływ pracy do wykonywania zapisów zwrotnych z QuickSight.
Pierwszym krokiem w rozwiązaniu jest wygenerowanie skrótu lub skrótu wiadomości zestawu atrybutów w Amazon Redshift poprzez wywołanie funkcji Lambda. Ten krok zapobiega manipulowaniu żądaniami. Aby wygenerować skrót, Amazon Redshift wywołuje a skalarna Lambda UDF. Zastosowany tutaj mechanizm mieszania jest popularny BLAKE2 funkcja (dostępna w bibliotece Pythona haszysz). Aby dodatkowo zabezpieczyć hash, stosuje się haszowanie z kluczem, które jest szybszą i prostszą alternatywą oparty na hashach kod uwierzytelniania wiadomości (HMAC). Ten klucz jest generowany i przechowywany przez Secrets Manager i powinien być dostępny tylko dla dozwolonych aplikacji. Po wygenerowaniu bezpiecznego skrótu jest on zwracany do Amazon Redshift i łączony w widoku Amazon Redshift.
Zapisanie wygenerowanej wyceny z powrotem do Amazon Redshift jest wykonywane przez funkcję Lambda zapisu wstecznego, a punkt końcowy API REST API Gateway jest tworzony w celu zabezpieczenia i przekazywania żądań do funkcji zapisu zwrotnego. Funkcja zapisu zwrotnego wykonuje następujące akcje:
- Wygeneruj hash na podstawie parametrów wejściowych API otrzymanych od QuickSight.
- Podpisz skrót, stosując klucz z Secrets Manager.
- Porównaj wygenerowany hash z hashem otrzymanym z parametrów wejściowych za pomocą metody Compare_digest dostępnej w HMAC moduł.
- Po pomyślnym zatwierdzeniu zapisz rekord w tabeli składania ofert w Amazon Redshift.
W poniższej sekcji przedstawiono szczegółowe kroki z przykładowymi ładunkami i fragmentami kodu.
Wygeneruj hash
Hash jest generowany przy użyciu Lambda UDF w Amazon Redshift. Dodatkowo do podpisywania skrótu używany jest klucz Secrets Manager. Aby utworzyć skrót, wykonaj następujące kroki:
- Utwórz klucz Secrets Manager z pliku Interfejs wiersza poleceń AWS (CLI AWS):
- Utwórz Lambda UDF, aby wygenerować skrót do szyfrowania:
- Zdefiniuj Amazon Redshift UDF, aby wywołać funkcję Lambda w celu utworzenia skrótu:
Połączenia AWS Zarządzanie tożsamością i dostępem (IAM) w poprzednim kroku powinna mieć dołączoną następującą politykę, aby móc wywołać funkcję Lambda:
- Pobierz klucz z Secrets Manager.
Ten klucz jest używany przez funkcję Lambda do dalszego zabezpieczenia skrótu. Jest to wskazane w pobierz_sekret funkcja w kroku 2.
Skonfiguruj zestawy danych Amazon Redshift w QuickSight
Pulpit nawigacyjny generowania ofert używa następującego widoku Amazon Redshift.
Utwórz widok Amazon Redshift, który wykorzystuje wszystkie poprzednie kolumny wraz z kolumną mieszającą:
Rekordy będą wyglądać jak na poniższym zrzucie ekranu.
Poprzedni widok zostanie użyty jako zestaw danych QuickSight do generowania ofert. Analiza QuickSight zostanie utworzona przy użyciu zestawu danych. Do analizy w czasie zbliżonym do rzeczywistego można użyć trybu zapytań bezpośrednich QuickSight.
Utwórz zasoby API Gateway
Operacja zapisu zwrotnego jest inicjowana przez QuickSight wywołujący zasób API Gateway, który wywołuje funkcję zapisu zwrotnego Lambda. Warunkiem wstępnym utworzenia pola obliczeniowego w programie QuickSight w celu wywołania interfejsu API zapisu zwrotnego jest uprzednie utworzenie tych zasobów.
API Gateway zabezpiecza i wywołuje funkcję Lambda zapisu zwrotnego z parametrami utworzonymi jako parametry ciągu zapytania URL z szablonami mapowania. Parametrów mapowania można uniknąć, korzystając z integracji proxy Lambda.
Utwórz zasób REST API typu metoda GET, który używa funkcji Lambda (utworzonych w następnym kroku) jako typu integracji. Aby uzyskać instrukcje, patrz Tworzenie REST API w Amazon API Gateway i Skonfiguruj integracje Lambda w API Gateway.
Poniższy zrzut ekranu przedstawia szczegóły dotyczące tworzenia parametru ciągu zapytania dla każdego parametru przekazanego do API Gateway.
Poniższy zrzut ekranu przedstawia szczegóły tworzenia parametru szablonu mapowania dla każdego parametru przekazanego do API Gateway.
Utwórz funkcję Lambda
Utwórz nową funkcję Lambda do wywołania przez API Gateway. Funkcja Lambda wykonuje następujące kroki:
- Odbieraj parametry z QuickSight przez API Gateway i mieszaj połączone parametry.
Poniższy przykładowy kod pobiera parametry z wywołania API Gateway przy użyciu obiektu zdarzenia funkcji Lambda:
Funkcja wykonuje logikę mieszania, jak pokazano na stworzyć hash krok wcześniej, używając połączonych parametrów przekazanych przez QuickSight.
- Porównaj zahaszowane dane wyjściowe z parametrem hash.
Jeśli te nie pasują, zapis zwrotny nie nastąpi.
- Jeśli skróty są zgodne, wykonaj zapis zwrotny. Sprawdź obecność rekordu w tabeli generowania ofert, generując zapytanie z tabeli przy użyciu parametrów przekazanych z QuickSight:
- Wykonaj następujące działanie na podstawie wyników zapytania:
- Jeśli dla powyższej kombinacji nie istnieje żaden rekord, wygeneruj i uruchom zapytanie wstawiające, używając wszystkich parametrów ze stanem wygenerowanym.
- Jeśli dla powyższej kombinacji istnieje rekord, wygeneruj i uruchom zapytanie wstawiające ze stanem przeglądania. Quote_Id dla istniejącej kombinacji zostanie ponownie użyty.
Utwórz wizualizację QuickSight
Ten krok obejmuje utworzenie wizualizacji tabeli, która używa pola obliczeniowego do przekazywania parametrów do bramy interfejsu API i wywoływania poprzedniej funkcji Lambda.
- Dodaj pole obliczeniowe QuickSight o nazwie Generuj wycenę, aby przechowywać hostowany adres URL API Gateway, który zostanie uruchomiony w celu zapisania historii wyceny do Amazon Redshift:
- Utwórz wizualizację tabeli QuickSight.
- Dodaj wymagane pola, takie jak Klient, Umiejętności i Koszt.
- Dodaj obliczone pole Wygeneruj wycenę i nadaj temu styl hiperłącza.
Wybranie tego linku spowoduje zapisanie rekordu w Amazon Redshift. Ma to zastosowanie do tej samej wartości skrótu, która powraca, gdy funkcja Lambda wykonuje skrót dla parametrów.
Poniższy zrzut ekranu przedstawia przykładową wizualizację tabeli.
Napisz do bazy danych Amazon Redshift
Klucz Secrets Manager jest pobierany i używany przez funkcję Lambda do generowania skrótu do porównania. Zapis zwrotny zostanie wykonany tylko wtedy, gdy hash jest zgodny z hashem przekazanym w parametrze.
Poniższa tabela przesunięcia ku czerwieni Amazon przechwyci historię cytatów wypełnioną funkcją Lambda. Rekordy w kolorze zielonym reprezentują najnowsze rekordy dla oferty.
Rozważania i dalsze kroki
Korzystanie z bezpiecznych skrótów zapobiega manipulowaniu parametrami ładunku, które są widoczne w oknie przeglądarki po wywołaniu adresu URL zapisu zwrotnego. Aby dodatkowo zabezpieczyć zwrotny adres URL, możesz zastosować następujące techniki:
- Wdróż interfejs API REST w prywatnym VPC, który jest dostępny tylko dla użytkowników QuickSight.
- Aby zapobiec atakom powtórkowym, oprócz funkcji haszującej można wygenerować znacznik czasu i przekazać jako dodatkowy parametr w adresie URL zapisu zwrotnego. Funkcję Lambda zaplecza można następnie zmodyfikować, aby zezwalała na zapis wsteczny tylko w ramach określonego progu czasowego.
- Postępuj zgodnie z API Gateway kontroli dostępu i bezpieczeństwo najlepsze praktyki.
- Złagodzić potencjalna odmowa usługi dla publicznych interfejsów API.
Możesz dodatkowo udoskonalić to rozwiązanie, aby renderować formularz internetowy po otwarciu adresu URL zapisu zwrotnego. Można to zaimplementować poprzez dynamiczne generowanie formularza HTML w funkcji Lambda zaplecza w celu obsługi wprowadzania dodatkowych informacji. Jeśli Twoje obciążenie wymaga dużej liczby zapisów wstecznych, które wymagają większej przepustowości lub współbieżności, specjalnie zbudowany magazyn danych, taki jak Wersja zgodna z Amazon Aurora PostgreSQL może być lepszym wyborem. Aby uzyskać więcej informacji, patrz Wywoływanie funkcji AWS Lambda z klastra Aurora PostgreSQL DB. Te aktualizacje można następnie zsynchronizować z tabelami Amazon Redshift za pomocą zapytania sfederowane.
Wnioski
Ten post pokazał, jak używać QuickSight wraz z Lambda, API Gateway, Secrets Manager i Amazon Redshift do przechwytywania danych wejściowych użytkownika i bezpiecznej aktualizacji hurtowni danych Amazon Redshift bez opuszczania środowiska QuickSight BI. To rozwiązanie eliminuje potrzebę tworzenia zewnętrznej aplikacji lub interfejsu użytkownika do aktualizacji bazy danych lub operacji wstawiania, a także zmniejsza związane z tym koszty związane z rozwojem i konserwacją. Wywołanie API Gateway można również zabezpieczyć za pomocą klucza lub tokena, aby mieć pewność, że tylko wywołania pochodzące z QuickSight będą akceptowane przez API Gateway. Zostanie to omówione w kolejnych postach.
O autorach
Srikanth Baheti jest Specjalistycznym Światowym Głównym Architektem Rozwiązań dla Amazon QuickSight. Karierę rozpoczął jako konsultant i pracował dla wielu organizacji prywatnych i rządowych. Później pracował dla PerkinElmer Health and Sciences & eResearch Technology Inc, gdzie był odpowiedzialny za projektowanie i rozwijanie aplikacji internetowych o dużym natężeniu ruchu, wysoce skalowalnych i łatwych w utrzymaniu potoków danych dla platform raportowania korzystających z usług AWS i przetwarzania bezserwerowego.
Raji Sivasubramaniam jest starszym architektem rozwiązań w AWS, koncentrując się na Analytics. Raji specjalizuje się w projektowaniu kompleksowych rozwiązań do zarządzania danymi przedsiębiorstwa, analiz biznesowych i analiz dla firm z listy Fortune 500 i Fortune 100 na całym świecie. Ma dogłębne doświadczenie w zintegrowanych danych i analizach dotyczących opieki zdrowotnej z szeroką gamą zbiorów danych dotyczących opieki zdrowotnej, w tym rynkiem zarządzanym, kierowaniem do lekarzy i analizą pacjentów.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoAiStream. Analiza danych Web3. Wiedza wzmocniona. Dostęp tutaj.
- Wybijanie przyszłości w Adryenn Ashley. Dostęp tutaj.
- Kupuj i sprzedawaj akcje spółek PRE-IPO z PREIPO®. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/big-data/perform-secure-database-write-backs-with-amazon-quicksight/
- :ma
- :Jest
- :Gdzie
- $W GÓRĘ
- 100
- 11
- 13
- 22
- 500
- 7
- 8
- 9
- a
- zdolność
- Zdolny
- akceptacja
- zaakceptowany
- dostęp
- dostępny
- w poprzek
- Działania
- działania
- Dodatkowy
- Dodatkowe informacje
- do tego
- Korzyść
- Po
- Wszystkie kategorie
- dopuszczać
- wzdłuż
- wzdłuż
- już
- również
- alternatywny
- Amazonka
- Amazon QuickSight
- an
- analiza
- analityka
- w czasie rzeczywistym sprawiają,
- i
- każdy
- api
- Pszczoła
- Zastosowanie
- aplikacje
- Aplikuj
- Stosowanie
- podejście
- SĄ
- argument
- argumenty
- AS
- At
- przywiązany
- Ataki
- atrybuty
- jutrzenka
- Uwierzytelnianie
- dostępny
- unikany
- AWS
- AWS Lambda
- z powrotem
- Backend
- na podstawie
- BE
- bo
- BEST
- Najlepsze praktyki
- Ulepsz Swój
- gałęzie
- przeglądarka
- budować
- Budowanie
- biznes
- business intelligence
- by
- obliczony
- wezwanie
- Połączenia
- CAN
- możliwości
- zdobyć
- Kariera
- walizka
- pewien
- wyzwania
- ZOBACZ
- wybór
- klient
- Chmura
- kod
- Kolumna
- kolumny
- połączenie
- połączony
- byliśmy spójni, od początku
- Firmy
- sukcesy firma
- porównanie
- konkurencyjny
- kompletny
- obliczać
- computing
- Skontaktuj się
- Rozważać
- konsultant
- kontekst
- Koszty:
- mógłby
- pokryty
- Stwórz
- stworzony
- Tworzenie
- Obecnie
- klient
- Klientów
- tablica rozdzielcza
- dane
- zarządzanie danymi
- hurtownia danych
- Baza danych
- zbiory danych
- postanowiła
- Domyślnie
- wykazać
- Denial of Service
- projektowanie
- szczegółowe
- detale
- ustalona
- rozwijać
- rozwijanie
- oprogramowania
- Digest
- kierować
- nie
- dynamicznie
- e
- każdy
- Wcześniej
- łatwo
- łatwy w użyciu
- efekt
- bądź
- eliminuje
- osadzone
- pracowników
- umożliwiać
- szyfrowanie
- koniec końców
- Punkt końcowy
- wzmacniać
- cieszyć się
- zapewnić
- Enterprise
- Środowisko
- Eter (ETH)
- wydarzenie
- przykład
- Z wyjątkiem
- wyjątek
- Przede wszystkim system został opracowany
- istnieje
- doświadczenie
- rozciągać się
- zewnętrzny
- fałszywy
- szybciej
- Cecha
- Pobrano
- powieściowy
- pole
- Łąka
- Postać
- Firma
- i terminów, a
- skupienie
- następujący
- W razie zamówieenia projektu
- Nasz formularz
- Majątek
- od
- funkcjonować
- Funkcjonalność
- Funkcje
- dalej
- Bramka
- Generować
- wygenerowane
- generujący
- generacja
- otrzymać
- Globalne
- globalny biznes
- globus
- Goes
- Rząd
- Zielony
- Rozwój
- uchwyt
- zdarzyć
- haszysz
- zaszyfrowany
- mieszanie
- Have
- he
- Zdrowie
- opieki zdrowotnej
- tutaj
- Wysoki
- wyższy
- wysoko
- jego
- historia
- przytrzymaj
- gospodarz
- hostowane
- gospodarze
- W jaki sposób
- How To
- HTML
- http
- HTTPS
- IAM
- tożsamość
- if
- realizowane
- importować
- in
- informacje
- Inc
- obejmuje
- Włącznie z
- Beneficjant
- wskazany
- Informacja
- Innowacja
- wkład
- spostrzeżenia
- instrukcje
- zintegrowany
- integracja
- integracje
- Inteligencja
- interaktywne
- Interfejs
- wewnętrzny
- najnowszych
- Inwestuj
- przywołany
- inwokuje
- dotyczy
- IT
- JEGO
- samo
- podróż
- jpg
- json
- Klawisz
- Klawisze
- później
- nauka
- pozostawiając
- Biblioteka
- lubić
- Linia
- LINK
- mało
- miejscowy
- logika
- Popatrz
- wygląda jak
- poszukuje
- maszyna
- uczenie maszynowe
- utrzymać
- Utrzymywane w utrzymaniu
- konserwacja
- WYKONUJE
- zarządzane
- i konserwacjami
- kierownik
- zarządza
- ręcznie
- mapowanie
- rynek
- Mecz
- mechanizm
- wiadomość
- metoda
- może
- ML
- Moda
- zmodyfikowano
- moduł
- jeszcze
- większość
- wielokrotność
- musi
- O imieniu
- Potrzebować
- wymagania
- Nowości
- nowe rozwiązanie
- Następny
- Nie
- noty
- numer
- przedmiot
- of
- Oferty
- on
- tylko
- otwierany
- działanie
- operacje
- Opcje
- or
- organizacji
- Inne
- wydajność
- parametr
- parametry
- przechodzić
- minęło
- pacjent
- wykonać
- wykonuje
- lekarz
- Platforma
- Platformy
- plato
- Analiza danych Platona
- PlatoDane
- polityka
- Popularny
- zaludniony
- Post
- postgresql
- Wiadomości
- potencjał
- praktyki
- obecność
- zapobiec
- zapobiega
- Cennik
- wycena
- Główny
- prywatny
- profesjonalny
- zapewniać
- zapewnia
- że
- pełnomocnik
- Python
- podnieść
- Odebrane
- niedawny
- rekord
- dokumentacja
- zmniejsza
- związane z
- obsługi produkcji rolnej, która zastąpiła
- Raportowanie
- reprezentować
- zażądać
- wywołań
- wymagać
- wymagany
- Wymaga
- Zasób
- Zasoby
- odpowiedzialny
- REST
- Efekt
- powrót
- powrót
- powraca
- przeglądu
- recenzja
- Rola
- run
- bieganie
- działa
- taki sam
- skalowalny
- NAUKI
- druga
- Tajemnica
- Sekcja
- bezpieczne
- zabezpieczone
- bezpiecznie
- Zabezpiecza
- widzieć
- oddzielny
- Bezserwerowe
- usługa
- Usługi
- Sesja
- zestaw
- Share
- ona
- przesunięcie
- powinien
- pokazać
- pokazał
- pokazane
- Targi
- znak
- podobny
- upraszczać
- umiejętność
- rozwiązanie
- Rozwiązania
- Źródło
- wyspecjalizowanym
- specjalizuje się
- specyficzny
- stabilny
- rozpoczęty
- Zestawienie sprzedaży
- Rynek
- Ewolucja krok po kroku
- Cel
- sklep
- przechowywany
- sklep
- sznur
- styl
- uległość
- kolejny
- sukces
- udany
- taki
- wsparcie
- podpory
- stół
- kierowania
- Techniki
- Technologia
- szablon
- Szablony
- kilkadziesiąt
- że
- Połączenia
- ich
- następnie
- Te
- one
- to
- tysiące
- próg
- Przez
- wydajność
- czas
- znak czasu
- do
- żeton
- narzędzia
- tradycyjny
- ruch drogowy
- rozsierdzony
- prawdziwy
- próbować
- rodzaj
- Aktualizacja
- zaktualizowane
- Nowości
- URL
- posługiwać się
- używany
- Użytkownik
- Interfejs użytkownika
- Użytkownicy
- za pomocą
- uprawomocnienie
- wartość
- różnorodność
- wersja
- Zobacz i wysłuchaj
- widoczny
- wizualizacje
- chcieć
- chce
- Magazyn
- była
- Droga..
- we
- sieć
- Aplikacje internetowe
- Web-based
- jeśli chodzi o komunikację i motywację
- który
- szeroki
- Wikipedia
- będzie
- w
- w ciągu
- bez
- pracował
- workflow
- Siła robocza
- świat
- napisać
- ty
- Twój
- zefirnet