Как мы можем указать / настроить меры в действии правила AWS IoT Core или в таблице базы данных AWS Timestream?

Ниже приведены данные в моем сообщении.

       {
  "time_epoch": 1604489437,
  "temperature": 100,
  "device_id": "TempSensor1"
}

У меня есть основное правило IoT, которое принимает это сообщение и имеет действие, чтобы отправить его в таблицу базы данных Timestream.

В основном правиле IoT - я настроил device_id как измерение, а time_epoch как отметку времени. Снимок экрана ниже:

Проблема: когда сообщение достигает таблицы БД Timestream, device_id правильно отображается как измерение. Time_epoch правильно отображается под столбцом времени. Однако все 3 - device_id, температура и time_epoch отображаются как меры. Снимок экрана ниже:

Я вообразил это - поскольку я указал в действии основного правила IoT, что device_id - это измерение, а time_epoch - это временная метка, тогда AWS Timestream должен был быть достаточно умным, чтобы не включать оба из них в качестве меры.

Как я могу проинструктировать базу данных timestream не рассматривать device_id и time_epoch как меры; и считаешь только температуру мерой? Я попытался отредактировать настройки таблицы, но не смог найти никакой возможности указать / настроить меры.

1 ответ

Я предполагаю, что вы делаете что-то вроде:

      SELECT * FROM /your/topic

Что вы хотите сделать, это:

      SELECT temperature FROM /your/topic

Вам придется отредактировать свои измерения, чтобы теперь использовать встроенные функции вместо результатов SQL-запроса. По существу, используйте ${clientId()}за device_idа также ${timestamp()}за time. См. документацию для получения списка доступных .

Затем вы должны увидеть таблицу, которую вы ожидаете увидеть.

Причина, по которой вы видите ложные измерения в настоящее время, заключается в том, что, как шаблонов заменыуказано в документах , Timestream преобразует каждый ключ JSON в свою собственную запись измерения.

Другие вопросы по тегам