Запрос InfluxDB возвращает «Устройства не найдены», несмотря на правильную настройку сегмента, измерения и поля.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Запрос InfluxDB возвращает «Устройства не найдены», несмотря на правильную настройку сегмента, измерения и поля.

Сообщение Anonymous »

Я работаю с InfluxDB для запроса данных из сегмента под названием «Эргометр». Я хочу получить список уникальных идентификаторов устройств (велосипед L, велосипед M, велосипед R), хранящихся в виде тега устройства. Однако мой запрос всегда возвращает «Устройства не найдены в результате запроса», даже если данные настроены правильно.
Вот настройка:
Ведро: Эргометр
Измерение: данные велосипеда
Поле: импульсы
Тег: устройство (значения: Bike L, Bike M, Bike R)
Я проверил структуру данных в InfluxDB UI и показывает ожидаемые значения устройства. Однако мой запрос на Java всегда не возвращает результатов.
Мой код:

Код: Выделить всё

@Component
public class BikeDataQuery {

private static final Logger logger = LoggerFactory.getLogger(BikeDataQuery.class);
private static final String BUCKET_NAME = "Ergometer";
private static final String MEASUREMENT_NAME = "bike_data";

private final InfluxDBClient influxDBClient;

@Autowired
public BikeDataQuery(InfluxDBConnector influxDBConnector) {
this.influxDBClient = influxDBConnector.buildConnection(
"url placeholder",
"placeholder for token",
BUCKET_NAME,
"Software Engineering"
);
}

public List getAvailableDevices() {
QueryApi queryApi = influxDBClient.getQueryApi();

// Query to fetch distinct devices
String query = String.format(
"from(bucket: \"%s\") " +
"|> range(start: -30d) " + // Querying the last 30 days
"|> filter(fn: (r) => r[\"_measurement\"] == \"%s\") " +
"|> distinct(column: \"device\")",
BUCKET_NAME, MEASUREMENT_NAME
);

logger.info("Executing device query: {}", query);

List devices = new ArrayList();
try {
queryApi.query(query, (cancellable, fluxRecord) -> {
if (fluxRecord != null) {
logger.debug("FluxRecord: {}", fluxRecord);
String device = (String) fluxRecord.getValueByKey("_value");
if (device != null && !devices.contains(device)) {
devices.add(device);
}
}
});
} catch (Exception e) {
logger.error("Error executing device query: {}", query, e);
}

if (devices.isEmpty()) {
logger.warn("No devices found in the query result.");
} else {
logger.info("Found {} devices: {}", devices.size(), devices);
}

return devices;
}
}

Вот изображение того, как это выглядит в InfluxUi (это не мое изображение, я не администратор)
Изображение


Подробнее здесь: https://stackoverflow.com/questions/792 ... surement-a
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»