Hent data fra Azure Event Hubs

I denne artikkelen lærer du hvordan du henter data fra Event Hubs til KQL-databasen i Microsoft Fabric. Azure Event Hubs er en plattform for strømming av store data og hendelsesinntak som kan behandle og lede millioner av hendelser per sekund.

Hvis du vil strømme data fra Hendelseshuber til sanntidsanalyse, går du gjennom to hovedtrinn. Det første trinnet utføres i Azure-portalen, der du definerer den delte tilgangspolicyen for hendelseshubforekomsten og registrerer detaljene som kreves for å koble til senere via denne policyen.

Det andre trinnet finner sted i Sanntidsanalyse i Fabric, der du kobler en KQL-database til hendelseshuben og konfigurerer skjemaet for innkommende data. Dette trinnet oppretter to tilkoblinger. Den første tilkoblingen, kalt en «skytilkobling», kobler Microsoft Fabric til hendelseshubforekomsten. Den andre tilkoblingen kobler skytilkoblingen til KQL-databasen. Når du er ferdig med å konfigurere hendelsesdataene og skjemaet, er de strømmede dataene tilgjengelige for spørring ved hjelp av et KQL-spørringssett.

Forutsetning

Advarsel!

Hendelseshuben kan ikke være bak en brannmur.

Angi en policy for delt tilgang på hendelseshuben

Før du kan opprette en tilkobling til Data for hendelseshuber, må du angi en delt tilgangspolicy (SAS) på hendelseshuben og samle inn informasjon som skal brukes senere i konfigurasjonen av tilkoblingen. Hvis du vil ha mer informasjon om godkjenning av tilgang til ressurser for hendelseshuber, kan du se Signaturer for delt tilgang.

  1. Bla til hendelseshubforekomsten du vil koble til, i Azure-portalen.

  2. Velg Policyer for delt tilgang under Innstillinger

  3. Velg +Legg til for å legge til en ny SAS-policy, eller velg en eksisterende policy med Behandle tillatelser.

    Screenshot of creating an SAS policy in the Azure portal.

  4. Skriv inn et policynavn.

  5. Velg Administrer, og opprett deretter.

Samle inn informasjon for skytilkoblingen

Legg merke til følgende fire felt i SAS-policyruten. Du vil kanskje kopiere disse feltene og lime det inn et sted, for eksempel en notisblokk, for å bruke i et senere trinn.

Screenshot showing how to fill out connection with data from Azure portal.

Feltreferanse Felt Description Eksempel
a Hendelseshubforekomst Navnet på hendelseshubforekomsten. iotdata
b SAS-policy SAS-policynavnet som ble opprettet i forrige trinn DocsTest
a Primærnøkkel Nøkkelen som er knyttet til SAS-policyen I dette eksemplet begynner pggiisb009...
d Koble til ion string-primary key I dette feltet vil du bare kopiere navneområdet for hendelseshuben, som finnes som en del av tilkoblingsstreng. eventhubpm15910.servicebus.windows.net

Source

  1. Velg Hent data på det nedre båndet i KQL-databasen.

    Kilde-fanen er valgt i Hent data-vinduet.

  2. Velg datakilden fra den tilgjengelige listen. I dette eksemplet inntar du data fra Hendelseshuber.

    Screenshot of get data window with source tab selected.

Konfigurer

  1. Velg en måltabell. Hvis du vil innta data i en ny tabell, velger du + Ny tabell og skriver inn et tabellnavn.

    Merk

    Tabellnavn kan være opptil 1024 tegn, inkludert mellomrom, alfanumeriske tegn, bindestreker og understrekingstegn. Spesialtegn støttes ikke.

  2. Velg Opprett ny tilkobling, eller velg Eksisterende tilkobling , og gå videre til neste trinn.

