Använda referens data från en SQL Database för ett Azure Stream Analytics jobb
Azure Stream Analytics stöder Azure SQL Database som data källa för referens data. Du kan använda SQL Database som referens data för ditt Stream Analytics-jobb i Azure Portal och i Visual Studio med Stream Analytics verktyg. Den här artikeln visar hur du gör båda metoderna.
Azure Portal
Använd följande steg för att lägga till Azure SQL Database som referens källa med hjälp av Azure Portal:
Portal krav
Skapa ett Stream Analytics-jobb.
Skapa ett lagrings konto som ska användas av Stream Analyticss jobbet.
Skapa din Azure SQL Database med en data uppsättning som ska användas som referens data av Stream Analyticss jobbet.
Definiera SQL Database referens data inmatning
I ditt Stream Analytics jobb väljer du indata under jobb sto pol Ogin. Klicka på Lägg till referens inmatare och välj SQL Database.

Fyll i Stream Analytics inmatade konfigurationer. Välj databas namn, Server namn, användar namn och lösen ord. Om du vill att referens data indata ska uppdateras regelbundet väljer du "på" för att ange uppdaterings frekvensen i DD: HH: MM. Om du har stora data mängder med en kort uppdaterings frekvens kan du använda en delta fråga.

Testa ögonblicks bild frågan i SQL-Frågeredigeraren. Mer information finns i använda Azure Portal SQL-Frågeredigeraren för att ansluta och fråga efter data
Ange lagrings konto i jobb konfigurationen
Gå till Inställningar för lagrings kontot under Konfigurera och välj Lägg till lagrings konto.

Starta jobbet
När du har konfigurerat andra indata, utdata och frågor kan du starta Stream Analytics jobbet.
Verktyg för Visual Studio
Använd följande steg för att lägga till Azure SQL Database som referens källa med Visual Studio:
Krav för Visual Studio
Installera Stream Analytics verktyg för Visual Studio. Följande versioner av Visual Studio stöds:
- Visual Studio 2015
- Visual Studio 2019
Bekanta dig med Stream Analytics Tools för Visual Studio snabb start.
Skapa ett lagringskonto.
Skapa en SQL Database tabell
Använd SQL Server Management Studio för att skapa en tabell för att lagra dina referens data. Se utforma din första Azure SQL Database med SSMS för mer information.
Exempel tabellen som används i följande exempel skapades från följande instruktion:
create table chemicals(Id Bigint,Name Nvarchar(max),FullName Nvarchar(max));
Välj din prenumeration
Gå till menyn Visa och välj Server Explorer i Visual Studio.
Högerklicka på Azure, Välj Anslut till Microsoft Azure prenumeration och logga in med ditt Azure-konto.
Skapa ett Stream Analytics-projekt
Välj Arkiv > Nytt projekt.
I listan över mallar till vänster väljer du Stream Analytics och sedan Azure Stream Analytics-programmet.
Ange projekt namn, plats och lösnings namn och välj OK.

Definiera SQL Database referens data inmatning
Skapa en ny indatamängd.

Dubbelklicka på Input.js i Solution Explorer.
Fyll i konfigurationen för Stream Analytics Indatamängden. Välj databasens namn, Server namn, uppdaterings typ och uppdaterings frekvens. Ange uppdaterings frekvensen i formatet
DD:HH:MM.
Om du väljer "kör bara en gång" eller "kör regelbundet", skapas en SQL CodeBehind-fil med namnet [indata Ali Aset]. snapshot. SQL i projektet under Input.jspå filnoden.

Om du väljer att uppdatera regelbundet med delta kommer två SQL CodeBehind-filer att genereras: [Indataområde]. snapshot. SQL och [Indataområde]. delta. SQL.

Öppna SQL-filen i redigeraren och Skriv SQL-frågan.
Om du använder Visual Studio 2019 och har installerat SQL Server data verktyg kan du testa frågan genom att klicka på Kör. Ett guide fönster visas för att hjälpa dig att ansluta till SQL Database och frågeresultatet visas i fönstret längst ned.
Ange lagrings konto
Öppna JobConfig.jspå för att ange lagrings kontot för lagring av ögonblicks bilder av SQL-referens.

