Scan - Amazon DynamoDB

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à.

Scan

Importante

In questa sezione si fa riferimento alla versione API 2011-12-05, che è obsoleta e non deve essere utilizzata per le nuove applicazioni.

Per informazioni sull'API di basso livello corrente, consulta la Amazon DynamoDB API Reference.

Descrizione

L'operazione Scan restituisce uno o più elementi e i relativi attributi eseguendo una scansione completa di una tabella. Fornire un ScanFilter per ottenere risultati più specifici.

Nota

Se il numero totale di elementi sottoposti a scansione supera il limite di 1 MB, la scansione viene interrotta e i risultati vengono restituiti all'utente con un LastEvaluatedKey per continuare la scansione in un'operazione successiva. I risultati includono anche il numero di elementi che superano il limite. Una scansione può comportare l'assenza di dati di tabella che soddisfano i criteri di filtro.

Il set di risultati è a consistenza finale.

Richieste

Sintassi

// This header is abbreviated. // For a sample of a complete header, see DynamoDB di basso livello API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.Scan content-type: application/x-amz-json-1.0 {"TableName":"Table1", "Limit": 2, "ScanFilter":{ "AttributeName1":{"AttributeValueList":[{"S":"AttributeValue"}],"ComparisonOperator":"EQ"} }, "ExclusiveStartKey":{ "HashKeyElement":{"S":"AttributeName1"}, "RangeKeyElement":{"N":"AttributeName2"} }, "AttributesToGet":["AttributeName1", "AttributeName2", "AttributeName3"]}, }
Nome Descrizione Richiesto
TableName

Il nome della tabella che contiene gli elementi richiesti.

▬Tipo: stringa

AttributesToGet

Matrice di nomi di attributi. Se i nomi degli attributi non sono specificati, verranno restituiti tutti gli attributi. Se alcuni attributi non vengono trovati, non verranno visualizzati nel risultato.

Tipo: Array

No
Limit

Il numero massimo di item da valutare (non necessariamente il numero di item corrispondenti). Se DynamoDB elabora il numero di elementi fino al limite durante l'elaborazione dei risultati, si arresta e restituisce i valori corrispondenti fino a quel punto e un LastEvaluatedKey da applicare in un'operazione successiva per continuare a recuperare gli elementi. Inoltre, se la dimensione del set di dati sottoposti a scansione supera 1 MB prima che DynamoDB raggiunga questo limite, interrompe la scansione e restituisce i valori corrispondenti fino al limite e un LastEvaluatedKey da applicare in un'operazione successiva per continuare la scansione.

Tipo: numero

No
Count

Se impostato su true, DynamoDB restituisce un numero totale di elementi per l'operazione di scansione, anche se l'operazione non contiene elementi corrispondenti per il filtro assegnato. È possibile applicare il parametro Limit alle scansioni di solo conteggio.

Non impostare Count su true mentre si fornisce un elenco di AttributesToGet; in caso contrario, DynamoDB restituirà un errore di convalida. Per ulteriori informazioni, consulta Conteggio degli elementi nei risultati.

Tipo: Booleano

No
ScanFilter

Valuta i risultati della scansione e restituisce solo i valori desiderati. Le condizioni multiple sono trattate come operazioni "AND": per essere incluse nei risultati tutte le condizioni devono essere soddisfatte.

Tipo: una mappa dei nomi degli attributi ai valori con operatori di confronto.

No
ScanFilter:AttributeValueList

I valori e le condizioni per valutare i risultati della scansione per il filtro.

Tipo: una mappa di AttributeValue ad un Condition.

No
ScanFilter:​ ComparisonOperator

I criteri per valutare gli attributi forniti, come uguale, maggiore di, ecc. Di seguito sono riportati operatori di confronto validi per un'operazione di scansione.

Nota

I confronti di valori String per maggiore di, uguale o minore di si basano sui valori del codice di caratteri ASCII. Ad esempio, a è maggiore di A e aa è maggiore di B. Per l'elenco dei valori di codifica, vedi http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

