Uitvoer van Azure Stream Analytics

Een Azure Stream Analytics-taak bestaat uit een invoer, query en een uitvoer. Er zijn verschillende uitvoertypen waarnaar u getransformeerde gegevens kunt verzenden. Dit artikel bevat de ondersteunde Stream Analytics-uitvoer. Wanneer u uw Stream Analytics-query ontwerpt, raadpleegt u de naam van de uitvoer met behulp van de INTO-component. U kunt één uitvoer per taak of meerdere uitvoer per streamingtaak (indien nodig) gebruiken door meerdere INTO-componenten toe te voegen aan de query.

Als u uitvoer van Stream Analytics-taken wilt maken, bewerken en testen, kunt u Azure Portal, Azure PowerShell, .NET API, REST API, Visual Studio en Visual Studio Code gebruiken.

Notitie

We raden u ten zeerste aan Stream Analytics-hulpprogramma's voor Visual Studio Code te gebruiken voor de beste lokale ontwikkelervaring. Er zijn bekende functie-hiaten in Stream Analytics-hulpprogramma's voor Visual Studio 2019 (versie 2.6.3000.0) en dit wordt in de toekomst niet verbeterd.

Sommige uitvoertypen ondersteunen partitionering , zoals wordt weergegeven in de volgende tabel.

Alle uitvoer ondersteunt batchverwerking, maar slechts enkele ondersteuning bieden voor het expliciet instellen van de grootte van de uitvoerbatch. Zie de sectie batchgrootten voor uitvoer voor meer informatie.

Uitvoertype Partitionering Beveiliging
Azure Data Explorer Ja Beheerde identiteit
Azure Functions Ja Toegangssleutel
Azure Synapse Analytics Ja SQL-gebruikersverificatie,
beheerde identiteit
Blob Storage en Azure Data Lake Gen 2 Ja Toegangssleutel,
beheerde identiteit
Azure Cosmos DB Ja Toegangssleutel,
beheerde identiteit
Azure Data Lake Storage Gen 2 Ja Beheerde identiteit van
Microsoft Entra
Azure Event Hubs Ja, moet de kolom partitiesleutel instellen in de uitvoerconfiguratie. Toegangssleutel,
beheerde identiteit
Kafka (preview) Ja, moet de kolom partitiesleutel instellen in de uitvoerconfiguratie. Toegangssleutel,
beheerde identiteit
Azure Database for PostgreSQL Ja Verificatie van gebruikersnaam en wachtwoord
Power BI Nee Microsoft Entra-gebruiker,
beheerde identiteit
Azure Service Bus-wachtrijen Ja Toegangssleutel,
beheerde identiteit
Azure Service Bus-onderwerpen Ja Toegangssleutel,
beheerde identiteit
Azure SQL-database Ja, optioneel. SQL-gebruikersverificatie,
beheerde identiteit
Azure Table storage Ja Accountsleutel

Belangrijk

Azure Stream Analytics maakt standaard gebruik van Insert of Replace-API. Deze bewerking vervangt een bestaande entiteit of voegt een nieuwe entiteit in als deze niet in de tabel bestaat.

Partitionering

Stream Analytics ondersteunt partities voor alle uitvoer, met uitzondering van Power BI. Zie het artikel voor het specifieke uitvoertype waarin u geïnteresseerd bent voor meer informatie over partitiesleutels en het aantal uitvoerschrijvers. Artikelen voor uitvoertypen zijn gekoppeld in de vorige sectie.

Daarnaast kan voor geavanceerdere afstemming van de partities het aantal uitvoerschrijvers worden beheerd met behulp van een INTO <partition count> (zie INTO)-component in uw query, wat handig kan zijn bij het bereiken van een gewenste taaktopologie. Als uw uitvoeradapter niet is gepartitioneerd, veroorzaakt het ontbreken van gegevens in één invoerpartitie een vertraging tot aan de late aankomsttijd. In dergelijke gevallen wordt de uitvoer samengevoegd met één schrijver, wat knelpunten in uw pijplijn kan veroorzaken. Zie overwegingen voor azure Stream Analytics-gebeurtenisvolgorde voor meer informatie over het beleid voor late aankomst.

