Megosztás a következőn keresztül:


Event Hubs-adatkapcsolat (előzetes verzió)

Az Azure Event Hubs egy big data streamelési platform és eseménybetöltési szolgáltatás. Az Azure Synapse Data Explorer folyamatos betöltést biztosít az ügyfél által felügyelt Event Hubsból.

Az Event Hubs betöltési folyamata több lépésben továbbítja az eseményeket az Azure Synapse Data Explorerbe. Először létre kell hoznia egy Eseményközpontot az Azure Portalon. Ezután létrehoz egy céltáblát az Azure Synapse Data Explorerben, amelybe az adatok egy adott formátumban kerülnek betöltésre a megadott betöltési tulajdonságok használatával. Az Event Hubs-kapcsolatnak ismernie kell az események útválasztását. Az adatok az eseményrendszer tulajdonságainak megfeleltetése alapján vannak beágyazva a kiválasztott tulajdonságokba. Hozzon létre egy kapcsolatot az Event Hubs szolgáltatással, és hozzon létre egy Eseményközpontot , és küldjön eseményeket. Ez a folyamat kezelhető az Azure Portalon, programozott módon C# vagy Python használatával, vagy az Azure Resource Manager-sablonnal.

Az Azure Synapse Data Explorer adatbetöltésével kapcsolatos általános információkért tekintse meg az Azure Synapse Data Explorer adatbetöltési áttekintését.

Adatformátum

  • Az adatok az Event Hubsból lesznek beolvasva EventData-objektumok formájában.

  • Lásd a támogatott formátumokat.

    Feljegyzés

    Az Event Hub nem támogatja a .raw formátumot.

  • Az adatok tömöríthetők a tömörítési GZip algoritmus használatával. Adja meg Compression a betöltési tulajdonságokat.

    • A tömörített formátumok (Avro, Parquet, ORC) esetében az adattömörítés nem támogatott.
    • A tömörített adatok nem támogatják az egyéni kódolást és a beágyazott rendszertulajdonságokat .

Betöltési tulajdonságok

A betöltési tulajdonságok útmutatást adnak a betöltési folyamathoz, az adatok átirányításához és feldolgozásának módjához. Az EventData.Properties használatával megadhatja az eseménybetöltés betöltési tulajdonságait. A következő tulajdonságokat állíthatja be:

Tulajdonság Leírás
Tábla A meglévő céltábla neve (kis- és nagybetűk megkülönböztetése). Felülbírálja a Table halmazt a Data Connection panelen.
Formátum Adatformátum. Felülbírálja a Data format halmazt a Data Connection panelen.
IngestionMappingReference A használni kívánt betöltési leképezés neve. Felülbírálja a Column mapping halmazt a Data Connection panelen.
Tömörítés Adattömörítés ( None alapértelmezett) vagy GZip tömörítés.
Kódolás Az adatkódolás alapértelmezett értéke UTF8. A .NET által támogatott kódolások bármelyike lehet.
Címkék A betöltött adatokhoz társítandó címkék listája, JSON-tömbsztringként formázva. A címkék használata teljesítménybeli következményekkel jár.

Feljegyzés

Csak az adatkapcsolat létrehozása után lekért események vannak betöltve.

Események útválasztása

Amikor Event Hubs-kapcsolatot állít be az Azure Synapse Data Explorer-fürthöz, meg kell adnia a céltábla tulajdonságait (táblanév, adatformátum, tömörítés és leképezés). Az adatok alapértelmezett útválasztását a rendszer a következőnek is nevezi static routing: . Az eseménytulajdonságok használatával megadhatja az egyes események céltáblájának tulajdonságait is. A kapcsolat dinamikusan irányítja át az adatokat az EventData.Properties fájlban megadott módon, felülírva az esemény statikus tulajdonságait.

Az alábbi példában állítsa be az Event Hubs adatait, és küldjön időjárási metrikaadatokat a táblázatba WeatherMetrics. Az adatok formátuma json . mapping1 előre definiálva van a táblában WeatherMetrics.

Figyelmeztetés

Ez a példa kapcsolati sztring hitelesítést használ az Event Hubshoz való csatlakozáshoz a példa egyszerűsége érdekében. Az kapcsolati sztring szkriptbe való kemény kódolásához azonban nagyon nagy fokú bizalomra van szükség az alkalmazásban, és biztonsági kockázatokkal jár.

Hosszú távú, biztonságos megoldásokhoz használja az alábbi lehetőségek egyikét:

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();

Eseményrendszer tulajdonságainak leképezése

