2015-06-11 14 views

risposta

13

Questa è una buona domanda. Sembra che DynamoDB sia un wrapper per lo AmazonDynamoDBClient, che fornisce un'interfaccia diversa. Quindi questo può essere ovvio e non la risposta che stai cercando, ma lascia che ti descriva alcune delle differenze tra di loro.

Il metodo createTable in AmazonDynamoDBClient ritorna un oggetto CreateTableResult, mentre il metodo CreateTable s' il DynamoDB ritorna un oggetto Table. Questo oggetto Table può quindi essere utilizzato per eseguire CRUD su tale tabella. L'oggetto Table inizia ad apparire come un oggetto ORM generico per DynamoDB. Quindi non è proprio la classe DynamoDB vs AmazonDynamoDBClient, è più simile a DynamoDB & Table classi vs AmazonDynamoDBClient.

AmazonDynamoDBClient è ovviamente più vecchio della classe DynamoDB. DynamoDB è piuttosto nuovo, uscendo in 1.9.x. Ma c'è un'altra classe che vale la pena menzionare, DynamoDBMapper. DynamoDBMapper consente anche altre operazioni simili a ORM. Permettendo agli sviluppatori di annotare i loro modelli di dati JavaBean in modo che possano essere facilmente CRUD rispetto a una tabella DynamoDB. Puoi lavorare direttamente con i tuoi oggetti e lo DynamoDBMapper farà il lavoro CRUD sul database DynamoDB. DynamoDBMapper è precedente alla classe DynamoDB. Penso che forse alcuni sviluppatori non volevano lavorare con lo DynamoDBMapper (forse non un fan di OO o annotazioni?) E ci doveva essere un altro paradigma, ma io sto solo ipotizzando. Quindi sono state create le classi DynamoDB e Table. Con la classe Table è possibile interagire con le tabelle più facilmente rispetto allo AmazonDynamoDBClient ma senza il sovraccarico di creazione di modelli di dati JavaBean richiesti da DynamoDBMapper.

Problemi correlati