Použití referenčních dat z SQL Database pro úlohu Azure Stream Analytics

Azure Stream Analytics podporuje Azure SQL Database jako zdroj vstupu pro referenční data. SQL Database můžete použít jako referenční data pro úlohu Stream Analytics na webu Azure Portal a v sadě Visual Studio s nástroji Stream Analytics. Tento článek ukazuje, jak provádět obě metody.

portál Azure

Pomocí následujících kroků přidejte Službu Azure SQL Database jako referenční zdroj vstupu pomocí webu Azure Portal:

Požadavky na portál

  1. Vytvoření úlohy Stream Analytics

  2. Vytvořte účet úložiště, který bude používat úloha Stream Analytics.

    Důležité

    Azure Stream Analytics uchovává snímky v rámci tohoto účtu úložiště. Při konfiguraci zásad uchovávání informací je nezbytné zajistit, aby zvolený časový rozsah efektivně zahrnoval požadovanou dobu obnovení pro vaši úlohu Stream Analytics.

  3. Vytvořte službu Azure SQL Database s datovou sadou, která se použije jako referenční data úlohou Stream Analytics.

Definování vstupu referenčních dat služby SQL Database

  1. V úloze Stream Analytics vyberte vstupy v části Topologie úlohy. Klikněte na Přidat referenční vstup a zvolte SQL Database.

    Inputs is selected in the left navigation pane. On Inputs, + Add reference input is selected, revealing a drop-down list that shows the values Blob storage and SQL Database.

  2. Vyplňte vstupní konfigurace Stream Analytics. Zvolte název databáze, název serveru, uživatelské jméno a heslo. Pokud chcete, aby se vstup referenčních dat pravidelně aktualizoval, zvolte "Zapnuto" a určete obnovovací frekvenci v DD:HH:MM. Pokud máte velké datové sady s krátkou obnovovací rychlostí. Rozdílový dotaz umožňuje sledovat změny v referenčních datech opětovným načtením všech řádků ve službě SQL Database, které byly vloženy nebo odstraněny v počátečním čase, @deltaStartTimea koncovým časem @deltaEndTime.

Podívejte se na rozdílový dotaz.

When SQL Database is selected, the SQL Database New input page appears. There is a configuration form in the left pane, and a Snapshot query in the right pane.

  1. Otestujte dotaz snímku v editoru dotazů SQL. Další informace najdete v tématu Použití editoru dotazů SQL na webu Azure Portal k připojení a dotazování dat.

Zadání účtu úložiště v konfiguraci úlohy

Přejděte do nastavení účtu úložiště v části Konfigurovat a vyberte Přidat účet úložiště.

Storage account settings is selected in the left pane. There is an Add storage account button in the right pane.

Spuštění úlohy

Jakmile nakonfigurujete další vstupy, výstupy a dotazy, můžete spustit úlohu Stream Analytics.

Nástroje pro Visual Studio

Pomocí následujících kroků přidejte Azure SQL Database jako referenční zdroj vstupu pomocí sady Visual Studio:

Požadavky sady Visual Studio

  1. Nainstalujte nástroje Stream Analytics pro Visual Studio. Podporují se následující verze sady Visual Studio:

    • Visual Studio 2015
    • Visual Studio 2019
  2. Seznamte se s nástroji Stream Analytics pro Rychlý start pro Visual Studio .

  3. Vytvořte si účet úložiště.

    Důležité

    Azure Stream Analytics uchovává snímky v rámci tohoto účtu úložiště. Při konfiguraci zásad uchovávání informací je nezbytné zajistit, aby zvolený časový rozsah efektivně zahrnoval požadovanou dobu obnovení pro vaši úlohu Stream Analytics.

Vytvoření tabulky SQL Database

Pomocí aplikace SQL Server Management Studio vytvořte tabulku pro uložení referenčních dat. Podrobnosti najdete v tématu Návrh první služby Azure SQL Database pomocí aplikace SSMS .

Ukázková tabulka použitá v následujícím příkladu byla vytvořena z následujícího příkazu:

create table chemicals(Id Bigint,Name Nvarchar(max),FullName Nvarchar(max));

Zvolte si předplatné.

  1. V sadě Visual Studio v nabídce Zobrazení vyberte Průzkumník serveru.

  2. Klikněte pravým tlačítkem na Azure, vyberte Připojení k předplatnému Microsoft Azure a přihlaste se pomocí svého účtu Azure.

Vytvoření projektu Stream Analytics

  1. Vyberte Soubor > nový projekt.

  2. V seznamu šablon na levé straně vyberte Stream Analytics a pak vyberte Aplikace Azure Stream Analytics.

  3. Zadejte název projektu, umístění a název řešení a vyberte OK.

    The Stream Analytics template is selected, Azure Stream Analytics Application is selected, and the Name, Location, and Solution names boxes are highlighted.

