如何使用查询从 DynamoDb 中的 table 获取所有记录
How to get all records from a table in DynamoDb using query
DynamoDb 新手
我在 AWS DynamoDb 中有一个 table 如下
tblCustomer
Id Name Email
1 Abc abc@gmail.com
2 Xyz xyz@gmail.com
这是一个巨大的table。在它周围探索的同时。 Query
优于 Scan
。
所以我选择了查询而不是扫描。
这就是我的 C# 函数的样子。
AmazonDynamoDBClient client = new AmazonDynamoDBClient();
var request = new QueryRequest
{
TableName = "tblCustomer",
ProjectionExpression = "Name, Email"
};
var response = await client.QueryAsync(request);
foreach (Dictionary<string, AttributeValue> item in response.Items)
{
}
但是这是抛出异常
KeyConditionExpress cannot be null
这里我不需要KeyConditionExpress,因为我需要获取所有客户。
如何以最有效的方式从 tblCustomer 获取所有记录?
谢谢!
如果您正在寻找 return 记录的一个子集,则查询比扫描更好 - 您尝试做的(没有条件的查询)无论如何在功能上等同于扫描,所以你不妨使用扫描。
也就是说,如果您发现自己经常需要 运行 全面扫描 - table 扫描,则可能表明您的设计存在问题 - 扫描既昂贵又缓慢,应仅在必要时使用.
DynamoDb 新手
我在 AWS DynamoDb 中有一个 table 如下
tblCustomer
Id Name Email
1 Abc abc@gmail.com
2 Xyz xyz@gmail.com
这是一个巨大的table。在它周围探索的同时。 Query
优于 Scan
。
所以我选择了查询而不是扫描。
这就是我的 C# 函数的样子。
AmazonDynamoDBClient client = new AmazonDynamoDBClient();
var request = new QueryRequest
{
TableName = "tblCustomer",
ProjectionExpression = "Name, Email"
};
var response = await client.QueryAsync(request);
foreach (Dictionary<string, AttributeValue> item in response.Items)
{
}
但是这是抛出异常
KeyConditionExpress cannot be null
这里我不需要KeyConditionExpress,因为我需要获取所有客户。
如何以最有效的方式从 tblCustomer 获取所有记录?
谢谢!
如果您正在寻找 return 记录的一个子集,则查询比扫描更好 - 您尝试做的(没有条件的查询)无论如何在功能上等同于扫描,所以你不妨使用扫描。
也就是说,如果您发现自己经常需要 运行 全面扫描 - table 扫描,则可能表明您的设计存在问题 - 扫描既昂贵又缓慢,应仅在必要时使用.