Event Grid-gegevensverbinding

Event Grid-gegevensopname is een pijplijn die luistert naar Azure Storage en Azure Data Explorer bijwerkt om informatie op te halen wanneer zich geabonneerde gebeurtenissen voordoen. Azure Data Explorer biedt continue opname vanuit Azure Storage (Blob Storage en ADLSv2) met Azure Event Grid abonnement voor meldingen die zijn gemaakt door een blob of een andere naam hebben gekregen en deze meldingen via een Azure Event Hubs naar Azure Data Explorer streamen.

De Opnamepijplijn van Event Grid doorloopt verschillende stappen. U maakt een doeltabel in Azure Data Explorer waarin de gegevens in een bepaalde indeling worden opgenomen. Vervolgens maakt u een Event Grid-gegevensverbinding in Azure Data Explorer. De Event Grid-gegevensverbinding moet informatie over de routering van gebeurtenissen kennen, zoals naar welke tabel de gegevens moeten worden verzonden en de tabeltoewijzing. U geeft ook opname-eigenschappen op, die de gegevens beschrijven die moeten worden opgenomen, de doeltabel en de toewijzing. U kunt voorbeeldgegevens genereren en blobs uploaden of de naam van blobs wijzigen om uw verbinding te testen. Blobs verwijderen na opname.

Event Grid-opname kan worden beheerd via de Azure Portal, met behulp van de opnamewizard, programmatisch met C# of Python of met de Azure Resource Manager-sjabloon.

Zie Overzicht van gegevensopname in Azure Data Explorer voor algemene informatie over gegevensopname in Azure Data Explorer.

Verificatiemechanismen voor Azure Data Explorer-gegevensverbindingen

Waarschuwing

Als de machtigingen voor de beheerde identiteit worden verwijderd uit de gegevensbron, wordt de gegevensverbinding uitgeschakeld en kunnen er geen gegevens uit de gegevensbron worden opgehaald.

  • Gegevensverbinding op basis van sleutel: als er geen beheerde identiteit is opgegeven in de gegevensverbinding, wordt de verbinding automatisch standaard ingesteld op verificatie op basis van sleutels. Met op sleutels gebaseerde verbindingen worden gegevens opgehaald met behulp van een resource-verbindingsreeks, zoals de Azure Event Hubs verbindingsreeks. Azure Data Explorer genereert de resource-verbindingsreeks voor de opgegeven resource en slaat deze veilig op in de gegevensverbinding. De verbindingsreeks wordt vervolgens gebruikt om gegevens op te halen uit de gegevensbron.

Waarschuwing

Als de sleutel wordt geroteerd, wordt de gegevensverbinding uitgeschakeld en kunnen er geen gegevens worden opgehaald uit de gegevensbron. U kunt het probleem oplossen door de gegevensverbinding bij te werken of opnieuw te maken.

Gegevensindeling

  • Zie ondersteunde indelingen.
  • Zie Ondersteunde compressies.
    • De oorspronkelijke niet-gecomprimeerde gegevensgrootte moet deel uitmaken van de blobmetagegevens, anders maakt Azure Data Explorer een schatting. De limiet voor niet-gecomprimeerde opname per bestand is 6 GB.

Notitie

Event Grid-meldingsabonnement kan worden ingesteld voor Azure Storage-accounts voor BlobStorage, StorageV2of Data Lake Storage Gen2.

Opname-eigenschappen

U kunt opname-eigenschappen van de blobopname opgeven via de blobmetagegevens. U kunt de volgende eigenschappen instellen:

