我在DynamoDb中有一个简单的“产品””表。每个产品都有一个categories属性,该属性是一组类别ID,如下所示:
[{ "N" : "4" },{ "N" : "5" },{ "N" : "6" },{ "N" : "8" }]
产品表具有id(散列键)和accountId(范围键)
是否可以在不进行扫描的情况下进行查询以查找类别6和accountId 1中的所有产品?或者我可以用其他方法来模拟它吗
如果它是一个关系数据库,我将有一个product to category表,并连接这
我有一个名为Transactions的DynamoDB表,其中记录了我应用程序中活动的审计跟踪。午夜后,我想将该表重命名为类似于Transactions.2015-10-01,并创建一个名为Transactions的新表,我将在我的应用程序中记录下24小时的活动。在这段时间结束时,我会将其重命名为Transactions.2015-10-02等
换句话说,我试图实现活动的循环日志(虽然是线性的,而不是循环的)
我不确定是否有办法在DynamoDB中重命名表。有办法吗?如果没有,还有其他方法吗?例
在一个表中,我有292条记录,对于这292条记录,我在DynamoDB中编写了63段并行异步数据。如果记录再次增加,我将在代码中写入段。如果不编写这样的代码来添加要显示的记录,那么解决方案是什么呢。请帮助我。您可以在您的表上启用DynamoDB流,并连接由该流触发的lambda函数以显示新添加的记录。请详细帮助解决此问题,这对我来说是必要的。您可以在中找到有关使用DynamoDB流触发lambda的分步演练。通过执行此操作,现在我可以拥有完整的数据,而无需一次又一次地添加代码。我的项目是房地产,
这是我的用例,我需要在DynamoDB表中添加和更新条目,如下所示:
response = ddb_client.update_item(
TableName=target_ddb_table,
Key={'email-hash': {'S' : encrypted_hashed_pw},},
ExpressionAttributeValues={ ":my_value":[{"S":"test"}], ":empty_list":[] },
UpdateExpr
我正在建立一个论坛,并研究使用DynamoDB和邻接列表对数据进行建模。一些顶级实体(如用户)可能与其他顶级实体(如注释)具有多种类型的关系
要求
例如,假设我们希望能够做到以下几点:
用户可以喜欢评论
用户可以关注评论
评论可以显示喜欢它的用户
注释可以显示跟随它的用户
用户配置文件可以显示他们喜欢的注释
用户配置文件可以显示他们遵循的注释
因此,我们基本上有一个多对多(用户评论)对多(喜欢或跟随)
注意:这个例子是故意精简的,在实践中会有更多的关系需要建模,所以我试图在这里考虑一些可扩展
我在dynamodb中有一个表,表结构如下:
PKStatusId是String,排序键DateTimeStamp是Number。
我想通过DateTimeStamp desc limit 10从InternalProductionDb order中实现select*
let params = {
ExpressionAttributeValues: {
':min': {
N: '200000000000'
},
阅读文档后,我可以看到键过滤器表达式应该如下所示:
partitionKeyName=:partitionkeyval
但是,my GSI的值本身包含:。所以用这个:
aws dynamodb查询--表名my\u表--索引名mark\u id\u索引--选择所有属性--键条件表达式mark\u id=:bit:BT-EU:dev
导致以下错误:
调用查询操作时发生错误(ValidationException):无效的KeyConditionExpression:语法错误;令牌:“:BT”,靠近:
我有一个表,哈希键作为ID,范围键作为CreatedDate。我有一个场景,我需要根据名字和姓氏列获取列表。我创建了一个全局二级索引(散列键:lastName,范围键:firstName)。这个索引将为我提供与lastName相等的anyName和firstName的一些条件。我还想获得反向场景的数据,即anyName等于firstName和lastName上的一些条件
我是否可以在不实际创建新GSI的情况下使用哈希键作为firstName,范围键作为lastName(与上述相反)执行此操作?不
我在AWS dynamoDb中创建了一个只有一个哈希键的表。目前它拥有2000多万条数据,每天插入数千条数据
最近,我想每天把这些数据从dynamoDb拿到本地硬盘上。我写了一个小程序来使用扫描操作来保存它们。数据的总大小不是很大,大约为10G,但扫描过程中的时间成本几乎是每天5小时。当然,考虑到费用,我没有设置更大的阅读量
我的问题是:是否有一种方法可以增量扫描这些数据,这意味着我只需要复制新插入的数据,而不需要复制整个数据库。我曾经尝试将与ExclusiveStartKey一起使用,但它找不
我有几个表需要吞吐量配置。大多数情况下,这些表的读写调用的后台级别较低。但在特定作业期间,它可能会经历快速的读/写请求突发
在您看来,选择这些配置的吞吐量数字的好做法是什么?我从对预留容量()的描述中得到的印象是,它基本上就像购买信用卡一样。定期购买它们来处理突发请求是个好主意吗
谢谢我的建议是尽可能减少读/写突发,因为在空闲期间,读/写突发不可避免地会占用未使用的保留容量
读取突发事件:尝试在单独的表中隔离最频繁访问的项,以便为这些记录提供相应的高吞吐量
写入突发事件:限制应用程序端的写入活动
我试图学习AWS DynamoDB,但遇到了一个看似简单的问题,我想不出来
我正在本地使用在nodejs上运行。
误差如下
var params = {
TableName: "test",
KeyConditionExpression: "email = :testmail",
ExpressionAttributeValues: {
":testmail": "rik@test.com"
}
}
dynamodbDoc.query(par
我正在对我的一个表执行扫描操作,并在请求中指定一个“projectionExpression”,其目的是减少返回的数据量。
我没有对扫描设置限制(尽管我也尝试将限制设置为50、100等)
我只得到大约20-30个结果,总响应数据约为12KB-15KB,我使用javascript函数来测量响应的大小
我还尝试在porjectionExpression中只返回主键,以查看这是否会影响我得到的结果数量,但我仍然得到相同数量的结果
我从文档中了解到,扫描操作最多只能返回1MB的数据,但令人惊讶的是,虽然
我在谷歌上搜索了一段时间,但没有得到具体的答案
假设我有一个存储人员信息的表,它使用PeopleId作为散列键。如果某人的Id是1或2,是否有方法构造一个查询来返回此人
看起来我可以使用BatchGetItem来做这些事情,但它会有更高的延迟吗?在DynamoDB中,主键的分区键部分不能有任何条件。您可以按排序键
因此,您要么需要执行两次GetItem,要么使用BatchGetItem。谢谢!我刚刚发现有一个方法表达式。withFilterExpression(“id=x或id=y”),但不确定
我的物品如下所示:
{id: some_id,
owners: ["1", "2", "3"]
}
说owner=“2”。我想编写一个前置条件,确保在项目更新(put)之前,owner处于owner状态。我已经编写了一个前提条件,以确保在更新之前存在项id:
var params = {
TableName: tableNames[event.pathParameters.resourceType],
Item: item,
Condition
我使用的是DynamoDB SDK 1.11.185版本。我有一个通过DynamoDBMapper注释映射到Clients DynamoDB表的客户机实体。其中一个属性包含嵌套值(请参见下面的代码示例)。我想从Options类向zone属性添加一个本地二级索引。一旦我想保存一个对象,我从这个类中得到了一个空指针异常
com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel
第415行。看起来像是库中的bug
p
我正在尝试从我的DynamoDB数据库中获取一个项目。按照目前编写代码的方式,我无法从DynamoDB检索任何数据。我一定是做错了什么,因为从我的测试中可以看出,我的回调没有被调用
我昨天花了一整天的时间在这上面,从今天早上醒来就一直在修修补补,但没有成功
如果有人能提供我在这里做错了什么的见解,我将非常感激。提前感谢大家
最后注意:Lambda函数本身的超时设置为5分钟。因此,我认为Lambda函数不会在db查询返回之前超时。当我运行该函数时,它会在片刻后退出
const AWS = requ
我正在创建一个包含10000种产品的产品目录数据库,我想知道在NoSQL数据库中构建它们的最佳方式是什么
我需要确保我可以创建一个类别结构来动态构建菜单(每天都会缓存)
首先,我认为产品可以包含自己的类别数据
EAN是主键
CatSlug是排序键
产品json
Products: [
{
"EAN" : {"S" : "123456"},
"CatSlug" : {"S" : "drill"},
"CatParent" : {"S" : "drill"},
在MySQL中,使用“从TABLENAME中选择count(*)找到的行总数
类似地,如何获取dynamodb表中的总行数。使用度量可以知道行的总数。如果您只想知道计数,而不需要通过编程来了解数字,请进入DynamoDB控制台,单击表格,它将显示项目计数
如果你不介意大约落后6个小时的计数,那么斯图的答案就行了。IIRC,它也可以通过编程实现
但是,如果您想要实时计数,请重新考虑您的需要;)
如果您确实需要它们,请将DDB流配置为lambda,该lambda将使用记录计数和任何其他要跟踪的聚合信
我正在尝试创建一个汽车预订应用程序。用户可以在许多办公室附近预订汽车
我想知道是否可以将所有预订放入一个硬编码的hashkey“bookings”中,但使用唯一的范围键
我想有一个参考所有的预订,以便“超级管理员”可以进入并查看一切。预订需要存储10年,所以我想我最终会在同一个hashkey下拥有大约5000万条记录,但具有不同的唯一范围键。搜索需要基于三种不同的
日期标准,本地二级索引1-3
像这样思考(只包括特定的“实体”)
应该这样做吗?这会导致热点/热分区吗?
谢谢你的提示。我想说不,这
标签: Amazon Dynamodb
dynamodb-queriesamazon-dynamodb-streamsamazon-dynamodb-data-modeling
我想公开订阅或“粘性查询”之类的内容:目标是查询DynamoDB并通过API网关中的WebSockets API返回结果。好的,每当DynamoDB以某种方式改变查询时(我想我可以使用Streams),我都会通知客户机。如何确保客户端获得初始列表和所有更新?我想确保客户端在创建订阅后和返回初始结果列表之前不会错过任何更新…可以使用DynamoDB通知您的客户端您的更改。但是,该信息仅在24小时内可用。
即使您将更新写入,您的信息也最多可使用7天(根据)
我建议将您的用例分为两部分:
创建一个服
我们正在考虑使用DynamoDB作为我们新的多租户Saas应用程序的后端。这个应用程序还处于初级阶段,将在未来几年中不断发展。我们还不知道所有的实体。我们所知道的实体也将进化。考虑到这些问题,使用DynamoDB是一个好主意吗
我最担心的是,我们无法为现有表添加LSI。因此,如果我的实体要添加一个需要在过滤器中使用的新属性,我们必须创建一个GSI,它的成本与另一个表一样高
请分享您在这方面的想法/经验。与Dyanmo合作的主要考虑因素……您是否了解需要如何访问数据
如果您的大部分访问都是通过键进
我正在为aws的dynamodb编写get item命令。
这是我的命令:
aws dynamodb get-item --table-name foo --key '{\" bar \":{\"S\":\"aaaa\"},\"timestamp\":{\"N\":\"1603610188890\"}}'
如您所见,表foo具有复合主键:
分区键“bar”和排序键“times
我正在实施一个排行榜,该排行榜由DynamoDB及其全局二级索引支持,如《开发者指南》中所述
但是,对于排行榜系统来说,有两件事是非常必要的,那就是你在排行榜中的位置,以及你在排行榜中的总数,所以你可以显示2000年的第1次,或者类似的情况
使用索引,行被正确地排序,我假设这些调用足够便宜,但是我还没有找到一种方法,到目前为止,如何通过它们的文档来实现。我真的希望我不必每次都获取整个表来知道一个人在其中的位置,或者整个表的计数(尽管如果不可用,可能会延迟、计算并在预定时间存储在表之外)
我知道d
最近,我注意到DynamodDB中我的一个表上的读取访问量意外增加。我想我可以求助于AWS CloudTrail来找出谁正在访问它(源IP地址等)。然而,事实证明CloudTrail不支持DynamodDB
鉴于AWS CloudTrail不支持DynamodDB,我可以选择哪些选项来发现谁正在访问我的DynamodeDB表?非常感谢 您可以拒绝访问所有不需要访问DynamoDB表的IAM用户、组和角色,然后查看是谁投诉
见:
在您键入amazon CloudSearch以搜索amazon dynamodb时,我应该如何实现搜索。就像algolia那样。您可以在每次用户输入字符时使用前缀搜索,在键入时进行搜索——它看起来像这样:
(prefix field=name 'dri')
前缀搜索是必要的,因为对q=dri的常规搜索与drive、drivel等不匹配
以下是前缀搜索文档:
如果不想为前缀搜索指定字段,可以使用以下形式的查询:q=dri*|dri(非*项是必需的,因为q=dri*与单词“dri”不匹配——它要求
我在使用AWS Boto3使用推荐的KeyConditionExpression同时使用哈希键和范围键查询DynamoDB时遇到问题。我附上了一个查询示例:
导入boto3
从boto3进口发电机B
从boto3.session导入会话
dynamodb_会话=会话(aws_访问密钥id=aws密钥,
aws_secret_access_key=aws_PASS,
地区(名称=发电机地区)
dynamodb=dynamodb_session.resource('dynamodb')
表=发电机表
我需要更新dynamodb行的几个属性。我想知道dynamodb如何在内部更新一行—如果不需要旧值,它是否只更新内存中的属性,而不在更新时访问磁盘。或者,它将始终转到磁盘并在那里更新新值,以便在没有性能损失的情况下返回旧值。如果我在更新请求中将withReturnValues作为UPDATED\u OLD删除,更新性能基本上会提高。UpdateItem在未设置ReturnValues且设置为UPDATED\u OLD时工作。但是,响应会更大,因为在响应中会返回更新之前项目属性的版本。一个更大的响
如果表中有以下结构的项
在DynamoDb中,我们可以使用“a”作为分区键,使用“aa”作为排序键进行查询吗
{
"a" : "",
"b" : "",
"c" : "",
"d" : [ {
"aa" : "",
"bb" : ""
},
{
"aa" : "",
"bb" : ""
}
]
}
是的,您可以使用“a”作为分区键
但是,不能使用“aa”作为排序键。排序
我正在构建一个监控管道,是否有人试图将DynamoDB监控指标引入InfluxDB,而无需在EC2/Lambda中运行自定义代码。有什么插件可以处理这个问题吗
如果你有什么好主意或者可以推荐一个插件,请与我分享。是的,你可以使用
图书馆
Telegraf是一个用Go编写的代理人,负责收集、处理、,
聚合和编写度量
注意:您不需要在EC2/Lambda中运行相同的自定义代码
依照
以下是最终进入XDB的指标:
cloudwatch_aws_efs
cloudwatch_aws_elastic_be
我面临着这样的错误
Request must contain either a valid (registered) AWS access key ID or X.509 certificate.
在DynamoDB Local中尝试通过Cognito注册用户时。当我断开与DynamoDB的连接时,用户注册为ok,我可以通过编程在db中创建记录。错误来自DynamoDB。请看一看:
我在dynamo db表中有以下记录
{
"Key" : "key1",
listvalue:[
{"attrib1":"attribv1", "attrib2":"attribv2" },
{"attrib1": "attribv3", "attrib2": "attribv4"}
]
}
我需要查询dynamo db表以获得整个记录,该记录在nodejs中的“attrib1”属
我正在更新DynamoDB中的一条记录,当ConditionalCheckFailedException发生时,我想知道是否可以获得该记录的新副本。很多时候,当ConditionalCheckFailedException发生时,这是因为我没有记录的最新副本,因此我必须返回DynamoDB获取最新副本。如果我能看到ConditionExpression失败并在一个请求中获得记录的最新副本,那就太好了。这可能吗?您将无法在一个DynamoDB请求中完成此操作。ConditionalCheckFai
我有一个像上面这样的模型。我需要在serviceData状态被拒绝的任意两个日期之间进行aws cli查询。我的hashKey和range key是在创建时创建的。有人能帮我吗
提前谢谢到目前为止你都试了些什么?我得到了答案谢谢
{
"agent": "testing",
"content": "no content",
"created_at": "2018-08-14T14:52:50.622+05:30",
"event_type": "KYC_FOLLOWUP",
"generated_
我正在尝试使用AppSync更新DynamoDb表中的项目属性。
一旦成功,我希望在下一次调用中使用该属性的前一个值作为键(我使用的是管道解析器)
要使用DynamoDB实现这一点,只需将UPDATED\u OLD设置为返回值
我找不到任何用于为AppSync指定DynamoDB解析器返回值的文档。
我试过以下方法
{
"version" : "2018-05-29",
"operation" : "UpdateItem",
"key": {
"id": $util.
为了使用最合适的对象,我尝试从表构造、保存、更新、删除、查询或扫描操作的角度来找出DynamoDBMapper和DynamoDB表实例之间的区别
一些方法:
import com.amazonaws.services.dynamodbv2.document.Table;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper;
...
mapper.save(bean, save
我正在使用json创建dynamodb。我需要通过再添加3个区域使该表成为全局表。我们可以用CFT来做吗?或者我只能通过UI/控制台执行
我在网上尝试了一些功能块,但都没有帮助。Cloudformation中没有对全局表的直接支持。这是Cloudformation支持滞后于功能本身的另一个功能。您需要编写一个自定义资源来执行此操作
我已经为类似的情况编写了一些自定义资源,它们编写起来相当简单。看看
我有多租户产品,并使用dynamodb数据库,所以我们所有的web请求都是由dynamodb提供的。我有一个用例,我想将租户的数据从一个区域移动到另一个区域,这将是后台过程
如何确保后台进程不占用数据库?否则,它会给用户带来不好的体验,并可能导致网站崩溃
是否有一种方法可以为后台进程配置专用的读写容量。您不能将读写容量单元专用于特定进程,但可以临时将表的容量模式更改为按需移动,然后在移动完成后将其切换回配置模式。您可以每24小时切换一次容量模式。通过更改为按需容量模式,您在这种特定情况下不太可能
我的DynamoDB有间歇性的问题,写了一堆条目。我看不出问题是什么,奇怪的是,问题发生在一个没有条件表达式的地方。这种异常大约10次发生1次
docClient.transactionWrite(transaction.promise()
{
"TransactItems": [
{
"Update": {
"TableName": "protect-dev-stepfunction-ScanAggregation
我有一个csv或50K记录以及50K记录的JSON文档。文件或文档是一组地理位置
我的目标是将所有50K记录加载到DynamoDB中。我不知道我哪里做错了。目前看来,我一次最多可以加载25条记录,这是一个非常长的过程,要将所有50K记录加载到DynamoDB中
JSON文件大小约为70MB
有没有办法从保存对象数组的JSON加载所有50K记录?或者以任何方式从CSV加载?我能够从java代码加载。但我主要是寻找一些dynamodb命令或工具,我应该能够加载它们
一个JSON对象如下所示:
&qu
我有一个IDsEventID数组,在表中可以是百万或十亿个ID。我使用for循环遍历每个id,并使用PHP中的查询操作从dynamo db表中检索一个项。但是,由于查询操作会遍历我的表中的大量信息,因此执行查询操作需要的时间太长。所以,在这种情况下,我没有得到任何结果,因为我得到了一个暂停。下面的代码尝试执行此操作,但由于大量信息,此操作失败。我想知道您是否对如何使$sfweventarrayds数组中的大量ID的查询操作更快、可行有任何建议
有两种可能的解决方案可以改进查询操作:
使用批处理获
我对如何在DynamoDB中正确设置次要索引有点困惑。
文档说明二级索引用于具有哈希和rangekey的表,但在我的例子中,我不需要range键
情况基本上是这样的。我有一个移动客户端列表,它将调用我的API。这些客户端由一个6个字符的唯一客户端ID标识。每个客户端还具有一个唯一的设备ID,基本上是一个很长的GUID——相当长,不方便用作主键
当客户机在注册请求中注册自己并发送设备ID(长GUID)时,问题就来了,服务器生成唯一的clientID(六个字符的唯一ID),并返回给客户机用于将来的通
对不起我的问题,我是NoSQL的新手
我的案例,如果在关系数据库中,我有3个表:
Book ( **Book_ID**, Book_Name, Page_Number ).
Category ( **Category_ID**, Category_Name ).
Author ( **Author_ID**, Author_Name ).
一本书只有一个作者和一个类别,但一个作者有许多书和一个类别
也有很多书。[作者]-1----n-[书籍]-n----1-[类别]
关系
我正在尝试用以下代码更新DynamoDb中的表
$response = $client->updateItem(array(
"TableName" => "PlayerInfo",
"Key" => array(
"PlayerId" => array('N' => '201503261435580358849074082'),
),
"AttributeUpdates" => array(
'
我们如何将Amazon DynamoDB与Couchbase进行比较?在性能、可扩展性、可用性和容错性方面,哪一个更好
谢谢你的帮助
问候,,
Vinay这是一个过于笼统和战略性的问题,不能作为stackoverflow的一部分,答案可能是其中之一,具体取决于用例。但是,我会让你知道在决定时应该考虑什么
记住Couchbase是一个NoSQL软件,而DynamoDB是一个作为服务的NoSQL数据库。因此,比较它们可能不是一个好主意
Couchbase可以托管在内存中,如果托管在数据中心内的本地网
我使用AWS Cognito对iOS应用程序中的用户进行身份验证。应用程序的用户必须输入电子邮件、电话号码和姓名才能注册,Amazon将发送短信验证电话号码
所有这些都很好。我有几个问题,它们是:
1.)我想知道这些数据保存在哪里?它不在Dynamo DB中(但是,我在AWS Cognito-->Federated Identifications-->users中找到了用户列表,但在Dynamo DB中的表中找不到)
2.)现在,一旦用户通过身份验证,我就允许用户与应用程序交互。第一个任务是用户
我创建了一个带有
分区键->分区id
范围/排序键->\u项目\u id
指挥
aws dynamodb create-table
--table-name api
--attribute-definitions AttributeName=_partition_id,AttributeType=S AttributeName=_item_id,AttributeType=S
--key-schema AttributeName=_partition_id,K
我对DynamoDB相当陌生。我有一个要求,我需要设计一个表来共享手机上的代码。代码详细信息将存储为属性。例如:
“A”与“1234567890”共享了一个代码
“A”与“1234567891”共享了一个代码
“B”与“1234567890”共享了一个代码
“B”与“1234567891”共享了一个代码
“A”和“B”是用户,“1234567890”和“1234567891”是收件人。如果我将UserId散列键和RecipientNumber作为范围键,那么我可以找到与用户共享代码的收件人。我的
我有以下解析器设置:
#set($questions = [])
#foreach($item in ${ctx.args.questions})
#set($item.id = $util.dynamodb.toDynamoDBJson($util.autoId()))
$util.qr($questions.add($util.dynamodb.toMapValues($item)))
#end
{
"version" : "2018-05-29",
"ope
问题:
使用AWS中的Amplify.js。
类似的Tinder应用程序。
在这里你可以在附近找到工作。
这些可能只会出现一次。
我们应该保存用户喜欢和不喜欢的东西
我已经做到了:
我有以下计划:
type Query {
nearbyJobs(location: LocationInput!, km: Int): ModelJobConnection
}
type User @model {
id: ID!
name: String
interacts: [Jobinte
我有一个名为user的表,其中有一个哈希键user\u id和一个GSIemail。我正在尝试使用GSI查询记录。下面是我正在使用的查询。此查询不起作用,是否缺少任何内容
results = table.query(
IndexName='userTable-index',
KeyConditionExpression=Key('email').eq('test@gmail.com')
)
请发布完整的代码示例(例如,您如何定义“表”?)以及收到的任何错
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 36 页