我有一个由城市和评论组成的表格结构。我需要得到所有有关城市的评论。我已将我的主键设置为城市名称。现在,当我查询我的表格时,我可以得到与城市相关的所有评论,但我需要它们,以便对该评论进行投票。选票价值不断变化。我曾考虑将ordered by添加到我的查询中,或将vote添加为一个范围键,并在每次投票更改时重新添加Recred。这些解决方案效率不高,我们想知道是否有更好的方法来实现这一点?一件简单的事情是使用a-这个DynamoDB功能可以创建第二个表,其哈希键与城市名称相同,但排序键是投票数-这仍
我在DynamoDB中找到了这个关于同步删除给定表的示例
在调用此方法之前,我们使用类DeleteTableRequest发送了删除表的请求
private static void waitForTableToBeDeleted(String tableName) {
System.out.println("Waiting for " + tableName + " while status DELETING...");
long startTime = Sys
我有下面的DynamoDB查询,它返回第一条带有hash apple和小于某个时间戳的时间戳的记录
Map-keyConditions=newHashMap();
放置(“哈希”,新条件()。
与比较器(EQ)相比。
WithAttributeValue列表(新的AttributeValue().With(“苹果”))
);
放置(“时间戳”,新条件()。
与比较器(LE)相比。
WithAttributeValue列表(新的AttributeValue().withN(某些时间戳)))
);
我想知道在DynamoDB上的SQL中是否存在类似于TOP的东西
我正在看文件
但我没有发现类似的东西。
有些人知道一种方法吗?两者都知道,并且有一个with limit函数,用于计算请求的最大项数
从文件中:
要评估的最大项目数(不一定是
匹配项)。如果DynamoDB处理的项目数达到
限制在处理结果时,它停止操作并返回
到该点的匹配值,以及LastEvaluatedKey中的一个键
在后续操作中应用,以便您可以在需要的地方选择
停止。此外,如果之前处理的数据集大小超过1 MB
DynamoD
我有一个用例,在这个用例中,一个人可以有多少辆手推车。这是可能的,因为1)用户可以使用购物车完成订单,购物车关闭后2)用户可以离开购物车2个月,购物车将被视为过期。如果用户在2个月前的购物车上添加新项目,则旧购物车将标记为过期,并生成新购物车
我试着设计下表:
Table Name: Cart
Primary Hash Key: cartId (String)
Primary Range Key: updated (String)
我使用updated作为一个范围列,这样当我查询它时,我可以在
如何使用以下模型对amazon dynamo db中的设备/用户进行建模
class device {
set <user> users;
}
class user {
string id;
string distance;
}
类设备{
设置用户;
}
类用户{
字符串id;
串距;
}
稍后,我想找出哪个是用户给定的设备邮政编码和半径。如果需要像这样的定制封送员,我们将不胜感激。如果是,自定义封送拆收器是否需要创建集合?数据模型不太重要。。请解释一下你想建立什么。什么
我在数据库中有一个元素列表,如下所示:
User
---inventory(Map)
------items(List)
---------item0(Map)
---------item1(Map)
---------item2(Map)
我想根据项目特征(例如item.id)删除其中一个项目
我如何使用条件表达式来实现这一点?据我所知,您只能使用列表索引删除列表元素:
REMOVE MyNumbers[1], MyNumbers[3]
如何使用UpdateExpression/Con
我熟悉MySQL,并开始将AmazonDynamodB用于一个新项目
假设我有一个MySQL表,如下所示:
CREATE TABLE foo (
id CHAR(64) NOT NULL,
scheduledDelivery DATETIME NOT NULL,
-- ...other columns...
PRIMARY KEY(id),
INDEX schedIndex (scheduledDelivery)
);
var now = Date.now();
//..
我有3条记录存储在dynamoDB表中。哈希键是业务id。表单对象是父对象和子对象(id、已删除、标题)。我不知道生意的价值。但我只有id值“f6yy”。我希望更新被删除为id的1(值为f6yy)。请建议整个查询。为了从DynamoDB表中删除该项,分区键和排序键都是必需的
对于主键,必须提供所有属性。对于
例如,对于一个简单的主键,您只需要提供一个值
对于分区键。对于复合主键,必须提供
分区键和排序键的值
没有这样的查询,因为从逻辑上讲,如果没有为表中的条目提供键(business_id),A
标签: Amazon Dynamodb
titantinkerpopwindows-subsystem-for-linuxgremlin-server
我已经尝试了几天在Windows子系统Linux上安装Aws DynamoDB Titan存储后端,但没有成功。我正在使用以下说明http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.TitanDB.DownloadingAndRunning.html
我目前停留在第5步,我应该使用以下命令安装gremlin服务器
src/test/resources/install-gremlin-server.sh
命令
我已经设置了一个索引,第二个排序键设置为我想要的(整数时间戳)。API一直抱怨我没有给它一个KeyConditionExpression。如果我给它一个,它说必须指定id。我试着强迫它使用id null给我所有的信息,但它仍然不能做到。这可能吗??如果迪纳摩不能完成这个简单的任务,也许是时候摆脱它了
看在上帝的份上,我所要做的就是查询整个表并让它使用我的排序键。几小时前,我就可以在SQL中使用它了。结果是,您还可以在扫描中添加索引名。这很有帮助。此外,如果使用排序键创建索引,则所有主索引必须完全
我正在尝试获取属于特定用户名的宠物列表。
表格设计(PetTable):
petId的值是通过连接字符串“petId:”和随机autoId值生成的。因此,如果autoId为3838380022,则petId排序键的值将为“petId:3838380022”
模式:
type Pet {
username: String!
petId: ID!
}
type PetsConnection {
pets: [Pet]
}
type Query {
getPets(
您好,我有一个总线要求,其中存储在dynamodb中的记录需要有不同的ttl。我不想在表级别设置它,但我想为表中的每个记录创建一个不同的ttl。有可能吗。
我们正在使用cloudformation进行部署。是的,这是可能的。生活在DynamoDB中的时间取决于个人记录
启用TTL时,指定TTL属性的名称—一个保存单个记录的TTL时间戳的属性
有关详细信息,请参阅。是的,这是可能的。生活在DynamoDB中的时间取决于个人记录
启用TTL时,指定TTL属性的名称—一个保存单个记录的TTL时间戳的属
我有3张dynamodb表格,如:
companies:
Type: AWS::DynamoDB::Table
Properties:
TableName: ${self:provider.region}.${opt:stage}.companies
AttributeDefinitions:
- AttributeName: id
AttributeType: S
KeySchema:
我正试图在“AmazonDynamodbEncryptionClient for Java”的帮助下将加密数据保存到DynamoDB。
我还使用无服务器框架来部署我的应用程序(一些使用DynamoDB的Lamdba函数)。AWS Lamdba函数是用Kotlin编写的
我在我的serverless.yml中的iarolestatements部分(在provider部分下)有这个:
-效果:“允许”
行动:
-“kms:GenerateDakey”
资源:“*”
我认为这应该足够了,但当我试图
我使用节点js来实现lambda函数。我需要检查emailID是否存在于dynamo数据库中…如果emailID存在,它应该提示用户emailID已经存在。如果不存在,它应该将值存储在dynamo数据库中
EmailID是排序键
Customername是主键
我该怎么做
下面是我的代码:
var doc = require('aws-sdk');
var dynamodb = new doc.DynamoDB()
var tableName = "Testing";
exports.han
我目前正在尝试使用AppSync和ApacheVelocity模板语言(VTL)创建一个动态查询
我想评估以“或”开头的系列
例如:
{
"operation": "Query",
"query": {
"expression": "pk = :pk and (begins_with(sk,:sk) or begins_with(sk, :sk1)",
"expressionValues": {
":pk": { "S": "tenan
我有一个DynamoDB表,其模式与下面类似。我想在jobs属性上运行一个“upsert”函数,该函数将添加jobs属性或附加到列表中
执行代码时,我收到一条错误消息:
调用UpdateItem操作时出错(ValidationException):UpdateExpression无效:运算符或函数的操作数类型不正确;运算符或函数:列表\追加,操作数类型:M
模式:
{
"jobs": [
{
"event_id": "event_id",
"job_map":
我能够从dynamo db获取记录并成功查看响应。我需要修改“项”“数组”中获取的“ACCOUNTNAME”属性,更新json,并在dynamo db中更新。现在,当我尝试更新获取的记录时,我最终遇到了无效的属性值类型异常
for (let key in usersOfAccountFromDB.body.Items) {
var updateParam = {
TableName: process.env.AWS_DYNAMO_TABLE,
Key: {
UU
我尝试将400KB(DynamoDB项的最大大小)的字符串长度转换为字符
我不知道KB是千字节(本例中为400000个字符)还是千位(本例中为51200个字符)
你知道吗
谢谢肯定是400千字节。但是DynamoDb对字符串使用UTF-8编码。因此,如果您的字符串是UTF-16编码的,那么它可能适合也可能不适合作为一个dynamodb项。其次,400KB限制还包括表中属性键名称的二进制长度
肯定是400千字节。但是DynamoDb对字符串使用UTF-8编码。因此,如果您的字符串是UTF-16编
所以我的情况是,我在AWS DynamoDB用户表中有以下JSON数据:
[{
"name": "data1",
"addresses": [{
"city": "Mumbai",
"state": "Maharashtra"
},
我希望计算在给定表中执行的查询所产生的项数
在AWS SDK 1.1中,可以构造一个查询,使其仅返回表中存在的项数,而不返回项本身:
是否可以使用enhancedClient(即DynamoDB的SDK v2)执行此操作?如果是,如何支付?无论您是否想要内容,您都要支付相同的RCU,因此您可以放弃该项目,只获得计数。
我正在zend框架中创建web服务,该框架使用DynamoDB。所以我在本地安装了DynamoDB。但是它不容易使用。即使是为了插入数据和更新任何用于测试的数据,我也必须编写一个脚本
是否有适用于MAC的DynamoDB客户端?我们可以从UI中插入/更新/删除数据
编辑
怀疑
1) 我是否必须运行SQL才能查看表数据?我以为这会有GUI
2) 我无法在SQL中使用where子句。如果我想查看所有记录中的一个或两个,该怎么办?有没有一种方法可以在这个环境中使用条件
3) 一行的所有字段都不可见,我
我已经为我的dynamo db表设置了cloudwatch闹钟。我没有找到将多个报警设置到同一个表的方法。我想设置3个警报,分别为80%、85%和90%阈值。任何帮助。谢谢。您可以通过以下方式完成此操作:
浏览视图->监控->创建报警如果您无法在浏览视图中单击表格,请单击“监控”并单击“创建报警”?我可以。谢谢这也是我之前做的。但是,我只能添加一个警报。后来我想我们可以添加多个案例。
我试图使用DynamoDB JavaScript shell创建一个简单的表,但遇到了以下异常:
{
“消息”:“密钥架构中的属性数必须与属性定义中定义的属性数匹配。”,
“代码”:“ValidationException”,
“时间”:“2015-06-16T10:24:23.319Z”,
“状态代码”:400,
“可检索”:false
}
下面是我试图创建的表:
var参数={
TableName:“table_name”,
KeySchema:[
{
AttributeName:'has
DynamoDBMapper提供了从表中读取一项的不同方法:
质疑
装载
是否有建议,使用哪一种?在快速测试中,以下两个代码段对于主键为hash、范围键为date的表返回相同的“MyEntry”项,而查询方法的速度大约快10%
加载
public MyEntry getEntryForDay(最终整数散列,最终LocalDate){
返回mapper.load(MyEntry.class、哈希、日期);
}
查询
public MyEntry getEntryForDay(最终整数散列,最
我的应用程序读取dynamoDB流以查找对表的更改,我当前得到的最新流如下所示:
this.awsDB.describeTable({TableName: 'MatchDraft'}, function(err, data){
if(err){
console.log(err);
} else {
this.streamArn = data.Table.LatestStreamArn;
console.log(data, this.streamArn);
来自关系背景,我习惯于写一些东西,比如:
UPDATE Table Set X = 1 Where Y = 2
然而,在像Dynamodb这样的db中,这样的操作似乎很难完成。假设我已经对Y=2的项目进行了查询
在我看来,提供API有两种选择:
进行大量的个人更新请求,或
执行批写入,并在应用更新的情况下将所有数据写入
就性能而言,这两种方法似乎都很糟糕
我是不是漏掉了什么明显的东西?或者,非关系型数据库的设计不是为了处理这种规模的“更新”——如果是这样的话,我能在不大幅降低性能成本的情况
我正在寻找一些关于DynamoDB表设计的建议,以存储从1000个传感器集线器流入的遥测数据。传感器集线器每天最多发送15000条消息,其中包含以下内容:
时间戳(unix时间)
站点id(uuid)
传感器类型(字符串)
传感器数据(json)
我已经研究了存储时间序列数据的最佳实践,并将采用一种表分区策略,即每月创建一个新的“热数据”表(并相应地调整RCU和WCU以适应较旧的“较冷”表)
我不确定的是选择合适的散列键和排序键,以及设置索引等等
对数据的大多数查询将是:在station_id=
我已经尝试了使用dynamodbcli的所有可能的方法,但仍然无法在一个简单的表中插入
命令:
aws dynamodb put item--表名my_table--项'{“id”:{“S”:“1”}'--端点urlhttp://localhost:8000
分析参数“--item”时出错:应为“=”,收到的输入为:“”
“{id:{S:1}”
^项目数据可以保存为JSON文件,然后执行提供文件路径的命令
示例:-
如果您在windows中,请使用cd命令导航到文件路径(即put_item.js
我有一个带有1500个RCU的dynamodb表,它可以扩展到2000个,但是我们有一个流量高峰,导致消耗的RCU激增到3000个以上,我想这应该由突发容量来处理
我知道dynamodb分区的限制,比如3000个RCU、1000个WCU和10G数据
所以我的问题是,这些尖峰是否会导致分区?如果是,在哪里可以看到表中的分区数。我在AWS控制台的任何地方都找不到它。突发容量不会导致您的表创建新分区。很明显,新分区是由数据的大小和配置的容量引起的
在以下情况下,DynamoDB会向表分配额外的分区:
我有一个使用主CloudFormation堆栈和十几个嵌套堆栈定义的AppSync应用程序。每个嵌套堆栈定义一个DynamoDB表、该表的AppSync数据源以及该数据源访问该表的IAM角色。数据源取决于角色,角色取决于表
我想巩固这些IAM角色,原因有三:
角色定义非常重复和陈词滥调
这个应用程序有很多副本,加起来有很多IAM角色——足以让我们接近软限制
一些解析器使用DynamoDB批处理操作来访问多个表,因此至少一些IAM角色必须授予对多个表的访问权限
我不想让角色全面访问帐户中的所有
Lambda函数由SQS消息触发。保留并发被设置为最大值,这意味着我可以同时执行Lambda。每个Lambda将读取SQS消息,并需要更新一个包含消息长度总和的Dynamodb表。这是一个增加的数值。
虽然我已经实现了乐观锁定,但我仍然看到最终值与实际的正确总和不匹配。有什么想法吗
以下是执行更新的代码:
public async Task Update(T item)
{
using (IDynamoDBContext dbContext = _dataContextF
我正在尝试扫描DynamoDB表并将其内容打印到JS文件中
我的桌子大约有100000行
我的代码似乎在小表上工作,但当我在这个大表上尝试它时,它在API调用中没有返回任何内容,它似乎击中了我的目标,但错误只是作为一个空对象记录
const AWS = require("aws-sdk");
class DynamoDB {
constructor() {
this.region = 'eu-west-1';
this.endpoin
您好,我正在使用Dynamodb,当我想更新我的仓库表中的数据时,我会无缘无故地出现以下错误?
它将更新我的数据,但突然由于一个无意义的错误而崩溃。
有什么问题吗
ValidationException: Invalid KeyConditionExpression: An expression attribute value used in expression is not defined; attribute value: :name
我的代码:
let updateData = {
在文档()中,它指出:
只能查询主键为哈希和范围类型的表
及
我们建议您设计应用程序,以便主要使用查询操作,并仅在适当的情况下使用扫描
虽然没有直接说明,但这是否是使用散列和范围主键的最佳实践
编辑:
回答TL;DR:使用对您的数据模型有意义的主键类型,并使用辅助索引以获得更好的查询支持
参考资料:
不一定。最好选择一个支持用例访问模式的主键
例如,假设您想要为用户创建一个表。您将存储单个用户的详细信息(姓名、电子邮件、创建者等)。您的访问模式可能是获取特定用户的详细信息。在这种情况下,使
假设我有一张照片和用户表
如果我有一个我正在跟踪的用户列表,我想得到一个我正在跟踪的人的照片列表
如何在[user1、user2、user3…]中查询照片表where photo.createdBy
我看到dynamodb有一个批处理操作,但它需要一个主键,在本例中,我们将根据一个辅助索引(createdBy)进行查询
在dynamodb中有这样的查询方法吗?如果您纯粹是在photo.createdBy上查询,那么您应该创建一个:
要加快对非关键属性的查询,可以创建一个全局二级索引。全局二级索引
更新表中的项目时,是否所有项目都会反映在索引上,包括其主键和投影?文件中提到确实如此,但不够具体
此外,下图显示了由表中的Status和Date字段组成的复合键示例。它专门展示了建模是如何显著提高性能的。然而,我不禁要问:StatusDate是否会在Status发生变化时自动更新?这是怎么回事
是的,更新项目时,所有投影和索引也会更新
然而,两者的行为最终都是一致的。这意味着您最终可能会读取过时的数据
幸运的是,至少在本地二级索引上,您可以请求一个
现在,关于StatusDate和复合索引,这是
我有一个要求,我需要用大量数据初始化我的dynamodb表。比如说15分钟内大约1米,所以我必须将WCU设置为10公里,但之后我的负载为每秒~1公里,所以我将WCU从10公里减少到1公里。减少WCU是否存在任何性能缺陷或问题
谢谢一般来说,假设写入请求不超过写入容量单位,也就是说,由于您没有提到项目大小,因此不应该存在任何性能问题
如果在任何时候,您预计流量增长可能超过您的预期
配置的吞吐量,您只需更新配置的吞吐量
通过AWS管理控制台或Amazon DynamoDB获得的吞吐量值
API。还可
我有一所学校,它有许多班级/年级(1-10),每个班级有许多学生,我需要每年存储一个学生的记录,以便我可以更好地划分。所以它基本上是班级->N年->N个学生。如何对此问题建模以将其存储在Dynamo DB上在NoSQL上,设计取决于查询访问模式(QAP)。由于您没有提到QAP,您希望如何检索数据。我假设了一个典型的场景,并提供了以下设计
表:学生
分区键:学生Id
排序键:年份
其他属性:学生姓名、班级等
年份被定义为排序键,因为学生可以在不同年份学习多个年级(1-10)。例如
2010年的今
我在nodejs中使用dynamodb,我有3000条记录,我在代码中写了60多个段,每个段扫描1mb的数据,并将结果显示到60多个1mb限制的段。因此,请提供解决方案,如何在一个步骤中扫描3000条记录,这意味着在一个段中。请尽快提供解决方案,因为我在我的项目中间。请帮帮我。下面是我的代码
var AWS = require("aws-sdk");
var async = require("async");
AWS.config.update({
region: "---
我似乎找不到如何通过API网关为DynamoDB中的StringSet正确调用PutItem。如果我像调用地图列表一样调用它,那么我会得到返回的对象。示例数据如下
{
"eventId": "Lorem",
"eventName": "Lorem",
"companies": [
{
"companyId": "Lorem",
"companyName": "Lorem"
}
],
考虑DynamoDB表中的以下文档项/语法:
{
"id": "0f00b15e-83ee-4340-99ea-6cb890830d96",
"name": "region-1",
"controllers": [
{
"id": "93014cf0-bb05-4fbb-9466-d56ff51b1d22",
"routes": [
{
我想为DynamoDB表创建一个具有多个(>10)属性的地形配置。我不需要将所有属性作为索引添加到
global\u secondary\u index或local\u secondary\u index。
但当我运行terraformplan命令时,我有下一个错误:
必须为所有属性编制索引。未使用的属性:…
我发现Terraform存储库中的验证检查功能正常
但据我所知,最佳实践是,DynamoDB中的每个表最多只能有五个全局二级索引和五个本地二级索引
因为我有10多个属性,所以我觉得这是个问
调用时发生错误(ValidationException)
BatchWriteItem操作:提供的键元素与
架构:ClientError回溯(最近一次调用last):文件
lambda_处理程序中的第24行“/var/task/lambda_function.py”
“名称”:row.split(“,”)[1]文件“/var/runtime/boto3/dynamodb/table.py”,
第156行,在退出文件/var/runtime/boto3/dynamodb中/
欢迎使用StackOv
当像dynamoClient.update(params)这样的请求被限制时,我的理解是SDK会自动尝试多次重试,然后只有在所有重试都失败时调用才会失败。如果其中一个成功,则调用成功
我的问题与CloudWatch报告受限制的请求有关。如果一个请求最初失败,但其中一个失效成功,是否报告为限制请求?还是只有在所有重试都失败的情况下才会报告为限制
当我观察系统的行为时,我真正想了解的是重试的频率,以及它们最终是失败还是成功。当我看到50个请求被阻止的报告时,这是否意味着所有50个重试都失败了?或者这
我们目前正在使用AmazonRDS作为我们的数据库,并计划迁移到DynamoDB以扩展我们的消息传递数据库。但是在MySQL表上已经设置了很多分析,我们希望继续使用它们
将数据从DynamoDB同步到Redshift的最佳方法是什么?对于此类问题(将源数据库同步到Redshift),您基本上有两种常见的解决方案:
(A) 创建定期轮询输入数据库、检测增量并将检测到的增量数据接收到红移的应用程序
(B) 使用AWS动力消防软管
选项B更容易实现,因为您基本上使用专用的AWS服务来实现此目的。但
我正在开发一个DynamoDB表格,按邮政编码显示工资数据。以下是我的表格结构:
对于给定的邮政编码,将有一个名为Meta的排序键,其中包含lat/lon、city、state、country等。除了Meta之外,我还将在Sort Key中为给定邮政编码的不同工资数据源提供值。工资数据的每个值都将是一个JSON文档。我会有很多不同的数据源。例如,大约有41K个邮政编码和1100个ONET编码,这相当于大约4600万行(给定或获取),仅适用于ONET数据源类型
DynamoDB表可以有效地处理多
我正在写一个应用程序,它有一个临界点函数。我想做一个有条件的更新,它只在用户钱包的结果值为0或更高时执行。如果该值为负值,则不应进行更新
函数在没有条件表达式的情况下工作,但当我添加它时,它会中断
ConditionExpression: 'teleUser.wallet.points -:a > -1',
在上面的行中:a是一个传入的整数。我将在下面发布上下文,但上面这一行就是我的问题所在
返回的错误是ValidationException:Invalid ConditionExpre
我们有一个api,它使用扫描操作从DynamoDB表中检索1000条记录(13.25 MB)。该特定api的lambda在30秒后超时
是否有一种方法可以一次获取所有记录。您可以增加lambda函数的超时时间,但为什么要对dyanmodb进行扫描。你必须重新考虑你的设计。即使我增加了lambda函数的超时时间,但它仍然在API网关失败,正如你所说的,我应该重新考虑我的设计,或者应该在不获取所有记录的情况下实现分页功能,但是dynamodb的问题是,分页只能通过lastevaluatedkey实现
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 36 页