2016-04-23 9 views
9

का उपयोग कर ग्लोबल माध्यमिक इंडेक्स के साथ तालिका बनाएं I वर्तमान में तालिका बनाने और क्वेरी करने के लिए जावा डायनेमोमैपर का उपयोग कर रहा हूं। जब एक वैश्विक माध्यमिक सूचकांक के साथ एक तालिका बनाने की कोशिश कर रहा है, मैं निम्नलिखित त्रुटिडायनेमोमैपर और कक्षा एनोटेशन

No provisioned throughput specified for the global secondary index

मेरे जावा वर्ग तालिका का प्रतिनिधित्व वैश्विक माध्यमिक सूचकांक के लिए यह विशेषता है मिलता है। तालिका बनाने के लिए

@DynamoDBIndexHashKey(globalSecondaryIndexName="sender") 
    public String getSender() { 
    return sender; 
} 

कक्षा लगता है कि यह

public boolean createTable() { 
try { 
DynamoDBMapper mapper = new DynamoDBMapper(client); 
CreateTableRequest tableRequest =  mapper.generateCreateTableRequest(entityClass); // 1 
tableRequest.setProvisionedThroughput(new ProvisionedThroughput(1000L, 1500L)); // 2 
client.createTable(tableRequest); // 3 

    } catch (Error e) { 
     e.printStackTrace(); 
     return false; 

    } catch (Exception e) { 
     e.printStackTrace(); 
     return false; 
    } 
    return true; 
} 

मैं अतिरिक्त एनोटेशन और विन्यास लेकिन कुछ नहीं के लिए अमेज़न साइट खोज की है DynamoMapper के लिए आया था। क्या ओआरएम का उपयोग करके ऐसा करने के लिए वैसे भी है या क्या मुझे निचले स्तर के एपीआई का उपयोग करके मैन्युअल रूप से बनाना होगा?

उत्तर

9

आपको प्रत्येक माध्यमिक इंडेक्स तालिका पर प्रावधान थ्रूपुट सेट करने की आवश्यकता है जो भी उत्पन्न होगा।

tableRequest.getGlobalSecondaryIndexes().get(0).setProvisionedThroughput(new ProvisionedThroughput(10l, 10l)); 
+0

धन्यवाद जो काम करता है! –

1

@ जेरेमी के उत्तर में विस्तार।

यदि आपके पास एक से अधिक जीएसआई हैं, तो आप इसे नीचे की तरह कर सकते हैं। इसके अलावा यदि आप समान मूल्यों के हैं तो आपको प्रावधान थ्रूपुट ऑब्जेक्ट को हर समय बनाने की आवश्यकता नहीं है।

final ProvisionedThroughput provisionedThroughput = new ProvisionedThroughput(5L, 5L); 
createRequest.setProvisionedThroughput(provisionedThroughput); 
createRequest.getGlobalSecondaryIndexes().forEach(v -> v.setProvisionedThroughput(provisionedThroughput)); 
संबंधित मुद्दे