Datové připojení Azure Event Hubs

Azure Event Hubs je platforma pro streamování velkých objemů dat a služba pro příjem událostí. Azure Data Explorer nabízí nepřetržitý příjem dat ze služby Event Hubs spravované zákazníkem.

Kanál příjmu dat služby Event Hubs přenáší události do Azure Data Exploreru v několika krocích. Nejprve vytvoříte centrum událostí na webu Azure Portal. Pak v Azure Data Exploreru vytvořte cílovou tabulku, do které se data v určitém formátu ingestují pomocí zadaných vlastností příjmu dat. Připojení služby Event Hubs musí vědět o směrování událostí. Data mohou být vložena s vybranými vlastnostmi podle vlastností systému událostí. Vytvořte připojení ke službě Event Hubs, abyste vytvořili centrum událostí a odeslali události. Tento proces je možné spravovat prostřednictvím webu Azure Portal, programově pomocí C# nebo Pythonu nebo pomocí šablony Azure Resource Manageru.

Obecné informace o příjmu dat v Azure Data Exploreru najdete v přehledu příjmu dat v Azure Data Exploreru.

Možnosti ověřování datových připojení Azure Data Exploreru

  • Datové připojení založené na spravované identitě (doporučeno): Použití datového připojení založeného na spravované identitě je nejbezpečnější způsob připojení ke zdrojům dat. Poskytuje úplnou kontrolu nad schopností načítat data ze zdroje dat. Nastavení datového připojení pomocí spravované identity vyžaduje následující kroky:

    1. Přidejte do clusteru spravovanou identitu.
    2. Udělte oprávnění spravované identitě ve zdroji dat. Pokud chcete načíst data ze služby Azure Event Hubs, musí mít spravovaná identita oprávnění příjemce dat služby Azure Event Hubs.
    3. Nastavte zásady spravované identity v cílových databázích.
    4. Vytvoření datového připojení pomocí ověřování spravované identity k načtení dat

    Upozornění

    Pokud jsou oprávnění spravované identity odebrána ze zdroje dat, datové připojení už nebude fungovat a nebude možné načíst data ze zdroje dat.

  • Datové připojení založené na klíčích: Pokud pro datové připojení není zadané ověřování spravované identity, připojení se automaticky nastaví na ověřování založené na klíči. Připojení založená na klíčích načítají data pomocí připojovací řetězec prostředků, jako je azure Event Hubs připojovací řetězec. Azure Data Explorer získá připojovací řetězec prostředku pro zadaný prostředek a bezpečně ho uloží. Potom se připojovací řetězec použije k načtení dat ze zdroje dat.

    Upozornění

    Pokud se klíč otočí, datové připojení už nebude fungovat a nebude možné načíst data ze zdroje dat. Pokud chcete tento problém vyřešit, aktualizujte nebo znovu vytvořte datové připojení.

Formát dat

Poznámka:

  • Příjem dat ze služby Event Hubs nepodporuje formát RAW.
  • Registr schématu služby Azure Event Hubs a Avro bez schématu se nepodporují.
  • Data je možné komprimovat pomocí gzip algoritmu komprese. Dynamicky můžete zadat Compression pomocí vlastností příjmu dat nebo v nastavení statického datového připojení.
  • Komprese dat není podporována u binárních formátů (Avro, ApacheAvro, Parquet, ORC a W3CLOGFILE).
  • Vlastní kódování a vložené systémové vlastnosti nejsou podporovány binárními formáty a komprimovanými daty.
  • Při použití binárních formátů (Avro, ApacheAvro, Parquet, ORC a W3CLOGFILE) a mapování příjmu dat musí pořadí polí v definici mapování příjmu dat odpovídat pořadí odpovídajících sloupců v tabulce.

Vlastnosti služby Event Hubs

Azure Data Explorer podporuje následující vlastnosti služby Event Hubs:

  • Uzavřená sada vlastností příjmu dat, která pomáhá směrovat událost do příslušné tabulky.
  • Uzavřená sada vlastností systému událostí, které lze vložit do dat na základě daného mapování.

Poznámka:

Ingestování vlastních vlastností služby Event Hubs, které se používají k přidružení metadat k událostem, se nepodporuje. Pokud potřebujete ingestovat vlastní vlastnosti, odešlete je do textu dat události. Další informace naleznete v tématu Ingestování vlastních vlastností.

Vlastnosti příjmu dat

