Event Hub-adatkapcsolat (előzetes verzió)
Azure Event Hubs egy big data streamelési platform és eseménybetöltési szolgáltatás. Azure Synapse Data Explorer folyamatos betöltést biztosít az ügyfél által felügyelt Event Hubsból.
Az Event Hub betöltési folyamata több lépésben továbbítja az eseményeket Azure Synapse Data Explorer. Először létre kell hoznia egy eseményközpontot a Azure Portal. Ezután létrehoz egy céltáblát Azure Synapse Data Explorer, amelybe az adatok egy adott formátumban kerülnek betöltésre a megadott betöltési tulajdonságok használatával. Az Event Hub-kapcsolatnak ismernie kell az események útválasztását. Az adatok az eseményrendszer tulajdonságainak leképezése alapján vannak beágyazva a kiválasztott tulajdonságokba. Hozzon létre egy kapcsolatot az Event Hubbal egy eseményközpont létrehozásához és az események elküldéséhez. Ez a folyamat a Azure Portal keresztül kezelhető, programozott módon C# vagy Python használatával, vagy az Azure Resource Manager sablonnal.
A Azure Synapse Data Explorer adatbetöltésével kapcsolatos általános információkért lásd: Azure Synapse Data Explorer adatbetöltés áttekintése.
Adatformátum
Az adatok az Event Hubról lesznek beolvasva EventData-objektumok formájában.
Lásd a támogatott formátumokat.
Megjegyzé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 megCompression
a betöltési tulajdonságokat.- Az adattömörítés tömörített formátumokhoz (Avro, Parquet, ORC) 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 paranccsal 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 panelen lévő készletet Data Connection . |
Formátum | Adatformátum. Felülbírálja a Data format panelen lévő készletet Data Connection . |
IngestionMappingReference | A használni kívánt meglévő betöltési leképezés neve. Felülbírálja a Column mapping panelen lévő készletet Data Connection . |
Tömörítés | Adattömörítés ( None alapértelmezett) vagy GZip tömörítés. |
Encoding | Adatkódolás, az alapértelmezett érték az 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 . |
Megjegyzés
Csak az adatkapcsolat létrehozása után leküldett események vannak betöltve.
Események útválasztása
Amikor eseményközpont-kapcsolatot állít be 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ábla-tulajdonságait is. A kapcsolat dinamikusan irányítja 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 Hub adatait, és küldje el az időjárási metrikák adatait a táblába WeatherMetrics
.
Az adatok formátuma json
.
mapping1
előre definiálva van a táblában WeatherMetrics
.
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 az esemény leküldésekor beállított tulajdonságokat tárolják. A Azure Synapse Data Explorer Event Hub-kapcsolat beágyazza a kiválasztott tulajdonságokat a táblában lévő adatleszállóba.
Megjegyzés
- A rendszertulajdonságok támogatottak
json
és táblázatos formátumok (csv
tsv
stb.), és a tömörített adatok esetében nem támogatottak. Ha nem támogatott formátumot használ, az adatok továbbra is be lesznek betöltve, 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 lesznek hozzáadva.
- A leképezéshez
csv
a rendszer a rekord elején, a Rendszertulajdonságok táblában felsorolt sorrendben adja hozzá a tulajdonságokat. - A leképezéshez
json
a rendszer a Rendszertulajdonságok táblában szereplő tulajdonságnevek alapján adja hozzá a tulajdonságokat.
Rendszertulajdonságok
Az Event Hub a következő rendszertulajdonságokat teszi elérhetővé:
Tulajdonság | Adattípus | Leírás |
---|---|---|
x-opt-enqueued-time | dátum/idő | Az esemény leküldésének időpontja (UTC) |
x-opt-sequence-number | hosszú | Az esemény logikai sorszáma az Event Hub partícióstreamében |
x-opt-offset | sztring | Az esemény eltolása az Event Hub partícióstreaméből. Az eltolás azonosítója egyedi az Event Hub-stream partíciójában |
x-opt-publisher | sztring | A közzétevő neve, ha az üzenetet egy közzétevő végpontjára küldték |
x-opt-partition-key | sztring | Az eseményt tároló megfelelő partíció partíciókulcsa |
Ha a tábla Adatforrás szakaszában az Eseményrendszer tulajdonságai lehetőséget választotta, a tulajdonságokat bele kell foglalnia a tábla sémába és leképezésbe.
Sémaleképezési példák
Példa táblaséma-leképezésre
Ha az adatok három oszlopot (Timespan
, , és Value
) tartalmaznak, Metric
valamint az és x-opt-offset
a tulajdonságot, x-opt-enqueued-time
hozza létre vagy módosítsa a táblázatsémát az alábbi paranccsal:
.create-merge table TestTable (TimeStamp: datetime, Metric: string, Value: int, EventHubEnqueuedTime:datetime, EventHubOffset:string)
PÉLDA CSV-leképezésre
Az alábbi parancsok futtatásával adja hozzá az adatokat a rekord elejéhez. Jegyezze fel a sorszámé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
Az adatok hozzáadása a rendszertulajdonságok leképezésével történik. 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 Hub-kapcsolat
Megjegyzés
A legjobb teljesítmény érdekében hozzon létre minden erőforrást ugyanabban a régióban, mint a Azure Synapse Data Explorer fürt.
Eseményközpont létrehozása
Ha még nincs ilyenje, hozzon létre egy eseményközpontot. Az Event Hubhoz való csatlakozás a Azure Portal keresztül, programozott módon, C# vagy Python használatával vagy az Azure Resource Manager sablonnal kezelhető.
Megjegyzés
- A partíciók száma nem módosítható, ezért érdemes megfontolni a hosszú távú skálázást a partíciószám beállításakor.
- A fogyasztói csoportnak fogyasztónként egyedinek kell lennie. Hozzon létre egy 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 eseményközpontnak.
Példa a mintaadatok létrehozására: Adatok betöltése az Event Hubból a Azure Synapse Data Explorer
Georedundáns vészhelyreállítási megoldás beállítása
Az Event Hub georedundáns helyreállítási megoldást kínál.
Azure Synapse Data Explorer nem támogatja Alias
az Event Hub-névtereket. A georedundáns helyreállítás megoldásban való implementálásához hozzon létre két Event Hub-adatkapcsolatot: egyet az elsődleges névtérhez, egyet pedig a másodlagos névtérhez. Azure Synapse Data Explorer mindkét Event Hub-kapcsolatot meghallgatja.
Megjegyzés
A felhasználó felelőssége, hogy feladatátvételt hajtson végre az elsődleges névtérről a másodlagos névtérre.
Következő lépések
- Adatok betöltése az Event Hubról a Azure Synapse Data Explorer
- Event Hub-adatkapcsolat létrehozása Azure Synapse Data Explorer C használatával #
- Event Hub-adatkapcsolat létrehozása Azure Synapse Data Explorer a Python használatával
- Event Hub-adatkapcsolat létrehozása Azure Synapse Data Explorer azure Resource Manager-sablonnal