Stream Analytics SQL Database integration

Łączenie Stream Analytics ze Storage Account jest łatwe, ponieważ zwracamy JSON i nie heja banana. Działa. Gdy chcemy zapisać te same dane do bazy relacyjnej jest już gorzej. Przede wszystkim SQL Database jest nie tylko relacyjny ale również silnie typowany. Nie zrozumcie mnie źle Stream Analytics sobie z tym radzi świetnie, ale musi mieć przygotowaną odpowiednio bazę. A może nie musi?

Gdzie zacząć

Możemy iść taką samą drogą jak poprzednio Azure stream analytics, prosty przypadek wymieniając tylko output na SQL Database.
Na początku wygląda tak samo. Nadajemy alias, wybieramy bazę danych. Jeśli wybieramy połączenie pierwszy raz prawdopodobnie pokaże się nam przycisk walidacji poprawności danych do logowania do bazy danych, a jeśli nie mamy dodanego IP Stream Analytics to jeszcze dodatkowy komunikat z prośbą przepuszczenia przez firewall.
Idąc od tej strony musimy mieć stworzoną bazę danych oraz tabelę do której chcemy dane zapisywać, tak aby można było ją wybrać.




Przechodząc do widoku Query będzie on wyglądał jak ostatnio. Czyli mamy możliwość podejrzenia danych wejściowych i przetestowania naszego zapytania. Możemy w ten sposób wybrać pola i ich nazwy, ale w żaden sposób z Test results nie da się wywnioskować typu danych. 


SQL integration to Stream Analytics

Dlatego pójdźmy inną drogą. Bezpośrednio z bazy danych, takiej świeżo stworzonej nawet bez żadnego schematu wewnątrz. Gdy oglądamy nasz zasób bazy danych szukamy sekcji Integrations a tam znajdziemy Stream Analytics (q1 2020 obecnie w preview).
Będziemy tutaj tworzy zupełnie nowy Stream Analytics Job.  Basic to informacja o nazwie nowego zasobu. Potem konfigurujemy input czyli naszego IoT Huba, nic nowego.
Konfiguracja outputu czyli tej bazy z której tworzymy SA Job :) i tutaj musimy podać dane do logowania do bazy danych i dodać adres IP do firewalla bazy danych. Na koniec wpisujemy nazwę tabeli do której nasz Job będzie pisał.



SQL Database integration

Teraz na szybko skaczemy do zapytania bierzemy wszystko wciskamy do bazy i startujemy Joba.
I dostajemy po łapkach że to za mało. Skoro znamy schemat to możemy iść od strony Stream Analytics. Do integracji od strony bazy danych przyszliśmy właśnie po pomoc ze schematem. 


Query window for SQL Database integration

Teraz na szybko skaczemy do zapytania bierzemy wszystko wciskamy do bazy i startujemy Joba.
I dostajemy po łapkach że to za mało. Skoro znamy schemat to możemy iść od strony Stream Analytics. Do integracji od strony bazy danych przyszliśmy właśnie po pomoc ze schematem. 


Query window for SQL Database integration

Dwa pierwsze okna są niezmiennie obecne i funkcjonalne. Input preview z widokiem tabelarycznym oraz surowych danych, Test results prezentujące wyniki naszego zapytania.




Mamy za to dwa dodatkowe widoki które są dla nas naprawdę przydatne.
Test results schema. Prosta rozpiska kolumna - typ, a jakże przydatna. Na podstawie takiego zestawienia potrafimy stworzyć scheme naszej tabeli w Sqlu. A skoro człowiek potrafi, to i narzędzie potrafi. To jest definicja kolumn w tabeli, która zostanie dla nas stworzona gdy Job zacznie działać. Bezpośrednio z okna zapytania możemy uruchomić nasz Job pamiętając o wybraniu odpowiedniej dla nas ilości Streaming Units.





Podsumowanie

Warto spojrzeć na integrację do SQLa właśnie od tej strony, oraz na nasze zapytania stream analytics. Często jedna mała pomyłka zmienia typ danych lub nazwę kolumny. Takie błędy bardzo ciężko debuguje się zatrzymując job, zmieniając zapytanie, uruchamiając job, sprawdzając logi. 
Oczywiście gdy mamy wszystko skonfigurowane i pewne nie musimy korzystać z tej integracji, tym bardziej dopóki jest ona w preview. Miło jest jednak mieć pomocną dłoń, tudzież automat ;)

Komentarze

Popularne posty