Sdílet prostřednictvím


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. Zadejte Compression 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í:

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 (tsvcsvatd.) 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 (Timespana) a Valuevlastnosti, Metrickteré 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