Per Binary, DynamoDB tratta ciascun byte dei dati binari come non firmato quando confronta i valori binari, ad esempio quando valuta le espressioni di query.

Tipo: String o Binary

No
 

EQ: uguale.

Per EQ, AttributeValueList può contenere solo un AttributeValue di tipo String, Number o Binary (non un set). Se un elemento contiene un AttributeValue di un tipo diverso da quello specificato nella richiesta, il valore non corrisponde. Ad esempio, {"S":"6"} non è uguale a {"N":"6"}. Inoltre, {"N":"6"} non è uguale a {"NS":["6", "2", "1"]}.

 
 

NE: non uguale.

Per NE, AttributeValueList può contenere solo un AttributeValue di tipo String, Number o Binary (non un set). Se un elemento contiene un AttributeValue di un tipo diverso da quello specificato nella richiesta, il valore non corrisponde. Ad esempio, {"S":"6"} non è uguale a {"N":"6"}. Inoltre, {"N":"6"} non è uguale a {"NS":["6", "2", "1"]}.

 
 

LE: minore o uguale a.

Per LE, AttributeValueList può contenere solo un AttributeValue di tipo String, Number o Binary (non un set). Se un elemento contiene un AttributeValue di un tipo diverso da quello specificato nella richiesta, il valore non corrisponde. Ad esempio, {"S":"6"} non è uguale a {"N":"6"}. Inoltre, {"N":"6"} non si confronta con {"NS":["6", "2", "1"]}.

 
 

LT: minore di.

Per LT, AttributeValueList può contenere solo un AttributeValue di tipo String, Number o Binary (non un set). Se un elemento contiene un AttributeValue di un tipo diverso da quello specificato nella richiesta, il valore non corrisponde. Ad esempio, {"S":"6"} non è uguale a {"N":"6"}. Inoltre, {"N":"6"} non si confronta con {"NS":["6", "2", "1"]}.

 
 

GE: maggiore o uguale a.

Per GE, AttributeValueList può contenere solo un AttributeValue di tipo String, Number o Binary (non un set). Se un elemento contiene un AttributeValue di un tipo diverso da quello specificato nella richiesta, il valore non corrisponde. Ad esempio, {"S":"6"} non è uguale a {"N":"6"}. Inoltre, {"N":"6"} non si confronta con {"NS":["6", "2", "1"]}.

 
 

GT: maggiore di.

Per GT, AttributeValueList può contenere solo un AttributeValue di tipo String, Number o Binary (non un set). Se un elemento contiene un AttributeValue di un tipo diverso da quello specificato nella richiesta, il valore non corrisponde. Ad esempio, {"S":"6"} non è uguale a {"N":"6"}. Inoltre, {"N":"6"} non si confronta con {"NS":["6", "2", "1"]}.

 
 

NOT_NULL: l'attributo esiste.

 
 

NULL: l'attributo non esiste.

 
 

CONTAINS: controlla la presenza di una sottosequenza o di un valore in un set.

Per CONTAINS, AttributeValueList può contenere solo un AttributeValue di tipo String, Number o Binary (non un set). Se l'attributo di destinazione del confronto è String, l'operazione verifica la presenza di una corrispondenza di sottostringa. Se l'attributo di destinazione del confronto è Binary, l'operazione cerca una sottosequenza della destinazione che corrisponde all'input. Se l'attributo di destinazione del confronto è un set ("SS", "NS" o "BS"), l'operazione verifica la presenza di un membro del set (non come sottostringa).

 
 

NOT_CONTAINS: controlla l'assenza di una sottosequenza o l'assenza di un valore in un set.

Per NOT_CONTAINS, AttributeValueList può contenere solo un AttributeValue di tipo String, Number o Binary (non un set). Se l'attributo di destinazione del confronto è String, l'operazione verifica l'assenza di una corrispondenza di sottostringa. Se l'attributo di destinazione del confronto è Binary, l'operazione verifica l'assenza di una sottosequenza della destinazione che corrisponde all'input. Se l'attributo di destinazione del confronto è un set ("SS", "NS" o "BS"), l'operazione verifica l'assenza di un membro del set (non come sottostringa).

 
 

