Uso de una base de datos de Amazon DynamoDB como destino para AWS Database Migration Service - AWS Database Migration Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de una base de datos de Amazon DynamoDB como destino para AWS Database Migration Service

Puede utilizar AWS DMS para migrar datos a una tabla de Amazon DynamoDB. Amazon DynamoDB es un servicio de base de datos NoSQL totalmente administrado que ofrece un rendimiento rápido y previsible, así como una escalabilidad óptima. AWS DMS es compatible con la base de datos relacional o MongoDB como origen.

En DynamoDB se trabaja principalmente con tablas, elementos y atributos. Una tabla es una recopilación de elementos y cada elemento es una recopilación de atributos. DynamoDB utiliza claves primarias, denominadas claves de partición, para identificar cada elemento de una tabla de forma unívoca. También puede utilizar claves e índices secundarios para proporcionar más flexibilidad a la hora de realizar consultas.

Puede utilizar el mapeo de objetos para migrar sus datos desde una base de datos de origen a una tabla de DynamoDB de destino. El mapeo de objetos le permite determinar dónde se encuentran los datos de origen en el destino.

Cuando AWS DMS crea tablas en un punto de conexión de destino de DynamoDB, crea tantas tablas como haya en el punto de conexión de la base de datos de origen. AWS DMS también establece varios valores de parámetros de DynamoDB. El costo de la creación de la tabla depende de la cantidad de datos y del número de tablas que hay que migrar.

nota

La opción de modo SSL en la consola o la API de AWS DMS no se aplica a algunos servicios de flujo de datos y NoSQL, como Kinesis y DynamoDB. Son seguros de forma predeterminada, por lo que AWS DMS muestra que la configuración del modo SSL es igual a cero (Modo SSL=Ninguno). No necesita proporcionar ninguna configuración adicional para que el punto de conexión utilice SSL. Por ejemplo, cuando se utiliza DynamoDB como punto de conexión de destino, es seguro de forma predeterminada. Todas las llamadas de la API a DynamoDB utilizan SSL, por lo que no es necesaria una opción SSL adicional en el punto de conexión de AWS DMS. Puede colocar y recuperar datos de forma segura a través de puntos de conexión SSL mediante el protocolo HTTPS, que AWS DMS utiliza de forma predeterminada al conectarse a una base de datos de DynamoDB.

Para ayudar a aumentar la velocidad de la transferencia, AWS DMS admite una carga completa con varios subprocesos a una instancia de destino de DynamoDB. DMS admite este multriproceso con configuración de tareas que incluyen lo siguiente:

  • MaxFullLoadSubTasks: utilice esta opción para indicar el número máximo de tablas de origen que se pueden cargar en paralelo. DMS carga cada tabla en su tabla de destino de DynamoDB correspondiente mediante una tarea secundaria dedicada. El valor predeterminado es 8. El valor máximo es 49.

  • ParallelLoadThreads: utilice esta opción para especificar el número de procesos que AWS DMS utiliza para cargar cada tabla en su tabla de destino de DynamoDB. El valor predeterminado es 0 (subproceso único). El valor máximo es 200. Puede pedir que se incremente este límite máximo.

    nota

    El DMS asigna cada segmento de una tabla a su propio subproceso para la carga. Por lo tanto, establezca ParallelLoadThreads en el número máximo de segmentos que especifique para una tabla en el origen.

  • ParallelLoadBufferSize: utilice esta opción para especificar el número máximo de registros para almacenar en el búfer que los subprocesos de carga en paralelo utilizan para cargar datos en el destino de DynamoDB. El valor predeterminado es 50. El valor máximo es 1000. Utilice este parámetro con ParallelLoadThreads. ParallelLoadBufferSize es válido solo cuando hay más de un subproceso.

  • Ajustes de la asignación de tablas para tablas individuales: utilice las reglas de table-settings para identificar las tablas individuales del origen que desea cargar en paralelo. Use también estas reglas para especificar cómo segmentar la filas de cada tabla para cargas de multiprocesos. Para obtener más información, consulte Reglas y operaciones de configuración de tablas y recopilaciones.

nota

Cuando AWS DMS establece valores de parámetros de DynamoDB para una tarea de migración, el valor del parámetro para las unidades de capacidad de lectura (RCU) predeterminadas se establece en 200.

