Uso de Amazon S3 como destino deAWS 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 Amazon S3 como destino deAWS Database Migration Service

Puede migrar datos a Amazon S3 medianteAWS DMSdesde cualquiera de las fuentes de bases de datos compatibles. Cuando se utiliza Amazon S3 como objetivo en unAWS DMStarea, tanto los datos de carga completa como los de captura de datos de cambio (CDC) se escriben de forma predeterminada en un formato de valores separados por comas (.csv). Para opciones de almacenamiento más compacto y consulta más rápida, también tiene la opción de escribir los datos en formato Apache Parquet (.parquet).

AWS DMSnombra los archivos creados durante una carga completa mediante un contador hexadecimal incremental; por ejemplo, LOAD00001.csv, LOAD00002..., LOAD00009, LOAD0000A, etc. para los archivos.csv.AWS DMSnombra los archivos CDC mediante marcas de tiempo, por ejemplo, 20141029-1134010000.csv. Para cada tabla de origen que contenga registros,AWS DMScrea una carpeta en la carpeta de destino especificada (si la tabla de origen no está vacía).AWS DMSescriba todos los archivos de carga completa y de CDC en el bucket de Amazon S3 especificado. Puede controlar el tamaño de los archivos queAWS DMScrea al usarMaxFileSizeconfiguración de punto final.

El parámetro bucketFolder contiene la ubicación en la que se almacenan los archivos .csv o .parquet antes de que se carguen en el bucket de S3. Con los archivos.csv, los datos de las tablas se almacenan en el siguiente formato en el bucket S3, que se muestra con los archivos a plena carga.

database_schema_name/table_name/LOAD00000001.csv database_schema_name/table_name/LOAD00000002.csv ... database_schema_name/table_name/LOAD00000009.csv database_schema_name/table_name/LOAD0000000A.csv database_schema_name/table_name/LOAD0000000B.csv ...database_schema_name/table_name/LOAD0000000F.csv database_schema_name/table_name/LOAD00000010.csv ...

Puede especificar el delimitador de columnas, el delimitador de filas y otros parámetros mediante los atributos de conexión adicionales. Para obtener más información acerca de los atributos de conexión adicionales, consulte Configuración de punto final cuando se utiliza Amazon S3 como destino paraAWS DMS al final de esta sección.

Puede especificar el propietario del bucket y evitar los francotiradores mediante elExpectedBucketOwnerConfiguración de punto de conexión de Amazon S3, como se muestra a continuación. Cuando realice una solicitud para probar una conexión o realice una migración, S3 comprobará el ID de cuenta del propietario del bucket con el parámetro especificado.

--s3-settings='{"ExpectedBucketOwner": "AWS_Account_ID"}'

Cuando usasAWS DMSpara replicar los cambios en los datos mediante una tarea de los CDC, la primera columna del archivo de salida .csv o .parquet indica cómo se modificaron los datos de la fila, como se muestra en el siguiente archivo.csv.

I,101,Smith,Bob,4-Jun-14,New York U,101,Smith,Bob,8-Oct-15,Los Angeles U,101,Smith,Bob,13-Mar-17,Dallas D,101,Smith,Bob,13-Mar-17,Dallas

En este ejemplo, suponga que hay una tabla EMPLOYEE en la base de datos de origen. AWS DMS escribe datos en el archivo .csv o .parquet, en respuesta a los siguientes eventos:

  • Un nuevo empleado (Bob Smith, ID de 101) es contratado el 4 de junio de 2014 en la oficina de Nueva York. En el archivo .csv o .parquet, la I de la primera columna indica que se ha insertado (INSERT) en la tabla del EMPLEADO en la base de datos de origen.

  • El 8 de octubre de 15, se transfiere a Bob a la oficina de Los Ángeles. En el archivo .csv o .parquet, la U indica que la fila correspondiente de la tabla del EMPLEADO se ha actualizado (UPDATE) para reflejar la nueva ubicación de la oficina de Bob. El resto de la línea refleja la fila en la tabla del EMPLEADO tal y como aparece después de la actualización (UPDATE).

  • El 13 de marzo de 2017, vuelven a transferir a Bob a la oficina de Dallas. En el archivo .csv o .parquet, la U indica que esta fila se ha actualizado de nuevo (con UPDATE). El resto de la línea refleja la fila en la tabla del EMPLEADO tal y como aparece después de la actualización (UPDATE).

  • Después de trabajar en Dallas durante un tiempo, Bob se marcha de la empresa. En el archivo .csv o .parquet, la D indica que la fila se eliminó (con DELETE) en la tabla de origen. El resto de la línea refleja cómo aparecía la fila en la tabla del EMPLEADO antes de eliminarla.

Tenga en cuenta que, de forma predeterminada, para los CDC,AWS DMSalmacena los cambios de fila de cada tabla de la base de datos sin tener en cuenta el orden de las transacciones. Si desea almacenar los cambios de fila en los archivos CDC según el orden de las transacciones, debe utilizar la configuración del punto final de S3 para especificarlo y la ruta de la carpeta en la que desea que se almacenen los archivos de transacciones de CDC en el destino de S3. Para obtener más información, consulte Capturar los cambios de datos (CDC), incluido el orden de transacción en el objetivo S3.

Para controlar la frecuencia de las escrituras en un destino de Amazon S3 durante una tarea de replicación de datos, puede configurar elcdcMaxBatchIntervalycdcMinFileSizeatributos de conexión adicionales. Esto puede dar como resultado un mejor rendimiento al analizar los datos sin realizar operaciones adicionales que supongan una sobrecarga. Para obtener más información, consulte Configuración de punto final cuando se utiliza Amazon S3 como destino paraAWS DMS

Requisitos previos para usar Amazon S3 como objetivo

Antes de utilizar Amazon S3 como destino, compruebe que se cumple lo siguiente:

  • El bucket de S3 que está utilizando como objetivo está en el mismoAWSRegión que corresponde a la instancia de replicación de DMS que está utilizando para migrar los datos.

  • LaAWSla cuenta que utilice para la migración tiene una función de IAM con acceso de escritura y eliminación al bucket de S3 que está utilizando como destino.

  • Este rol tiene acceso de etiquetado por lo que puede etiquetar cualquier objeto de S3 escrito en el bucket de destino.

  • El rol de IAM tiene DMS (dms.amazonaws.com) agregado comoentidad de confianza.

Para configurar el acceso de esta cuenta, asegúrese de que el rol asignado a la cuenta de usuario utilizada para crear la tarea de migración tenga el siguiente conjunto de permisos.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:DeleteObject", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::buckettest2/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::buckettest2" ] } ] }

Para conocer los requisitos previos para utilizar la validación con S3 como objetivo, consulteRequisitos previos de validación de objetivos de S3.

Limitaciones del uso de Amazon S3 como objetivo

