Management .NET SDK: analyse taken instellen en uitvoeren met behulp van de Azure Stream Analytics-API voor .NETManagement .NET SDK: Set up and run analytics jobs using the Azure Stream Analytics API for .NET

Meer informatie over het instellen en uitvoeren van analyse taken met behulp van de Stream Analytics-API voor .NET met behulp van de Management .NET SDK.Learn how to set up and run analytics jobs using the Stream Analytics API for .NET using the Management .NET SDK. Stel een project in en maak invoer-en uitvoer bronnen, trans formaties en taken voor starten en stoppen.Set up a project, create input and output sources, transformations, and start and stop jobs. Voor uw analyse taken kunt u gegevens streamen vanuit Blob Storage of van een Event Hub.For your analytics jobs, you can stream data from Blob storage or from an event hub.

Zie de documentatie van management Reference voor de stream Analytics-API voor .net.See the management reference documentation for the Stream Analytics API for .NET.

Azure Stream Analytics is een volledig beheerde service met lage latentie, Maxi maal beschik bare, schaal bare, complexe gebeurtenis verwerking via streaming-gegevens in de Cloud.Azure Stream Analytics is a fully managed service providing low-latency, highly available, scalable, complex event processing over streaming data in the cloud. Met Stream Analytics kunnen klanten streaming-taken instellen om gegevens stromen te analyseren en ze in staat stellen om in realtime analyses te maken.Stream Analytics enables customers to set up streaming jobs to analyze data streams, and allows them to drive near real-time analytics.

Notitie

We hebben de voorbeeld code in dit artikel bijgewerkt met Azure Stream Analytics management .NET SDK v2. x-versie.We have updated the sample code in this article with Azure Stream Analytics Management .NET SDK v2.x version. Zie de Management .NET SDK v1. x gebruiken voor stream Analyticsvoor voorbeeld code met de SDK-versie van lagecy (1. x).For sample code using the uses lagecy (1.x) SDK version, please see Use the Management .NET SDK v1.x for Stream Analytics.

VereistenPrerequisites

Voordat u aan dit artikel begint, moet u aan de volgende vereisten voldoen:Before you begin this article, you must have the following requirements:

  • Installeer Visual Studio 2019 of 2015.Install Visual Studio 2019 or 2015.

  • Down load en Installeer Azure .NET SDK.Download and install Azure .NET SDK.

  • Maak een Azure-resource groep in uw abonnement.Create an Azure Resource Group in your subscription. Het volgende voor beeld is een voor beeld-Azure PowerShell script.The following example is a sample Azure PowerShell script. Zie Azure PowerShell installeren en configurerenvoor Azure PowerShell informatie.For Azure PowerShell information, see Install and configure Azure PowerShell;

    # Log in to your Azure account
    Add-AzureAccount
    
    # Select the Azure subscription you want to use to create the resource group
    Select-AzureSubscription -SubscriptionName <subscription name>
    
    # If Stream Analytics has not been registered to the subscription, remove the remark    symbol (#) to run the Register-AzProvider cmdlet to register the provider namespace
    #Register-AzProvider -Force -ProviderNamespace 'Microsoft.StreamAnalytics'
    
    # Create an Azure resource group
    New-AzureResourceGroup -Name <YOUR RESOURCE GROUP NAME> -Location <LOCATION>
    
  • Stel een invoer bron en een uitvoer doel in voor de taak waarmee verbinding moet worden gemaakt.Set up an input source and output target for the job to connect to.

Een project instellenSet up a project

