Examen - Amazon DynamoDB

Examen

importante

Esta sección se refiere a la versión 2011-12-05 del API, que está obsoleta y no debe utilizarse para nuevas aplicaciones.

Para consultar la documentación sobre la API de bajo nivel actual, consulte la Referencia de la API de Amazon DynamoDB.

Descripción

La operación Scan lleva a cabo un examen completo de una tabla y devuelve uno o varios elementos y sus atributos. Proporcione un filtro ScanFilter para obtener resultados más específicos.

nota

Si la cantidad total de elementos examinados supera el límite de 1 MB, el examen se detiene y se devuelven los resultados al usuario; en este caso, se facilita un LastEvaluatedKey para que pueda continuar el examen en una operación posterior. Además, los resultados incluyen la cantidad de elementos que superan el límite. En un examen, puede suceder que ninguno de los datos de la tabla cumplan los criterios de filtro.

El conjunto de resultados presenta consistencia final.

Solicitudes

Sintaxis

// This header is abbreviated. // For a sample of a complete header, see API de bajo nivel de DynamoDB. 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"]}, }
Nombre Descripción Obligatorio
TableName

Nombre de la tabla que contiene los elementos solicitados.

Tipo: cadena

AttributesToGet

Matriz de nombres de atributo. Si no se especifican sus nombres, se devuelven todos los atributos. Si algún atributo no se encuentra, no aparecerá en los resultados.

Tipo: matriz

No
Limit

Número máximo de elementos que se van a evaluar, que no es necesariamente el número de elementos coincidentes. Si DynamoDB alcanza el límite de cantidad de elementos mientras procesa los resultados, se detiene y devuelve los valores coincidentes hasta ese punto, junto con un LastEvaluatedKey que puede aplicarse en una operación ulterior para continuar recuperando elementos. Además, si el tamaño del conjunto de datos examinados supera 1 MB antes de que DynamoDB alcance este límite, detiene el examen y devuelve los valores coincidentes hasta el límite, junto con LastEvaluatedKey que puede aplicarse en una operación ulterior para continuar con el examen.

Tipo: Number

No
Count

Si se establece en true, DynamoDB devuelve la cantidad total de elementos de la operación Scan, aunque no encuentre ningún elemento coincidente para el filtro asignado. Puede aplicar el parámetro Limit a los exámenes que son solo de recuento.

No establezca Count en true si proporciona una lista de AttributesToGet; si así lo hiciera, DynamoDB devolverá un error de validación. Para obtener más información, consulte Recuento de los elementos en los resultados.

Tipo: Booleano

No
ScanFilter

Evalúa los resultados del examen y solo devuelve los valores deseados. Si se especifican varias condiciones, se tratan como operaciones "AND": deberán cumplirse todas las condiciones para que se incluyan en los resultados.

Tipo: Un mapa de nombres de atributos a valores con operadores de comparación.

No
ScanFilter:AttributeValueList

Valores y condiciones que se usarán para evaluar los resultados del examen para el filtro.

Tipo: Map, mapa de AttributeValue a un Condition.

No
ScanFilter:​ ComparisonOperator

Criterios para evaluar los atributos proporcionados, tales como igual que, mayor que, etc. A continuación se muestran los operadores de comparación válidos para una operación de examen.

nota

Las comparaciones de valores de cadenas de tipo mayor que, igual que o menor que se basan en sus valores según el código de caracteres ASCII. Por ejemplo, a es mayor que A y aa es mayor que B. Para obtener una lista de valores de códigos, consulte http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters.

En el tipo Binary, al comparar valores binarios DynamoDB trata cada byte como datos sin signo; por ejemplo, al evaluar expresiones de consulta.

Tipo: String o Binary

No
 

EQ: igual que.

Para EQ, AttributeValueList puede contener un solo AttributeValue de tipo String (cadena), Number (número) o Binary (binario) (no un conjunto). Si un elemento contiene un AttributeValue de un tipo distinto del especificado en la solicitud, el valor no coincide. Por ejemplo, {"S":"6"} no es igual que {"N":"6"}. {"N":"6"} tampoco es igual que {"NS":["6", "2", "1"]}.

 
 

NE: distinto de.

Para NE, AttributeValueList puede contener un solo AttributeValue de tipo String (cadena), Number (número) o Binary (binario) (no un conjunto). Si un elemento contiene un AttributeValue de un tipo distinto del especificado en la solicitud, el valor no coincide. Por ejemplo, {"S":"6"} no es igual que {"N":"6"}. {"N":"6"} tampoco es igual que {"NS":["6", "2", "1"]}.

 
 

LE: menor o igual que.

Para LE, AttributeValueList puede contener un solo AttributeValue de tipo String (cadena), Number (número) o Binary (binario) (no un conjunto). Si un elemento contiene un AttributeValue de un tipo distinto del especificado en la solicitud, el valor no coincide. Por ejemplo, {"S":"6"} no es igual que {"N":"6"}. {"N":"6"} tampoco se compara con {"NS":["6", "2", "1"]}.

 
 

LT : Menor que.

Para LT, AttributeValueList puede contener un solo AttributeValue de tipo String (cadena), Number (número) o Binary (binario) (no un conjunto). Si un elemento contiene un AttributeValue de un tipo distinto del especificado en la solicitud, el valor no coincide. Por ejemplo, {"S":"6"} no es igual que {"N":"6"}. {"N":"6"} tampoco se compara con {"NS":["6", "2", "1"]}.

 
 

GE: mayor o igual que.

Para GE, AttributeValueList puede contener un solo AttributeValue de tipo String (cadena), Number (número) o Binary (binario) (no un conjunto). Si un elemento contiene un AttributeValue de un tipo distinto del especificado en la solicitud, el valor no coincide. Por ejemplo, {"S":"6"} no es igual que {"N":"6"}. {"N":"6"} tampoco se compara con {"NS":["6", "2", "1"]}.

 
 

GT : Mayor que.

Para GT, AttributeValueList puede contener un solo AttributeValue de tipo String (cadena), Number (número) o Binary (binario) (no un conjunto). Si un elemento contiene un AttributeValue de un tipo distinto del especificado en la solicitud, el valor no coincide. Por ejemplo, {"S":"6"} no es igual que {"N":"6"}. {"N":"6"} tampoco se compara con {"NS":["6", "2", "1"]}.

 
 

NOT_NULL: el atributo existe.

 
 

NULL: el atributo no existe.

 
 

CONTAINS: comprueba si hay una subsecuencia, o un valor en un conjunto.

Para CONTAINS, AttributeValueList puede contener un solo AttributeValue de tipo String (cadena), Number (número) o Binary (binario) (no un conjunto). Si el atributo de destino de la comparación es de tipo String (cadena), entonces la operación comprueba si hay una subcadena coincidente. Si el atributo de destino de la comparación es de tipo Binary (binario), entonces la operación busca una subsecuencia del destino que coincida con la entrada. Si el atributo de destino de la comparación es un conjunto ("SS", "NS" o "BS"), entonces la operación busca un miembro del conjunto (no como subcadena).

 
 

NOT_CONTAINS: comprueba la ausencia de una subsecuencia, o la ausencia de un valor en un conjunto.

Para NOT_CONTAINS, AttributeValueList puede contener un solo AttributeValue de tipo String (cadena), Number (número) o Binary (binario) (no un conjunto). Si el atributo de destino de la comparación es de tipo String (cadena), entonces la operación verifica la ausencia de una subcadena coincidente. Si el atributo de destino de la comparación es de tipo Binary (binario), entonces la operación verifica la ausencia de una subsecuencia del destino que coincida con la entrada. Si el atributo de destino de la comparación es un conjunto ("SS", "NS" o "BS"), entonces la operación busca la ausencia de un miembro del conjunto (no como subcadena).

 
 

BEGINS_WITH: comprueba si hay un prefijo.

Para BEGINS_WITH, AttributeValueList puede contener un solo AttributeValue de tipo String (cadena) o Binary (binario) (no de tipo Number [número] ni un conjunto). El atributo de destino de la comparación debe ser un valor de tipo String o Binary (no de tipo Number ni un conjunto).

 
 

IN: comprueba si hay coincidencias exactas.

Para IN, AttributeValueList puede contener más de un AttributeValue de tipo String (cadena), Number (número) o Binary (binario) (no un conjunto). El atributo de destino de la comparación debe ser del mismo tipo y valor exactos para que se produzca la coincidencia. Un valor de tipo String nunca coincide con un valor de tipo String Set.

 
 

BETWEEN: mayor o igual que el primer valor y menor o igual que el segundo valor.

Para BETWEEN, AttributeValueList debe contener dos elemento AttributeValue del mismo tipo, que puede ser String (cadena), Number (número) o Binary (binario) (pero no un conjunto). Un atributo de destino coincide si el valor de destino es mayor o igual que el primer elemento y menor o igual que el segundo elemento. Si un elemento contiene un AttributeValue de un tipo distinto del especificado en la solicitud, el valor no coincide. Por ejemplo, {"S":"6"} no se compara con {"N":"6"}. {"N":"6"} tampoco se compara con {"NS":["6", "2", "1"]}.

 
ExclusiveStartKey

Clave principal del elemento a partir del cual se continuará un examen anterior. Un examen anterior puede proporcionar este valor si la operación de examen se interrumpió antes de examinar toda la tabla, ya sea debido al tamaño del conjunto de resultados o al parámetro Limit. El valor de LastEvaluatedKey se puede pasar a una nueva solicitud de examen para continuar la operación a partir de ese punto.

Tipo: HashKeyElement, o bien HashKeyElement y RangeKeyElement si se trata de una clave principal compuesta.

No

Respuestas

Sintaxis

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} }
Nombre Descripción
Items

Contenedor de los atributos que coinciden con los parámetros de la operación.

Tipo: Map, mapa de los nombres de atributos y sus tipos de datos y valores.

Count

Cantidad de elementos de la respuesta. Para obtener más información, consulte Recuento de los elementos en los resultados.

Tipo: Number

ScannedCount

Cantidad de elementos del examen completo antes de aplicar cualquier filtro. Un valor de ScannedCount elevado, con pocos resultados de Count o ninguno indica que la operación Scan ha sido ineficiente. Para obtener más información, consulte Recuento de los elementos en los resultados.

Tipo: Number

LastEvaluatedKey Clave principal del elemento en la que se detuvo la operación de examen. Proporcione este valor en una operación de examen posterior para continuar la operación a partir de ese punto.

El valor de LastEvaluatedKey es null cuando se ha completado todo el conjunto de resultados de examen (es decir, cuando la operación ha procesado la "última página").

ConsumedCapacityUnits

Cantidad de unidades de capacidad de lectura consumidas por la operación. Este valor muestra el número aplicado al rendimiento aprovisionado. Para obtener más información, consulte Modo de capacidad aprovisionada de DynamoDB.

Tipo: Number

Errores especiales

Error Descripción
ResourceNotFoundException No se encontró la tabla especificada.

Ejemplos

Para obtener ejemplos sobre cómo usar el SDK de AWS, consulte Análisis de tablas en DynamoDB.

Solicitud de ejemplo

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

Respuesta de ejemplo

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}

Solicitud de ejemplo

// This header is abbreviated. For a sample of a complete header, see API de bajo nivel de DynamoDB. 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"} } }

Respuesta de ejemplo

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 }

Solicitud de ejemplo

// This header is abbreviated. For a sample of a complete header, see API de bajo nivel de DynamoDB. 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"}} }

Respuesta de ejemplo

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 }