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 utilizarlos AWS DMS para migrar datos a una tabla de Amazon DynamoDB. Amazon DynamoDB es un servicio SQL sin base de datos totalmente gestionado que proporciona un rendimiento rápido y predecible con una escalabilidad perfecta. AWS DMS admite el uso de una base de datos relacional o MongoDB como fuente.

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 final de destino de DynamoDB, crea tantas tablas como en el punto final 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 SSLModo de la AWS DMS consola o API no se aplica a algunas transmisiones de datos y no a SQL servicios como Kinesis y DynamoDB. Son seguros de forma predeterminada, por lo que AWS DMS indica que el ajuste del SSL modo es nulo (Mode=Ninguno)SSL. No necesita proporcionar ninguna configuración adicional para que pueda utilizarla su terminal. SSL Por ejemplo, cuando se utiliza DynamoDB como punto de conexión de destino, es seguro de forma predeterminada. Todas las API llamadas a DynamoDB SSL utilizan DynamoDB, por lo que no es necesaria una opción SSL adicional en el punto final. AWS DMS Puede colocar datos y recuperarlos de forma segura a través de SSL puntos finales mediante el HTTPS protocolo, que se 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 de subprocesos múltiples a una instancia de destino de DynamoDB. DMSadmite este subprocesamiento múltiple con una configuración de tareas que incluye lo siguiente:

  • MaxFullLoadSubTasks— Utilice esta opción para indicar el número máximo de tablas de origen que se van a cargar en paralelo. DMScarga cada tabla en su tabla de destino de DynamoDB correspondiente mediante una subtarea dedicada. El valor predeterminado es 8. El valor máximo es 49.

  • ParallelLoadThreads— Utilice esta opción para especificar el número de subprocesos que se AWS DMS utilizan 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

    DMSasigna cada segmento de una tabla a su propio hilo para cargarlo. 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 se AWS DMS establecen los valores de los parámetros de DynamoDB para una tarea de migración, el valor predeterminado del parámetro Read Capacity Units RCU () se establece en 200.

El valor del parámetro Unidades de capacidad de escritura (WCU) también está establecido, pero su valor depende de otros parámetros:

  • El valor por defecto del WCU parámetro es 200.

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

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

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

AWS DMS admite la migración de datos a tipos de datos escalares de DynamoDB. Al migrar de una base de datos relacional como Oracle o My a SQL DynamoDB, es posible que desee reestructurar la forma en que almacena estos datos.

Actualmente, AWS DMS admite la reestructuración de tabla única a tabla única a atributos de 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

NULLlos datos del origen se ignoran en el destino.

Requisitos previos para usar DynamoDB como objetivo para AWS Database Migration Service

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

{ "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": "*" } ] }

Limitaciones al usar DynamoDB como objetivo 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 cambios (CDC), ya que puede provocar que lleguen datos no deseados al destino. Según la forma en que se realice el mapeo de objetos, una CDC operación que actualice la clave principal puede hacer una de estas dos cosas. 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 LOB datos a menos que sea unCLOB. AWS DMS convierte CLOB los datos en una cadena de DynamoDB al migrarlos.

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

  • BatchApplyno es compatible con un punto final de DynamoDB.

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

AWS DMS usa reglas de mapeo de tablas para mapear datos de la tabla de DynamoDB de origen a la 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 tiene una clave principal no compuesta, úsela. AWS DMS 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 es map-record-to-document el único valor válido para el rule-action parámetro. Estos valores especifican lo que AWS DMS ocurre de forma predeterminada con los registros que no están excluidos como parte de la lista de exclude-columns atributos. 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 utilizamap-record-to-record, para cualquier columna de la tabla de origen que no figure en la lista de exclude-columns atributos, AWS DMS crea el 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 se usamap-record-to-document, AWS DMS coloca los datos en un único atributo de mapa plano de DynamoDB en la fuente. 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, la asignación de atributos se utiliza para combinar los datos en nuevos elementos, como dónde, FirstNamey LastNamese agrupan para formar parte del CustomerNameobjetivo de DynamoDB. NickNamey no se excluyen los ingresos.

{ "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 usar el rule-action parámetro map-record-to-record, los datos NickNamey los ingresos se asignan a elementos del mismo nombre en el objetivo de DynamoDB.

Comience con AWS DMS

Sin embargo, supongamos que usa las mismas reglas pero cambia el rule-action parámetro a map-record-to-document. En este caso, las columnas que no figuran en el exclude-columns parámetro NickNamey los ingresos se asignan a un elemento _doc.

Comience con 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.

Comience con 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 lo que JSON se utiliza para crear la estructura objetivo deseada.

La estructura de los datos de Oracle es la siguiente:

FirstName LastName StoreId HomeAddress HomePhone WorkAddress WorkPhone DateOfBirth
Clave principal N/A
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/A
Randy,Marsh
5
{ "Name": "Randy", "Home": { "Address": "221B Baker Street", "Phone": 1234567890 }, "Work": { "Address": "31 Spooner Street, Quahog", "Phone": 9876541230 } }
02/29/1988

A continuación, se JSON muestra el mapeo de objetos y el mapeo de columnas que se utilizan para lograr 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 alternativadynamodb-map, puede utilizarla dynamodb-list como mapeo attribute-sub-type 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

En el siguiente ejemplo, se migran los datos de dos tablas de My SQL Database, nfl_data y sport_team, a dos tablas de DynamoDB denominadas y. NFLTeamsSportTeams A continuación se muestra la estructura de las tablas y la JSON utilizada para mapear los datos de las tablas de My SQL database a las tablas de DynamoDB.

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

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 | | +---------------+-------------+------+-----+---------+-------+

La estructura de la tabla de mi SQL base de datos sport_team se muestra a continuación:

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}\"}" } ] } } ] }

El ejemplo de salida de la tabla de NFLTeamsDynamoDB se muestra a continuación:

"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" }

El ejemplo de salida de la tabla de SportsTeams DynamoDB se muestra a continuación:

{ "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 es AWS DMS compatible con la mayoría de los tipos de datos de DynamoDB. La siguiente tabla muestra los tipos de datos de AWS DMS destino de Amazon que se admiten cuando se utilizan AWS DMS y el mapeo predeterminado a partir de AWS DMS los tipos de datos.

Para obtener información adicional sobre AWS DMS los tipos de datos, consulteTipos de datos de AWS Database Migration Service.

Al AWS DMS migrar datos de bases de datos heterogéneas, asignamos los tipos de datos de la base de datos de origen a tipos de datos intermedios denominados tipos de AWS DMS datos. A continuación, se mapean los tipos de datos intermedios en los tipos de datos de destino. La siguiente tabla muestra cada tipo de AWS DMS datos y el tipo de datos al que se asigna en DynamoDB:

AWS DMS tipo de datos Tipo de dato de DynamoDB

Cadena

Cadena

WString

Cadena

Booleano

Booleano

Fecha

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