2013-04-09 3 views
8

Каков наиболее эффективный способ запроса к моим объектам dynamodb?Как получить счетный счет на dynamodb на миллиард объектов?

Например, у моих объектов есть десять свойств, и я хочу получить отчетный счет на основе 3 свойств.

+0

Не изменяются ли эти свойства? Как часто и быстро вам нужно получить счет? –

+0

они меняются ... они не являются статическими данными журнала –

+0

Как насчет частоты и латентности запроса? Является ли этот тип агрегации общей, необходимой для быстрого функционирования? Вам это нужно в режиме реального времени или вы можете выполнить его в архиве/копии данных? –

ответ

4

Если вам нужны счетчики, лучше использовать AtomicCounters (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithDDItems.html). В вашем случае DynamoDB не поддерживает клавиши «из окна», состоящие из 3-х атрибутов, если вы их не объединяете, поэтому опция должна была бы создать избыточную таблицу, в которой ключ является конкатенацией этих 3 атрибутов, и каждый из них управляет этими объекты, также обновлять AtomicCounter (добавлять, удалять, обновлять - не нужно на самом деле).

Затем вы просто запрашиваете счетчик, избегая сканирования. Таким образом, это сложность пространства для получения скорости извлечения данных.

+0

спасибо помощнику. Когда-либо думали о работе в Великобритании. Пинг, пожалуйста, linkedin.com/in/rifaterdemsahin/ –

1

Выполните сканирование с помощью соответствующего ScanFilter (в этом случае три свойства not_null) и используйте withCount (true), чтобы возвращать только количество совпадающих записей вместо самих записей.

See the documentation для примера код.

+0

Обратите внимание, что сканирование, вероятно, является неэффективным способом справиться с этим, поскольку это довольно медленная операция относительно других операций DynamoDB. Однако, учитывая то, что вы описали, у меня нет лучшего ответа. –

+3

Я предполагаю, что эта операция поиска в миллиардах - это работа для sql, а не для nosql-систем. –

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