Jak firma Amp na Amazon wykorzystała dane do zwiększenia zaangażowania klientów, część 1: Budowa platformy do analizy danych PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Jak firma Amp na Amazon wykorzystała dane, aby zwiększyć zaangażowanie klientów, część 1: Budowa platformy do analizy danych

Wzmacniacz, nowa aplikacja radiowa na żywo od Amazon, to nowa odsłona radia oferującego programy audio na żywo wyselekcjonowane przez ludzi. Został zaprojektowany, aby zapewnić słuchaczom i twórcom bezproblemową obsługę klienta poprzez debiutanckie interaktywne audycje audio na żywo od Twoich ulubionych artystów, DJ-ów radiowych, podcasterów i przyjaciół.

Jednak jako nowy produkt w nowej przestrzeni dla Amazon, Amp potrzebował więcej odpowiednich danych, aby ułatwić proces podejmowania decyzji. Firma Amp poszukiwała skalowalnej platformy danych i analiz, która umożliwiłaby łatwy dostęp do danych i przeprowadzanie eksperymentów opartych na maszynach (ML) w celu transkrypcji audio na żywo, moderacji treści, inżynierii funkcji i osobistej usługi rekomendacji programów, a także do kontrolowania lub mierzenia wskaźników i wskaźników biznesowych.

Ten post jest pierwszym z dwuczęściowej serii. Część 1 pokazuje, w jaki sposób dane zostały zebrane i przetworzone za pomocą platformy danych i analityki oraz Część 2 pokazuje, w jaki sposób dane zostały wykorzystane do stworzenia rekomendacji pokazowych za pomocą Amazon Sage Maker, w pełni zarządzana usługa ML. Usługa spersonalizowanej listy rekomendacji programów wykazała 3% wzrost śledzonych wskaźników zaangażowania klientów (takich jak polubienie programu, śledzenie twórcy lub włączenie powiadomień o nadchodzących programach) od czasu jej uruchomienia w maju 2022 r.

Omówienie rozwiązania

Źródła danych dla Amp można ogólnie podzielić na strumieniowe (w czasie zbliżonym do rzeczywistego) lub wsadowe (punkt w czasie). Dane źródłowe są emitowane z systemów należących do Amp lub innych systemów Amazon. Dwa różne typy danych są następujące:

  • Przesyłanie strumieniowe danych – Ten rodzaj danych składa się głównie z obserwowanych, powiadomień (dotyczących znajomych użytkowników, ulubionych twórców lub programów), aktualizacji aktywności, interakcji z programami na żywo (połączenia, współprowadzący, ankiety, czat w aplikacji), w czasie rzeczywistym aktualizacje dotyczące aktywności pokazów na żywo (liczba odsłuchów na żywo, polubienia), metryki odtwarzania dźwięku na żywo i inne metryki strumienia kliknięć z aplikacji Amp. Interesariusze Amp potrzebują tych danych do obsługi procesów ML lub modeli predykcyjnych, narzędzi do moderowania treści oraz pulpitów nawigacyjnych produktów i programów (na przykład pokazy trendów). Strumieniowe przesyłanie danych umożliwia klientom Amp przeprowadzanie i mierzenie eksperymentów.
  • Dane partii – Dane te składają się głównie z danych katalogowych, metadanych pokazu lub twórcy oraz danych profilu użytkownika. Dane wsadowe umożliwiają bardziej precyzyjne raportowanie i analizy w porównaniu do czasu rzeczywistego.

Poniższy diagram ilustruje architekturę wysokiego poziomu.

Platformę danych i analiz Amp można podzielić na trzy systemy wysokiego poziomu:

  • Pozyskiwanie danych strumieniowych, przetwarzanie i transformacja strumieni oraz przechowywanie strumieni
  • Pozyskiwanie danych wsadowych, przetwarzanie i przekształcanie wsadowe oraz przechowywanie wsadowe
  • Business Intelligence (BI) i analityka

W kolejnych sekcjach szczegółowo omówimy każdy komponent.

Pozyskiwanie, przetwarzanie, transformacja i przechowywanie danych strumieniowych

