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:
- Přidejte do clusteru spravovanou identitu.
- 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.
- Nastavte zásady spravované identity v cílových databázích.
- 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
- Data se čtou z centra událostí ve formě objektů EventData .
- Viz podporované formáty.
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 zadatCompression
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
, ,CSV
MultiJSON
,TSV
,PSV
,SCsv
, ).TSVE
SOHsv
- Při použití nepodporovaného formátu (i.e. TXT nebo komprimovaných formátů, jako
Parquet
Avro
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 (TimeStamp
a) a Value
vlastnosti, MetricName
které 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:
- Namapujte
Body
pole zachycené události na sloupec typudynamic
v cílové tabulce. - 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.
Vytvoření služby Event Hubs
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.
Datové připojení služby Event Hubs mezi oblastmi
Pro zajištění nejlepšího výkonu vytvořte centrum událostí ve stejné oblasti jako cluster. Pokud to není možné, zvažte použití úrovní Premium nebo Dedicated Event Hubs. Porovnání úrovní najdete v tématu Porovnání úrovní služby Azure Event Hubs.
Odesílání událostí
Podívejte se na ukázkovou aplikaci , která generuje data a odesílá je do centra událostí.
Poznámka:
Pokud chcete povolit efektivní zpracování událostí ze služby Event Hubs do Azure Data Exploreru, vyhněte se nevyvážené distribuci událostí napříč oddíly. Nerovnoměrné mapování může způsobit vysokou latenci zjišťování. Další informace naleznete v tématu Mapování událostí na oddíly.
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ů.
Související obsah
- Příjem dat z centra událostí do Azure Data Exploreru
- Vytvoření datového připojení centra událostí pro Azure Data Explorer pomocí jazyka C#
- Vytvoření datového připojení centra událostí pro Azure Data Explorer pomocí Pythonu
- Vytvoření datového připojení centra událostí pro Azure Data Explorer pomocí šablony Azure Resource Manageru
- Správa datových připojení služby Event Hubs v bezplatném clusteru
- Ingestování a dotazování protokolů služby Azure Monitor pomocí Azure Data Exploreru