Eigenschap Beschrijving
rawSizeBytes Grootte van de onbewerkte (niet-gecomprimeerde) gegevens. Voor Avro/ORC/Parquet is dat de grootte voordat indelingsspecifieke compressie wordt toegepast. Geef de oorspronkelijke gegevensgrootte op door deze eigenschap in te stellen op de niet-gecomprimeerde gegevensgrootte in bytes.
kustoDatabase De hoofdlettergevoelige naam van de doeldatabase. Standaard worden gegevens opgenomen in de doeldatabase die is gekoppeld aan de gegevensverbinding. Gebruik deze eigenschap om de standaarddatabase te overschrijven en gegevens naar een andere database te verzenden. Hiervoor moet u de verbinding eerst instellen als een verbinding met meerdere databases.
kustoTable De hoofdlettergevoelige naam van de bestaande doeltabel. Hiermee overschrijft u de Table set in het Data Connection deelvenster.
kustoDataFormat Gegevensindeling. Hiermee overschrijft u de Data format set in het Data Connection deelvenster.
kustoIngestionMappingReference Naam van de bestaande opnametoewijzing die moet worden gebruikt. Hiermee overschrijft u de Column mapping set in het Data Connection deelvenster.
kustoIgnoreFirstRecord Als dit is ingesteld op true, negeert Kusto de eerste rij van de blob. Gebruik gegevens in tabelvorm (CSV, TSV of vergelijkbaar) om kopteksten te negeren.
kustoExtentTags Tekenreeks die tags vertegenwoordigt die als resultaat worden gekoppeld.
kustoCreationTime Overschrijft de aanmaaktijd voor de blob, opgemaakt als een ISO 8601-tekenreeks. Gebruiken voor backfilling.

Routering van gebeurtenissen

Wanneer u een gegevensverbinding met uw cluster maakt, geeft u de routering op voor de locatie waar opgenomen gegevens moeten worden verzonden. De standaardroutering is naar de doeltabel die is opgegeven in de verbindingsreeks die is gekoppeld aan de doeldatabase. De standaardroutering voor uw gegevens wordt ook wel statische routering genoemd. U kunt een alternatieve routering voor uw gegevens opgeven met behulp van de eigenschappen van gebeurtenisgegevens.

Gebeurtenisgegevens routeren naar een alternatieve database

Het routeren van gegevens naar een alternatieve database is standaard uitgeschakeld. Als u de gegevens naar een andere database wilt verzenden, moet u de verbinding eerst instellen als een verbinding met meerdere databases. U kunt dit doen in de Azure Portal, C#, Python of een ARM-sjabloon. De gebruiker, groep, service-principal of beheerde identiteit die wordt gebruikt om databaseroutering toe te staan, moet ten minste de rol inzender en schrijfmachtigingen voor het cluster hebben. Zie Een Event Grid-gegevensverbinding maken voor Azure Data Explorer voor meer informatie.

Als u een alternatieve database wilt opgeven, stelt u de eigenschap Databaseopname in.

Waarschuwing

Als u een alternatieve database opgeeft zonder de verbinding in te stellen als een gegevensverbinding met meerdere databases, mislukt de opname.

Gebeurtenisgegevens routeren naar een alternatieve tabel

Geef bij het instellen van een blob-opslagverbinding met Azure Data Explorer-cluster de eigenschappen van de doeltabel op:

  • tabelnaam
  • gegevensindeling
  • toewijzing

U kunt ook eigenschappen van de doeltabel opgeven voor elke blob met behulp van blobmetagegevens. De gegevens worden dynamisch gerouteerd, zoals opgegeven door opname-eigenschappen.

In het onderstaande voorbeeld ziet u hoe u opname-eigenschappen instelt voor de metagegevens van de blob voordat u deze uploadt. Blobs worden gerouteerd naar verschillende tabellen.

Daarnaast kunt u de doeldatabase opgeven. Er wordt een Event Grid-gegevensverbinding gemaakt binnen de context van een specifieke database. Daarom is deze database de standaarddatabaseroutering van de gegevensverbinding. Als u de gegevens naar een andere database wilt verzenden, stelt u de opnameeigenschap KustoDatabase in en stelt u de gegevensverbinding in als een gegevensverbinding met meerdere databases. Het routeren van gegevens naar een andere database is standaard uitgeschakeld (niet toegestaan). Als u een databaseopname-eigenschap instelt die verschilt van de database van de gegevensverbinding, zonder gegevensroutering naar meerdere databases toe te staan (de verbinding in te stellen als een gegevensverbinding met meerdere databases), mislukt de opname.

Zie Blobs uploaden voor meer informatie.

