Używanie danych referencyjnych z usługi SQL Database dla zadania usługi Azure Stream Analytics
Usługa Azure Stream Analytics obsługuje usługę Azure SQL Database jako źródło danych wejściowych dla danych referencyjnych. Usługę SQL Database można używać jako danych referencyjnych dla zadania usługi Stream Analytics w witrynie Azure Portal i w programie Visual Studio za pomocą narzędzi usługi Stream Analytics. W tym artykule pokazano, jak wykonać obie metody.
Azure Portal
Wykonaj następujące kroki, aby dodać usługę Azure SQL Database jako źródło danych wejściowych referencyjnych przy użyciu witryny Azure Portal:
Wymagania wstępne dotyczące portalu
Tworzenie zadania usługi Stream Analytics
Utwórz konto magazynu, które ma być używane przez zadanie usługi Stream Analytics.
Ważne
Usługa Azure Stream Analytics zachowuje migawki na tym koncie magazynu. Podczas konfigurowania zasad przechowywania należy upewnić się, że wybrany przedział czasu skutecznie obejmuje żądany czas trwania odzyskiwania dla zadania usługi Stream Analytics.
Utwórz bazę danych Azure SQL Database z zestawem danych, który ma być używany jako dane referencyjne przez zadanie usługi Stream Analytics.
Definiowanie danych referencyjnych usługi SQL Database — dane wejściowe
W zadaniu usługi Stream Analytics wybierz pozycję Dane wejściowe w obszarze Topologia zadania. Kliknij pozycję Dodaj dane wejściowe odwołania i wybierz pozycję SQL Database.
Wypełnij konfiguracje danych wejściowych usługi Stream Analytics. Wybierz nazwę bazy danych, nazwę serwera, nazwę użytkownika i hasło. Jeśli dane wejściowe danych referencyjnych mają być okresowo odświeżane, wybierz pozycję "Włączone", aby określić częstotliwość odświeżania w DD:HH:MM. Jeśli masz duże zestawy danych z krótką częstotliwością odświeżania. Zapytanie różnicowe umożliwia śledzenie zmian w danych referencyjnych przez odtworzenie wszystkich wierszy w usłudze SQL Database, które zostały wstawione lub usunięte w czasie rozpoczęcia, @deltaStartTimei godzina @deltaEndTimezakończenia.
Zobacz zapytanie różnicowe.
- Przetestuj zapytanie migawki w edytorze zapytań SQL. Aby uzyskać więcej informacji, zobacz Używanie edytora zapytań SQL w witrynie Azure Portal do nawiązywania połączenia z danymi i wykonywania względem nich zapytań
Określanie konta magazynu w konfiguracji zadania
Przejdź do obszaru Ustawienia konta magazynu w obszarze Konfigurowanie i wybierz pozycję Dodaj konto magazynu.
Uruchamianie zadania
Po skonfigurowaniu innych danych wejściowych, danych wyjściowych i zapytań możesz uruchomić zadanie usługi Stream Analytics.
Narzędzia dla programu Visual Studio
Wykonaj następujące kroki, aby dodać usługę Azure SQL Database jako źródło danych wejściowych referencyjnych przy użyciu programu Visual Studio:
Wymagania wstępne programu Visual Studio
Zainstaluj narzędzia usługi Stream Analytics dla programu Visual Studio. Obsługiwane są następujące wersje programu Visual Studio:
- Visual Studio 2015
- Visual Studio 2019
Zapoznaj się z przewodnikami Szybki start dotyczącymi narzędzi usługi Stream Analytics dla programu Visual Studio .
Create a storage account (Tworzenie konta magazynu).
Ważne
Usługa Azure Stream Analytics zachowuje migawki na tym koncie magazynu. Podczas konfigurowania zasad przechowywania należy upewnić się, że wybrany przedział czasu skutecznie obejmuje żądany czas trwania odzyskiwania dla zadania usługi Stream Analytics.
Tworzenie tabeli usługi SQL Database
Użyj programu SQL Server Management Studio, aby utworzyć tabelę do przechowywania danych referencyjnych. Aby uzyskać szczegółowe informacje, zobacz Projektowanie pierwszej usługi Azure SQL Database przy użyciu programu SSMS .
Przykładowa tabela użyta w poniższym przykładzie została utworzona na podstawie następującej instrukcji:
create table chemicals(Id Bigint,Name Nvarchar(max),FullName Nvarchar(max));
Wybierz swoją subskrypcję
W programie Visual Studio w menu Widok wybierz opcję Eksplorator serwera.
Kliknij prawym przyciskiem myszy pozycję Azure, wybierz pozycję Połączenie do subskrypcji platformy Microsoft Azure i zaloguj się przy użyciu konta platformy Azure.
Tworzenie projektu usługi Stream Analytics
Wybierz pozycję Plik > nowy projekt.
Na liście szablonów po lewej stronie wybierz pozycję Stream Analytics, a następnie wybierz pozycję Azure Stream Analytics Application.
Wprowadź nazwę projektu, lokalizację i nazwę rozwiązania, a następnie wybierz przycisk OK.
Definiowanie danych referencyjnych usługi SQL Database — dane wejściowe
Utwórz nowe dane wejściowe.
Kliknij dwukrotnie plik Input.json w Eksplorator rozwiązań.
Wypełnij konfigurację danych wejściowych usługi Stream Analytics. Wybierz nazwę bazy danych, nazwę serwera, typ odświeżania i częstotliwość odświeżania. Określ częstotliwość odświeżania w formacie
DD:HH:MM
.Jeśli wybierzesz opcję "Wykonaj tylko raz" lub "Wykonaj okresowo", w projekcie w węźle pliku Input.json zostanie wygenerowany jeden plik SQL CodeBehind o nazwie [Alias wejściowy].snapshot.sql.
W przypadku wybrania opcji "Odśwież okresowo z funkcją Delta" zostaną wygenerowane dwa pliki SQL CodeBehind: [Alias wejściowy].snapshot.sql i [Alias wejściowy].delta.sql.
Otwórz plik SQL w edytorze i napisz zapytanie SQL.
Jeśli używasz programu Visual Studio 2019 i masz zainstalowane narzędzia SQL Server Data Tools, możesz przetestować zapytanie, klikając pozycję Wykonaj. Zostanie wyświetlone okno kreatora ułatwiające nawiązanie połączenia z usługą SQL Database, a wynik zapytania pojawi się w oknie u dołu.
Określanie konta magazynu
Otwórz plik JobConfig.json , aby określić konto magazynu do przechowywania migawek odwołań SQL.
Testowanie lokalne i wdrażanie na platformie Azure
Przed wdrożeniem zadania na platformie Azure możesz przetestować logikę zapytań lokalnie względem danych wejściowych na żywo. Aby uzyskać więcej informacji na temat tej funkcji, zobacz Testowanie danych na żywo lokalnie przy użyciu narzędzi usługi Azure Stream Analytics dla programu Visual Studio (wersja zapoznawcza). Po zakończeniu testowania kliknij pozycję Prześlij na platformę Azure. Zapoznaj się z przewodnikiem Szybki start Tworzenie usługi Stream Analytics przy użyciu narzędzi usługi Azure Stream Analytics dla programu Visual Studio , aby dowiedzieć się, jak uruchomić zadanie.
Zapytanie różnicowe
W przypadku korzystania z zapytania różnicowego zalecane są tabele czasowe w usłudze Azure SQL Database .
Utwórz tabelę czasową w usłudze Azure SQL Database.
CREATE TABLE DeviceTemporal ( [DeviceId] int NOT NULL PRIMARY KEY CLUSTERED , [GroupDeviceId] nvarchar(100) NOT NULL , [Description] nvarchar(100) NOT NULL , [ValidFrom] datetime2 (0) GENERATED ALWAYS AS ROW START , [ValidTo] datetime2 (0) GENERATED ALWAYS AS ROW END , PERIOD FOR SYSTEM_TIME (ValidFrom, ValidTo) ) WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.DeviceHistory)); -- DeviceHistory table will be used in Delta query
Utwórz zapytanie migawki.
Użyj parametru @snapshotTime , aby poinstruować środowisko uruchomieniowe usługi Stream Analytics w celu uzyskania zestawu danych referencyjnych z tabeli czasowej usługi SQL Database prawidłowej w czasie systemowym. Jeśli nie podasz tego parametru, ryzykujesz uzyskanie niedokładnego podstawowego zestawu danych referencyjnych z powodu niesymetryczności zegara. Poniżej przedstawiono przykład pełnego zapytania migawki:
SELECT DeviceId, GroupDeviceId, [Description] FROM dbo.DeviceTemporal FOR SYSTEM_TIME AS OF @snapshotTime
Utwórz zapytanie różnicowe.
To zapytanie pobiera wszystkie wiersze w usłudze SQL Database, które zostały wstawione lub usunięte w czasie rozpoczęcia, @deltaStartTime i godzina zakończenia @deltaEndTime. Zapytanie różnicowe musi zwracać te same kolumny co zapytanie migawki, a także operację kolumny. Ta kolumna określa, czy wiersz jest wstawiany lub usuwany między @deltaStartTime i @deltaEndTime. Wynikowe wiersze są oflagowane jako 1 , jeśli rekordy zostały wstawione, lub 2 w przypadku usunięcia. Zapytanie musi również dodać znak wodny po stronie programu SQL Server, aby upewnić się, że wszystkie aktualizacje w okresie różnicowym są odpowiednio przechwytywane. Użycie zapytania różnicowego bez znaku wodnego może spowodować nieprawidłowe odwołanie do zestawu danych.
W przypadku rekordów, które zostały zaktualizowane, tabela czasowa wykonuje księgowanie, przechwytując operację wstawiania i usuwania. Następnie środowisko uruchomieniowe usługi Stream Analytics zastosuje wyniki zapytania różnicowego do poprzedniej migawki, aby zachować aktualność danych referencyjnych. Poniżej przedstawiono przykład zapytania różnicowego:
SELECT DeviceId, GroupDeviceId, Description, ValidFrom as _watermark_, 1 as _operation_ FROM dbo.DeviceTemporal WHERE ValidFrom BETWEEN @deltaStartTime AND @deltaEndTime -- records inserted UNION SELECT DeviceId, GroupDeviceId, Description, ValidTo as _watermark_, 2 as _operation_ FROM dbo.DeviceHistory -- table we created in step 1 WHERE ValidTo BETWEEN @deltaStartTime AND @deltaEndTime -- record deleted
Należy pamiętać, że środowisko uruchomieniowe usługi Stream Analytics może okresowo uruchamiać zapytanie migawki oprócz zapytania różnicowego w celu przechowywania punktów kontrolnych.
Ważne
W przypadku korzystania z zapytań różnicowych danych referencyjnych nie należy wielokrotnie wprowadzać identycznych aktualizacji do tabeli danych referencyjnych czasowych. Może to spowodować generowanie nieprawidłowych wyników. Oto przykład, który może spowodować, że dane referencyjne generują nieprawidłowe wyniki:
UPDATE myTable SET VALUE=2 WHERE ID = 1; UPDATE myTable SET VALUE=2 WHERE ID = 1;
Prawidłowy przykład:
UPDATE myTable SET VALUE = 2 WHERE ID = 1 and not exists (select * from myTable where ID = 1 and value = 2);
Gwarantuje to, że nie są wykonywane zduplikowane aktualizacje.
Testowanie zapytania
Ważne jest, aby sprawdzić, czy zapytanie zwraca oczekiwany zestaw danych, którego zadanie usługi Stream Analytics będzie używać jako danych referencyjnych. Aby przetestować zapytanie, przejdź do pozycji Dane wejściowe w sekcji Topologia zadań w portalu. Następnie możesz wybrać pozycję Przykładowe dane w danych wejściowych dokumentacji usługi SQL Database. Po udostępnieniu przykładu możesz pobrać plik i sprawdzić, czy zwracane dane są zgodnie z oczekiwaniami. Jeśli chcesz zoptymalizować iteracje programistyczne i testowe, zaleca się użycie narzędzi usługi Stream Analytics dla programu Visual Studio. Możesz również użyć dowolnego innego narzędzia preferencji, aby najpierw upewnić się, że zapytanie zwraca odpowiednie wyniki z usługi Azure SQL Database, a następnie użyć go w zadaniu usługi Stream Analytics.
Testowanie zapytania za pomocą programu Visual Studio Code
Zainstaluj narzędzia Usługi Azure Stream Analytics i program SQL Server (mssql) w programie Visual Studio Code i skonfiguruj projekt ASA. Aby uzyskać więcej informacji, zobacz Szybki start: tworzenie zadania usługi Azure Stream Analytics w programie Visual Studio Code i samouczku rozszerzenia programu SQL Server (mssql).
Skonfiguruj dane wejściowe danych referencyjnych SQL.
Wybierz ikonę programu SQL Server i kliknij pozycję Dodaj Połączenie ion.
Wypełnij informacje o połączeniu.
Kliknij prawym przyciskiem myszy odwołanie SQL i wybierz polecenie Wykonaj zapytanie.
Wybierz połączenie.
Przejrzyj i zweryfikuj wynik zapytania.
— często zadawane pytania
Czy poniesiesz dodatkowy koszt przy użyciu danych referencyjnych SQL w usłudze Azure Stream Analytics?
W zadaniu usługi Stream Analytics nie ma dodatkowych kosztów za jednostkę przesyłania strumieniowego. Jednak zadanie usługi Stream Analytics musi mieć skojarzone konto usługi Azure Storage. Zadanie usługi Stream Analytics wysyła zapytanie do bazy danych SQL (podczas interwału uruchamiania i odświeżania zadania), aby pobrać zestaw danych referencyjnych i przechowywać migawkę na koncie magazynu. Przechowywanie tych migawek spowoduje naliczanie dodatkowych opłat opisanych na stronie cennika konta usługi Azure Storage.
Jak mogę wiedzieć, że migawka danych referencyjnych jest odpytywana z bazy danych SQL i używana w zadaniu usługi Azure Stream Analytics?
Istnieją dwie metryki filtrowane według nazwy logicznej (w obszarze Metryki w witrynie Azure Portal), których można użyć do monitorowania kondycji danych referencyjnych usługi SQL Database.
- InputEvents: ta metryka mierzy liczbę rekordów załadowanych z zestawu danych referencyjnych usługi SQL Database.
- InputEventBytes: ta metryka mierzy rozmiar migawki danych referencyjnych załadowanych w pamięci zadania usługi Stream Analytics.
Kombinacja obu tych metryk może służyć do wnioskowania, czy zadanie wykonuje zapytanie względem usługi SQL Database w celu pobrania zestawu danych referencyjnych, a następnie załadowania go do pamięci.
Czy będę wymagać specjalnego typu usługi Azure SQL Database?
Usługa Azure Stream Analytics będzie współpracować z dowolnym typem usługi Azure SQL Database. Należy jednak pamiętać, że częstotliwość odświeżania ustawiona dla danych referencyjnych może mieć wpływ na obciążenie zapytania. Aby użyć opcji zapytania różnicowego, zaleca się używanie tabel czasowych w usłudze Azure SQL Database.
Dlaczego usługa Azure Stream Analytics przechowuje migawki na koncie usługi Azure Storage?
Poza tym gwarantuje przeprowadzenie dokładnie jednej aprowizacji zdarzenia oraz co najmniej jednokrotnego dostarczenia zdarzeń. W przypadkach, gdy przejściowe problemy wpływają na zadanie, do przywrócenia stanu konieczne jest niewielkie odtworzenie. Aby włączyć odtwarzanie, wymagane jest przechowywanie tych migawek na koncie usługi Azure Storage. Aby uzyskać więcej informacji na temat odtwarzania punktów kontrolnych, zobacz Pojęcia dotyczące punktów kontrolnych i odtwarzania w zadaniach usługi Azure Stream Analytics.
Następne kroki
- Omówienie danych wyjściowych z usługi Azure Stream Analytics
- Dane wyjściowe usługi Azure Stream Analytics do usługi Azure SQL Database
- Zwiększanie wydajności przepływności do usługi Azure SQL Database z usługi Azure Stream Analytics
- Używanie tożsamości zarządzanych do uzyskiwania dostępu do usługi Azure SQL Database lub Azure Synapse Analytics z zadania usługi Azure Stream Analytics
- Aktualizowanie lub scalanie rekordów w usłudze Azure SQL Database za pomocą usługi Azure Functions
- Szybki start: tworzenie zadania usługi Stream Analytics przy użyciu witryny Azure Portal