Amp stworzył bezserwerowy potok strumieniowego pozyskiwania danych, który może korzystać z danych ze źródeł bez konieczności zarządzania infrastrukturą, jak pokazano na poniższym diagramie.

Jak firma Amp na Amazon wykorzystała dane do zwiększenia zaangażowania klientów, część 1: Budowa platformy do analizy danych PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Potok był w stanie pozyskać dane katalogu pokazów Amp (które programy są dostępne w Amp) i przekazać je do jeziora danych w dwóch różnych przypadkach użycia: jeden do analizy w czasie zbliżonym do rzeczywistego, a drugi do analizy wsadowej.

W ramach procesu przetwarzania zespół Amp ma Usługa Amazon Simple Queue (Amazon SQS) kolejka, która odbiera wiadomości z nadrzędnego źródła Usługa prostego powiadomienia Amazon (Amazon SNS) temat zawierający informacje o zmianach w programach w katalogu. Te zmiany mogą polegać na dodaniu nowych programów lub dostosowaniu do już istniejących, które zostały zaplanowane.

Gdy wiadomość zostanie odebrana przez kolejkę SQS, wyzwala AWS Lambda funkcja do wykonania wywołania API do usługi katalogu Amp. Funkcja Lambda pobiera żądane metadane spektaklu, filtruje metadane, a następnie wysyła metadane wyjściowe do Strumienie danych Amazon Kinesis. Wąż strażacki Amazon Kinesis Data odbiera rekordy ze strumienia danych. Kinesis Data Firehose następnie wywołuje dodatkową funkcję Lambda, aby wykonać transformację danych, która spłaszcza otrzymane rekordy JSON i zapisuje przekształcone rekordy w Usługa Amazon Simple Storage (Amazon S3) Data Lake do wykorzystania przez interesariuszy Amp.

Kinesis Data Firehose umożliwił buforowanie i zapisywanie danych w Amazon S3 co 60 sekund. Pomogło to zespołom Amp podejmować decyzje programowe w czasie zbliżonym do rzeczywistego, które miały wpływ na klientów zewnętrznych.

Potok przetwarzania strumieniowego obsługiwał następujące cele: wydajność, dostępność, skalowalność i elastyczność wysyłania danych do wielu dalszych aplikacji lub usług:

  • Strumienie danych Kinesis obsługują w razie potrzeby strumieniowe pozyskiwanie danych. Strumienie danych Kinesis wspierają te cele, umożliwiając zespołowi Amp szybkie pozyskiwanie danych do analizy przy minimalnym obciążeniu operacyjnym. Jako w pełni zarządzana usługa ograniczyła koszty operacyjne, a Amp był w stanie skalować zgodnie z potrzebami produktu.
  • Lambda umożliwiła zespołowi stworzenie lekkich funkcji do uruchamiania wywołań API i przeprowadzania transformacji danych.
  • Ponieważ Kinesis Data Firehose jest usługą zarządzaną, był w stanie obsłużyć wszystkie potrzeby związane ze skalowaniem, shardingiem i monitorowaniem danych przesyłanych strumieniowo bez żadnych dodatkowych podsłuchów dla zespołu.

Pozyskiwanie, przetwarzanie, przekształcanie i przechowywanie danych wsadowych

Amp utworzył przejściowy potok przetwarzania wsadowego (punkt w czasie) zdolny do pozyskiwania, przetwarzania i przekształcania oraz przechowywania danych, jak pokazano na poniższym diagramie.

Jak firma Amp na Amazon wykorzystała dane do zwiększenia zaangażowania klientów, część 1: Budowa platformy do analizy danych PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Ze względu na wsadowy charakter tych obciążeń i nieznanych ilości danych wdrożono podejście przejściowe wyodrębniania, przekształcania i ładowania (ETL) oraz wyodrębniania, ładowania i przekształcania (ELT). W ramach automatyzacji przepływu pracy wykorzystano Amazon SQS do uruchomienia funkcji Lambda. Następnie funkcja Lambda aktywowała przeszukiwacz AWS Glue, aby wywnioskować schemat i typy danych. Przeszukiwacz zapisał metadane schematu do Katalogu danych kleju AWS, zapewniając ujednolicony magazyn metadanych do udostępniania danych.

