Uso de Amazon S3 como destino para AWS Database Migration Service - AWS Database Migration Service

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

Uso de Amazon S3 como destino para AWS Database Migration Service

Puede migrar datos a Amazon S3 utilizando AWS DMS desde cualquiera de los orígenes de bases de datos admitidos. Al utilizar Amazon S3 como destino en una tarea de AWS DMS, tanto los datos de la carga completa como los de la captura de datos de cambio (CDC) se escriben con el formato de valores separados por comas (.csv) de forma predeterminada. 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).

Los nombres de archivo de AWS DMS creados durante una carga completa utilizando un contador hexadecimal incremental, por ejemplo: LOAD00001.csv, LOAD00002..., LOAD00009, LOAD0000A, etc. para archivos .csv. AWS DMS nombra los archivos CDC utilizando marcas temporales, por ejemplo, 20141029-1134010000.csv. Para cada tabla de origen que contiene registros, AWS DMS crea una carpeta en la carpeta de destino especificada (si la tabla de origen no está vacía). AWS DMS escribe todos los archivos de carga completa y CDC en el bucket de Amazon S3 especificado. Puede controlar el tamaño de los archivos que AWS DMS crea mediante la configuración de punto de conexión de MaxFileSize.

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 archivos .csv, los datos de la tabla se almacenan en el siguiente formato en el bucket de S3, mostrado con archivos de carga completa.

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 puntos de conexión al utilizar Amazon S3 como destino para AWS DMS al final de esta sección.

Puede especificar el propietario de un bucket y evitar saqueos mediante la configuración del punto de conexión de Amazon S3 ExpectedBucketOwner, como se muestra a continuación. A continuación, cuando realice una solicitud para probar una conexión o realizar una migración, S3 comprobará el ID de cuenta del propietario del bucket con el parámetro especificado.

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

Al utilizar AWS DMS para replicar cambios de datos con una tarea de CDC, la primera columna del archivo de salida .csv o .parquet indica cómo se cambiaron los datos de fila como se muestra para 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, en el caso de CDC, AWS DMS almacena 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 de conexión de S3 para especificarlo y la ruta de la carpeta en la que desea que se almacenen los archivos de transacciones CDC en el destino de S3. Para obtener más información, consulte Captura de datos de cambio (CDC) incluida la orden de transacción en el destino de S3.

Para controlar la frecuencia de las escrituras en un destino de Amazon S3 durante una tarea de replicación de datos, puede configurar los atributos de conexión cdcMaxBatchInterval y cdcMinFileSize adicionales. Esto puede traducirse en un mejor rendimiento al analizar los datos sin necesidad de realizar operaciones adicionales que supongan una sobrecarga. Para obtener más información, consulte Configuración de puntos de conexión al utilizar Amazon S3 como destino para AWS DMS

Requisitos previos para utilizar Amazon S3 como un destino

Antes de utilizar Amazon S3 como destino, compruebe que se cumplen las siguientes condiciones:

  • El bucket de S3 que está utilizando como destino está en la misma región de AWS que la instancia de replicación de DMS que utiliza para la migración de los datos.

  • La cuenta de AWS que utiliza para la migración tiene un rol de IAM con acceso de escritura y eliminación en el bucket de S3 que utiliza como destino.

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

  • Al rol de IAM se le ha agregado DMS (dms.amazonaws.com) como entidad 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, consulte Requisitos previos de validación de destino de S3.

Restricciones al uso de Amazon S3 como destino

