Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Referenční data jsou statická nebo pomalu se měnící datová sada, kterou spojujete se svými streamovanými daty, abyste je obohatili, například přidáváním detailů o produktu do řetězce prodejních událostí. Azure Stream Analytics podporuje Azure SQL Database jako zdroj referenčních dat, takže si můžete tato data vyhledat a kombinovat s aktuálními vstupy.
Tento článek vám ukáže, jak nastavit Azure SQL Database jako referenční datový vstup pro práci Stream Analytics, a to pomocí jak portálu Azure, tak Visual Studio s nástroji Stream Analytics.
Přidejte referenční data SQL databáze pomocí portálu Azure
Použijte následující kroky k přidání Azure SQL Database jako referenčního vstupního zdroje pomocí portálu Azure:
Požadavky na portál
Vytvořte úlohu Stream Analytics.
Vytvořte účet úložiště, který bude používat úloha Stream Analytics.
Důležité
Azure Stream Analytics uchovává snapshoty v rámci tohoto úložného účtu. Při konfiguraci politiky udržení zajistěte, aby zvolené časové období zahrnovalo dobu obnovy, kterou chcete pro svou práci v Stream Analytics.
Vytvořte si Azure SQL Database s datovou sadou, kterou práce Stream Analytics používá jako referenční data.
Definování vstupu referenčních dat služby SQL Database
V úloze Stream Analytics vyberte vstupy v části Topologie úlohy. Vyberte Přidat referenční vstup a poté vyberte SQL Database.
Vyplňte vstupní konfiguraci Stream Analytics. Vyberte název databáze, název serveru a přihlašovací údaje k databázi. Pro pravidelné obnovování vstupu referenčních dat vyberte Zapnout a zadejte obnovovací frekvenci v DD:HH:MM. U velkých datových sad s krátkým intervalem aktualizace sleduje dotaz delta změny v referenčních datech tak, že načítá všechny řádky v databázi SQL Database, které byly vloženy nebo odstraněny mezi počátečním časem
@deltaStartTimea koncovým časem@deltaEndTime.Pro více informací viz delta dotaz.
Otestujte dotaz snímku v editoru dotazů SQL. Pro více informací viz Použijte SQL editor dotazů v portálu Azure pro připojení a dotazování dat.
Zadejte úložný účet v konfiguraci práce
Přejděte do nastavení úložného účtu v sekci Konfigurovat a pak vyberte Přidat účet úložiště.
Spusťte úlohu
- Poté, co nastavíte ostatní vstupy, výstupy a dotazy, začněte s Stream Analytics.
Přidejte referenční data SQL databáze pomocí Visual Studio
Použijte následující kroky k přidání Azure SQL Database jako referenčního vstupního zdroje pomocí Visual Studio:
Požadavky sady Visual Studio
Nainstalujte nástroje Stream Analytics pro Visual Studio. Nástroje Stream Analytics podporují následující verze Visual Studio:
- Visual Studio 2015
- Visual Studio 2019
Seznamte se s rychlým startem pro nástroje Stream Analytics pro Visual Studio.
Vytvořte si účet úložiště.
Důležité
Azure Stream Analytics uchovává snapshoty v rámci tohoto úložného účtu. Při konfiguraci politiky udržení zajistěte, aby zvolené časové období zahrnovalo dobu obnovy, kterou chcete pro svou práci v 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 .
Následující tvrzení vytváří ukázkovou tabulku:
create table chemicals(Id Bigint,Name Nvarchar(max),FullName Nvarchar(max));
Zvolte si předplatné.
V sadě Visual Studio v nabídce Zobrazení vyberte Průzkumník serveru.
Stiskněte a podržte (nebo klikněte pravým tlačítkem na) Azure, vyberte Připojit k předplatnému Microsoft Azure a přihlaste se pomocí svého účtu Azure.
Vytvoření projektu Stream Analytics
Vyberte Soubor>nový projekt.
V seznamu šablon vyberte Stream Analytics a poté Azure Stream Analytics Application.
Zadejte název projektu, lokalitu a název řešení a poté vyberte OK.
Definování vstupu referenčních dat služby SQL Database
Vytvořte nový vstup.
Otevřete Input.json v Průzkumník řešení.
Vyplňte konfiguraci vstupu Stream Analytics. Zadejte název databáze, název serveru, typ obnovy a obnovovací frekvenci. Zadejte obnovovací frekvenci ve formátu
DD:HH:MM.
Pokud zvolíte Spustit pouze jednou nebo Spustit pravidelně, Visual Studio vygeneruje jeden SQL CodeBehind soubor s názvem [Input Alias].snapshot.sql v projektu pod uzlem Input.json souboru.
Pokud zvolíte Obnovovat periodicky s Deltou, Visual Studio vygeneruje dva SQL CodeBehind soubory: [Input Alias].snapshot.sql a [Input Alias].delta.sql.
Otevřete soubor SQL v editoru a zapište dotaz SQL.
Pokud používáte Visual Studio 2019 a nainstalovali jste SQL Server Data Tools, můžete dotaz otestovat výběrem Execute. Otevře se průvodce, který vám pomůže připojit se k SQL databázi, a výsledek dotazu se zobrazí v okně dole.
Zadejte účet úložiště
Otevřete JobConfig.json pro určení úložného účtu pro ukládání SQL referenčních snapshotů.
Místní testování a nasazení do Azure
Než úlohu nasadíte do Azure, můžete dotazovací logiku otestovat lokálně proti živým vstupním datům. Pro více informací o této funkci viz Testování živých dat lokálně pomocí nástrojů Azure Stream Analytics pro Visual Studio (Preview). Po dokončení testování vyberte Odeslat do Azure. Informace o tom, jak úlohu spustit, najdete v rychlém startu Vytvoření úlohy Stream Analytics pomocí nástrojů Azure Stream Analytics pro Visual Studio.
Delta dotaz
Když použijete delta dotaz, použijte temporal tables v Azure SQL Database.
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 queryVytvořte dotaz na snímek.
Pomocí parametru @snapshotTime určete modulu runtime služby Stream Analytics, aby načetl referenční datovou sadu z temporální tabulky služby SQL Database platné v daném systémovém čase. Pokud tento parametr neuvedete, riskujete, že získáte nepřesnou základní referenční datovou sadu kvůli posunu hodin. Následující příklad ukazuje kompletní dotaz na snapshot:
SELECT DeviceId, GroupDeviceId, [Description] FROM dbo.DeviceTemporal FOR SYSTEM_TIME AS OF @snapshotTimeVytvořte delta dotaz.
Tento dotaz získá všechny řádky v SQL databázi, které byly vloženy nebo smazány během začátku, @deltaStartTime, a koncového času @deltaEndTime. Rozdílový dotaz musí vrátit stejné sloupce jako dotaz pro snímek a také sloupec operation. Tento sloupec určuje, zda je řádek vložen nebo smazán 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 watermark na straně SQL Serveru, aby bylo zajištěno, že všechny aktualizace v období delta budou správně zachyceny. Použití delta dotazu bez vodoznaku může vést k nesprávné referenční datové sadě.
U aktualizovaných záznamů temporální tabulka vede evidenci tím, že zaznamená operaci vložení a odstranění. Runtime Stream Analytics pak aplikuje výsledky delta dotazu na předchozí snapshot, aby udržel referenční data aktuální. Následující příklad ukazuje delta dotaz:
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 deletedModul runtime služby Stream Analytics může kromě delta dotazu pravidelně spouštět také dotaz na snímek za účelem ukládání kontrolních bodů.
Důležité
Když používáte dotazy s delta referenčními daty, neprovádějte opakované stejné aktualizace tabulky s časovými referencemi. To může vést k nesprávným výsledkům. Zde je příklad, který může způsobit, že referenční data budou produkovat 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);Tato podmínka zajišťuje, že nedochází k duplicitním aktualizacím.
Otestování dotazu
Ověřte, že váš dotaz vrací očekávanou datovou sadu, kterou úloha Stream Analytics používá jako referenční data. Pro ověření dotazu přejděte do Inputs v sekci Job topology v portálu. Poté na referenčním vstupu SQL Database vyberte Ukázková data. Jakmile bude vzorek dostupný, můžete si soubor stáhnout a zkontrolovat, zda jsou vrácená data podle očekávání. Pro optimalizaci vývojových a testovacích iterací použijte nástroje Stream Analytics pro Visual Studio. Můžete také použít jakýkoli jiný nástroj, který preferujete, abyste nejprve zajistili, že dotaz vrátí správné výsledky z vaší Azure SQL Database, a pak tento dotaz použít ve své práci v oblasti 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 aplikaci Visual Studio Code a v kurzu k rozšíření SQL Server (mssql).
Nakonfigurujte vstup referenčních dat SQL.
Vyberte ikonu SQL Server a vyberte Přidat připojení.
Vyplňte informace o připojení.
Vyberte a podržte (nebo klikněte pravým tlačítkem) v referenčním SQL a vyberte Spustit dotaz.
Zvolte připojení.
Zkontrolujte a ověřte výsledek dotazu.
Nejčastější dotazy
Přináším navíc náklady při zadávání SQL referenčních dat v Azure Stream Analytics?
V práci Stream Analytics nejsou žádné další náklady za jednotku streamování . Úloha Stream Analytics ale musí mít přidružený účet úložiště Azure. Úloha Stream Analytics dotazuje SQL databázi (během intervalu spuštění a obnovy úlohy), aby získala referenční dataset, a ukládá tento snapshot do úložného účtu. Ukládání těchto snímků znamená dodatečné poplatky uvedené na stránce s cenami pro účet Azure úložiště.
Jak poznám, zda je dotazován referenční datový snapshot ze SQL Database a používá se v práci Azure Stream Analytics?
Dvě metriky, filtrované podle logického názvu (v sekci Metrics v Azure portálu), vám umožní sledovat stav referenčních dat SQL databáze.
- InputEvents: Tato metrika měří počet záznamů načtených z referenční datové sady SQL databáze.
- InputEventBytes: Tato metrika měří velikost snímku referenčních dat načteného do paměti úlohy Stream Analytics.
Obě metriky dohromady určují, zda úloha vyhledá SQL databázi pro načtení referenční datasetu a poté ji načte do paměti.
Potřebuji speciální typ Azure SQL Database?
Azure Stream Analytics pracuje s jakýmkoli typem Azure SQL Database. Obnovovací frekvence, kterou nastavíte pro vstup referenčních dat, však může ovlivnit zatížení dotazu. Pro použití možnosti delta dotazu použijte časové tabulky v Azure SQL Database.
Proč Azure Stream Analytics ukládá snímky v účtu Azure Storage?
Stream Analytics zaručuje přesně jednorázové zpracování událostí a alespoň jednorázové doručení událostí. Pokud dočasné problémy ovlivňují vaši práci, je potřeba trochu přehrávání pro obnovení stavu. Pro povolení přehrávání musí být tyto snímky uloženy v účtu Azure Storage. Další informace o opakovaném zpracování od kontrolního bodu najdete v článku Koncepty kontrolních bodů a opakovaného zpracování v úlohách Azure Stream Analytics.
Související obsah
- Vysvětlení výstupů z Azure Stream Analytics
- Výstup Azure Stream Analytics do služby Azure SQL Database
- Zvýšení propustnosti pro databázi Azure SQL Database z Azure Stream Analytics
- Použití spravovaných identit pro přístup ke službě Azure SQL Database nebo Azure Synapse Analytics z úlohy Azure Stream Analytics
- Aktualizace nebo sloučení záznamů ve službě Azure SQL Database pomocí Azure Functions
- Rychlý start: Vytvoření úlohy Stream Analytics pomocí webu Azure Portal