W tym przykładowym scenariuszu opisano potok masowego pozyskiwania i analizy dokumentów pochodzących z publicznych kanałów informacyjnych RSS niemal w czasie rzeczywistym. Usługa Azure Cognitive Services udostępnia przydatne szczegółowe informacje na podstawie tłumaczenia tekstu, rozpoznawania twarzy i wykrywania tonacji. W szczególności kroki przetwarzania obrazów i języka naturalnego są połączone razem w potoku obsługi komunikatów na podstawie Azure Service Bus. Dane wyjściowe potoku to powiadomienie zawierające szczegółowe informacje lub analizę.
Architektura
Pobierz plik programu Visio tej architektury.
Przepływ danych
Dane przepływa przez rozwiązanie w następujący sposób:
Kanał informacyjny wiadomości RSS działa jako generator, który uzyskuje dane z dokumentu lub artykułu. Na przykład w przypadku artykułu dane zazwyczaj zawierają tytuł, podsumowanie oryginalnej treści elementu wiadomości, a czasami obrazy.
Generator lub proces pozyskiwania wstawia artykuł i wszystkie skojarzone obrazy do kolekcji usługi Azure Cosmos DB.
Powiadomienie wyzwala funkcję pozyskiwania w Azure Functions, która przechowuje tekst artykułu w usłudze Azure Cosmos DB i obrazy artykułów (jeśli istnieją) w Azure Blob Storage. Następnie artykuł zostanie przekazany do następnej kolejki.
Funkcja translate jest wyzwalana przez zdarzenie kolejki. Używa interfejsu API tłumaczenia tekstu w usługach Azure Cognitive Services do wykrywania języka, tłumaczenia w razie potrzeby i zbierania tonacji, kluczowych fraz i jednostek z treści i tytułu. Następnie przekazuje artykuł do następnej kolejki.
Funkcja detect jest wyzwalana z artykułu w kolejce. Używa usługi przetwarzanie obrazów do wykrywania obiektów, punktów orientacyjnych i napisanych słów na skojarzonym obrazie, a następnie przekazuje artykuł do następnej kolejki.
Funkcja rozpoznawania twarzy jest wyzwalana z artykułu w kolejce. Używa ona usługi interfejsu API rozpoznawania twarzy platformy Azure do wykrywania twarzy dla płci i wieku skojarzonego obrazu, a następnie przekazuje artykuł do następnej kolejki.
Po zakończeniu wszystkich funkcji funkcja notify zostanie wyzwolona. Ładuje przetworzone rekordy dla artykułu i skanuje je pod kątem żądanych wyników. W przypadku znalezienia zawartość jest oflagowana, a powiadomienie jest wysyłane do wybranego systemu.
W każdym kroku przetwarzania funkcja zapisuje wyniki w usłudze Azure Cosmos DB. Ostatecznie dane mogą być używane zgodnie z potrzebami. Na przykład można go użyć do ulepszania procesów biznesowych, lokalizowania nowych klientów lub identyfikowania problemów z zadowoleniem klientów.
Składniki
Poniższa lista składników platformy Azure jest używana w tym przykładzie.
Usługa Azure Storage służy do przechowywania nieprzetworzonych plików obrazów i wideo skojarzonych z artykułem. Dodatkowe konto magazynu jest tworzone przy użyciu Azure App Service i służy do hostowania kodu i dzienników funkcji platformy Azure.
Usługa Azure Cosmos DB przechowuje informacje o tekście artykułu, obrazie i śledzeniu wideo. Wyniki kroków usług Cognitive Services są również przechowywane tutaj.
Azure Functions wykonuje kod funkcji używany do odpowiadania na komunikaty w kolejce i przekształcania zawartości przychodzącej. Azure App Service hostuje kod funkcji i przetwarza rekordy szeregowo. Ten scenariusz obejmuje pięć funkcji: pozyskiwanie, przekształcanie, wykrywanie obiektów, rozpoznawanie twarzy i powiadamianie.
Azure Service Bus hostuje kolejki Azure Service Bus używane przez funkcje.
Usługi Azure Cognitive Services udostępniają sztuczną inteligencję dla potoku na podstawie implementacji usługi przetwarzanie obrazów, interfejsu API rozpoznawania twarzy i usługi tłumaczenia maszynowego tłumaczenia tekstu.
aplikacja systemu Azure Insights udostępnia analizę, która ułatwia diagnozowanie problemów i zrozumienie funkcjonalności aplikacji.
Alternatywy
Zamiast używać wzorca opartego na powiadomieniach w kolejce i Azure Functions, możesz użyć tematu i wzorca subskrypcji dla tego przepływu danych. Azure Service Bus Tematy mogą służyć do przetwarzania różnych części artykułu równolegle, w przeciwieństwie do przetwarzania seryjnego wykonanego w tym przykładzie. Aby uzyskać więcej informacji, porównaj kolejki i tematy.
Za pomocą usługi Azure Logic Apps zaimplementuj kod funkcji i zaimplementuj blokowanie na poziomie rekordu, takie jak podane przez algorytm Redlock (który jest wymagany do przetwarzania równoległego, dopóki usługa Azure Cosmos DB nie obsługuje aktualizacji częściowych dokumentów). Aby uzyskać więcej informacji, porównaj funkcje i usługę Logic Apps.
Zaimplementuj tę architekturę przy użyciu dostosowanych składników sztucznej inteligencji, a nie istniejących usług platformy Azure. Na przykład rozszerz potok przy użyciu dostosowanego modelu, który wykrywa określone osoby na obrazie, w przeciwieństwie do ogólnej liczby osób, płci i danych wieku zebranych w tym przykładzie. Aby używać dostosowanych modeli uczenia maszynowego lub sztucznej inteligencji z tą architekturą, utwórz modele jako punkty końcowe RESTful, aby mogły być wywoływane z Azure Functions.
Użyj innego mechanizmu wejściowego zamiast kanałów informacyjnych RSS. Użyj wielu generatorów lub procesów pozyskiwania do źródła danych usługi Azure Cosmos DB i usługi Azure Storage.
Azure Cognitive Search to funkcja sztucznej inteligencji w usłudze Azure Search, która może również służyć do wyodrębniania tekstu z obrazów, obiektów blob i innych źródeł danych bez struktury.
Szczegóły scenariusza
Ten scenariusz zawiera przykłady kanałów informacyjnych w języku angielskim, rosyjskim i niemieckim , ale można je łatwo rozszerzyć na inne kanały informacyjne RSS i inne języki. W celu ułatwienia wdrażania zbieranie danych, przetwarzanie i analiza są oparte całkowicie na usługach platformy Azure.
Potencjalne przypadki użycia
Chociaż ten scenariusz jest oparty na przetwarzaniu kanałów informacyjnych RSS, jest on odpowiedni dla dowolnego dokumentu, witryny internetowej lub artykułu, w którym należy:
- Tłumaczenie tekstu na wybrany język.
- Znajdź kluczowe frazy, jednostki i tonację użytkownika w zawartości cyfrowej.
- Wykrywanie obiektów, tekstu i punktów orientacyjnych na obrazach skojarzonych z artykułem cyfrowym.
- Wykrywanie osób według płci i wieku na obrazach skojarzonych z treścią cyfrową.
Zagadnienia do rozważenia
Te zagadnienia implementują filary platformy Azure Well-Architected Framework, która jest zestawem podstawowych zestawów, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.
Dla uproszczenia ten przykładowy scenariusz używa tylko kilku dostępnych interfejsów API i usług z usług Azure Cognitive Services. Na przykład tekst na obrazach można analizować przy użyciu interfejsu API analiza tekstu. Język docelowy w tym scenariuszu jest zakładany jako angielski, ale można zmienić dane wejściowe na dowolny obsługiwany język.
Skalowalność
Azure Functions skalowanie zależy od używanego planu hostingu. W tym rozwiązaniu przyjęto założenie, że plan zużycia, w którym moc obliczeniowa jest automatycznie przydzielana do funkcji w razie potrzeby. Płacisz tylko wtedy, gdy funkcje są uruchomione. Inną opcją jest użycie planu dedykowanego, który umożliwia skalowanie między warstwami w celu przydzielenia innej ilości zasobów.
W usłudze Azure Cosmos DB kluczem jest równomierne rozłożenie obciążenia między wystarczająco dużą liczbę kluczy partycji. Nie ma limitu całkowitej ilości danych, które kontener może przechowywać lub do całkowitej przepływności , którą kontener może obsługiwać.
Zarządzanie i rejestrowanie
To rozwiązanie używa usługi Application Insights do zbierania informacji o wydajności i rejestrowaniu. Wystąpienie usługi Application Insights jest tworzone przy użyciu wdrożenia w tej samej grupie zasobów co inne usługi potrzebne do tego wdrożenia.
Aby wyświetlić dzienniki wygenerowane przez rozwiązanie:
Przejdź do Azure Portal i przejdź do grupy zasobów utworzonej dla wdrożenia.
Wybierz wystąpienie usługi Application Insights .
W sekcji Application Insights przejdź do pozycji Zbadaj\Wyszukaj i wyszukaj dane.
Zabezpieczenia
Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.
Usługa Azure Cosmos DB używa zabezpieczonego połączenia i sygnatury dostępu współdzielonego za pośrednictwem zestawu SDK języka C# dostarczonego przez firmę Microsoft. Nie ma innych powierzchni zewnętrznych. Dowiedz się więcej o najlepszych rozwiązaniach dotyczących zabezpieczeń dla usługi Azure Cosmos DB.
Optymalizacja kosztów
Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.
Usługa Azure Cosmos DB jest zaawansowana, ale wiąże się z największymi kosztami w tym wdrożeniu. Możesz użyć innego rozwiązania magazynu, refaktoryzując podany kod Azure Functions.
Ceny Azure Functions różnią się w zależności od planu, w zależności od planu, w nim uruchomiony.
Wdrażanie tego scenariusza
Uwaga
Musisz mieć istniejące konto platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Cały kod dla tego scenariusza jest dostępny w repozytorium GitHub . To repozytorium zawiera kod źródłowy używany do kompilowania aplikacji generatora, która karmi potok na potrzeby tego pokazu.
Następne kroki
- Wybieranie analitycznego magazynu danych na platformie Azure
- Wybieranie technologii analizy danych na platformie Azure
- Wybieranie technologii magazynu danych big data na platformie Azure
- Wprowadzenie do usługi Azure Blob Storage
- Azure Cosmos DB — Zapraszamy!
- Wprowadzenie do usługi Azure Functions
Powiązane zasoby
Dodatkowe architektury analityczne:
- Zautomatyzowana analiza biznesowa przedsiębiorstwa
- Kompleksowa analiza z Azure Synapse
- Magazynowanie i analiza danych
- Masowe pozyskiwanie i analiza kanałów aktualności na platformie Azure
- Przetwarzanie strumieni za pomocą usługi Azure Databricks
- Przetwarzanie strumieni za pomocą usługi Azure Stream Analytics