2016-02-11 4 views
1

Лучше всего хранить копию тени устройства в базе данных, например, DynamoDB?Лучше всего хранить копии состояния устройства в теневой теневой базе данных и базе данных, например, DynamoDB?

  • Это было бы полезно, когда мы должны были запросить данные агрегированного устройства . Напр. «Вытащи меня все устройства с состоянием =„ON“»
  • Проблема здесь будет синхронизировать копии данных в тени устройства и базы данных

Все предложения по этому поводу?

+0

Это действительно зависит от вашего использования. Если вы собираетесь поддерживать очень большую пользовательскую базу, и состояние устройств меняется очень быстро, для поддержки операции вам потребуется очень высокая пропускная способность ($$$). – Nick

+0

Просто следуйте стандартным рекомендациям для DynamoDB: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html – JaredHatfield

ответ

0

It зависит от ваших требований. Если вам нужно запросить данные теневой информации, вы, вероятно, должны использовать базу данных. Dynamodb может работать, опять же в зависимости от ваших требований. Конечно, вы должны создать необходимые индексы в dynamodb, поэтому вам не нужно выполнять сканирование таблицы.

В зависимости от количества устройств и частоты обновлений вы можете сохранить состояние в базе данных отношений в RDS. Обратите внимание, что эта опция менее масштабируема. Чтобы синхронизировать данные, у вас будет правило IOT для функции лямбда, которая выполняет обновление базы данных. С помощью dynamodb вы можете использовать правило прямо в dynamodb. Только синхронизация в одну сторону (то есть состояние Thing -> database), чтобы она была простой.

Ваши другие варианты получают каждую тень и фильтруют результаты самостоятельно.

Смежные вопросы