Zadania ETL i ELT musiały działać zgodnie z ustalonym harmonogramem lub przepływem pracy opartym na zdarzeniach. Aby sprostać tym potrzebom, Amp wykorzystał Przepływy pracy zarządzane przez Amazon dla Apache Airflow (Amazonka MWAA). Apache Airflow to platforma do zarządzania przepływem pracy oparta na języku Python o otwartym kodzie źródłowym. Amazon MWAA to w pełni zarządzana usługa, która automatycznie obsługuje skalowanie. Zapewnia sekwencjonowanie, obsługę błędów, logikę ponawiania i stan. Dzięki Amazon MWAA firma Amp mogła wykorzystać zalety Airflow do orkiestracji zadań bez konieczności zarządzania lub utrzymywania dedykowanych serwerów Airflow. Dodatkowo, używając Amazon MWAA, Amp był w stanie stworzyć repozytorium kodu i potok przepływu pracy przechowywane w Amazon S3, do którego Amazon MWAA miałby dostęp. Potok pozwolił inżynierom danych Amp na łatwe wdrażanie DAG Airflow lub skryptów PySpark w wielu środowiskach.

Użyty wzmacniacz Amazon EMR on Elastyczna usługa Amazon Kubernetes (Amazon EKS) do konfigurowania i zarządzania kontenerami do zadań przetwarzania i transformacji danych. Ze względu na wyjątkowy charakter usługi Amp początkowe oczekiwane ilości danych, które miałyby zostać przetworzone, były stosunkowo nieznane. Aby zapewnić elastyczność w miarę rozwoju usługi, zespół zdecydował się przejść z Amazon EMR na EKS, aby wyeliminować wszelkie niepotrzebne podsłuchy operacyjne wymagane do ładowania i skalowania Amazon EMR do przetwarzania danych. Takie podejście pozwoliło im uruchomić przejściowe hybrydowe klastry EMR wspierane przez mieszankę AWS-Fargate i Elastyczna chmura obliczeniowa Amazon (Amazon EC2), w których wszystkie zadania systemowe i obciążenia zostały odciążone do Fargate, podczas gdy Amazon EC2 obsługiwał przetwarzanie i transformację Apache Spark. Zapewniło to elastyczność posiadania klastra z uruchomionym jednym węzłem, podczas gdy automatyczne skalowanie Amazon EKS dynamicznie tworzyło i uruchamiało wszelkie dodatkowe węzły EC2, które były wymagane do zadania. Po zakończeniu zadania były one automatycznie usuwane przez automatyczne skalowanie klastra. Ten wzorzec wyeliminował potrzebę zarządzania przez zespół dowolnymi akcjami ładowania początkowego klastra lub skalowaniem wymaganym do reagowania na zmieniające się obciążenia.

Amazon S3 był używany jako centralne jezioro danych, a dane były przechowywane w formacie Apache Parquet (Parquet). Parquet to format kolumnowy, który przyspiesza pobieranie danych i zapewnia wydajną kompresję danych. Amazon S3 zapewnił Ampułowi elastyczność, skalowalność i bezpieczeństwo. Dzięki Amazon S3 zespół Amp był w stanie scentralizować przechowywanie danych w jednym miejscu i sfederować dostęp do danych praktycznie w ramach dowolnej usługi lub narzędzia w ramach AWS lub poza nim. Jezioro danych zostało podzielone na dwa segmenty S3: jeden do pozyskiwania nieprzetworzonych danych, a drugi do przetwarzania danych wyjściowych. Amazon EMR przeprowadził transformację z surowych danych do przekształconych danych. Z Amazon S3 jako centralnym jeziorem danych, Amp mógł bezpiecznie ujawniać i udostępniać dane innym zespołom w Amp i Amazon.

Aby uprościć definiowanie danych, zapewnianie dostępu do tabel oraz dodawanie i usuwanie tabel, użyli robotów indeksujących AWS Glue i AWS Glue Data Catalog. Ponieważ Amp to nowa usługa i stale się rozwija, zespół potrzebował sposobu na łatwe definiowanie, uzyskiwanie dostępu i zarządzanie tabelami w Data Lake. Przeszukiwacze zajmowały się definicją danych (w tym zmianami w schemacie) oraz dodawaniem i usuwaniem tabel, podczas gdy Data Catalog służyła jako ujednolicona składnica metadanych.

Business Intelligence i analityka

Poniższy diagram ilustruje architekturę komponentu BI i analityki.

Jak firma Amp na Amazon wykorzystała dane do zwiększenia zaangażowania klientów, część 1: Budowa platformy do analizy danych PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Amp wybrał przechowywanie danych w Data Lake S3, a nie w hurtowni danych. Umożliwiło im to dostęp do niego w ujednolicony sposób za pośrednictwem Katalogu danych kleju AWS i zapewniło większą elastyczność konsumentom danych. Zaowocowało to szybszym dostępem do danych w różnych usługach lub narzędziach. Dzięki przechowywaniu danych w Amazon S3 obniżyło to również koszty infrastruktury hurtowni danych, ponieważ koszty są funkcją typu obliczeń i ilości przechowywanych danych.

Połączenia Amazonka Przesunięcie ku czerwieni Typ węzła RA3 został użyty jako warstwa obliczeniowa, aby umożliwić zainteresowanym stronom wysyłanie zapytań do danych przechowywanych w Amazon S3. Węzły Amazon Redshift RA3 oddzielają pamięć masową od mocy obliczeniowej i są zaprojektowane z myślą o wzorcu dostępu za pośrednictwem Katalogu danych kleju AWS. Węzły RA3 wprowadzają usługę Amazon Redshift Managed Storage, która jest wspierana przez Amazon S3. Połączenie tych funkcji umożliwiło firmie Amp dobranie odpowiedniego rozmiaru klastrów i zapewnienie klientom lepszej wydajności zapytań przy jednoczesnej minimalizacji kosztów.

Konfiguracja Amazon Redshift została zautomatyzowana za pomocą funkcji Lambda, która łączyła się z danym klastrem i uruchamiała sparametryzowane instrukcje SQL. Instrukcje SQL zawierały logikę wdrażania schematów, grup użytkowników i użytkowników, podczas gdy Menedżer tajemnic AWS służył do automatycznego generowania, przechowywania i rotacji haseł użytkowników Amazon Redshift. Podstawowe zmienne konfiguracyjne były przechowywane w Amazon DynamoDB. Funkcja Lambda pobrała zmienne i zażądała tymczasowych poświadczeń Amazon Redshift w celu przeprowadzenia konfiguracji. Proces ten umożliwił zespołowi Amp skonfigurowanie klastrów Amazon Redshift w spójny sposób.

Wyniki biznesowe

Amp był w stanie osiągnąć następujące wyniki biznesowe:

  • Raportowanie biznesowe – Standardowe raportowanie wymagane do prowadzenia działalności, takie jak codzienne raporty flash, mechanizmy zbiorczego przeglądu biznesowego lub aktualizacje projektów i programów.
  • Raportowanie produktów – Specjalne raportowanie wymagane, aby umożliwić kontrolę lub pomiar kluczowych wskaźników wydajności i wskaźników produktu. Obejmowały one raporty wizualne za pośrednictwem pulpitów nawigacyjnych, takie jak skuteczność promocji marketingowych, wskaźniki zaangażowania w aplikację i pokazy trendów.
  • Eksperymenty z ML – Umożliwiono zespołom Amazona wykorzystanie tych danych do wspierania eksperymentów lub generowania prognoz i rekomendacji. Na przykład eksperymenty z ML, takie jak spersonalizowana lista rekomendacji programów, kategoryzacja programów i moderowanie treści, pomogły w utrzymaniu użytkowników Amp.

Najważniejsze korzyści

