我们试图让我们的头脑围绕一个设计问题,这在任何数据库中都不是很容易。我们有100000个随机项,(可能更多),(我们说的是一个真正的随机键,我们将使用UUID),我们希望一次分发一个。秩序并不重要。我们认为我们将创建一个包含项目的dynamo表,然后在分配项目时将其从该表中删除。我们可以进行有条件的删除,以确保我们尚未将项目送出。但是,当我们在第一个位置尝试查找一个项目时,如果我们进行扫描或限制为1的查询,它是否总是命中相同的第一条可用记录?我想知道后果是什么。迪纳摩将在UUID上进行切分。我们
我正在研究Cognito用户池、联邦身份和DynamoDB。为了实现细粒度的访问控制,我必须在DynamoDB表中使用Cognito标识Id,因为用户池中的任何内容都不能在IAM策略中引用。值得一提的是,${cognito identity.amazonaws.com:sub}指的是身份id,而不是我们在cognito用户池中看到的“sub”
问题是如何将DynamoDB中的项映射到用户联系人
例如,考虑一个场景,如果我的应用程序的用户有未决的付款,并且如果我必须与他联系付款。或者,如果一个用户
对于DynamoDB,我永远不知道另一边发生了什么。这让我想知道:一旦我发出DeleteItem请求,到底发生了什么
我希望一次性永久删除包含敏感信息的记录,理想情况下,这样它就不会保留在底层文件系统中。这是DynamoDB可以做的吗?考虑到DDB的分布式特性,我怀疑答案是否定的
事实上,报告说
使用此对账机制,永远不会执行“添加到购物车”操作
迷路的但是,删除的项目可能会重新出现
但我也怀疑,鉴于DDB遵守的法规清单,这并不重要
即使DDB确实“擦除”了磁盘的扇区,其中给定的记录存储在dele
我正在编写一个web应用程序,它每天的流量都在稳步增长。我想创建一个警报,可以检测我的读/写限制是否达到某个百分比(如80%),然后增加该限制。然后,我将在午夜再次降低它
我试过创建一个警报——“平均值”似乎有点没用,总是1.0。“Sum”更有用,所以我想我应该使用它。我还假设应该在度量名称处使用消耗的写/读容量
问题:
Sum似乎使用“Count”的绝对值作为其限制。如果我的DynamoDB设置为100次写入,并且我设置了80%的报警,它会检查我的写入是否超过0.8,而不是80%
我已经设置
当我在dynamoDB表上运行DeleteItemRequest时,我得到一个异常,它说“提供的键大小与模式的键大小不匹配”。
我所做的就是
DeleteItemRequest deleteRequest=newDeleteItemRequest().withTableName(dynamoDbTableName)。withKey(key)
client.deleteItem(deleteRequest)
我需要指定更多的内容吗?我缺少什么吗?这可能意味着传递给方法的键与表中主键的类型不匹配。例
我有一个简单的删除操作,如下所示:
{
"TableName":"demo_events",
"Key":{
"category":{"S":"Demo"},
"DynamoID":{"S":"164933868Slt1396454204"}
},
"Expected":{
"category":{
"Exists":true,
"Value"{"S":"Demo"}
}
},
"ReturnConsumedCapacit
我想编写一个脚本,检查本地dynamodb实例是否正在运行,如果正在运行,则什么也不做。如果不是,请从以下内容开始:
java -Djava.library.path=. -jar DynamoDBLocal.jar
在node.js中工作的解决方案是最好的。我正在为节点使用AWS SDK DynamoDB是NoSQL数据库。它不是需要服务器启动/停止的数据库服务器。您可以检查数据库中的表或特定表的状态。e、 g。创建/更新/删除/激活。只有当表状态为“活动”时,才可以使用表。自从开始侦听本地
我已经编写了一个程序,将项目写入DynamoDB表。现在我想使用PySpark阅读DynamoDB表中的所有项目。Spark中是否有任何库可用于执行此操作?您可以使用available作为through的一部分,并使用类似为PySpark编写的并行S3文件处理应用程序的方案。基本上,不必事先读取所有键,只需创建一个段号列表,并在Spark的map_func函数中硬编码扫描的最大段数。另一个选项是将DynamoDB行导出到S3。您可以在S3上使用触发器启动Lambda,甚至手动处理生成的文件。对我
情况:
一个web服务,带有从DynamoDB读取记录的API。它使用最终一致的读取(GetItemdefault模式)
集成测试包括两个步骤:
在DynamoDB中创建测试数据
调用服务以验证它是否返回预期结果
我担心,由于数据的最终一致性,这个测试注定是脆弱的
如果我尝试在写入数据后立即使用GetItem和consistenread=true验证数据,则只能保证数据已写入大多数数据库副本,而不是全部,因此测试中的服务仍有机会在下一步从未更新的副本读取
是否有办法确保数据在继续操作之前已写
为了简单起见,让我们假设我有一个如下数组arr[time]=[price,asset](同一资产的价格可能每秒重复12次)
我希望能够以不同的比例查看数据,例如5年,每1小时1个样本,2.5年,每0.5小时1个样本,以及能够访问点之间的特定刻度
在DynamoDB中使用多个表还是在Redshift中使用单个数据库更经济/方便?我应该使用哪些架构/表进行红移
编辑:我的实体看起来像{'time':1505128343,'price':3.141708,'asset':1}在时间段(如其中时间>=1
我正在尝试向DynamoDB集合添加一些项目。这在使用原始JavaScript SDK时效果良好,但在使用createSet()函数的新DocumentClient中效果不佳。这是我的密码:
'use strict';
let docClient = new AWS.DynamoDB.DocumentClient({
region: 'us-east-2',
accessKeyId: 'AKIAJWIR35J4YZF4RQVQ',
我在读它,它解释了从散列函数获得的键如何创建(循环)范围。然后,逻辑节点负责该范围内的连续段
Dynamo的分区方案依赖于对
跨多个存储主机分配负载。一致
散列[10],散列函数的输出范围被视为
固定圆形空间或“环”(即最大散列值)
大约为最小哈希值)。系统中的每个节点都是
在此空间内指定了一个表示其
环上的“位置”。每个由键标识的数据项都被分配
通过散列数据项的键以产生其在
环,然后顺时针走环以找到第一个节点
大于项目位置的位置
但是,在均匀载荷分布下,详细介绍了一些策略:
策略1:每个节点T
DynamoDb表格结构:
Primary key: userId, Sort key: timestamp
我创建了这个查询:
aws dynamodb query \
--table-name QAClusteredData \
--key-condition-expression 'userId= :user_id AND timestamp BETWEEN :t1 AND :t2' \
--expression-attribute-values '{
我想将DynamoDB用于一个大规模的服务,它将在一秒钟内被许多用户访问。我想知道从DynamoDb读取的数据有多正确,它提供了“最终一致”的读取
这个链接说
“数据所有副本的一致性通常在一秒钟内达到”。我还没有尝试过为这种高度访问的数据库测试sqldbs,但DynamoDB提供的服务似乎并不比这更好
强一致性读取的成本很高,可能需要更多的时间,因此我更喜欢正常读取。如有必要,我必须检查读数是否一致
我有点害怕“最终”这个词。有没有人见过这样一种场景:DynamoDB正在成功使用,或者相反,即发
我目前使用的应用程序要求我在20到30分钟内多次增加DynamoDB中某个项目的属性。我一直在做一些关于DynamoDBs的补充阅读
dynamo中的原子计数器似乎是我需要的一个合乎逻辑的选择,但我确实担心数据的一致性,特别是在像dynamo这样的分布式数据库中,并且会影响数据的准确性。我希望API在高峰期会受到重创,但我希望避免与条件更新相关的性能问题。我想我想知道使用DynamoDB的原子计数器有多可靠,以及如何使用dynamo正确地实现它们。也欢迎提出其他建议 是的,这些是您想要使用的功能
我们能否仅使用全局二级索引更新dynamodb项
$response = $dynamodbClient->updateItem(array(
'TableName' => 'feed',
'Key' => array(
'feed_guid' => array('S' => 'ac1e9683832ad2923f0bd84b91f34381'),
各位,
鉴于我们必须存储以下购物车数据:
userID1 ['itemID1','itemID2','itemID3']
userID2 ['itemID3','itemID2','itemID7']
userID3 ['itemID3','itemID2','itemID1']
我们需要运行以下查询:
给我一个特定用户的所有项目(这是一个列表)(简单)
给我所有拥有itemID3的用户(正是我的问题)
您将如何在DynamoDB中对此
我使用DynamoDB将我的设备事件(JSON格式)存储到表中以供进一步分析,并使用扫描API在UI上显示结果集,这需要
定义记录的限制偏移量,例如每页10条记录,意味着
结果集应分页(例如,第1页有0-10条记录,第2页有0-10条记录
有11-20条记录等等),我得到了一个像scanRequest这样的API。有limit(10)但它有不同的限制偏移的含义,DynamoDB API是否支持限制偏移
我还需要根据用户输入字段对结果集进行排序,如日期排序、序列号排序等,但仍然没有通过API获得
简单的事情。在将数据插入表A时,我有一个HashKey id和列ex\u id的附加hash索引,这是表B中的外键
在表a中插入新数据时,每当插入数据时,如果列ex_id中的值在表B中没有相应的条目,我想创建一个异常
我认为ConditionExpression是一种方法,但无法使其工作-可能遗漏了一些明显的东西。试图使用contains()
有什么想法吗?据我所知,这在DynamoDB端是不可能的,因为表之间没有关系
您可以做的是,您可以在应用程序级别设置一个条件,该条件在表a中插入值之前自行
我的表中有一个Document(JSON)类型的属性,其中的值是计数:
{ "item1" : "5", "item2" : "7" }
DynamoDB文档API是否有一种方法可以原子地增加映射的值?我的应用程序将有多个主机递增这些值,因此简单地使用put将不起作用,因为它们将相互覆盖
我知道对于整数属性,我们可以在更新表达式中使用set#count=#count+:countVal进行原子计数。处理文档是否有类似的功能
另外,我注意到,DynamoDBMapper无法进行原子计数器更新,因
我正在编写一个API,它有一个带有布尔状态字段的数据模型
90%的API调用将需要过滤该状态=“活动”
背景:
目前,我将其作为DyanmoDB布尔字段,并在其上使用过滤表达式,但我反对创建一个带有相关标识符的单独表,该标识符充当查询的哈希键,并保存对应于“活动”状态的相应项信息,因为只有一个项具有“活动”状态“特定哈希键在项中的状态
现在我的问题是:
数据完整性在这里是一个大问题,因为我将更新两个
表取决于请求
在使用Dynamo DB时,使用单独的表是一种良好的做法吗
案例或我使用了错误的
我将数据作为映射属性类型存储在DynamoDB中,并实现一个restful补丁端点来修改该数据(rfc6902)
在我的验证例程中,在将补丁转换为更新表达式并将其发送到DynamoDB之前,我目前无法确保映射存在
这意味着,如果尚未在DynamoDB中设置映射,则更新将失败(ValidationException,因为文档路径不存在)
我的问题:依赖DynamoDB以这种方式拒绝更新是合适的/可以接受的/可以的,还是应该在我自己的验证例程中获得项目的副本并拒绝补丁
我一直想不出一个理由不让Dyn
我正在编写一个应用程序,人们可以使用它来请求有关特定事件的信息。因为多个用户可以请求关于同一事件的信息,所以我的请求表的键是username+event(其中这两个都是字符串)
但是,在提供这些信息的Java代码中,我不想下载我不需要的数据,因此,理想情况下,我会查询事件(因为我不知道进行查询的所有人的用户名)
我认为,如果我给请求表一个二级索引,称为“event”,用户也填写了这个索引(因此散列键(称为“key”)是username+event,而event字段只是事件字符串),我就能够查询二
有没有办法将pyspark(使用python的SparksAPI)连接到dynamodb。对于mongodb和cassandra,有与pyspark接口的连接器。如果dynamo可以充当Hadoop的输入/输出,这似乎是可能的
任何线索都将不胜感激 你看过波托吗?看过。Boto连接到dynamo,但不与pyspark接口。你说的“不接口”是什么意思。。。你试过什么?您应该能够在中运行任何Python代码Spark@maxymooOP的意思是不能将boto对象传递给Spark,操作只能从导入的库
我试图对dynamoDB表执行PutItem操作,使用itemID作为主分区键,使用createdAt作为主排序键,条件如下:
{
"TableName": "ShoppingBasket",
"Item": {
"itemID": {
"N": "7456473"
},
"createdAt": {
"S": "2001-02-03T04:05:06Z"
}
}
记录1:
[{
"business_id": 2,
"user_id" = 5,
"forms": {
"f522": {
"id": "f522",
"is_deleted": 0,
"title": "Form 1"
},
"f8b6": {
"id": "f8b6",
"is_deleted": 0
如果我创建了多个Alexa技能,是否有一个在所有技能中都保持不变的用户ID?具体来说,如果用户在技能1中做了一个动作,我想知道技能2和技能3的动作。。。基本上允许技能共享同一个DynamoDB表
理想情况下,我不要求用户进行任何形式的登录,但根据与他们的亚马逊帐户相关的唯一标识符,它会知道这是同一个用户。否。大约一年前,亚马逊进行了特定的更改,以阻止您这样做。您也无法识别卸载您的技能然后重新安装的用户。您总是会得到一个新的随机用户id
手机开发也发生了同样的事情:谷歌和苹果正在阻止任何可以让你识
如何使用AWS SDK for C更新项目
假设当ItemName等于eqq时,我想将所选值更新为TRUE
我写了这段代码但没有成功:
request = {
ExpressionAttributeNames = new Dictionary<string, string>()
{
{"#I", "Items"},
{"#lN", item.ItemName}
},
ExpressionAttributeValues =
如果我用这些属性定义了一个类
[DynamoDBTable("UserPictures")]
public class UserInfo
{
public UserInfo()
{
if (PictureAlbum == null)
PictureAlbum = new Dictionary<string, PictureInfo>();
}
[DynamoDBHashKey]
public strin
使用AWS SDK 2.7.13。代码在Chrome、IE和Firefox版本上运行良好。在Edge 15上,我发现CRC32完整性检查失败
有人遇到类似问题,知道原因和解决方法吗
从中可以看出,我可以用下面的代码关闭CRC错误检查,但我想找出原因并进行修复
AWS.config(:dynamo_db_crc32 => false)
我们认为这是由于在gzip之前或之后计算CRC32的方式所致,请参见:
我使用的修复程序包括用于浏览器检测的bowser
<script src=
我想知道在更新具有ListAttribute的现有项时,DynamoDB的写容量是如何计算的
模型的一般概念如下所示:
Model A
id = UUID
name = Str
...other fields
Model A Map Attribute
Model B
id = UUID
modelA_list = ListAttr[Model A Map Attribute]
据我所知,唯一相关的计算信息是关于新写入的信息,其中容量是通过四舍五入到下一KB来计算的。例如,如果我在所有字段
我在dynamodb有一张桌子,看起来像这样
{"category": "geographie",
"words": [
{
"hilfestellung": [
"Hauptstadt von Belgien",
"Die Schokolade ist berühmt"
],
"user": [
"useridxyz"
],
"word": "brüssel"
},
我对AmazonDAX的空结果缓存行为有一个疑问。如果我尝试使用Dynamodb从DAX中GetItem,而item结果为null。DAX是否会缓存空结果以加速获取空项?是。如果在DynamoDB中找不到项,DAX将缓存空标记。是,DAX将缓存负结果:
DAX在项目缓存和
查询缓存。DAX找不到时,会出现负缓存项
底层DynamoDB表中的请求项。而不是生成
如果出现错误,DAX缓存空结果并将该结果返回给
用户
负缓存项将保留在DAX项缓存中,直到其
项目TTL已过期,LRU被调用,或直到项目被
我对DynamoDB还很陌生,我找不到一个简单场景的答案
假设我正在使用DynamoDB聚合用户购买量。因此,我存储每个用户每天花费的钱和上次购买时间。问题是我收到的购买信息不能保证在购买时间内订购。因此,我希望始终将newOrderPrice添加到MoneyExplored中,并且仅当它大于当前的lastPurchaseTime时才更新lastPurchaseTime
我就是这样。寻找是这样的:
table.update_item(
Key={
'user_id': u
我需要向启用自动缩放功能的DynamoDB写信,我的目标是:
根据不断变化的容量(通过自动缩放)最佳利用调配的容量,而无需或仅需少量“限制写入”
我们目前正在使用batch_writer(),问题是没有像BatchWriteItem那样的响应,因此您可以根据响应调整容量。但是BatchWriteItem有它自己的问题——每个请求有25个项目的限制,即使我有很多线程,它可能不够快,不能满足我的需要,我最多需要10000个WCU/秒
你有什么建议?我现在也有类似的问题。你找到解决办法了吗?对不起
删除表中多行的最佳方法是什么
从我看来,要进行删除,我需要传递主键。
这意味着我需要一个一个地删除项目
是否可以通过单个请求处理多个项目的删除?(我不是指批量请求。)
你是如何处理被遗忘的GDPR权利的
为什么使用DynamoDB的批删除不能满足您的需要?我没有编写批删除也不能。我只是在寻找是否还有别的办法。例如,我可以通过一次调用删除数千个或多个项目(而不是批量限制的25个)。If是调用一个函数1000次或调用另一个函数的重大更改。
标签: Amazon Dynamodb
serverlessaws-serverlessdynamodb-queriesamazon-dynamodb-index
我有以下一对多关系:
Account 1--* User
科目包含全局科目级别信息,该信息是可变的
用户包含用户级别的信息,这些信息也是可变的
当用户登录时,他们需要帐户和用户信息。(此时我只知道UserId)
理想情况下,我希望设计模式,以便只需要一个查询。但是,如果不将帐户复制到每个用户中,并因此需要一些后台Lambda作业来将更改传播到所有用户对象中的帐户属性,我无法确定如何执行此操作——就记录而言,这似乎需要更多的资源使用(以及要维护的代码)而不是简单地规范化数据并在每个登录上有两个查
我在dynamo db中创建了一个名为“音乐”的表格,其中包含Taylor Swift项目。我想通过命令行获取此项,但它反复出现此错误
~%aws dynamodb get项--表名Music--键“{”Artist:{”S:“Taylor Swift”}”
调用GetItem操作时发生错误(ValidationException):提供的键元素与架构不匹配
我三次检查属性类型是否正确。还有什么问题吗?对于主键,必须提供所有属性。例如,使用一个简单的
主键,您只需要为分区键提供一个值。对于复合材
我有一个表,因为我有一个二级索引。我的二级索引使用DynamoDB编组
如何查询此GSI上的表?addRangeKeyCondition仅支持withS和withN方法。如何使用我的对象查询它?
如果范围键是字符串,我就是这样查询的:
DynamoDBQueryExpression<RequestPerOfferItem> queryExpr = new DynamoDBQueryExpression<>();
queryExpr.withHashKeyValues(it
我正在尝试亚马逊关于dynamoDB的教程:
在我处理这件事的过程中,我不知道如何做一些简单的事情,比如:
打印我创建的表的名称,或者找出特定表t中的主键
我假设可能有一种非常简单的方法可以做到这一点,我只是没有看到它。DynamoDBLocal本质上是一个在您自己的计算机上运行的DynamoDB实例,它有自己的端点。与之交互的方式与实际的DynamoDB服务相同
最简单的方法是选择一个API并使用本地端点发出请求。有关如何设置端点的一些基本示例
在您的情况下,听起来您希望使用一些不同的API操
我正在尝试使用全局二级索引更新项目。下面列出了我的表定义。我是迪纳摩的新手
$response = $this->client->createTable([
'TableName' => 'rawproducts_products',
'AttributeDefinitions' => [
[
'AttributeName' => 'product_code',
我使用一个条件表达式调用PutItem,该表达式如下所示:
属性_存在(id)且对象_版本=:x
换句话说,我只想在以下条件为真时更新项目:
对象需要存在
我的更新必须是对象的最新版本
现在,如果检查失败,我不知道哪个条件是错误的。有没有办法获得关于哪些条件是错误的信息?可能不会,但谁知道呢…DynamoDB中的条件表达式允许对DynamoDB对象执行原子写入操作,这对于单个对象来说是非常一致的,即使在分布式系统中也要感谢paxos
一种标准方法是首先简单地读取对象,然后在客户机应用程序代码中执
我是迪纳摩的新手。我有两张桌子:
国家
城市
我希望通过country\u id主键和外键连接这两个表。那么我可以在DynamoDB中这样做吗?Amazon DynamoDB是一个NoSQL数据库。这意味着连接和外键等传统关系数据库概念不可用
您的应用程序将负责“连接”表。也就是说,您需要从两个表中读取值,并在应用程序中确定它们之间的关系。DynamoDB无法为您执行此操作
或者,您可以使用一个系统,比如提供Hadoop的AmazonEMR。您可以使用Hadoop和Hive通过使用HiveQ
是否可以向DynamoDBUpdateItem传递一个选项,以便对不存在的项调用UpdateItem失败
当前UpdateItem如果分区键不存在,则愉快地创建一个新项。我希望在这种特殊情况下出现错误
当然,我可以在updateItem之前执行get,并且只在存在时执行updateItem,但这样做的性能更低/更麻烦 您可以使用条件表达式执行条件更新
条件更新API非常强大,但在您的情况下,您需要构建一个条件表达式,该表达式使用项的分区键(如果表使用分区键,则使用范围键)上的条件表达式来检查要更
有没有办法在dynamoDb中为batchWriteItem设置阈值限制:
如果TableWriteItems已达到25个项目的限制,请插入数据(这可以通过检查TableWriteItems的大小来完成,但如果我们在很长一段时间内从未从后端收到25个项目,该怎么办)
我在这里看到的是:->如果TableWriteItems已达到以下三个条件之一:timeLimit、itemSizeLimit或dataSizeLimit,请在dynamoDb中插入一批
TableWriteItems testTa
我试图将下面的类实例保存到dynamdb中,但是
DynamoDBMappingException:不支持;需要@DynamoDBTyped或@DynamoDBTypeConverted异常
@DynamoDBTable(tableName = "FulfillmentOrders")
public class FulfillmentOrder {
@DynamoDBHashKey
private String orderId;
@DynamoDBAttribute
我有一个DynamoDB表来存储会话中的活动
我试图从表中查找不同的会话,但在AWS文档中没有找到任何关于如何检索不同会话ID的内容 DynamoDB没有明显的特征。您需要设计表,以便查询返回所有不同的会话ID,然后自己计算它们
这是DynamoDB查询中可用的比较和函数列表:感谢您的快速响应。是否有任何官方文件表明DynamoDB没有明显的功能?是的,上面的链接列出了DynamoDB中所有有效的查询操作和函数。如果您来自SQL背景,您将感到失望
我正在将我的数据库从sql数据库移动到Dynamodb。我目前有一个包含以下值的表:
租户ID(分区密钥)
资源ID(RangeKey)
类型
角色
名字
我现在有以下疑问:
获取属于类型为t、角色为r且名称包含n的租户ten的所有资源。其中,类型角色名称可能为空值,因此在这种情况下,这些值不用作筛选器
使用过滤器可以在dynamodb中进行此查询,但是阅读下面的文章我意识到这可能是一个昂贵的查询,因为dynamodb正在检索这些数据,然后在服务器端进行过滤。该页面建议创建具有以下值的G
我刚刚接触ApacheFlink,正在构建一个简单的应用程序,在这个应用程序中,我从一个动觉流中读取事件,比如
TestEvent{
String id,
DateTime created_at,
Long amount
}
对上面由id键入的流上的字段金额执行聚合求和。该转换相当于SQL select sumamount from testevents group by id,其中testevents是迄今为止接收到的所有事件。
聚合结果存储在flink状态,我希望通过API公开结果
我正在使用AWS DynamoDB,并使用Math.random()生成一个6位数字,用于保存到DB
这个数字应该是唯一的,这意味着我必须先扫描DB中的所有数据,然后才能放入
这是我的代码,用于为循环生成唯一的6位数字
异步函数getUniqueKey(){
让key='';
const arr=新数组(100).fill(0).map((el,index)=>index+1);
用于(arr的常数i){
key=(Math.floor(Math.random()*1000000)+1.toSt
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 36 页