Operaciones básicas en tablas de DynamoDB - Amazon DynamoDB

Operaciones básicas en tablas de DynamoDB

Al igual que otros sistemas de base de datos, Amazon DynamoDB almacena datos en tablas. Puede administrar las tablas con una pocas operaciones básicas.

Creación de una tabla

Use la operación CreateTable para crear una tabla en Amazon DynamoDB. Para crear la tabla, debe proporcionar la siguiente información:

  • Nombre de la tabla. El nombre debe cumplir las reglas de nomenclatura de DynamoDB y debe ser único para la región y cuenta de AWS actuales. Por ejemplo, puede crear una tabla People en EE. UU. Este (Norte de Virginia) y otra tabla People en Europa (Irlanda). Sin embargo, estas dos tablas serían totalmente distintas entre sí. Para obtener más información, consulte Reglas de nomenclatura y tipos de datos.

  • Clave principal. La clave principal puede constar de un atributo (clave de partición) o dos (clave de partición y clave de ordenación). Debe proporcionar el nombre, el tipo de datos y el rol de cada atributo: HASH (para una clave de partición) y RANGE (para una clave de ordenación). Para obtener más información, consulte Clave principal.

  • Ajustes de rendimiento (de las tablas aprovisionadas). Si utiliza el modo aprovisionado, debe especificar los ajustes iniciales de rendimiento de lectura y escritura de la tabla. Puede modificar esta configuración en otro momento o habilitar la función Auto Scaling de DynamoDB para administrarlos automáticamente. Para obtener más información, consulte Administración de la configuración en tablas de capacidad aprovisionada de DynamoDB y Administración automática de la capacidad de rendimiento con la función Auto Scaling de DynamoDB.

Ejemplo 1: Creación de una tabla aprovisionada

En el ejemplo siguiente de la AWS CLI se muestra cómo crear una tabla (Music). La clave principal consta de Artist (clave de partición) y SongTitle (clave de ordenación), ambas de tipo String. El desempeño máximo de esta tabla es de 10 unidades de capacidad de lectura y 5 unidades de capacidad de escritura.

aws dynamodb create-table \ --table-name Music \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --provisioned-throughput \ ReadCapacityUnits=10,WriteCapacityUnits=5

La operación CreateTable devuelve metadatos de la tabla, como se muestra a continuación:

{ "TableDescription": { "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music", "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "WriteCapacityUnits": 5, "ReadCapacityUnits": 10 }, "TableSizeBytes": 0, "TableName": "Music", "TableStatus": "CREATING", "TableId": "12345678-0123-4567-a123-abcdefghijkl", "KeySchema": [ { "KeyType": "HASH", "AttributeName": "Artist" }, { "KeyType": "RANGE", "AttributeName": "SongTitle" } ], "ItemCount": 0, "CreationDateTime": 1542397215.37 } }

El componente TableStatus indica el estado actual de la tabla (CREATING). Puede que la tabla tarde un tiempo en crearse, según los valores especificados para ReadCapacityUnits y WriteCapacityUnits. Cuanto mayores sean estos valores, más recursos tendrá que asignar DynamoDB a la tabla.

Ejemplo 2: Creación de una tabla bajo demanda

Para crear la misma tabla Music utilizando el modo bajo demanda:

aws dynamodb create-table \ --table-name Music \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --billing-mode=PAY_PER_REQUEST

La operación CreateTable devuelve metadatos de la tabla, como se muestra a continuación:

{ "TableDescription": { "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music", "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "WriteCapacityUnits": 0, "ReadCapacityUnits": 0 }, "TableSizeBytes": 0, "TableName": "Music", "BillingModeSummary": { "BillingMode": "PAY_PER_REQUEST" }, "TableStatus": "CREATING", "TableId": "12345678-0123-4567-a123-abcdefghijkl", "KeySchema": [ { "KeyType": "HASH", "AttributeName": "Artist" }, { "KeyType": "RANGE", "AttributeName": "SongTitle" } ], "ItemCount": 0, "CreationDateTime": 1542397468.348 } }
importante

Al llamar a DescribeTable en una tabla bajo demanda, las unidades de capacidad de lectura y de escritura se establecen en 0.

Descripción de una tabla

Para ver información detallada sobre una tabla, utilice la operación DescribeTable. Debe proporcionar el nombre de la tabla. El resultado de DescribeTable tiene el mismo formato que el de CreateTable; Incluye la marca temporal del momento de creación de la tabla, su esquema de claves, su configuración de rendimiento aprovisionado, su tamaño aproximado y los índices secundarios (si los hay).

importante

Al llamar a DescribeTable en una tabla bajo demanda, las unidades de capacidad de lectura y de escritura se establecen en 0.

ejemplo

aws dynamodb describe-table --table-name Music

La tabla está lista para usarla cuando el valor de TableStatus cambia de CREATING a ACTIVE.

nota

Si emite una solicitud DescribeTable inmediatamente después de una solicitud CreateTable, DynamoDB podría devolver un error (ResourceNotFoundException). El motivo es que DescribeTable usa una consulta con consistencia final, aunque los metadatos de la tabla podrían no estar disponibles todavía. Espere unos segundos y repita la solicitud DescribeTable.

A efectos de facturación, los costes de almacenamiento de DynamoDB incluyen un importe por elemento de 100 bytes en concepto de gastos generales. (Para obtener más información, consulte los precios de DynamoDB). Este importe adicional de 100 bytes por elemento no se utiliza al calcular las unidades de capacidad ni en la operación DescribeTable.

Actualización de una tabla

La operación UpdateTable permite realizar una de las acciones siguientes:

ejemplo

En el siguiente ejemplo de la AWS CLI se muestra cómo modificar los ajustes de desempeño provisionado de una tabla:

aws dynamodb update-table --table-name Music \ --provisioned-throughput ReadCapacityUnits=20,WriteCapacityUnits=10
nota

Cuando se emite una solicitud UpdateTable, el estado de la tabla cambia de AVAILABLE a UPDATING. La tabla permanece plenamente disponible para su uso mientras se encuentra en el estado UPDATING. Cuando este proceso finaliza, el estado de la tabla cambia de UPDATING a AVAILABLE.

ejemplo

En el siguiente ejemplo de la AWS CLI se muestra cómo modificar el modo de capacidad de lectura/escritura de una tabla al modo bajo demanda:

aws dynamodb update-table --table-name Music \ --billing-mode PAY_PER_REQUEST

Eliminación de una tabla

Puede eliminar las tablas que no utilice con la operación DeleteTable. La eliminación de una tabla es una operación irrecuperable.

ejemplo

En el ejemplo siguiente de AWS CLI, se muestra cómo se elimina una tabla.

aws dynamodb delete-table --table-name Music

Cuando se emite una solicitud DeleteTable, el estado de la tabla cambia de ACTIVE a DELETING. Puede que la tabla tarde un tiempo en eliminarse, según los recursos que utilice; por ejemplo, los datos almacenados en la tabla y las secuencias o índices que contenga.

Cuando la operación DeleteTable concluya, la tabla ya no existirá en DynamoDB.

Enumeración de nombres de tablas

La operación ListTables devuelve los nombres de las tablas de DynamoDB de la región y cuenta de AWS actuales.

ejemplo

En el siguiente ejemplo de la AWS CLI se muestra cómo enumerar los nombres de las tablas de DynamoDB.

aws dynamodb list-tables

Descripción de las cuotas de rendimiento aprovisionado

La operación DescribeLimits devuelve las cuotas vigentes de capacidad de lectura y escritura de la región y cuenta de AWS actuales.

ejemplo

En el siguiente ejemplo de la AWS CLI se muestra cómo describir las cuotas de rendimiento aprovisionado actuales.

aws dynamodb describe-limits

El resultado muestra las cuotas superiores de unidades de capacidad de lectura y escritura de la región y cuenta de AWS actuales.

Para obtener más información acerca de estas cuotas y cómo solicitar un aumento de cuotas, consulte Cuotas de rendimiento predeterminadas.