如何使用 java 对 Amazon dynamodb 中的数据进行排序
Posted
技术标签:
【中文标题】如何使用 java 对 Amazon dynamodb 中的数据进行排序【英文标题】:How to sort the data in Amazon dynamodb using java 【发布时间】:2015-03-20 20:07:01 【问题描述】:如何在amazon dynamodb中使用java对countryCode
列数据进行升序或降序排序
如何在代码中使用SortOrder enum
。
SortOrder
枚举在 packagecom.amazonaws.services.codedeploy.model.SortOrder
中可用。
import java.io.Serializable;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAutoGeneratedKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable;
@DynamoDBTable(tableName = "cd_country")
public class Country implements Serializable
private static final long serialVersionUID = 5698425418072128936L;
@DynamoDBAutoGeneratedKey
@DynamoDBHashKey
private String countryId;
private String countryCode;
private String countryName;
private Long isActive;
public String getCountryId()
return countryId;
public void setCountryId(String countryId)
this.countryId = countryId;
public String getCountryCode()
return countryCode;
public void setCountryCode(String countryCode)
this.countryCode = countryCode;
public String getCountryName()
return countryName;
public void setCountryName(String countryName)
this.countryName = countryName;
public Long getIsActive()
return isActive;
public void setIsActive(Long isActive)
this.isActive = isActive;
【问题讨论】:
是什么让您认为com.amazonaws.services.codedeploy.model.SortOrder
将用于 DynamoDB? AWS 开发工具包本质上是按服务拆分的。
@MikeKobit 在SortOrder
类中,它包含Ascending("ascending"), Descending("descending");
。你能告诉我如何在java中按升序/降序对countryCode
列数据进行排序。
SortOrder
特定于 AWS CodyDeploy。正如我在回答中所说,您需要使用Scan
操作来读取整个表并将结果拉入内存中,您必须对其进行排序。另一种选择是使用DynamoDB Online Indexing announced yesterday 在表上创建索引,然后您可以使用Query
操作来获取排序结果,您可以分页而无需先读取整个表。
@MikeKobit 你能发个代码吗。
【参考方案1】:
您无法对countryCode
进行排序,因为它上面没有index。您必须使用Scan
来获取所有行并对应用程序中的数据进行排序。
旁注:countryCode
不是 DynamoDB 中的列 - 它是一个属性。请参阅DynamoDB DataModel 了解更多信息。
【讨论】:
以上是关于如何使用 java 对 Amazon dynamodb 中的数据进行排序的主要内容,如果未能解决你的问题,请参考以下文章
Dynamo分布式系统——「RWN」协议解决多备份数据如何读写来保证数据一致性,而「向量时钟」来保证当读取到多个备份数据的时候,如何判断哪些数据是最新的这种情况
使用 AWS Appsync 和 GraphQL 查询 Dynamo DB 中的多个表
如何使用 java 对 Amazon dynamodb 中的数据进行排序