使用InfluxDB Java client通过Java应用程序与我的InfluxDB实例进行通信。
我正在尝试完成似乎在项目内部任何地方都没有记载的事情。对于特定的测量,我需要列出其最新的(按时间戳记)字段密钥及其值,而无需知道它们的名称!
因此,假设我有一个名为FizzBuzz
的测量值:
> SHOW measurements
name: measurements
name
----
FizzBuzz
我相信ORDER BY ASC
是InfluxDb的默认值,这意味着默认情况下,最后/最新的测量数据始终是最后一次返回查询的数据。所以我认为我正在寻找从Java运行这样的东西:
SELECT * FROM FizzBuzz ORDER BY DESC LIMIT 1;
但是我的应用程序不知道该返回结果上的字段键是什么,因此我需要一种方法(通过API)检查返回并获得的记录任何字段键的名称(以便我可以将它们另存为字符串)并获取它们各自的值(可以放心地假定可以将其强制转换为BigDecimals
)。
到目前为止我最大的尝试:
Query query = new Query("SELECT * FROM FizzBuzz ORDER BY DESC LIMIT 1", "my-app-db");
QueryResult queryResult = connection.query(query);
for(Result result : queryResult.getResults()) {
for(Series series : result.getSeries()) {
List<String> cols = series.getColumns();
// But how to tell whats a field vs whats a tag?!
}
}
但是,这不能让我辨别字段是哪些列,而标签只是哪个...有什么主意?