问题标签 [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 投票
1 回答
955 浏览

java - 查找 AttributeValue 的数据类型

在中间层进行一些处理后,我试图将 dynamodb 数据结构序列化为 JSON 和 CSV。我想创建一个可以将 Map(String, AttributeValue) 作为参数并将其转换为 JSON 的通用方法。

所以,我想了解 AttributeValue 的数据类型 - 字符串、数字、字符串 [] 和数字 [] 来做到这一点。有没有API可以找出来?

0 投票
1 回答
1737 浏览

amazon-web-services - Amazon SimpleDB 是否比 DynamoDB 更可靠/更可用?

这个问题不是关于两者之间的一般比较,而是更具体地关注高可用性和可靠性。来自亚马逊关于此的文档:

简单数据库

Amazon SimpleDB 会自动为您存储的每个数据项创建多个地理分布的副本。这提供了高可用性和持久性——万一一个副本发生故障,Amazon SimpleDB 可以故障转移到系统中的另一个副本。

动态数据库

Amazon DynamoDB 是一种完全托管的 NoSQL 数据库服务,可提供快速且可预测的性能以及无缝的可扩展性。该服务在亚马逊久经考验的高可用性数据中心运行。该服务跨 AWS 区域中的多个设施复制数据,以在服务器故障或可用区中断的情况下提供容错。

那么,相对而言,一个比另一个更可靠吗?

0 投票
1 回答
1141 浏览

ruby-on-rails-3.1 - Amazon SimpleDB 或 DynamoDB

我们正在构建一个带有 Rails CMS 的移动应用程序来管理它。

我们的应用是什么样的?

该应用程序的每个管理员用户都可以设置一个具有非常少量数据的私人频道 - 大约 50 个短字符串。

然后,用户可以下载应用程序并注册几个不同的频道,并将数据从服务器获取到他们的设备。数据将存储在本地,除非管理员用户更新数据,否则不会再次获取数据(但我们假设它不会经常发生)。每个频道将可供不超过 500 台设备使用。

用户可以为频道做出贡献,但这些数据将存储在 S3 而不是数据库中。

2个要点:

  1. 大多数频道将活动 5 个月,而不是 500 个用户 +-。但大部分活动将在同一两天发生。
  2. 每个频道都适用于少量用户 (500) 但我们希望 :) 能够接触到数百名管理员用户。

使用 Rails 构建 CMS 我们看到使用 SimpleDB 比使用 DynamoDB 更加严格。但是,由于我们不是服务器专家,我们看到了 SimpleDB 的局限性,我们不知道 SimpleDB 是否可以处理我们将拥有的数据传输量(如果我们的应用程序成功的话)。另一个重要的一点是 DynamoDb 的成本要高得多,并且不取决于使用情况,而 SimpleDb 开始时会便宜得多。

问题是:

  1. simpleDB 能满足我们的需求吗?
  2. 如果我们的服务将来会增长,我们可以稍后迁移到 dynamoDB 吗?
0 投票
3 回答
5700 浏览

database-design - DynamoDB 数据库设计(键值存储,noSQL)

我已经习惯了 MySQL,现在正试图理解如何使用键值存储。我还没有看到像数据库设计示例以及如何插入和获取信息这样的优秀菜鸟。

这是您如何将 MySQL 中的数据存储在键值存储中的正确表示吗?

所以,如果我在上面是正确的。提取一般用户信息很容易理解。但是我将如何在键值存储中执行以下查询?

我认为您可以轻松做到这一点的方法是创建另一个表。(假设有超过 5,000 个用户,如果你只有几百个,我相信还有其他方法可以做到这一点)

然而,现在我们需要在有人新加入、更新他们的位置等时调整两个表。我想这不是什么大不了的事,你只需要对你的应用程序代码非常准确。

这是解决这些问题的最好方法吗?还是我错过了什么?

0 投票
1 回答
1016 浏览

workflow - EMR + DynamoDB 工作流设置抛出 Hive.createTable NoSuchMethodError JsonErrorResponseHandler