También se establece el valor del parámetro de las unidades de capacidad de escritura (WCU), pero su valor depende de otras configuraciones diferentes:

  • El valor predeterminado para el parámetro WCU es 200.

  • Si la configuración de la tarea ParallelLoadThreads se establece en un valor superior a 1 (el valor predeterminado es 0), entonces el parámetro WCU se establece en un valor 200 veces el valor de ParallelLoadThreads.

  • Las tarifas de uso de AWS DMS estándar se aplican a los recursos que utilice.

Migración desde una base de datos relacional a una tabla de DynamoDB

AWS DMS permite la migración de datos a tipos de datos escalares de DynamoDB. Al migrar desde una base de datos relacional como Oracle o MySQL a DynamoDB, puede reestructurar la manera de almacenar dichos datos.

En la actualidad, AWS DMS admite la reestructuración de una tabla en otra tabla con los atributos del tipo escalar de DynamoDB. Si migra datos a DynamoDB desde una tabla de base de datos relacional, toma los datos de una tabla y cambia su formato por atributos de tipo de datos escalares de DynamoDB. Estos atributos pueden aceptar datos de varias columnas y puede mapear una columna en un atributo directamente.

AWS DMS admite los siguientes tipos de datos escalares de DynamoDB:

  • Cadena

  • Número

  • Booleano

nota

Los datos NULL del origen se ignoran en el destino.

Requisitos previos para utilizar DynamoDB como un destino para AWS Database Migration Service

Antes de empezar a trabajar con una base de datos de DynamoDB como destino de AWS DMS, asegúrese de crear un rol de IAM. Este rol de IAM debería permitir a AWS DMS asumir y conceder acceso a las tablas de DynamoDB a las que se va a migrar. El conjunto mínimo de permisos de acceso se muestra en la siguiente política de IAM.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

El rol que utilice para la migración a DynamoDB debe tener los siguientes permisos.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:PutItem", "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:DeleteTable", "dynamodb:DeleteItem", "dynamodb:UpdateItem" ], "Resource": [ "arn:aws:dynamodb:us-west-2:account-id:table/name1", "arn:aws:dynamodb:us-west-2:account-id:table/OtherName*", "arn:aws:dynamodb:us-west-2:account-id:table/awsdms_apply_exceptions", "arn:aws:dynamodb:us-west-2:account-id:table/awsdms_full_load_exceptions" ] }, { "Effect": "Allow", "Action": [ "dynamodb:ListTables" ], "Resource": "*" } ] }

Restricciones al uso de DynamoDB como destino para AWS Database Migration Service

Al utilizar DynamoDB como destino se aplican las siguientes restricciones:

  • DynamoDB limita la precisión del tipo de datos Number a 38 espacios. Almacene todos los tipos de datos con una mayor precisión como cadena. Deberá indicarlo explícitamente empleando la característica de mapeo de objetos.

  • Debido a que DynamoDB no tiene un tipo de datos Date, los datos que utilizan el tipo de datos Date se convierten en cadenas.

  • DynamoDB no permite actualizaciones de los atributos de clave principal. Esta restricción es importante cuando se utiliza la replicación continua con captura de datos de cambio (CDC), ya que puede resultar en la presencia de datos no deseados en el destino. En función del mapeo de objetos, una operación de CDC que actualiza la clave principal puede hacer una de estas dos opciones. Puede producir un error o insertar un nuevo elemento con la clave principal actualizada y datos incompletos.

  • AWS DMS solo admite la replicación de tablas con claves principales no compuestas. La excepción es si especifica un mapeo de objetos para la tabla de destino con una clave de partición personalizada, una clave de ordenación o ambas.

  • AWS DMS no admite datos de LOB salvo si se trata de un CLOB. AWS DMS convierte los datos CLOB en una cadena de DynamoDB al migrar los datos.

  • Cuando se utiliza DynamoDB como destino, solo se admite la tabla de control Apply Exceptions (Aplicar excepciones) (dmslogs.awsdms_apply_exceptions). Para obtener más información sobre las tablas de control, consulte Configuración de las tareas de la tabla de control.

  • AWS DMS no admite la configuración de tareas TargetTablePrepMode=TRUNCATE_BEFORE_LOAD para DynamoDB como objetivo.

  • AWS DMS no admite la configuración de tareas TaskRecoveryTableEnabled para DynamoDB como objetivo.

Uso de la asignación de objetos para migrar datos a DynamoDB

AWS DMS usa las reglas de mapeo de tablas para asignar datos del origen a la tabla de DynamoDB de destino. Para asignar datos a un destino de DynamoDB, se utiliza un tipo de regla de mapeo de tabla denominado object-mapping. El mapeo de objetos le permite definir los nombres de atributo y los datos que se les puede migrar. Debe tener reglas de selección cuando utilice el mapeo de objetos.

DynamoDB no tiene una estructura predeterminada, simplemente dispone de una clave de partición y una clave de clasificación opcional. Si dispone de una clave principal no compuesta, AWS DMS la utiliza. Si tiene una clave principal compuesta o desea utilizar una clave de ordenación, defina estas claves y el resto de los atributos de su tabla de DynamoDB de destino.

Para crear una regla de mapeo de objetos, debe especificar rule-type como object-mapping. Esta regla indica el tipo de mapeo de objetos que desea utilizar.

La estructura de la regla es la siguiente:

{ "rules": [ { "rule-type": "object-mapping", "rule-id": "<id>", "rule-name": "<name>", "rule-action": "<valid object-mapping rule action>", "object-locator": { "schema-name": "<case-sensitive schema name>", "table-name": "" }, "target-table-name": "<table_name>" } ] }

AWS DMS actualmente admite map-record-to-record y map-record-to-document como únicos valores válidos para el parámetro rule-action. Estos valores especifican qué hace AWS DMS de forma predeterminada con los registros que no se excluyen como parte de la lista de atributos exclude-columns. Estos valores no afectan a los mapeos de atributos en modo alguno.

  • Puede utilizar map-record-to-record al migrar desde una base de datos relacional a DynamoDB. Utiliza la clave principal de la base de datos relacional como la clave de partición en DynamoDB y crea un atributo para cada columna de la base de datos de origen. Cuando se utiliza map-record-to-record, para cada columna de la tabla de origen que no se muestra en la lista de atributos de exclude-columns, AWS DMS crea un atributo correspondiente en la instancia de DynamoDB de destino. Lo hace independientemente de si dicha columna de origen se utiliza en un mapeo de atributos.

  • Utilice map-record-to-document para colocar columnas de origen en una asignación de DynamoDB único y plano en el destino utilizando el nombre de atributo “_doc”. Cuando utilice map-record-to-document, AWS DMS coloca los datos en un atributo de asignación de DynamoDB único y plano en el origen. Este atributo se denomina "_doc". Esta colocación se aplica a cada columna de la tabla de origen que no se enumera en la lista de atributos exclude-columns.

Una forma de entender la diferencia entre los parámetros de rule-action map-record-to-record y map-record-to-document consiste en ver los dos parámetros en acción. En este ejemplo, imagine que empieza con una fila de una tabla de base de datos relacional con la estructura y los datos siguientes:

base de datos de ejemplo

Para migrar esta información a DynamoDB, crea reglas para mapear los datos en un elemento de la tabla de DynamoDB. Tenga en cuenta las columnas listadas para el parámetro exclude-columns. Estas columnas no se mapean directamente en el destino. En su lugar, el mapeo de atributos se utiliza para combinar los datos en elementos nuevos como, por ejemplo, las columnas FirstName (Nombre) y LastName (Apellidos) que se agrupan en CustomerName (NombreCliente) en el destino de DynamoDB. NickName (Alias) e income (ingresos) no se excluyen.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "object-mapping", "rule-id": "2", "rule-name": "TransformToDDB", "rule-action": "map-record-to-record", "object-locator": { "schema-name": "test", "table-name": "customer" }, "target-table-name": "customer_t", "mapping-parameters": { "partition-key-name": "CustomerName", "exclude-columns": [ "FirstName", "LastName", "HomeAddress", "HomePhone", "WorkAddress", "WorkPhone" ], "attribute-mappings": [ { "target-attribute-name": "CustomerName", "attribute-type": "scalar", "attribute-sub-type": "string", "value": "${FirstName},${LastName}" }, { "target-attribute-name": "ContactDetails", "attribute-type": "document", "attribute-sub-type": "dynamodb-map", "value": { "M": { "Home": { "M": { "Address": { "S": "${HomeAddress}" }, "Phone": { "S": "${HomePhone}" } } }, "Work": { "M": { "Address": { "S": "${WorkAddress}" }, "Phone": { "S": "${WorkPhone}" } } } } } } ] } } ] }

Al utilizar el parámetro de la rule-action map-record-a-record, los datos de NickName e income se mapean en los elementos del mismo nombre en el destino de DynamoDB.

Introducción a AWS DMS

Sin embargo, supongamos que utiliza las mismas reglas pero cambia el parámetro rule-action a map-record-to-document. En este caso, las columnas que no aparecen en el parámetro exclude-columns, NickName (Alias) e income (ingresos), se asignan a un elemento _doc.

Introducción a AWS DMS

Uso de expresiones de condición personalizadas con mapeo de objetos

Puede utilizar una característica de DynamoDB denominada “expresiones de condición” para manipular los datos que se escriben en una tabla de DynamoDB. Para obtener más información sobre las expresiones de condición en DynamoDB, consulte Expresiones de condición.

Un miembro de una expresión de condición consta de:

  • una expresión (obligatorio)

  • los valores de los atributos de expresión (opcional). Especifica una estructura json de DynamoDB del valor del atributo

  • los nombres de los atributos de expresión (opcional)

  • las opciones sobre cuándo utilizar la expresión de condición (opcional). El valor predeterminado es apply-during-cdc = false y apply-during-full-load = true

La estructura de la regla es la siguiente:

"target-table-name": "customer_t", "mapping-parameters": { "partition-key-name": "CustomerName", "condition-expression": { "expression":"<conditional expression>", "expression-attribute-values": [ { "name":"<attribute name>", "value":<attribute value> } ], "apply-during-cdc":<optional Boolean value>, "apply-during-full-load": <optional Boolean value> }

En el siguiente ejemplo se destacan las secciones que se utilizan para la expresión de condición.

Introducción a AWS DMS

Uso del mapeo de atributos con el mapeo de objetos

El mapeo de atributos le permite especificar una cadena de ejemplo utilizando nombres de columna del origen para reestructurar los datos en el destino. El formato se modifica en función de lo que especifique el usuario en la plantilla.

El siguiente ejemplo muestra la estructura de la base de datos de origen y la estructura deseada de destino en DynamoDB. En primer lugar se muestra la estructura de origen, en este caso, una base de datos de Oracle y, a continuación, la estructura deseada de los datos en DynamoDB. El ejemplo concluye con la estructura JSON utilizada para crear la estructura de destino deseada.

La estructura de los datos de Oracle es la siguiente:

FirstName LastName StoreId HomeAddress HomePhone WorkAddress WorkPhone DateOfBirth
Clave principal N/D
Randy Marsh 5 221B Baker Street 1234567890 31 Spooner Street, Quahog 9876543210 02/29/1988

La estructura de los datos de DynamoDB es la siguiente:

CustomerName StoreId ContactDetails DateOfBirth
Clave de partición Clave de ordenación N/D
Randy,Marsh
5
{ "Name": "Randy", "Home": { "Address": "221B Baker Street", "Phone": 1234567890 }, "Work": { "Address": "31 Spooner Street, Quahog", "Phone": 9876541230 } }
02/29/1988

La siguiente estructura JSON muestra el mapeo de objetos y de columnas que se utiliza para conseguir la estructura de DynamoDB:

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "object-mapping", "rule-id": "2", "rule-name": "TransformToDDB", "rule-action": "map-record-to-record", "object-locator": { "schema-name": "test", "table-name": "customer" }, "target-table-name": "customer_t", "mapping-parameters": { "partition-key-name": "CustomerName", "sort-key-name": "StoreId", "exclude-columns": [ "FirstName", "LastName", "HomeAddress", "HomePhone", "WorkAddress", "WorkPhone" ], "attribute-mappings": [ { "target-attribute-name": "CustomerName", "attribute-type": "scalar", "attribute-sub-type": "string", "value": "${FirstName},${LastName}" }, { "target-attribute-name": "StoreId", "attribute-type": "scalar", "attribute-sub-type": "string", "value": "${StoreId}" }, { "target-attribute-name": "ContactDetails", "attribute-type": "scalar", "attribute-sub-type": "string", "value": "{\"Name\":\"${FirstName}\",\"Home\":{\"Address\":\"${HomeAddress}\",\"Phone\":\"${HomePhone}\"}, \"Work\":{\"Address\":\"${WorkAddress}\",\"Phone\":\"${WorkPhone}\"}}" } ] } } ] }

