Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 1, 2022 09:56 pm GMT

Qu es y como crear ETL en AWS Glue Parte 2

Continuando con la segunda parte del tutorial, explicare los pasos para crear un rastreador un job.

Legacy bar

Dentro del panel de AWS Glue observaremos diferentes opciones, para comenzar con nuestro ETL, debemos hacer uso de los rastreadores (crawler) para crear nuestra base de datos, el rastreador har un map del esquema de datos de una forma inteligente y crear replicas de estos esquemas a modo de tablas.

Crawler o Rastreador

Seleccionaremos la opcin de Aadir Rastreador (crawler), y observaremos la primera pantalla de configuracin.

Create crawler

En esta pantalla podemos ingresar el nombre de nuestro crawler, asignar algunos tags para agrupar u obtener algn detalle, y agregar una descripcin y configuracin de seguridad, esta ltima nos permitir cifrar datos on rest, a los registros que se enven a travs de cloudwatch. Para ser este ejemplo simple solo ingresaremos un nombre.

Crawler specification

A continuacin configuraremos nuestras fuentes de informacin, podemos elegir entre dos tipos de fuentes, catlogos de datos ya existentes o Data stores, tambin tenemos una configuracin adicional para que nuestro crawler solo mapee datos nuevos desde su ltima ejecucin.

S3 datastore

Nuestra primera fuente a configurar ser nuestro bucket de S3 donde existe la opcin de utilizar un bucket alojado en nuestra cuenta u otra, tambin tenemos la posibilidad de ignorar archivos que no deseamos dentro de una carpeta en nuestro bucket, o de seleccionar archivos solo con cierta extensin.
Selecting s3 folder

En nuestro ejemplo seleccionaremos la carpeta donde se ubica nuestro archivo, dependiendo de la lgica de negocio, podramos mapear solo un archivo o de ser necesario podemos mapear varios archivos dentro de una carpeta.

Selecting other data store

Selecting DynamoDB as data store

En este ejemplo tambin haremos uso de una tabla de DynamoDB para lo cual tambin vamos a realizar su respectivo mapping.

Podemos utilizar otros tipos de bases de datos u otras fuentes de informacin cada una con su respectiva configuracin.

Iam role

Es necesario configurar un rol de IAM para que este pueda acceder a nuestro bucket y a nuestra tabla de Dynamo adems de ejecutar el ETL job que ser explicado oportunamente.

Role policies

Dicho rol contendr 3 policies, la primera un rol administrado por AWS, el cual contendr varios permisos ya definidos

Role specification

Los otros dos sern de nuestra tabla de dynamo con las acciones de DescribeTable y Scan

Other policies

Cmo tambin tendr las acciones de GetObject y PutObject en nuestro bucket

Si deseamos re-utilizar el mismo role para otros jobs, solo aadiriamos nuestras tablas o buckets en la seccin de Resource.

Crawler cron

Nuestro crawler tambin permite la opcin de poder programarlo a modo calendarizado para que se ejecute en un tiempo especfico, el rango varia entre horas, das, semanas, meses o expresiones cron.

Final crawler steps

Creating database at datacatalog

Nuestro ltimo paso ser el de crear nuestra base de datos en el catlogo, donde se ubicarn nuestras tablas convertidas con el esquema obtenido del archivo csv y de la tabla de DynamoDB, es posible utilizar una base de datos en un catlogo perteneciente a otra cuenta de AWS.

Job Example

Al verificar que todos los pasos anteriores estn correctos procederemos a ejecutar nuestro crawler, para ello identificaremos la ejecucin actual de nuestro crawler en la columna estado la cual detala tres tipos (Running, Stopping, Ready). La ejecucin del crawler puede variar en un rango de tiempo de 1 a 5 minutos dependiendo de la cantidad de informacin y el grado de complejidad del esquema de nuestras fuentes.

Finalizado la ejecucin del crawler con el estado Ready, podemos acceder a nuestras tablas recientemente creadas en nuestra base de datos.

Con nuestras tablas listas para ser utilizadas procederemos a crear nuestro job ETL

Jobs o Trabajos

Jobs Dashboard

Creating a job

Dentro de nuestro job ETL, contamos con una gran cantidad de configuraciones, los dos primeros campos corresponden al nombre que tendr nuestro job y el segundo el IAM role que hemos creado anteriormente.

Tipos de jobs
Hay tres tipos de jobs:

  • Spark: Un job de Spark se ejecuta en un entorno Apache Spark administrado por AWS Glue. Procesa los datos en lotes.
  • Spark Streaming: Un job ETL de streaming es similar a un trabajo de Spark, excepto que realiza ETL en las transmisiones de datos. Utiliza el marco Apache Spark Structured Streaming.

Algunas caractersticas de trabajo de Spark no estn disponibles para los trabajos ETL de streaming.

Python Shell: Un job de shell de Python ejecuta scripts de Python como shell y admite una versin de Python que depende de la versin de AWS Glue que est utilizando. Estos trabajos pueden utilizarse para programar y ejecutar tareas que no requieren un entorno de Apache Spark.

Choosing spark as an option

Para nuestro ejemplo utilizaremos un job de tipo Spark.

Es importante seleccionar con cuidado nuestra versin de Glue deseada, debido a que cada versin de Glue presenta un esquema de precio diferente, como tambin difiere en velocidad y la versin del lenguaje de programacin que utilicemos.

Versiones de AWS Glue

