2016-05-27 8 views
0

列全体のすべての値を照会するための最良の方法を試しています。私はそれをGSI(それは現在)として設定する必要があります。クエリを使用することは可能ですか、スキャンを実行する必要がありますか?あなたの助けDynamodbは、列内のすべての値を照会することが可能です

+0

DynamoDBは分析DBではありません。必要な場合はスキャンを使用できますが、必要に応じて他のソリューション(DynamoDBアップデートストリームからのRedshift、ElastiCacheのRedisでのアップデートストリームからのバリューセットの維持)を頻繁に使用します。 – Guy

答えて

2

ため

おかげであなたはキーによってフィルタリングされていない場合はスキャンを行う必要があります。ここでは、インデックスをスキャンしてすべての値を取得するサンプルコードを示します。

List<String> categoryList = new ArrayList<>(); 
    DynamoDB dynamoDB = new DynamoDB(dynamoDBClient); 
    Table table = dynamoDB.getTable("Music"); 
    Index index = table.getIndex("Secondary Index Name"); 

    ItemCollection<ScanOutcome> items = null; 
    ScanSpec scanSpec = new ScanSpec().withSelect(Select.SPECIFIC_ATTRIBUTES).withAttributesToGet("Category"); 

    items = index.scan(scanSpec); 
    Iterator<Item> pageIterator = items.iterator(); 
    while (pageIterator.hasNext()) { 

     categoryList.add(pageIterator.next().getString("Category")); 
    } 
関連する問題