如何计算Dynamodb项目大小?获得validationerror 400KB Boto

时间:2015-11-17 23:20:09

标签: python-2.7 amazon-web-services amazon-dynamodb boto

  

ValidationException:ValidationException:400 Bad Request   {u'消息':您的商品尺寸已超过允许的最大尺寸',您' __类型&#39 ;: u' com.amazon.coral.validate#ValidationException&#39 ;}

我拥有的项目对象,大小为92004字节

UIControl *cus = [[UIControl alloc] initWithFrame:CGRectMake(0, 0, 22, 22)];
// uncomment the following line to mess everything
//cus.translatesAutoresizingMaskIntoConstraints = NO;
cus.backgroundColor = [UIColor redColor];
UILabel *label = [UILabel new];
label.translatesAutoresizingMaskIntoConstraints = NO;
label.text = @"Q";
[label sizeToFit];
label.font = [UIFont systemFontOfSize:18];
[cus addSubview:label];
NSLayoutConstraint *centerX1 = [NSLayoutConstraint constraintWithItem:cus
                                                            attribute:NSLayoutAttributeCenterX
                                                            relatedBy:NSLayoutRelationEqual
                                                               toItem:label
                                                            attribute:NSLayoutAttributeCenterX
                                                           multiplier:1
                                                             constant:0];
NSLayoutConstraint *centerY1 = [NSLayoutConstraint constraintWithItem:cus
                                                            attribute:NSLayoutAttributeCenterY
                                                            relatedBy:NSLayoutRelationEqual
                                                               toItem:label
                                                            attribute:NSLayoutAttributeCenterY
                                                           multiplier:1
                                                             constant:0];
[cus addConstraints:@[centerX1, centerY1]];

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:cus];
controller.navigationItem.rightBarButtonItem = barButton;

我得到的尺寸>>> iii <boto.dynamodb2.items.Item object at 0x7f7922c97190> >>> iiip = iii.prepare_full() # it is now in dynamodb format e.g. "Item":{"time":{"N":"300"}, "user":{"S":"self"}} >>> len(json.dumps(iiip)) 92004 >>> 小于400KB,保存项目时为什么会看到上述错误?

任何指针?

编辑:

我玩过不同大小的数据,

92004

换句话说,cloudtrail数据的大小必须小于 68482 字节。我想知道为什么他们声称它 400KB 。显然,我错过了一些东西。

2 个答案:

答案 0 :(得分:10)

回答我自己的问题,因为它可能会帮助有同样问题的人。 我联系了aws技术支持,以下是解释:

我的dynamodb表上有5个索引,因为数据是为每个索引复制的; total data = 68481 * (5 + 1) = 410886接近 400KB

我觉得Dynamodb文档中缺少这个,而且亚马逊补充说它很好。

因此,总而言之,最终保存在dynamodb表中的总数据(项目大小)是=实际数据*(索引数+ 1)。

答案 1 :(得分:1)

如果没有问题,您可以分享您的输入数据吗?您是否尝试使用平面文件作为输入插入批量数据?看起来dynamoDB无法解释新行或将所有记录视为单个记录!! 我有一个类似的错误,但对于哈希键字段。我正在尝试使用配置单元脚本加载批量数据。我意识到属性应该是制表符分隔的,并且通过修改输入格式,错误是为我修复的!!

尝试一次插入一条记录。如果您没有收到上述错误,那么它将与数据的格式有关!!