CaracteristicasGlue 0.9Glue 1.0Glue 2.0
Versiones de Spark y Python admitidasSpark 2.2.1, Python 2.7Spark 2.4.3, Python 2.7, Python 3.6Spark 2.4.3, Python 3.7
Precio por ejecucin$0.44 per DPU-Hour,10-minute minimum (Glue version 0.9/1.0) for each ETL job of type Apache Spark, $0.44 per DPU-Hour, billed per second, with a 1-minute minimum for each ETL job of type Python shell, $0.44 per DPU-Hour, billed per second, with a 10-minute minimum for each provisioned development endpoint$0.44 per DPU-Hou,10-minute minimum (Glue version 0.9/1.0) for each ETL job of type Apache Spark, $0.44 per DPU-Hour, billed per second, with a 1-minute minimum for each ETL job of type Python shell, $0.44 per DPU-Hour, billed per second, with a 10-minute minimum for each provisioned development endpoint$0.44 per DPU-Hour, billed per second, with a 1-minute minimum, $0.44 per DPU-Hour, billed per second, with a 1-minute minimum for each ETL job of type Python shell, $0.44 per DPU-Hour, billed per second, with a 10-minute minimum for each provisioned development endpoint
Velocidad de ejecucinEjecucin entre 5-20 minutosEjecucin entre 5-20 minutosWarm up x 10 (Ejecucin entre 1-10 minutos)

Types of GlueJobs

AWS Glue realiza el seguimiento de los datos que han sido procesados durante la ejecucin anterior de un trabajo de ETL, y almacena la informacin de estado a partir de la ejecucin del trabajo. Esta informacin de estado persistente se denomina marcador de trabajo. Los marcadores de trabajo ayudan a AWS Glue a mantener la informacin de estado y evitar la re-procesamiento de datos antiguos.

Job Marker
Existen tres tipos de estados para el marcador de trabajo

  • Enable: Realiza un seguimiento de los datos procesados anteriormente. Cuando se ejecuta un flujo de trabajo, procesar los datos nuevos desde el ltimo punto de comprobacin.
  • Pause: Procesar los datos incrementales desde la ltima ejecucin correcta o los datos en el rango identificado por las siguientes sub-opciones, sin actualizar el estado del ltimo marcador.
  • Disable: Procesar siempre todo el conjunto de datos.

Job Marker options

En nuestro ejemplo utilizaremos la opcin deshabilitar.

Configuraciones

column 1column 2
Configuracin de seguridadOpcin para especificar la credencial de encriptacin KMS para los datos en trnsito.
Ruta de la biblioteca PythonEn el caso de utilizar python como lenguaje y se desea aadir una libreria externa
Ruta de archivos JAR dependientesEn el caso de utilizar scala como lenguaje y se desea aadir una libreria externa
Ruta de archivos a la que se hace referenciaEn el caso de querer importar un script personalizado
Worker typeEl tipo de proceso de trabajo predefinido que se asigna cuando se ejecuta un job. Admite un valor de Standard, G.1X o G.2X. Para el tipo de proceso de trabajo Standard, cada proceso de trabajo proporciona 4 vCPU, 16 GB de memoria y un disco de 50 GB y 2 ejecutores por proceso de trabajo. Para el tipo de proceso de trabajo G.1X, cada proceso de trabajo se asocia a 1 DPU (4 vCPU, 16 GB de memoria, disco de 64 GB) y proporciona 1 ejecutor por proceso de trabajo. Le recomendamos este tipo de proceso de trabajo para trabajos con un uso intensivo de la memoria. Para el tipo de proceso de trabajo G.2X, cada proceso de trabajo se asocia a 2 DPU (8 vCPU, 32 GB de memoria, disco de 128 GB) y proporciona 1 ejecutor por proceso de trabajo. Le recomendamos este tipo de proceso de trabajo para trabajos con un uso intensivo de la memoria.
Number of workersEl nmero de procesos de trabajo de workerType definido que se asignan cuando se ejecuta un trabajo. El nmero mximo de procesos de trabajo que puede definir son 299 para G.1X y 149 para G.2X.
Simultaneidad mximaEl nmero mximo de ejecuciones simultneas que estn permitidas para el flujo de trabajo. El valor predeterminado es 1. Se produce un error cuando se llega a este umbral. El valor mximo que puede especificar se controla mediante un lmite de servicio.
Tiempo de espera del trabajo en minutos (Timeout)El tiempo de espera del flujo de trabajo en minutos. Es el tiempo mximo que una ejecucin de trabajo puede consumir recursos antes de que se termine y cambie al estado TIMEOUT. El valor predeterminado es 2880 minutos (48 horas).
Umbral de notificacin de retraso en minutosDespus de que comience una ejecucin de flujo de trabajo, el nmero de minutos que se debe esperar antes de enviar una notificacin de retraso de ejecucin de un flujo de trabajo.
Nmero de re-intentosNmero mximo de re-intentos permitidos para esta tarea s se genera un error.
Prametros de trabajoPrametros que se pueden mandar al ejecutar un job son ledos a travs de sysArgs se los debe especificar como --llave valor.
Non-overrideable Job parametersPrametros que se pueden mandar al ejecutar un job pero que no pueden ser sobre-escribidos, son ledos a travs de sysArgs se los debe especificar como --llave valor.

Job Configuration options

New script

En esta seccin podemos seleccionar un script creado anteriormente o un script auto-generado por glue en el que tendremos que configurar el tipo de transformacin, el target al que deseamos agregar y el esquema final de los datos al finalizar AWS Glue nos generar un script en el lenguaje y versin que hayamos especificado listo para correr, para nuestro ejemplo seleccionaremos la opcin Un nuevo script.

Data connections

En la pantalla conexiones podremos configurar conectores JDBC en el caso de que estemos utilizando una base de datos externa, en el caso de este ejemplo no es necesario.

Code Canvas

Finalmente, visualizaremos el lienzo donde podemos empezar a escribir nuestro cdigo en la Parte 3 de este tutorial.


Original Link: https://dev.to/davidshaek/que-es-y-como-crear-etl-en-aws-glue-parte-2-59d3

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To