问题标签 [amazon-dynamodb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3782 浏览

javascript - 使用 JavaScript 使用 Amazon dynamoDB

我一直在尝试使用 jQuery 和 Ajax 调用通过 JavaScript 与 Amazon DynamoDB 进行交互,但没有成功。经过两天的研究,我开始认为这可能是不可能的。我看到他们有适用于 Java、PHP 和 .Net 的 SDK,但还没有适用于 JavaScript 的 SDK。

亚马逊在此链接中解释了如何向发电机发送命令:

http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/UsingJSON.html#JSONMajorExample

我已经能够使用 PHP sdk 和 node.js (https://github.com/xiepeng/dynamoDB) 做到这一点,但是使用常规的 javascript ajax 调用或 xmlHttpRequest 调用没有运气。

我已经能够获得有效的 aws 签名、秘密 ID 和会话令牌,因此我已将它们硬编码到标头中。

这是我的代码:

当我运行它时,我得到一个 404 Not found 错误,方法显示为“OPTIONS”(而不是 POST 或 GET)

0 投票
1 回答
3663 浏览

java - java中的batchGetItem API错误

我正在查询的实体有一个HashKey& 一个RangeKey(数字)。当我使用batchGetItem它时,我收到以下错误:

AWS 错误代码:ValidationException,AWS 错误消息:一个或多个参数值无效:位置和架构之间的属性类型不匹配

架构:

表:每日

哈希键:CustId(字符串)

范围键:日期(数字)

数据:

CustId : VisioNerdy

日期:1329071400000

代码:

有什么线索吗?

0 投票
1 回答
2118 浏览

mongodb - NoSQL (MongoDB/DynamoDB) 架构

我正在从网站上抓取一系列产品并将它们存储在数据库中。目前,我正在使用 MySQL,有两个表:

这个模式意味着我可以得到过去任何时候列出的产品的快照。

我正在考虑迁移到 NoSQL,因为 (i) 我经常从不同的站点获取不同的字段,并且 (ii) 数据量将是每年大约 5-1000 万个产品。我可以看到两种构建模式的方法

选项 1:“嵌入式列表”

选项 2:“二级索引”

我认为选项 1 可以在允许二级索引的 MongoDB 中工作,而选项 2 可以在 MongoDB 或 DynamoDB 中工作。(我正在考虑这两个,因为我想要在云中托管的东西对我来说维护开销为零)。

我在这些方法的正确轨道上吗?哪个效果最好?我对 nosql 完全不熟悉,所以任何建议都将不胜感激。

0 投票
7 回答
134312 浏览

amazon-dynamodb - 是否可以在 DynamoDB 中通过查询或扫描来订购结果?

是否可以使用 DynamoDB 中的查询或扫描 API 对结果进行排序?

我需要知道 DynamoDB 是否有类似ORDER BY 'field'SQL 查询的东西?

谢谢。

0 投票
1 回答
695 浏览

nosql - 构造一个 dynamoDB 表以对表中的 * 项启用 ASC 或 DESC 有序分页

我想按时间/日期排序,并对表中的所有项目进行分页。Scan似乎旨在对所有内容进行分页,但似乎没有“ASC/DESC”等效项。查询具有ScanIndexForward但需要特定的主键。(没有办法选择 * ?)

根据这个问题的第一条评论,我认为实现这一目标的唯一方法是使用公共主键(!?),然后基于此进行查询,重点关注 Range 键。这真的是它应该如何工作的吗?如果我想根据唯一的主键查询单个项目,我必须使用镜像属性制作一个完整的单独表。

请原谅我的 NoSQL 菜鸟。我是一个只涉足 MySQL 和 SimpleDB 的前端开发人员。

0 投票
1 回答
5654 浏览

nosql - 如何构建 DynamoDB 数据库以允许查询热门帖子?

我计划使用以下公式来计算“趋势”帖子:

p = 来自用户的投票(点数)。t = 自提交以来的时间,以小时为单位。

我正在寻找有关如何构建我的数据库表的建议,以便我可以使用 DynamoDB(来自 Amazon 的一种 nosql 数据库服务)查询趋势帖子。

DynamoDB 要求表中的每个项目都有一个主键。主键可以由两部分组成:哈希属性(字符串或数字)和范围属性(字符串或数字)。每个项目的哈希属性必须是唯一的并且是必需的。Range Attribute 是可选的,但如果使用 DynamoDB 将在 Range Attribute 上构建一个排序的范围索引。

我想到的结构如下:

表名:用户

表名:帖子

表名:类别

表名:计数器

因此,这是我将使用下表设置发出的请求类型的示例(例如:user_id=100):

用户操作 1:

用户创建一个新帖子并将帖子标记为 2 个类别(棒球、足球)

查询(1):

检查 counter_name='post_id' 和 increment+1 的当前值并使用新的 post_id

查询 (2):将以下内容插入 Posts 表:

查询(3):

将以下内容插入到类别表中:

查询(4):

将以下内容插入到类别表中:



最终目标是能够进行以下类型的查询:

1. 查询热门帖子

2. 查询某个类别

的帖子 3. 查询最高分值的帖子

有谁知道我可以如何构建我的表格,以便我可以查询热门帖子?还是我放弃了通过切换到 DynamoDB 来做的事情?

0 投票
4 回答
6274 浏览

python - 如何使用 Boto 使 dynamoDB 中的密钥过期?

我正在尝试从 redis 迁移到 dynamoDB,到目前为止一切都很好!我唯一还没有弄清楚的是密钥过期。目前,我的数据设置只有一个主键,没有范围键,如下所示:

我当时的想法是扫描数据库以查找时间戳小于特定值的位置,然后显式删除它们。然而,这似乎效率极低,并且会无缘无故地使用大量的读/写单元!最重要的是,到期只会在我运行扫描时发生,因此可以想象它们会累积。

那么,有没有人找到解决这个问题的好方法?

0 投票
2 回答
20528 浏览

java - 说明 amazon dynamo db 用法的 java 代码示例

您是否知道说明 Amazon Dynamo DB 用法的 Java 代码示例?如果有任何推荐的最佳实践,那对我也很有帮助。

0 投票
4 回答
4744 浏览

perl - 在 EC2 上扩展 MongoDB 还是应该切换到 DynamoDB?

我目前在使用 MongoDB 的单个服务器上运行我的网站。在我的服务器上,我有两个组件 (1) 一个每小时运行的爬虫并将数据附加到我的 MongoDB 实例 (2) 一个从爬虫索引读取并写入用户个性化数据库的网站。我正在迁移到 Amazon EC2 进行自动扩展,以便网络服务器可以自动扩展,因此我可以随着网络流量的增加而增加服务器的数量。我的爬虫不需要自动缩放。这对我如何使用 MongoDB 提出了挑战。我想知道我最好的选择是优化

  • 对我的代码的最小更改(代码在 perl 中)
  • 能够无缝添加/删除 Web 服务器,而不必担心数据库中的数据丢失
  • 低成本

在短期内,数据库肯定能够适应所有机器的内存,因为它将低于 2 GB。用户个性化数据库无法重建,因此拥有它更重要,而索引可以轻松重建。当前的 MongoDB 爬网索引有大约 100k 个条目,这些条目以大约 15 个不同的列为键。这是为速度而设计的,因为我正在开发一个在线约会网站(可以通过多种方式进行搜索)。

我能想到几个选项

  1. 使用 SimpleDB 作为用户个性化存储,使用 MongoDB 作为索引。让索引在所有机器上复制,但是,我对 MongoDB 复制不太了解。
  2. 将所有内容移至 SimpleDB
  3. 将所有内容移至 DynamoDB

我不太了解 SimpleDB 和/或 DynamoDB。根据文章,DynamoDB 似乎是一个自然的选择,但我不确定是否有良好的 perl 支持,我是否可以拥有所有列、索引等。有人​​有经验或有什么建议吗?

0 投票
2 回答
5315 浏览

mongodb - DynamoDB 或 SimpleDB 可以替代我的 MongoDB 用例吗?

我想知道 DynamoDB 或 SimpleDB 是否可以取代我的 MongoDB 用例?这是我使用 MongoDB 的方法

  • 15k 个条目,我每小时添加 200 个条目
  • 15 列,每列都使用 (ensureIndex) 进行索引
  • 一半的列是整数,其他是文本字段(基本上不超过 10 个唯一值)
  • 我每小时运行大约 10k 次数据库读取,现在使用 MongoDB 读取速度非常快。这是一个在线约会网站。因此,平均 Mongo 查询是在 2 列(例如年龄和身高)上进行范围搜索,“IN”搜索大约 4 列(例如种族是 A、B 或 C……宗教是 A、B、 ro C)。
  • 我非常频繁地使用限制和跳过(例如,让我获得前 40 个条目,接下来的 40 个条目等)
  • 我使用 perl 来读/写