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 Amazon Timestream como destino para AWS Database Migration Service
Puede utilizar AWS Database Migration Service para migrar datos de su base de datos de origen a un punto de conexión de destino de Amazon Timestream, con soporte para migraciones de datos de carga completa y CDC.
Amazon Timestream es un servicio de base de datos de series temporales rápido, escalable y sin servidor creado para la ingesta de datos de gran volumen. Los datos de series temporales son una secuencia de puntos de datos recopilados durante un intervalo de tiempo y se utilizan para medir eventos que cambian con el tiempo. Se utiliza para recopilar, almacenar y analizar métricas de aplicaciones de IoT, DevOps aplicaciones y aplicaciones de análisis. Una vez que tenga los datos en Timestream, podrá visualizar e identificar las tendencias y los patrones de los datos prácticamente en tiempo real. Para obtener más información sobre Amazon Timestream, consulte ¿Qué es Amazon Timestream? en la Guía para desarrolladores de Amazon Timestream.
Temas
- Requisitos previos para el uso de Amazon Timestream como destino para AWS Database Migration Service
- Configuración de tareas de carga completa con varios subprocesos
- Configuración de tareas de carga de CDC con varios subprocesos
- Configuración de puntos de enlace al utilizar como destino para AWS DMS
- Creación y modificación de un punto de conexión de destino de Amazon Timestream
- Uso de la asignación de objetos para migrar datos a un tema de Timestream
- Restricciones al usar Amazon Timestream como destino para AWS Database Migration Service
Requisitos previos para el uso de Amazon Timestream como destino para AWS Database Migration Service
Antes de configurar Amazon Timestream como destino para AWS DMS, asegúrese de crear un rol de IAM. Este rol debe permitir que AWS DMS acceda a los datos que se migran a Amazon Timestream. En la siguiente política de IAM se muestra el conjunto mínimo de permisos de acceso para el rol que utilice para migrar a Timestream.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDescribeEndpoints", "Effect": "Allow", "Action": [ "timestream:DescribeEndpoints" ], "Resource": "*" }, { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "timestream:ListTables", "timestream:DescribeDatabase" ], "Resource": "arn:aws:timestream:
region
:account_id
:database/DATABASE_NAME
" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "timestream:DeleteTable", "timestream:WriteRecords", "timestream:UpdateTable", "timestream:CreateTable" ], "Resource": "arn:aws:timestream:region
:account_id
:database/DATABASE_NAME/table/TABLE_NAME
" } ] }
Si tiene intención de migrar todas las tablas, utilice *
para TABLE_NAME
en el ejemplo anterior.
Tenga en cuenta lo siguiente acerca del uso de Timestream como destino:
-
Si tiene intención de ingerir datos históricos con marcas de tiempo de más de 1 año, le recomendamos que utilice AWS DMS para escribir los datos en Amazon S3 en un formato de valores separados por comas (csv). A continuación, utilice la carga por lotes de Timestream para ingerir los datos a Timestream. Para obtener más información, consulte Uso de la carga por lotes en Timestream en la Guía para desarrolladores de Amazon Timestream.
Para migraciones de datos de carga completa de datos con menos de 1 año de antigüedad, recomendamos establecer el período de retención en el almacén en memoria de la tabla de Timestream superior o igual a la marca de tiempo más antigua. A continuación, una vez finalizada la migración, edite la retención del almacén en memoria de la tabla con el valor deseado. Por ejemplo, para migrar datos cuya marca de tiempo más antigua tenga 2 meses de antigüedad, haga lo siguiente:
Establezca la retención del almacén en memoria de la tabla de destino de Timestream en 2 meses.
Inicie la migración de datos utilizando AWS DMS.
Una vez que se complete la migración de datos, cambie el período de retención de la tabla de Timestream de destino al valor deseado.
Recomendamos estimar el costo del almacén en memoria antes de la migración utilizando la información de las siguientes páginas:
Para las migraciones de datos de CDC, recomendamos configurar el período de retención en el almacén en memoria de la tabla de destino de manera que los datos ingeridos se encuentren dentro de los límites de retención del almacén en memoria. Para obtener más información, consulte Prácticas recomendadas de escritura en la Guía para desarrolladores de Amazon Timestream.
Configuración de tareas de carga completa con varios subprocesos
Para ayudar a aumentar la velocidad de transferencia de datos, AWS DMS admite una tarea de migración de carga completa de varios subprocesos en un punto de conexión de destino de Timestream con la siguiente configuración de tareas:
-
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 Amazon Timestream 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 la tabla de destino de Amazon Timestream. El valor máximo para un destino de Amazon Timestream es de 32. Puede pedir que se incremente este límite máximo. -
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 Amazon Timestream. El valor predeterminado es 50. El valor máximo es 1000. Utilice este parámetro conParallelLoadThreads
.ParallelLoadBufferSize
es válido solo cuando hay más de un subproceso. -
ParallelLoadQueuesPerThread
: utilice esta opción para especificar el número de colas que acceden a cada subproceso simultáneo para eliminar los registros de datos de las colas y generar una carga por lotes para el destino. El valor predeterminado de es 1. Sin embargo, para los destinos de Amazon Timestream de varios tamaños de carga, el intervalo válido es de 5-512 colas por subproceso.
Configuración de tareas de carga de CDC con varios subprocesos
Para aumentar el rendimiento de CDC, AWS DMS admite esta configuración de las tareas:
-
ParallelApplyThreads
: especifica el número de subprocesos simultáneos que AWS DMS utiliza durante una carga de CDC para insertar registros de datos en un punto de conexión de destino de Timestream. El valor predeterminado es 1 y el máximo es 32. -
ParallelApplyBufferSize
: especifica el número máximo de registros que se almacenan en cada cola del búfer para los subprocesos simultáneos que insertan datos en un punto de conexión de destino de Timestream durante una carga de CDC. El valor predeterminado es 100 y el máximo es 1000. Utilice esta opción cuandoParallelApplyThreads
especifique más de un subproceso. -
ParallelApplyQueuesPerThread
: especifica el número de colas a las que accede cada subproceso para sacar registros de datos de las colas y generar una carga por lotes para un punto de conexión de Timestream durante el proceso de CDC. El valor predeterminado es 1 y el máximo es 512.
Configuración de puntos de enlace al utilizar como destino para AWS DMS
Puede utilizar la configuración de punto de conexión para configurar la base de datos de destino de Timestream de forma similar al uso de atributos de conexión adicionales. Se especifican los ajustes cuando se crea el punto de conexión de destino mediante la consola de AWS DMS o mediante el comando create-endpoint
en la AWS CLI, con la sintaxis JSON --timestream-settings '{"
.EndpointSetting"
:
"value"
, ...
}'
La siguiente tabla muestra la configuración de punto de conexión que puede utilizar con Timestream como destino.
Nombre | Descripción |
---|---|
|
Establezca este atributo para especificar el límite de retención para almacenar los datos migrados en el almacén en memoria de Timestream. El tiempo se mide en unidades de horas. El almacén en memoria de Timestream está optimizado para ofrecer un alto rendimiento de ingesta y un acceso rápido. Valor predeterminado: 24 (horas) Valores válidos: de 1 a 8736 (de 1 hora a 12 meses medidos en horas) Ejemplo: |
|
Establezca este atributo para especificar el nombre de la base de datos de Timestream de destino. Tipo: cadena Ejemplo: |
|
Establezca este atributo para especificar el nombre de la tabla de Timestream de destino. Tipo: cadena Ejemplo: |
|
Establezca este atributo para especificar la duración magnética aplicada a las tablas de Timestream en días. Este es el límite de retención de los datos ingeridos. Timestream elimina cualquier marca de tiempo que supere el límite de retención. Para obtener más información, consulte Almacenamiento en la Guía para desarrolladores de Amazon Timestream. Ejemplo: |
|
Establezca este atributo en Valor predeterminado: Ejemplo: |
|
Establezca este atributo en Valor predeterminado: Ejemplo: |
Creación y modificación de un punto de conexión de destino de Amazon Timestream
Una vez que haya creado un rol de IAM y establecido el conjunto mínimo de permisos de acceso, podrá crear un punto de conexión de destino de Amazon Timestream mediante la consola de AWS DMS o con el comando create-endpoint
en la AWS CLI, con la sintaxis JSON --timestream-settings '{"
.EndpointSetting"
:
"value"
, ...
}'
En los siguientes ejemplos se muestra cómo crear y modificar un punto de conexión de destino de Timestream con la AWS CLI.
Crear comando de punto de conexión de destino de Timestream
aws dms create-endpoint —endpoint-identifier timestream-target-demo --endpoint-type target —engine-name timestream --service-access-role-arn arn:aws:iam::123456789012:role/my-role --timestream-settings { "MemoryDuration": 20, "DatabaseName":"db_name", "MagneticDuration": 3, "CdcInsertsAndUpdates": true, "EnableMagneticStoreWrites": true, }
Modificar el comando de punto de conexión de destino de Timestream
aws dms modify-endpoint —endpoint-identifier timestream-target-demo --endpoint-type target —engine-name timestream --service-access-role-arn arn:aws:iam::123456789012:role/my-role --timestream-settings { "MemoryDuration": 20, "MagneticDuration": 3, }
Uso de la asignación de objetos para migrar datos a un tema de Timestream
AWS DMS usa reglas de asignación de tablas para asignar datos del origen al tema de Timestream de destino. Para asignar datos a un tema de destino, se utiliza un tipo de regla de asignación de tablas denominado asignación de objetos. Puede utilizar el mapeo de objetos para definir cómo los registros de datos del origen se asignan a los registros de datos publicados en un tema de Timestream.
Los temas de Timestream no tienen una estructura predeterminada distinta de una clave de partición.
nota
No tiene que utilizar la asignación de objetos. Puede utilizar la asignación de tablas normal para varias transformaciones. Sin embargo, el tipo de clave de partición seguirá estos comportamientos predeterminados:
-
La clave principal se usa como clave de partición para la carga completa.
-
Si no se utiliza ninguna configuración de tareas de aplicación paralela,
schema.table
se utiliza como clave de partición para CDC. -
Si se utiliza la configuración de tareas de aplicación paralela, la clave principal se utiliza como clave de partición para CDC.
Para crear una regla de mapeo de objetos, se especifica 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": "" } } ] }
{ "rules": [ { "rule-type": "object-mapping", "rule-id": "1", "rule-name": "timestream-map", "rule-action": "map-record-to-record", "target-table-name": "tablename", "object-locator": { "schema-name": "", "table-name": "" }, "mapping-parameters": { "timestream-dimensions": [ "column_name1", "column_name2" ], "timestream-timestamp-name": "time_column_name", "timestream-multi-measure-name": "column_name1or2", "timestream-hash-measure-name": true or false, "timestream-memory-duration": x, "timestream-magnetic-duration": y } } ] }
AWS DMS actualmente admite map-record-to-record
y map-record-to-document
como únicos valores válidos para el parámetro rule-action
. Los valores de map-record-to-record
y map-record-to-document
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.
Utilice map-record-to-record
al migrar desde una base de datos relacional a un tema de Timestream. Este tipo de regla utiliza el valor taskResourceId.schemaName.tableName
de la base de datos relacional como la clave de partición en el tema de Timestream 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 figura en la lista de atributos de exclude-columns
, AWS DMS crea un atributo correspondiente en la tema de destino. Este atributo se crea independientemente de si dicha columna de origen se utiliza en un mapeo de atributos.
Una forma de entender map-record-to-record
es verlo 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.
FirstName | LastName | StoreId | HomeAddress | HomePhone | WorkAddress | WorkPhone | DateofBirth |
---|---|---|---|---|---|---|---|
Randy |
Marsh | 5 |
221B Baker Street |
1234567890 |
31 Spooner Street, Quahog |
9876543210 |
02/29/1988 |
Para migrar esta información desde un esquema denominado Test
a un tema de Timestream, cree reglas para mapear los datos al tema. La siguiente regla ilustra la operación de asignación.
{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "rule-action": "include", "object-locator": { "schema-name": "Test", "table-name": "%" } }, { "rule-type": "object-mapping", "rule-id": "2", "rule-name": "DefaultMapToTimestream", "rule-action": "map-record-to-record", "object-locator": { "schema-name": "Test", "table-name": "Customers" } } ] }
Dados un tema de Timestream y una clave de partición (en este caso, taskResourceId.schemaName.tableName
), a continuación se ilustra el formato de registro resultante al usar nuestros datos de ejemplo en el tema de destino de Timestream:
{ "FirstName": "Randy", "LastName": "Marsh", "StoreId": "5", "HomeAddress": "221B Baker Street", "HomePhone": "1234567890", "WorkAddress": "31 Spooner Street, Quahog", "WorkPhone": "9876543210", "DateOfBirth": "02/29/1988" }
Restricciones al usar Amazon Timestream como destino para AWS Database Migration Service
Al utilizar Amazon Timestream como destino se aplican las siguientes restricciones:
Dimensiones y marcas de tiempo: Timestream utiliza las dimensiones y las marcas de tiempo de los datos de origen como una clave primaria compuesta, y no permite actualizar estos valores. Esto significa que si cambia la marca de tiempo o las dimensiones de un registro en la base de datos de origen, la base de datos de Timestream intentará crear un registro nuevo. Por lo tanto, si cambia la dimensión o la marca de tiempo de un registro para que coincidan con las de otro registro existente, AWS DMS actualiza los valores del otro registro en lugar de crear un registro nuevo o actualizar el registro anterior correspondiente.
Comandos DDL: la versión actual de AWS DMS solo admite comandos DDL
CREATE TABLE
yDROP TABLE
.Limitaciones de registro: Timestream tiene limitaciones para los registros, como el tamaño del registro y el tamaño de la medida. Para obtener más información, consulte Cuotas en la Guía para desarrolladores de Amazon Timestream.
Eliminar registros y valores nulos: Timestream no admite la eliminación de registros. Para permitir la migración de registros eliminados del origen, AWS DMS borra los campos correspondientes de los registros de la base de datos de destino de Timestream. AWS DMS cambia los valores de los campos del registro de destino correspondiente con 0 para los campos numéricos, null para los campos de texto y false para los campos booleanos.
Timestream como destino no admite orígenes que no sean bases de datos relacionales (RDBMS).
AWS DMS solo admite Timestream como destino en las siguientes regiones:
Este de EE. UU. (Norte de Virginia)
Este de EE. UU. (Ohio)
Oeste de EE. UU. (Oregón)
Europa (Irlanda)
Europa (Fráncfort)
Asia-Pacífico (Sídney)
Asia-Pacífico (Tokio)
Timestream como destino no admite la configuración de
TargetTablePrepMode
paraTRUNCATE_BEFORE_LOAD
. Le recomendamos que utiliceDROP_AND_CREATE
para esta configuración.