BEGINS_WITH: controlla la presenza di un prefisso.

Per BEGINS_WITH, AttributeValueList può contenere solo un AttributeValue di tipo String o Binary (non Number o Set). L'attributo di destinazione del confronto deve essere String o Binary (non Number o un set).

 
 

IN: controlla le corrispondenze esatte.

Per IN, AttributeValueList può contenere più di un AttributeValue di tipo String, Number o Binary (non un set). Per corrispondere, l'attributo di destinazione del confronto deve essere dello stesso tipo e valore esatto. Una valore stringa non corrisponde mai a un set di stringhe.

 
 

BETWEEN: maggiore di o uguale a primo valore e minore di o uguale a secondo valore.

Per BETWEEN, AttributeValueList deve contenere due elementi AttributeValue dello stesso tipo, String, Number o Binary (non un set). Un attributo di destinazione corrisponde se il valore di destinazione è maggiore o uguale al primo elemento e minore o uguale al secondo elemento. Se un elemento contiene un AttributeValue di un tipo diverso da quello specificato nella richiesta, il valore non corrisponde. Ad esempio, {"S":"6"} non si confronta con {"N":"6"}. Inoltre, {"N":"6"} non si confronta con {"NS":["6", "2", "1"]}.

 
ExclusiveStartKey

La chiave primaria dell'elemento da cui continuare una scansione precedente. Una scansione precedente potrebbe fornire questo valore se l'operazione di scansione è stata interrotta prima della scansione dell'intera tabella a causa della dimensione del set di risultati o del parametro Limit. LastEvaluatedKey può essere re-inviato in una nuova richiesta di scansione per continuare l'operazione da quel punto.

Tipo: HashKeyElement o HashKeyElement e RangeKeyElement per una chiave primaria composita.

No

Risposte

Sintassi

HTTP/1.1 200 x-amzn-RequestId: 8966d095-71e9-11e0-a498-71d736f27375 content-type: application/x-amz-json-1.0 content-length: 229 {"Count":2,"Items":[{ "AttributeName1":{"S":"AttributeValue1"}, "AttributeName2":{"S":"AttributeValue2"}, "AttributeName3":{"S":"AttributeValue3"} },{ "AttributeName1":{"S":"AttributeValue4"}, "AttributeName2":{"S":"AttributeValue5"}, "AttributeName3":{"S":"AttributeValue6"}, "AttributeName5":{"B":"dmFsdWU="} }], "LastEvaluatedKey": {"HashKeyElement":{"S":"AttributeName1"}, "RangeKeyElement":{"N":"AttributeName2"}, "ConsumedCapacityUnits":1, "ScannedCount":2} }
Nome Descrizione
Items

Container per gli attributi che soddisfano i parametri dell'operazione.

Tipo: mappa di nomi degli attributi e dei relativi tipi di dati e valori.

Count

Il numero di elementi nella risposta. Per ulteriori informazioni, consulta Conteggio degli elementi nei risultati.

Tipo: numero

ScannedCount

Il numero di elementi nella scansione completa prima dell'applicazione di eventuali filtri. Un valore ScannedCount elevato con pochi o nessun risultato Count indica un'operazione Scan inefficiente. Per ulteriori informazioni, consulta Conteggio degli elementi nei risultati.

Tipo: numero

LastEvaluatedKey La chiave primaria dell'elemento su cui si è interrotta l'operazione di scansione. Fornire questo valore in una operazione di scansione successiva per continuare l'operazione da quel punto.

LastEvaluatedKey è null quando l'intero set di risultati della scansione è completo (cioè l'operazione ha elaborato l'ultima pagina).

ConsumedCapacityUnits

