簡體   English   中英

在DynamoDB中存儲推文

[英]Storing tweets in DynamoDB

DynamoDB文存儲在DynamoDB 我正在將tweet的id屬性用於哈希鍵,並將tweet的created_at屬性用於范圍。

我想查詢表中的所有推文,以查找特定日期之后的所有推文。 我收集到我需要為tweet的timestamp屬性創建一個GSI (全球二級索引),以便我可以查詢特定日期之后的所有tweet,而無需tweet的id屬性。 這是真的? 如果是這樣,我是否能正確地做到這一點:(我為為什么需要為GSI指定哈希鍵范圍鍵感到困惑?)

在此處輸入圖片說明

因此,基本上,您想在DynamoDB中的屬性上創建范圍索引。 運氣不好,因為這不是作者想到的。 我會解釋。

DynamoDB希望項目在哈希之間均勻分布,並具有均勻的負載。 您的twitter_id哈希鍵絕對有幫助,但是當您要詢問有關范圍鍵的問題時,您會感到失望。

您會看到,如果想要速度-您想查詢東西,例如Query = index和Scan = no index。 查詢需要使用哈希鍵進行查詢-您不能沒有查詢鍵。

您是正確的,因為您不能使用原始的主鍵,並且您對GSI思考是正確的-您可以通過創建包含恆定hash *和時間戳作為范圍的GSI 來傳遞哈希鍵。

如果這樣做,則由於索引沒有分布而破壞了DynamoDB的性能。 這可能會導致您在規模上頭疼,並產生不良的吞吐量(您付出的代價會超出消耗的代價)。

我在恆常哈希*上加了一個星號,因為您可以進行一些操作以創建多個哈希並將它們組合到應用程序級別。

總而言之,可以使用Dynamo來完成您想做的事情,但這並不是Dynamo的合適選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM