Amazon dynamodb 创建没有散列的dynamodb表

Amazon dynamodb 创建没有散列的dynamodb表,amazon-dynamodb,Amazon Dynamodb,我正在尝试创建一个没有哈希键的表。但我犯了一个错误 您必须指定KeySchema列表。如何创建没有任何键的表 userAccount: Type: AWS::DynamoDB::Table DeletionPolicy : Retain Properties: TableName: userAccount AttributeDefinitions: - AttributeName: userId AttributeType: S K

我正在尝试创建一个没有哈希键的表。但我犯了一个错误 您必须指定KeySchema列表。如何创建没有任何键的表

userAccount:
  Type: AWS::DynamoDB::Table
  DeletionPolicy : Retain
  Properties:
    TableName: userAccount
    AttributeDefinitions:
      - AttributeName: userId
        AttributeType: S
    KeySchema:
      - AttributeName: userId
        KeyType: S
    ProvisionedThroughput:
      ReadCapacityUnits: 1
      WriteCapacityUnits: 1
DynamoDB表必须使用hashkey。没有哈希键,无法创建表

哈希键:-

哈希键是必需的

项的分区键也称为其哈希属性。这个 术语散列属性派生自内部函数的DynamoDB用法 散列函数,用于根据需要在分区之间均匀分布数据项 在它们的分区键值上

排序键:-

排序键是可选的

项目的排序键也称为其范围属性。术语 范围属性源自DynamoDB使用 相同的分区键物理上靠得很近,按 排序键值

根据,创建表时,必须指定主键,因为它允许标识表中的每个项。DynamoDb支持两种类型的主键:

一,。分区键哈希键:

DynamoDB使用分区键的值作为内部哈希函数的输入。哈希函数的输出确定DynamoDB内部的分区物理存储

二,。分区键和排序键:

这种类型的键称为复合主键,由两个属性组成。第一个属性是分区键,第二个属性是排序键

DynamoDB使用分区键值作为内部散列的输入 作用哈希函数的输出决定分区 DynamoDB内部的物理存储,项目将在其中存储 存储。存储具有相同分区键值的所有项 一起,按排序键值排序


这个问题中的其他答案是正确的,没有散列键就无法定义DynamoDB表。然而,您的问题意味着您不完全了解DynamoDB是如何工作的

把DynamoDB想象成一个无限大的文件柜。在这个文件柜里,你有无限多的文件夹。每个文件夹可能包含许多文件

由于DynamoDB希望在文件柜中查找任何内容都非常容易,因此每个文件夹都有一个唯一标识文件夹的标签,例如Folder1、Folder2、…、FolderN。每个文件夹中的文件也可以进行排序,以便您确切知道如何在每个文件夹中查找特定文件

DynamoDB中的散列键(也称为分区键)类似于文件夹上的标签。没有它,DynamoDB就不知道如何安排或检索文件柜中的文件夹

您始终需要定义分区键,以便DynamoDB知道如何快速存储和获取数据。毕竟,这就是为什么我们使用DynamoDB