Definování vstupu referenčních dat služby SQL Database

  1. Vytvořte nový vstup.

    On Add New Item, Input is selected.

  2. Poklikejte na Input.json v Průzkumník řešení.

  3. Vyplňte konfiguraci vstupu Stream Analytics. Zvolte název databáze, název serveru, typ aktualizace a obnovovací frekvenci. Zadejte obnovovací frekvenci ve formátu DD:HH:MM.

    In Stream Analytics Input Configuration, values are entered or selected from drop-down lists.

    Pokud zvolíte Možnost Spustit pouze jednou nebo Spustit pravidelně, vygeneruje se v projektu v uzlu souboru Input.json jeden soubor SQL CodeBehind s názvem [Alias vstupu].snapshot.sql.

    The SQL CodeBehind file Chemicals.snapshot.sql is highlighted.

    Pokud zvolíte Možnost Aktualizovat pravidelně pomocí delta, vygenerují se dva soubory SQL CodeBehind: [Alias vstupu].snapshot.sql a [Vstupní alias].delta.sql.

    The SQL CodeBehind files Chemicals.delta.sql and Chemicals.snapshot.sql are highlighted.

  4. Otevřete soubor SQL v editoru a zapište dotaz SQL.

  5. Pokud používáte Visual Studio 2019 a máte nainstalované nástroje SQL Server Data, můžete dotaz otestovat kliknutím na Spustit. Zobrazí se okno průvodce, které vám pomůže připojit se ke službě SQL Database a výsledek dotazu se zobrazí v okně dole.

Zadání účtu úložiště

Otevřete JobConfig.json a zadejte účet úložiště pro ukládání referenčních snímků SQL.

Stream Analytics Job Configure Configuration is shown with default values. The Global Storage Settings are highlighted.

Místní testování a nasazení do Azure

Před nasazením úlohy do Azure můžete logiku dotazu otestovat místně proti živým vstupním datům. Další informace o této funkci najdete v tématu Místní testování živých dat pomocí nástrojů Azure Stream Analytics pro Visual Studio (Preview). Po dokončení testování klikněte na Odeslat do Azure. Projděte si rychlý start k vytvoření Stream Analytics pomocí nástrojů Azure Stream Analytics pro Visual Studio a zjistěte, jak úlohu spustit.

Rozdílový dotaz

Při použití rozdílového dotazu se doporučuje dočasné tabulky ve službě Azure SQL Database .

  1. Vytvořte dočasnou tabulku ve službě 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
    
  2. Vytvořte dotaz na snímek.

    Pomocí parametru @snapshotTime instruujte modulu runtime Stream Analytics, aby získal referenční datovou sadu z dočasné tabulky SLUŽBY SQL Database platnou v systémové době. Pokud tento parametr nezadáte, riskujete získání nepřesné základní referenční datové sady kvůli nerovnoměrné distribuci hodin. Příklad dotazu na úplný snímek je uvedený níže:

       SELECT DeviceId, GroupDeviceId, [Description]
       FROM dbo.DeviceTemporal
       FOR SYSTEM_TIME AS OF @snapshotTime
    
  3. Vytvořte rozdílový dotaz.

    Tento dotaz načte všechny řádky ve službě SQL Database, které byly vloženy nebo odstraněny během počátečního času, @deltaStartTime a koncového času @deltaEndTime. Rozdílový dotaz musí vrátit stejné sloupce jako dotaz snímku a také operaci sloupce. Tento sloupec definuje, jestli se řádek vloží nebo odstraní mezi @deltaStartTime a @deltaEndTime. Výsledné řádky jsou označeny jako 1 , pokud byly vloženy záznamy, nebo 2 , pokud byly odstraněny. Dotaz musí také přidat vodoznak ze strany SQL Serveru, aby se zajistilo, že se všechny aktualizace v období rozdílu zachytí odpovídajícím způsobem. Použití rozdílového dotazu bez vodoznaku může vést k nesprávné referenční datové sadě.

    U záznamů, které byly aktualizovány, dočasná tabulka uchovává účetnictví zachycením operace vložení a odstranění. Modul runtime Stream Analytics pak použije výsledky rozdílového dotazu na předchozí snímek, aby byla referenční data aktuální. Příklad rozdílového dotazu je uvedený níže:

       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
    

    Mějte na paměti, že modul runtime Stream Analytics může kromě rozdílového dotazu pravidelně spouštět i dotaz na snímky pro ukládání kontrolních bodů.

    Důležité

    Pokud používáte rozdílové dotazy referenčních dat, neprodávajte identické aktualizace tabulky dočasných referenčních dat několikrát. To může způsobit vytvoření nesprávných výsledků. Tady je příklad, který může způsobit, že referenční data způsobí nesprávné výsledky:

     UPDATE myTable SET VALUE=2 WHERE ID = 1;
     UPDATE myTable SET VALUE=2 WHERE ID = 1;      
    

    Správný příklad:

     UPDATE myTable SET VALUE = 2 WHERE ID = 1 and not exists (select * from myTable where ID = 1 and value = 2);
    

    Tím se zajistí, že se neprovedou žádné duplicitní aktualizace.