Al utilizar Amazon S3 como destino se aplican las siguientes restricciones:

  • 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 de conexión debido al tiempo de espera de una llamada a list-object de S3. Para crear una política de ciclo de vida para un bucket de S3, consulte Administración del ciclo de vida del almacenamiento. Para eliminar una versión de un objeto de S3, consulte Eliminación de versiones de objetos de un bucket con control de versiones habilitado.

  • En las versiones 3.4.7 y superiores 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 cambio (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 instrucción ALTER en el bucket de S3 de destino y AWS DMS no modifica los registros creados anteriormente para que coincidan con la nueva estructura. Tras el cambio, AWS DMS crea los registros nuevos utilizando la nueva estructura de tablas.

    nota

    Una operación DDL de truncamiento elimina todos los archivos y carpetas de tabla correspondientes de un bucket de S3. Puede usar la configuración de las tareas para desactivar ese comportamiento y configurar la forma en que DMS gestiona el comportamiento de DDL durante la captura de datos de cambio (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.

  • BatchApply no es compatible con un punto de conexión de S3. Es posible que el uso de la aplicación por lotes (por ejemplo, la configuración de tareas de metadatos de destino BatchApplyEnabled) para un objetivo de S3 provoque la pérdida de datos.

  • No puede utilizar DatePartitionEnabled ni addColumnName junto con PreserveTransactions o CdcPath.

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

  • Si hay una escritura intensiva en la tabla de origen durante la fase de carga completa, DMS puede escribir registros duplicados en el bucket de S3 o cambios en caché.

  • Si configura la tarea con una TargetTablePrepMode de DO_NOTHING, DMS puede escribir registros duplicados en el bucket de S3 si la tarea se detiene y se reanuda bruscamente durante la fase de carga completa.

  • Si configura el punto de conexión de destino con una configuración PreserveTransactions de true, al volver a cargar una tabla no se borran los archivos CDC generados anteriormente. Para obtener más información, consulte Captura de datos de cambio (CDC) incluida la orden de transacción en el destino de S3.

Para conocer las limitaciones para utilizar la validación con S3 como destino, consulte Limitaciones para utilizar la validación de destinos de S3.

Seguridad

Para utilizar Amazon S3 como destino, la cuenta utilizada para la migración debe tener acceso de escritura y de eliminación al bucket de Amazon S3 que se utiliza 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 DMS admite un conjunto de concesiones predefinidas para Amazon S3, conocidas como listas de control de acceso (ACL) predefinidas. Cada ACL predefinida tiene un conjunto de beneficiarios y permisos que puede utilizar para configurar 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 puntos de conexión al utilizar Amazon S3 como destino para AWS 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 objetos de Amazon S3 que una instancia de replicación crea especificando objetos JSON adecuados como parte de las reglas de asignación de tabla de tareas. Para obtener más información sobre requisitos y opciones para etiquetado de objetos de S3, incluidos nombre de etiqueta válidos, consulte Etiquetado de objetos en la Guía del usuario de Amazon Simple Storage Service. Para obtener más información sobre el mapeo de tablas utilizando JSON, consulte Especificación de reglas de selección de tablas y transformaciones 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: el nombre del esquema de tabla.

table-name: el 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 etiqueta individual.

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 de S3, consulte Etiquetado de objetos en la Guí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.

Creación de claves de AWS KMS para cifrar objetos de destino de Amazon S3

Puede crear y utilizar claves de AWS KMS personalizadas 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 Parquet y CDC en el 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 puntos de conexión al utilizar Amazon S3 como destino para AWS DMS.

Para cifrar objetos de destino de Amazon S3 con 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 este rol de IAM en una política (una política de claves) asociada a la clave de cifrado que cree. Puede hacer esto en su propia consola de IAM mediante la creación de lo siguiente:

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

  • Un rol de IAM con esta política.

  • Una clave de cifrado de claves de KMS con una política de claves que hace referencia a este rol.

En los procedimientos siguientes se describe cómo hacerlo.

Para crear una política de IAM con permisos para acceder 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. Seleccione 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, elija Todos los recursos para proporcionar acceso general a 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": "*" } ] }

Ya ha creado la nueva política para acceder a recursos de Amazon S3 para cifrado con un nombre especificado, por ejemplo, DMS-S3-endpoint-access.

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

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

  3. Con el servicio de AWS seleccionado como entidad de confianza, elija DMS como servicio que utiliza el rol 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 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 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.

Ya ha creado el nuevo rol para acceder a recursos de Amazon S3 para cifrado con un nombre especificado, por ejemplo, DMS-S3-endpoint-access-role.

Para crear una clave de cifrado de claves de KMS con una política de claves que hace referencia al rol de IAM
nota

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

  1. Inicie sesión en la AWS Management Console y abra la consola de 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 todos los servicios de AWS, 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. En Esta cuenta, elija los usuarios disponibles que deberán poder realizar operaciones criptográficas en los objetivos de Amazon S3. Además, elija el rol que creó anteriormente en Roles para habilitar el acceso con el fin de cifrar los objetos de destino de Amazon S3, por ejemplo DMS-S3-endpoint-access-role.

  12. Si quiere agregar otras cuentas que no figuran en la lista para que tengan el mismo acceso, en Otras cuentas de AWS, elija Agregar otra cuenta de AWS y, a continuación, elija Siguiente. 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. Seleccione Finalizar. Se abre la página de claves de cifrado con un mensaje que indica que se ha creado la clave de KMS.

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

Uso de la partición de carpetas basada en fechas

AWS DMS admite particiones de carpetas S3 en función de la fecha de confirmación de la transacción cuando utiliza Amazon S3 como punto de conexión de destino. Al utilizar la partición de carpetas basada en fechas, puede escribir datos de una sola tabla de origen en una estructura de carpetas jerárquica temporal en un bucket de S3. Al particionar carpetas al crear un punto de conexión de destino de S3, puede hacer lo siguiente:

  • Administrar mejor los objetos de S3

  • Limitar el tamaño de cada carpeta de S3

  • Optimizar las consultas de lago de datos u otras operaciones posteriores

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

  • DatePartitionEnabled: especifica la partición en función de las fechas. Establezca esta opción booleana en true para dividir las carpetas del bucket de S3 en función de las fechas de confirmación de transacciones.

    No puede usar esta configuración con PreserveTransactions ni CdcPath.

    El valor predeterminado es false.

  • DatePartitionSequence: identifica la secuencia del formato de fecha que se va a utilizar durante la partición de carpetas. Establezca esta opción ENUM en YYYYMMDD, YYYYMMDDHH, YYYYMM, MMYYYYDD o DDMMYYYY. El valor predeterminado es YYYYMMDD. Utilice esta configuración cuando DatePartitionEnabled esté establecido en true.

  • DatePartitionDelimiter: especifica un delimitador de separación de fechas para utilizar durante la creación de particiones de carpetas. Establezca esta opción ENUM en SLASH, DASH, UNDERSCORE o NONE. 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 partición de datos y el delimitador. Utiliza la opción --s3-settings '{json-settings}' del comando create-endpoint de la AWS CLI.

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

Carga paralela de orígenes particionados cuando se utiliza Amazon S3 como destino para AWS DMS

Puede configurar una carga completa paralela de orígenes de datos particionados 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 origen de 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 permiten a AWS DMS ejecutar procesos paralelos para llenar cada subcarpeta en el destino.

Para configurar una carga completa paralela de un objetivo de S3, S3 admite tres tipos de reglas parallel-load para la regla table-settings de asignación de tablas:

  • partitions-auto

  • partitions-list

  • ranges

Para obtener más información sobre estos tipos de regla de carga paralela, consulte Reglas y operaciones de configuración de tablas y recopilaciones.

Para los tipos de reglas partitions-auto y partitions-list, AWS DMS utiliza el nombre de cada partición del punto de conexión 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 subcarpeta partition_name adicional que corresponde a una partición de origen con el mismo nombre. A continuación, esta subcarpeta partition_name almacena uno o más archivos LOADseq_num.csv que contienen datos migrados desde la partición de origen especificada. Aquí, seq_num es el sufijo del número de secuencia en el nombre del archivo .csv, por ejemplo, 00000001 en 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 DMS agrega el índice de segmentos 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

En este caso, los archivos SEGMENT1_LOAD00000001.csv y SEGMENT1_LOAD00000002.csv se denominan con el mismo prefijo de índice del segmento de origen en ejecución, SEGMENT1. Se denominan así porque los datos de origen migrados para 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 archivos SEGMENT2_LOAD00000009.csv y SEGMENT3_LOAD0000000A.csv de destino están asociados a diferentes índices de segmentos de origen en ejecución. Cada archivo tiene su nombre de archivo prefijado con el nombre de su índice de segmentos en ejecución, SEGMENT2 y SEGMENT3.

Para el tipo de carga paralela ranges, los nombres y los valores de las columnas se definen mediante la configuración de columns y boundaries de las reglas de table-settings. 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í, la configuración de segment-names define los nombres de tres particiones para migrar datos en paralelo en el destino de 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 DMS almacena una serie de archivos .csv en cada una de las tres subcarpetas de particiones. La serie de archivos .csv de cada subcarpeta de partición se nombra de forma incremental, empezando por LOAD00000001.csv hasta que se migren todos los datos.

En algunos casos, es posible que no asigne un nombre explícito a las subcarpetas de partición para un tipo de carga paralela de ranges mediante la configuración de segment-names. En estos casos, AWS DMS aplica el valor predeterminado de crear cada serie de archivos .csv en la subcarpeta table_name. Aquí, AWS DMS antepone los nombres de archivo de cada serie de archivos .csv con el nombre del índice del segmento de origen 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 puntos de conexión al utilizar Amazon S3 como destino para AWS DMS

Puede utilizar la configuración de punto de conexión para configurar la base de datos de destino de Amazon S3 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 --s3-settings '{"EndpointSetting": "value", ...}'.

La siguiente tabla muestra la configuración 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 son anulables, puede usar esta opción para diferenciar entre el valor de cadena vacía y el valor nulo. Por lo tanto, si establece este valor de parámetro en la cadena vacía (“ ” o “), AWS DMS trata la cadena vacía como el valor nulo en lugar de NULL.

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 utilizar este parámetro con PreserveTransactions ni CdcPath.

Valor predeterminado: false

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

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

AddTrailingPaddingCharacter

Utilice la configuración del punto de conexión de destino de S3 AddTrailingPaddingCharacter para agregar 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. Si CdcPath está configurado, DMS lee los archivos CDC desde esta ruta y replica los cambios de datos en el punto de conexión de destino. Para un destino de S3 si establece PreserveTransactions en verdadero, DMS verifica que ha establecido este parámetro en una ruta de carpeta en su destino de S3 donde 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 mediante BucketFolder y BucketName.

No puede utilizar este parámetro con DatePartitionEnabled ni AddColumnName.

Tipo: cadena

Por ejemplo, si especifica CdcPath como MyChangedData y BucketName como MyTargetBucket, pero no especifica BucketFolder, DMS crea la siguiente ruta de la carpeta de CDC: MyTargetBucket/MyChangedData.

Si especifica la misma CdcPath y BucketName como MyTargetBucket y BucketFolder como MyTargetData, DMS crea la siguiente ruta de la carpeta de CDC: MyTargetBucket/MyTargetData/MyChangedData.

nota

Esta configuración se admite en las versiones de AWS DMS 3.4.2 y superiores.

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

CdcMaxBatchInterval

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

Valor predeterminado: 60 segundos

Cuando CdcMaxBatchInterval se especifica y CdcMinFileSize se especifica, la escritura del archivo se desencadena según la condición de parámetro que se cumpla primero.

CdcMinFileSize

Condición de tamaño de archivo mínimo definido en kilobytes para enviar un archivo a Amazon S3.

Valor predeterminado: 32 000 KB

Cuando CdcMinFileSize se especifica y CdcMaxBatchInterval se especifica, la escritura del archivo se desencadena según la condición de parámetro que se cumpla primero.

PreserveTransactions

Si se establece en true, DMS guarda la orden de transacción para una carga de captura de datos de cambio (CDC) en el destino de Amazon S3 especificado por CdcPath.

No puede utilizar este parámetro con DatePartitionEnabled ni AddColumnName.

Tipo: Booleano

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

nota

Esta configuración se admite en las versiones de AWS DMS 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-1 048 576

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

Rfc4180

Un parámetro opcional que se utiliza para establecer un comportamiento de conformidad con RFC de los datos migrados a Amazon S3 utilizando solo el formato de archivo .csv. Cuando este valor se establece en true o y con Amazon S3 como destino, si los datos tienen comillas, comas o caracteres de nueva línea, AWS DMS incluye toda la columna con un par de comillas dobles (“”) adicional. 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 el comando modify-endpoint de la CLI para cambiar el valor del atributo EncryptionMode para un punto de conexión existente de SSE_KMS a SSE_S3. Sin embargo, no se puede cambiar el valor EncryptionMode de SSE_S3 a SSE_KMS.

Valor predeterminado: SSE_S3

Valores válidos: SSE_S3 o SSE_KMS

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

ServerSideEncryptionKmsKeyId

Si establece EncryptionMode en SSE_KMS, establezca este parámetro en el nombre de recurso de Amazon (ARN) para 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 Creación de claves de AWS KMS para cifrar 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 destinos de Amazon S3, AWS DMS admite 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 utiliza una combinación de paquete de bits y codificación de longitud de ejecución para almacenar los valores repetidos con mayor eficiencia.

  • plain: sin codificación.

  • plain-dictionary: esta codificación de diccionario crea un diccionario de valores que se encuentran en una columna dada. 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 DMS incluye una columna STRING adicional en el archivo .csv o los archivos de objeto .parquet de los datos migrados cuando se establece TimestampColumnName en un valor no vacío.

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 el parámetro AddColumnName está establecido en true, DMS incluye también el nombre de la columna de marca temporal definido como el valor no vacío de TimestampColumnName.

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

UseTaskStartTimeForFullLoadTimestamp

Cuando se establece en true, este parámetro utiliza la hora de inicio de la tarea como el valor de la columna de marca temporal 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: true ayuda a que el objetivo de S3 TimestampColumnName para una carga completa se pueda ordenar con TimestampColumnName para 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 como verdadero para los archivos de objetos de punto de conexión de S3 con formato .parquet solo si planea consultar o procesar los datos con Athena o AWS 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 generar AWS Glue Data Catalog, establezca esta configuración de punto de conexión en true.

Valor predeterminado: false

Valores válidos: true, false,

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

Nota: No use GlueCatalogGeneration con PreserveTransactions y CdcPath.

Uso de AWS Glue Data Catalog con un objetivo de Amazon S3 para AWS DMS

AWS Glue es un servicio que proporciona formas sencillas de categorizar los datos y consta de un repositorio de metadatos conocido como AWS Glue Data Catalog. Puede integrar AWS Glue Data Catalog con el punto de conexión de destino de Amazon S3 y consultar los datos de Amazon S3 a través de otros servicios de AWS, como Amazon Athena. Amazon Redshift funciona con AWS Glue pero AWS DMS no la admite como opción prediseñada.

Para generar el catálogo de datos, establezca la configuración del punto de conexión de GlueCatalogGeneration en true, como se muestra en el siguiente ejemplo de la AWS CLI.

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 de carga completa que incluye datos de tipo csv, establezca IncludeOpForFullLoad en true.

No use GlueCatalogGeneration con PreserveTransactions y CdcPath. El rastreador de AWS Glue no puede conciliar los diferentes esquemas de archivos almacenados en la CdcPath especificada.

Para que Amazon Athena indexe los datos de Amazon S3 y para que usted pueda consultarlos mediante consultas SQL estándar a través de Amazon Athena, el rol de IAM asociado 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 obtener más información acerca de AWS Glue Data Catalog, consulte Componentes en la Guía para desarrolladores de AWS Glue.

Uso del cifrado de datos, archivos Parquet y CDC en el destino de Amazon S3

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

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

  • Archivos Parquet como formato de almacenamiento para objetos de destino de S3.

  • Captura de datos de cambio (CDC) incluida la orden de transacción en el destino de S3.

  • Integre AWS Glue Data Catalog con el punto de conexión 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 el comando modify-endpoint de la CLI para cambiar el valor del parámetro de EncryptionMode para un punto de conexión existente de SSE_KMS a SSE_S3. Sin embargo, no se puede cambiar el valor EncryptionMode de SSE_S3 a SSE_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: establecido en 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: establecido en un tamaño máximo de página de diccionario de 3 MB.

  • EnableStatistics: desactiva el valor predeterminado que permite la recopilación de estadísticas sobre páginas de archivo Parquet y grupos de filas.

Captura de datos de cambio (CDC) incluida la orden de transacción en el destino de S3

De forma predeterminada, cuando AWS DMS ejecuta una tarea de CDC, 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 DMS crea tantos directorios de destino como tablas de bases de datos migradas al punto de conexión de destino de Amazon S3. Los archivos se almacenan en el destino de S3 en estos directorios independientemente del orden de las transacciones. Para obtener más información sobre las convenciones de nomenclatura de archivos, contenidos de datos y formato, consulte Uso de Amazon S3 como destino para AWS Database Migration Service.

Para capturar los cambios en la base de datos de origen de forma que también capturen el orden de las transacciones, puede especificar la configuración del punto de conexión de S3 que permita a AWS DMS almacenar directamente los cambios de fila de todas las tablas de la base de datos en uno o más archivos .csv creados en función del tamaño de la transacción. Estos archivos de transacciones .csv contienen todos los cambios de fila mostrados secuencialmente en el orden de las transacciones para todas las tablas implicadas en cada transacción. Estos archivos de transacciones residen juntos en un único directorio de transacciones que también se especifica en el destino de 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í, operation es la operación de transacción en la fila modificada, table_name es el nombre de la tabla de base de datos en la que se cambia la fila, database_schema_name es el nombre del esquema de base de datos en el que reside la tabla y field_value es 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 mediante I (insertar), U (actualizar) o D (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 DMS asigna un nombre a los archivos de transacciones que crea en el destino de Amazon S3 mediante una marca temporal de acuerdo con la siguiente convención de nomenclatura.

CDC_TXN-timestamp.csv

Aquí, timestamp es la hora en que se creó el archivo de transacciones, como en el siguiente ejemplo.

CDC_TXN-20201117153046033.csv

Esta marca temporal en el nombre del archivo garantiza que los archivos de transacciones se creen y se muestren en el orden de transacción al incluirlos en el directorio de transacciones.

nota

Al capturar los cambios de datos en el orden de las transacciones, AWS DMS siempre almacena los cambios de fila en archivos .csv, independientemente del valor de la configuración de DataFormat S3 en el destino. AWS DMS no guarda cambios de datos en el orden de transacción con los 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 los ajustes CdcMaxBatchInterval y CdcMinFileSize. Esto puede traducirse en un mejor rendimiento al analizar los datos sin necesidad de realizar operaciones adicionales que supongan una sobrecarga. Para obtener más información, consulte Configuración de puntos de conexión al utilizar Amazon S3 como destino para AWS DMS

Para indicar a AWS DMS que almacene todos los cambios de fila en el orden de las transacciones
  1. Establezca la configuración de PreserveTransactions S3 en el destino en true.

  2. Establezca la configuración de CdcPath S3 en el destino en una ruta de carpeta relativa en la que desee que AWS DMS almacene los archivos de transacciones .csv.

    AWS DMS crea esta ruta en el bucket de destino y el directorio de trabajo predeterminados de S3 o en el bucket y la carpeta del bucket que especifique mediante la configuración de BucketName y BucketFolder S3 en el destino.

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ómo AWS DMS crea y establece este primer campo depende del tipo de tarea de migración y de la configuración de includeOpForFullLoad, cdcInsertsOnly y cdcInsertsAndUpdates.

Para una carga completa, cuando includeOpForFullLoad es true, AWS DMS siempre 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, cuando cdcInsertsOnly es false (el valor predeterminado), AWS DMS siempre crea 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 de los atributos includeOpForFullLoad y cdcInsertsOnly funcionan juntos y afectan a la configuración de los registros migrados.

Con estas configuraciones de parámetros DMS establece los registros de destino de la forma siguiente para la salida .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 cdcInsertsAndUpdates 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 Parquet de S3

La siguiente tabla muestra los tipos de datos de destino de Parquet que se admiten cuando se utiliza AWS DMS y la asignación predeterminada desde los tipos de datos de AWS DMS.

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

Tipo de datos AWS DMS

Tipo de datos de Parquet de 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