2016-01-22 6 views
3

В DynamoDB у меня есть таблица, в которой каждая запись имеет два атрибута даты, create_date и last_modified_date. Эти даты приведены в формате ISO-8601, то есть 2016-01-22T16:19:52.464Z.DynamoDB запрос/сортировка на основе timestamp

мне нужно иметь способ запрашивая их на основе create_date и last_modified_date т.е.

  • получить все записи, где create_date > [some_date]
  • получить все записи, где last_modified_date < [some_date]
  • вообще получить все записи, где [date_attr] [comparison_op] [some_date] и т.д. ...

Один из способов сделать это - вставить фиктивный фиксированный атрибут wi й каждой записи и создать индекс с фиктивным атрибутом в качестве ключа раздела и create_date в качестве ключа сортировки (аналогично для last_modified_date.)

Тогда я буду иметь возможность запросить его как таковые, обеспечивая фиксированный фиктивный атрибут как ключ раздела, атрибуты даты в качестве ключа сортировки и использовать любые операторы сравнения <, >, <=, >=, и так далее.

Но это не кажется хорошим и выглядит как хак вместо правильного решения/дизайна. Есть ли лучшие решения?

+1

Это актуально: http://stackoverflow.com/a/38790120/491553 –

ответ

4

Есть некоторые вещи, которые NoSQL БД не хорошо об этом, но вы можете решить эту проблему следующих решений:

Решение 1) Переместить эту таблицу данные в базу данных SQL для поиска цели: Это может быть эффективным, потому что вы будет иметь возможность запросить согласно вашему требованию, это может быть утомительно иногда потому, что вам нужно синхронизировать данные между ними, чтобы

решения различных децибел 2) интеграция с Amazon CloudSearch: вы можете интегрировать эту таблицу с CloudSearch, а затем довольно затем запрашивая таблицу DynamoDB, вы можете Запрос CloudSearch

Раствор 3) Интеграция с Elasticsearch: ElasticSearch похож на облако, хотя каждый из них имеет некоторые достоинства и недостатки, конечный результат будет тот же, а не запрашивая DynamoDB запроса Elasticsearch

Раствор 4) Как вы упомянули в своем вопросе, добавьте индексы

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