Otestování dotazu

Je důležité ověřit, že dotaz vrací očekávanou datovou sadu, kterou bude úloha Stream Analytics používat jako referenční data. Pokud chcete otestovat dotaz, přejděte do části Vstup v části Topologie úlohy na portálu. Pak můžete vybrat ukázková data ve vstupu reference k SQL Database. Jakmile bude ukázka k dispozici, můžete si stáhnout soubor a zkontrolovat, jestli vrácená data jsou podle očekávání. Pokud chcete optimalizovat vývoj a iterace testů, doporučujeme použít nástroje Stream Analytics pro Visual Studio. Můžete také jakýkoli jiný nástroj podle vašich preferencí nejprve zajistit, aby dotaz vrátil správné výsledky z azure SQL Database a pak ho použil ve své úloze Stream Analytics.

Testování dotazu pomocí editoru Visual Studio Code

Nainstalujte nástroje Azure Stream Analytics aSQL Server (mssql) do editoru Visual Studio Code a nastavte projekt ASA. Další informace najdete v tématu Rychlý start: Vytvoření úlohy Azure Stream Analytics v editoru Visual Studio Code a kurzu rozšíření SQL Server (mssql).

  1. Nakonfigurujte vstup referenčních dat SQL.

    A Visual Studio Code editor (tab) shows ReferenceSQLDatabase.json.

  2. Vyberte ikonu SQL Serveru a klikněte na Přidat Připojení ion.

    + Add Connection appears in the left pane and is highlighted.

  3. Vyplňte informace o připojení.

    The two boxes for database and server information are highlighted.

  4. Klikněte pravým tlačítkem myši na odkaz SQL a vyberte Spustit dotaz.

    Execute Query is highlighted in the context menu.

  5. Zvolte připojení.

    The dialog box says

  6. Zkontrolujte a ověřte výsledek dotazu.

    The query search results are in a VS Code editor tab.

Nejčastější dotazy k

Účtují se mi další náklady pomocí vstupu referenčních dat SQL ve službě Azure Stream Analytics?

V úloze Stream Analytics nejsou žádné další náklady na jednotku streamování. Úloha Stream Analytics ale musí mít přidružený účet úložiště Azure. Úloha Stream Analytics se dotazuje databáze SQL (během intervalu spuštění a aktualizace úlohy) a načte referenční datovou sadu a uloží tento snímek do účtu úložiště. Při ukládání těchto snímků se budou účtovat další poplatky, které jsou podrobně popsané na stránce s cenami účtu úložiště Azure.

Návody znát, že se dotazuje snímek referenčních dat z DATABÁZE SQL a používá se v úloze Azure Stream Analytics?

Existují dvě metriky filtrované podle logického názvu (na webu Azure Portal metrik), které můžete použít ke sledování stavu vstupu referenčních dat služby SQL Database.

  • InputEvents: Tato metrika měří počet záznamů načtených z referenční datové sady služby SQL Database.
  • InputEventBytes: Tato metrika měří velikost snímku referenčních dat načteného do paměti úlohy Stream Analytics.

Kombinace obou těchto metrik se dá použít k odvození, jestli úloha dotazuje službu SQL Database, aby načítala referenční datovou sadu a pak ji načítala do paměti.

Budu vyžadovat speciální typ služby Azure SQL Database?

Azure Stream Analytics bude fungovat s jakýmkoli typem služby Azure SQL Database. Je ale důležité vědět, že frekvence aktualizace nastavená pro vstup referenčních dat může ovlivnit zatížení dotazu. Pokud chcete použít možnost rozdílového dotazu, doporučujeme používat dočasné tabulky ve službě Azure SQL Database.

Proč Azure Stream Analytics ukládá snímky v účtu služby Azure Storage?

Stream Analytics zaručuje právě jedno zpracování událostí a minimálně jedno doručení událostí. V případech, kdy přechodné problémy ovlivňují vaši úlohu, je pro obnovení potřeba malé množství opakování. Pokud chcete povolit přehrání, musíte mít tyto snímky uložené v účtu Azure Storage. Další informace o přehrání kontrolního bodu najdete v tématu Kontrolní bod a přehrání konceptů v úlohách Azure Stream Analytics.

Další kroky