Wdrażając skalowalną, ekonomiczną architekturę, Amp był w stanie osiągnąć:

  • Ograniczona złożoność operacyjna – Zbudowali elastyczny system, który wykorzystywał usługi zarządzane AWS wszędzie tam, gdzie było to możliwe.
  • Używaj języków danych – Amp był w stanie obsługiwać dwa najpopularniejsze języki manipulacji danymi, Python i SQL, w celu wykonywania operacji na platformie, przeprowadzania eksperymentów ML i generowania analiz. Dzięki tej obsłudze programiści Amp mogli używać języków, które znali.
  • Włącz eksperymenty i pomiary – Amp umożliwił programistom szybkie generowanie zestawów danych potrzebnych do prowadzenia eksperymentów i mierzenia wyników. Pomaga to zoptymalizować wrażenia klientów Amp.
  • Buduj, by się uczyć, ale projektuj, by skalować – Amp to nowy produkt, który znajduje swój odpowiednik na rynku i był w stanie skupić swoją początkową energię na tworzeniu wystarczającej liczby funkcji, aby uzyskać informacje zwrotne. Umożliwiło im to skręcanie w kierunku odpowiedniego dopasowania do rynku produktów przy każdym wprowadzeniu na rynek. Byli w stanie budować stopniowo, ale planować długoterminowo.

Wnioski

W tym poście widzieliśmy, jak Amp stworzył swoją platformę do analizy danych, wykorzystując dane behawioralne użytkowników ze źródeł danych strumieniowych i wsadowych. Kluczowymi czynnikami, które wpłynęły na wdrożenie, była potrzeba zapewnienia elastycznej, skalowalnej, ekonomicznej i wydajnej platformy do analizy danych. Dokonano wyborów projektowych, oceniając różne usługi AWS.

Część 2 z tej serii pokazuje, w jaki sposób wykorzystaliśmy te dane i stworzyliśmy spersonalizowaną listę rekomendacji programów za pomocą programu SageMaker.

W kolejnych krokach zalecamy dokładne zapoznanie się z każdym etapem systemu potoku danych i dokonanie wyborów projektowych, które byłyby opłacalne i skalowalne dla Twoich potrzeb. Aby uzyskać więcej informacji, możesz również sprawdzić inne przypadki użycia przez klientów w Blog AWS Analytics.

Jeśli masz opinię na temat tego posta, prześlij ją w sekcji komentarzy.


O autorach

Jak firma Amp na Amazon wykorzystała dane do zwiększenia zaangażowania klientów, część 1: Budowa platformy do analizy danych PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Tulipan Gupta jest architektem rozwiązań w Amazon Web Services. Współpracuje z Amazon, projektując, budując i wdrażając rozwiązania technologiczne w AWS. Pomaga klientom we wdrażaniu najlepszych praktyk podczas wdrażania rozwiązania w AWS i jest entuzjastką Analytics i ML. W wolnym czasie lubi pływać, wędrować i grać w gry planszowe.

Jak firma Amp na Amazon wykorzystała dane do zwiększenia zaangażowania klientów, część 1: Budowa platformy do analizy danych PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Dawid Kuo jest architektem rozwiązań w Amazon Web Services. Współpracuje z klientami AWS, projektując, budując i wdrażając rozwiązania technologiczne na AWS. Współpracuje z klientami Media and Entertainment i interesuje się technologiami uczenia maszynowego. W wolnym czasie zastanawia się, co powinien zrobić ze swoim wolnym czasem.

Jak firma Amp na Amazon wykorzystała dane do zwiększenia zaangażowania klientów, część 1: Budowa platformy do analizy danych PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Manolyę McCormick jest starszym inżynierem ds. rozwoju oprogramowania dla Amp na Amazon. Projektuje i buduje systemy rozproszone z wykorzystaniem AWS do obsługi aplikacji skierowanych do klienta. W wolnym czasie lubi czytać i gotować nowe przepisy.

Jak firma Amp na Amazon wykorzystała dane do zwiększenia zaangażowania klientów, część 1: Budowa platformy do analizy danych PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Jeffa Christophersena jest starszym inżynierem danych w firmie Amp na Amazon. Zajmuje się projektowaniem, tworzeniem i wdrażaniem rozwiązań Big Data w AWS, które dostarczają przydatnych analiz. Pomaga zespołom wewnętrznym we wdrażaniu skalowalnych i zautomatyzowanych rozwiązań, jest entuzjastą analityki i Big Data. W wolnym czasie, kiedy nie jeździ na nartach, można go spotkać na rowerze górskim.

Znak czasu:

Więcej z Uczenie maszynowe AWS