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.
Usando Babelfish como objetivo paraAWS Database Migration Service
Puede migrar datos de una base de datos fuente de Microsoft SQL Server a un destino de Babelfish utilizandoAWS Database Migration Service.
Babelfish for Aurora PostgreSQL amplía la base de datos de edición compatible con Amazon Aurora PostgreSQL con la capacidad de aceptar conexiones de bases de datos de clientes de Microsoft SQL Server. Esto permite que las aplicaciones creadas originalmente para SQL Server funcionen directamente con Aurora PostgreSQL con pocos cambios de código en comparación con una migración tradicional y sin cambiar los controladores de base de datos.
El endpoint deAWS DMS Babelfish es compatible con Aurora PostgreSQL con la versión 13.6 compatible con Babelfish (versión 1.2.0 de Babelfish) o posterior. Las versiones anteriores de Babelfish en Aurora PostgreSQL, versiones 13.4 y 13.5, requieren una actualización de versión menor antes de usar el endpoint de Babelfish.
Para obtener información sobre el uso de Babelfish como punto final de base de datos, consulte Babelfish para Aurora PostgreSQL en la Guía del usuario de Amazon Aurora para Aurora
Requisitos previos para utilizar Babelfish como destino paraAWS DMS
Realice los siguientes pasos preparatorios antes de migrar los datos de la fuente a la base de datos de Babelfish de destino.
-
Prepara y crea tus mesas. Para garantizar el uso de los tipos de datos correctos, debe crear las tablas antes de migrar los datos. Si las tablas no están precreadas antes deAWS DMS ejecutarlas, DMS las creará con tipos de datos incorrectos. Por ejemplo, DMS creará una columna de marca de tiempo como binaria (8) en su lugar y no proporcionará la funcionalidad de timestamp/rowversion esperada.
-
Administre las tablas que tengan una columna IDENTITY.
-
Defina las unidades de capacidad de Aurora (ACU) para su base DE datos de destino de Aurora PostgreSQL sin servidor V2.
A continuación se indican los procedimientos para llevar a cabo esas etapas preparatorias.
Para preparar y crear las tablas antes de la migración
-
Ejecute las sentencias DDL de creación de tablas que incluyan restricciones únicas, claves principales o restricciones predeterminadas.
No incluya restricciones de clave externa ni sentencias DDL para objetos como vistas, procedimientos almacenados, funciones o activadores. Puede aplicarlas después de migrar la base de datos de origen.
-
Identifique las columnas de identidad, las columnas calculadas o las columnas que contengan tipos de datos de versión de fila o marca de tiempo para sus tablas. A continuación, cree las reglas de transformación necesarias para gestionar los problemas conocidos al ejecutar la tarea de migración. Para obtener más información, consulte Reglas y acciones de transformación.
-
Identifica las columnas con tipos de datos que Babelfish no admite. A continuación, cambie las columnas afectadas de la tabla de destino para utilizar los tipos de datos compatibles o cree una regla de transformación que los elimine durante la tarea de migración. Para obtener más información, consulte Reglas y acciones de transformación.
La siguiente tabla muestra los tipos de datos de origen que Babelfish no admite y el tipo de datos de destino que se recomienda utilizar.
Tipo de datos de origen
Tipo de datos de Babelfish recomendado
IMAGE
VARBINARY (MÁXIMO)
COMPENSACIÓN DE FECHA Y HORA (7)
COMPENSACIÓN DE FECHA Y HORA (6)
Babelfish admite valores inferiores a 7.
XML
Cuando se utilizanAWS DMS para migrar datos XML de una fuente de SQL Server a un destino de Babelfish, el tamaño de los datos XML puede casi duplicarse. Por lo tanto, le recomendamos que duplique el tamaño que normalmente se establece para la
LobMaxSize
opción en la configuración de tareas de metadatos de destino. Para obtener más información, consulte Configuración de las tareas de los metadatos de destino.JERÁRQUICA
ARCHIVAR (250)
GEOMETRY
VARCHAR (MÁXIMO)
GEOGRAPHY
VARCHAR (MÁXIMO)
Para establecer el nivel de unidades de capacidad (ACU) de Aurora para su base de datos fuente Aurora PostgreSQL Serverless V2
Puede mejorar el rendimiento de la tarea deAWS DMS migración antes de ejecutarla estableciendo el valor mínimo de ACU.
-
En la ventana de configuración de capacidad de Severless v2, defina
2
las ACU mínimas en o un nivel razonable para su clúster de base de datos Aurora.Para obtener información adicional sobre la configuración de las unidades de capacidad de Aurora, consulte Elegir el rango de capacidad Aurora Serverless v2 para un clúster de Aurora en la Guía del usuario de Amazon Aurora
Tras ejecutarAWS DMS la tarea de migración, puede restablecer el valor mínimo de las ACU a un nivel razonable para la base de datos fuente de Aurora PostgreSQL Serverless V2.
Requisitos de seguridad al utilizar Babelfish como objetivo paraAWS Database Migration Service
A continuación se describen los requisitos de seguridad para su usoAWS DMS con un destino de Babelfish:
-
El nombre de usuario administrador (el usuario administrador) utilizado para crear la base de datos.
-
Inicio DE SESIÓN y usuario de T-SQL con los permisos de SELECT, INSERT, UPDATE, DELETE y REFERENCES.
Permisos de usuario para usar Babelfish como destino paraAWS DMS
Por motivos de seguridad, la cuenta de usuario utilizada para la migración de datos debe ser un usuario registrado en cualquier base de datos de Babelfish que utilices como destino.
Su terminal de destino de Babelfish requiere permisos de usuario mínimos para ejecutar unaAWS DMS migración.
Para crear un inicio de sesión y un usuario de Transact-SQL (T-SQL)
-
Cree un nombre de usuario y una contraseña para utilizarlos cuando se conecte al servidor.
CREATE LOGIN dms_user WITH PASSWORD =
'password'
; GO -
Crea la base de datos virtual para tu clúster de Babelfish.
CREATE DATABASE my_database; GO
-
Cree el usuario T-SQL para la base de datos de destino.
USE my_database GO CREATE USER dms_user FOR LOGIN dms_user; GO
-
Para cada tabla de tu base de datos de Babelfish, CONCEDE permisos a las tablas.
GRANT SELECT, DELETE, INSERT, REFERENCES, UPDATE ON [dbo].[Categories] TO dms_user;
Limitaciones al uso de Babelfish como objetivo paraAWS Database Migration Service
Se aplican las siguientes limitaciones cuando se utiliza una base de datos de Babelfish como destino paraAWS DMS:
-
Introduzca el número de puerto TDS 1433 (predeterminado) para utilizar Babelfish como destino.
-
Solo se admite la replicación a carga completa. AWS DMSno apoya a los CDC con Babelfish como objetivo.
-
Solo se admite el modo de preparación de tablas «No hacer nada».
-
El tipo de datos ROWVERSION requiere una regla de mapeo de tablas que elimine el nombre de la columna de la tabla durante la tarea de migración.
-
El tipo de datos de sql_variant no es compatible.
-
El modo LOB completo es incompatible.
-
La configuración de las tareas de replicación presenta las siguientes limitaciones:
{ "FullLoadSettings": { "TargetTablePrepMode": "DO_NOTHING", "CreatePkAfterFullLoad": false, }. "ValidationSettings": { "EnableValidation": false, } }
-
Los tipos de datos TIME (7), DATETIME2 (7) y DATETIMEOFFSET (7) de Babelfish limitan el valor de precisión de la parte de segundos del tiempo a 6 dígitos. Considere la posibilidad de utilizar un valor de precisión de 6 para la tabla de destino cuando utilice estos tipos de datos. Para las versiones 2.2.0 y posteriores de Babelfish, cuando se utilizan TIME (7) y DATETIME2 (7), el séptimo dígito de precisión siempre es cero.
-
En el modo DO_NOTHING, el DMS comprueba si la tabla ya existe. Si la tabla no existe en el esquema de destino, DMS la crea basándose en la definición de la tabla de origen y asigna cualquier tipo de datos definido por el usuario a su tipo de datos base.
-
Una tarea deAWS DMS migración a un destino de Babelfish no admite tablas que tengan columnas que utilicen los tipos de datos ROWVERSION o TIMESTAMP. Puede utilizar una regla de mapeo de tablas que elimine el nombre de la columna de la tabla durante el proceso de transferencia. En el siguiente ejemplo de regla de transformación, una tabla con
Actor
el nombre de la fuente se transforma para eliminar todas las columnas, empezando por los caracterescol
de laActor
tabla de destino.{ "rules": [{ "rule-type": "selection",is "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "remove-column", "rule-target": "column", "object-locator": { "schema-name": "test", "table-name": "Actor", "column-name": "col%" } }] }
-
Babelfish no copia las columnas de tipos de datos IMAGE.
-
Para las tablas con identidades o columnas calculadas, en las que las tablas de destino utilizan nombres mixtos en mayúsculas, como Categorías, debe crear una acción de regla de transformación que convierta los nombres de las tablas a minúsculas para la tarea de DMS. El siguiente ejemplo muestra cómo crear la acción de la regla de transformación, Convertir en minúsculas mediante laAWS DMS consola. Para obtener más información, consulte Reglas y acciones de transformación.
-
Antes de la versión 2.2.0 de Babelfish, el DMS limitaba a veinte (20) columnas el número de columnas que se podían replicar en un punto final de Babelfish. Con Babelfish versión 2.2.0 y posterior, el límite aumenta a 100 columnas. Para tablas con más de 100 columnas, puede utilizar el punto final de PostgreSQL como solución alternativa.
Tipos de datos de destino para Babelfish
La siguiente tabla muestra los tipos de datos de destino de Babelfish que se admiten cuando se utilizanAWS DMS y el mapeo predeterminado a partir deAWS DMS los tipos 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 Babelfish |
---|---|
BOOLEANO |
TINYINT |
BYTES |
VARBINARY (longitud) |
DATE |
DATE |
TIME |
TIME |
INT1 |
SMALLINT |
INT2 |
SMALLINT |
INT4 |
INT |
INT8 |
BIGINT |
NUMERIC |
NUMERIC (p,s) |
REAL4 |
REAL |
REAL8 |
FLOAT |
STRING |
Si la columna es una columna de fecha u hora, haga lo siguiente:
Si la columna no es una columna de fecha o de hora, utilice VARCHAR (longitud). |
UINT1 |
TINYINT |
UINT2 |
SMALLINT |
UINT4 |
INT |
UINT8 |
BIGINT |
WSTRING |
NVARCHAR (longitud) |
BLOB |
VARBINARY (máx.) Para usar este tipo de datos con DMS, debe habilitar el uso de BLOB para una tarea específica. El DMS solo admite tipos de datos BLOB en tablas que incluyan una clave principal. |
CLOB |
VARCHAR (máx.) Para usar este tipo de datos con el DMS, debe habilitar el uso de CLOB para una tarea específica. |
NCLOB |
NVARCHAR (máx.) Para utilizar este tipo de datos con el DMS, debe habilitar el uso de los NCLOB para una tarea específica. Durante los CDC, el DMS admite los tipos de datos del NCLOB solo en tablas que incluyan una clave principal. |