Amazon DynamoDB中定义的这些常量是什么?
有人可以解释一下这些常数的必要性吗? 为什么这些放在关联数组的键中?
在将项目放在表格中时,我看到一个奇怪的符号,如
'Name' => array( AmazonDynamoDB::TYPE_STRING => 'Amazon S3')
PHP SDK指南说明了4种常量。
$dynamodb->batch($queue)->put_item(array(
'TableName' => 'Forum',
'Item' => array(
'Name' => array( AmazonDynamoDB::TYPE_STRING => 'Amazon S3'), // Hash Key
'Category' => array( AmazonDynamoDB::TYPE_STRING => 'Amazon Web Services'),
// Range Key
'Threads' => array( AmazonDynamoDB::TYPE_NUMBER => '0')
)
));
答案 0 :(得分:1)
这些常量反映了四个可用的Amazon DynamoDB Data Types:
字符串 - 字符串是带有UTF8二进制编码的Unicode。将字符串大小分配给属性时,字符串大小没有限制 当属性是主键的一部分时。 [...]
数字 - 数字为正或负精确值小数和整数。一个数字后最多可以有38位精度 小数点,可以在10 ^ -128到10 ^ + 126之间。该 Amazon DynamoDB中的表示具有可变长度。 [...]
字符串和数字集 - Amazon DynamoDB还支持数字集和字符串集。 [...]请注意,因为它是一个 set,集合中的值必须是唯一的。字符串集和数字集 没有订购;集合中返回的值的顺序不是 保留。
您需要在各种API调用中指定或处理这些数据类型,例如:对于CreateTable中的 KeySchema 或PutItem中的项,如您提供的示例所示。
答案 1 :(得分:0)
最新版本的AWS PHP SDK添加了便捷方法,可帮助您更轻松地格式化请求。请参阅docs for the attributes() method。例如:
$dynamodb->put_item(array(
'TableName' => 'my-table',
'Item' => $dynamodb->attributes(array(
'id' => 1,
'key1' => 'value1',
'key2' => 'value2',
))
));
这种方式似乎更容易使用。