标签: amazon-dynamodb

DynamoDB的UUID?

在向表中添加新项时,是否可以让DynamoDB自动生成唯一ID?

我注意到Java API提到@DynamoDBAutoGeneratedKey所以我假设有一种方法可以使用PHP.

如果是这样,应用程序代码是否会生成这些ID,还是在DynamoDB端完成?

uuid amazon-web-services amazon-dynamodb

34
推荐指数
2
解决办法
3万
查看次数

存储后端如何影响Datomic?

我该如何选择Datomic的后端存储服务?

选择DynamoDB而不是Postgres是优先考虑的问题,还是每个选项都有不同的权衡?如果是这样,他们是什么?

postgresql clojure amazon-dynamodb datomic

34
推荐指数
1
解决办法
2046
查看次数

DynamoDB在地图或列表类型上创建索引

我正在尝试为DynamoDB中的地图对象内的属性添加索引,但似乎找不到这样做的方法.这是支持的东西还是索引真的只允许标量值?围绕这个的文档似乎非常稀少.我希望索引功能类似于MongoDB,但到目前为止,我使用点语法引用属性索引的方法还没有成功.我们非常感谢您提供的任何帮助或其他信息.

amazon-web-services amazon-dynamodb

34
推荐指数
1
解决办法
1万
查看次数

BatchGetItem和DynamoDB中的Query之间有什么区别?

我一直在浏览AWS DynamoDB文档,并且在我的生命中,无法弄清楚batchGetItem()和Query()之间的核心区别是什么.两者都根据表和索引中的主键检索项目.唯一的区别在于检索到的项目的大小,但这似乎不是突破性的差异.两者都支持条件更新.

在什么情况下我应该使用batchGetItem而不是Query,反之亦然?

amazon-web-services amazon-dynamodb aws-sdk

34
推荐指数
4
解决办法
2万
查看次数

如何在AWS DynamoDB中连接表?

我知道整个设计应该基于自然聚合(文档),但是我正在考虑为本地化(lang,key,text)实现一个单独的表,然后在其他表中使用键.但是,我无法找到任何关于这样做的例子.

任何指针可能会有所帮助!

amazon amazon-web-services amazon-dynamodb

34
推荐指数
4
解决办法
3万
查看次数

如果项目不存在,如何防止在UpdateItem中创建新项目

我正在运行用Node.js编写的AWS Lambda服务,该服务与DynamoDB数据库交互.我的一种方法在DynamoDB上执行更新(AWS.DynamoDB.DocumentClient().update)以更新特定项目.但问题是,当我尝试更新项目并且该项目不存在时,更新方法会将此新项目添加到我的表格中.此行为也是文档中描述的默认行为.

我不希望我的方法创建一个新项目,如果它尚不存在.我希望这只是在记录存在时才更新.如果它不存在,它必须什么都不做.我该如何实现这一目标?我希望我能够使用ConditionalExpression来实现这一目标,但我在这方面所做的尝试并没有成功.

下面给出了我发送给更新功能的当前参数的示例.在此示例中,我想更新具有userId 123的用户,并且我想为此用户将isActive字段设置为"false"(但我只想在用户123实际存在的情况下执行此操作!)

const params = {
    TableName: 'users',
    Key: {
        userId: '123',
    },
    ExpressionAttributeValues: {
        ':isActive': 'false'
    },
    UpdateExpression: 'SET isActive = :isActive',
    ReturnValues: 'ALL_NEW',
};
Run Code Online (Sandbox Code Playgroud)

amazon-dynamodb

34
推荐指数
2
解决办法
1万
查看次数

如何通过Python访问Amazon DynamoDB?

我目前正在使用hbase和我的Python应用程序,并想尝试使用Amazon DynamoDB.有没有办法使用Python来读取,写入和查询数据?

python database amazon-web-services nosql amazon-dynamodb

33
推荐指数
3
解决办法
2万
查看次数

使用Boto3将Localhost端点连接到DynamoDB Local

尽管亚马逊提供了有关如何使用Java,PHP和.Net 连接到本地dynamoDB的文档,但没有描述如何使用Python连接到localhost:8000.Web上的现有文档指向在boto.dynamodb2.layer1中使用DynamoDBConnection方法,但这会在使用boto3协议管理dynamoDB的实时环境和测试环境之间创建不兼容性.

在boto3中,您可以使用以下构造函数和设置到环境中的变量向dynamo发出请求:

client = boto3.client('dynamodb')
table = client.list_tables()
Run Code Online (Sandbox Code Playgroud)

而boto.dynamodb2.layer1包需要您构造以下内容:

client = DynamoDBConnection(
    host='localhost',
    port=8000,
    aws_access_key_id='anything',
    aws_secret_access_key='anything',
    is_secure=False)
table = client.list_tables()
Run Code Online (Sandbox Code Playgroud)

尽管可以创建基于本地环境确定正确构造函数的逻辑,但我对构建一组将每个构造函数视为相同的方法持谨慎态度.相反,我更喜欢使用boto3来处理所有事情,并且能够在环境变量中设置dynamoDB的端点.不幸的是,该选项似乎目前无法使用.

有没有办法使用boto3来定义dynamoDB本地端点(就像其他语言一样)?或亚马逊计划支持此功能的任何机会?

python amazon-dynamodb dynamo-local

33
推荐指数
4
解决办法
2万
查看次数

Amazon DynamoDB InvalidSignatureException

从这段代码我得到下面的错误

require "vendor/autoload.php";
use Aws\Common\Aws;
use Aws\DynamoDb\DynamoDbClient;
use Aws\DynamoDb\Enum\ComparisonOperator;
use Aws\DynamoDb\Enum\KeyType;
use Aws\DynamoDb\Enum\Type;

$aws = Aws::factory(array(
'key'    => '[clipped]',
'secret' => '[clipped]',
'region' => Region::US_WEST_1
));

$client = $aws->get("dynamodb");
$tableName = "ExampleTable";

$result = $client->createTable(array(
    "TableName" => $tableName,
    "AttributeDefinitions" => array(
        array(
           "AttributeName" => "Id",
           "AttributeType" => Type::NUMBER
        )
     ),
     "KeySchema" => array(
        array(
           "AttributeName" => "Id",
           "KeyType" => KeyType::HASH
        )
    ),
    "ProvisionedThroughput" => array(
        "ReadCapacityUnits"    => 5,
        "WriteCapacityUnits" => 6
    )
));

print_r($result->getPath('TableDescription'));
Run Code Online (Sandbox Code Playgroud)

尝试将表添加到AWS的DynamoDB时,我收到以下错误.

PHP Fatal error:  Uncaught Aws\\DynamoDb\\Exception\\DynamoDbException: …
Run Code Online (Sandbox Code Playgroud)

php amazon-web-services amazon-dynamodb

32
推荐指数
1
解决办法
9414
查看次数

等待与异步方法中的Task.Result

执行以下操作之间有什么区别:

async Task<T> method(){
    var r = await dynamodb.GetItemAsync(...)
    return r.Item;
}
Run Code Online (Sandbox Code Playgroud)

VS

async Task<T> method(){
    var task = dynamodb.GetItemAsync(...)
    return task.Result.Item;
}
Run Code Online (Sandbox Code Playgroud)

在我的情况下,由于某种原因,只有第二个工作.第一个似乎永远不会结束.

c# asynchronous task async-await amazon-dynamodb

32
推荐指数
2
解决办法
6万
查看次数