Beispiel #1
0
        public async Task ExecuteAsync()
        {
            string url = @"http:\\localhost:8088";

            await using var context = new KSqlDBContext(url);

            var http = new HttpClientFactory(new Uri(url));

            restApiClient = new KSqlDbRestApiClient(http);

            await CreateOrReplaceStreamAsync();

            var statement = context.CreateTableStatement(MaterializedViewName)
                            .As <IoTSensor>("sensor_values")
                            .GroupBy(c => c.SensorId)
                            .Select(c => new { SensorId = c.Key, AvgValue = c.Avg(g => g.Value) });

            var query = statement.ToStatementString();

            var response = await statement.ExecuteStatementAsync();

            response = await InsertAsync(new IoTSensor { SensorId = "sensor-1", Value = 11 });

            await PullSensor(context);
        }
    public async Task ExecuteAsync()
    {
        string url = @"http:\\localhost:8088";

        await using var context = new KSqlDBContext(url);

        var http = new HttpClientFactory(new Uri(url));

        restApiClient = new KSqlDbRestApiClient(http);

        await CreateOrReplaceStreamAsync();

        var statement = context.CreateTableStatement(MaterializedViewName)
                        .As <IoTSensor>(StreamName)
                        .GroupBy(c => c.SensorId)
                        .WindowedBy(new TimeWindows(Duration.OfSeconds(5)).WithGracePeriod(Duration.OfHours(2)))
                        .Select(c => new { SensorId = c.Key, AvgValue = c.Avg(g => g.Value) });

        var response = await statement.ExecuteStatementAsync();

        var statementResponses = await response.ToStatementResponsesAsync();

        await Task.Delay(TimeSpan.FromSeconds(1));

        response = await InsertAsync(new IoTSensor { SensorId = "sensor-1", Value = 11 });
    }
    public async Task ExecuteAsync()
    {
        string ksqlDbUrl = @"http:\\localhost:8088";

        var contextOptions = new KSqlDbContextOptionsBuilder()
                             .UseKSqlDb(ksqlDbUrl)
                             .SetBasicAuthCredentials("fred", "letmein")
                             .Options;

        contextOptions.DisposeHttpClient = false;

        await using var context = new KSqlDBContext(contextOptions);

        var httpClient = new HttpClient()
        {
            BaseAddress = new Uri(ksqlDbUrl)
        };

        var httpClientFactory = new HttpClientFactory(httpClient);

        restApiClient = new KSqlDbRestApiClient(httpClientFactory)
                        .SetCredentials(new BasicAuthCredentials("fred", "letmein"));

        ((KSqlDbRestApiClient)restApiClient).DisposeHttpClient = false;

        await CreateOrReplaceStreamAsync();

        var statement = context.CreateTableStatement(MaterializedViewName)
                        .As <IoTSensor>("sensor_values")
                        .GroupBy(c => c.SensorId)
                        .WindowedBy(new TimeWindows(Duration.OfSeconds(5)).WithGracePeriod(Duration.OfHours(2)))
                        .Select(c => new { SensorId = c.Key, AvgValue = c.Avg(g => g.Value) });

        var query = statement.ToStatementString();

        var response = await statement.ExecuteStatementAsync();

        response = await InsertAsync(new IoTSensor { SensorId = "sensor-1", Value = 11 });

        await PullSensor(context);
    }