如何解决已添加具有相同键的项目键:调用 InfluxDB 的结果
我正在使用 c# 测试向/从 InfluxDB v2 写入/查询时间序列数据。 基本上,我几乎使用了 WebInterface 中 Data->"Load Data"->"Client Libraries"->C# 下提供的示例。
我可以写入数据库没问题,但是当我尝试查询数据时,出现异常
'已经添加了具有相同密钥的项目。键:结果'。
导致问题的调用是
public async Task<List<InfluxDB.Client.Core.Flux.Domain.FluxTable>> QueryDB()
{
string bucket = "ABucket";
var query = $"from(bucket:\"{bucket}\") |> range(start: -1m)";
var tables = await client.GetQueryApi().QueryAsync(query,"MyOrganisation");
// client is an instance of InfluxDBClient
return tables;
}
当它从上面的 QueryAsync 调用返回时会崩溃。
我已经阅读了其他具有类似问题的 post 1 和 post 2,但在阅读并检查我的代码后,我没有看到任何名称相同的内容。 我什至更改了一堆名称以确保没有重复。但问题并没有消失。
如果我删除了没有问题的异步调用,但如果我这样做了,我将无法查询数据库。
有没有人用过InfluxDB提供的c#例子并成功了?
如果有帮助,这里是堆栈跟踪。
at InfluxDB.Client.Core.Internal.AbstractQueryClient.<>c.<.cctor>b__22_1(Exception e)
at InfluxDB.Client.Core.Internal.AbstractQueryClient.<Query>d__9.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult()
at InfluxDB.Client.QueryApi.<QueryAsync>d__7.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at MainApp.InfluxDBControl.<QueryDB>d__12.MoveNext() in D:\Test\TestProject\TestInfluxDB\InfluxDBControl.cs:line 104
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at MainApp.MainTest.<CatchUpButton_Click>d__20.MoveNext() in D:\Test\TestProject\TestInfluxDB\MainAppForm.cs:line 171
解决方法
我今天遇到了同样的问题,并且能够通过创建一个新的 Bucket 来解决它。
查询我设置时创建的Bucket时,发现里面有很多标签。其中,名为“result”的标签包含“compile_error”、“runtime_error”和“success”标签。我的猜测是这就是导致错误的原因。
我不太确定为什么会这样。我创建的新 Bucket 是完全空的,除了我放入的数据。所以我也不能告诉你,为什么系统似乎想要使用相同的标签来存储日志数据和查询结果,我也不能告诉你为什么在新创建的 Bucket 中没有这些。
我不太确定这是否符合回答的条件,但我发现评论有点冗长。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。