我正在尝试使用 boto Python API 设置 EMR 工作流程(使用 DynamoDB 和 Hive)。我可以使用 Amazon EMR 控制台手动运行脚本。但是,使用 boto 时,它无法创建表。

这是设置 EMR 工作流程的 boto 脚本:

但是,脚本失败并出现以下异常。

0 投票
1 回答
1355 浏览

ruby - 使用 ItemsCollection#query 进行分页?

目前,Ruby AWS 开发工具包中的 ItemCollection#query 方法返回整个数据集。我查看了 Ruby AWS 开发工具包源代码中是否存在分页的可能性,但最接近分页的选项是:limit, no pagination。根据 Amazon 的 DynamoDB API(HTTP,不是 Ruby)文档,查询操作建议可以使用响应键进行分页LastEvaluatedKey

查询操作停止的项目的主键,包括上一个结果集。使用此值启动新操作,在新请求中排除此值。当整个查询结果集完成时(即操作处理“最后一页”),LastEvaluatedKey 为空。

所以我可以通过添加:limit选项来进行分页,然后在我的 last 之后对范围值进行下一个查询Item,但是除非我进行完整查询,否则我不知道总计数是多少。

有没有更好/更简单的方法来实现分页?

0 投票
2 回答
25928 浏览

java - 快速查询包含键的表(DynamoDB 和 Java)

我有一个带有哈希和范围复杂键的表。
我可以使用GetItemAWS SDK for Java 查询项目。如果GetItem没有找到对象,则返回 null,或者将项目作为Map<String, AttributeValue>.
我正在寻找最快的方法来检查对象是否确实存在
我在想可能提供.withAttributesToGet诸如:

另一个优化是不使用 SDK JSON 解析器,自己解析响应来快速检查项目是否返回。

谢谢

0 投票
1 回答
4924 浏览

django - AWS 上 Django 的最佳数据库解决方案

早上好,

我目前正在考虑在 EC2 实例上部署 Django 应用程序,但一切都让我感到困惑!我知道 Django 内置了 MySQL、PSQL 和 SQLite 的实现。现在,亚马逊拥有 RDS (MySQL)、SimpleDB 和 DynamoDB。各位大神有什么建议可以用吗?我想要一些可以为未来扩展并且防弹的东西。AWS 为其 SimpleDB 和 DynamoDB 提供了一个 python API。这对 Django 是否有效?

非常感谢!

编辑:我宁愿专注于一个整体的解决方案,它将是防弹的、高效的和快速的,而且不会太复杂。当我计划让更多人使用该系统时,我真的不想要复杂且难以维护的东西。我宁愿花更多的时间来实现和安装东西,但最终,解决方案将更快、更容易理解和使用。(即:查询数据库将是直截了当的,没有黑客攻击)。

0 投票
1 回答
872 浏览

ruby - Eventmachine gem -> spawn_threadpool 中的块

按照本教程 (http://arfon.org/twitter-streaming-with-eventmachine-and-dynamodb) 尝试启动 Amazon 监听环境。接收特定的推文并将它们添加到发电机数据库(通过新线程)。一切正常,但是当使用 eventmachine 生成线程时,我得到以下信息:

main:Object 的未定义局部变量或方法“表”

call'", "/.rvm/gems/ruby-1.9.3-p125/gems/eventmachine-0.12.10/lib/eventmachine.rb:1060:in 块在 spawn_threadpool'"]

0 投票
2 回答
918 浏览

database-design - 亚马逊发电机 db 模型

计划切换到 amazon dynamo db - http://aws.amazon.com/dynamodb/ - 但建模软件有问题。什么(如果有的话)可用于对所有“表格”等进行视觉表示...

或者至少你在用什么?

我在这一点上的猜测是 microsoft excel 最接近这个想法,但这还不够直观。

任何想法都将不胜感激。

不确定问题是否属于此处,因为它与编码没有直接关系,但是使用数据集的可视化表示进行编码要容易得多。如果在这里问这个问题是错误的,请原谅我。

而且,不,这不是一个微不足道的项目,所以不仅仅是几个不同的集合。

非常感谢

编辑**应该提到,如果它可以与Visual Studio一起工作,那就更好了。