Как сопоставить данные IoT Stream с индексированным столбцом Dynamo DB - PullRequest
0 голосов
/ 13 декабря 2018

Я генерирую поток данных IoT и отправляю его в ядро ​​IoT AWS.У меня есть DynamoDB с 4 столбцами: id, timestamp, data1 и data2.data1 - это строка, data2 - это карта (данных).

Затем я создал действие.С помощью SQL я беру все поля в потоке IoT, но когда я выбираю «Вставить в БД», у меня есть только 2 поля и возможность записать ВСЕ данные в один столбец.

Screenshot

Можно ли записать одно из данных в «Prg» в собственное поле?Нужно ли создавать лямбда-функцию, извлекать данные из карты и записывать их обратно в DynamoDB?Надеюсь, что есть лучший способ:).

1 Ответ

0 голосов
/ 21 декабря 2018

Используйте действие DynamoDB v2.Результатом оператора SELECT является объект, который записывается в таблицу DynamoDB.Вы должны включить ключ разделения (и ключ сортировки, если это применимо) в объект.

Возможно, вам нужен оператор выбора, подобный следующему:

SELECT Device as id, timestamp() as timestamp, data1 as data1, Prg as data2 
FROM 'your/topic/here'

Кроме того, помните, что один из атрибутовиз полезной нагрузки должно иметь то же имя, что и первичный ключ раздела целевой таблицы.Из документов DynamoDB :

Полезная нагрузка сообщения MQTT должна содержать ключ корневого уровня, который соответствует ключу первичного раздела таблицы, и ключ корневого уровня, который соответствует первичной сортировке таблицы.ключ, если он определен.

...