var container = new BlobContainerClient("<storageAccountConnectionString>", "<containerName>");
await container.CreateIfNotExistsAsync();
var blob = container.GetBlobClient("<blobName>");
// Blob is dynamically routed to table `Events`, ingested using `EventsMapping` data mapping
await blob.SetMetadataAsync(
    new Dictionary<string, string>
    {
        { "rawSizeBytes", "4096" }, // the uncompressed size is 4096 bytes
        { "kustoTable", "Events" },
        { "kustoDataFormat", "json" },
        { "kustoIngestionMappingReference", "EventsMapping" },
        { "kustoDatabase", "AnotherDB" }
    }
);
await blob.UploadAsync(BinaryData.FromString(File.ReadAllText("<filePath>")));

Blobs uploaden

U kunt een blob maken op basis van een lokaal bestand, opname-eigenschappen instellen op de blobmetagegevens en deze uploaden. Zie De Event Grid-gegevensverbinding gebruiken voor voorbeelden.

Notitie

  • We raden u ten zeerste aan BlockBlob om gegevens te genereren, omdat het gebruik AppendBlob kan leiden tot onverwacht gedrag.
  • Voor het gebruik van de Azure Data Lake Gen2-opslag-SDK moet u voor het uploaden van bestanden gebruiken CreateFile en Flush aan het einde de parameter close instellen op true. Zie De Event Grid-gegevensverbinding gebruiken voor een gedetailleerd voorbeeld van correct gebruik van de Data Lake Gen2 SDK.
  • Het activeren van opname na een CopyBlob bewerking wordt niet ondersteund voor opslagaccounts waarvoor de hiërarchische naamruimtefunctie is ingeschakeld.
  • Wanneer het event hub-eindpunt de ontvangst van een gebeurtenis niet bevestigt, activeert Azure Event Grid een mechanisme voor opnieuw proberen. Als de bezorging van deze nieuwe poging mislukt, kan Event Grid de niet-bezorgde gebeurtenissen aan een opslagaccount leveren met behulp van een proces van onbestelbare brieven. Zie Event Grid-berichtbezorging en opnieuw proberen voor meer informatie.

Naam van blobs wijzigen

Wanneer u ADLSv2 gebruikt, kunt u de naam van een blob wijzigen om blobopname te activeren in Azure Data Explorer. Zie bijvoorbeeld Naam van blobs wijzigen.

Notitie

  • Het wijzigen van de naam van een map is mogelijk in ADLSv2, maar er worden geen gebeurtenissen met de naam van blob en opname van blobs in de map geactiveerd. Als u blobs wilt opnemen na het wijzigen van de naam, wijzigt u de naam van de gewenste blobs rechtstreeks.
  • Als u filters hebt gedefinieerd om specifieke onderwerpen bij te houden tijdens het maken van de gegevensverbinding of tijdens het handmatig maken van Event Grid-resources, worden deze filters toegepast op het pad van het doelbestand.

Blobs verwijderen met behulp van de levenscyclus van opslag

Azure Data Explorer verwijdert de blobs niet na opname. Gebruik de levenscyclus van Azure Blob Storage om uw blobverwijdering te beheren. Het wordt aanbevolen om de blobs drie tot vijf dagen te bewaren.

Bekende problemen met Event Grid

  • Wanneer u Azure Data Explorer gebruikt om de bestanden te exporteren die worden gebruikt voor event grid-opname, moet u het volgende doen:
    • Event Grid-meldingen worden niet geactiveerd als de verbindingsreeks opgegeven voor de exportopdracht of de verbindingsreeks die aan een externe tabel is verstrekt, een verbindingsreeks is in de ADLS Gen2-indeling (bijvoorbeeld abfss://filesystem@accountname.dfs.core.windows.net), maar het opslagaccount niet is ingeschakeld voor hiërarchische naamruimte.
    • Als het account niet is ingeschakeld voor hiërarchische naamruimte, moet verbindingsreeks de Blob Storage-indeling gebruiken (bijvoorbeeld https://accountname.blob.core.windows.net). De export werkt zoals verwacht, zelfs wanneer u de ADLS Gen2-verbindingsreeks gebruikt, maar meldingen worden niet geactiveerd en Event Grid-opname werkt niet.