Conversión de procesos de ETL a AWS Glue en AWS Schema Conversion Tool
A continuación encontrará una descripción del proceso a seguir para convertir scripts de ETL a AWS Glue con AWS SCT. En este ejemplo vamos a convertir una base de datos Oracle a Amazon Redshift, junto con los procesos de ETL utilizados con las bases de datos de origen y almacenamientos de datos.
Temas
El siguiente diagrama de arquitectura muestra un ejemplo de proyecto de migración de bases de datos que incluye la conversión de scripts de ETL a AWS Glue.
Requisitos previos
Antes de comenzar, haga lo siguiente:
-
Migre las bases de datos de origen que desee migrar a AWS.
-
Migre los almacenamientos de datos de destino a AWS.
-
Recopile una lista de todo el código involucrado en su proceso de ETL.
-
Recopile una lista de toda la información de conexión necesaria para cada base de datos.
Además, AWS Glue necesita permisos para obtener acceso a otros recursos de AWS en su nombre. Estos permisos los concede utilizando AWS Identity and Access Management (IAM). Asegúrese de haber creado una política de IAM para AWS Glue. Para obtener más información, consulte Crear una política de IAM para el servicio de AWS Glue en la Guía para desarrolladores de AWS Glue.
Descripción de AWS Glue Data Catalog
Como parte del proceso de conversión, AWS Glue carga la información sobre las bases de datos de origen y destino. Además, organiza esta información en categorías, en una estructura que se denomina árbol. La estructura incluye lo siguiente:
-
Conexiones: parámetros de conexión
-
Rastreadores: una lista de rastreadores, un rastreador para cada esquema
-
Bases de datos: contenedores que contienen tablas
-
Tablas: definiciones de metadatos que representan los datos de las tablas
-
Trabajos de ETL: lógica empresarial que realiza el trabajo de ETL
-
Activadores: lógica que controla cuándo se ejecuta un trabajo de ETL en AWS Glue (ya sea a petición, según lo programado o activado por eventos del trabajo)
AWS Glue Data Catalog es un índice para las métricas de tiempo de ejecución, esquema y ubicación de sus datos. Al trabajar con AWS Glue y AWS SCT, AWS Glue Data Catalog incluye referencias a datos que se utilizan como orígenes y destinos de sus trabajos de ETL en AWS Glue. Para crear su almacenamiento de datos, catalogue estos datos.
Puede usar la información del Catálogo de datos para crear y monitorizar sus trabajos de ETL. Normalmente, deberá ejecutar un rastreador para realizar un inventario de los datos incluidos en sus almacenes de datos, pero existen otras formas de añadir tablas de metadatos en el Catálogo de datos.
Al definir una tabla en su Data Catalog, puede añadirla a una base de datos. Una base de datos se usa para organizar tablas en AWS Glue.
Limitaciones para la conversión mediante AWS SCT con AWS Glue
Al convertir mediante AWS SCT con AWS Glue se aplican las siguientes limitaciones:
| Recurso | Límite predeterminado |
| Número de bases de datos para cada cuenta | 10 000 |
| Número de tablas para cada base de datos | 100 000 |
| Número de particiones para cada tabla | 1 000 000 |
| Número de versiones de tabla para cada tabla | 100 000 |
| Número de tablas para cada cuenta | 1 000 000 |
| Número de particiones para cada cuenta | 10 000 000 |
| Número de versiones de tabla para cada cuenta | 1 000 000 |
| Número de conexiones para cada cuenta | 1 000 |
| Número de rastreadores para cada cuenta | 25 |
| Número de trabajos para cada cuenta | 25 |
| Número de disparadores para cada cuenta | 25 |
| Número de ejecuciones de trabajo simultáneas para cada cuenta | 30 |
| Número de ejecuciones de trabajo simultáneas para cada trabajo | 3 |
| Número de trabajos para cada disparador | 10 |
| Número de puntos de enlace de desarrollo para cada cuenta | 5 |
| Máximo de unidades de procesamiento de datos (DPU) utilizados por un punto de conexión de desarrollo a la vez | 5 |
| DPU máximos utilizados por un rol a la vez | 100 |
| Longitud del nombre de la base de datos |
Sin límite Para que sea compatible con otros almacenes de metadatos, como Apache Hive, el nombre se incorpora en minúsculas. Si tiene previsto obtener acceso a la base de datos desde Amazon Athena, proporcione un nombre únicamente con caracteres alfanuméricos y guiones bajos. |
| Longitud del nombre de la conexión | Sin límite |
| Longitud del nombre del rastreador | Sin límite |
Paso 1: Creación de un nuevo proyecto
Para crear un proyecto nuevo, siga estos pasos generales:
-
Crear un proyecto nuevo en AWS SCT. Para obtener más información, consulte Inicio y administración de proyectos en AWS SCT.
-
Agregue sus bases de datos de origen y destino al proyecto. Para obtener más información, consulte Agregación de servidores al proyecto en AWS SCT.
Asegúrese de haber elegido Usar AWS Glue en la configuración de conexión a la base de datos de destino. Para ello, seleccione la pestaña AWS Glue. En Copiar desde el perfil de AWS, elija el perfil que desea utilizar. El perfil debe rellenar automáticamente la clave de acceso de AWS, la clave secreta y la carpeta de bucket de Amazon S3. Si no lo hace, indique dicha información. Después de seleccionar Aceptar, AWS Glue analiza los objetos y carga los metadatos en el AWS Glue Data Catalog.
Según la configuración de seguridad, es posible que aparezca un mensaje de advertencia que indique que su cuenta no tiene privilegios suficientes para algunos de los esquemas del servidor. Si tiene acceso a los esquemas que está utilizando, puede ignorar este mensaje.
-
Para finalizar la preparación de la importación de su ETL, establezca conexiones con sus bases de datos de origen y de destino. Para ello, elija la base de datos en el árbol de metadatos de origen o destino y, a continuación, seleccione Conectar al servidor.
AWS Glue crea una base de datos en el servidor de base de datos de origen y otra en el servidor de base de datos de destino para ayudar en la conversión de ETL. La base de datos en el servidor de destino contiene el AWS Glue Data Catalog. Para encontrar objetos específicos, utilice el botón de búsqueda en los paneles de origen o destino.
Para ver cómo se convierte un objeto específico, busque un elemento que desee convertir y seleccione Convertir esquema desde el menú contextual (clic secundario). AWS SCT transforma este objeto seleccionado en un script.
Puede revisar el script convertido desde la carpeta Scripts del panel derecho. Actualmente, el script es un objeto virtual, que solo está disponible como parte de su proyecto de AWS SCT.
Para crear un trabajo de AWS Glue con el script convertido, cárguelo en Amazon S3. Para cargar el script a Amazon S3, selecciónelo y, a continuación, elija Guardar en S3 en el menú contextual (clic secundario).
Paso 2: Crear un trabajo de AWS Glue
Después de guardar el script en Amazon S3, puede seleccionarlo y elegir Configurar trabajo de AWS Glue para abrir el asistente para configurar el trabajo de AWS Glue. El asistente facilita esta configuración:
-
La primera pestaña del asistente, Diseñar flujo de datos, le permite elegir una estrategia de ejecución y la lista de scripts que desea incluir en este trabajo. Puede elegir los parámetros de cada script. También puede reorganizar los scripts de manera que se ejecuten en el orden correcto.
-
En la segunda pestaña, puede asignar un nombre al trabajo y configurar directamente las opciones para AWS Glue. En esta pantalla puede configurar las siguientes opciones:
-
Rol de AWS Identity and Access Management (IAM)
-
Nombres de archivos de script y rutas de archivo
-
Cifre el script usando cifrado del lado del servidor con claves administradas por Amazon S3 (SSE-S3)
-
Directorio temporal
-
Ruta de la biblioteca Python generada
-
Ruta de la biblioteca Python del usuario
-
Ruta de los archivos .jar dependientes
-
Ruta de archivos a la que se hace referencia
-
DPU simultáneas para cada trabajo ejecutado
-
Simultaneidad máxima
-
Tiempo de espera del trabajo (en minutos)
-
Umbral de notificación de retraso (en minutos)
-
Número de reintentos
-
Configuración de seguridad
-
Cifrado en el servidor
-
-
En el tercer paso, o pestaña, elija la conexión configurada con el punto de enlace de destino.
Tras finalizar la configuración del trabajo, este se muestra en los trabajos de ETL en el AWS Glue Data Catalog. Si elige el trabajo, se mostrará la configuración para que pueda revisarla o editarla. Para crear un nuevo trabajo en AWS Glue, elija Crear trabajo de AWS Glue en el menú contextual (clic secundario) del trabajo. Al hacerlo se aplica la definición de esquema. Para actualizar la visualización, elija Actualizar desde la base de datos en el menú contextual (clic secundario).
En este momento, podrá ver su trabajo en la consola de AWS Glue. Para ello, inicie sesión en Consola de administración de AWS y abra la consola de AWS Glue en https://console.aws.amazon.com/glue/.
Puede probar el nuevo trabajo para asegurarse de que funciona correctamente. Compruebe los datos de la tabla de origen y, a continuación, verifique que la tabla de destino esté vacía. Ejecute el trabajo y vuelva a realizar la comprobación. Puede ver los registros de errores desde la consola de AWS Glue.