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 megCompression
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:
- Jelszó nélküli hitelesítés
- Tárolja a kapcsolati sztring egy Azure Key Vaultban, és ezzel a módszerrel kérje le a kódban.
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 (csv
tsv
stb.), é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, Metric
valamint Value
a benne szereplő x-opt-enqueued-time
x-opt-offset
tulajdonsá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
- Adatok betöltése az Event Hubsból az Azure Synapse Data Explorerbe
- Event Hubs-adatkapcsolat létrehozása az Azure Synapse Data Explorerhez c használatával#
- Event Hubs-adatkapcsolat létrehozása az Azure Synapse Data Explorerhez a Python használatával
- Event Hubs-adatkapcsolat létrehozása az Azure Synapse Data Explorerhez azure Resource Manager-sablonnal