Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dane referencyjne to statyczny lub powoli zmieniający się zbiór danych, który łączysz ze swoimi danymi streamingowymi, aby je wzbogacić, na przykład dodając szczegóły produktów do strumienia wydarzeń sprzedażowych. Azure Stream Analytics obsługuje Azure SQL Database jako źródło danych referencyjnych, dzięki czemu możesz je wyszukiwać i łączyć z danymi w czasie rzeczywistym.
Ten artykuł pokazuje, jak skonfigurować Azure SQL Database jako referencyjne dane wejściowe do zadania Stream Analytics, korzystając zarówno z portalu Azure, jak i Visual Studio z narzędziami Stream Analytics.
Dodaj dane referencyjne SQL Database za pomocą portalu Azure
Użyj następujących kroków, aby dodać Azure SQL Database jako źródło referencyjne wejściowe, korzystając z portalu Azure:
Wymagania wstępne dotyczące portalu
Utwórz zadanie usługi Stream Analytics.
Stwórz konto pamięci masowej dla zadania Stream Analytics do użycia.
Ważne
Azure Stream Analytics zachowuje migawki w tym koncie pamięci. Podczas konfigurowania zasad przechowywania upewnij się, że wybrany okres obejmuje okres odzyskiwania wymagany dla zadania Stream Analytics.
Stwórz swoją Azure SQL Database z zestawem danych, który zadanie Stream Analytics wykorzystuje jako dane referencyjne.
Definiowanie danych wejściowych danych referencyjnych usługi SQL Database
W zadaniu usługi Stream Analytics wybierz pozycję Dane wejściowe w obszarze Topologia zadania. Wybierz Dodaj wejście referencyjne, a następnie wybierz bazę danych SQL.
Wypełnij konfigurację wejściową Stream Analytics. Wybierz nazwę bazy danych, nazwę serwera oraz dane logowania do bazy danych. Aby okresowo odświeżać dane referencyjne, wybierz Włączony i określ częstotliwość odświeżania w DD:HH:MM. Dla dużych zbiorów danych z krótką częstotliwością odświeżania, delta query śledzi zmiany w danych referencyjnych, pobierając wszystkie wiersze w SQL Database, które zostały dodane lub usunięte między czasem startu,
@deltaStartTime, a czasem zakończenia.@deltaEndTimeWięcej informacji można znaleźć w zapytaniu delta.
Przetestuj zapytanie migawki w edytorze zapytań SQL. Więcej informacji można znaleźć w artykule Użyj edytora zapytań SQL portalu Azure do łączenia i zapytań o dane.
Określ konto pamięci w konfiguracji zadania
Przejdź do ustawień konta magazynowego w sekcji Konfiguruj, a następnie wybierz Dodaj konto pamięci.
Uruchamianie zadania
- Po skonfigurowaniu pozostałych wejść, wyjść i zapytań, zacznij pracę Stream Analytics.
Dodaj dane referencyjne bazy SQL za pomocą Visual Studio
Użyj następujących kroków, aby dodać Azure SQL Database jako źródło referencyjne wejściowe, korzystając z Visual Studio:
Wymagania wstępne programu Visual Studio
Zainstaluj narzędzia usługi Stream Analytics dla programu Visual Studio. Narzędzia Stream Analytics obsługują następujące wersje Visual Studio:
- Visual Studio 2015
- Visual Studio 2019
Zapoznaj się z przewodnikiem Szybki start dotyczącym narzędzi usługi Stream Analytics dla programu Visual Studio.
Create a storage account (Tworzenie konta magazynu).
Ważne
Azure Stream Analytics zachowuje migawki w tym koncie pamięci. Podczas konfigurowania zasad przechowywania upewnij się, że wybrany okres obejmuje wymagany okres odzyskiwania dla zadania 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 .
Następująca instrukcja tworzy tabelę przykładową:
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.
Wybierz i przytrzymaj (lub kliknij prawym przyciskiem myszy) Azure, wybierz Połącz się z subskrypcją Microsoft Azure i zaloguj się swoim kontem Azure.
Tworzenie projektu usługi Stream Analytics
Wybierz Plik>Nowy projekt.
Na liście szablonów wybierz Stream Analytics, a następnie Azure Stream Analytics Application.
Wpisz nazwę projektu, lokalizację i nazwę rozwiązania, a następnie wybierz OK.
Definiowanie danych wejściowych danych referencyjnych usługi SQL Database
Utwórz nowe dane wejściowe.
Otwórz Input.json w Eksplorator rozwiązań.
Wypełnij konfigurację danych wejściowych usługi Stream Analytics. Wprowadź nazwę bazy danych, nazwę serwera, typ odświeżania oraz częstotliwość odświeżania. Określ częstotliwość odświeżania w formacie
DD:HH:MM.
Jeśli wybierzesz Wykonaj tylko raz lub Wykonuj okresowo, program Visual Studio wygeneruje w projekcie jeden plik kodu SQL CodeBehind o nazwie [Input Alias].snapshot.sql pod węzłem pliku Input.json.
Jeśli wybierzesz Odświeżanie okresowo z Deltą, Visual Studio wygeneruje dwa pliki SQL CodeBehind: [Input Alias].snapshot.sql oraz [Input Alias].delta.sql.
Otwórz plik SQL w edytorze i napisz zapytanie SQL.
Jeśli używasz Visual Studio 2019 i zainstalowałeś SQL Server Data Tools, możesz przetestować zapytanie, wybierając Wykonaj. Otwiera się kreator, który pomaga połączyć się z bazą danych SQL, a wynik zapytania pojawia się w oknie na dole.
Określanie konta magazynu
Otwórz JobConfig.json , aby określić konto pamięci do przechowywania snapshotów referencyjnych SQL.
Testowanie lokalne i wdrażanie na platformie Azure
Zanim wdrożysz zadanie na Azure, możesz przetestować logikę zapytań lokalnie na bieżących danych wejściowych. Więcej informacji o tej funkcji można znaleźć w artykule Testuj dane na żywo lokalnie za pomocą narzędzi Azure Stream Analytics dla Visual Studio (Podgląd). Po zakończeniu testów wybierz Submit to Azure. Aby dowiedzieć się, jak uruchomić zadanie, zobacz przewodnik Szybki start Tworzenie zadania Stream Analytics przy użyciu narzędzi Azure Stream Analytics dla programu Visual Studio.
Zapytanie delta
Gdy używasz zapytania delta, używaj tabel temporalnych w 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 queryNapisz zapytanie dotyczące migawki.
Użyj parametru @snapshotTime , aby polecić środowisku wykonawczym Stream Analytics uzyskanie referencyjnego zbioru danych z tabeli czasowej SQL ważnej w czasie systemowym. Jeśli nie podasz tego parametru, ryzykujesz otrzymanie niedokładnego bazowego zbioru danych referencyjnych z powodu rozbieżności zegarów. Poniższy przykład pokazuje pełne zapytanie typu snapshot:
SELECT DeviceId, GroupDeviceId, [Description] FROM dbo.DeviceTemporal FOR SYSTEM_TIME AS OF @snapshotTimeUtwórz zapytanie delta.
To zapytanie pobiera wszystkie wiersze w SQL Database, które zostały wstawione lub usunięte w określonym czasie startu, @deltaStartTime, oraz czasie zakończenia @deltaEndTime. Zapytanie różnicowe musi zwracać takie same kolumny jak zapytanie migawki, a także kolumnę operation. Ta kolumna określa, czy wiersz jest wstawiany, czy usuwany między @deltaStartTime a @deltaEndTime. Wynikowe wiersze są oznaczone jako 1, jeśli rekordy zostały wstawione, lub 2, jeśli zostały usunięte. Zapytanie musi również dodać znacznik po stronie serwera SQL Server, aby upewnić się, że wszystkie aktualizacje w okresie delta zostały prawidłowo uwzględnione. Użycie zapytania delta bez znacznika może skutkować błędnym referencyjnym zbiorem danych.
W przypadku rekordów, które zostały zaktualizowane, tabela czasowa wykonuje księgowanie, przechwytując operację wstawiania i usuwania. Środowisko wykonawcze usługi Stream Analytics następnie stosuje wyniki zapytania delta do poprzedniej migawki, aby utrzymać aktualność danych referencyjnych. Poniższy przykład pokazuje zapytanie delta:
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Środowisko wykonawcze Stream Analytics może okresowo uruchamiać zapytanie snapshot oprócz zapytania delta do przechowywania punktów kontrolnych.
Ważne
W przypadku używania zapytań delta dla danych referencyjnych nie wykonuj identycznych aktualizacji temporalnej tabeli danych referencyjnych wiele razy. Może to prowadzić do błędnych wyników. Oto przykład, który może spowodować, że dane referencyjne będą dawać błędne 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);Ten warunek zapobiega powtarzaniu aktualizacji.
Testowanie zapytania
Sprawdź, czy Twoje zapytanie zwraca oczekiwany zbiór danych, który zadanie Stream Analytics wykorzystuje jako dane referencyjne. Aby przetestować swoje zapytanie, przejdź do Inputs w sekcji Job topology w portalu. Następnie wybierz Sample data na wejściu referencyjnym SQL Database. Gdy próbka stanie się dostępna, możesz pobrać plik i sprawdzić, czy zwrócone dane są zgodne z oczekiwaniami. Aby zoptymalizować swoje iteracje programistyczne i testowe, użyj narzędzi Stream Analytics dla Visual Studio. Możesz też użyć dowolnego innego narzędzia, które preferujesz, aby najpierw upewnić się, że zapytanie zwraca poprawne wyniki z Azure SQL Database, a następnie wykorzystać to zapytanie w pracy w Stream Analytics.
Testowanie zapytania za pomocą programu Visual Studio Code
Zainstaluj narzędzia Usługi Azure Stream Analytics iprogram 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 oraz samouczek rozszerzenia SQL Server (mssql).
Skonfiguruj wejście danych referencyjnych SQL.
Wybierz ikonę SQL Server i wybierz Dodaj połączenie.
Wypełnij informacje o połączeniu.
Wybierz i przytrzymaj (lub kliknij prawym przyciskiem myszy) w odwołaniu SQL, a następnie wybierz Wykonaj zapytanie.
Wybierz połączenie.
Przejrzyj i zweryfikuj wynik zapytania.
Często zadawane pytania
Czy poniosę dodatkowe koszty, korzystając z danych referencyjnych SQL wejściowych w Azure Stream Analytics?
W pracy w Stream Analytics nie ma dodatkowych kosztów za jednostkę streamingową . Jednak zadanie usługi Stream Analytics musi mieć skojarzone konto usługi Azure Storage. Zadanie Stream Analytics wysyła zapytania do bazy danych SQL (podczas uruchamiania zadania i w interwale odświeżania), aby pobrać referencyjny zestaw danych i przechowuje tę migawkę na koncie magazynu. Przechowywanie tych migawek wiąże się z dodatkowymi opłatami opisanymi na stronie z cennikami dla konta Azure.
Jak mogę wiedzieć, czy migawka danych referencyjnych jest zapytywana z SQL Database i używana w zadaniu Azure Stream Analytics?
Dwa wskaźniki, filtrowane według nazwy logicznej (w sekcji Metryki w portalu Azure), pozwalają monitorować kondycję danych referencyjnych do bazy SQL Database.
- InputEvents: Ta metryka mierzy liczbę rekordów załadowanych z referencyjnego zbioru danych bazy SQL.
- InputEventBytes: Ta metryka mierzy rozmiar migawki danych referencyjnych załadowanej do pamięci zadania usługi Stream Analytics.
Oba wskaźniki razem wskazują, czy zadanie zapytuje bazę SQL w celu pobrania referencyjnego zbioru danych, a następnie ładuje go do pamięci.
Czy potrzebuję specjalnego typu Azure SQL Database?
Azure Stream Analytics działa z każdym typem Azure SQL Database. Jednak ustawiona przez Ciebie częstotliwość odświeżania danych referencyjnych może wpłynąć na obciążenie zapytań. Aby skorzystać z opcji delta query, użyj tabel temporalnych w Azure SQL Database.
Dlaczego Azure Stream Analytics przechowuje migawki na koncie Azure Storage?
Stream Analytics gwarantuje dokładnie jednorazowe przetwarzanie zdarzeń oraz co najmniej jednorazowe dostarczenie zdarzeń. Jeśli przejściowe problemy wpływają na Twoją pracę, potrzebna jest niewielka ilość powtórzeń, aby przywrócić stan. Aby umożliwić odtwarzanie, te migawki muszą być przechowywane na koncie Azure Storage. Więcej informacji o odtwarzaniu z punktu kontrolnego znajdziesz w artykule Pojęcia dotyczące punktów kontrolnych i odtwarzania w zadaniach Azure Stream Analytics.
Treści powiązane
- 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ększ przepustowość z usługi Azure Stream Analytics do Azure SQL Database
- Korzystanie z tożsamości zarządzanych w celu uzyskania dostępu do Azure SQL Database lub Azure Synapse Analytics z poziomu zadania 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