Testa lokalt och distribuera till Azure
Innan du distribuerar jobbet till Azure kan du testa frågans logik lokalt mot Live-indata. Mer information om den här funktionen finns i testa Live data lokalt med Azure Stream Analytics verktyg för Visual Studio (för hands version). När du är klar med testningen klickar du på Skicka till Azure. Referera till skapa en Stream Analytics med hjälp av Azure Stream Analytics verktyg för Visual Studio snabb start för att lära dig hur du startar jobbet.
Delta fråga
När du använder delta frågan rekommenderas temporala tabeller i Azure SQL Database .
Skapa en temporal tabell i 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 queryRedigera ögonblicks bild frågan.
Använd parametern @ snapshotTime för att instruera Stream Analytics runtime att hämta referens data uppsättningen från SQL Database temporal tabell som är giltig vid system tiden. Om du inte anger den här parametern riskerar du att få en felaktig bas referens data uppsättning på grund av klock skevar. Ett exempel på en fullständig ögonblicks bild fråga visas nedan:
SELECT DeviceId, GroupDeviceId, [Description] FROM dbo.DeviceTemporal FOR SYSTEM_TIME AS OF @snapshotTimeRedigera delta frågan.
Den här frågan hämtar alla rader i SQL Database som infogades eller togs bort inom en start tid, @ deltaStartTime och en slut tid @ deltaEndTime. Delta frågan måste returnera samma kolumner som ögonblicks bild frågan och kolumn åtgärden. Den här kolumnen definierar om raden infogas eller tas bort mellan @ deltaStartTime och @ deltaEndTime. De resulterande raderna flaggas som 1 om posterna infogades eller 2 om de tagits bort. Frågan måste också lägga till vatten märket från SQL Server sidan för att säkerställa att alla uppdateringar i delta-perioden samlas in på rätt sätt. Om du använder delta fråga utan vattenstämpel kan det resultera i felaktig referens data uppsättning.
För poster som har uppdaterats bokförs den temporala tabellen genom att en infognings-och borttagnings åtgärd fångas. Den Stream Analytics körningen använder sedan resultatet av delta frågan till föregående ögonblicks bild för att hålla referens data uppdaterade. Ett exempel på en delta fråga visas nedan:
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 deletedObservera att Stream Analytics runtime kan köra ögonblicks bilds frågan med jämna mellanrum förutom delta-frågan för att lagra kontroll punkter.
Testa frågan
Det är viktigt att kontrol lera att din fråga returnerar den förväntade data uppsättning som Stream Analyticss jobbet kommer att använda som referens data. Om du vill testa din fråga går du till ininformation under jobb sto sektion på portalen. Du kan sedan välja exempel data på SQL Database referens indata. När exemplet blir tillgängligt kan du hämta filen och kontrol lera om de data som returneras är som förväntat. Om du vill optimera dina utvecklings-och test iterationer rekommenderar vi att du använder Stream Analytics verktyg för Visual Studio. Du kan också använda andra verktyg för att först se till att frågan returnerar rätt resultat från dig Azure SQL Database och sedan använder du den i ditt Stream Analytics-jobb.
Testa din fråga med Visual Studio Code
Installera Azure Stream Analytics verktyg och SQL Server (MSSQL) i Visual Studio Code och konfigurera ditt ASA-projekt. Mer information finns i snabb start: skapa ett Azure Stream Analytics jobb i Visual Studio Code och själv studie kursen för SQL Server (MSSQL).
Konfigurera dina SQL-referenser för data inmatning.

Välj ikonen SQL Server och klicka på Lägg till anslutning.

Fyll i anslutnings informationen.

Högerklicka på referens-SQL och välj Kör fråga.

Välj din anslutning.

Granska och verifiera resultatet av frågan.

Vanliga frågor och svar
Debiteras jag ytterligare kostnader genom att använda indata från SQL-referenser i Azure Stream Analytics?
Det finns inga ytterligare kostnader per strömnings enhet i Stream Analyticss jobbet. Stream Analyticss jobbet måste dock ha ett associerat Azure Storage-konto. Stream Analyticss jobbet frågar SQL DB (under jobb start och uppdaterings intervall) för att hämta referens data uppsättningen och lagrar ögonblicks bilden i lagrings kontot. Genom att lagra dessa ögonblicks bilder debiteras ytterligare avgifter på sidan med priser för Azure Storage-kontot.
Hur gör jag för att vet du att ögonblicks bilden av referens data från SQL DB och används i Azure Stream Analyticss jobbet?
Det finns två mått som filtreras efter logiskt namn (under mått Azure Portal) som du kan använda för att övervaka hälsan för SQL Database referens data inmatning.
- InputEvents: det här måttet mäter antalet poster som läses in från SQL Database referens data uppsättning.
- InputEventBytes: det här måttet mäter storleken på den referens data ögonblicks bild som lästs in i minnet för Stream Analytics jobbet.
Kombinationen av båda dessa mått kan användas för att härleda om jobbet frågar SQL Database att hämta referens data uppsättningen och sedan läsa in den till minnet.
Måste jag ha en särskild typ av Azure SQL Database?
Azure Stream Analytics kommer att fungera med vilken typ av Azure SQL Database som helst. Det är dock viktigt att förstå att uppdaterings frekvensen som angetts för dina data indata kan påverka inläsningen av frågan. Om du vill använda delta-frågealternativet rekommenderar vi att du använder temporala tabeller i Azure SQL Database.
Varför lagrar Azure Stream Analytics ögonblicks bilder i Azure Storage konto?
Stream Analytics garanterar händelsebearbetning exakt en gång och leverans av händelser minst en gång. I de fall där tillfälliga problem påverkar ditt jobb är en liten mängd omuppspelning nödvändig för att återställa status. Om du vill aktivera uppspelning måste du ha dessa ögonblicks bilder lagrade i ett Azure Storage-konto. Mer information om kontroll punkts återuppspelning finns i avsnittet om kontroll punkter och omuppspelning av begrepp i Azure Stream Analytics jobb.