dynamodb的最大项目长度(64k)的实用解决scheme和no-sql缺乏表连接
首先,我认为可能非常相关的一些背景情况:
我正在certificatedynanodb作为一个即将到来的应用程序的可行的解决scheme。 这是一个学习实验,熟悉dynamodb产品。 我的平台是amazon EC2(Linux),node.js和dynode库。
在no-sql的上下文中考虑一对多关系(例如标签,关键字,类别等)时,我的问题就出现了,无法连接表。 起初,它似乎是一个简单的事情:把它们存储为一个属性列表。 但是后来我读到了64KB的限制。
所以我的问题:
DynamoDB中的一个项目(包括属性)(即包含其所有列的db行)不能超过总计64KB的二进制大小。 那么如何检查数据以确保它不会违反这个长度呢?
显然数字很简单,但“使用UTF8二进制编码的Unicode”string将是一个挑战。
这个问题的第二部分对于非sql的忍者来说可能是显而易见的:我怎样避免碰到这个限制,同时减轻不能连接表的负担? 一个冗长的答案可能超出问答格式的范围,但如果有人有意见或可以提供替代scheme,我应该探索解决64K长度,我将不胜感激。
最好的,并提前感谢任何和所有的build议。
我同意@bcoates的评论。 这确实取决于你的用例。
我有几个实现(在SimpleDB中,但同样的想法),使用EntityRelationship表build模连接,与相关的数据位复制到这些表。 使用DynamoDB,您可以很好地使用范围键实现标签,类别等…
此外,我已经使用属性跨越来克服SimpleDB中的属性大小限制(DynamoDB,同样可以完成)。 提取多个属性后,重新组合整个logging。 (范围键表也将有所帮助)
Simol(用于C#)对SimpleDB(http://simol.codeplex.com)有很好的实现,并且我知道项目所有者正在为DynamoDB开发一个类似的实现 – 您可以从该项目中获得一些洞察。
如果有人今天晚些时候遇到这种情况,最大的项目大小现在是400kb,而不是64kb
- 如何从nodejs客户端重新格式化DynamoDB响应
- 将ConditionalOperator设置为OR的DynamoDB扫描仍在执行AND
- 在sorting时stream式传输大数据
- Dynamoose / DynamoDB更新将空数组保存为空
- AWS – 在DynamoDB表中放置一个GeoPoing并对其进行查询 – node.js
- DynamoDB,使用AWS Lambda(NodeJS运行时)映射值的dynamicprimefaces更新
- 带有DynamoDB属性值的Nodejs中的Lambda可能不包含空string
- 如何检查DynamoDB状态,同时chaning WriteUnits吞吐量并等待它完成?
- parsingDynamoDB请求