Anpassade .NET-deserializers för Azure Stream Analytics i Visual Studio (förhandsversion)
Viktigt!
Anpassad .net deserializer för Azure Stream Analytics dras tillbaka den 30 september 2024. Efter det datumet går det inte att använda funktionen. Övergå till en inbyggd JSON-, AVRO- eller CSV-deserialiserare vid det datumet.
Azure Stream Analytics har inbyggt stöd för tre dataformat: JSON, CSV och Avro. Med anpassade .NET-deserialiserare kan du läsa data från andra format som Protokollbuffert, Bond och andra användardefinierade format för både moln- och gränsjobb.
Den här självstudien visar hur du skapar en anpassad .NET-deserializer för ett Azure Stream Analytics-molnjobb med hjälp av Visual Studio. Information om hur du skapar .NET-deserialiserare i Visual Studio Code finns i Skapa .NET-deserialiserare för Azure Stream Analytics-jobb i Visual Studio Code.
I den här självstudien lär du dig att:
- Skapa en anpassad deserializer för protokollbuffert.
- Skapa ett Azure Stream Analytics-jobb i Visual Studio.
- Konfigurera Stream Analytics-jobbet så att det använder den anpassade deserialiseraren.
- Kör Stream Analytics-jobbet lokalt för att testa och felsöka den anpassade deserialiseraren.
Förutsättningar
Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
Installera Visual Studio 2019 (rekommenderas) eller Visual Studio 2017. Versionerna Enterprise (Ultimate/Premium), Professional och Community stöds. Express edition stöds inte.
Installera Stream Analytics-verktygen för Visual Studio eller uppdatera till den senaste versionen.
Öppna Cloud Explorer i Visual Studio och logga in på din Azure-prenumeration.
Skapa en container i ditt Azure Storage-konto. Containern som du skapar används för att lagra tillgångar som är relaterade till ditt Stream Analytics-jobb. Om du redan har ett lagringskonto med befintliga containrar kan du använda dem. Annars måste du skapa en ny container.
Skapa en anpassad deserializer
Öppna Visual Studio och välj Nytt > > filprojekt. Sök efter Stream Analytics och välj Azure Stream Analytics Custom Deserializer Project (.NET). Ge projektet ett namn, till exempel Protobuf Deserializer.
Högerklicka på Protobuf Deserializer-projektet i Solution Explorer och välj Hantera NuGet-paket på menyn. Installera sedan NuGet-paketen Microsoft.Azure.StreamAnalytics och Google.Protobuf .
Lägg till klassen MessageBodyProto och klassen MessageBodyDeserializer i projektet.
Skapa Protobuf Deserializer-projektet.
Lägga till ett Azure Stream Analytics-projekt
Högerklicka på Protobuf Deserializer-lösningen i Solution Explorer och välj Lägg till > nytt projekt. Under Azure Stream Analytics > Stream Analytics väljer du Azure Stream Analytics-program. Ge den namnet ProtobufCloudDeserializer och välj OK.
Högerklicka på Referenser under Projektet ProtobufCloudDeserializer Azure Stream Analytics. Under Projekt lägger du till Protobuf Deserializer. Den bör fyllas i automatiskt åt dig.
Konfigurera ett Stream Analytics-jobb
Dubbelklicka på JobConfig.json. Använd standardkonfigurationerna, förutom följande inställningar:
Inställning Föreslaget värde Global lagringsresurs Inställningar Välj datakälla från det aktuella kontot Global Storage Inställningar-prenumeration < din prenumeration > Globalt lagringskonto Inställningar lagring < ditt lagringskonto > Anpassad kodlagring Inställningar resurs Välj datakälla från det aktuella kontot Lagringskonto för anpassad kod Inställningar < ditt lagringskonto > Anpassad kodlagring Inställningar container < din lagringscontainer > Under Indata dubbelklickar du på Input.json. Använd standardkonfigurationerna, förutom följande inställningar:
Inställning Föreslaget värde Källa Blob Storage Resurs Välj datakälla från det aktuella kontot Prenumeration < din prenumeration > Lagringskonto < ditt lagringskonto > Container < din lagringscontainer > Händelseserialiseringsformat Other (Protobuf, XML, proprietary...) Resurs Läs in från ASA-projektreferens eller CodeBehind CSharp-sammansättningsnamn ProtobufDeserializer.dll Klassnamn MessageBodyProto.MessageBodyDeserializer Komprimeringstyp för händelsen Ingen Lägg till följande fråga i filen Script.asaql .
SELECT * FROM Input
Ladda ned protobuf-exempelindatafilen. I mappen Indata högerklickar du på Input.json och väljer Lägg till lokala indata. Dubbelklicka sedan på local_Input.json och konfigurera följande inställningar:
Inställning Föreslaget värde Indataalias Indata Källtyp Dataström Händelseserialiseringsformat Other (Protobuf, XML, proprietary...) CSharp-sammansättningsnamn ProtobufDeserializer.dll Klassnamn MessageBodyProto.MessageBodyDeserializer Sökväg till lokal indatafil < filsökvägen för den nedladdade protobuf-exempelindatafilen>
Kör Stream Analytics-jobbet
Öppna Script.asaql och välj Kör lokalt.
Observera resultaten i Resultat för lokal körning i Stream Analytics.
Du har implementerat en anpassad deserializer för ditt Stream Analytics-jobb! I den här självstudien testade du den anpassade deserialiseraren lokalt. För dina faktiska data skulle du konfigurera indata och utdata korrekt. Skicka sedan jobbet till Azure från Visual Studio för att köra jobbet i molnet med den anpassade deserialiseraren som du precis implementerade.
Felsöka din deserialiserare
Du kan felsöka .NET-deserialiseraren lokalt på samma sätt som du felsöker standard .NET-kod.
Högerklicka på ProtobufCloudDeserializer-projektnamnet och ange det som startprojekt.
Lägg till brytpunkter i funktionen.
Starta felsökningen genom att trycka på F5. Programmet kommer att avbrytas vid dina brytpunkter som förväntat.
Rensa resurser
Ta bort resursgruppen, strömningsjobbet och alla relaterade resurser när de inte längre behövs. Om du tar bort jobbet undviker du att bli fakturerad för de strömmande enheter som används av jobbet. Om du planerar att använda jobbet i framtiden kan du stoppa det och sedan starta det igen när du behöver det. Om du inte tänker fortsätta använda det här jobbet tar du bort alla resurser som skapades i självstudien med följande steg:
Klicka på Resursgrupper på den vänstra menyn i Azure-portalen och välj sedan namnet på den resurs du skapade.
På sidan med resursgrupper klickar du på Ta bort, skriver in namnet på resursen som ska tas bort i textrutan och väljer sedan Ta bort.
Nästa steg
I den här självstudien har du lärt dig hur du implementerar en anpassad .NET-deserialiserare för protokollbuffertens serialisering. Om du vill veta mer om hur du skapar anpassade deserialiserare fortsätter du till följande artikel: