小编Ale*_*kis的帖子

DynamoDB 中使用参数的“排序依据”

通过阅读 Amazon DynamoDB 指南,我不明白是否有办法在查询/扫描后订购项目。

例如:

--我的数据库表--

        TableName:"Projects",
           Item:{
              "projectOwner": "User1",
              "projectName": "Project1",
              "creationDate": "Wed Nov 20 2016",
              "updateDate": "Wed Nov 29 2016",
         }Item:{
              "projectOwner": "User1",
              "projectName": "Project2",
              "creationDate": "Wed Nov 20 2016",
              "updateDate": "Wed Nov 28 2016",
         }Item:{
              "projectOwner": "User1",
              "projectName": "Project3",
              "creationDate": "Wed Nov 20 2016",
              "updateDate": "Wed Nov 30 2016",
         }
Run Code Online (Sandbox Code Playgroud)

所以我想扫描我的数据库并返回按“updateDate”排序的所有项目。有没有办法使用 dynamoDB 参数来实现这一点?

        params = {
             TableName: "Projects",
             ProjectionExpression: "projectName",
             KeyConditionExpression: "projectOwner = :userId",
             ExpressionAttributeValues: {
                 ":userId":userId
             }
        };
Run Code Online (Sandbox Code Playgroud)

node.js amazon-dynamodb

3
推荐指数
1
解决办法
5635
查看次数

AWS DynamoDB中的扫描与并行扫描?

在云存储系统中,AWS需求量很大.扫描过程需要更快.那么在哪种情况下扫描过程如何工作以及哪一个(扫描/并行扫描)更好?

  1. 如何在AWS DynamoDB中进行扫描?
  2. 并行扫描如何在AWS DynamoDB中运行?
  3. AWS DyanmoDB中的扫描与并行扫描?
  4. 什么时候首选Parallel Scan?
  5. 是否在扫描前应用了滤镜表达式?

amazon-web-services amazon-dynamodb

3
推荐指数
2
解决办法
3697
查看次数

AWS DynamoDB - 如果集合确实存在,如何向集合添加值,但如果集合不存在,则使用值创建集合?

我有一个用户表,有一个名为friends的属性,它将是所有用户朋友的id的集合.

最初我尝试在创建用户时将friends属性实例化为空集,但是我收到一个错误,即您不能拥有空属性.

因此,如果有人没有朋友,我能找到的唯一解决方案是读取用户的属性,如果不存在,则将属性设置为与他们正在添加的朋友的列表.如果确实存在,则只需使用ADD执行更新,这会将新朋友添加到集合中.

我不想为此调用两次AWS.

有没有办法创建集合,如果它不存在,如果它存在,添加到它?

amazon-web-services amazon-dynamodb

3
推荐指数
1
解决办法
4099
查看次数

在dynamodb中返回具有最大排序键的项目

我正在使用python脚本访问AWS中的dynamodb数据库。

我有一个带有哈希键和排序键的表。

对于给定的哈希键,我想找到最大排序键小于某个值的项目。我怎样才能做到这一点?

另外,有没有办法从给定的键中找到上一个项目?

不是要查找具有最大属性值的项目(在dynamodb中一项昂贵的任务),我想要最大的键值

python key amazon-dynamodb boto3

3
推荐指数
1
解决办法
2126
查看次数

使用适用于Titan的DynamoDB存储后端的DynamoDB定价

我想很好地了解使用DynamoDB Titan后端的价格(以$计).为此,我需要能够理解DynamoDB Titan后端何时进行读写操作.现在我很无能为力.

理想情况下,我想运行一个测试用例,它添加一些顶点,边,然后进行相当简单的遍历,然后查看完成了多少次读写操作.有关如何实现这一目标的任何想法?可能通过指标?

如果事实证明我无法自己提取这些信息,我将非常感谢有关DynamoDB Titan后端何时执行读写操作的第一个简要说明.

amazon-dynamodb titan

2
推荐指数
1
解决办法
496
查看次数

使用nodejs Dynamodb 创建表?

我想创建一个表并想使用 Dynamodb(NodeJs) 创建 6-7 个列/属性。我创建了一个表,但我不能添加 2 个以上的属性。我是这个平台的新手,谁能帮我在一个表中创建多个属性。

node.js amazon-dynamodb

2
推荐指数
1
解决办法
4648
查看次数

在 Java 中为 DynamoDB 定义表时如何声明排序键

我从 aws 控制台在 DynamoDB 中创建了一个表。在为其编写代码时,我找不到如何声明与分区键关联的排序键

    表:员工
    ----------------------------------------------
    部门编号 | 分区键
    员工身份 | deptId 的排序键
    创建日期时间 | 全局二级索引
    ----------------------------------------------

类定义:

    @DynamoDBTable(tableName = "员工")
    公共类员工{

      // 我已经创建了 deptId 作为分区键
      @DynamoDBHashKey(attributeName = "deptId")
      私人字符串部门;

      // 我已经创建了 empId 作为 deptId(分区键)的排序键
      私人字符串 empId;

      // 我也想在 empId 上运行搜索查询
      @DynamoDBIndexHashKey(attributeName = "empId", globalSecondaryIndexName = "empId-index")

      @DynamoDBIndexHashKey(attributeName = "creationDateTime", globalSecondaryIndexName = "creationDateTime-index")
      私人字符串创建日期时间;
    }

我的问题是我应该使用什么注释以及如何在声明 empId 之前声明 empId 是 deptId 的排序键(这是一个分区键)

我四处搜索,发现应该使用 @DynamoDBIndexRangeKey ,但该注释确实将排序键与分区键链接起来

请帮助我,提前致谢

amazon-dynamodb

2
推荐指数
1
解决办法
1616
查看次数

如何将DynamoDB属性设置为空列表?

我正在尝试使用适用于.NET的AWS开发工具包中的DynamoDBv2库,通过更新请求将DynamoDB文档中的属性设置为空列表。

我尝试了显而易见的更新表达式,但没有成功:

// Fails, expression attribute values cannot contain an empty list
...
ExpressionAttributeValues = new Dictionary<string, AttributeValue> {
    { ":empty", new AttributeValue { L = new List<AttributeValue> { } } },
},
UpdateExpression = "SET #P.MyList = :empty",
...
Run Code Online (Sandbox Code Playgroud)

我该如何实现?

c# amazon-dynamodb aws-sdk

1
推荐指数
1
解决办法
1822
查看次数

我需要使用云形成的 dynamodb 中的列表

我有一个用户表和一个请求表。一个用户的许多请求。我想在用户表中有一个请求列表。但我不确定如何编写云形成调用来构建它。目前我只有一组平面属性:

resources:  
  Resources:
    DynamoDbTable:
      Type: AWS::DynamoDB::Table
      Properties:
        TableName: Employee
        AttributeDefinitions:
          - AttributeName: employeeid
            AttributeType: S
          - AttributeName: name
            AttributeType: S
          - AttributeName: requests
            AttributeType: S
        KeySchema:
          - AttributeName: employeeid
            KeyType: HASH
Run Code Online (Sandbox Code Playgroud)

我希望请求是用户的请求 ID 列表,而不是字符串值,所以没有 S 类型,所以我可以循环浏览它们并调用我想要的。让我知道我的架构是否正常。提前致谢。

amazon-dynamodb serverless-framework

1
推荐指数
1
解决办法
1257
查看次数

DynamoDB-为什么不能在关键条件表达式中使用“ _”作为前缀?

我正在使用AWS DynamoDB DocumentClient查询我的DynamoDB表。在我的表中,我有一个名为“ _id”的属性,该属性为每个条目保留唯一的ID。当我尝试基于此ID查询记录时,最终收到一条错误消息:“无效的KeyConditionExpression:语法错误;令牌:\“ _ \”,附近:\“ _ id \”“。进行此查询的代码如下。

    function findById(id) {

     //Build query
    var params = {};
    params.TableName = "recordDev";
    params.IndexName = "_id";
    params.KeyConditionExpression = '_id = :id';
    params.ExpressionAttributeValues = {
      ':id': id
    };

    return DynamoDB
        .query(params).promise()
        .then(function(records) {
          return records.Items[0];
        })
        .catch(function(error) {
          return Promise.reject(error);
        });
   };
Run Code Online (Sandbox Code Playgroud)

在为DynamoDB构建查询参数时,是否缺少有关使用“ _”的内容?我曾尝试查找类似的错误,但是无法找到与我的情况类似的任何错误。

amazon-dynamodb aws-sdk

0
推荐指数
2
解决办法
3375
查看次数