Als u een analyse taak wilt maken, gebruikt u de Stream Analytics-API voor .NET, moet u uw project eerst instellen.To create an analytics job, use the Stream Analytics API for .NET, first set up your project.

  1. Maak een Visual Studio C# .NET-console toepassing.Create a Visual Studio C# .NET console application.

  2. Voer in de Package Manager-console de volgende opdrachten uit om de NuGet-pakketten te installeren.In the Package Manager Console, run the following commands to install the NuGet packages. De eerste is de Azure Stream Analytics management .NET SDK.The first one is the Azure Stream Analytics Management .NET SDK. De tweede is voor Azure-client verificatie.The second one is for Azure client authentication.

    Install-Package Microsoft.Azure.Management.StreamAnalytics -Version 2.0.0
    Install-Package Microsoft.Rest.ClientRuntime.Azure.Authentication -Version 2.3.1
    
  3. Voeg de sectie appSettings toe aan het App.config-bestand:Add the following appSettings section to the App.config file:

    <appSettings>
        <add key="ClientId" value="1950a258-227b-4e31-a9cf-717495945fc2" />
        <add key="RedirectUri" value="urn:ietf:wg:oauth:2.0:oob" />
        <add key="SubscriptionId" value="YOUR SUBSCRIPTION ID" />
        <add key="ActiveDirectoryTenantId" value="YOUR TENANT ID" />
    </appSettings>
    

    Vervang waarden voor SubscriptionId en ActiveDirectoryTenantId met uw Azure-abonnement en Tenant-id's.Replace values for SubscriptionId and ActiveDirectoryTenantId with your Azure subscription and tenant IDs. U kunt deze waarden verkrijgen door de volgende Azure PowerShell-cmdlet uit te voeren:You can get these values by running the following Azure PowerShell cmdlet:

       Get-AzureAccount
    
  4. Voeg de volgende verwijzing toe aan het. csproj-bestand:Add the following reference in your .csproj file:

    <Reference Include="System.Configuration" />
    
  5. Voeg de volgende using -instructies toe aan het bron bestand (Program.cs) in het project:Add the following using statements to the source file (Program.cs) in the project:

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Threading;
    using System.Threading.Tasks;
    
    using Microsoft.Azure.Management.StreamAnalytics;
    using Microsoft.Azure.Management.StreamAnalytics.Models;
    using Microsoft.Rest.Azure.Authentication;
    using Microsoft.Rest;
    
  6. Een authenticatie methode toevoegen:Add an authentication helper method:

    private static async Task<ServiceClientCredentials> GetCredentials()
    {
        var activeDirectoryClientSettings = ActiveDirectoryClientSettings.UsePromptOnly(ConfigurationManager.AppSettings["ClientId"], new Uri("urn:ietf:wg:oauth:2.0:oob"));
        ServiceClientCredentials credentials = await UserTokenProvider.LoginWithPromptAsync(ConfigurationManager.AppSettings["ActiveDirectoryTenantId"], activeDirectoryClientSettings);
    
        return credentials;
     }
    

Een Stream Analytics-beheer-client makenCreate a Stream Analytics management client

Met een StreamAnalyticsManagementClient -object kunt u de taak en de taak onderdelen, zoals invoer, uitvoer en trans formatie, beheren.A StreamAnalyticsManagementClient object allows you to manage the job and the job components, such as input, output, and transformation.

Voeg de volgende code toe aan het begin van de methode Main :Add the following code to the beginning of the Main method:

 string resourceGroupName = "<YOUR AZURE RESOURCE GROUP NAME>";
 string streamingJobName = "<YOUR STREAMING JOB NAME>";
 string inputName = "<YOUR JOB INPUT NAME>";
 string transformationName = "<YOUR JOB TRANSFORMATION NAME>";
 string outputName = "<YOUR JOB OUTPUT NAME>";
 
 SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
 
 // Get credentials
 ServiceClientCredentials credentials = GetCredentials().Result;
 
 // Create Stream Analytics management client
 StreamAnalyticsManagementClient streamAnalyticsManagementClient = new StreamAnalyticsManagementClient(credentials)
 {
     SubscriptionId = ConfigurationManager.AppSettings["SubscriptionId"]
 };

De waarde van de variabele resourceGroupName moet gelijk zijn aan de naam van de resource groep die u in de vereiste stappen hebt gemaakt of opgenomen.The resourceGroupName variable's value should be the same as the name of the resource group you created or picked in the prerequisite steps.

Als u het aspect van de referentie presentatie van het maken van taken wilt automatiseren, raadpleegt u een Service-Principal verifiëren met Azure Resource Manager.To automate the credential presentation aspect of job creation, refer to Authenticating a service principal with Azure Resource Manager.

In de overige gedeelten van dit artikel wordt ervan uitgegaan dat deze code aan het begin van de methode Main is.The remaining sections of this article assume that this code is at the beginning of the Main method.

Een Stream Analytics-taak makenCreate a Stream Analytics job

Met de volgende code wordt een Stream Analytics taak gemaakt onder de resource groep die u hebt gedefinieerd.The following code creates a Stream Analytics job under the resource group that you have defined. U gaat later een invoer, uitvoer en trans formatie toevoegen aan de taak.You will add an input, output, and transformation to the job later.