Il numero di unità di capacità di scrittura utilizzate dall'operazione. Questo valore mostra il numero applicato alla velocità effettiva assegnata. Per ulteriori informazioni, consulta Modalità di capacità fornita da DynamoDB.

Tipo: numero

Errori speciali

Errore Descrizione
ResourceNotFoundException La tabella specificata non è stata trovata.

Esempi

Per esempi di utilizzo dell' AWS SDK, consultaTabelle di scansione in DynamoDB.

Richiesta di esempio

// This header is abbreviated. For a sample of a complete header, see DynamoDB di basso livello API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.Scan content-type: application/x-amz-json-1.0 {"TableName":"1-hash-rangetable","ScanFilter":{}}

Risposta di esempio

HTTP/1.1 200 x-amzn-RequestId: 4e8a5fa9-71e7-11e0-a498-71d736f27375 content-type: application/x-amz-json-1.0 content-length: 465 {"Count":4,"Items":[{ "date":{"S":"1980"}, "fans":{"SS":["Dave","Aaron"]}, "name":{"S":"Airplane"}, "rating":{"S":"***"} },{ "date":{"S":"1999"}, "fans":{"SS":["Ziggy","Laura","Dean"]}, "name":{"S":"Matrix"}, "rating":{"S":"*****"} },{ "date":{"S":"1976"}, "fans":{"SS":["Riley"]}," name":{"S":"The Shaggy D.A."}, "rating":{"S":"**"} },{ "date":{"S":"1985"}, "fans":{"SS":["Fox","Lloyd"]}, "name":{"S":"Back To The Future"}, "rating":{"S":"****"} }], "ConsumedCapacityUnits":0.5 "ScannedCount":4}

Richiesta di esempio

// This header is abbreviated. For a sample of a complete header, see DynamoDB di basso livello API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.Scan content-type: application/x-amz-json-1.0 content-length: 125 {"TableName":"comp5", "ScanFilter": {"time": {"AttributeValueList":[{"N":"400"}], "ComparisonOperator":"GT"} } }

Risposta di esempio

HTTP/1.1 200 OK x-amzn-RequestId: PD1CQK9QCTERLTJP20VALJ60TRVV4KQNSO5AEMVJF66Q9ASUAAJG content-type: application/x-amz-json-1.0 content-length: 262 Date: Mon, 15 Aug 2011 16:52:02 GMT {"Count":2, "Items":[ {"friends":{"SS":["Dave","Ziggy","Barrie"]}, "status":{"S":"chatting"}, "time":{"N":"2000"}, "user":{"S":"Casey"}}, {"friends":{"SS":["Dave","Ziggy","Barrie"]}, "status":{"S":"chatting"}, "time":{"N":"2000"}, "user":{"S":"Fredy"} }], "ConsumedCapacityUnits":0.5 "ScannedCount":4 }

Richiesta di esempio

// This header is abbreviated. For a sample of a complete header, see DynamoDB di basso livello API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.Scan content-type: application/x-amz-json-1.0 {"TableName":"comp5", "Limit":2, "ScanFilter": {"time": {"AttributeValueList":[{"N":"400"}], "ComparisonOperator":"GT"} }, "ExclusiveStartKey": {"HashKeyElement":{"S":"Fredy"},"RangeKeyElement":{"N":"2000"}} }

Risposta di esempio

HTTP/1.1 200 OK x-amzn-RequestId: PD1CQK9QCTERLTJP20VALJ60TRVV4KQNSO5AEMVJF66Q9ASUAAJG content-type: application/x-amz-json-1.0 content-length: 232 Date: Mon, 15 Aug 2011 16:52:02 GMT {"Count":1, "Items":[ {"friends":{"SS":["Jane","James","John"]}, "status":{"S":"exercising"}, "time":{"N":"2200"}, "user":{"S":"Roger"}} ], "LastEvaluatedKey":{"HashKeyElement":{"S":"Riley"},"RangeKeyElement":{"N":"250"}}, "ConsumedCapacityUnits":0.5 "ScannedCount":2 }