Vlastnosti příjmu dat instruují proces příjmu dat, kam se mají data směrovat a jak je zpracovat. Vlastnosti příjmu událostí můžete zadat pomocí EventData.Properties. Můžete nastavit následující vlastnosti:

Poznámka:

V názvech vlastností se rozlišují malá a velká písmena.

Vlastnost Popis
Databáze V cílové databázi se rozlišují malá a velká písmena. Ve výchozím nastavení se data ingestují do cílové databáze přidružené k datovému připojení. Tato vlastnost slouží k přepsání výchozí databáze a odesílání dat do jiné databáze. Pokud to chcete udělat, musíte nejprve nastavit připojení jako připojení s více databázemi.
Table V existující cílové tabulce se rozlišují malá a velká písmena. Table Přepíše sadu v Data Connection podokně.
Formát Formát dat: Data format Přepíše sadu v Data Connection podokně.
IngestionMappingReference Název existujícího mapování příjmu dat, které se má použít. Column mapping Přepíše sadu v Data Connection podokně.
Komprese Komprese dat ( None výchozí) nebo gzip.
Kódování Kódování dat, výchozí hodnota je UTF8. Může se jednat o jakékoli kódování podporované technologií .NET.
Značky Seznam značek , které se mají přidružit k přijatým datům, formátovaný jako řetězec pole JSON. Používání značek má vliv na výkon.
RawHeaders Označuje, že zdrojem událostí je Kafka a Azure Data Explorer musí ke čtení dalších vlastností směrování použít deserializaci pole bajtů. Hodnota se ignoruje.

Poznámka:

Ingestují se pouze události, které se vytvoří po vytvoření datového připojení, pokud není zadané vlastní počáteční datum načtení. V každém případě nemůže období zpětného vyhledávání překročit skutečnou dobu uchovávání centra událostí.

Směrování událostí

Při vytváření datového připojení ke clusteru můžete určit směrování, kam se mají ingestované data odesílat. Výchozí směrování je cílová tabulka zadaná v připojovací řetězec, která je přidružená k cílové databázi. Výchozí směrování dat se také označuje jako statické směrování. Alternativní možnosti směrování a zpracování dat můžete zadat nastavením jedné nebo více vlastností dat událostí uvedených v předchozím odstavci.

Poznámka:

Datové připojení služby Event Hubs se pokusí zpracovat všechny události, které čte z centra událostí, a každá událost, která nemůže zpracovat z jakéhokoli důvodu, bude hlášena jako selhání příjmu dat. Přečtěte si, jak tady monitorovat příjem dat v Azure Data Exploreru.

Směrování dat událostí do alternativní databáze

Směrování dat do alternativní databáze je ve výchozím nastavení vypnuté. Pokud chcete data odeslat do jiné databáze, musíte nejprve nastavit připojení jako připojení s více databázemi. Tuto funkci je možné povolit na webu Azure Portal na webu Azure Portal, pomocí sad SDK pro správu C# nebo Pythonu nebo pomocí šablony ARM. Uživatel, skupina, instanční objekt nebo spravovaná identita použitá k povolení směrování databáze musí mít v clusteru alespoň roli přispěvatele a oprávnění k zápisu.

Pokud chcete zadat alternativní databázi, nastavte vlastnost Příjem dat databáze.

Upozorňující

Zadání alternativní databáze bez nastavení připojení jako datového připojení s více databázemi způsobí selhání příjmu dat.

Směrování dat událostí do alternativní tabulky

Pokud chcete pro každou událost zadat alternativní tabulku, nastavte vlastnosti tabulky, formátu, komprese a mapování příjmu dat. Připojení dynamicky směruje ingestovaná data uvedená v eventData.Properties a přepisuje statické vlastnosti pro tuto událost.

Následující příklad ukazuje, jak nastavit podrobnosti centra událostí a odesílat data metrik počasí do alternativní databáze (MetricsDB) a tabulky (WeatherMetrics). Data jsou ve formátu JSON a mapování1 je předdefinované v tabulce WeatherMetrics.

// This sample uses Azure.Messaging.EventHubs which is a .Net Framework library.
await using var producerClient = new EventHubProducerClient("<eventHubConnectionString>");
// Create the event and add optional "dynamic routing" properties
var eventData = new EventData(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(
    new { TimeStamp = DateTime.UtcNow, MetricName = "Temperature", Value = 32 }
)));
eventData.Properties.Add("Database", "MetricsDB");
eventData.Properties.Add("Table", "WeatherMetrics");
eventData.Properties.Add("Format", "json");
eventData.Properties.Add("IngestionMappingReference", "mapping1");
eventData.Properties.Add("Tags", "['myDataTag']");
var events = new[] { eventData };
// Send events
await producerClient.SendAsync(events);