Grootte van uitvoerbatch

Alle uitvoer biedt ondersteuning voor batchverwerking, maar slechts enkele ondersteuningsinstellingen die expliciet de grootte van de batch ondersteunen. Azure Stream Analytics maakt gebruik van batches van variabele grootte om gebeurtenissen te verwerken en naar uitvoer te schrijven. Normaal gesproken schrijft de Stream Analytics-engine niet één bericht tegelijk en gebruikt batches voor efficiëntie. Wanneer de snelheid van zowel binnenkomende als uitgaande gebeurtenissen hoog is, gebruikt Stream Analytics grotere batches. Wanneer de uitgaande snelheid laag is, worden kleinere batches gebruikt om de latentie laag te houden.

Gedrag van avro- en Parquet-bestandssplitsing

Een Stream Analytics-query kan meerdere schema's genereren voor een bepaalde uitvoer. De lijst met kolommen die zijn geprojecteerd en het bijbehorende type kunnen per rij worden gewijzigd. De Avro- en Parquet-indelingen bieden standaard geen ondersteuning voor variabele schema's in één bestand.

Het volgende gedrag kan optreden bij het doorsturen van een stroom met variabele schema's naar een uitvoer met behulp van deze indelingen:

  • Als de schemawijziging kan worden gedetecteerd, wordt het huidige uitvoerbestand gesloten en wordt er een nieuw bestand geïnitialiseerd in het nieuwe schema. Als u bestanden als zodanig splitst, wordt de uitvoer aanzienlijk vertraagd wanneer schemawijzigingen regelmatig plaatsvinden. Dit gedrag kan ernstige gevolgen hebben voor de algehele prestaties van de taak
  • Als de schemawijziging niet kan worden gedetecteerd, wordt de rij waarschijnlijk geweigerd en loopt de taak vast omdat de rij niet kan worden uitgevoerd. Geneste kolommen of matrices met meerdere typen zijn situaties die niet worden gedetecteerd en geweigerd.

We raden u aan uitvoer te overwegen om de Avro- of Parquet-indeling sterk te typen, of schema-on-write, en query's die erop gericht zijn als zodanig te worden geschreven (expliciete conversies en projecties voor een uniform schema).

Als er meerdere schema's moeten worden gegenereerd, kunt u overwegen om meerdere uitvoer te maken en records in elke bestemming te splitsen met behulp van een WHERE component.

Eigenschappen van parquet-uitvoerbatchvenster

Wanneer u azure Resource Manager-sjabloonimplementatie of de REST API gebruikt, zijn de twee eigenschappen van het batchvenster:

  1. timeWindow

    De maximale wachttijd per batch. De waarde moet een tekenreeks van Timespan. Bijvoorbeeld gedurende 00:02:00 twee minuten. Na deze tijd wordt de batch naar de uitvoer geschreven, zelfs als niet aan de minimumvereisten voor rijen wordt voldaan. De standaardwaarde is 1 minuut en het toegestane maximum is 2 uur. Als de blob-uitvoer de frequentie van het padpatroon heeft, kan de wachttijd niet hoger zijn dan het tijdsbereik van de partitie.

  2. sizeWindow

    Het aantal minimumrijen per batch. Voor Parquet maakt elke batch een nieuw bestand. De huidige standaardwaarde is 2000 rijen en het toegestane maximum is 10.000 rijen.

Deze eigenschappen van batchvensters worden alleen ondersteund door API-versie 2017-04-01-preview of hoger. Hier volgt een voorbeeld van de JSON-nettolading voor een REST API-aanroep:

"type": "stream",
      "serialization": {
        "type": "Parquet",
        "properties": {}
      },
      "timeWindow": "00:02:00",
      "sizeWindow": "2000",
      "datasource": {
        "type": "Microsoft.Storage/Blob",
        "properties": {
          "storageAccounts" : [
          {
            "accountName": "{accountName}",
            "accountKey": "{accountKey}",
          }
          ],

Volgende stappen