Cuando utilice Amazon S3 como destino, se aplicarán las siguientes limitaciones:

  • No habilite el control de versiones para S3. Si necesita el control de versiones de S3, utilice las políticas de ciclo de vida para eliminar activamente las versiones antiguas. De lo contrario, es posible que se produzcan errores en la conexión de las pruebas de punto final debido a un S3list-objecttiempo de espera de llamada. Para crear una política de ciclo de vida para un bucket de S3, consulteAdministración del ciclo de vida del almacenamiento. Para eliminar una versión de un objeto S3, consulteEliminación de versiones de objetos de un bucket con control de versiones habilitado.

  • En las versiones 3.4.7 y posteriores se admite un bucket S3 habilitado para VPC (VPC de puerta de enlace).

  • Se admiten los siguientes comandos del lenguaje de definición de datos (DDL) para la captura de datos de cambios (CDC): truncar tabla, eliminar tabla, crear tabla, cambiar el nombre de la tabla, agregar columna, eliminar columna, cambiar nombre de columna y cambiar tipo de datos de columna. Tenga en cuenta que cuando se agrega, elimina o cambia el nombre de una columna en la base de datos de origen, no se registra ninguna sentencia ALTER en el bucket S3 de destino, yAWS DMSno altera los registros creados anteriormente para que coincidan con la nueva estructura. Tras el cambio,AWS DMScrea cualquier registro nuevo utilizando la nueva estructura de tablas.

    nota

    Cuando realice una operación de truncado de DDL, se eliminarán todos los archivos y las carpetas de tablas correspondientes de un bucket S3. Puede usar la configuración de las tareas para deshabilitar ese comportamiento y configurar la forma en que DMS gestiona el comportamiento del DDL durante la captura de datos de cambios (CDC). Para obtener más información, consulte Configuración de tareas para la administración de DDL del procesamiento de cambios.

  • No se admite el modo LOB completo.

  • No se admiten cambios en la estructura de la tabla de origen durante la carga completa. Los cambios en los datos se admiten durante la carga completa.

  • Varias tareas que replican los datos de la misma tabla de origen al mismo bucket de punto de enlace de S3 de destino tiene como consecuencia que esas tareas escriban en el mismo archivo. Le recomendamos que especifique diferentes puntos de enlace de destino (buckets) si el origen de datos es de la misma tabla.

  • BatchApplyno es compatible con un punto de conexión S3. Mediante Batch Apply (por ejemplo, elBatchApplyEnabledlos metadatos de destino (configuración de tareas) para un destino de S3 pueden provocar la pérdida de datos.

  • No puedes usarDatePartitionEnabledoaddColumnNamejunto conPreserveTransactionsoCdcPath.

  • AWS DMSno admite el cambio de nombre de varias tablas de origen a la misma carpeta de destino mediante reglas de transformación.

Para conocer las limitaciones del uso de la validación con S3 como destino, consulteLimitaciones del uso de la validación de objetivos de S3.

Seguridad

Para usar Amazon S3 como destino, la cuenta utilizada para la migración debe tener acceso de escritura y eliminación al bucket de Amazon S3 que se usa como destino. Especifique el nombre de recurso de Amazon (ARN) de un rol de IAM que tenga los permisos necesarios para acceder a Amazon S3.

AWS DMSadmite un conjunto de concesiones predefinidas para Amazon S3, conocidas como listas de control de acceso (ACL) predefinidas. Cada ACL predefinida tiene un conjunto de concesionarios y permisos que puede usar para establecer permisos para el bucket de Amazon S3. Puede especificar una ACL predefinida utilizando cannedAclForObjects en el atributo de la cadena de conexión para el punto de enlace de destino de S3. Para obtener más información acerca del atributo de conexión adicional cannedAclForObjects, consulte Configuración de punto final cuando se utiliza Amazon S3 como destino paraAWS DMS. Para obtener más información sobre las ACL predefinidas de Amazon S3, consulte ACL predefinidas.

El rol de IAM que utilice para la migración tiene que ser capaz de realizar la operación de la API s3:PutObjectAcl.

Uso de Apache Parquet para almacenar objetos de Amazon S3

El formato de valores separados por comas (.csv) es el formato de almacenamiento predeterminado para los objetos de destino de Amazon S3. Para un almacenamiento más compacto y consultas más rápidas, puede utilizar en su lugar Apache Parquet (.parquet) como formato de almacenamiento.

Apache Parquet es un formato de almacenamiento de archivos de código abierto diseñado originalmente para Hadoop. Para obtener más información en Apache Parquet, consulte https://parquet.apache.org/.

Para definir .parquet como formato de almacenamiento para los objetos de destino de S3, puede utilizar los siguientes mecanismos:

Etiquetado de objetos de Amazon S3

Puede etiquetar los objetos de Amazon S3 que cree una instancia de replicación especificando los objetos JSON adecuados como parte de las reglas de mapeo de tablas de tareas. Para obtener más información sobre los requisitos y las opciones del etiquetado de objetos de S3, incluidos los nombres de etiquetas válidos, consulteEtiquetado de objetosen elGuía del usuario de Amazon Simple Storage Service. Para obtener más información sobre el mapeo de tablas utilizando JSON, consulte Especificar las reglas de selección y transformación de tablas mediante JSON.

Etiquete los objetos de S3 creados para tablas y esquemas especificados mediante uno o varios objetos JSON del tipo de regla selection. A continuación, siga este objeto (u objetos) selection mediante uno o varios objetos JSON del tipo de regla post-processing con acción add-tag. Estas reglas de post-procesamiento identifican los objetos de S3 que desea etiquetar y especifican los nombres y los valores de las etiquetas que desea añadir a estos objetos de S3.

Puede encontrar los parámetros para especificar en objetos JSON del tipo de regla post-processing en la siguiente tabla.

Parámetro Valores posibles Descripción
rule-type post-processing

Un valor que aplica acciones de posprocesamiento a los objetos de destino generados. Puede especificar una o varias reglas de posprocesamiento para etiquetar objetos de S3 seleccionados.

rule-id Un valor numérico. Un único valor numérico para identificar la regla.
rule-name Un valor alfanumérico. Un nombre exclusivo para identificar la regla.
rule-action add-tag La acción de posprocesamiento que desea aplicar al objeto de S3. Puede añadir una o varias etiquetas mediante un único objeto de posprocesamiento JSON para la acción add-tag.
object-locator

schema-name— Nombre del esquema de tabla.

table-name— Nombre de la tabla.

El nombre de cada esquema y tabla al que se aplica la regla. Puede utilizar el símbolo de porcentaje "%" como carácter comodín para la totalidad o parte del valor de cada parámetro object-locator. Así, puede hacer coincidir estos elementos:

  • Una sola tabla en un esquema único

  • Una sola tabla en varios o todos los esquemas

  • Algunas o todas las tablas en un esquema único

  • Algunas o todas las tablas en algunos o todos los esquemas

tag-set

key— Cualquier nombre válido para una sola etiqueta.

value— Cualquier valor JSON válido para esta etiqueta.

Los nombres y los valores de una o varias etiquetas que desea establecer en cada objeto de S3 creado que coincida con el object-locator especificado. Puede especificar hasta 10 pares clave-valor en un único objeto de parámetro tag-set. Para obtener más información sobre el etiquetado de objetos S3, consulteEtiquetado de objetosen elGuía del usuario de Amazon Simple Storage Service.

También puede especificar un valor dinámico para todo o parte del valor para los parámetros key y value de una etiqueta utilizando ${dyn-value}. Aquí, ${dyn-value} puede ser ${schema-name} o ${table-name}. De este modo, puede insertar el nombre del esquema o tabla seleccionado actualmente como valor del parámetro completo o parcial.

nota
importante

Si inserta un valor dinámico para el parámetro key, puede generar etiquetas con nombres duplicados para un objeto de S3, en función de cómo lo utilice. En este caso, solo uno de los ajustes de etiqueta duplicados se añade al objeto.

Al especificar varios tipos de reglas post-processing para etiquetar una selección de objetos de S3, cada objeto de S3 se etiqueta utilizando solo un objeto tag-set de una regla de posprocesamiento. El conjunto particular de etiquetas usado para etiquetar un determinado objeto de S3 es el de la regla de posprocesamiento cuyo localizador de objeto asociado coincide mejor con dicho objeto de S3.

Por ejemplo, supongamos que dos reglas de posprocesamiento identifican el mismo objeto de S3. Supongamos también que el localizador de objeto de una regla utiliza comodines y el localizador de objeto de la otra regla utiliza una coincidencia exacta para identificar el objeto de S3 (sin comodines). En este caso, se utiliza el conjunto de etiquetas asociado a la regla de posprocesamiento con la coincidencia exacta para etiquetar el objeto de S3. Si varias reglas de posprocesamiento coinciden con un objeto de S3 dado igual de bien, se utiliza para etiquetar el conjunto de etiquetas asociado con la primera regla de posprocesamiento.

ejemplo Agregar etiquetas estáticas a un objeto de S3 creado para una única tabla y esquema

La siguiente selección y reglas de posprocesamiento añaden tres etiquetas (tag_1, tag_2 y tag_3 con los valores estáticos correspondientes value_1, value_2 y value_3) a un objeto de S3 creado. Este objeto de S3 corresponde a única tabla en el origen denominada STOCK con un esquema denominado aat2.

{ "rules": [ { "rule-type": "selection", "rule-id": "5", "rule-name": "5", "object-locator": { "schema-name": "aat2", "table-name": "STOCK" }, "rule-action": "include" }, { "rule-type": "post-processing", "rule-id": "41", "rule-name": "41", "rule-action": "add-tag", "object-locator": { "schema-name": "aat2", "table-name": "STOCK" }, "tag-set": [ { "key": "tag_1", "value": "value_1" }, { "key": "tag_2", "value": "value_2" }, { "key": "tag_3", "value": "value_3" } ] } ] }
ejemplo Agregar etiquetas estáticas y dinámicas a objetos de S3 creados para varias tablas y esquemas

El siguiente ejemplo tiene una selección y dos reglas de posprocesamiento, donde la entrada del origen incluye todas las tablas y todos sus esquemas.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "post-processing", "rule-id": "21", "rule-name": "21", "rule-action": "add-tag", "object-locator": { "schema-name": "%", "table-name": "%", }, "tag-set": [ { "key": "dw-schema-name", "value":"${schema-name}" }, { "key": "dw-schema-table", "value": "my_prefix_${table-name}" } ] }, { "rule-type": "post-processing", "rule-id": "41", "rule-name": "41", "rule-action": "add-tag", "object-locator": { "schema-name": "aat", "table-name": "ITEM", }, "tag-set": [ { "key": "tag_1", "value": "value_1" }, { "key": "tag_2", "value": "value_2" } ] } ] }

La primera regla de posprocesamiento añade dos etiquetas (dw-schema-name y dw-schema-table) con valores dinámicos correspondientes (${schema-name} y my_prefix_${table-name}) para casi todos los objetos de S3 creados en el destino. La excepción es el objeto de S3 identificado y etiquetado con la segunda regla de posprocesamiento. De este modo, cada objeto de S3 de destino identificado por el localizador de objeto comodín se crea con etiquetas que identifican el esquema y la tabla a la que corresponde en el origen.

