2017-04-10 21 views
0

データを格納した主キーIssue(String)を持つAmazon Dynamodbでテーブルを作成しました。私のテーブルから値を読み込みたいです。私はgetTableメソッドを呼び出すときに、私はエラーを取得しています....それはちょうどcreateTable()のような事前に定義されたメソッドであるか、我々はown..ifを記述する必要はない..Javaを使用してdynamodbからテーブルを読み取る方法は?

@DynamoDBTable(tableName="Incident") 
AmazonDynamoDBClient dynamoDBClient = new AmazonDynamoDBClient(); 
String tableName = "Incident"; 
Table table = dynamoDBClient.getTable("Incident"); 
Item getItem=dynamoDBClient.getItem(); 

を次のコードを使用していますそう? また、テーブルのすべての項目を読み取るためにはどのメソッドを使用する必要がありますか? 私はここ..

答えて

0

スキャンAPIを使用して、テーブルからすべてのアイテムを取得できます。

すべてのアイテムを取得するためには、LastEvaluatedKeyがnullでなくなるまでスキャンを実行する必要があります。そうしないと、表に項目が多数ある場合、APIはスキャンごとに1 MBのデータを戻します。

スキャン操作では、最終的に一貫した読み取りがデフォルトで実行され、 は最大1 MB(1ページ)のデータを返すことができます。

Scan API

Map<String, AttributeValue> lastKeyEvaluated = null; 
do { 
    ScanRequest scanRequest = new ScanRequest() 
     .withTableName("ProductCatalog") 
     .withLimit(10) 
     .withExclusiveStartKey(lastKeyEvaluated); 

    ScanResult result = client.scan(scanRequest); 
    for (Map<String, AttributeValue> item : result.getItems()){ 
     printItem(item); 
    } 
    lastKeyEvaluated = result.getLastEvaluatedKey(); 
} while (lastKeyEvaluated != null); 
+0

私ができたおかげでたくさん.... @notionquest ... divyeshありがとうすべてのアイテムを取得するには、プライマリキーに基づいて単一のアイテムを取得する方法のコードを教えてください。 – Giridhari

+0

getItem APIを使用してください。http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ JavaDocumentAPICRUDExample.html .. retrieveItem()メソッドを参照してください。 – notionquest

0

を助けてください、私は、Javaに新たなんだhttp://docs.aws.amazon.com/amazondynamodb/latest/developerguide/JavaDocumentAPIItemCRUD.html#JavaDocumentAPIGetItem

...コードの一部を書くために、このリンクを使用し、スキャンAPIを使用してデータを読み込む方法の例です:

@Override 
protected ArrayList<String> doInBackground(String... params) { 
    String tableName = params[0]; 

    ArrayList<String> tempList = new ArrayList<String>(); 

    AmazonDynamoDBClient dynamoDBClient = new AmazonDynamoDBClient (
      new BasicAWSCredentials(Constants.ACCESS_KEY_ID, 
        Constants.SECRET_KEY)); 

    ScanRequest scanRequest = new ScanRequest() 
     .withTableName(tableName); 
     //.withAttributesToGet("name"); 
    com.amazonaws.services.dynamodb.model.ScanResult result = dynamoDBClient.scan(scanRequest); 


    for (Map<String, AttributeValue> item : result.getItems()) { 
     tempList.add(item.toString()); 
     //analizeItem(tempList, item); 
    } 

    return tempList; 
} 

リファレンスprogramcreeks

+0

それはworked..cheers :) – Giridhari

+0

を、それが仕事だ場合は、それをupvote :) @Giridhari –

関連する問題