Datové připojení služby Event Hubs (Preview)
Azure Event Hubs je platforma pro streamování velkých objemů dat a služba pro příjem událostí. Azure Synapse 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 Synapse Data Exploreru v několika krocích. Nejprve vytvoříte službu Event Hubs na webu Azure Portal. Pak vytvoříte cílovou tabulku v Průzkumníku dat Azure Synapse, do které se data v určitém formátu budou ingestovat pomocí daných vlastností příjmu dat. Připojení služby Event Hubs potřebuje znát směrování událostí. Data jsou vložena s vybranými vlastnostmi podle mapování vlastností systému událostí. Vytvořte připojení ke službě Event Hubs, abyste vytvořili službu Event Hubs 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 Průzkumníku dat Azure Synapse najdete v přehledu příjmu dat v Průzkumníku dat Azure Synapse.
Formát dat
Data se čtou ze služby Event Hubs ve formě objektů EventData .
Viz podporované formáty.
Poznámka:
Centrum událostí nepodporuje formát .raw.
Data je možné komprimovat pomocí
GZip
algoritmu komprese. ZadejteCompression
vlastnosti příjmu dat.- Komprese dat není podporována u komprimovaných formátů (Avro, Parquet, ORC).
- Komprimovaná data nepodporují vlastní kódování a vložené systémové vlastnosti .
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:
Vlastnost | Popis |
---|---|
Table | Název (rozlišují se malá a velká písmena) existující cílové tabulky. 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 komprese |
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. |
Poznámka:
Po vytvoření datového připojení se ingestují pouze události, které se zařadí do fronty.
Směrování událostí
Při nastavování připojení služby Event Hubs ke clusteru Azure Synapse Data Exploreru zadáte vlastnosti cílové tabulky (název tabulky, formát dat, komprese a mapování). Výchozí směrování pro vaše data se také označuje jako static routing
.
Můžete také zadat vlastnosti cílové tabulky pro každou událost pomocí vlastností události. Připojení bude dynamicky směrovat data, jak je uvedeno v EventData.Properties, přepsání statických vlastností pro tuto událost.
V následujícím příkladu nastavte podrobnosti služby Event Hubs a odešlete data metrik počasí do tabulky WeatherMetrics
.
Data jsou ve json
formátu. mapping1
je předdefinovaná v tabulce WeatherMetrics
.
Upozorňující
Tento příklad používá k připojení ke službě Event Hubs ověřování připojovací řetězec kvůli jednoduchosti příkladu. Pevné kódování připojovací řetězec do skriptu však vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese bezpečnostní rizika.
Pro dlouhodobá zabezpečená řešení použijte jednu z těchto možností:
- Ověřování bez hesla
- Uložte připojovací řetězec ve službě Azure Key Vault a pomocí této metody ji načtěte do kódu.
var eventHubNamespaceConnectionString=<connection_string>;
var eventHubName=<event_hub>;
// Create the data
var metric = new Metric { Timestamp = DateTime.UtcNow, MetricName = "Temperature", Value = 32 };
var data = JsonConvert.SerializeObject(metric);
// Create the event and add optional "dynamic routing" properties
var eventData = new EventData(Encoding.UTF8.GetBytes(data));
eventData.Properties.Add("Table", "WeatherMetrics");
eventData.Properties.Add("Format", "json");
eventData.Properties.Add("IngestionMappingReference", "mapping1");
eventData.Properties.Add("Tags", "['mydatatag']");
// Send events
var eventHubClient = EventHubClient.CreateFromConnectionString(eventHubNamespaceConnectionString, eventHubName);
eventHubClient.Send(eventData);
eventHubClient.Close();
Mapování vlastností systému událostí
Vlastnosti systému ukládají vlastnosti nastavené službou Event Hubs v době zařazení události do fronty. Připojení Služby Event Hubs v Průzkumníku dat Azure Synapse vloží vybrané vlastnosti do vstupních dat do tabulky.
Poznámka:
- Systémové vlastnosti jsou podporovány pro
json
a tabulkové formáty (tsv
csv
atd.) a nejsou podporovány u komprimovaných dat. Při použití nepodporovaného formátu budou data stále ingestována, ale vlastnosti budou ignorovány. - 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 v tabulce Vlastností systému. - Pro
json
mapování se vlastnosti přidají podle názvů vlastností v tabulce Vlastností systému.
Systémové vlastnosti
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 služby Event Hubs |
x-opt-offset | string | Posun události ze streamu oddílu služby Event Hubs Identifikátor posunu je jedinečný v rámci oddílu datového proudu služby Event Hubs. |
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 |
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 (Timespan
a) a Value
vlastnosti, Metric
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, Metric: 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" : "Timespan", "Properties":{"Ordinal":"2"}},'
' { "column" : "Metric", "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" : "Timespan", "Properties":{"Path":"$.timestamp"}},'
' { "column" : "Metric", "Properties":{"Path":"$.metric"}},'
' { "column" : "Value", "Properties":{"Path":"$.value"}},'
' { "column" : "EventHubEnqueuedTime", "Properties":{"Path":"$.x-opt-enqueued-time"}},'
' { "column" : "EventHubOffset", "Properties":{"Path":"$.x-opt-offset"}}'
']'
Připojení ke službě Event Hubs
Poznámka:
Pro zajištění nejlepšího výkonu vytvořte všechny prostředky ve stejné oblasti jako cluster Azure Synapse Data Explorer.
Vytvoření služby Event Hubs
Pokud ho ještě nemáte, vytvořte službu Event Hubs. Připojení ke službě Event Hubs je možné spravovat prostřednictvím webu Azure Portal, programově pomocí C# nebo Pythonu nebo pomocí šablony Azure Resource Manageru.
Poznámka:
- Počet oddílů se nedá změnit, takže při nastavování počtu oddílů byste měli zvážit 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 Synapse Data Exploreru.
Odesílání událostí
Podívejte se na ukázkovou aplikaci , která generuje data a odesílá je do služby Event Hubs.
Příklad generování ukázkových dat najdete v tématu Ingestování dat ze služby Event Hubs do Azure Synapse Data Exploreru.
Nastavení řešení geografického zotavení po havárii
Event Hubs nabízí řešení geografického zotavení po havárii.
Azure Synapse Data Explorer nepodporuje Alias
obory názvů služby Event Hubs. Pokud chcete ve svém řešení implementovat geografické zotavení po havárii, vytvořte dvě datová připojení služby Event Hubs: jedno pro primární obor názvů a jedno pro sekundární obor názvů. Azure Synapse Data Explorer bude naslouchat oběma připojením služby Event Hubs.
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ů.
Další kroky
- Ingestování dat ze služby Event Hubs do Azure Synapse Data Exploreru
- Vytvoření datového připojení služby Event Hubs pro Průzkumník dat Azure Synapse pomocí jazyka C#
- Vytvoření datového připojení služby Event Hubs pro Průzkumník dat Azure Synapse pomocí Pythonu
- Vytvoření datového připojení služby Event Hubs pro Průzkumník dat Azure Synapse pomocí šablony Azure Resource Manageru