L'SDKAWS Mobile per Xamarin è ora incluso inAWS SDK for .NET. Questa guida fa riferimento alla versione archiviata di Mobile SDK per Xamarin.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Amazon DynamoDB
Che cos'è Amazon DynamoDB?
Amazon DynamoDB
Concetti chiave
I concetti del modello di dati DynamoDB includono tabelle, item e attributi.
Tabelle
In Amazon DynamoDB, un database è una raccolta di tabelle. Una tabella è una raccolta di voci e ogni item è una raccolta di attributi.
In un database relazionale, una tabella ha uno schema predefinito come il nome della tabella, la chiave primaria, l'elenco dei nomi delle colonne e i relativi tipi di dati. Tutti i record memorizzati nella tabella devono avere lo stesso set di colonne. Al contrario, DynamoDB richiede solo che una tabella abbia una chiave primaria, ma non richiede di definire in anticipo tutti i nomi degli attributi e i tipi di dati.
Per ulteriori informazioni sull'utilizzo delle tabelle, consultaUtilizzo di tabelle in DynamoDB.
Elementi e attributi
I singoli elementi di una tabella DynamoDB possono avere un numero qualsiasi di attributi, anche se esiste un limite di 400 KB per le dimensioni dell'articolo. La dimensione di un item è data dalla somma delle lunghezze dei nomi e dei valori dei relativi attributi (lunghezze binarie e UTF-8).
Ogni attributo in un elemento è una coppia nome-valore. Un attributo può essere impostato a valore singolo o multivalore. Ad esempio, un elemento del libro può avere attributi di titolo e autori. Ogni libro ha un titolo ma può avere molti autori. L'attributo multivalore è un insieme; i valori duplicati non sono consentiti.
Ad esempio, si consideri di archiviare un catalogo di prodotti in DynamoDB. È possibile creare una tabella,ProductCatalog, con l'attributo Id come chiave primaria. La chiave primaria identifica in modo univoco ciascun item, in modo che nessun prodotto nella tabella possa avere lo stesso ID.
Per ulteriori informazioni sull'utilizzo di item, consultaUtilizzo di item in DynamoDB.
Tipi di dati
Amazon DynamoDB supporta i seguenti tipi di dati:
-
Tipi scalari— Number, String, Binary, Booleano e Null.
-
Tipi multivalore— Set di stringhe, set di numeri e set binario.
-
Tipi di documento— Elenco e mappa.
Per ulteriori informazioni su tipi di dati scalari, tipi di dati a più valori e tipi di dati di documento, vedereTipi di dati DynamoDB.
Chiave primaria
Quando crei una tabella, oltre al nome della tabella, è necessario specificare la chiave primaria della tabella. La chiave primaria identifica in modo univoco ciascun item della tabella, in modo che nessun item possa avere la stessa chiave. DynamoDB supporta i due tipi di chiavi primarie seguenti:
-
Chiave hash: La chiave primaria è costituita da un attributo, un attributo hash. DynamoDB crea un indice di hash non ordinato su questo attributo chiave primaria. Ogni item nella tabella è identificato univocamente dal valore della chiave hash.
-
Hash e Range Key: La chiave primaria è composta da due attributi. Il primo attributo è l'attributo hash e il secondo è l'attributo range. DynamoDB crea un indice hash non ordinato sull'attributo della chiave primaria hash e un indice di intervallo ordinato sull'attributo della chiave primaria di intervallo. Ogni item nella tabella è identificato univocamente dalla combinazione dei valori della chiave hash e intervallo. È possibile che due elementi abbiano lo stesso valore della chiave hash, ma questi due elementi devono avere valori di chiave di intervallo diversi.
Indici secondari
Quando si crea una tabella con una chiave hash e una chiave di intervallo, è possibile definire, a tua piacenza, uno o più indici secondari in quella tabella. Un indice secondario consente di eseguire query sui dati nella tabella utilizzando una chiave alternativa, oltre alle query sulla chiave primaria.
DynamoDB supporta due tipi di indici secondari: indici secondari locali e indici secondari globali.
-
Indice secondario locale: Indice con la stessa chiave hash della tabella ma con una chiave di intervallo diversa.
-
Indice secondario globale: Indice con una chiave hash e una chiave di intervallo che possono essere differenti da quelle presenti sul tavolo.
È possibile definire fino a 5 indici secondari globali e 5 indici secondari locali per tabella. Per ulteriori informazioni, consultaMiglioramento dell'accesso ai dati tramite gli indici secondari in DynamoDBnella Guida per gli sviluppatori di DynamoDB.
Effettua query e scansione
Oltre a utilizzare le chiavi primarie per accedere agli elementi, Amazon DynamoDB fornisce anche due API per la ricerca dei dati: Effettua query e scansione. Ti consigliamo di leggereLinee guida per eseguire query e scansioninella DynamoDB Developer Guide per familiarizzare con alcune best practice.
Query
Un'operazione di query consente di trovare le voci in una tabella o un indice secondario utilizzando solo i valori degli attributi della chiave primaria. È necessario fornire un nome di attributo chiave hash e un valore distinto da cercare. Facoltativamente, puoi fornire un nome e un valore dell'attributo della chiave di intervallo e utilizzare un operatore di confronto per perfezionare i risultati della ricerca.
Per ulteriori query di esempio, consulta:
Per ulteriori informazioni su Query, consultaQuerynella Guida per gli sviluppatori di DynamoDB.
Scan
Un'operazione di scansione legge ogni elemento in una tabella o in un indice secondario. Per impostazione predefinita, un'operazione di scansione restituisce tutti gli attributi dei dati per ogni item nella tabella o nell'indice. Puoi utilizzare il pluginProjectionExpressionparametro in modo che Scan restituisca solo alcuni attributi, piuttosto che tutti.
Per le scansioni di esempio, vedere:
Per ulteriori informazioni su Scan, consultaScannella Guida per gli sviluppatori di DynamoDB.
Configurazione progetto
Prerequisiti
Per utilizzare DynamoDB nella tua applicazione, devi aggiungere l'SDK al tuo progetto. A tale scopo, segui le istruzioni inConfigurazione dell'SDK AWS Mobile per.NET e Xamarin.
Creazione di una tabella DynamoDB
Per creare una tabella, vai allaConsole DynamoDB
-
Fare clic su Create Table (Crea tabella).
-
Immettere il nome della tabella.
-
SelezionaHashcome tipo di chiave primaria.
-
Selezionare un tipo e immettere un valore per il nome dell'attributo hash. Fai clic su Continue (Continua).
-
SulADD INDEXpage, se si prevede di utilizzare indici secondari globali, impostareTipo di indicea «Indice secondario globale» e sottoChiave di indice hash, immettere un valore per l'indice secondario. Ciò consentirà di eseguire query e scansionare utilizzando sia l'indice primario che l'indice secondario. Fare clic suAggiungi indice alla tabella, quindi fai clic suContinua. Per saltare l'utilizzo di indici secondari globali, fare clic suContinua.
-
Imposta la capacità di lettura e scrittura sui livelli desiderati. Per ulteriori informazioni sulla configurazione della capacità, consultaThroughput fornito in Amazon DynamoDB. Fai clic su Continue (Continua).
-
Nella schermata successiva, inserisci un'e-mail di notifica per creare allarmi di throughput, se lo desideri. Fai clic su Continue (Continua).
-
Nella pagina di riepilogo, fai clic suCreate. DynamoDB creerà il database.
Impostazione delle autorizzazioni per DynamoDB
Per utilizzare DynamoDB in un'applicazione, è necessario impostare le autorizzazioni corrette. Il seguente criterio IAM consente all'utente di eliminare, ottenere, inserire, eseguire query, scansionare e aggiornare gli elementi in una tabella DynamoDB specifica, identificata daARN:
{ "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/MyTable" } ] }
È possibile modificare le policy nellaConsole IAM
Per ulteriori informazioni sulle policy IAM, consulta la sezione relativa all'utilizzo di IAM.
Per ulteriori informazioni sulle policy specifiche di DynamoDB, consultaUtilizzo di IAM per controllare l'accesso alle risorse DynamoDBnella Guida per gli sviluppatori di DynamoDB.
Integrazione di DynamoDB con la tua applicazione
L'SDK AWS Mobile per.NET e Xamarin offre una libreria di alto livello per lavorare con DynamoDB. È inoltre possibile effettuare richieste direttamente contro l'API DynamoDB di basso livello, ma per la maggior parte dei casi d'uso è consigliata la libreria di alto livello. LaAmazonDynamoDBClient è una parte particolarmente utile della libreria di alto livello. Utilizzando questa classe, puoi eseguire varie operazioni di creazione, lettura, aggiornamento ed eliminazione (CRUD) ed eseguire query.
L'SDK AWS Mobile per.NET e Xamarin consente di effettuare chiamate utilizzando le API dell'AWS SDK for .NET funzionare con DynamoDB. Tutte le API sono disponibili nelAWSSDK.dll. Per ulteriori informazioni sul download dell'AWS SDK for .NET, consultaSDK AWS per .NET
Esistono vari modo per interagire con DynamoDB nella tua applicazione Xamarin:
-
Modello di documento: Questa API fornisce classi wrapper intorno all'API DyanMoDB di basso livello per semplificare ulteriormente le attività di programmazione. La tabella e il documento sono le classi chiave del wrapper. È possibile utilizzare il modello di documento per le operazioni dei dati, ad esempio creare, recuperare, aggiornare ed eliminare elementi. L'API è disponibile in Amazon.dynamoDB.DocumentModelspazio dei nomi.
-
Modello di persistenza degli oggetti: L'API di persistenza degli oggetti consente di mappare le classi lato client alle tabelle DynamoDB. Ogni istanza dell'oggetto viene quindi mappata a un elemento nelle tabelle corrispondenti. La classe DynamoDBContext in questa API fornisce metodi per salvare gli oggetti lato client in una tabella, recuperare gli elementi come oggetti ed eseguire query e scansioni. È possibile utilizzare il modello di persistenza oggetti per le operazioni dei dati, ad esempio creare, recuperare, aggiornare ed eliminare elementi. È necessario prima creare le tabelle utilizzando l'API del client di servizio e quindi utilizzare il modello di persistenza degli oggetti per mappare le classi alle tabelle. L'API è disponibile in Amazon.dynamoDB.DataModelspazio dei nomi.
-
Client API di servizio: Questa è l'API a livello di protocollo che mappa strettamente all'API DynamoDB. È possibile utilizzare questa API di basso livello per tutte le operazioni di tabelle e elementi, come la creazione, l'aggiornamento, l'eliminazione di tabelle e elementi. È inoltre possibile eseguire query e scansionare le tabelle. Questa API è disponibile nello spazio dei nomi Amazon.dynamoDB.
Questi tre modelli sono approfonditi nei seguenti argomenti: