Uso de paquetes de extensión con AWS Schema Conversion Tool
Un paquete de extensión de AWS SCT es un módulo complementario que simula funciones presentes en una base de datos de origen que son necesarias a la hora de convertir objetos a la base de datos de destino. Para poder instalar el paquete de extensión de AWS SCT, debe convertir su esquema de base de datos.
El paquete de extensión de AWS SCT incluye los siguientes componentes:
Esquema de base de datos: incluye funciones, procedimientos y tablas de SQL para simular ciertos objetos de bases de datos de procesamiento de transacciones en línea (OLTP) y procesamiento analítico en línea (OLAP), como las secuencias. Además, simula funciones integradas no compatibles de la base de datos de origen. El nombre de este esquema tiene el siguiente formato:
aws_
.database_engine_name
_extFunciones de AWS Lambda (para determinadas bases de datos OLTP): Incluye funciones de AWS Lambda que simulan funcionalidades de la base de datos complejas, como programación del trabajo y envío de correos electrónicos.
Bibliotecas personalizadas para bases de datos OLAP: incluye un conjunto de bibliotecas de Java y Python que puede usar para migrar scripts de Microsoft SQL Server Integration Services (SSIS) para la extracción, transformación y carga (ETL) de scripts a AWS Glue o AWS Glue Studio.
Las bibliotecas de Java incluyen los siguientes módulos:
spark-excel_2.11-0.13.1.jar
: para emular la funcionalidad de los componentes de origen y destino de Excel.spark-xml_2.11-0.9.0.jar
,poi-ooxml-schemas-4.1.2.jar
yxmlbeans-3.1.0.jar
: para simular la funcionalidad del componente de origen de XML.
Las bibliotecas de Python incluyen los siguientes módulos:
sct_utils.py
: para simular los tipos de datos de origen y preparar los parámetros para la consulta SQL de Spark.ssis_datetime.py
: para simular las funciones integradas de fecha y hora.ssis_null.py
: para simular las funciones integradas deISNULL
yREPLACENULL
.ssis_string.py
: para simular funciones integradas de cadenas.
Para obtener más información sobre estas bibliotecas, consulte Uso de bibliotecas personalizadas para los paquetes de extensión de AWS SCT.
Puede aplicar paquetes de extensión de AWS SCT de dos formas:
AWS SCT aplica automáticamente un paquete de extensión cuando se aplica un script de base de datos de destino al elegir Aplicar a base de datos en el menú contextual. AWS SCT aplica el paquete de extensión antes de que aplique el resto de los objetos del esquema.
Para aplicar manualmente un paquete de extensión, seleccione la base de datos de destino y, a continuación, elija Aplicar paquete de extensión para desde el menú contextual (clic secundario). La aplicación automática es suficiente para la mayoría de las situaciones. Sin embargo, es posible que desee aplicar el paquete de forma manual si se elimina accidentalmente.
Cada vez que se aplica un paquete de extensión de AWS SCT a un almacén de datos de destino, los componentes se sobrescriben y AWS SCT muestra una notificación al respecto. Para desactivar estas notificaciones, seleccione Configuración, Configuración global, Notificaciones y, a continuación, seleccione Ocultar la alerta de sustitución del paquete de extensión.
Para una conversión de Microsoft SQL Server a PostgreSQL, puede utilizar el paquete de extensión de SQL Server a PostgreSQL en AWS SCT. Este paquete de extensión simula SQL Server Agent y SQL Server Database Mail. Para obtener más información, consulte Simulación del Agente SQL Server en PostgreSQL con un paquete de extensión y Simulación del correo electrónico de base de datos de SQL Server en PostgreSQL con un paquete de extensión.
A continuación, encontrará más información acerca de cómo utilizar los paquetes de extensión de AWS SCT.
Temas
- Permisos para usar el paquete de extensión de AWS SCT
- Uso del esquema del paquete de extensión
- Uso de bibliotecas personalizadas para los paquetes de extensión de AWS SCT
- Uso de las funciones de AWS Lambda del paquete de extensión de AWS SCT
- Configuración de las funciones del paquete de extensión de AWS SCT
Permisos para usar el paquete de extensión de AWS SCT
El paquete de extensión de AWS SCT para Amazon Aurora simula el envío de correo, la programación de tareas, la creación de colas y otras operaciones mediante funciones de AWS Lambda. Al aplicar el paquete de extensión de AWS SCT a la base de datos Aurora de destino, AWS SCT crea un nuevo rol de AWS Identity and Access Management (IAM) y una política de IAM integrada. A continuación, AWS SCT crea una nueva función de Lambda y configura el clúster de base de datos de Aurora para las conexiones salientes a AWS Lambda. Para ejecutar estas operaciones, debe conceder los siguientes permisos necesarios al usuario de IAM:
iam:CreateRole
: para crear un nuevo rol de IAM para su cuenta de AWS.iam:CreatePolicy
: para crear una nueva política de IAM para su cuenta de AWS.iam:AttachRolePolicy
: para adjuntar la política especificada al rol de IAM.iam:PutRolePolicy
: para actualizar un documento de política insertado que está integrado en el rol de IAM especificado.iam:PassRole
: para transferir el rol de IAM especificado al motor de reglas.iam:TagRole
: para agregar etiquetas a un rol de IAM.iam:TagPolicy
: para agregar etiquetas a una política de IAM.lambda:ListFunctions
: para ver la lista de sus funciones de Lambda.lambda:ListTags
: para ver la lista de etiquetas de sus funciones de Lambda.lambda:CreateFunction
: para crear una nueva función de Lambda.rds:AddRoleToDBCluster
: para asociar un rol de IAM a su clúster de base de datos de Aurora.
El paquete de extensión de AWS SCT para Amazon Redshift simula las funciones de base del almacenamiento de datos de origen que se requieren al aplicar objetos convertidos a Amazon Redshift. Antes de aplicar el código convertido a Amazon Redshift, debe aplicar el paquete de extensión para Amazon Redshift. Para ello, incluya la acción iam:SimulatePrincipalPolicy
en la política de IAM.
AWS SCT utiliza el simulador de política de IAM para comprobar los permisos necesarios para instalar el paquete de extensión de Amazon Redshift. El simulador de política de IAM puede mostrar un mensaje de error, aunque el usuario de IAM se haya configurado correctamente. Se trata de un problema conocido del simulador de política de IAM. Además, este simulador muestra un mensaje de error cuando la política de IAM no incluye esa acción de iam:SimulatePrincipalPolicy
. En estos casos, puede ignorar el mensaje de error y aplicar el paquete de extensión utilizando el asistente del paquete de extensión. Para obtener más información, consulte Aplicación del paquete de extensión.
Uso del esquema del paquete de extensión
Al convertir su esquema de almacenamiento de datos o base de datos, AWS SCT añade un esquema adicional a su base de datos de destino. Este esquema implementa las funciones del sistema SQL de la base de datos de origen que son necesarias al escribir su esquema convertido en la base de datos de destino. El esquema adicional se denomina esquema del paquete de extensión.
El esquema del paquete de extensión para bases de datos OLTP se nombra en función a la base de datos de origen, de la siguiente manera:
-
Microsoft SQL Server:
AWS_SQLSERVER_EXT
-
MySQL:
AWS_MYSQL_EXT
-
Oracle:
AWS_ORACLE_EXT
-
PostgreSQL:
AWS_POSTGRESQL_EXT
El esquema del paquete de extensión para aplicaciones data warehouse OLAP se nombra en función del almacén de base de datos de origen, de la siguiente manera:
-
Greenplum:
AWS_GREENPLUM_EXT
-
Microsoft SQL Server:
AWS_SQLSERVER_EXT
-
Netezza:
AWS_NETEZZA_EXT
-
Oracle:
AWS_ORACLE_EXT
-
Teradata:
AWS_TERADATA_EXT
-
Vertica:
AWS_VERTICA_EXT
Uso de bibliotecas personalizadas para los paquetes de extensión de AWS SCT
En algunos casos, AWS SCT no puede convertir características de la base de datos de origen a características equivalentes en la base de datos de destino. El paquete de extensión de AWS SCT contiene bibliotecas personalizadas que simulan algunas funcionalidades de la base de datos de origen en su base de datos de destino.
Si va a convertir una base de datos transaccional, consulte Uso de las funciones de AWS Lambda del paquete de extensión de AWS SCT.
Aplicación del paquete de extensión
Puede aplicar el paquete de extensión de AWS SCT mediante el asistente del paquete de extensión o al aplicar el código convertido a la base de datos de destino.
Para aplicar el paquete de extensión mediante el asistente del paquete de extensión
-
En AWS Schema Conversion Tool, en el árbol de la base de datos de destino, abra el menú contextual (clic secundario) y seleccione Aplicar paquete de extensión para y, a continuación, elija su plataforma de base de datos de origen.
Aparecerá el asistente de paquete de extensión.
-
Lea la página Welcome y seleccione Next.
-
En la página Configuración del perfil de AWS, haga lo siguiente:
-
Si está volviendo a instalar solamente el esquema del paquete de extensión, seleccione Skip this step for now y, a continuación, Next. La opción Omitir este paso por ahora solo está disponible para las bases de datos de procesamiento de transacciones en línea (OLTP).
-
Si está cargando una biblioteca nueva, facilite las credenciales para conectarse a su Cuenta de AWS. Utilice este paso únicamente cuando convierta bases de datos OLAP o scripts de ETL. Puede utilizar sus credenciales de AWS Command Line Interface (AWS CLI) si tiene instalada la AWS CLI. También puede utilizar las credenciales que ya haya almacenado en un perfil en la configuración global de la aplicación y tenga asociadas con el proyecto. Si fuera necesario, seleccione Ir a la configuración global para asociar un perfil distinto al proyecto de AWS SCT. Para obtener más información, consulte Administración de perfiles en AWS Schema Conversion Tool.
-
-
Si va a cargar una biblioteca nueva, seleccione Necesito cargar una biblioteca en la página Carga de bibliotecas. Utilice este paso únicamente cuando convierta bases de datos OLAP o scripts de ETL. A continuación, proporcione la ruta de Amazon S3 y, luego, seleccione Cargar biblioteca a S3.
Si ya ha cargado la biblioteca, seleccione la opción Ya tengo bibliotecas cargadas, usar mi bucket de S3 existente en la página Carga de bibliotecas. A continuación, proporcione la ruta de Amazon S3.
Cuando haya terminado, elija Next.
-
En la página Simulación de funciones, seleccione Crear paquete de extensión. Aparecerán mensajes con el estado de las operaciones del paquete de extensión.
Cuando haya terminado, seleccione Finish.
Para aplicar el paquete de extensión al aplicar el código convertido
-
Especifique el bucket de Amazon S3 en el perfil de servicio de AWS. Utilice este paso únicamente cuando convierta bases de datos OLAP o scripts de ETL. Para obtener más información, consulte Administración de perfiles en AWS Schema Conversion Tool.
Compruebe que el bucket de Amazon S3 incluye los siguientes permisos:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["*"] }, { "Effect": "Allow", "Action": ["s3:PutObject"], "Resource": ["*"] }, { "Effect": "Allow", "Action": ["iam:SimulatePrincipalPolicy"], "Resource": ["*"] }, { "Effect": "Allow", "Action": ["iam:GetUser"], "Resource": ["arn:aws:iam::
111122223333:user/DataExtractionAgentName
"] } ] }En el ejemplo anterior, sustituya
111122223333:user/DataExtractionAgentName
por el nombre del usuario de IAM. -
Convierta sus esquemas de almacenamiento de datos de origen. Para obtener más información, consulte Conversión de esquemas de almacenamiento de datos.
-
En el panel derecho, elija el esquema convertido.
-
Abra el menú contextual (clic con el botón secundario) del elemento del esquema y seleccione Aplicar a base de datos.
-
AWS SCT genera paquetes de extensión con los componentes necesarios y agrega el esquema de
aws_
al árbol de destino. Seguidamente, AWS SCT aplica el código convertido y el esquema del paquete de extensión al almacenamiento de datos destino.database_engine_name
_extSi utiliza una combinación de Amazon Redshift y AWS Glue como plataforma de base de datos de destino, AWS SCT agrega un esquema adicional al paquete de extensión.
Uso de las funciones de AWS Lambda del paquete de extensión de AWS SCT
AWS SCT proporciona un paquete de extensión que contiene funciones de Lambda para correo electrónico, programación del trabajo y otras características a las bases de datos alojadas en la Amazon EC2.
Uso de las funciones de AWS Lambda para simular la funcionalidad de una base de datos
En algunos casos, las características de la base de datos de origen no se pueden convertir a características de Amazon RDS equivalentes. Algunos ejemplos son las llamadas de envío de correos electrónicos de Oracle que utilizan UTL_SMTP
y las tareas de Microsoft SQL Server que utilizan un programador de trabajos. Si aloja y autoadministra una base de datos en Amazon EC2, puede simular estas características sustituyendo los servicios de AWS por ellas.
El asistente del paquete de extensión de AWS SCT le ayuda a instalar, crear y configurar funciones de Lambda para simular las características de correo electrónico, programación del trabajo y otras.
Aplicación del paquete de extensión para admitir funciones de Lambda
Puede aplicar el paquete de extensión para admitir funciones de Lambda mediante el asistente del paquete de extensión o al aplicar el código convertido a la base de datos de destino.
importante
Las características de simulación de los servicios de AWS solo se admiten en bases de datos instaladas y autoadministradas en la Amazon EC2. No instale las características de simulación de servicios si la base de datos de destino está en una instancia de base de datos de Amazon RDS.
Para aplicar el paquete de extensión mediante el asistente del paquete de extensión
-
En AWS Schema Conversion Tool, en el árbol de la base de datos de destino, abra el menú contextual (clic secundario) y seleccione Aplicar paquete de extensión para y, a continuación, elija su plataforma de base de datos de origen.
Aparecerá el asistente de paquete de extensión.
-
Lea la página Welcome y seleccione Next.
-
En la página Configuración del perfil de AWS, haga lo siguiente:
-
Si está volviendo a instalar solamente el esquema del paquete de extensión, seleccione Skip this step for now y, a continuación, Next.
-
Si está instalando servicios de AWS, facilite las credenciales para conectarse a la cuenta de Cuenta de AWS. Puede utilizar sus credenciales de AWS CLI si tiene instalada la AWS CLI. También puede utilizar las credenciales que ya haya almacenado en un perfil en la configuración global de la aplicación y tenga asociadas con el proyecto. Si fuera necesario, seleccione Navigate to Project Settings para asociar al proyecto un perfil diferente. Si fuera necesario, seleccione Configuración global para crear un nuevo perfil. Para obtener más información, consulte Administración de perfiles en AWS Schema Conversion Tool.
-
-
En la página Email Sending Service, haga lo siguiente:
-
Si está volviendo a instalar solamente el esquema del paquete de extensión, seleccione Skip this step for now y, a continuación, Next.
-
Si está instalando servicios de AWS y ya tiene una función de Lambda, puede introducirla. De lo contrario, el asistente la creará por usted. Cuando haya terminado, elija Next.
-
-
En la página Job Emulation Service, haga lo siguiente:
-
Si está volviendo a instalar solamente el esquema del paquete de extensión, seleccione Skip this step for now y, a continuación, Next.
-
Si está instalando servicios de AWS y ya tiene una función de Lambda, puede introducirla. De lo contrario, el asistente la creará por usted. Cuando haya terminado, elija Next.
-
-
En la página Simulación de funciones, seleccione Crear paquete de extensión. Aparecerán mensajes con el estado de las operaciones del paquete de extensión.
Cuando haya terminado, seleccione Finish.
nota
Para actualizar un paquete de extensión y sobrescribir los componentes del paquete de extensión anterior, utilice la última versión de AWS SCT. Para obtener más información, consulte Instalación y configuración de AWS Schema Conversion Tool.
Configuración de las funciones del paquete de extensión de AWS SCT
El paquete de extensión contiene funciones que debe configurar antes de su uso. La constante CONVERSION_LANG
define el idioma que utiliza el paquete de servicios. Las funciones están disponibles en inglés y alemán.
Para configurar el idioma en inglés o alemán, realice el siguiente cambio en el código de la función. Encuentre la siguiente declaración de constantes:
CONVERSION_LANG CONSTANT VARCHAR := '';
Para establecer CONVERSION_LANG
en inglés, cambie la línea por la siguiente:
CONVERSION_LANG CONSTANT VARCHAR := 'English';
Para establecer CONVERSION_LANG
en inglés, cambie la línea por la siguiente:
CONVERSION_LANG CONSTANT VARCHAR := 'Deutsch';
Establezca este ajuste para las siguientes funciones:
aws_sqlserver_ext.conv_datetime_to_string
aws_sqlserver_ext.conv_date_to_string
aws_sqlserver_ext.conv_string_to_date
aws_sqlserver_ext.conv_string_to_datetime
aws_sqlserver_ext.conv_string_to_datetime
aws_sqlserver_ext.parse_to_date
aws_sqlserver_ext.parse_to_datetime
aws_sqlserver_ext.parse_to_time