在DynamoDB中选择分区键

时间:2018-05-01 08:07:44

标签: nosql amazon-dynamodb data-partitioning

我正在编写一项服务,查询停车场远程站点的一些占用数据并将其存储在DynamoDB中。这是一个示例数据集:

<PublicCarparksStallCount>
  <AsOf>2018-05-01T10:57:15</AsOf>
  <Carparks>
    <Carpark>
      <CarparkId>1</CarparkId>
      <CarparkName>Azrieli Sarona</CarparkName>
      <CarparkSummary>
        <Usable>1242</Usable>
        <Vacant>478</Vacant>
        <Occupied>712</Occupied>
        <Reserved>0</Reserved>
        <MedicalVacant>1</MedicalVacant>
        <MedicalOccupied>3</MedicalOccupied>
      </CarparkSummary>
      <Levels>
        <Level>
          <LevelId>1</LevelId>
          <LevelName>מפלס -2</LevelName>
          <LastValidCountTime>2018-05-01T10:57:16</LastValidCountTime>
          <LevelCount>
            <Usable>171</Usable>
            <Vacant>11</Vacant>
            <Occupied>159</Occupied>
            <Reserved>0</Reserved>
            <MedicalVacant>0</MedicalVacant>
            <MedicalOccupied>1</MedicalOccupied>
          </LevelCount>
        </Level>
      </Levels>
    </Carpark>
  </Carparks>
</PublicCarparksStallCount>

为此类数据定义分区键的最佳方法是什么?该服务每分钟运行一次,并存储此数据供以后使用或实时可视化。

1 个答案:

答案 0 :(得分:0)

它真的不可能回答这个问题。您的表架构取决于您将如何使用您的数据,例如您要执行的查询类型。

作为一个例子,我可以说为分区键创建PublicCarparksStallCount UUID属性并将整个文档存储在名为document的属性中,但这可能是一个糟糕的解决方案,具体取决于您在应用程序中要执行的操作。

我建议您仔细阅读this answer并完善您的问题。