La segunda regla de posprocesamiento añade tag_1 y tag_2 con los valores estáticos correspondientes value_1 y value_2 a un objeto de S3 creado que se identifica mediante un localizador de objeto de coincidencia exacta. Este objeto de S3 creado corresponde por tanto a la única tabla en el origen denominada ITEM con un esquema denominado aat. Debido a la coincidencia exacta, estas etiquetas reemplazan a cualquier etiquetas de este objeto añadida a partir de la primera regla de posprocesamiento, que coincide con objetos de S3 solo por el comodín.

ejemplo Agregar nombres y valores de etiqueta dinámicos a objetos de S3

El siguiente ejemplo tiene dos reglas de selección y una regla de posprocesamiento. Aquí, la entrada del origen incluye solo la tabla ITEM en el esquema retail o wholesale.

{ "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "retail", "table-name": "ITEM" }, "rule-action": "include" }, { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "wholesale", "table-name": "ITEM" }, "rule-action": "include" }, { "rule-type": "post-processing", "rule-id": "21", "rule-name": "21", "rule-action": "add-tag", "object-locator": { "schema-name": "%", "table-name": "ITEM", }, "tag-set": [ { "key": "dw-schema-name", "value":"${schema-name}" }, { "key": "dw-schema-table", "value": "my_prefix_ITEM" }, { "key": "${schema-name}_ITEM_tag_1", "value": "value_1" }, { "key": "${schema-name}_ITEM_tag_2", "value": "value_2" } ] ] }

La etiqueta definida para la regla de posprocesamiento añade dos etiquetas (dw-schema-name y dw-schema-table) a todos los objetos de S3 creados para la tabla ITEM en el destino. La primera etiqueta tiene el valor dinámico "${schema-name}" y la segunda etiqueta tiene un valor estático "my_prefix_ITEM". De este modo, cada objeto de S3 de destino se crea con etiquetas que identifican el esquema y la tabla a la que corresponde en el origen.

Además, el conjunto de etiquetas añade dos etiquetas adicionales con nombres dinámicos (${schema-name}_ITEM_tag_1 y "${schema-name}_ITEM_tag_2"). Estos tienen los valores estáticos correspondientes value_1 y value_2. Por lo tanto, cada una de estas etiquetas se denomina según el esquema actual, retail o wholesale. No se puede crear un nombre de etiqueta dinámico duplicado en este objeto, ya que cada objeto se crea para un solo nombre de esquema único. El nombre de esquema se utiliza para crear un nombre de etiqueta único por lo demás.

CreandoAWS KMSclaves para cifrar los objetos de destino de Amazon S3

Puede crear y usar personalizadasAWS KMSclaves para cifrar los objetos de destino de Amazon S3. Después de crear una clave KMS, puede utilizarla para cifrar objetos mediante uno de los métodos siguientes al crear el punto de enlace de destino S3:

  • Utilice las siguientes opciones para objetos de destino de S3 (con el formato de almacenamiento de archivos .csv predeterminado) al ejecutar el comando create-endpoint mediante la AWS CLI.

    --s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "CsvRowDelimiter": "\n", "CsvDelimiter": ",", "BucketFolder": "your-bucket-folder", "BucketName": "your-bucket-name", "EncryptionMode": "SSE_KMS", "ServerSideEncryptionKmsKeyId": "your-KMS-key-ARN"}'

    Aquí, your-KMS-key-ARN está el nombre de recurso de Amazon (ARN) para su clave de KMS. Para obtener más información, consulte Uso del cifrado de datos, archivos de parquet y CDC en su destino de Amazon S3.

  • Establezca el atributo de conexión adicional encryptionMode al valor SSE_KMS y el atributo de conexión adicional serverSideEncryptionKmsKeyId al ARN de su clave de KMS. Para obtener más información, consulte Configuración de punto final cuando se utiliza Amazon S3 como destino paraAWS DMS.

Para cifrar los objetos de destino de Amazon S3 mediante una clave de KMS, necesita un rol de IAM que tenga permisos para acceder al bucket de Amazon S3. A continuación, se accede a esta función de IAM mediante una política (una política de claves) adjunta a la clave de cifrado que cree. Para ello, realice lo siguiente en su consola de IAM:

  • Una política con permisos de acceso al bucket de Amazon S3.

  • Una función de IAM con esta política.

  • Una clave de cifrado de KMS con una política de claves que hace referencia a esta función.

En los procedimientos siguientes se describe cómo hacerlo.

Para crear una política de IAM con permisos de acceso al bucket de Amazon S3
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, elija Policies (Políticas). Se abre la página Policies (Políticas).

  3. Elija Create Policy (Crear política). Se abre la página Crear política.

  4. Elija Service (Servicio) y, a continuación, S3. Aparece una lista de permisos de acción.

  5. Elija Expand all (Ampliar todo) para ampliar la lista y elegir los siguientes permisos como mínimo:

    • ListBucket

    • PutObject

    • DeleteObject

    Elija cualquier otro permiso que necesite y, a continuación, elija Collapse all (Contraer todo) para contraer la lista.

  6. Elija Resources (Recursos) para especificar los recursos a los que desea acceder. Como mínimo, elijaTodos los recursospara proporcionar un acceso general a los recursos de Amazon S3.

  7. Añada cualquier otra condición o permiso que necesite, a continuación, elija Review policy (Revisar política). Compruebe los resultados en la página Review policy (Revisar política).

  8. Si la configuración es la que necesita, introduzca un nombre para la política (por ejemplo, DMS-S3-endpoint-access) y cualquier descripción, a continuación, elija Create policy (Crear política). Se abre la página Policies (Políticas) con un mensaje que indica que se ha creado la política.

  9. Busque y seleccione el nombre de la política en la lista Policies (Políticas). Aparece la página Summary (Resumen) que muestra JSON para la política similar al siguiente.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket", "s3:DeleteObject" ], "Resource": "*" } ] }

Ahora ha creado la nueva política para acceder a los recursos de Amazon S3 para el cifrado con un nombre específico, por ejemploDMS-S3-endpoint-access.

Para crear un rol de IAM con esta política
  1. En la consola de IAM, elijaFuncionesen el panel de navegación. Se abre la página de detalle Roles.

  2. Elija Create role (Crear rol). Se abre la página Create role (Crear rol).

  3. ConAWSservicio seleccionado como entidad de confianza, elijaDMScomo el servicio para utilizar la función de IAM.

  4. Elija Siguiente: Permisos. La vista Attach permissions policies (Asociar políticas de permisos) aparece en la página Create role (Crear rol).

  5. Busque y seleccione la política de IAM para el rol de IAM que creó en el procedimiento anterior (DMS-S3-endpoint-access).

  6. Elija Next: Tags (Siguiente: etiquetas). Aparece la vista Add tags (Añadir etiquetas) en la página Create role (Crear rol). A continuación, puede añadir las etiquetas que desee.

  7. Elija Next: Review (Siguiente: revisar). Aparece la vista Review (Revisar) en la página Create role (Crear rol). Aquí, puede verificar los resultados.

  8. Si la configuración es la que necesita, introduzca un nombre para el rol (requerido, por ejemplo, DMS-S3-endpoint-access-role) y cualquier descripción adicional, a continuación, elija Create role (Crear rol). Se abre la página de detalle Roles con un mensaje que indica que el rol se ha creado.

Ahora ha creado el nuevo rol para acceder a los recursos de Amazon S3 para el cifrado con un nombre específico, por ejemplo,DMS-S3-endpoint-access-role.

Para crear una clave de cifrado de KMS con una política de claves que haga referencia a su función de IAM
nota