// Create a streaming job
StreamingJob streamingJob = new StreamingJob()
{
    Tags = new Dictionary<string, string>()
    {
        { "Origin", ".NET SDK" },
        { "ReasonCreated", "Getting started tutorial" }
    },
    Location = "West US",
    EventsOutOfOrderPolicy = EventsOutOfOrderPolicy.Drop,
    EventsOutOfOrderMaxDelayInSeconds = 5,
    EventsLateArrivalMaxDelayInSeconds = 16,
    OutputErrorPolicy = OutputErrorPolicy.Drop,
    DataLocale = "en-US",
    CompatibilityLevel = CompatibilityLevel.OneFullStopZero,
    Sku = new Sku()
    {
        Name = SkuName.Standard
    }
};
StreamingJob createStreamingJobResult = streamAnalyticsManagementClient.StreamingJobs.CreateOrReplace(streamingJob, resourceGroupName, streamingJobName);

Een Stream Analytics-invoer bron makenCreate a Stream Analytics input source

Met de volgende code wordt een Stream Analytics invoer bron gemaakt met het BLOB-invoer bron type en CSV-serialisatie.The following code creates a Stream Analytics input source with the blob input source type and CSV serialization. Gebruik EventHubStreamInputDataSource in plaats van BlobStreamInputDataSourceom een event hub invoer bron te maken.To create an event hub input source, use EventHubStreamInputDataSource instead of BlobStreamInputDataSource. Op dezelfde manier kunt u het type serialisatie van de invoer bron aanpassen.Similarly, you can customize the serialization type of the input source.

// Create an input
StorageAccount storageAccount = new StorageAccount()
{
    AccountName = "<YOUR STORAGE ACCOUNT NAME>",
    AccountKey = "<YOUR STORAGE ACCOUNT KEY>"
};
Input input = new Input()
{
    Properties = new StreamInputProperties()
    {
        Serialization = new CsvSerialization()
        {
            FieldDelimiter = ",",
            Encoding = Encoding.UTF8
        },
        Datasource = new BlobStreamInputDataSource()
        {
            StorageAccounts = new[] { storageAccount },
            Container = "<YOUR STORAGE BLOB CONTAINER>",
            PathPattern = "{date}/{time}",
            DateFormat = "yyyy/MM/dd",
            TimeFormat = "HH",
            SourcePartitionCount = 16
        }
    }
};
Input createInputResult = streamAnalyticsManagementClient.Inputs.CreateOrReplace(input, resourceGroupName, streamingJobName, inputName);

Invoer bronnen, ongeacht of deze afkomstig zijn van Blob-opslag of een Event Hub, zijn gekoppeld aan een specifieke taak.Input sources, whether from Blob storage or an event hub, are tied to a specific job. Als u dezelfde invoer bron voor verschillende taken wilt gebruiken, moet u de methode opnieuw aanroepen en een andere taak naam opgeven.To use the same input source for different jobs, you must call the method again and specify a different job name.

Een Stream Analytics invoer bron testenTest a Stream Analytics input source

De methode TestConnection test of de stream Analytics taak verbinding kan maken met de invoer bron en andere aspecten die specifiek zijn voor het invoer bron type.The TestConnection method tests whether the Stream Analytics job is able to connect to the input source as well as other aspects specific to the input source type. In de BLOB-invoer bron die u in een eerdere stap hebt gemaakt, controleert de methode bijvoorbeeld of de naam en sleutel paar van het opslag account kunnen worden gebruikt om verbinding te maken met het opslag account en om te controleren of de opgegeven container bestaat.For example, in the blob input source you created in an earlier step, the method will check that the Storage account name and key pair can be used to connect to the Storage account as well as check that the specified container exists.

// Test the connection to the input
ResourceTestStatus testInputResult = streamAnalyticsManagementClient.Inputs.Test(resourceGroupName, streamingJobName, inputName);

Een Stream Analytics-uitvoer doel makenCreate a Stream Analytics output target

Het maken van een uitvoer doel is vergelijkbaar met het maken van een Stream Analytics invoer bron.Creating an output target is similar to creating a Stream Analytics input source. Uitvoer doelen zijn als invoer bronnen gekoppeld aan een specifieke taak.Like input sources, output targets are tied to a specific job. Als u hetzelfde uitvoer doel voor verschillende taken wilt gebruiken, moet u de methode opnieuw aanroepen en een andere taak naam opgeven.To use the same output target for different jobs, you must call the method again and specify a different job name.

Met de volgende code wordt een uitvoer doel (Azure SQL Database) gemaakt.The following code creates an output target (Azure SQL Database). U kunt het gegevens type van het uitvoer doel en/of het type serialisatie aanpassen.You can customize the output target's data type and/or serialization type.