Opprett ny tilkobling

  1. Fyll ut innstillingene for Koble til ion i henhold til følgende tabell:

    Screenshot of source tab.

    Innstilling Beskrivelse Eksempelverdi
    Navneområde for hendelseshub Felt d fra tabellen ovenfor. eventhubpm15910.servicebus.windows.net
    Hendelseshub Felt a fra tabellen ovenfor. Navnet på hendelseshubforekomsten. iotdata
    Connection Hvis du vil bruke en eksisterende skytilkobling mellom Fabric og Event Hubs, velger du navnet på denne tilkoblingen. Ellers velger du Opprett ny tilkobling. Opprett ny tilkobling
    Koble til ionnavn Navnet på den nye skytilkoblingen. Dette navnet er automatisk generert, men kan overskrives. Må være unik i Fabric-leieren. Koble til ion
    Godkjenningstype Automatisk utfylling. Bare delt tilgangsnøkkel støttes for øyeblikket. Delt tilgangsnøkkel
    Navn på delt tilgangsnøkkel Felt b fra tabellen ovenfor. Navnet du ga til policyen for delt tilgang. DocsTest
    Delt tilgangsnøkkel Felt c fra tabellen ovenfor. Primærnøkkelen for SAS-policyen.
  2. Velg Lagre. En ny skydatatilkobling mellom Fabric og Event Hubs opprettes.

Koble til skytilkoblingen til KQL-databasen

Enten du har opprettet en ny skytilkobling, eller du bruker en eksisterende, må du definere forbrukergruppen. Du kan eventuelt angi parametere som ytterligere definerer aspekter ved forbindelsen mellom KQL-databasen og skytilkoblingen.

  1. Fyll ut følgende felt i henhold til tabellen:

    Screenshot of creating database connection.

    Innstilling Beskrivelse Eksempelverdi
    Forbrukergruppe Den relevante forbrukergruppen som er definert i hendelseshuben. Hvis du vil ha mer informasjon, kan du se forbrukergrupper. Når du har lagt til en ny forbrukergruppe, må du velge denne gruppen fra rullegardinlisten. NewConsumer
    Flere parametere
    Komprimering Datakomprimering av hendelsene, som kommer fra hendelseshuben. Alternativene er Ingen (standard) eller Gzip-komprimering. None
    Egenskaper for hendelsessystem Hvis du vil ha mer informasjon, kan du se systemegenskaper for hendelseshub. Hvis det finnes flere poster per hendelsesmelding, legges systemegenskapene til i den første. Se egenskaper for hendelsessystem.
    Startdato for hendelseshenting Datatilkoblingen henter eksisterende hendelseshubhendelser som er opprettet siden startdatoen for hendelseshenting. Den kan bare hente hendelser som beholdes av hendelseshuben, basert på oppbevaringsperioden. Tidssonen er UTC. Hvis ingen tid er angitt, er standardtidspunktet tidspunktet da datatilkoblingen ble opprettet.
  2. Velg Neste for å fortsette til Undersøk-fanen.

Egenskaper for hendelsessystem

Systemegenskaper lagrer egenskaper som angis av Event Hubs-tjenesten på tidspunktet hendelsen er angitt. Datatilkoblingen til hendelseshuben kan bygge inn et valgt sett med systemegenskaper i dataene som er inntatt i en tabell basert på en gitt tilordning.

Egenskap Datatype Bekrivelse
x-opt-enqueued-time datetime UTC-tid da hendelsen ble omsluttet.
x-opt-sequence-number lang Det logiske sekvensnummeret for hendelsen i partisjonsstrømmen til hendelseshuben.
x-opt-offset streng Forskyvningen av hendelsen fra partisjonsstrømmen for hendelseshuben. Forskyvningsidentifikatoren er unik i en partisjon av hendelseshubstrømmen.
x-opt-publisher streng Utgivernavnet hvis meldingen ble sendt til et utgiverendepunkt.
x-opt-partition-key streng Partisjonsnøkkelen for den tilsvarende partisjonen som lagret hendelsen.

Kontroller

Hvis du vil fullføre inntaksprosessen, velger du Fullfør.

Screenshot of the inspect tab.

Eventuelt:

  • Velg Kommandovisningsprogram for å vise og kopiere de automatiske kommandoene som genereres fra inndataene.

  • Endre det automatisk utsatte dataformatet ved å velge ønsket format fra rullegardinlisten. Data leses fra hendelseshuben i form av EventData-objekter . Støttede formater er CSV, JSON, PSV, SCsv, SOHsv TSV, TXT og TSVE.

  • Rediger kolonner.

  • Utforsk avanserte alternativer basert på datatype.

  • Hvis dataene du ser i forhåndsvisningsvinduet ikke er fullført, trenger du kanskje mer data for å opprette en tabell med alle nødvendige datafelt. Bruk følgende kommandoer til å hente nye data fra hendelseshuben:

    • Forkast og hent nye data: forkaster dataene som presenteres, og søker etter nye hendelser.
    • Hente flere data: Søker etter flere hendelser i tillegg til hendelsene som allerede finnes.

