在DynamoDB中,我有一个表,其中每个记录都有两个日期属性,create\u date和last\u modified\u date。这些日期采用ISO-8601格式,例如2016-01-22T16:19:52.464Z
我需要有一种基于create\u date和last\u modified\u date的查询方法,例如
在create\u date>[某些日期]
获取上次修改日期所在的所有记录
通常,我需要在[date\u attr][comparison\u op][some\u
我正在尝试更新DynamoDB表中的一项:
var params = {
TableName: 'User',
Key: {
id: 'b6cc8100-74e4-11e6-8e52-bbcb90cbdd26',
},
UpdateExpression: 'ADD past_visits :inc, past_chats :inc',
ExpressionAttributeValues: {
':inc': 1
我在DynamoDB上使用Titan。我有一个没有圈的有向边图。给定一个顶点,我需要所有从该顶点辐射出去的路径。“路径”仅表示每个路径上辐射出给定顶点的顶点列表
我只是不能理解Gremlin和Groovy,所以我希望Java中存在一个解决方案
或者有一个我可以转换成Java的Gremlin查询吗?dynamodb titan基于TinkerPop 3.x,在TinkerPop 3.x中Gremlin不绑定到Groovy。Groovy中的Gremlin基本上等同于Java。如果你不学习Gremli
我的DynamoDb表被定义为具有主分区和排序键的表
表名用户
主分区键电话号码(字符串)
主排序键国家/地区(字符串)
我正在尝试使用以下参数设置在此表上执行batchget
var dynamoQueryParams = {
RequestItems: {
'user': {
Keys: [
{"phone_num": {"S":"+14085551212"}, "Country": {"S":"USA"}},
必须列出DynamoDB表中的所有记录,而不使用任何筛选表达式。
我想限制记录的数量,因此使用带有setLimit的DynamoDBScanExpression
DynamoDBScanExpression scanExpression = new DynamoDBScanExpression();
....
// Set ExclusiveStartKey
....
scanExpression.setLimit(10);
但是,扫描操作总是返回10个以上的结果!!!!
这是预期的行为吗?如
我正在尝试将数据从AWS API网关流式传输到AWS中的DynamoDB(直接,不使用类似lambda的东西)。我已经查找了一些教程,例如[1]和[2],它们准确地描述了这个场景。所有这些都假定制定了正确的政策和角色。通常情况下,我会玩游戏和玩黑客游戏,直到我得到一个有效的概念证明,之后我会重新构建一个合适的模型,但是我想通过访问权限来确保我理解我在做什么。对于[2],我在[3]中还发现了一个堆栈溢出问题,该问题是由具有相同问题的人提出的,但不确定具体是如何解决的。我还查看了[4],其中描述了使
我有一个dynampodb项目,如下所示:
{
'id': 'some_id',
'task_states': {
'some_task_id': {
'phase': 'FINISHED'
}
}
现在,我用条件表达式更新此表达式:
task_states.some_task_id.phase IN ('ABSENT','STARTING','RUNNING')
更新就发生了!但是我的条件应该失败,因为task\u声明。某些任务id阶段已完成,因此不在(“
我在通过AWSAPSyncClient从AppSync API获取结果时遇到问题。我可以在AWS AppSync控制台中运行查询并获得完整的结果,但是当我从客户端运行查询时,我要查找的结果部分返回一个空数组
getUser:
conversations:
items: []
__typename: "ModelConvoLinkConnection"
__proto__: Object
id: "HIDDEN_ID"
__typename: "User"
__proto__: Object
__
我正在运行一个胶水作业,将数据从dynamoDB移动到redshift。表的当前配置的RCU为300,表的数据量约为50GB(预计将随时间增长)。我们正常消耗的RCU平均接近100。我们已将dynamo配置为自动缩放60%的已配置RCU消耗量。粘合作业配置为使用35%的RCU。我们无法承受对生产流量的任何影响
以上配置就绪后,我们的工作需要48小时以上才能完成。若我将dyanmo的RCU增加到1500,然后运行作业,它将在大约8小时内完成
我想安排它作为一个每周的工作,因此不能手动更新发电机的能
我有这张桌子。我有地方和用户。用户有访问过的地方的历史记录
简单的问题
如何在不进行两次数据库调用的情况下获取用户数据和所有最新位置数据
在我的第二个项目中,我需要复制一个地方,但如果我有数百万用户访问了一个地方,而该地方更改了名称,我将不得不更新数百万行
有没有关于如何为多对多动态数据执行安全的数据复制或其他策略的建议
标签: Amazon Dynamodb
aws-amplifyaws-appsyncaws-amplify-cliamazon-dynamodb-index
我正在尝试通过AWS AppSync,使用AWS的
Android AppSync SDK和Amplify CLI。我正在查询一个全球数据库
二级索引(GSI)。我得到一个错误:
表达式块“$[query]”需要一个表达式
我发现了这一点
下面是修复程序。但是,它对我不起作用:
我的schema.graphql是:
type olatexOrders @model
@key(fields: ["PK", "SK"])
@key(name: "GS
属性itemJson存储如下
“itemJson”:{
“S”:“S”:“S”:“{”出售的”卖卖卖的”卖卖的”卖的”卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖的卖
我正试图根据一个列表项的值扫描一个dynamo db表,该列表项的名称中包含value。场地是
"TPMS.value": {
"L": [
{
"N": "0"
},
{
"N": "0"
},
{
"N": "0"
在DynamoDB表上执行PartiQLselect语句时:
我们是否需要明确定义要使用的索引,或者可以从WHERE条件推断出该索引?也就是说,如果未在FROM上定义索引,但该条件使用具有相等比较的索引列,则该索引是否自动用于执行查询而不是扫描
在一个相关的问题中,是否有任何方法可以查看PartiQLselect使用的“查询/扫描计划”
谢谢
此代码
private AlternatorDBClientV2 Client;
@Before
public void setUp() throws Exception {
this.Client = new AlternatorDBClientV2();
}
给我这个例外
java.lang.IllegalStateException: Unrecognized prefix for the AWS http client class name AlternatorDBClien
我尝试了DynamoDB文档,并使用QueryResult处理示例,但找不到任何关于如何在DynamoDB中使用min、max和avg的源代码(我使用的是javaapi) 未提供这些。您可以通过执行查询或使用过滤器进行扫描,然后自己计算值来实现这些功能。为了简化一些,您可以使用只返回该查询/扫描将返回的项目计数,而不是实际项目。(请注意,count仅返回部分计数-您可能需要对多页查询/扫描的计数求和)
或者,您可以在主表更新时维护一个单独的表来存储这些值(注意,保持同步可能很困难,您必须使用某种
如何将属性“向上插入”到DynamoDB行。例如,SET address.state=“MA”对于某些项目,当address还不存在时
我觉得我遇到了鸡和蛋的问题,因为DynamoDB不允许您预先定义一个草率的模式
如果地址已经存在于该项目上,类型为M(用于地图),互联网告诉我可以发布更新表达式,如:
SET#address.#state=:value
分别将#地址、#状态和:值适当映射到地址、状态和MA
但是如果address属性不已存在,则会出现错误:
'''
ValidationExcep
dynamodb医生说
DynamoDB表分布在多个分区中。为了获得最佳结果,请设计表和应用程序,使读写活动均匀地分布在表中的所有项上
我的问题是,如果dynamodb自动创建分区,我如何确保读/写活动均匀分布?我有一个表,它有一个由guid组成的主键 UUID的分布是均匀的,因此只要您读取每个UUID的量与读取其他UUID的量相同,您的负载就会很好地分散
我是一名MSSQL开发人员,最近的任务是使用DynamoDB构建一个新的应用程序,因为我们使用AWS,我们需要一个高度可伸缩的数据库服务
我最担心的是数据完整性。例如,我有一个用于所有用户的表,其中每一行都需要有一个用户名、电子邮件和名称字段、所有字符串,以及一个验证字段,该字段为int。是否需要该表中的所有条目都具有这些字段并属于该特定类型
由于应用程序是用PHP编写的,所以我用它作为我的ORM,这样可以防止我弄乱数据的完整性,但是另一位开发人员表示担心我们是否添加了另一个应用程序,或者是否有
我正在创建一个无服务器的应用程序,并正在寻找各种方法来绕过使用dynamodb进行昂贵的扫描。我想到了一个解决办法,但不确定从长远来看是否合理
首先,我通常将记录保存在表中:
{
recordId1: {...recordData},
recordId2: {...recordData},
recordId3: {...recordData},
}
然后我设置了一个调度lambda函数,该函数从一个表中获取所有记录,并为排序和过滤器的每个组合保存一个ID列表。此函数将在添加或删除记
DynamoDBMapper提供了从地图构建对象的方法
:公共T MarshallLintoObject(类类别,
映射项目属性,
DynamoDBMapperConfig配置)
是否存在与上述功能相反的功能?将DynamoDBMapper对象作为输入并出售MapItemAttributes的东西?
DynamoDBMapper.save()必须执行相同的操作,但我不想重复代码
问候,
Swapnil正如您在评论中提到的,您可以使用DynamoDBMapperTableModel的方法来获取映射
使用Cypress,我需要连接到Dynamo DB并从表中获取一个值。
我有下面一段Javascript代码。有人能告诉我如何通过Cypress建立连接并从Dynamo DB表中获取值吗
注意:我正在使用cypress测试API调用。所以我必须找到一个端点,确认我得到了200 OK。之后,我需要连接到Dynamo DB并验证数据。我需要使用Cypress完成整个测试
var AWS = require ('aws-sdk') ;
AWS.config.update({access
我有一个用例,我必须返回Dynamo DB中表的所有元素
假设我的表有一个分区键列X,它在所有行中都有相同的值,比如monitor和sort键列Y,并且元素不同
以下方法的执行时间是否会有任何差异,还是相同
扫描整张桌子。
基于具有监视器的分区密钥查询数据。
直接回答
据我所知,在您描述的特定情况下,扫描速度会稍微慢一些,尤其是在第一次响应时。这是在假设您不进行任何筛选时发生的,即FilterExpression为空
进一步思考
DynamoDB可能存储大量数据。我所说的“巨大”是指任何机器的内
我正在设计一个Amazon DynamoDB表,表中的一个实体具有某种状态,其中包含以下值之一:1、2、3
该状态从1开始,最终在3结束
我想按状态查询记录,并按两个不同的日期字段排序
我目前的申请是:
PK: id, SK: OVERVIEW,
GSI1PK: STATUS#1, GSI1SK: DATE1,
GSI2PK: STATUS#1, GSI2SK: DATE2
问题是这些记录总是以status=3结束,这使得分区状态#3变得拥挤
如何实现均匀的分区分布?您的应用程序计
假设给定表已包含以下键值对:
“abc”=>{i:1,v:foo}
然后,两个客户端发出冲突的并发条件写入。客户1写道:
“abc”=>{i:2,v:bar1}如果i==1
客户2写道:
“abc”=>{i:2,v:bar2}如果i==1
那么,是否可以保证最多一个客户端的写入操作会成功?是的,这正是它们设计的用途。您可以在中看到一个示例。答案太短,甚至连评论都没有:是。我的意思是,这就是他们的全部观点。谢谢,我想100%肯定。答案可能很短,但从2018年开始欢呼。有时最简洁的答案是最好的。如果
如何在DynamoDB中创建一个策略,允许相应的IAM用户只修改表中文档的一个子集
例如,假设有一个属性已发布,
我希望这个IAM用户执行PutItem和UpdateItem
在发布了的文档上:false只能对哈希键值使用DynamoDB细粒度访问控制。您可以保存一个“草稿”预先挂起到哈希键值的项,并使用以下策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
我有一个具有以下属性的dynamo表:
id(编号-主键)
标题(字符串)
在(编号-长度)处创建
标签(StringSet-包含一组标签,如android、ios等)
我想能够查询的标签-让我所有的项目标记安卓。我怎样才能在DynamoDB中做到这一点?似乎只能在ScalarDataTypes(数字和字符串)上构建全局二级索引,而不能在集合中的项上构建全局二级索引
如果我所采用的方法是错误的,那么通过创建不同的表或更改属性的替代方法也可以。您需要为此查询创建一个单独的表。
如果您对基于标记
我正在建立一个处理订单的系统。每个订单将遵循一个工作流。因此,可以预订、接受、批准付款、取消订单等。
每次订单状态发生变化时,我都会将此变化发布到SNS。要知道状态顺序是否已更改,我需要向外部API发出请求,并与上次已知的状态进行比较。
问题是:存储最后一个已知订单状态的最佳位置是什么?
1.SQS队列。所以每次我从队列中读取消息时,使用外部API检查状态,删除消息并插入另一条具有新状态的消息。
2.使用数据库(如Dynamo DB)控制订单状态 我将使用数据库选项而不是SQS:
1) 选项SQ
DynamoDB中是否有用于更新一批项目的API?有一个API可以成批写入新项(BatchWriteItem),并使用UpdateItem更新单个项,但是否可以在一次调用中更新多个项 目前DynamoDB中没有批更新项API可用
BatchWriteItem无法更新项目。要更新项目,请使用UpdateItem操作。
BatchWriteItem操作在一个或多个表中放置或删除多个项
参考资料:我使用DynamoDBMapper.batchSave(Iterable我使用dynamoDB更新触发器,
我试图学习datomic,发现datomic的设置和配置过程具有很高的学习曲线
我遇到的一个奇怪的问题——我希望是由于一些愚蠢的错误——是当我尝试运行datomic sure transactior时,我得到一个属性文件的file not found错误
你必须相信我的话,文件是存在的。我甚至打开了该文件的所有权限,以防出现权限问题
我的属性文件如下所示(许可证已编辑等)——我正在尝试为dynamodb的本地实例提供设置。我还使用brew安装了dyanmodb local(brew安装dynam
有人知道是什么取代了AmazondynamodClient吗?
在文档中找不到任何内容
包-com.amazonaws.services.dynamodbv2
AmazonDynamoDBClient amazonDynamoDBClient = new AmazonDynamoDBClient();
根据,应该使用生成器类(例如,AmazonDynamoDBClientBuilder)来创建实例
使用生成器类的示例代码:-
我已经为DynamoDB local创建了客户端
Dynam
在DynamoDB中,我使用分区键和范围键配置了LSI(本地二级索引)
如何使用分区键值和范围键值查询DynamoDB表
在SQL中,我可以使用In操作符:
SELECT *
FROM genericTable
WHERE partionKey = "foo"
AND rangeKey IN ("bar1", "bar11", "bar5")
如何在DynamoDB中实现此功能
依照
查询可以使用KeyConditionExpression检索。。。几项
具有相同分区键值但不同排序
Edit:@conceptquest提醒说DynamoDB的主键是散列键,所以我下面描述的想法行不通;但我仍然想讨论如何在DynamoDB模式设计期间实现这一“按时间排序”功能
在这里,我发现AWS使用DynamoDB为其论坛提供服务,请参见。AWS论坛如何按时间顺序显示线程?
我有一个DynamoDB表推特项目,我的Web应用程序的登录页是按历史顺序显示推特项目(注:“推特”是我自己的Web应用程序的数据,而不是来自Twitter.com的推特——我在这里用推特来清楚地描述这个问题的情况)
显
我的表中有2个LSI,其中有一个主分区键和一个主排序键
组织ID-主分区密钥
ClientID-主排序键
性别-大规模集成电路
第节-大规模集成电路
我对查询具有一个LSI的表没有问题,但是如何在表模式中提到2个LSI
var params = {
TableName:"MyTable",
IndexNames: ['ClientID-Gender-index','ClientID-Section-index'],
KeyConditionExpression : '#Key1 = :
假设我有以下带有条目的DynamoDB表:
一列
a1 b1 c1//条目1
a1 b2 c2//条目2
A是键(分区键),B是排序键(唯一键),C是属性
我想确保DynamoDB流可以保证B的订单处理
如果在此订单中进行了更改-(注释C更新了3次)
{a1,b1,c1}=>{a1,b1,c2}=>{a1,b1,c3}
DynamoDB流能保证订购吗?
看起来可以保证按顺序处理同一密钥上的更新。在本例中,a1(键)上的任何更新的顺序都将被保留?是的,顺序被保留,因为在DynamoDB中,对项目的
我有一个EMR,打算在dynamo DB上做积垢操作,作为我减速器的一部分
注意:我没有使用Hive或Spark,也没有使用ApacheHadoop。有关于如何从我的EMR连接到Dynamo DB的文档吗?是开源库,包括Hadoop类,如DynamoDBInputFormat,DefaultDynamoDBRecordReader,用于从DynamoDB读取数据(并行扫描),并进行读取速率控制&
DynamoDBOutputFormatDefaultDynamoDBRecordWriter用于向
DynamoDB的类型支持38位十进制精度。这不够大,无法存储需要39位数字的128位整数。对于无符号128位整数,最大值为340282366920938463463374607431768211455;对于有符号128位整数,最大值为170141183460469231731687303715884105727。这些都是39位数字
如果我不能存储128位,那么在一个数字中可以存储多少位整数数据?类型为Number的DynamoDB属性可以存储126位整数(或127位无符号整数,需要特别注意)。
我正在以350次写入/秒的速度写入DynamoDB表。我已经在它上启用了流,并配置了多个使用者来读取每个碎片。每个消费者只能处理100条记录/秒,这意味着我需要至少4个消费者来处理流。问题是,当写入/秒增加时,DynamoDB不会创建多个碎片。想知道DynamoDB在什么时候开始创建多个碎片(写入数/秒的值)
我尝试过在每秒100到350次写入之间写入表
如何触发多个碎片,从文档中可以看出,没有办法发布API来触发dynamodb流上的碎片/重新碎片没有办法。分片是基于表分区自动处理的
作为替代
我需要一些关于如何在Dynamo DB中存储新闻记录的指导
{
"news": [{
"id": "nws_7KnqNr",
"title": "Dow Jones Futures: From Apple To Zscaler, This Is The New Stock Market Trend",
"publication_date": "2019-09-11T10:46:24.000Z",
"url": "https:
我试图理解特定环境下的DynamoDB分区行为。我想知道如果单个分区的读/写吞吐量超过3000个RCU或1000个WCU(假设我有非常受欢迎的项目被查询/写入),我的分区会发生什么情况。假设在这个分区上,只存在一个分区键(许多值持有不同的排序键)。我想知道当我的使用量超过3000/1000时,迪纳摩的行为是什么。DDB会自动将分区分成两个较小的分区吗?在哪里可以找到有关此特定情况的文档
谢谢
只要针对给定分区密钥的流量不超过3000个读取容量单位或1000个写入容量单位,DynamoDB就会使用
我有一个带有TTL列的DynamoDB表。
记录正确过期。我已将流设置为旧图像
我有一个朗姆达在听
但是,在返回的对象中,我只看到键/值对-匹配我的范围键和散列键
有没有办法让删除事件中的旧\u图像包含表中的所有值?它应该包含所有值,您能理解吗?如果不考虑环境,就很难看到确切的问题
我必须设计一个表来存储DynamoDB中的公告。每份公告的结构如下:
{
"announcementId": "(For the frontend to identify an announcement to the backend)",
"author": "(id of author)",
"displayStartDatetime": "",
"displayEndDatetime": "",
"title": "",
"descriptio
使用复合排序键,可以在可以在层次结构的任何级别查询的数据中定义层次结构(一对多)关系
例如,在列出地理位置的表中,排序键的结构可以如下所示:
[country]#[city]#[founded_date]#[population]
根据使用排序键来组织数据的方法,应该可以在任何一个聚合级别(从国家到人口,以及介于两者之间的所有级别)对位置列表进行有效的范围查询
我如何编写一个查询,例如获取城市名称以“new”开头的所有项目,这些项目是1923年3月14日之前创建的,人口超过10万?您引用的示例
因此,我想获取dynamodb表的最后一项/行,但找不到资源。我的主键是id,它有一系列递增的数字,比如1,2,3。。。分别为每行
这是我的职责
async function readMessage(){
const params = {
TableName: table,
};
return dynamo.getItem(params).promise();
}
我不确定应该在参数中添加什么。DynamoDB有两种主键:
分区键–一个简单的主键,由一个
我目前正在使用DynamoDB,扫描时出现问题。我可以通过使用ExclusiveStartKey按向前顺序获得分页结果。但是,无论我是向前设置ScanIndexForwardtrue还是false,我都会从扫描操作中按正向顺序获得结果。如何从DynamoDB中的扫描中以相反顺序获得结果 ScanIndexForward是通过正在查询的表或索引的范围键按降序获取项目的正确方法。从:
指定升序(true)或降序(false)的值
遍历索引。DynamoDB返回反映
请求的顺序由范围键确定。如果数据类
我有一个用户表和一个请求表。一个用户的多个请求。我想在用户表中有一个请求列表。但我不知道如何编写云形成调用来构建它。目前,我只有一组简单的属性:
resources:
Resources:
DynamoDbTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: Employee
AttributeDefinitions:
- AttributeNa
(我正在使用AWS PHP SDK)
假设我有一张桌子:
Table name: article
Primary partition key: article_id (Number)
以手动创建的项目为例:
{
"article_id": 10010,
"updated": "2018-02-22T20:15:19.28800Z",
"comments": [ "Nice article!", "Thank you!" ]
}
添加新注释:
我知道如何通过以下方式完全
我有一个表中的分区键列表
userId["123","456","235"]
我需要得到一个他们都共享的属性。比如“用户名”
一次将它们全部获取的最佳实践是什么
扫描是我唯一知道我知道所有分区键的选项吗
我知道分拣钥匙吗?是的,但只是开始。所以我
我想我不能用batchGetItem
只有在不知道分区键的情况下,扫描才合适。因为您知道要搜索的分区键,所以可以通过多个操作实现所需的行为
查询使用指定的分区键搜索所有文档;每个请求只能查询一个分区键,因此需要多个查询,但这仍然比单个扫描操作要高效得
我有一个名为products的表。它的模式是
字符串类型的CustomerNumber哈希键
字符串类型的ProductID范围键
我想查询类似于
SELECT * FROM products WHERE CustomerNumber IN ("cust123","cust234").
如何实现
很少观察到-
DynamoDBQueryExpression将只查询索引/哈希键,而不是像上面示例中那样查询哈希键列表
此外,DynamoDBQueryExpression不支持IN、OR运算符
此
我正在尝试从EKS中的工作节点写入DynamoDB。我目前正在附加一个IAM角色策略,该策略授予对DynamoDB的完全访问权。这是解决这个问题的正确方法吗?来自我的应用程序的请求当前挂起,我假设这与我的节点没有正确的权限有关
这是我在Terraform中的当前设置
resource "aws_iam_role" "worker-node" {
name = "worker-node"
assume_role_policy = <<POLICY
{
"Version":
1 2 3 4 5 6 ...
下一页 最后一页 共 36 页