Otro modo de utilizar el mapeo de columnas es utilizar el formato DynamoDB como su tipo de documento. El siguiente ejemplo de código utiliza dynamodb-map como el attribute-sub-type para el mapeo de atributos.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "object-mapping", "rule-id": "2", "rule-name": "TransformToDDB", "rule-action": "map-record-to-record", "object-locator": { "schema-name": "test", "table-name": "customer" }, "target-table-name": "customer_t", "mapping-parameters": { "partition-key-name": "CustomerName", "sort-key-name": "StoreId", "exclude-columns": [ "FirstName", "LastName", "HomeAddress", "HomePhone", "WorkAddress", "WorkPhone" ], "attribute-mappings": [ { "target-attribute-name": "CustomerName", "attribute-type": "scalar", "attribute-sub-type": "string", "value": "${FirstName},${LastName}" }, { "target-attribute-name": "StoreId", "attribute-type": "scalar", "attribute-sub-type": "string", "value": "${StoreId}" }, { "target-attribute-name": "ContactDetails", "attribute-type": "document", "attribute-sub-type": "dynamodb-map", "value": { "M": { "Name": { "S": "${FirstName}" }, "Home": { "M": { "Address": { "S": "${HomeAddress}" }, "Phone": { "S": "${HomePhone}" } } }, "Work": { "M": { "Address": { "S": "${WorkAddress}" }, "Phone": { "S": "${WorkPhone}" } } } } } } ] } } ] }

Como alternativa a dynamodb-map, puede usar dynamodb-list como subtipo de atributo para la asignación de atributos, como se muestra en el siguiente ejemplo.

{ "target-attribute-name": "ContactDetailsList", "attribute-type": "document", "attribute-sub-type": "dynamodb-list", "value": { "L": [ { "N": "${FirstName}" }, { "N": "${HomeAddress}" }, { "N": "${HomePhone}" }, { "N": "${WorkAddress}" }, { "N": "${WorkPhone}" } ] } }

Ejemplo 1: Uso del mapeo de atributos con el mapeo de objetos

El siguiente ejemplo migra datos de dos tablas de la base de datos de MySQL, nfl_data y sport_team, a dos tablas de DynamoDB denominadas NFLTeams y SportTeams. A continuación se muestra la estructura de las tablas y la estructura JSON que se utilizan para mapear los datos de las tablas de la base de datos MySQL en las tablas de DynamoDB.

A continuación se muestra la estructura de la tabla de base de datos MySQL nfl_data:

mysql> desc nfl_data; +---------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+-------------+------+-----+---------+-------+ | Position | varchar(5) | YES | | NULL | | | player_number | smallint(6) | YES | | NULL | | | Name | varchar(40) | YES | | NULL | | | status | varchar(10) | YES | | NULL | | | stat1 | varchar(10) | YES | | NULL | | | stat1_val | varchar(10) | YES | | NULL | | | stat2 | varchar(10) | YES | | NULL | | | stat2_val | varchar(10) | YES | | NULL | | | stat3 | varchar(10) | YES | | NULL | | | stat3_val | varchar(10) | YES | | NULL | | | stat4 | varchar(10) | YES | | NULL | | | stat4_val | varchar(10) | YES | | NULL | | | team | varchar(10) | YES | | NULL | | +---------------+-------------+------+-----+---------+-------+

A continuación se muestra la estructura de la tabla de la base de datos MySQL sport_team:

mysql> desc sport_team; +---------------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------------------+--------------+------+-----+---------+----------------+ | id | mediumint(9) | NO | PRI | NULL | auto_increment | | name | varchar(30) | NO | | NULL | | | abbreviated_name | varchar(10) | YES | | NULL | | | home_field_id | smallint(6) | YES | MUL | NULL | | | sport_type_name | varchar(15) | NO | MUL | NULL | | | sport_league_short_name | varchar(10) | NO | | NULL | | | sport_division_short_name | varchar(10) | YES | | NULL | |

A continuación, se muestran las reglas de mapeo de tablas que se utilizan para asignar las dos tablas a las dos tablas de DynamoDB:

