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.
Streaming ingestace je užitečná pro načítání dat, když potřebujete nízkou latenci mezi ingestací a dotazem. Zvažte použití příjmu streamovaných dat v následujících scénářích:
- Je vyžadována latence menší než sekunda.
- Optimalizace provozního zpracování mnoha tabulek, kde je datový proud do každé tabulky relativně malý (několik záznamů za sekundu), ale celkový objem příjmu dat je vysoký (tisíce záznamů za sekundu).
Pokud je datový proud do každé tabulky vysoký (přes 4 GB za hodinu), zvažte použití frontovaného ingestování dat.
Další informace o různých metodách příjmu dat najdete v přehledu příjmu dat.
Ukázky kódu založené na předchozích verzích sady SDK najdete v archivovaného článku.
Zvolte odpovídající typ příjmu streamovaných dat.
Podporují se dva typy příjmu dat streamování:
| Typ příjmu dat | Popis |
|---|---|
| Datové připojení | Služby Event Hubs, IoT Hub a datové připojení Event Grid mohou využívat streamovací příjem, pokud je povoleno na úrovni clusteru. Rozhodnutí o použití příjmu streamovaných dat se provádí podle zásad příjmu streamování nakonfigurovaných v cílové tabulce. Informace o správě datových připojení najdete v tématu Event Hub, IoT Hub a Event Grid. |
| Vlastní ingestování dat | Vlastní příjem dat vyžaduje, abyste napsali aplikaci, která používá některou z klientských knihoven Azure Data Exploreru. Informace v tomto článku slouží ke konfiguraci přizpůsobeného příjmu dat. Můžete také najít užitečnou ukázkovou aplikaci pro streamování příjmu dat na C?view=azure-data-explorer&preserve-view=true#. |
Následující tabulka vám pomůže zvolit typ příjmu dat, který je vhodný pro vaše prostředí:
| Kritérium | Datové připojení | Vlastní příjem dat |
|---|---|---|
| Zpoždění dat mezi zahájením příjmu dat a daty dostupnými pro dotaz | Delší zpoždění | Kratší zpoždění |
| Režijní náklady na vývoj | Rychlé a snadné nastavení bez režijních nákladů na vývoj | Vysoká režie při vývoji aplikace pro přijímání dat, zpracování chyb a zajištění konzistence dat. |
Poznámka:
Proces můžete spravovat, abyste v clusteru povolili a zakázali příjem dat streamování pomocí webu Azure Portal nebo programově v jazyce C#. Pokud používáte jazyk C# pro vlastní aplikaci, může být vhodnější použít programový přístup.
Požadavky
- Předplatné Azure. Vytvořte bezplatný účet Azure.
Důležité informace o výkonu a provozu
Hlavní faktory, které mohou ovlivnit zpracování streamovaných dat, jsou:
- Velikost virtuálního počítače a clusteru: Výkon streamovaného příjmu dat a kapacita se škáluje se zvětšujícími se velikostmi virtuálních počítačů a clusterů. Počet souběžných žádostí o příjem dat je omezený na šest na jádro. Například u 16 jader SKU, například D14 a L16, je maximální podporovaná zátěž 96 souběžných požadavků na příjem dat. U dvou základních skladových položek, jako je D11, je maximální podporovaná zátěž 12 souběžných požadavků na příjem dat.
- Omezení velikosti dat: Limit velikosti dat pro požadavek na příjem dat je 4 MB. To zahrnuje všechna data vytvořená pro zásady aktualizace během příjmu dat.
- Aktualizace schématu: Aktualizace schématu, jako je vytváření a úpravy tabulek a mapování ingestace, můžou trvat až pět minut pro službu pro streamingovou ingestaci. Další informace najdete v tématu Streamování příjmu dat a změny schématu.
- Kapacita SSD: Povolení streamovacího příjmu dat v clusteru, i když data nejsou přijímána prostřednictvím streamování, využívá část místního disku SSD počítačů clusteru pro data ze streamovacího příjmu a snižuje dostupné úložiště pro aktivní mezipaměť.
- Kurzory databáze: Při streamovacím příjmu dat se může aktualizace kurzoru databáze opožďovat až o 60 sekund za dostupností dat. Toto zpoždění vzniká z asynchronních procesů uzavírání na pozadí, které převádějí data z vyrovnávací paměti streamování na trvalé úseky úložiště ve sloupcích, během nichž se aktualizuje kurzor (používaný pro přírůstkové zpracování, průběžné exporty nebo materializovaná zobrazení). Pokud vaše úloha vyžaduje okamžitou konzistenci kurzoru pro sémantiku "pouze jednou," zvažte místo toho použití příjmu pomocí front nebo zohledněte tuto potenciální prodlevu ve vaší aplikační logice.
Povolení příjmu streamovaných dat v clusteru
Než budete moci používat příjem dat streamování, musíte povolit funkci v clusteru a definovat zásady příjmu streamování. Funkci můžete povolit při vytváření clusteru nebo ji přidat do existujícího clusteru.
Varování
Před povolením příjmu streamovaných dat zkontrolujte omezení .
Povolit streamovací příjem při vytváření nového clusteru
Příjem dat streamování můžete povolit při vytváření nového clusteru pomocí webu Azure Portal nebo programově v jazyce C#.
Při vytváření clusteru podle kroků v Vytvoření clusteru a databáze Azure Data Exploreru, na kartě Konfigurace vyberte Streamovací příjem >zapnuto.
Povolení příjmu streamovaných dat v existujícím clusteru
Pokud máte existující cluster, můžete ingestování streamování povolit pomocí webu Azure Portal nebo programově v jazyce C#.
Na webu Azure Portal přejděte do clusteru Azure Data Exploreru.
V Nastavení vyberte Konfigurace.
V podokně Konfigurace vyberte Zapnuto a povolte streamovací příjem.
Zvolte Uložit.
Vytvoření cílové tabulky a definování zásad
Vytvořte tabulku pro příjem streamovaných dat a definujte související zásady použitím Azure portálu nebo programováním v C#.
Na webu Azure Portal přejděte do svého clusteru.
Vyberte Dotaz.
Pokud chcete vytvořit tabulku, která bude přijímat data prostřednictvím příjmu streamovaných dat, zkopírujte do podokna Dotaz následující příkaz a vyberte Spustit.
.create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
Zkopírujte jeden z následujících příkazů do podokna Dotaz a vyberte Spustit. Tím se definují zásady streamovacího příjmu dat na tabulce, kterou jste vytvořili, nebo na databázi, která tuto tabulku obsahuje.
Návod
Zásada definovaná na úrovni databáze se vztahuje na všechny existující a budoucí tabulky v databázi. Když zásadu povolíte na úrovni databáze, není nutné ji povolit pro každou tabulku.
K definování zásad v tabulce, kterou jste vytvořili, použijte:
.alter table TestTable policy streamingingestion enableK definování zásad databáze obsahující tabulku, kterou jste vytvořili, použijte:
.alter database StreamingTestDb policy streamingingestion enable
Vytvořte aplikaci pro streamovací příjem dat do vašeho clusteru.
Vytvořte aplikaci pro příjem dat do clusteru pomocí preferovaného jazyka.
Poznámka:
Informace o příjmu dat ve frontě najdete v pokynech k vytvoření aplikace pro získání dat pomocí příjmu dat ve frontě.
using System.IO;
using System.Threading.Tasks;
using Kusto.Data; // Requires Package Microsoft.Azure.Kusto.Data
using Kusto.Data.Common;
using Kusto.Ingest; // Requires Package Microsoft.Azure.Kusto.Ingest
namespace StreamingIngestion;
class Program
{
static async Task Main(string[] args)
{
var clusterPath = "https://<clusterName>.<region>.kusto.windows.net";
var appId = "<appId>";
var appKey = "<appKey>";
var appTenant = "<appTenant>";
// Create Kusto connection string with App Authentication
var connectionStringBuilder = new KustoConnectionStringBuilder(clusterPath)
.WithAadApplicationKeyAuthentication(
applicationClientId: appId,
applicationKey: appKey,
authority: appTenant
);
// Create a disposable client that will execute the ingestion
using var client = KustoIngestFactory.CreateStreamingIngestClient(connectionStringBuilder);
// Ingest from a compressed file
var fileStream = File.Open("MyFile.gz", FileMode.Open);
// Initialize client properties
var ingestionProperties = new KustoIngestionProperties(databaseName: "<databaseName>", tableName: "<tableName>");
// Create source options
var sourceOptions = new StreamSourceOptions { CompressionType = DataSourceCompressionType.gzip, };
// Ingest from stream
await client.IngestFromStreamAsync(fileStream, ingestionProperties, sourceOptions);
}
}
Zakázání příjmu streamovaných dat v clusteru
Varování
Zakázání streamovacího příjmu může trvat několik hodin.
Před zakázáním příjmu dat streamování v clusteru Azure Data Exploreru zakažte zásady příjmu streamování ze všech relevantních tabulek a databází. Při odebrání zásad streamování příjmu dat se v clusteru Azure Data Explorer mění uspořádání dat. Streamovaná data se přesouvají z počátečního úložiště do trvalého úložiště ve sloupcovém úložišti (rozsahy nebo oddíly). V závislosti na množství dat v počátečním úložišti může tento proces trvat několik sekund až několik hodin.
Zrušení zásad pro streamovací příjem
Zásady příjmu streamování můžete odstranit pomocí webu Azure Portal nebo programově v jazyce C#.
Na webu Azure Portal přejděte do clusteru Azure Data Exploreru a vyberte Dotaz.
Pokud chcete z tabulky odstranit zásady příjmu streamovaných dat, zkopírujte do podokna Dotaz následující příkaz a vyberte Spustit.
.delete table TestTable policy streamingingestion
V Nastavení vyberte Konfigurace.
V podokně Konfigurace vyberte Vypnuto a zakažte streamovací ingest.
Zvolte Uložit.
Omezení
- Mapování dat musí být předem vytvořené pro použití při streamovaném příjmu dat. Jednotlivé požadavky na příjem datového streamování nepodporují mapování dat inline.
- U streamovaných dat příjmu dat není možné nastavit značky rozsahu.
-
Aktualizace zásad
- Zásady aktualizace můžou odkazovat pouze na nově přijatá data ve zdrojové tabulce, a ne na žádná jiná data ani tabulky v databázi.
- Modul plug-in Pythonu se nepodporuje.
- Když se zásada aktualizace s transakčními zásadami nezdaří, opakování se vrátí do dávkového příjmu dat.
- U kaskádových zásad aktualizací , které zahrnují
joinoperátora, je nutné zakázat příjem streamů u všech nadřazených tabulek. Zvažte například kaskádové zásady aktualizace, kde tabulka1 aktualizuje tabulku 2, tabulka2 aktualizuje tabulku 3 a tabulku 3 aktualizuje tabulku 4. Pokud zásady aktualizace tabulky Table4 zahrnují spojení, musíte zakázat streamové ingestování u tabulek Table1, Table2 a Table3.
- Pokud je v clusteru, který slouží jako vedoucí pro sledující databáze, povolený streamovací příjem, musí být streamovací příjem povolený také na následujících clusterech, aby mohly sledovat data streamovaného příjmu. Totéž platí pro případ, kdy jsou data clusteru sdílena prostřednictvím Data Share.