Pozyskiwanie danych z usługi Event Hubs do usługi Azure Synapse Data Explorer
Usługa Azure Synapse Data Explorer to szybka i wysoce skalowalna usługa eksploracji danych na potrzeby danych dzienników i danych telemetrycznych. Usługa Azure Synapse Data Explorer oferuje pozyskiwanie danych (ładowanie danych) z usług Event Hubs, IoT Hubs i obiektów blob zapisanych w kontenerach obiektów blob.
Usługa Azure Synapse Data Explorer oferuje pozyskiwanie (ładowanie danych) z usługi Event Hubs, platformę przesyłania strumieniowego danych big data i usługę pozyskiwania zdarzeń. Usługa Event Hubs może przetwarzać miliony zdarzeń na sekundę niemal w czasie rzeczywistym. W tym artykule utworzysz usługę Event Hubs, połączysz się z nią z poziomu usługi Azure Synapse Data Explorer i zobaczysz przepływ danych przez system.
Wymagania wstępne
Subskrypcja platformy Azure. Utwórz bezpłatne konto platformy Azure.
Tworzenie puli eksploratora danych przy użyciu programu Synapse Studio lub witryny Azure Portal
Utwórz bazę danych eksploratora danych.
W programie Synapse Studio w okienku po lewej stronie wybierz pozycję Dane.
Wybierz + pozycję (Dodaj nowy zasób) >pulę Eksploratora danych i użyj następujących informacji:
Ustawienie Sugerowana wartość opis Nazwa puli contosodataexplorer Nazwa puli Eksploratora danych do użycia Nazwisko TestDatabase Nazwa bazy danych musi być unikatowa w obrębie klastra. Domyślny okres przechowywania 365 Przedział czasu (w dniach), w którym gwarantowana jest dostępność danych dla zapytania. Przedział czasu jest mierzony od momentu pozyskania danych. Domyślny okres pamięci podręcznej 31 Przedział czasu (w dniach), w którym często używane w zapytaniach dane mają być dostępne na dysku SSD lub w pamięci RAM zamiast w magazynie długoterminowym. Wybierz pozycję Utwórz, aby utworzyć bazę danych. Tworzenie zazwyczaj zajmuje mniej niż minutę.
Tworzenie tabeli docelowej, do której usługa Event Hubs będzie wysyłać dane
W programie Synapse Studio w okienku po lewej stronie wybierz pozycję Opracuj.
W obszarze Skrypty KQL wybierz + skrypt KQL (Dodaj nowy zasób). > W okienku po prawej stronie możesz nazwać skrypt.
W menu Połącz z wybierz pozycję contosodataexplorer.
W menu Użyj bazy danych wybierz pozycję TestDatabase.
Wklej następujące polecenie i wybierz pozycję Uruchom , aby utworzyć tabelę.
.create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
Napiwek
Sprawdź, czy tabela została pomyślnie utworzona. W okienku po lewej stronie wybierz pozycję Dane, wybierz menu contosodataexplorer więcej, a następnie wybierz pozycję Odśwież. W obszarze contosodataexplorer rozwiń węzeł Tables (Tabele ) i upewnij się, że tabela TestTable znajduje się na liście.
Skopiuj poniższe polecenie w oknie, a następnie wybierz pozycję Uruchom, aby zamapować przychodzące dane w formacie JSON na nazwy kolumn i typy danych tabeli (TestTable).
.create table TestTable ingestion json mapping 'TestMapping' '[{"column":"TimeStamp", "Properties": {"Path": "$.timeStamp"}},{"column":"Name", "Properties": {"Path":"$.name"}} ,{"column":"Metric", "Properties": {"Path":"$.metric"}}, {"column":"Source", "Properties": {"Path":"$.source"}}]'
Zalecamy użycie tożsamości zarządzanej przypisanej przez użytkownika lub przypisanej przez system tożsamości zarządzanej dla połączenia danych (opcjonalnie).
Przykładowa aplikacja, która generuje dane i wysyła je do centrum zdarzeń. Pobierz przykładową aplikację w systemie.
Program Visual Studio 2019 do uruchomienia przykładowej aplikacji.
Zaloguj się do witryny Azure Portal.
Zaloguj się w witrynie Azure Portal.
Tworzenie centrum zdarzeń
Utwórz centrum zdarzeń przy użyciu szablonu usługi Azure Resource Manager w witrynie Azure Portal.
Aby utworzyć centrum zdarzeń, użyj poniższego przycisku w celu rozpoczęcia wdrażania. Kliknij prawym przyciskiem myszy i wybierz pozycję Utwórz w nowym oknie, aby wykonać pozostałe kroki w tym artykule.
Przycisk Wdróż na platformie Azure powoduje przejście do witryny Azure Portal.
Wybierz subskrypcję, w której chcesz utworzyć centrum zdarzeń, i utwórz grupę zasobów o nazwie test-hub-rg.
Wypełnij formularz, używając poniższych informacji.
W przypadku wszystkich ustawień, które nie są wymienione w poniższej tabeli, użyj ustawień domyślnych.
Ustawienie Sugerowana wartość Opis pola Subskrypcja Twoja subskrypcja Wybierz subskrypcję platformy Azure, której chcesz użyć dla usługi Event Hubs. Grupa zasobów test-hub-rg Tworzenie nowej grupy zasobów Lokalizacja Zachodnie stany USA Wybierz pozycję Zachodnie stany USA dla tego artykułu. W przypadku systemu produkcyjnego wybierz region, który najlepiej odpowiada Twoim potrzebom. Utwórz przestrzeń nazw usługi Event Hubs w tej samej lokalizacji co klaster usługi Azure Synapse Data Explorer, aby uzyskać najlepszą wydajność (najważniejsze w przypadku przestrzeni nazw usługi Event Hubs o wysokiej przepływności). Nazwa przestrzeni nazw Unikatowa nazwa przestrzeni nazw Wybierz unikatową nazwę, która identyfikuje Twoją przestrzeń nazw. Na przykład mytestnamespace. Do podanej nazwy jest dołączana nazwa domeny servicebus.windows.net. Nazwa może zawierać tylko litery, cyfry i łączniki. Nazwa musi zaczynać się literą i kończyć literą lub cyfrą. Nazwa musi mieć długość od 6 do 50 znaków. Nazwa usługi Event Hubs test-hub Usługa Event Hubs znajduje się w przestrzeni nazw, która zapewnia unikatowy kontener określania zakresu. Nazwa usługi Event Hubs musi być unikatowa w przestrzeni nazw. Nazwa grupy konsumentów test-group Dzięki grupom konsumentów każda z wielu aplikacji korzystających z danych może mieć osobny widok strumienia zdarzeń. Wybierz pozycję Przejrzyj i utwórz.
Przejrzyj podsumowanie utworzonych zasobów. Wybierz pozycję Utwórz, co potwierdza, że tworzysz zasoby w ramach subskrypcji.
Wybierz pozycję Powiadomienia na pasku narzędzi, aby monitorować proces aprowizacji. Pomyślne zakończenie wdrożenia może zająć kilka minut, ale możesz teraz przejść do następnego kroku.
Zagadnienia dotyczące uwierzytelniania
W zależności od typu tożsamości do uwierzytelniania w usłudze Event Hubs może być konieczne użycie innych konfiguracji.
Jeśli uwierzytelniasz się w usłudze Event Hubs przy użyciu tożsamości zarządzanej przypisanej przez użytkownika, przejdź do sieci usługi Event Hubs>, a następnie w obszarze Zezwalaj na dostęp wybierz pozycję Wszystkie sieci i zapisz zmiany.
Jeśli uwierzytelniasz się w usłudze Event Hubs przy użyciu przypisanej przez system tożsamości zarządzanej, przejdź do sieci usługi Event Hubs>, a następnie zezwól na dostęp ze wszystkich sieci lub w obszarze Zezwalaj na dostęp wybierz pozycję Wybrane sieci, wybierz pozycję Zezwalaj zaufanym usługi firmy Microsoft na obejście tej zapory i zapisz zmiany.
Nawiązywanie połączenia z usługą Event Hubs
Teraz połączysz się z usługą Event Hubs z puli eksploratora danych. Gdy to połączenie zostanie nawiązane, dane przesyłane do strumieni usługi Event Hubs do tabeli testowej utworzonej wcześniej w tym artykule.
Wybierz pozycję Powiadomienia na pasku narzędzi, aby sprawdzić, czy wdrożenie usługi Event Hubs zakończyło się pomyślnie.
W utworzonej puli Eksploratora danych wybierz pozycję Bazy danych>TestDatabase.
Wybierz pozycję Połączenia danych i Dodaj połączenie danych.
Tworzenie połączenia danych (wersja zapoznawcza)
Wypełnij formularz następującymi informacjami, a następnie wybierz pozycję Utwórz.
Ustawienie | Sugerowana wartość | Opis pola |
---|---|---|
Nazwa połączenia danych | test-hub-connection | Nazwa połączenia, które chcesz utworzyć w usłudze Azure Synapse Data Explorer. |
Subskrypcja | Identyfikator subskrypcji, w której znajduje się zasób usługi Event Hubs. To pole jest wypełniane automatycznie. | |
Przestrzeń nazw usługi Event Hubs | Unikatowa nazwa przestrzeni nazw | Wybrana wcześniej nazwa, która identyfikuje Twoją przestrzeń nazw. |
Event Hubs | test-hub | Utworzone usługi Event Hubs. |
Grupa konsumentów | test-group | Grupa odbiorców zdefiniowana w utworzonym usłudze Event Hubs. |
Właściwości systemu zdarzeń | Wybieranie odpowiednich właściwości | Właściwości systemu usługi Event Hubs. Jeśli istnieje wiele rekordów na komunikat zdarzenia, właściwości systemu zostaną dodane do pierwszego rekordu. Podczas dodawania właściwości systemu utwórz lub zaktualizuj schemat tabeli i mapowanie , aby uwzględnić wybrane właściwości. |
Kompresja | Brak | Typ kompresji ładunku komunikatów usługi Event Hubs. Obsługiwane typy kompresji: Brak, Gzip. |
Tożsamość zarządzana | Przypisane przez system | Tożsamość zarządzana używana przez klaster usługi Data Explorer na potrzeby dostępu do odczytu z usługi Event Hubs. Uwaga: Po utworzeniu połączenia danych: - Tożsamości przypisane przez system są tworzone automatycznie, jeśli nie istnieją — Tożsamość zarządzana jest automatycznie przypisywana do roli odbiornika danych usługi Azure Event Hubs i jest dodawana do klastra usługi Data Explorer. Zalecamy sprawdzenie, czy rola została przypisana i czy tożsamość została dodana do klastra. |
Tabela docelowa
Istnieją dwie opcje routingu pozyskanych danych: statyczne i dynamiczne. W tym artykule używasz routingu statycznego, w którym określasz nazwę tabeli, format danych i mapowanie jako wartości domyślne. Jeśli komunikat usługi Event Hubs zawiera informacje dotyczące routingu danych, te informacje dotyczące routingu zastąpią ustawienia domyślne.
Wypełnij następujące ustawienia routingu:
Uwaga
- Nie musisz określać wszystkich domyślnych ustawień routingu. Ustawienia częściowe są również akceptowane.
- Tylko zdarzenia umieszczone w kolejce po utworzeniu połączenia danych są pozyskiwane.
Wybierz pozycję Utwórz.
Mapowanie właściwości systemu zdarzeń
Uwaga
- Właściwości systemu są obsługiwane w
json
formatach tabelarycznych (csv
tsv
itp.) i nie są obsługiwane w przypadku skompresowanych danych. W przypadku korzystania z nieobsługiwanego formatu dane będą nadal pozyskiwane, ale właściwości zostaną zignorowane. - W przypadku danych tabelarycznych właściwości systemu są obsługiwane tylko w przypadku komunikatów zdarzeń z pojedynczym rekordem.
- W przypadku danych JSON właściwości systemu są również obsługiwane w przypadku komunikatów zdarzeń z wieloma rekordami. W takich przypadkach właściwości systemu są dodawane tylko do pierwszego rekordu komunikatu zdarzenia.
- W przypadku
csv
mapowania właściwości są dodawane na początku rekordu w kolejności wymienionej w tabeli właściwości systemu. - W przypadku
json
mapowania właściwości są dodawane zgodnie z nazwami właściwości w tabeli Właściwości systemu.
W przypadku wybrania właściwości systemu zdarzeń w sekcji Źródło danych tabeli należy uwzględnić właściwości systemowe w schemacie tabeli i mapowaniu.
Kopiowanie parametrów połączenia
Po uruchomieniu przykładowej aplikacji wymienionej w sekcji Wymagania wstępne potrzebne są parametry połączenia dla przestrzeni nazw usługi Event Hubs.
W obszarze utworzonej przestrzeni nazw usługi Event Hubs wybierz pozycję Zasady dostępu współdzielonego, a następnie pozycję RootManageSharedAccessKey.
Skopiuj zawartość pola Parametry połączenia — klucz podstawowy. Wkleisz ją w następnej sekcji.
Generowanie danych przykładowych
Użyj pobranej przykładowej aplikacji do wygenerowania danych.
Ostrzeżenie
W tym przykładzie użyto uwierzytelniania parametry połączenia w celu nawiązania połączenia z usługą Event Hubs w celu uproszczenia przykładu. Jednak kodowanie parametry połączenia do skryptu wymaga bardzo wysokiego poziomu zaufania w aplikacji i niesie ze sobą zagrożenia bezpieczeństwa.
W przypadku długoterminowych, bezpiecznych rozwiązań użyj jednej z następujących opcji:
- Uwierzytelnianie bez hasła
- Zapisz parametry połączenia w usłudze Azure Key Vault i użyj tej metody, aby pobrać ją w kodzie.
Otwórz przykładowe rozwiązanie aplikacji w programie Visual Studio.
W pliku program.cs zaktualizuj stałą
eventHubName
do nazwy usługi Event Hubs i zaktualizuj stałąconnectionString
do parametry połączenia skopiowanej z przestrzeni nazw usługi Event Hubs.const string eventHubName = "test-hub"; // Copy the connection string ("Connection string-primary key") from your Event Hub namespace. const string connectionString = @"<YourConnectionString>";
Skompiluj i uruchom aplikację. Aplikacja wysyła komunikaty do usługi Event Hubs i drukuje jej stan co 10 sekund.
Po wysłaniu kilku komunikatów przez aplikację przejdź do następnego kroku: przeglądanie przepływu danych do usługi Event Hubs i tabeli testowej.
Przeglądanie przepływu danych
Dzięki aplikacji generującej dane można teraz zobaczyć przepływ tych danych z usługi Event Hubs do tabeli w klastrze.
W witrynie Azure Portal w obszarze usługi Event Hubs zobaczysz wzrost aktywności podczas działania aplikacji.
Aby sprawdzić, ile komunikatów zostało przekazanych do tej pory do bazy danych, uruchom poniższe zapytanie w testowej bazie danych.
TestTable | count
Aby sprawdzić zawartość komunikatów, uruchom następujące zapytanie:
TestTable
Zestaw wyników powinien wyglądać podobnie do poniższej ilustracji:
Uwaga
- Usługa Azure Synapse Data Explorer ma zasady agregacji (dzielenia na partie) na potrzeby pozyskiwania danych przeznaczone do optymalizacji procesu pozyskiwania danych. Domyślne zasady dzielenia na partie są skonfigurowane do uszczelniania partii, gdy jeden z następujących warunków jest spełniony dla partii: maksymalny czas opóźnienia wynoszący 5 minut, całkowity rozmiar 1G lub 1000 obiektów blob. W związku z tym może wystąpić opóźnienie. Aby uzyskać więcej informacji, zobacz zasady dzielenia na partie.
- Pozyskiwanie centrum zdarzeń obejmuje czas odpowiedzi centrum zdarzeń wynoszący 10 sekund lub 1 MB.
- Aby skrócić opóźnienie czasu odpowiedzi, skonfiguruj tabelę do obsługi przesyłania strumieniowego. Zobacz zasady przesyłania strumieniowego.
Czyszczenie zasobów
Jeśli nie planujesz ponownie korzystać z usługi Event Hubs, wyczyść plik test-hub-rg, aby uniknąć ponoszenia kosztów.
W witrynie Azure Portal wybierz grupy zasobów daleko po lewej stronie, a następnie wybierz utworzoną grupę zasobów.
Jeśli menu po lewej stronie zostanie zwinięte, wybierz, aby ją rozwinąć.
W obszarze test-resource-group wybierz pozycję Usuń grupę zasobów.
W nowym oknie wpisz nazwę grupy zasobów do usunięcia (test-hub-rg), a następnie wybierz pozycję Usuń.