Para obtener más información sobre cómo funciona AWS DMS con las claves de cifrado de AWS KMS, consulte Configuración de una clave de cifrado y especificación de permisos de AWS KMS.

  1. Inicie sesión en la AWS Management Console y abra la consola AWS Key Management Service (AWS KMS) en https://console.aws.amazon.com/kms.

  2. Para cambiar la Región de AWS, utilice el Selector de regiones ubicado en la esquina superior derecha de la página.

  3. En el panel de navegación, elija Claves administradas por el cliente.

  4. Elija Create key. Se abrirá la página Configure key (Configurar clave).

  5. En Key type (Tipo de clave), elija Symmetric (Simétrica).

    nota

    Al crear esta clave, solo puede crear una clave simétrica, ya que todasAWSlos servicios, como Amazon S3, solo funcionan con claves de cifrado simétricas.

  6. Elija Advanced Options. En Key material origin (Origen del material de la clave), asegúrese de elegir KMS y, a continuación, seleccione Next (Siguiente). Se abrirá la página Add labels (Agregar etiquetas).

  7. En Create alias and description (Crear alias y descripción), escriba un alias para la clave (por ejemplo, DMS-S3-endpoint-encryption-key) y una descripción adicional.

  8. En Tags (Etiquetas), agregue las etiquetas que desee para ayudar a identificar la clave y realizar el seguimiento de su uso y, a continuación, seleccione Next (Siguiente). Se abre la página Define key administrative permissions (Definir permisos administrativos clave), que muestra una lista de usuarios y roles entre los que puede elegir.

  9. Añada los usuarios y roles que desee para administrar la clave. Asegúrese de que estos usuarios y roles tengan los permisos necesarios para administrar la clave.

  10. En Key deletion (Eliminación de clave), elija si los administradores de claves pueden eliminar la clave; a continuación, seleccione Next (Siguiente). Se abre la página Define key usage permissions (Definir permisos de uso de claves) que muestra una lista adicional de usuarios y roles entre los que puede elegir.

  11. Para¿Esta cuenta, elija los usuarios disponibles a los que desea que realicen operaciones criptográficas en los destinos de Amazon S3. Elija también el rol que haya creado anteriormente enRolespara permitir el acceso y cifrar los objetos de destino de Amazon S3, por ejemploDMS-S3-endpoint-access-role).

  12. Si desea añadir otras cuentas que no figuran en la lista para que tengan el mismo acceso, para¿OtrasAWScuentas, eligeAgrega otroAWScuenta, luego eligeSiguiente. Se abre la página Review and edit key policy (Revisar y editar la política de claves) que muestra el JSON de la política de claves que puede revisar y editar escribiendo en el JSON existente. Aquí puede ver en qué puntos de la política de claves se hace referencia al rol y a los usuarios (por ejemplo, Admin y User1) que eligió en el paso anterior. También puede ver las distintas acciones de claves permitidas para las distintas entidades principales (usuarios y roles), tal y como se muestra en el siguiente ejemplo.

    { "Id": "key-consolepolicy-3", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/Admin" ] }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/DMS-S3-endpoint-access-role", "arn:aws:iam::111122223333:role/Admin", "arn:aws:iam::111122223333:role/User1" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/DMS-S3-endpoint-access-role", "arn:aws:iam::111122223333:role/Admin", "arn:aws:iam::111122223333:role/User1" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ]
  13. Elija Finalizar. ElClaves de cifradola página se abre con un mensaje que indica que se ha creado la clave KMS.

Ahora ha creado una nueva clave de KMS con un alias especificado (por ejemplo, DMS-S3-endpoint-encryption-key). Esta clave habilitaAWS DMSpara cifrar los objetos de destino de Amazon S3.

Uso de particiones de carpetas basadas en fechas

AWS DMSadmite particiones de carpetas S3 en función de la fecha de confirmación de la transacción cuando utiliza Amazon S3 como punto de enlace de destino. Al utilizar la partición de carpetas basada en fechas, puede escribir datos de una sola tabla fuente en una estructura de carpetas jerárquica temporal en un bucket de S3. Cuando realice una partición de carpetas cuando realice un endpoint de destino S3, podrá realizar lo siguiente:

  • Administre mejor sus objetos de S3

  • Limite el tamaño de cada carpeta S3

  • Optimice las consultas de los lagos de datos u otras operaciones posteriores

Puede habilitar la partición de carpetas basada en fechas al crear un punto final de destino de S3. Puede activarlo al migrar los datos existentes y replicar los cambios en curso (carga completa más CDC) o al replicar solo los cambios en los datos (solo CDC). Utilice la siguiente configuración de punto de conexión de destino:

  • DatePartitionEnabled— Especifica la partición en función de las fechas. Defina esta opción booleana entruepara particionar las carpetas bucket de S3 en función de las fechas de confirmación de transacciones.

    No puedes usar esta configuración conPreserveTransactionsoCdcPath.

    El valor predeterminado es false.

  • DatePartitionSequence— Identifica la secuencia del formato de fecha que se utilizará durante el particionamiento de carpetas. Defina esta opción ENUM enYYYYMMDD,YYYYMMDDHH,YYYYMM,MMYYYYDD, oDDMMYYYY. El valor predeterminado es YYYYMMDD. Usa esta configuración cuandoDatePartitionEnabledestá configuración atrue.

  • DatePartitionDelimiter— Especifica un delimitador de separación de fechas que se utilizará durante el particionamiento de carpetas. Establezca esta opción ENUM enSLASH,DASH,UNDERSCORE, oNONE. El valor predeterminado es SLASH. Utilice esta configuración cuando DatePartitionEnabled esté establecido en true.

El siguiente ejemplo muestra cómo habilitar la partición de carpetas basada en fechas, con los valores predeterminados para la secuencia de particiones de datos y el delimitador. Utiliza el--s3-settings '{json-settings}'opción delAWS CLI.create-endpointcomando.

--s3-settings '{"DatePartitionEnabled": true,"DatePartitionSequence": "YYYYMMDD","DatePartitionDelimiter": "SLASH"}'

Carga paralela de fuentes particionadas cuando se utiliza Amazon S3 como destino paraAWS DMS

Puede configurar una carga completa paralela de fuentes de datos particionadas para los destinos de Amazon S3. Este enfoque mejora los tiempos de carga para migrar datos particionados desde los motores de bases de datos de origen compatibles al destino S3. Para mejorar los tiempos de carga de los datos de origen particionados, debe crear subcarpetas de destino de S3 asignadas a las particiones de todas las tablas de la base de datos de origen. Estas subcarpetas enlazadas a particiones permitenAWS DMSpara ejecutar procesos paralelos que llenen cada subcarpeta del destino.

Para configurar una carga completa paralela de un objetivo S3, S3 admite tresparallel-loadtipos de reglas paratable-settingsregla de mapeo de tablas:

  • partitions-auto

  • partitions-list

  • ranges

Para obtener más información sobre estos tipos de reglas de carga paralela, consulteConfiguración, reglas y operaciones de tablas y colecciones.

Para elpartitions-autoypartitions-listtipos de reglas,AWS DMSutiliza el nombre de cada partición del punto final de origen para identificar la estructura de subcarpetas de destino, de la siguiente manera.

bucket_name/bucket_folder/database_schema_name/table_name/partition_name/LOADseq_num.csv

En este caso, la ruta de la subcarpeta donde se migran y almacenan los datos en el destino de S3 incluye una ruta adicionalpartition_namesubcarpeta que corresponda a una partición de origen con el mismo nombre. Estopartition_namesubcarpeta luego almacena uno o másLOADseq_num.csvarchivos que contienen datos migrados desde la partición de origen especificada. Aquí,seq_numes el sufijo del número de secuencia del nombre del archivo.csv, como00000001en el archivo.csv con el nombre,LOAD00000001.csv.

Sin embargo, algunos motores de bases de datos, como MongoDB y DocumentDB, no tienen el concepto de particiones. Para estos motores de bases de datos,AWS DMSagrega el índice del segmento de origen en ejecución como prefijo al nombre del archivo.csv de destino, de la siguiente manera.

.../database_schema_name/table_name/SEGMENT1_LOAD00000001.csv .../database_schema_name/table_name/SEGMENT1_LOAD00000002.csv ... .../database_schema_name/table_name/SEGMENT2_LOAD00000009.csv .../database_schema_name/table_name/SEGMENT3_LOAD0000000A.csv

Aquí, los archivosSEGMENT1_LOAD00000001.csvySEGMENT1_LOAD00000002.csvse denominan con el mismo prefijo de índice del segmento fuente en ejecución,SEGMENT1. Se denominan así porque los datos de origen migrados de estos dos archivos.csv están asociados al mismo índice de segmentos de origen en ejecución. Por otro lado, los datos migrados almacenados en cada uno de los objetivosSEGMENT2_LOAD00000009.csvySEGMENT3_LOAD0000000A.csvlos archivos están asociados a diferentes índices de segmentos de origen en ejecución. Cada archivo tiene su nombre de archivo como prefijo el nombre de su índice de segmentos en ejecución,SEGMENT2ySEGMENT3.

Para elrangestipo de carga paralela, usted define los nombres de las columnas y los valores de las columnas mediante elcolumnsyboundariesajustes deltable-settingsreglas. Con estas reglas, puede especificar las particiones correspondientes a los nombres de los segmentos, de la siguiente manera.

"parallel-load": { "type": "ranges", "columns": [ "region", "sale" ], "boundaries": [ [ "NORTH", "1000" ], [ "WEST", "3000" ] ], "segment-names": [ "custom_segment1", "custom_segment2", "custom_segment3" ] }

Aquí, elsegment-namesLa configuración define los nombres de tres particiones para migrar datos en paralelo en el destino S3. Los datos migrados se cargan en paralelo y se almacenan en archivos.csv en las subcarpetas de particiones en el orden siguiente.

.../database_schema_name/table_name/custom_segment1/LOAD[00000001...].csv .../database_schema_name/table_name/custom_segment2/LOAD[00000001...].csv .../database_schema_name/table_name/custom_segment3/LOAD[00000001...].csv

Aquí,AWS DMSalmacena una serie de archivos.csv en cada una de las tres subcarpetas de particiones. La serie de archivos.csv de cada subcarpeta de particiones se nombra de forma incremental, empezando porLOAD00000001.csvhasta que se migren todos los datos.

En algunos casos, es posible que no incluya un nombre explícito para las subcarpetas de partición derangestipo de carga paralela utilizando elsegment-namesconfiguración. En estos casos,AWS DMSaplica el valor predeterminado de crear cada serie de archivos.csv en sutable_namesubcarpeta. Aquí,AWS DMSantepone los nombres de archivo de cada serie de archivos.csv con el nombre del índice del segmento fuente en ejecución, de la siguiente manera.

.../database_schema_name/table_name/SEGMENT1_LOAD[00000001...].csv .../database_schema_name/table_name/SEGMENT2_LOAD[00000001...].csv .../database_schema_name/table_name/SEGMENT3_LOAD[00000001...].csv ... .../database_schema_name/table_name/SEGMENTZ_LOAD[00000001...].csv

Configuración de punto final cuando se utiliza Amazon S3 como destino paraAWS DMS

Puede utilizar los ajustes de punto final para configurar la base de datos de destino de Amazon S3 de forma similar a como se utilizan atributos de conexión adicionales. Los ajustes se especifican al crear el punto final de destino mediante elAWS DMSconsola o mediante lacreate-endpointcomando en elAWS CLI, con el--s3-settings '{"EndpointSetting": "value", ...}'Sintaxis de JSON.

En la siguiente tabla, se muestran los ajustes de punto de conexión que puede utilizar con Amazon S3 como destino.

Opción Descripción
CsvNullValue

Un parámetro opcional que especifica cómo AWS DMS trata valores nulos. Mientras se maneja el valor null (nulo), se puede usar este parámetro para pasar una cadena definida por el usuario como nula al escribir en el destino. Por ejemplo, cuando las columnas de destino sean anulables, podrá utilizar esta opción para diferenciar el valor de cadena vacío del valor nulo. Por lo tanto, si establezca el valor de este parámetro en una cadena vacía (» "o «),AWS DMStrata la cadena vacía como un valor nulo en lugar deNULL.

Valor predeterminado: NULL

Valores válidos: cualquier cadena válida

Ejemplo: --s3-settings '{"CsvNullValue": " "}'

AddColumnName

Un parámetro opcional al establecer en true o y que puede usar para añadir información del nombre de la columna al archivo de salida .csv.

No puede usar este parámetro conPreserveTransactionsoCdcPath.

Valor predeterminado: false

Valores válidos: true, false, y, n

Ejemplo: --s3-settings '{"AddColumnName": true}'

AddTrailingPaddingCharacter

Utilice la configuración del punto final de destino S3AddTrailingPaddingCharacterpara añadir relleno a los datos de la cadena. El valor predeterminado es false.

Tipo: booleano

Ejemplo: --s3-settings '{"AddTrailingPaddingCharacter": true}'

BucketFolder

Parámetro opcional para definir un nombre de carpeta en el bucket de S3. Si se facilitan, los objetos de destino se crean como archivos .parquet o .csv en la ruta BucketFolder/schema_name/table_name/. Si no se especifica este parámetro, la ruta utilizada es schema_name/table_name/.

Ejemplo: --s3-settings '{"BucketFolder": "testFolder"}'

BucketName

El nombre del bucket de S3 donde los objetos de destino S3 se crean como archivos .csv o.parquet.

Ejemplo: --s3-settings '{"BucketName": "buckettest"}'

CannedAclForObjects

Valor que permite que AWS DMS especifique una lista de control de acceso predefinida para objetos creados en el bucket de S3 como archivos .csv o .parquet. Para más información acerca de las ACL enlatadas de Amazon S3, consulte Canned ACL en la Guía del desarrollador de Amazon S3.

Valor predeterminado: NINGUNO

Los valores válidos para este atributo son: NONE; PRIVATE; PUBLIC_READ; PUBLIC_READ_WRITE; AUTHENTICATED_READ; AWS_EXEC_READ; BUCKET_OWNER_READ; BUCKET_OWNER_FULL_CONTROL.

Ejemplo: --s3-settings '{"CannedAclForObjects": "PUBLIC_READ"}'

CdcInsertsOnly

Un parámetro opcional durante una carga de captura de datos de cambios (CDC) para escribir solo operaciones INSERT en archivos de salida de valores separados por comas (.csv) o almacenamiento en columnas (.parquet). Por defecto (el ajuste false), el primer campo en un registro .csv o .parquet contiene la letra I (INSERT), U (UPDATE) o D (DELETE). Esta carta indica si la fila se insertó, actualizó o eliminó en la base de datos de origen para una carga de CDC en el destino. Si cdcInsertsOnly se establece en true o y, solo las operaciones INSERT de la base de datos de origen se migran al archivo .csv o.parquet.

Solo para el formato .csv, la forma en que se registran estas operaciones INSERT depende del valor de IncludeOpForFullLoad. Si IncludeOpForFullLoad está establecido en true, el primer campo de cada registro CDC se establece en I para indicar la operación INSERT en el origen. Si IncludeOpForFullLoad se establece en false, cada registro CDC se escribe sin un primer campo para indicar la operación INSERT en el origen. Para obtener más información acerca de cómo estos parámetros funcionan juntos, consulte Indicar operaciones de base de datos de origen en datos de S3 migrados.

Valor predeterminado: false

Valores válidos: true, false, y, n

Ejemplo: --s3-settings '{"CdcInsertsOnly": true}'

CdcInsertsAndUpdates

Habilita una carga de captura de datos de cambio (CDC) para escribir las operaciones INSERT y UPDATE en archivos de salida .csv o .parquet (almacenamiento en columnas). La configuración predeterminada es false, pero cuando cdcInsertsAndUpdates se establece en true o y, las operaciones INSERT y UPDATE de la base de datos de origen se migran al archivo .csv o .parquet.

Solo para el formato de archivo .csv, la forma en que se registran estas operaciones INSERT y UPDATE depende del valor del parámetro includeOpForFullLoad. Si includeOpForFullLoad se establece en true, el primer campo de cada registro de CDC se establece en I o U para indicar que se trata de operaciones INSERT y UPDATE en el origen. Pero si includeOpForFullLoad se establece en false, los registros de CDC se escriben sin ninguna indicación relativa a las operaciones INSERT o UPDATE en el origen.

Para obtener más información acerca de cómo estos parámetros funcionan juntos, consulte Indicar operaciones de base de datos de origen en datos de S3 migrados.

nota

CdcInsertsOnly y cdcInsertsAndUpdates no se pueden establecer ambos en «true» para el mismo punto de enlace. Establezca cdcInsertsOnly o cdcInsertsAndUpdates en true para el mismo punto de conexión, pero no ambos.

Valor predeterminado: false

Valores válidos: true, false, y, n

Ejemplo: --s3-settings '{"CdcInsertsAndUpdates": true}'

CdcPath

Especifica la ruta de la carpeta de los archivos de CDC. Para un origen S3, esta configuración es obligatoria si una tarea captura datos de cambios; de lo contrario, es opcional. SiCdcPathcuando esté configurado, el DMS comprobará los archivos de los CDC de esta ruta y replicará los cambios de datos en el punto final de destino. Para un objetivo S3, si lo ha establecidoPreserveTransactionssi es verdadero, el DMS comprueba que has establecido este parámetro en una ruta de carpeta en tu destino S3, donde el DMS puede guardar la orden de transacción para la carga de CDC. DMS crea esta ruta de carpeta CDC en el directorio de trabajo de destino de S3 o en la ubicación de destino de S3 especificada porBucketFolderyBucketName.

No puede usar este parámetro conDatePartitionEnabledoAddColumnName.

Tipo: String

Por ejemplo, si se especificaCdcPathtanMyChangedData, y usted especificaBucketNametanMyTargetBucketpero no especifiqueBucketFolder, DMS crea la siguiente ruta de carpeta de los CDC:MyTargetBucket/MyChangedData.

Si especificas lo mismoCdcPath, y usted especificaBucketNametanMyTargetBucketyBucketFoldertanMyTargetData, DMS crea la siguiente ruta de carpeta de los CDC:MyTargetBucket/MyTargetData/MyChangedData.

nota

Esta configuración se admite enAWS DMSversiones 3.4.2 y superiores.

Al capturar los cambios de datos en el orden de las transacciones, DMS siempre almacena los cambios de fila en archivos.csv, independientemente del valor del DataFormat S3 fijado en el objetivo. El DMS no guarda los cambios de datos en el orden de las transacciones mediante archivos.parquet.

CdcMaxBatchInterval

Condición de longitud de intervalo máxima, definida en segundos, para enviar un archivo a Amazon S3.

Valor por defecto: 60 segundos

¿Cuándo?CdcMaxBatchIntervalestá especificado yCdcMinFileSizecuando se especifique, la escritura del archivo se activará con la condición de parámetro que se cumpla primero.

CdcMinFileSize

Condición de tamaño de archivo mínimo, tal como se define en kilobytes, para enviar un archivo a Amazon S3.

Valor predeterminado: 32000 KB

¿CuándoCdcMinFileSizeestá especificado yCdcMaxBatchIntervalcuando se especifique, la escritura del archivo se activará con la condición de parámetro que se cumpla primero.

PreserveTransactions

Si se configuración atrue, el DMS guardará el pedido de transacción para la captura de datos de cambio (CDC) en el destino de Amazon S3 especificado porCdcPath.

No puede usar este parámetro conDatePartitionEnabledoAddColumnName.

Tipo: booleano

Al capturar los cambios de datos en el orden de las transacciones, DMS siempre almacena los cambios de fila en archivos.csv, independientemente del valor del DataFormat S3 fijado en el objetivo. El DMS no guarda los cambios de datos en el orden de las transacciones mediante archivos.parquet.

nota

Esta configuración se admite enAWS DMSversiones 3.4.2 y superiores.

IncludeOpForFullLoad

Un parámetro opcional durante una carga completa para escribir las operaciones INSERT solo en archivos de salida de valores separados por comas (.csv).

Para la carga completa, los registros solo se pueden insertar. De forma predeterminada (el valor false), no se registra información en estos archivos de salida para una carga completa para indicar que las filas se insertaron en la base de datos de origen. Si IncludeOpForFullLoad se establece en true o y, la operación INSERT se registra como una anotación I en el primer campo del archivo .csv.

nota

Este parámetro funciona junto con CdcInsertsOnly o CdcInsertsAndUpdates para la salida solo en archivos .csv. Para obtener más información acerca de cómo estos parámetros funcionan juntos, consulte Indicar operaciones de base de datos de origen en datos de S3 migrados.

Valor predeterminado: false

Valores válidos: true, false, y, n

Ejemplo: --s3-settings '{"IncludeOpForFullLoad": true}'

CompressionType

Un parámetro opcional al establecer en GZIP utiliza GZIP para comprimir los archivos .csv o .parquet de destino. Cuando este parámetro se establece en el valor predeterminado, deja los archivos sin comprimir.

Valor predeterminado: NONE

Valores válidos: GZIP o NONE

Ejemplo: --s3-settings '{"CompressionType": "GZIP"}'

CsvDelimiter

Delimitador utilizado para separar columnas en los archivos .csv de origen. El valor predeterminado es una coma (,).

Ejemplo: --s3-settings '{"CsvDelimiter": ","}'

CsvRowDelimiter

Delimitador utilizado para separar filas en los archivos de origen .csv. El valor predeterminado es una nueva línea (\n).

Ejemplo: --s3-settings '{"CsvRowDelimiter": "\n"}'

MaxFileSize

Un valor que especifica el tamaño máximo (en KB) de los archivos .csv que se crean al migrar a un destino de S3 durante la carga completa.

Valor predeterminado: 1 048 576 KB (1 GB)

Valores válidos: 1—1048,576

Ejemplo: --s3-settings '{"MaxFileSize": 512}'

Rfc4180

Parámetro opcional que se utilice para establecer un comportamiento de conformidad con el RFC de los datos que se migren a Amazon S3 con el formato de archivo.csv únicamente. Cuando este valor se establece entrueoyusar Amazon S3 como destino, si los datos contienen comillas, comas o caracteres de nueva línea,AWS DMSencierra toda la columna con un par adicional de comillas dobles («). Cada comilla dentro de los datos se repite dos veces. Este formato cumple con RFC 4180.

Valor predeterminado: true

Valores válidos: true, false, y, n

Ejemplo: --s3-settings '{"Rfc4180": false}'

EncryptionMode

El modo de cifrado del lado del servidor que desea que cifre sus archivos de objeto .csv o .parquet copiados en S3. Los valores válidos son SSE_S3 (cifrado del lado del servidor de S3) o SSE_KMS (cifrado de clave de KMS). Si elige SSE_KMS, establezca el parámetro ServerSideEncryptionKmsKeyId en el nombre de recurso de Amazon (ARN) para la clave de KMS que se va a utilizar para cifrado.

nota

También puede usar la CLImodify-endpointcomando para cambiar el valor delEncryptionModeatributo para un punto final existente desdeSSE_KMSaSSE_S3. Pero no puedes cambiar elEncryptionModevalor desdeSSE_S3aSSE_KMS.

Valor predeterminado: SSE_S3

Valores válidos: SSE_S3 o SSE_KMS

Ejemplo: --s3-settings '{"EncryptionMode": SSE_S3}'

ServerSideEncryptionKmsKeyId

Si establecesEncryptionModeaSSE_KMS, establezca este parámetro en el nombre de recurso de Amazon (ARN) de la clave de KMS. Puede encontrar este ARN seleccionando el alias de clave en la lista de claves de AWS KMS creadas para su cuenta. Al crear la clave, debe asociar políticas y roles específicos asociados a esta clave de KMS. Para obtener más información, consulte CreandoAWS KMSclaves para cifrar los objetos de destino de Amazon S3.

Ejemplo: --s3-settings '{"ServerSideEncryptionKmsKeyId":"arn:aws:kms:us-east-1:111122223333:key/11a1a1a1-aaaa-9999-abab-2bbbbbb222a2"}'

DataFormat

El formato de salida para los archivos que AWS DMS utiliza para crear objetos de S3. Para los objetivos de Amazon S3,AWS DMSadmite archivos.csv o.parquet. Los archivos .parquet tienen un formato de almacenamiento binario en columnas con opciones de compresión eficientes y un rendimiento de consultas más rápido. Para obtener más información sobre los archivos .parquet, consulte https://parquet.apache.org/.

Valor predeterminado: csv

Valores válidos: csv o parquet

Ejemplo: --s3-settings '{"DataFormat": "parquet"}'

EncodingType

El tipo de codificación Parquet. Las opciones del tipo de codificación incluyen lo siguiente:

  • rle-dictionary— Esta codificación de diccionario utilice una combinación de empaquetado de bits y codificación de longitud de ejecución para almacenar de manera más eficiente los valores de repetición.

  • plain— Sin codificación.

  • plain-dictionary— Esta codificación de diccionario crea un diccionario de valores que se encuentran en una columna determinada. El diccionario se almacena en una página de diccionario para cada fragmento de columna.

Valor predeterminado: rle-dictionary

Valores válidos: rle-dictionary, plain o plain-dictionary

Ejemplo: --s3-settings '{"EncodingType": "plain-dictionary"}'

DictPageSizeLimit

El tamaño máximo permitido, en bytes, para una página de diccionario en un archivo .parquet. Si una página de diccionario supera este valor, la página utiliza la codificación sin formato.

Valor predeterminado: 1 024 000 (1 MB)

Valores válidos: cualquier valor entero válido

Ejemplo: --s3-settings '{"DictPageSizeLimit": 2,048,000}'

RowGroupLength

La cantidad de filas en un grupo de filas de un archivo .parquet.

Valor predeterminado: 10 024 (10 KB)

Valores válidos: cualquier entero válido

Ejemplo: --s3-settings '{"RowGroupLength": 20,048}'

DataPageSize

El tamaño máximo permitido, en bytes, para una página de datos en un archivo .parquet.

Valor predeterminado: 1 024 000 (1 MB)

Valores válidos: cualquier entero válido

Ejemplo: --s3-settings '{"DataPageSize": 2,048,000}'

ParquetVersion

La versión del formato de archivo .parquet.

Valor predeterminado: PARQUET_1_0

Valores válidos: PARQUET_1_0 o PARQUET_2_0

Ejemplo: --s3-settings '{"ParquetVersion": "PARQUET_2_0"}'

EnableStatistics

Establezca en true o y para habilitar las estadísticas acerca de las páginas de archivo .parquet y grupos de filas.

Valor predeterminado: true

Valores válidos: true, false, y, n

Ejemplo: --s3-settings '{"EnableStatistics": false}'

TimestampColumnName

Un parámetro opcional para incluir una columna de marca temporal en los datos de punto de enlace de destino de S3.

AWS DMSincluye un adicionalSTRINGcolumna en los archivos de objeto .csv o .parquet de los datos migrados cuando realice la configuraciónTimestampColumnNamea un valor que no esté en blanco.

Para una carga completa, cada fila de esta columna de marca temporal contiene una marca temporal que indica cuándo DMS transfirió los datos del origen al destino.

Para una carga CDC, cada fila de la columna de marca temporal contiene la marca temporal de confirmación de esa fila en la base de datos de origen.

El formato de cadena para esta columna de marca de temporal es yyyy-MM-dd HH:mm:ss.SSSSSS. De forma predeterminada, la precisión de este valor se encuentra en microsegundos. Para una carga CDC, el redondeo de la precisión depende de la marca de tiempo de confirmación compatible con DMS para la base de datos de origen.

Cuando elAddColumnNameparámetro está configuración atrue, DMS también incluye el nombre de la columna de fecha y hora que se establece como valor no vacío deTimestampColumnName.

Ejemplo: --s3-settings '{"TimestampColumnName": "TIMESTAMP"}'

UseTaskStartTimeForFullLoadTimestamp

Cuando está configurado entrue, este parámetro utiliza la hora de inicio de la tarea como valor de la columna de fecha y hora en lugar de la hora en que se escriben los datos en el destino. Para la carga completa, cuando UseTaskStartTimeForFullLoadTimestamp se establece en true, cada fila de la columna de marca temporal contiene la hora de inicio de la tarea. Para las cargas de CDC, cada fila de la columna de marca temporal contiene la hora de confirmación de la transacción.

Cuando UseTaskStartTimeForFullLoadTimestamp se establece en false, la marca de tiempo de carga completa en la columna de marca de tiempo aumenta con la hora en que los datos llegan al destino.

Valor predeterminado: false

Valores válidos: true, false

Ejemplo: --s3-settings '{"UseTaskStartTimeForFullLoadTimestamp": true}'

UseTaskStartTimeForFullLoadTimestamp: trueayuda a convertir el S3 en el objetivoTimestampColumnNamepara una carga completa que se pueda ordenar conTimestampColumnNamepara una carga de CDC.

ParquetTimestampInMillisecond

Un parámetro opcional que especifica la precisión de cada TIMESTAMP valor de las columnas escrito en un archivo de objeto S3 en formato .parquet.

Cuando este atributo se establece en true o y,AWS DMS escribe todas las columnas TIMESTAMP en un archivo con formato .parquet con precisión de milisegundos. De lo contrario, DMS las escribe con una precisión de microsegundos.

En la actualidad, Amazon Athena y AWS Glue solo pueden gestionar con precisión de milisegundos para los valores de TIMESTAMP. Establezca este atributo en true para los archivos de objetos de punto de punto final S3 con formato.parquet solo si tiene previsto consultar o procesar los datos con Athena oAWS Glue.

nota
  • AWS DMS escribe cualquier valor de columna TIMESTAMP escrito en un archivo de S3 en formato .csv con una precisión de microsegundos.

  • La configuración de este atributo no tiene ningún efecto en el formato de cadena del valor de la columna de marca de tiempo si establece el atributo TimestampColumnName.

Valor predeterminado: false

Valores válidos: true, false, y, n

Ejemplo: --s3-settings '{"ParquetTimestampInMillisecond": true}'

GlueCatalogGeneration

Para generación de unAWS Glue Data Catalog, defina esta configuración de punto final entrue.

Valor predeterminado: false

Valores válidos:true,false,

Ejemplo: --s3-settings '{"GlueCatalogGeneration": true}'

Nota:No utilicesGlueCatalogGenerationconPreserveTransactionsyCdcPath.

UsandoAWS Glue Data Catalogcon destino de Amazon S3 aAWS DMS

AWS Gluees un servicio que proporciona formas sencillas de categorizar los datos y consta de un repositorio de metadatos conocido comoAWS Glue Data Catalog. Puedes integrarAWS Glue Data Catalogcon su terminal de destino de Amazon S3 y consulte los datos de Amazon S3 a través de otrosAWSservicios como Amazon Athena. Amazon Redshift funciona conAWS GlueperoAWS DMSno lo admite como opción prediseñada.

Para generar el catálogo de datos, configure elGlueCatalogGenerationconfiguración de punto final entrue, como se muestra a continuaciónAWS CLIejemplo.

aws dms create-endpoint --endpoint-identifier s3-target-endpoint --engine-name s3 --endpoint-type target--s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "BucketFolder": "your-bucket-folder", "BucketName": "your-bucket-name", "DataFormat": "parquet", "GlueCatalogGeneration": true}'

Para una tarea de replicación a carga completa que incluyecsvescriba datos, definaIncludeOpForFullLoadatrue.

No utilicesGlueCatalogGenerationconPreserveTransactionsyCdcPath. ElAWS Glueel rastreador no puede conciliar los diferentes esquemas de los archivos almacenados en el especificadoCdcPath.

Para que Amazon Athena indexe sus datos de Amazon S3 y para que usted pueda consultarlos mediante consultas SQL estándar a través de Amazon Athena, la función de IAM asociada al punto de conexión debe tener la siguiente política:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::bucket123", "arn:aws:s3:::bucket123/*" ] }, { "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:GetDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:UpdateTable", "glue:GetTable", "glue:BatchCreatePartition", "glue:CreatePartition", "glue:UpdatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition" ], "Resource": [ "arn:aws:glue:*:111122223333:catalog", "arn:aws:glue:*:111122223333:database/*", "arn:aws:glue:*:111122223333:table/*" ] }, { "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:CreateWorkGroup" ], "Resource": "arn:aws:athena:*:111122223333:workgroup/glue_catalog_generation_for_task_*" } ] }
Referencias
  • Para obtener más información acerca de AWS Glue, consulte Conceptos de en la Guía para desarrolladores de AWS Glue.

  • Para más información sobreAWS Glue Data CatalogverComponentesen elAWS GlueGuía al desarrollador.

Uso del cifrado de datos, archivos de parquet y CDC en su destino de Amazon S3

Puede utilizar la configuración de puntos de enlace de destino de S3 para configurar lo siguiente:

  • Una clave KMS personalizada para cifrar los objetos de destino de S3.

  • Utilice los archivos como formato de almacenamiento para los objetos de destino de S3.

  • Cambie la captura de datos (CDC), incluida la orden de transacción en el objetivo S3.

  • IntegrarAWS Glue Data Catalogcon su terminal de destino de Amazon S3 y consulte los datos de Amazon S3 a través de otros servicios, como Amazon Athena.

Configuración de clave de AWS KMS para cifrado de datos

Los siguientes ejemplos muestran cómo configurar una clave de KMS personalizada para cifrar los objetos de destino de S3. Para empezar, puede ejecutar el siguiente comando de la CLI create-endpoint.

aws dms create-endpoint --endpoint-identifier s3-target-endpoint --engine-name s3 --endpoint-type target --s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "CsvRowDelimiter": "\n", "CsvDelimiter": ",", "BucketFolder": "your-bucket-folder", "BucketName": "your-bucket-name", "EncryptionMode": "SSE_KMS", "ServerSideEncryptionKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/72abb6fb-1e49-4ac1-9aed-c803dfcc0480"}'

Aquí, el objeto JSON especificado por la opción --s3-settings define dos parámetros. Uno es un parámetro EncryptionMode con el valor SSE_KMS. El otro es un parámetro ServerSideEncryptionKmsKeyId con el valor arn:aws:kms:us-east-1:111122223333:key/72abb6fb-1e49-4ac1-9aed-c803dfcc0480. Este valor es un nombre de recurso de Amazon (ARN) para su clave de KMS personalizada. En el caso de un destino de S3, también se especifica la configuración adicional. Identifican el rol de acceso del servidor, proporcionan delimitadores para el formato de almacenamiento de objetos CSV predeterminado y proporcionan la ubicación y el nombre del bucket para almacenar objetos de destino de S3.

De forma predeterminada, el cifrado de datos de S3 se realiza utilizando el cifrado del lado del servidor de S3. Para el destino de S3 del ejemplo anterior, esto es también equivalente a especificar la configuración de su punto de enlace, como se indica en el siguiente ejemplo.

aws dms create-endpoint --endpoint-identifier s3-target-endpoint --engine-name s3 --endpoint-type target --s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "CsvRowDelimiter": "\n", "CsvDelimiter": ",", "BucketFolder": "your-bucket-folder", "BucketName": "your-bucket-name", "EncryptionMode": "SSE_S3"}'

Para obtener más información sobre el trabajo con el cifrado del lado del servidor de S3, consulte Protección de datos utilizando el cifrado del lado del servidor.

nota

También puede usar la CLImodify-endpointcomando para cambiar el valor delEncryptionModeparámetro para un punto final existente desdeSSE_KMSaSSE_S3. Pero no puedes cambiar elEncryptionModevalor desdeSSE_S3aSSE_KMS.

Configuración para utilizar archivos .parquet para almacenar objetos de destino de S3

El formato predeterminado para la creación de objetos de destino de S3 son archivos .csv. Los ejemplos siguientes muestran algunos ajustes de puntos de enlace para especificar archivos .parquet como formato para crear objetos de destino de S3. Puede especificar el formato de los archivos .parquet con todos los valores predeterminados, como en el ejemplo siguiente.

aws dms create-endpoint --endpoint-identifier s3-target-endpoint --engine-name s3 --endpoint-type target --s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "DataFormat": "parquet"}'

Aquí, el parámetro DataFormat se ha definido en parquet para habilitar el formato con todos los valores predeterminados de S3. Estos valores predeterminados incluyen una codificación de diccionario ("EncodingType: "rle-dictionary") que utiliza una combinación de RLE y paquetes de bits para almacenar los valores repetidos con mayor eficiencia.

Puede añadir ajustes adicionales para otras opciones distintos a los predeterminados como en el ejemplo siguiente.

aws dms create-endpoint --endpoint-identifier s3-target-endpoint --engine-name s3 --endpoint-type target --s3-settings '{"ServiceAccessRoleArn": "your-service-access-ARN", "BucketFolder": "your-bucket-folder", "BucketName": "your-bucket-name", "CompressionType": "GZIP", "DataFormat": "parquet", "EncodingType: "plain-dictionary", "DictPageSizeLimit": 3,072,000, "EnableStatistics": false }'

Aquí, además de parámetros para varias opciones estándar de bucket de S3 y el parámetro DataFormat, se definen los siguientes parámetros adicionales del archivo .parquet:

  • EncodingType— Definido con una codificación de diccionario (plain-dictionary) que almacena los valores encontrados en cada columna en un fragmento por columna de la página del diccionario.

  • DictPageSizeLimit— Establézcalo en un tamaño máximo de página del diccionario de 3 MB.

  • EnableStatistics— Desactiva la opción predeterminada que permite la recopilación de estadísticas sobre las páginas de archivos y los grupos de filas de Parquet.

Capturar los cambios de datos (CDC), incluido el orden de transacción en el objetivo S3

De forma predeterminada, cuandoAWS DMSejecuta una tarea de CDC y almacena todos los cambios de fila registrados en la base de datos de origen (o bases de datos) en uno o más archivos para cada tabla. Cada conjunto de archivos que contiene los cambios de la misma tabla reside en un único directorio de destino asociado a esa tabla.AWS DMScrea tantos directorios de destino como tablas de bases de datos migradas al punto de enlace de destino de Amazon S3. Los archivos se almacenan en el destino S3, en estos directorios, independientemente del orden de las transacciones. Para obtener más información sobre las convenciones de nomenclatura de archivos, el contenido de los datos y el formato, consulteUso de Amazon S3 como destino deAWS Database Migration Service.

Para capturar los cambios en la base de datos de origen de manera que también capturen el orden de la transacción, puede especificar la configuración del punto final de S3 que indiqueAWS DMSpara almacenar los cambios de fila paratodotablas de bases de datos en uno o varios archivos.csv creados en función del tamaño de la transacción. Estos archivos.csvarchivos de transaccionescontienen todos los cambios de fila enumerados secuencialmente en el orden de las transacciones para todas las tablas implicadas en cada transacción. Estos archivos de transacciones residen juntos en un solo archivodirectorio de transaccionesque también especificas en el objetivo S3. En cada archivo de transacciones, la operación de transacción y la identidad de la base de datos y la tabla de origen para cada cambio de fila se almacenan como parte de los datos de la fila de la siguiente manera.

operation,table_name,database_schema_name,field_value,...

Aquí,operationes la operación de transacción en la fila modificada,table_namees el nombre de la tabla de base de datos en la que se cambie la fila,database_schema_namees el nombre del esquema de base de datos en el que reside la tabla yfield_valuees el primero de uno o más valores de campo que especifican los datos de la fila.

El siguiente ejemplo de un archivo de transacciones muestra las filas modificadas de una o más transacciones que incluyen dos tablas.

I,Names_03cdcad11a,rdsTempsdb,13,Daniel U,Names_03cdcad11a,rdsTempsdb,23,Kathy D,Names_03cdcad11a,rdsTempsdb,13,Cathy I,Names_6d152ce62d,rdsTempsdb,15,Jane I,Names_6d152ce62d,rdsTempsdb,24,Chris I,Names_03cdcad11a,rdsTempsdb,16,Mike

En este caso, la operación de transacción en cada fila se indica medianteI(insertar),U(actualizar), oD(eliminar) en la primera columna. El nombre de la tabla es el valor de la segunda columna (por ejemplo,Names_03cdcad11a). El nombre del esquema de la base de datos es el valor de la tercera columna (por ejemplo,rdsTempsdb). Y las columnas restantes se rellenan con sus propios datos de fila (por ejemplo,13,Daniel).

Además,AWS DMSnombra los archivos de transacciones que crea en el destino de Amazon S3 mediante una marca de tiempo de acuerdo con la siguiente convención de nomenclatura.

CDC_TXN-timestamp.csv

Aquí,timestampes el momento en que se creó el archivo de transacciones, como en el siguiente ejemplo.

CDC_TXN-20201117153046033.csv

Esta marca de tiempo en el nombre del archivo garantiza que los archivos de transacciones se creen y se enumeren en el orden de transacciones al incluirlos en su directorio de transacciones.

nota

Al capturar los cambios de datos en el orden de las transacciones,AWS DMSsiempre almacena los cambios de fila en los archivos.csv, independientemente del valor delDataFormatConfiguración S3 en el objetivo.AWS DMSno guarda los cambios de datos en el orden de las transacciones mediante archivos.parquet.

Para controlar la frecuencia de las escrituras en un destino de Amazon S3 durante una tarea de replicación de datos, puede configurar elCdcMaxBatchIntervalyCdcMinFileSizeconfiguración. Esto puede dar como resultado un mejor rendimiento al analizar los datos sin realizar operaciones adicionales que supongan una sobrecarga. Para obtener más información, consulte Configuración de punto final cuando se utiliza Amazon S3 como destino paraAWS DMS

Para contarAWS DMSpara almacenar todos los cambios de fila en el orden de las transacciones
  1. Configuración delPreserveTransactionsS3 fijando el objetivo entrue.

  2. Configuración delCdcPathConfiguración S3 en el destino de una ruta de carpeta relativa a la que deseeAWS DMSpara almacenar los archivos de transacción.csv.

    AWS DMScrea esta ruta en el depósito de destino y el directorio de trabajo predeterminados de S3 o en el depósito y la carpeta del depósito que especifique mediante elBucketNameyBucketFolderconfiguración de S3 en el objetivo.

Indicar operaciones de base de datos de origen en datos de S3 migrados

Cuando AWS DMS migra registros a un destino de S3, puede crear un campo adicional en cada registro migrado. Este campo adicional indica la operación que se aplica al registro en la base de datos de origen. ¿CómoAWS DMScrea y establece este primer campo en función del tipo de tarea de migración y de la configuración deincludeOpForFullLoad,cdcInsertsOnly, ycdcInsertsAndUpdates.

Para una carga completa cuandoincludeOpForFullLoadestrue,AWS DMSsiempre crea un primer campo adicional en cada registro.csv. Este campo contiene la letra I (INSERT) para indicar que la fila se insertó en la base de datos de origen. Para una carga de CDC, cuandocdcInsertsOnlyesfalse(el valor predeterminado),AWS DMStambién crea siempre un primer campo adicional en cada registro.csv o .parquet. Este campo contiene la letra I (INSERT), U (UPDATE) o D (DELETE) para indicar si la fila se insertó, actualizó o eliminó en la base de datos de origen.

En la siguiente tabla, puede ver cómo los ajustes delincludeOpForFullLoadycdcInsertsOnlylos atributos funcionan juntos para afectar a la configuración de los registros migrados.

Con estas configuraciones de parámetros El DMS establece los registros de destino de la siguiente manera para las salidas en formato.csv y .parquet
includeOpForFullLoad cdcInsertsOnly Para la carga completa Para la carga de CDC
true true Valor del primer campo añadido establecido en I Valor del primer campo añadido establecido en I
false false No se ha añadido el campo Valor del primer campo añadido establecido en I, U o D
false true No se ha añadido el campo No se ha añadido el campo
true false Valor del primer campo añadido establecido en I Valor del primer campo añadido establecido en I, U o D

Cuando includeOpForFullLoad y cdcInsertsOnly se establecen en el mismo valor, los registros de destino se establecen de acuerdo con el atributo que controla el valor del registro para el tipo de migración actual. Este atributo es includeOpForFullLoad para la carga completa y cdcInsertsOnly para la carga CDC.

Cuando includeOpForFullLoad y cdcInsertsOnly se establecen en valores diferentes, AWS DMS hace que el valor del registro de destino sea coherente para la carga CDC y la carga completa. Para ello, hace que el valor del registro para una carga CDC se ajuste al valor del registro de una carga completa anterior especificada por includeOpForFullLoad.

Supongamos, por ejemplo, que una carga completa se establece para añadir un primer campo que indique un registro insertado. En este caso, una carga CDC posterior se establece para añadir un primer campo que indique un registro insertado, actualizado o eliminado, según corresponda en el origen. Supongamos ahora que una carga completa se establece en no añadir un primer campo para indicar un registro insertado. En este caso, una carga CDC se establece también para no añadir un primer campo a cada registro independientemente de su operación de registro correspondiente en el origen.

Del mismo modo, la forma en que DMS crea y establece un primer campo adicional depende de la configuración de includeOpForFullLoad y cdcInsertsAndUpdates. En la siguiente tabla, puede ver cómo el valor de los atributos includeOpForFullLoad y cdcInsertsAndUpdates funcionan juntos y afectan al valor de los registros migrados en este formato.

Con estas configuraciones de parámetros DMS establece los registros de destino de la forma siguiente para la salida .csv
includeOpForFullLoad cdcInsertsAndActualizaciones Para la carga completa Para la carga de CDC
true true Valor del primer campo añadido establecido en I Valor del primer campo agregado establecido en I o U
false false No se ha añadido el campo Valor del primer campo añadido establecido en I, U o D
false true No se ha añadido el campo Valor del primer campo agregado establecido en I o U
true false Valor del primer campo añadido establecido en I Valor del primer campo añadido establecido en I, U o D

Tipos de datos de destino para S3 Parquet

La siguiente tabla muestra los tipos de datos de destino de Parquet que se admiten cuando se utiliceAWS DMSy el mapeo predeterminado deAWS DMStipos de datos.

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

Tipos de datos de AWS DMS

Tipo de datos de parquet S3

BYTES BINARY
DATE DATE32
TIME TIME32
DATETIME TIMESTAMP
INT1 INT8
INT2 INT16
INT4 INT32
INT8 INT64
NUMERIC DECIMAL
REAL4 FLOAT
REAL8 DOUBLE
STRING STRING
UINT1 UINT8
UINT2 UINT16
UINT4 UINT32
UINT8 UINT64
WSTRING STRING
BLOB BINARY
NCLOB STRING
CLOB STRING
BOOLEAN BOOL