簡體   English   中英

將 SQS 隊列中的數據按順序插入 DynamoDB

[英]Insert data inside SQS queue in order into DynamoDB

我們可以在一個 sqs 消息中有多行並將它們插入到 dynamodb 中嗎? 例如,如果我有多個按部門划分的 sqs 隊列,並且在隊列內部,我有員工列表,其中包含員工 ID、部門 ID、名字、姓氏等屬性,我應該按員工 ID 的升序迭代隊列的內容並插入員工id、部門 id、名字、姓氏到 dynamodb 表中。

根據我的閱讀,您似乎希望員工數據在 Dynamodb 中按 id 排序。

首先,SQS 不會根據您的需求/定制進行排序。 它確實提供了基於您插入消息的順序的 FIFO(先進先出)隊列。

即使 SQS 確實具有您想要的功能,並且您可以按您喜歡的順序將消息/數據插入到 dynamodb,它也不能保證您在 dynamodb 中對數據進行排序並在查詢結果中進行排序。

為了在 DynamoDB 表中對數據進行排序並反映在查詢結果中,您需要使用排序鍵(范圍屬性)。

以下是您可以在 DynamoDB 表設計中嘗試的幾個選項。

  1. 部門 ID 作為分區鍵 + 員工 ID 作為排序鍵

使用此設置,您可以在查詢時在一個部門內對員工數據進行排序。

  1. 創建一個名為“everyone”的屬性/列,插入記錄時將值設置為1。 然后,您可以創建 GSI(全局二級索引),其中所有人作為分區鍵,employeeId 作為排序鍵。

使用此設置,您的所有員工數據都按員工 ID 排序,而與部門 ID 無關。 如果您的 GSI 大小低於幾 GB,它應該可以正常工作。

此外,您可以將選項 1 和選項 2 組合在一起,以在公司級別和部門級別歸檔排序員工。

暫無
暫無

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

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