{ "rules":[ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "dms_sample", "table-name": "nfl_data" }, "rule-action": "include" }, { "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "dms_sample", "table-name": "sport_team" }, "rule-action": "include" }, { "rule-type":"object-mapping", "rule-id":"3", "rule-name":"MapNFLData", "rule-action":"map-record-to-record", "object-locator":{ "schema-name":"dms_sample", "table-name":"nfl_data" }, "target-table-name":"NFLTeams", "mapping-parameters":{ "partition-key-name":"Team", "sort-key-name":"PlayerName", "exclude-columns": [ "player_number", "team", "name" ], "attribute-mappings":[ { "target-attribute-name":"Team", "attribute-type":"scalar", "attribute-sub-type":"string", "value":"${team}" }, { "target-attribute-name":"PlayerName", "attribute-type":"scalar", "attribute-sub-type":"string", "value":"${name}" }, { "target-attribute-name":"PlayerInfo", "attribute-type":"scalar", "attribute-sub-type":"string", "value":"{\"Number\": \"${player_number}\",\"Position\": \"${Position}\",\"Status\": \"${status}\",\"Stats\": {\"Stat1\": \"${stat1}:${stat1_val}\",\"Stat2\": \"${stat2}:${stat2_val}\",\"Stat3\": \"${stat3}:${ stat3_val}\",\"Stat4\": \"${stat4}:${stat4_val}\"}" } ] } }, { "rule-type":"object-mapping", "rule-id":"4", "rule-name":"MapSportTeam", "rule-action":"map-record-to-record", "object-locator":{ "schema-name":"dms_sample", "table-name":"sport_team" }, "target-table-name":"SportTeams", "mapping-parameters":{ "partition-key-name":"TeamName", "exclude-columns": [ "name", "id" ], "attribute-mappings":[ { "target-attribute-name":"TeamName", "attribute-type":"scalar", "attribute-sub-type":"string", "value":"${name}" }, { "target-attribute-name":"TeamInfo", "attribute-type":"scalar", "attribute-sub-type":"string", "value":"{\"League\": \"${sport_league_short_name}\",\"Division\": \"${sport_division_short_name}\"}" } ] } } ] }

A continuación se muestra el resultado de ejemplo de la tabla NFLTeams de DynamoDB:

"PlayerInfo": "{\"Number\": \"6\",\"Position\": \"P\",\"Status\": \"ACT\",\"Stats\": {\"Stat1\": \"PUNTS:73\",\"Stat2\": \"AVG:46\",\"Stat3\": \"LNG:67\",\"Stat4\": \"IN 20:31\"}", "PlayerName": "Allen, Ryan", "Position": "P", "stat1": "PUNTS", "stat1_val": "73", "stat2": "AVG", "stat2_val": "46", "stat3": "LNG", "stat3_val": "67", "stat4": "IN 20", "stat4_val": "31", "status": "ACT", "Team": "NE" }

A continuación se muestra el resultado de ejemplo de la tabla SportsTeams de DynamoDB:

{ "abbreviated_name": "IND", "home_field_id": 53, "sport_division_short_name": "AFC South", "sport_league_short_name": "NFL", "sport_type_name": "football", "TeamInfo": "{\"League\": \"NFL\",\"Division\": \"AFC South\"}", "TeamName": "Indianapolis Colts" }

Tipos de datos de destino para DynamoDB

El punto de conexión de DynamoDB para AWS DMS es compatible con la mayoría de los tipos de datos de DynamoDB. En la tabla siguiente se muestran los tipos de datos de destino de AWS DMS que se admiten cuando se utiliza AWS DMS y el mapeo predeterminado de los tipos de datos de AWS DMS.

Para obtener más información sobre los tipos de datos de AWS DMS, consulte Tipos de datos de AWS Database Migration Service.

Cuando AWS DMS migra datos desde bases de datos heterogéneas, se mapean tipos de datos desde la base de datos de origen a tipos de datos intermedios llamados tipos de datos de AWS DMS. A continuación, se mapean los tipos de datos intermedios en los tipos de datos de destino. La tabla siguiente muestra cada tipo de datos de AWS DMS y el tipo de datos con el que se mapea en DynamoDB:

Tipo de datos AWS DMS Tipo de dato de DynamoDB

Cadena

Cadena

WString

Cadena

Booleano

Booleano

Date

Cadena

DateTime

Cadena

INT1

Número

INT2

Número

INT4

Número

INT8

Número

Numérico

Número

Real4

Número

Real8

Número

UINT1

Número

UINT2

Número

UINT4

Número

UINT8 Número
CLOB Cadena