具有数亿行的表上的最佳DynamoDB分区键和排序键

假设我有一个名为“ CustomerRequest”的表,它包含以下属性:

  
      
  • “ CustomerId”:客户的唯一标识,可以包含数亿个值,是由旧的生成的序列   系统,无法更改。
  •   
  • “国家/地区代码”:客户的国家/地区代码。
  •   
  • “ RequestType”:请求的类型,值来自定义的列表,且少于100个值。
  •   
  • “ RequestDate”:请求的日期。
  •   

以下是限制条件:

  
      
  • 用户可以向现有客户订购请求。
  •   
  • 订购请求时,将向用户提供一个请求ID,以便以后可以检索该请求。格式是定义但它   不能是UUID。
  •   
  • 用户还可以检索所有有关客户ID的请求。
  •   
  • 用户还可以检索所有国家/地区代码请求。
  •   

我希望快速处理亿万个请求,主要目标是尽可能平均地分配工作量。

分区和排序键的最佳选择是什么?

目前,我可以想到以下解决方案:

  
      
  • 使用CustomerId作为分区键,并使用RequestDate作为排序键。提供给用户的请求ID类似于   日期为时间戳的“ CustomerId-RequestDate”,以毫秒为单位   (同一客户ID上的2个请求很少会被   同时触发)。我可以使用此索引来检索   通过其ID进行请求,并检索对客户ID的所有请求。
  •   
  • 添加一个GSI,其中CountryCode为分区键,而客户ID为排序键。我想我可以使用该索引来检索所有请求   输入国家代码。
  •   

有更好的解决方案吗?

谢谢您的帮助。

twinslovewei 回答:具有数亿行的表上的最佳DynamoDB分区键和排序键

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3164095.html

大家都在问