A rendszertulajdonságok az Event Hubs szolgáltatás által beállított tulajdonságokat tárolják, az esemény ekkor le lesz kérdezve. Az Azure Synapse Data Explorer Event Hubs-kapcsolat beágyazza a kiválasztott tulajdonságokat a táblában lévő adatleszállásba.

Feljegyzés

  • A rendszertulajdonságok támogatottak json és táblázatos formátumok (csvtsvstb.), és a tömörített adatok esetében nem támogatottak. Ha nem támogatott formátumot használ, a rendszer továbbra is betölti az adatokat, de a tulajdonságok figyelmen kívül lesznek hagyva.
  • Táblázatos adatok esetén a rendszertulajdonságok csak egyrekordos eseményüzenetekhez támogatottak.
  • JSON-adatok esetén a rendszertulajdonságok többrekordos eseményüzenetekhez is támogatottak. Ilyen esetekben a rendszertulajdonságok csak az eseményüzenet első rekordjára kerülnek.
  • A leképezéshez csv a rendszer a rendszertulajdonságok táblában felsorolt sorrendben adja hozzá a tulajdonságokat a rekord elején.
  • A leképezéshez json a rendszer a Rendszertulajdonságok táblában lévő tulajdonságnevek alapján adja hozzá a tulajdonságokat .

Rendszertulajdonságok

Az Event Hubs a következő rendszertulajdonságokat teszi elérhetővé:

Tulajdonság Adattípus Leírás
x-opt-enqueued-time dátum/idő UTC idő, amikor az eseményt lekérték
x-opt-sequence-number hosszú Az esemény logikai sorszáma az Event Hubs partícióstreamében
x-opt-offset húr Az esemény eltolása az Event Hubs partícióstreamből. Az eltolásazonosító egyedi az Event Hubs-stream partíción belül
x-opt-publisher húr A közzétevő neve, ha az üzenetet egy közzétevő végpontjának küldték
x-opt-partition-key húr Az eseményt tároló megfelelő partíció partíciókulcsa

Ha a tábla Adatforrás szakaszában az Eseményrendszer-tulajdonságok lehetőséget választotta, akkor a tulajdonságokat meg kell adnia a táblasémában és a leképezésben.

Sémaleképezési példák

Példa táblaséma-leképezésre

Ha az adatok három oszlopot (Timespanés ) tartalmaznak, Metricvalamint Valuea benne szereplő x-opt-enqueued-time x-opt-offsettulajdonságokat, hozza létre vagy módosítsa a táblázatsémát a következő paranccsal:

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

PÉLDA CSV-leképezésre

Futtassa az alábbi parancsokat, ha adatokat szeretne hozzáadni a rekord elejéhez. Jegyezze fel az ordinális értékeket.

    .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élda JSON-leképezésre

A rendszer a rendszertulajdonságok leképezésével ad hozzá adatokat. Futtassa a következő parancsokat:

    .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"}}'
    ']'

Event Hubs-kapcsolat

Feljegyzés

A legjobb teljesítmény érdekében hozzon létre minden erőforrást ugyanabban a régióban, mint az Azure Synapse Data Explorer-fürt.

Event Hubs létrehozása

Ha még nincs ilyenje, hozzon létre egy Event Hubs-központot. Az Event Hubshoz való csatlakozás az Azure Portalon, programozott módon, C# vagy Python használatával vagy az Azure Resource Manager-sablonnal kezelhető.

Feljegyzés

  • A partíciók száma nem módosítható, ezért a partíciók számának beállításakor érdemes megfontolni a hosszú távú skálázást.
  • A fogyasztói csoportnak fogyasztónként egyedinek kell lennie. Hozzon létre egy, az Azure Synapse Data Explorer-kapcsolathoz dedikált fogyasztói csoportot.

Események küldése

Tekintse meg azt a mintaalkalmazást , amely adatokat hoz létre, és elküldi azokat egy Event Hubsnak.

Példa mintaadatok létrehozására: Adatok betöltése az Event Hubsból az Azure Synapse Data Explorerbe

Geo-vészhelyreállítási megoldás beállítása

Az Event Hubs georeduktúra-helyreállítási megoldást kínál. Az Azure Synapse Data Explorer nem támogatja Alias az Event Hubs-névtereket. A Geo-vészhelyreállítás megoldásban való implementálásához hozzon létre két Event Hubs-adatkapcsolatot: egyet az elsődleges névtérhez, egyet pedig a másodlagos névtérhez. Az Azure Synapse Data Explorer mindkét Event Hubs-kapcsolatot figyeli.

Feljegyzés

A felhasználó felelőssége, hogy feladatátvételt hajtson végre az elsődleges névtérből a másodlagos névtérbe.

Következő lépések