Mapování systémových vlastností služby Event Hubs

Systémové vlastnosti jsou pole nastavená službou Event Hubs v době vytvoření fronty události. Datové připojení Azuer Data Explorer Event Hubs může vložit předdefinovanou sadu systémových vlastností do dat přijatých do tabulky na základě daného mapování.

Poznámka:

  • Vkládání systémových vlastností je podporováno pro json a tabulkové formáty (tj. JSON, , CSVMultiJSON, TSV, PSV, SCsv, ). TSVESOHsv
  • Při použití nepodporovaného formátu (i.e. TXT nebo komprimovaných formátů, jako ParquetAvro je atd.), budou data stále ingestována, ale vlastnosti budou ignorovány.
  • Vkládání systémových vlastností není podporováno, pokud je nastavena komprese zpráv centra událostí. V takových scénářích se vygeneruje příslušná chyba a data se neingestují.
  • U tabulkových dat jsou systémové vlastnosti podporovány pouze pro zprávy událostí s jedním záznamem.
  • U dat JSON jsou pro zprávy událostí s více záznamy podporovány také systémové vlastnosti. V takových případech se systémové vlastnosti přidají pouze k prvnímu záznamu zprávy události.
  • Pro CSV mapování se vlastnosti přidají na začátek záznamu v pořadí uvedeném při vytváření datového připojení. Nespoléhejte na pořadí těchto vlastností, protože se může v budoucnu změnit.
  • Pro JSON mapování se vlastnosti přidají podle názvů vlastností v tabulce Vlastností systému.

Služba Event Hubs zveřejňuje následující systémové vlastnosti:

Vlastnost Datový typ Popis
x-opt-enqueued-time datetime Čas UTC, kdy byla událost zapsána do fronty
x-opt-sequence-number long Logické pořadové číslo události v rámci datového proudu oddílu centra událostí
x-opt-offset string Posun události ze streamu oddílu centra událostí. Identifikátor posunu je jedinečný v rámci oddílu streamu centra událostí.
x-opt-publisher string Název vydavatele, pokud byla zpráva odeslána do koncového bodu vydavatele
x-opt-partition-key string Klíč oddílu odpovídajícího oddílu, který událost uložil

Při práci se službou IoT Central Event Hub můžete do datové části vložit také vlastnosti systému IoT Hubu. Úplný seznam najdete v tématu Systémové vlastnosti služby IoT Hub.

Pokud jste v části Zdroj dat v tabulce vybrali vlastnosti systému událostí, musíte zahrnout vlastnosti do schématu tabulky a mapování.

Příklady mapování schématu

Příklad mapování schématu tabulky

Pokud vaše data obsahují tři sloupce (TimeStampa) a Valuevlastnosti, MetricNamekteré zahrnete x-opt-enqueued-time x-opt-offset, a pomocí tohoto příkazu vytvořte nebo upravte schéma tabulky:

    .create-merge table TestTable (TimeStamp: datetime, MetricName: string, Value: int, EventHubEnqueuedTime:datetime, EventHubOffset:string)

Příklad mapování CSV

Spuštěním následujících příkazů přidejte data na začátek záznamu. Všimněte si řadových hodnot.

    .create table TestTable ingestion csv mapping "CsvMapping1"
    '['
    '   { "column" : "TimeStamp", "Properties":{"Ordinal":"2"}},'
    '   { "column" : "MetricName", "Properties":{"Ordinal":"3"}},'
    '   { "column" : "Value", "Properties":{"Ordinal":"4"}},'
    '   { "column" : "EventHubEnqueuedTime", "Properties":{"Ordinal":"0"}},'
    '   { "column" : "EventHubOffset", "Properties":{"Ordinal":"1"}}'
    ']'

Příklad mapování JSON

Data se přidávají pomocí mapování systémových vlastností. Spusťte tyto příkazy:

    .create table TestTable ingestion json mapping "JsonMapping1"
    '['
    '    { "column" : "TimeStamp", "Properties":{"Path":"$.TimeStamp"}},'
    '    { "column" : "MetricName", "Properties":{"Path":"$.MetricName"}},'
    '    { "column" : "Value", "Properties":{"Path":"$.Value"}},'
    '    { "column" : "EventHubEnqueuedTime", "Properties":{"Path":"$.x-opt-enqueued-time"}},'
    '    { "column" : "EventHubOffset", "Properties":{"Path":"$.x-opt-offset"}}'
    ']'