Rediger kolonner

Merk

  • For tabellformater (CSV, TSV, PSV) kan du ikke tilordne en kolonne to ganger. Hvis du vil tilordne til en eksisterende kolonne, må du først slette den nye kolonnen.
  • Du kan ikke endre en eksisterende kolonnetype. Hvis du prøver å tilordne til en kolonne med et annet format, kan du ende opp med tomme kolonner.

Endringene du kan gjøre i en tabell, avhenger av følgende parametere:

  • Tabelltype er ny eller eksisterende
  • Tilordningstype er ny eller eksisterende
Tabelltype Tilordningstype Tilgjengelige justeringer
New table Ny tilordning Gi nytt navn til kolonne, endre datatype, endre datakilde, tilordningstransformasjon, legge til kolonne, slette kolonne
Eksisterende tabell Ny tilordning Legg til kolonne (der du deretter kan endre datatype, gi nytt navn til og oppdatere)
Eksisterende tabell Eksisterende tilordning ingen

Screenshot of columns open for editing.

Tilordningstransformasjoner

Noen dataformattilordninger (Parquet, JSON og Avro) støtter enkle inntakstidstransformasjoner. Hvis du vil bruke tilordningstransformasjoner, oppretter eller oppdaterer du en kolonne i vinduet Rediger kolonner.

Tilordningstransformasjoner kan utføres på en kolonne av typen streng eller datetime, der kilden har datatypeint eller lang. Støttede tilordningstransformasjoner er:

  • DateTimeFromUnixSeconds
  • DateTimeFromUnixMilliseconds
  • DateTimeFromUnixMicroseconds
  • DateTimeFromUnixNanoseconds

Skjematilordning for Event Hubs Capture Avro-filer

Én måte å bruke Hendelseshuber-data på, er å registrere hendelser via Azure Event Hubs i Azure Blob Storage eller Azure Data Lake Storage. Deretter kan du innta opptaksfilene mens de skrives ved hjelp av en Koble til ion for hendelsesrutenettdata.

Skjemaet for opptaksfilene er forskjellig fra skjemaet for den opprinnelige hendelsen som ble sendt til Hendelseshuber. Du bør utforme måltabellskjemaet med denne forskjellen i tankene. Spesielt er nyttelasten for hendelsen representert i opptaksfilen som en bytematrise, og denne matrisen dekodes ikke automatisk av datatilkoblingen Event Grid Azure Data Explorer. Hvis du vil ha mer spesifikk informasjon om filskjemaet for Avro-opptaksdata for Hendelseshuber, kan du se Utforske oppfanget Avro-filer i Azure Event Hubs.

Slik dekoder du hendelsens nyttelast på riktig måte:

  1. Tilordne feltet for Body den registrerte hendelsen til en kolonne av typen dynamic i måltabellen.
  2. Bruk en oppdateringspolicy som konverterer bytematrisen til en lesbar streng ved hjelp av unicode_codepoints_to_string() -funksjonen.

Avanserte alternativer basert på datatype

Tabell (CSV, TSV, PSV):

  • Hvis du inntar tabellformater i en eksisterende tabell, kan du velge Avansert>behold tabellskjema. Tabelldata inneholder ikke nødvendigvis kolonnenavnene som brukes til å tilordne kildedata til de eksisterende kolonnene. Når dette alternativet er merket av, utføres tilordningen etter rekkefølge, og tabellskjemaet forblir det samme. Hvis dette alternativet ikke er avmerket, opprettes nye kolonner for innkommende data, uavhengig av datastruktur.

  • Hvis du vil bruke den første raden som kolonnenavn, velger du Avansert>første rad er kolonneoverskrift.

    Screenshot of advanced CSV options.

JSON:

  • Hvis du vil bestemme kolonnedeling av JSON-data, velger du Avanserte>nestede nivåer, fra 1 til 100.

  • Hvis du velger Avanserte>Hopp over JSON-linjer med feil, blir dataene inntatt i JSON-format. Hvis du lar denne avmerkingsboksen være umerket, blir dataene inntatt i flerjsonformat.

    Screenshot of advanced JSON options.

Sammendrag

I vinduet for klargjøring av data merkes alle tre trinnene med grønne haker når datainntaket er fullført. Du kan velge et kort som skal spørres, slippe de inntatte dataene eller se et instrumentbord i inntakssammendraget.

Screenshot of summary page with successful ingestion completed.