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); }