Mapování schématu pro soubory Avro zachycení služby Event Hubs

Jedním ze způsobů, jak využívat data služby Event Hubs, je zachytávat události prostřednictvím služby Azure Event Hubs ve službě Azure Blob Storage nebo Azure Data Lake Storage. Potom můžete ingestovat zachytávání souborů při jejich zápisu pomocí datového připojení Event Gridu v Azure Data Exploreru.

Schéma zachytávání souborů se liší od schématu původní události odeslané do služby Event Hubs. Měli byste navrhnout schéma cílové tabulky s tímto rozdílem. Datová část události je konkrétně reprezentována v souboru zachycení jako pole bajtů a toto pole není automaticky dekódováno datovým připojením Event Gridu Azure Data Exploreru. Další informace o schématu souborů pro zachytávání dat služby Event Hubs Avro najdete v tématu Zkoumání zachycených souborů Avro ve službě Azure Event Hubs.

Správné dekódování datové části události:

  1. Namapujte Body pole zachycené události na sloupec typu dynamic v cílové tabulce.
  2. Použijte zásadu aktualizace, která převede pole bajtů na čitelný řetězec pomocí funkce unicode_codepoints_to_string().

Ingestování vlastních vlastností

Při ingestování událostí ze služby Event Hubs se data přebíjí z body části datového objektu události. Vlastní vlastnosti služby Event Hubs jsou však definovány v properties části objektu a nejsou ingestované. Pokud chcete ingestovat vlastnosti zákazníka, musíte je vložit do dat v body části objektu.

Následující příklad porovnává datový objekt událostí obsahující vlastní vlastnost customProperty definovanou službou Event Hubs (vlevo) s vloženou vlastností požadovanou pro příjem dat (vpravo).

{
"body":{
"value": 42
},
"properties":{
"customProperty": "123456789"
}
}
{
"body":{
"value": 42,
"customProperty": "123456789"
}
}

K vložení vlastních vlastností do dat v body části datového objektu události můžete použít jednu z následujících metod:

  • Při vytváření datového objektu události ve službě Event Hubs vložte vlastní vlastnosti jako součást dat do body části objektu.
  • Pomocí Azure Stream Analytics můžete zpracovávat události z centra událostí a vkládat vlastní vlastnosti do dat událostí. Z Azure Stream Analytics můžete nativně ingestovat data pomocí výstupního konektoru Azure Data Exploreru nebo směrovat data do jiného centra událostí a odtud do clusteru.
  • Pomocí Azure Functions přidejte vlastní vlastnosti a pak ingestujte data.

Datové připojení služby Event Hubs mezi oblastmi

Pro zajištění nejlepšího výkonu vytvořte všechny následující prostředky ve stejné oblasti jako cluster. Pokud neexistuje žádná jiná alternativa, zvažte použití úrovní Premium nebo Dedicated Event Hubs. Porovnání úrovní služby Event Hubs najdete tady.

Vytvoření centra událostí

Pokud ho ještě nemáte, vytvořte centrum událostí. Připojení k centru událostí je možné spravovat prostřednictvím webu Azure Portal, programově pomocí C# nebo Pythonu nebo pomocí šablony Azure Resource Manageru.

Poznámka:

  • Možnost dynamicky přidávat oddíly po vytvoření centra událostí je k dispozici pouze s úrovněmi Event Hubs Premium a Dedicated. Při nastavování počtu oddílů zvažte dlouhodobé škálování.
  • Skupina příjemců musí být jedinečná pro jednotlivé uživatele. Vytvořte skupinu příjemců vyhrazenou pro připojení Azure Data Exploreru.

Odesílání událostí

Podívejte se na ukázkovou aplikaci , která generuje data a odesílá je do centra událostí.

Nastavení řešení geografického zotavení po havárii

Centrum událostí nabízí řešení geografického zotavení po havárii. Azure Data Explorer nepodporuje Alias obory názvů centra událostí. Pokud chcete ve svém řešení implementovat geografické zotavení po havárii, vytvořte dvě datová připojení centra událostí: jedno pro primární obor názvů a jedno pro sekundární obor názvů. Azure Data Explorer naslouchá oběma připojením centra událostí.

Poznámka:

Uživatel zodpovídá za implementaci převzetí služeb při selhání z primárního oboru názvů do sekundárního oboru názvů.