Gegevens ophalen uit Azure Event Hubs
In dit artikel leert u hoe u gegevens van Event Hubs in uw KQL-database in Microsoft Fabric kunt ophalen. Azure Event Hubs is een streamingplatform voor big data en een service voor gebeurtenisopname die miljoenen gebeurtenissen per seconde kan verwerken en omleiden.
Als u gegevens van Event Hubs wilt streamen naar realtime intelligence, voert u twee hoofdstappen uit. De eerste stap wordt uitgevoerd in Azure Portal, waar u het beleid voor gedeelde toegang op uw Event Hub-exemplaar definieert en de details vastlegt die nodig zijn om later verbinding te maken via dit beleid.
De tweede stap vindt plaats in Realtime Intelligence in Fabric, waar u een KQL-database verbindt met de Event Hub en het schema voor binnenkomende gegevens configureert. Met deze stap maakt u twee verbindingen. De eerste verbinding, een 'cloudverbinding' genoemd, verbindt Microsoft Fabric met het Event Hub-exemplaar. De tweede verbinding verbindt de 'cloudverbinding' met uw KQL-database. Zodra u klaar bent met het configureren van de gebeurtenisgegevens en het schema, zijn de gestreamde gegevens beschikbaar om een query uit te voeren met behulp van een KQL-queryset.
Vereisten
- Een Azure-abonnement. Maak een gratis Azure-account
- Een Event Hub
- Een werkruimte met een Capaciteit met Microsoft Fabric
- Een KQL-database met bewerkingsmachtigingen
Waarschuwing
Uw Event Hub kan zich niet achter een firewall bevinden.
Een beleid voor gedeelde toegang instellen op uw Event Hub
Voordat u een verbinding met uw Event Hubs-gegevens kunt maken, moet u een SAS (Shared Access Policy) instellen op de Event Hub en informatie verzamelen die later moet worden gebruikt bij het instellen van de verbinding. Zie Shared Access Signatures voor meer informatie over het autoriseren van toegang tot Event Hubs-resources.
Blader in Azure Portal naar het Event Hubs-exemplaar dat u wilt verbinden.
Selecteer onder Instellingen beleid voor gedeelde toegang
Selecteer +Toevoegen om een nieuw SAS-beleid toe te voegen of selecteer een bestaand beleid met machtigingen beheren .
Voer een beleidsnaam in.
Selecteer Beheren en vervolgens Maken.
Informatie verzamelen voor de cloudverbinding
Noteer de volgende vier velden in het deelvenster SAS-beleid. Mogelijk wilt u deze velden kopiëren en ergens plakken, zoals een kladblok, om in een latere stap te gebruiken.
Veldreferentie | Veld | Omschrijving | Voorbeeld |
---|---|---|---|
a | Event Hubs-exemplaar | De naam van het Event Hub-exemplaar. | iotdata |
b | SAS-beleid | De SAS-beleidsnaam die u in de vorige stap hebt gemaakt | DocsTest |
c | Primaire sleutel | De sleutel die is gekoppeld aan het SAS-beleid | In dit voorbeeld begint u met PGGIISb009... |
d | Primaire sleutel voor verbindingsreeks | In dit veld wilt u alleen de Event Hub-naamruimte kopiëren, die u kunt vinden als onderdeel van de verbindingsreeks. | eventhubpm15910.servicebus.windows.net |
Bron
Selecteer Gegevens ophalen op het onderste lint van uw KQL-database.
In het venster Gegevens ophalen is het tabblad Bron geselecteerd.
Selecteer de gegevensbron in de beschikbare lijst. In dit voorbeeld neemt u gegevens op uit Event Hubs.
Configureren
Selecteer een doeltabel. Als u gegevens wilt opnemen in een nieuwe tabel, selecteert u + Nieuwe tabel en voert u een tabelnaam in.
Notitie
Tabelnamen kunnen maximaal 1024 tekens zijn, waaronder spaties, alfanumerieke, afbreekstreepjes en onderstrepingstekens. Speciale tekens worden niet ondersteund.
Selecteer Nieuwe verbinding maken of selecteer Bestaande verbinding en ga verder met de volgende stap.
Nieuwe verbinding maken
Vul de verbindingsinstellingen in volgens de volgende tabel:
Instelling Beschrijving Voorbeeldwaarde Event hub-naamruimte Veld d uit de bovenstaande tabel. eventhubpm15910.servicebus.windows.net Event Hub Geef een veld op uit de bovenstaande tabel. De naam van het Event Hub-exemplaar. iotdata Connection Als u een bestaande cloudverbinding tussen Fabric en Event Hubs wilt gebruiken, selecteert u de naam van deze verbinding. Anders selecteert u Nieuwe verbinding maken. Nieuwe verbinding maken Verbindingsnaam De naam van uw nieuwe cloudverbinding. Deze naam wordt automatisch gegenereerd, maar kan worden overschreven. Moet uniek zijn binnen de Fabric-tenant. Verbinding Soort verificatie Automatisch ingevuld. Momenteel wordt alleen gedeelde toegangssleutel ondersteund. Gedeelde toegangssleutel Naam van gedeelde toegangssleutel Veld b uit de bovenstaande tabel. De naam die u hebt gegeven aan het beleid voor gedeelde toegang. DocsTest Gedeelde toegangssleutel Veld c uit de bovenstaande tabel. De primaire sleutel van het SAS-beleid. Selecteer Opslaan. Er wordt een nieuwe cloudgegevensverbinding gemaakt tussen Fabric en Event Hubs.
De cloudverbinding verbinden met uw KQL-database
Of u nu een nieuwe cloudverbinding hebt gemaakt of als u een bestaande verbinding gebruikt, moet u de consumentengroep definiëren. U kunt desgewenst parameters instellen die aspecten van de verbinding tussen de KQL-database en de cloudverbinding verder definiëren.
Vul de volgende velden in volgens de tabel:
Instelling Beschrijving Voorbeeldwaarde Consumentengroep De relevante consumentengroep die is gedefinieerd in uw Event Hub. Zie consumentengroepen voor meer informatie. Nadat u een nieuwe consumentengroep hebt toegevoegd, moet u deze groep selecteren in de vervolgkeuzelijst. NewConsumer Meer parameters Compressie Gegevenscompressie van de gebeurtenissen, zoals afkomstig van de Event Hub. Opties zijn Geen (standaard) of Gzip-compressie. Geen Eigenschappen van gebeurtenissysteem Zie event hub-systeemeigenschappen voor meer informatie. Als er meerdere records per gebeurtenisbericht zijn, worden de systeemeigenschappen toegevoegd aan de eerste record. Bekijk de eigenschappen van het gebeurtenissysteem. Begindatum voor het ophalen van gebeurtenissen De gegevensverbinding haalt bestaande Event Hub-gebeurtenissen op die zijn gemaakt sinds de begindatum van het ophalen van gebeurtenissen. Het kan alleen gebeurtenissen ophalen die worden bewaard door de Event Hub, op basis van de retentieperiode. De tijdzone is UTC. Als er geen tijd is opgegeven, is de standaardtijd het tijdstip waarop de gegevensverbinding wordt gemaakt. Selecteer Volgende om door te gaan naar het tabblad Inspecteren.
Eigenschappen van gebeurtenissysteem
Systeemeigenschappen slaan eigenschappen op die zijn ingesteld door de Event Hubs-service op het moment dat de gebeurtenis wordt ge enqueued. De gegevensverbinding met de Event Hub kan een geselecteerde set systeemeigenschappen insluiten in de gegevens die zijn opgenomen in een tabel op basis van een bepaalde toewijzing.
Eigenschappen | Gegevenssoort | Beschrijving |
---|---|---|
x-opt-enqueued-time | datetime | UTC-tijd waarop de gebeurtenis is geïnventueerd. |
x-opt-sequence-number | long | Het logische volgnummer van de gebeurtenis binnen de partitiestroom van de Event Hub. |
x-opt-offset | tekenreeks | De verschuiving van de gebeurtenis uit de partitiestroom van de Event Hub. De offset-id is uniek binnen een partitie van de Event Hub-stream. |
x-opt-publisher | tekenreeks | De naam van de uitgever, als het bericht is verzonden naar een uitgeverseindpunt. |
x-opt-partition-key | tekenreeks | De partitiesleutel van de bijbehorende partitie die de gebeurtenis heeft opgeslagen. |
Inspecteren
Selecteer Voltooien om het opnameproces te voltooien.
Optioneel:
Selecteer Opdrachtviewer om de automatische opdrachten weer te geven en te kopiëren die zijn gegenereerd op basis van uw invoer.
Wijzig de automatisch uitgestelde gegevensindeling door de gewenste indeling in de vervolgkeuzelijst te selecteren. Gegevens worden gelezen uit de Event Hub in de vorm van EventData-objecten . Ondersteunde indelingen zijn CSV, JSON, PSV, SCsv, SOHsv TSV, TXT en TSVE.
Als de gegevens die u in het voorbeeldvenster ziet niet zijn voltooid, hebt u mogelijk meer gegevens nodig om een tabel te maken met alle benodigde gegevensvelden. Gebruik de volgende opdrachten om nieuwe gegevens op te halen uit uw Event Hub:
- Nieuwe gegevens verwijderen en ophalen: verwijdert de gegevens die worden weergegeven en zoekt naar nieuwe gebeurtenissen.
- Meer gegevens ophalen: zoekt naar meer gebeurtenissen naast de al gevonden gebeurtenissen.
Kolommen bewerken
Notitie
- Voor tabelindelingen (CSV, TSV, PSV) kunt u een kolom niet twee keer toewijzen. Als u wilt toewijzen aan een bestaande kolom, verwijdert u eerst de nieuwe kolom.
- U kunt een bestaand kolomtype niet wijzigen. Als u probeert toe te wijzen aan een kolom met een andere indeling, kunt u uiteindelijk lege kolommen gebruiken.
De wijzigingen die u in een tabel kunt aanbrengen, zijn afhankelijk van de volgende parameters:
- Tabeltype is nieuw of bestaand
- Toewijzingstype is nieuw of bestaand
Tabeltype | Toewijzingstype | Beschikbare aanpassingen |
---|---|---|
Nieuwe tabel | Nieuwe toewijzing | Naam van kolom wijzigen, gegevenstype wijzigen, gegevensbron wijzigen, toewijzingstransformatie, kolom toevoegen, kolom verwijderen |
Bestaande tabel | Nieuwe toewijzing | Kolom toevoegen (waarop u vervolgens het gegevenstype, de naam kunt wijzigen en bijwerken) |
Bestaande tabel | Bestaande toewijzing | Geen |
Toewijzingstransformaties
Sommige toewijzingen van gegevensindelingen (Parquet, JSON en Avro) bieden ondersteuning voor eenvoudige opnametijdtransformaties. Als u toewijzingstransformaties wilt toepassen, maakt of werkt u een kolom in het venster Kolommen bewerken.
Toewijzingstransformaties kunnen worden uitgevoerd op een kolom van het type tekenreeks of datum/tijd, waarbij de bron gegevenstype int of lang heeft. Ondersteunde toewijzingstransformaties zijn:
- DateTimeFromUnixSeconds
- DateTimeFromUnixMilliseconden
- DateTimeFromUnixMicroseconds
- DateTimeFromUnixNanoseconds
Schematoewijzing voor Avro-bestanden vastleggen in Event Hubs
Een manier om Event Hubs-gegevens te gebruiken, is door gebeurtenissen vast te leggen via Azure Event Hubs in Azure Blob Storage of Azure Data Lake Storage. Vervolgens kunt u de opnamebestanden opnemen terwijl ze zijn geschreven met behulp van een Event Grid-gegevensverbinding.
Het schema van de opnamebestanden verschilt van het schema van de oorspronkelijke gebeurtenis die naar Event Hubs wordt verzonden. U moet het doeltabelschema ontwerpen met dit verschil in gedachten. De nettolading van de gebeurtenis wordt in het opnamebestand weergegeven als een bytematrix en deze matrix wordt niet automatisch gedecodeerd door de Azure Data Explorer-gegevensverbinding van Event Grid. Zie Vastgelegde Avro-bestanden verkennen in Azure Event Hubs voor meer specifieke informatie over het bestandsschema voor Event Hubs Avro-opnamegegevens.
De nettolading van de gebeurtenis correct decoderen:
- Wijs het
Body
veld van de vastgelegde gebeurtenis toe aan een kolom van het typedynamic
in de doeltabel. - Pas een updatebeleid toe waarmee de bytematrix wordt geconverteerd naar een leesbare tekenreeks met behulp van de functie unicode_codepoints_to_string().
Geavanceerde opties op basis van gegevenstype
Tabellair (CSV, TSV, PSV):
Als u tabelindelingen in tabelvorm opneemt in een bestaande tabel, kunt u geavanceerd>tabelschema behouden selecteren. Tabelgegevens bevatten niet noodzakelijkerwijs de kolomnamen die worden gebruikt om brongegevens toe te wijzen aan de bestaande kolommen. Wanneer deze optie is ingeschakeld, wordt de toewijzing op volgorde uitgevoerd en blijft het tabelschema hetzelfde. Als deze optie is uitgeschakeld, worden nieuwe kolommen gemaakt voor binnenkomende gegevens, ongeacht de gegevensstructuur.
Als u de eerste rij als kolomnamen wilt gebruiken, selecteert u Geavanceerde>eerste rij een kolomkop.
JSON:
Als u de kolomverdeling van JSON-gegevens wilt bepalen, selecteert u Geavanceerde>geneste niveaus, van 1 tot en met 100.
Als u Geavanceerde>JSON-regels met fouten selecteert, worden de gegevens opgenomen in JSON-indeling. Als u dit selectievakje uitgeschakeld laat, worden de gegevens opgenomen in multijson-indeling.
Samenvatting
In het venster Gegevensvoorbereiding worden alle drie de stappen gemarkeerd met groene vinkjes wanneer de gegevensopname is voltooid. U kunt een kaart selecteren om een query uit te voeren, de opgenomen gegevens te verwijderen of een dashboard van uw opnameoverzicht te bekijken.