// Create an output
Output output = new Output()
{
    Datasource = new AzureSqlDatabaseOutputDataSource()
    {
        Server = "<YOUR DATABASE SERVER NAME>",
        Database = "<YOUR DATABASE NAME>",
        User = "<YOUR DATABASE LOGIN>",
        Password = "<YOUR DATABASE LOGIN PASSWORD>",
        Table = "<YOUR DATABASE TABLE NAME>"
    }
};
Output createOutputResult = streamAnalyticsManagementClient.Outputs.CreateOrReplace(output, resourceGroupName, streamingJobName, outputName);

Een Stream Analytics-uitvoer doel testenTest a Stream Analytics output target

Een Stream Analytics uitvoer doel heeft ook de TestConnection -methode voor het testen van verbindingen.A Stream Analytics output target also has the TestConnection method for testing connections.

// Test the connection to the output
ResourceTestStatus testOutputResult = streamAnalyticsManagementClient.Outputs.Test(resourceGroupName, streamingJobName, outputName);

Een Stream Analytics transformatie makenCreate a Stream Analytics transformation

Met de volgende code wordt een Stream Analytics transformatie gemaakt met de query ' Select * from input ' en wordt opgegeven dat er één streaming-eenheid voor de Stream Analytics taak moet worden toegewezen.The following code creates a Stream Analytics transformation with the query "select * from Input" and specifies to allocate one streaming unit for the Stream Analytics job. Zie Azure stream Analytics taken schalenvoor meer informatie over het aanpassen van streaming-eenheden.For more information on adjusting streaming units, see Scale Azure Stream Analytics jobs.

// Create a transformation
Transformation transformation = new Transformation()
{
    Query = "Select Id, Name from <your input name>", // '<your input name>' should be replaced with the value you put for the 'inputName' variable above or in a previous step
    StreamingUnits = 1
};
Transformation createTransformationResult = streamAnalyticsManagementClient.Transformations.CreateOrReplace(transformation, resourceGroupName, streamingJobName, transformationName);

Net als bij invoer en uitvoer is een trans formatie ook gekoppeld aan de specifieke Stream Analytics taak die is gemaakt onder.Like input and output, a transformation is also tied to the specific Stream Analytics job it was created under.

Een Stream Analytics-taak startenStart a Stream Analytics job

Nadat u een Stream Analytics taak en de invoer (s), uitvoer (en) en trans formatie hebt gemaakt, kunt u de taak starten door de Start -methode aan te roepen.After creating a Stream Analytics job and its input(s), output(s), and transformation, you can start the job by calling the Start method.

Met de volgende voorbeeld code wordt een Stream Analytics taak gestart waarbij een aangepaste start tijd voor uitvoer is ingesteld op 12 december 2012, 12:12:12 UTC:The following sample code starts a Stream Analytics job with a custom output start time set to December 12, 2012, 12:12:12 UTC:

// Start a streaming job
StartStreamingJobParameters startStreamingJobParameters = new StartStreamingJobParameters()
{
    OutputStartMode = OutputStartMode.CustomTime,
    OutputStartTime = new DateTime(2012, 12, 12, 12, 12, 12, DateTimeKind.Utc)
};
streamAnalyticsManagementClient.StreamingJobs.Start(resourceGroupName, streamingJobName, startStreamingJobParameters);

Een Stream Analytics taak stoppenStop a Stream Analytics job

U kunt een actieve Stream Analytics-taak stoppen door de Stop -methode aan te roepen.You can stop a running Stream Analytics job by calling the Stop method.

// Stop a streaming job
streamAnalyticsManagementClient.StreamingJobs.Stop(resourceGroupName, streamingJobName);

Een Stream Analytics taak verwijderenDelete a Stream Analytics job

Met de methode verwijderen worden de taak en de onderliggende subbronnen, inclusief invoer (len), uitvoer (en) en trans formatie van de taak verwijderd.The Delete method will delete the job as well as the underlying sub-resources, including input(s), output(s), and transformation of the job.

// Delete a streaming job
streamAnalyticsManagementClient.StreamingJobs.Delete(resourceGroupName, streamingJobName);

Ondersteuning krijgenGet support

Probeer voor meer hulp onze micro soft Q&een vraag pagina voor Azure stream Analytics.For further assistance, try our Microsoft Q&A question page for Azure Stream Analytics.

Volgende stappenNext steps

U hebt de basis beginselen van het gebruik van een .NET SDK geleerd om analyse taken te maken en uit te voeren.You've learned the basics of using a .NET SDK to create and run analytics jobs. Lees de volgende artikelen voor meer informatie:To learn more, see the following articles: