2013-04-09 18 views
8

什麼是最有效的方式來查詢我的dynamodb對象?如何在億萬物體上獲得有關dynamodb的分數?

如我的對象有十個屬性,我想獲得基於3個屬性的不同計數。

+0

這些屬性是否改變過?你需要多頻繁和快速地點數? – 2013-04-13 05:12:38

+0

他們確實改變了......他們不是靜態的日誌數據 – 2013-04-26 07:52:25

+0

請問計數的頻率和延遲如何?這種類型的聚合是一種常見的需要快速操作嗎?您是否需要實時數據,或者您是否可以對數據進行存檔/複製? – 2013-04-26 14:45:23

回答

4

如果您需要計數器,最好使用AtomicCounters(http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithDDItems.html)。對於您的情況,DynamoDB不支持由3個屬性組成的開箱即用按鍵,除非您將它們連接在一起,所以該選項將創建一個冗餘表,其中的關鍵是這3個屬性的連接,並且每個屬性都由您來管理對象,也更新AtomicCounter(添加,刪除,更新 - 實際上不需要)。

然後你只是查詢計數器,避免掃描。因此,獲取檢索數據的速度非常複雜。

+0

謝謝隊友。曾經想過在英國工作。請平攤linkedin.com/in/rifaterdemsahin/ – 2017-09-27 10:17:10

1

使用適當的ScanFilter(在這種情況下,三個屬性爲not_null)執行掃描,並使用withCount(true)僅返回匹配記錄的數量而不是記錄本身。

See the documentation對於某些示例代碼。

+0

請注意,Scan可能是處理此問題的一種低效方式,因爲相對於其他DynamoDB操作而言,這是相當慢的操作。但是,鑑於你所描述的,我沒有更好的答案。 – 2013-04-13 05:11:40

+3

我想這十億搜索操作是一個SQL的工作,而不是nosql系統。 – 2013-04-26 07:51:52

相關問題