Наше требование очень простое, мы хотим сохранить местоположение GPS для датчиков, которые не должны быть старше пары дней. Общая гранулярность данных будет максимальной около минуты или около того.Время жить для SimpleDB или DynamoDB
Поскольку общее число датчиков может превышать миллиард, SimpleDB не является вариантом, если я сам не пишу логику секционирования. SimpleDB, хотя и индексирует каждый атрибут, что позволяет запускать один раз в секунду периодические скрипты очистки, которые удаляют записи старше 2 дней.
DynamoDB выглядит намного лучше, так как он не имеет ограничений на количество данных, я могу использовать первичный ключ разделенного + диапазона на методе sensorID + timestamp. Однако для удаления старых данных потребуется запрос сканирования, если у меня также нет глобального вторичного индекса в поле timestamp. Примените этот вторичный глобальный индекс, запрос потенциально может быть быстрее.
Является ли это только тем, кто считает, что там может быть лучший выход? Использование DynamoDB/SimpleDB лучше, так как все развертывание находится в среде AWS, и мы не хотим вкладывать средства в ops. Я знаю, что другие NOSQL DB, такие как Mongo DB, поддерживают их.
Я действительно не вижу, как местоположения GPS, которые ** все имеют одинаковый формат **, будут лучше сохранены в базе данных NOSQL. Это действительно само определение данных, которое лучше всего хранить, индексировать, извлекать и анализировать в таблицах. –
Потому что у меня будет миллиарды записей. Я хотел бы, чтобы система автоматически делилась/разбивалась на разделы и не беспокоилась об этом. Это почти похоже на то, что любой, кто использует NOSQL без гибкой схемы, делает ошибку, это не так. – Ouroboros
«Миллиарды идентично сформированных записей» ** - это именно то, почему вы должны использовать реляционные базы данных, а не схемы NOSQL. Когда у вас есть миллиарды идентичных точек данных, но вы храните их в виде пар ключ-значение, да, вы ошибаетесь, не понимая, что делает база данных, и почему разделение хранилищ ключевых значений намного сложнее, чем разделение сортируемых/индексируемых таблиц. –