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.
Puede utilizarlos AWS Database Migration Service para migrar datos de su base de datos de origen a un punto final de destino de Amazon Timestream, con soporte para migraciones de datos de Full Load 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 usar Amazon Timestream como objetivo 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 del punto final cuando se utiliza Timestream como objetivo 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
Limitaciones al usar Amazon Timestream como objetivo para AWS Database Migration Service
Requisitos previos para usar Amazon Timestream como objetivo para AWS Database Migration Service
Antes de configurar Amazon Timestream como objetivo, asegúrese AWS DMS de crear un rol de IAM. Esta función debe permitir acceder AWS DMS 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, úselo *
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 a carga completa y multiproceso a un punto final 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 subprocesos que se AWS DMS utilizan para cargar cada tabla en su 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 promover el desempeño de los CDC, AWS DMS es compatible con las siguientes configuraciones de tareas:
-
ParallelApplyThreads
— Especifica la cantidad de subprocesos simultáneos que se AWS DMS utilizan durante una carga de los CDC para enviar los registros de datos a un punto final 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 del punto final cuando se utiliza Timestream como objetivo 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. Los ajustes se especifican al crear el punto final de destino mediante la AWS DMS consola o mediante el create-endpoint
comando del AWS CLI, con la sintaxis --timestream-settings '{"
JSON.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: |
|
Defina este atributo 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 final de destino de Amazon Timestream AWS DMS mediante la consola o create-endpoint
mediante el comando de, con la sintaxis AWS CLIJSON. --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 utiliza reglas de mapeo de tablas para mapear los datos del tema de Timestream de 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
es el único valor válido para el parámetro. rule-action
map-record-to-document
Los valores map-record-to-record
y especifican lo que AWS DMS ocurre de forma predeterminada con los registros que no se excluyen como parte de la lista de exclude-columns
atributos. 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 utilizamap-record-to-record
, para cualquier columna de la tabla de origen que no aparezca en la lista de exclude-columns
atributos, AWS DMS crea el atributo correspondiente en el 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"
}
Limitaciones al usar Amazon Timestream como objetivo 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 actualice los valores del otro registro en lugar de crear un registro nuevo o actualizar el registro anterior correspondiente.
Comandos DDL: la versión actual AWS DMS solo admite
CREATE TABLE
comandos DDL.DROP 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, nulo para los campos de texto y falso 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.