

# AWS Glue: Cómo funciona
<a name="how-it-works"></a>

AWS Glue utiliza otros servicios de AWS para organizar los trabajos de ETL (extracción, transformación y carga) con el fin de crear almacenamientos de datos y lagos de datos, y generar flujos de salida. AWS Glue invoca operaciones de la API para transformar los datos, crear registros en tiempo de ejecución, almacenar su lógica de trabajo y crear notificaciones para monitorear las ejecuciones de trabajo. La consola de AWS Glue conecta estos servicios en una aplicación administrada, para que pueda concentrarse en la creación y monitorización de los trabajos de ETL. La consola desarrolla operaciones administrativas y de desarrollo de trabajos en su nombre. Puede proporcionar credenciales y otras propiedades a AWS Glue para obtener acceso a los orígenes de datos y escribir en los destinos de datos.

AWS Glue se encarga del aprovisionamiento y la administración de los recursos necesarios para ejecutar la carga de flujo de trabajo. No es necesario crear la infraestructura para una herramienta de ETL porque AWS Glue lo hace de forma automática. Cuando se necesitan recursos para reducir el tiempo de arranque, AWS Glue utiliza una instancia de su grupo de instancias para ejecutar la carga de flujo de trabajo.

Con AWS Glue, los trabajos se crean mediante las definiciones de tabla en el Data Catalog. Los trabajos consisten en scripts que contienen las instrucciones que ejecutan las tareas de transformación de datos deseadas. Puede utilizar disparadores para iniciar trabajos en función de una programación o a través del resultado de un evento especificado. Puede determinar dónde van a residir los datos y qué datos de origen van a rellenar el destino. En función de sus entradas, AWS Glue transforma los datos del formato de origen al formato de destino. Como alternativa, también puede proporcionar scripts personalizados en la API o la consola de AWS Glue para procesar sus datos de acuerdo con sus requisitos específicos.

**Orígenes y destinos de datos**  
AWS Glue permite leer y escribir datos de varios sistemas y bases de datos, entre los que se incluyen:
+ Amazon S3
+ Amazon DynamoDB
+ Amazon Redshift
+ Amazon Relational Database Service (Amazon RDS)
+ Bases de datos accesibles a JDBC de terceros
+ MongoDB y Amazon DocumentDB (compatible con MongoDB)
+ Otros conectores de Marketplace y complementos de Apache Spark

**Flujos de datos**  
AWS Glue para Spark puede transmitir datos desde los siguientes sistemas:
+ Amazon Kinesis Data Streams
+ Apache Kafka

AWS Glue está disponible en distintas regiones de AWS. Para obtener más información, consulte [Regiones y puntos de conexión de AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html) en la Referencia general de Amazon Web Services.

**Topics**
+ [Los trabajos de ETL sin servidor se ejecutan de forma aislada](#how-it-works-isolation)
+ [Conceptos de AWS Glue](components-key-concepts.md)
+ [Componentes de AWS Glue](components-overview.md)
+ [AWS Glue para Spark y AWS Glue para Ray](how-it-works-engines.md)
+ [Conversión de esquemas semiestructurados a esquemas relacionales con AWS Glue](schema-relationalize.md)
+ [Sistemas de tipos de AWS Glue](glue-types.md)

## Los trabajos de ETL sin servidor se ejecutan de forma aislada
<a name="how-it-works-isolation"></a>

AWS Glue ejecuta los trabajos de ETL en un entorno sin servidor, con el motor elegido, Spark o Ray. AWS Glue ejecuta estos trabajos en recursos virtuales que aprovisiona y gestiona en su propia cuenta de servicio. 

AWS Glue se ha diseñado para poder:
+ Segregar datos de clientes.
+ Proteger los datos de clientes en tránsito y en reposo.
+ Obtenga acceso a los datos de clientes únicamente según se necesite para dar respuesta a las solicitudes de los clientes, mediante credenciales provisionales y con permisos reducidos o con el consentimiento del cliente para roles de IAM en su cuenta.

Durante el aprovisionamiento de un flujo de trabajo de ETL, usted proporciona los orígenes de datos de entrada y los destinos de datos de salida en la nube virtual privada (VPC). Además, debe proporcionar el rol de IAM, el ID de la VPC, el ID de la subred y el grupo de seguridad; todos ellos necesarios para obtener acceso a los orígenes y los destinos de datos. Para cada tupla (ID de cuenta de cliente, rol de IAM, ID de subred y grupo de seguridad), AWS Glue crea un nuevo entorno que está aislado, a nivel de red y administración, de todos los demás entornos de su cuenta de servicio de AWS Glue.

 Usted crea y configura recursos de AWS Glue, como catálogos de datos, trabajos y rastreadores, dentro de su cuenta de AWS. A continuación, estos recursos se asocian al rol de IAM y a la configuración de red (subred y grupo de seguridad) que especifique durante el proceso de creación. 

AWS Glue crea interfaces de red elástica en la subred mediante direcciones IP privadas. Los trabajos utilizan estas interfaces de red elástica para obtener acceso a los orígenes de datos y los destinos de datos. El tráfico entrante y saliente del entorno de ejecución del trabajo, así como el interno, está regido por las políticas de VPC y de red, con una única excepción: las llamadas realizadas a las bibliotecas de AWS Glue pueden utilizar un proxy para el tráfico de las operaciones de la API de AWS Glue a través de la VPC de AWS Glue. Se registran todas las llamadas al API de AWS Glue, por tanto, los propietarios de datos pueden auditar el acceso a la API mediante la habilitación de [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/), que entrega registros de auditoría a su cuenta.

Los entornos que administra AWS Glue y que ejecutan los trabajos de ETL están protegidos a través de las mismas prácticas de seguridad que aplican otros servicios de AWS. Para obtener información general de las prácticas y las responsabilidades de seguridad compartidas, consulte el documento técnico de [Introducción a la seguridad de procesos de AWS](https://docs.aws.amazon.com/whitepapers/latest/introduction-aws-security/welcome.html).

# Conceptos de AWS Glue
<a name="components-key-concepts"></a>

 AWS Glue es un servicio de extracción, transformación, carga (ETL) completamente administrado que le permite mover datos con facilidad entre diferentes orígenes y destinos de datos. Los componentes clave son: 
+  **Catálogo de datos**: un almacén de metadatos que contiene definiciones de tablas, definiciones de trabajos y otra información de control para sus flujos de trabajo de ETL. 
+  **Rastreadores**: programas que se conectan a orígenes de datos, deducen esquemas de datos y crean definiciones de tablas de metadatos en el catálogo de datos. 
+  **Trabajos de ETL**: la lógica empresarial para extraer datos de los orígenes, transformarlos mediante scripts de Apache Spark y cargarlos en destinos. 
+  **Desencadenadores**: mecanismos para iniciar la ejecución de tareas en función de cronogramas o eventos. 

 El flujo de trabajo típico incluye: 

1.  Definir los orígenes y los destinos de datos en el catálogo de datos. 

1.  Utilizar los rastreadores para completar el catálogo de datos con metadatos de tablas procedentes de fuentes de datos. 

1.  Definir los trabajos de ETL con scripts de transformación para mover y procesar datos. 

1.  Ejecutar los trabajos a pedido o en función de los activadores. 

1.  Supervisar el desempeño laboral mediante paneles de control. 

 En el siguiente diagrama se muestra la arquitectura de un entorno de AWS Glue. 

![\[Los conceptos básicos que rellenan su Data Catalog y procesan el flujo de datos de ETL en AWS Glue.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/HowItWorks-overview.png)


Los *trabajos* se definen en AWS Glue a fin de realizar el flujo de trabajo necesario para extraer, transformar y cargar datos (ETL) desde un origen de datos hasta un destino de datos. Normalmente, usted llevará a cabo las siguientes acciones:
+ Para los orígenes de almacén de datos, puede definir un *rastreador* para rellenar su AWS Glue Data Catalog con definiciones de tabla de metadatos. Puede dirigir su rastreador a un almacén de datos y el rastreador crea definiciones de tabla en el Data Catalog. Para orígenes de streaming, se definen manualmente tablas del Data Catalog y se especifican las propiedades del flujo de datos.

  Además de las definiciones de tabla, el AWS Glue Data Catalog contiene otros metadatos necesarios para definir los trabajos de ETL. Utilizará estos metadatos al definir un flujo de trabajo para transformar sus datos.
+ AWS Glue puede generar un script para transformar sus datos. O bien, puede proporcionar el script en la consola o API de AWS Glue.
+ Puede ejecutar su flujo de trabajo bajo demanda o configurarlo de modo que se inicie al activarse un *disparador* especificado. El disparador puede corresponder a una programación basada en tiempo o a un evento.

  Al ejecutarse su flujo de trabajo, un script extrae datos de su origen de datos, transforma los datos y los carga en su destino de datos. El script se ejecuta en un entorno Apache Spark en AWS Glue.

**importante**  
Las tablas y las bases de datos de AWS Glue son objetos en el AWS Glue Data Catalog. Contienen metadatos; no datos de un almacén de datos.


|  | 
| --- |
|  **Los datos basados en texto, como los CSV, deben estar codificados en `UTF-8` para que AWS Glue los procese de forma exitosa. Para obtener más información, consulte [UTF-8](https://en.wikipedia.org/wiki/UTF-8) en Wikipedia.**   | 

## Terminología de AWS Glue
<a name="components-major"></a>

AWS Glue se basa en la interacción de varios componentes para crear y gestionar su flujo de trabajo de extracción, transformación y carga (ETL).

### AWS Glue Data Catalog
<a name="components-data-catalog"></a>

El almacén de metadatos persistentes en AWS Glue. Contiene definiciones de tablas, definiciones de trabajos y otra información de control para administrar su entorno de AWS Glue. Cada cuenta de AWS tiene un AWS Glue Data Catalog por región. 

### Clasificador
<a name="components-classifier"></a>

Determina el esquema de sus datos. AWS Glue proporciona clasificadores para tipos de archivos comunes, como CSV, JSON, AVRO, XML y otros. También proporciona clasificadores para sistemas de administración de bases de datos relacionales comunes mediante una conexión de JDBC. Puede escribir su propio clasificador mediante un patrón de grok o especificando una etiqueta de fila en un documento XML.

### Connection
<a name="components-connection"></a>

Un objeto del Data Catalog que contiene las propiedades necesarias para conectarse a un almacén de datos determinado.

### Rastreador
<a name="components-crawler"></a>

Un programa que se conecta a un almacén de datos (origen o destino), avanza por una lista de prioridades de clasificadores para determinar el esquema de sus datos y, a continuación, crea tablas de metadatos en el AWS Glue Data Catalog.

### Base de datos
<a name="components-database"></a>

Un conjunto de definiciones de tabla del Data Catalog asociadas, organizadas en un grupo lógico.

### Almacén de datos, origen de datos, destino de datos
<a name="components-data-store"></a>

Un *almacén de datos* es un repositorio para almacenar los datos de forma persistente. Entre los ejemplos se incluyen buckets de Amazon S3 y bases de datos relacionales. Un *origen de datos* es un almacén de datos que se utiliza como entrada para un proceso o una transformación. Un *destino de datos* es un almacén de datos en el que escribe un proceso o una transformación.

### Punto de enlace de desarrollo
<a name="components-development-endpoint"></a>

Un entorno que puede utilizar para desarrollar y probar los scripts ETL de AWS Glue.

### Marco dinámico
<a name="components-dynamic-frame"></a>

Tabla distribuida que admite datos anidados como estructuras y matrices. Cada registro se autodescribe y está diseñado para flexibilidad de esquemas con datos semiestructurados. Cada registro contiene tanto los datos como el esquema que describe esos datos. Puede usar marcos dinámicos y Apache Spark DataFrames en sus scripts de ETL, y realizar conversiones entre ellos. Las tramas dinámicas proporcionan un conjunto de transformaciones avanzadas para la limpieza de datos y ETL.

### Trabajo
<a name="components-job"></a>

La lógica empresarial que es necesaria para realizar el flujo de trabajo de ETL. Se compone de un script de transformación, orígenes de datos y destinos de datos. Las ejecuciones de trabajos pueden iniciarse a partir de disparadores programados o activados por eventos.

### Panel de rendimiento del trabajo
<a name="features-job-monitoring"></a>

AWS Glue proporciona un panel de ejecución integral para sus trabajos de ETL. El panel muestra información sobre las ejecuciones de trabajos desde un periodo específico. 

### Interfaz de cuaderno
<a name="components-notebook-server"></a>

Una experiencia de cuaderno mejorada con una configuración con un solo clic para facilitar la creación de trabajos y la exploración de datos. El bloc de notas y las conexiones se configuran automáticamente. Puede utilizar la interfaz de cuaderno basada en Jupyter Notebook para desarrollar, depurar e implementar scripts y flujos de trabajo mediante infraestructura de ETL de Apache Spark sin servidor de AWS Glue. También puede realizar consultas ad hoc, análisis de datos y visualización (por ejemplo, tablas y gráficos) en el entorno de cuaderno.

### Script
<a name="components-script"></a>

Código que extrae datos de orígenes, los transforma y los carga en destinos. AWS Glue genera scripts PySpark o Scala.

### Tabla
<a name="components-table"></a>

La definición de metadatos que representa sus datos. Independientemente de si sus datos están en un archivo de Amazon Simple Storage Service (Amazon S3), una tabla de Amazon Relational Database Service (Amazon RDS) u otro conjunto de datos, la tabla define el esquema de sus datos. Una tabla de AWS Glue Data Catalog está formada por los nombres de las columnas, las definiciones de tipos de datos, la información de partición y otros metadatos acerca de un conjunto de datos base. El esquema de sus datos viene representado en su definición de tabla de AWS Glue. Los datos reales permanecen en su almacén de datos original, ya sea en un archivo o en una tabla de base de datos relacional. AWS Glue cataloga sus archivos y tablas de bases de datos relacionales en el AWS Glue Data Catalog. Estos se usan como orígenes y destinos al crear un flujo de trabajo de ETL.

### Transformar
<a name="components-transform"></a>

La lógica de código que se usa para manipular sus datos en un formato diferente.

### Desencadenador
<a name="components-trigger"></a>

Inicia un flujo de trabajo de ETL. Los disparadores se pueden definir según un momento programado o un evento.

### Editor visual de trabajos
<a name="features-visual-editor"></a>

 El editor de trabajos visuales es una interfaz gráfica que facilita la creación, ejecución y supervisión de los trabajos de extracción, transformación y carga (ETL) en AWS Glue. Puede componer visualmente flujos de trabajo de transformación de datos y ejecutarlos sin problemas en el motor de ETL sin servidor basado en Apache Spark de AWS Glue e inspeccionar el esquema y los datos resultantes en cada paso del trabajo. 

### Entorno de trabajo
<a name="components-worker"></a>

Con AWS Glue, solo paga por el tiempo que tarda en ejecutarse su trabajo de ETL. No hay que administrar recursos ni hay costos iniciales. No se le cobra por el tiempo de inicio o cierre. Se le cobra una tarifa por hora basada en el número de **unidades de procesamiento de datos** (o DPU) utilizadas para ejecutar el trabajo de ETL. Una sola unidad de procesamiento de datos (DPU) también se denomina *trabajador*. AWS Glue cuenta con varios tipos de trabajadores para permitirle seleccionar la configuración que cumpla con sus requisitos de latencia y costo del trabajo. Los trabajadores vienen en configuraciones estándar, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, G.025X y en configuraciones optimizadas para la memoria R.1X, R.2X, R.4X, R.8X.

# Componentes de AWS Glue
<a name="components-overview"></a>

AWS Glue proporciona una consola y operaciones de API para configurar y administrar su carga de flujo de trabajo de extracción, transformación y carga (ETL). Puede usar las operaciones de API a través de varios SDK específicos de lenguaje y la AWS Command Line Interface (AWS CLI). Para obtener información sobre el uso de AWS CLI, consulte [Referencias de comandos de AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/).

AWS Glue usa el AWS Glue Data Catalog para almacenar metadatos acerca de orígenes de datos, transformaciones y destinos. El Data Catalog es un reemplazo instantáneo para el Apache Hive Metastore. AWS Glue Jobs system proporciona una infraestructura administrada para definir, programar y ejecutar operaciones de ETL en sus datos. Para obtener más información sobre la API de AWS Glue, consulte [API de AWS Glue](aws-glue-api.md).

## Consola de AWS Glue
<a name="console-intro"></a>

Use la consola de AWS Glue para definir y orquestar su flujo de flujo de trabajo de ETL. La consola llama a varias operaciones API en el AWS Glue Data Catalog y AWS Glue Jobs system para realizar las siguientes tareas:
+ Definir objetos de AWS Glue como trabajos, tablas, rastreadores y conexiones.
+ Programar cuándo se ejecutan los rastreadores.
+ Definir eventos o programaciones para los disparadores de trabajos.
+ Buscar y filtrar listas de objetos de AWS Glue.
+ Editar scripts de transformación.

## AWS Glue Data Catalog
<a name="data-catalog-intro"></a>

 El AWS Glue Data Catalog es su almacén de metadatos técnicos persistente en la nube de AWS. 

Cada cuenta de AWS tiene un AWS Glue Data Catalog por región de AWS. Cada catálogo de datos es una colección de tablas altamente escalable organizadas en bases de datos. Una tabla es la representación de metadatos de una colección de datos estructurados o semiestructurados almacenados en orígenes como Amazon RDS, Apache Hadoop Distributed File System, Amazon OpenSearch Service y otros. AWS Glue Data Catalog proporciona un repositorio uniforme donde sistemas dispares pueden almacenar y encontrar metadatos para hacer un seguimiento de los datos en silos de datos. A continuación, puede utilizar los metadatos para consultar y transformar esos datos de forma coherente en una amplia variedad de aplicaciones. 

 Utilice el catálogo de datos junto con políticas de AWS Identity and Access Management y Lake Formation para controlar el acceso a las tablas y bases de datos. Al hacer esto, permite a los diversos grupos de su empresa publicar datos de forma segura en toda la organización, al mismo tiempo que se protege la información confidencial de forma altamente granular. 

El catálogo de datos, junto con CloudTrail y Lake Formation, también proporciona capacidades de auditoría y gobernanza completas, con seguimiento de cambios de esquema y controles de acceso de datos. Esto ayuda a garantizar que los datos no se modificaron incorrectamente o no se compartieron sin querer. 

 Para obtener información sobre cómo proteger y auditar el AWS Glue Data Catalog, consulte: 
+  **AWS Lake Formation**: para obtener más información, consulte [¿Qué es AWS Lake Formation?](https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.html) en la *Guía para desarrolladores de AWS Lake Formation*. 
+  **CloudTrail**: para obtener más información, consulte [What Is CloudTrail?](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) (¿Qué es CloudTrail?) en la *Guía del usuario de AWS CloudTrail*. 

Los siguientes son otros servicios y proyectos de código abierto de AWS que utilizan el AWS Glue Data Catalog:
+ **Amazon Athena**: para obtener más información, consulte [Descripción de las tablas, bases de datos y el catálogo de datos](https://docs.aws.amazon.com/athena/latest/ug/understanding-tables-databases-and-the-data-catalog.html) en la *Guía del usuario de Amazon Athena*.
+ **Amazon Redshift Spectrum**: para obtener más información, consulte [Using Amazon Redshift Spectrum to Query External Data](https://docs.aws.amazon.com/redshift/latest/dg/c-using-spectrum.html) (Uso de Amazon Redshift Spectrum para consultar datos externos) en la *Guía para desarrolladores de bases de datos Amazon Redshift*.
+ **Amazon EMR**: para obtener más información, consulte [Resource-Based Policies for Amazon EMR Access to AWS Glue Data Catalog](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-glue.html) (Uso de políticas basadas en recursos para acceso de Amazon EMR al ) en la *Guía de administración de Amazon EMR*.
+ **Cliente de AWS Glue Data Catalog para el almacén de metadatos de Apache Hive**: para obtener más información sobre este proyecto de GitHub, consulte [Cliente de AWS Glue Data Catalog para el almacén de metadatos de Apache Hive](https://github.com/awslabs/aws-glue-data-catalog-client-for-apache-hive-metastore).



## Rastreadores y clasificadores de AWS Glue
<a name="crawling-intro"></a>

AWS Glue también le permite configurar rastreadores que pueden analizar datos en toda clase de repositorios, clasificarlos, extraer información de esquema de ellos y almacenar los metadatos de forma automática en el AWS Glue Data Catalog. El AWS Glue Data Catalog se puede usar para guiar las operaciones de ETL.

Para obtener información acerca de cómo configurar rastreadores y clasificadores, consulte [Uso de rastreadores para completar el Catálogo de datos](add-crawler.md). Para obtener información acerca de cómo programar rastreadores y clasificadores mediante la API de AWS Glue, consulte [API de rastreadores y clasificadores](aws-glue-api-crawler.md).

## Operaciones de ETL de AWS Glue
<a name="etl-script-intro"></a>

Al usar los metadatos en el Data Catalog, AWS Glue puede generar automáticamente scripts de Scala o PySpark (la API de Python para Apache Spark) con extensiones de AWS Glue que puede usar y modificar para realizar diversas operaciones de ETL. Por ejemplo, puede extraer, limpiar y transformar datos sin formato y, a continuación, almacenar el resultado en un repositorio distinto, donde se puede consultar y analizar. Dicho script puede convertir un archivo CSV en un formato relacional y guardarlo en Amazon Redshift.

Para obtener más información acerca de cómo usar capacidades de ETL de AWS Glue, consulte [Programación de scripts de Spark](aws-glue-programming.md).

## ETL de streaming en AWS Glue
<a name="streaming-etl-intro"></a>

AWS Glue le permite realizar operaciones de ETL en datos de streaming mediante trabajos en ejecución continua. ETL de streaming de AWS Glue se basa en el motor Apache Spark Structured Streaming, y puede capturar flujos de Amazon Kinesis Data Streams, Apache Kafka y Amazon Managed Streaming for Apache Kafka (Amazon MSK). ETL de streaming puede limpiar y transformar los datos de streaming y cargarlos en almacenes de datos de Amazon S3 o JDBC. Utilice ETL de streaming en AWS Glue para procesar datos de eventos como transmisiones de IoT, transmisiones de clics y registros de red.

Si conoce el esquema del origen de datos de streaming, puede especificarlo en una tabla del Data Catalog. De lo contrario, puede habilitar la detección de esquemas en el trabajo de ETL de streaming. El trabajo determinará en forma automática el esquema a partir de los datos entrantes.

El script de ETL puede usar las transformaciones incorporadas de AWS Glue y las transformaciones nativas de Apache Spark Structured Streaming. Para obtener más información, consulte [Operaciones en DataFrames/conjuntos de datos de streaming](https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#operations-on-streaming-dataframesdatasets) en el sitio web de Apache Spark. 

Para obtener más información, consulte [Trabajos ETL de streaming en AWS Glue](add-job-streaming.md).

## El sistema de trabajos de AWS Glue
<a name="job-orchestration-intro"></a>

AWS Glue Jobs system proporciona infraestructura administrada para orquestar su flujo de flujo de trabajo de ETL. Puede crear trabajos en AWS Glue que automaticen los scripts que usa para extraer, transformar y transferir datos a distintas ubicaciones. Los trabajos se pueden programar y encadenar, o bien eventos como la llegada de nuevos datos pueden activarlos.

Para obtener más información acerca del uso de AWS Glue Jobs system, consulte [Supervisión de AWS Glue](monitor-glue.md). Para obtener información acerca de la programación del uso de la API de AWS Glue Jobs system, consulte [API de trabajos](aws-glue-api-jobs.md).

## Componentes de ETL visuales
<a name="glue-studio-ui-components"></a>

 AWS Glue permite crear trabajos de ETL a través de un lienzo visual que pueda manipular. 

![\[La captura de pantalla muestra que el panel de recursos está cerrado.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/glue-studio-canvas.png)


### Menú de trabajos de ETL
<a name="glue-studio-ui-components-menu"></a>

 Las opciones del menú en la parte superior del lienzo permiten acceder a las distintas vistas y detalles de configuración del trabajo. 
+  **Visual**: el lienzo del editor de trabajos de Visual. Aquí es donde puede agregar nodos para crear un trabajo. 
+  **Script**: la representación en script de su trabajo de ETL. AWS Glue genera el script en función de la representación visual de su trabajo. También puede editar el guion o descargarlo. 
**nota**  
 Si decide editar el guion, la experiencia de creación de trabajos se convierte permanentemente en un modo de solo guion. Después ya no podrá utilizar el editor visual para editar el trabajo. Debe agregar todos los orígenes, transformaciones y destinos del trabajo y realizar todos los cambios que necesite con el editor visual antes de decidir editar el guion. 
+  **Detalles del trabajo**: la pestaña Detalles del trabajo permite configurar el trabajo mediante la configuración de las propiedades del trabajo. Hay propiedades básicas, como el nombre y la descripción del trabajo, el rol de IAM, el tipo de trabajo, la versión de AWS Glue, el idioma, el tipo de trabajador, el número de trabajadores, el marcador del trabajo, la ejecución flexible, el número de retiros y el tiempo de espera del trabajo. También hay propiedades avanzadas, como las conexiones, las bibliotecas, los parámetros del trabajo y las etiquetas. 
+  **Ejecuciones**: después de ejecutar el trabajo, se puede acceder a esta pestaña para ver las ejecuciones anteriores. 
+  **Calidad de datos**: calidad de datos evalúa y supervisa la calidad de sus activos de datos. Puede obtener más información sobre cómo utilizar la calidad de los datos en esta pestaña y agregar una transformación de la calidad de los datos al trabajo. 
+  **Programas**: Los trabajos que ha programado aparecen en esta pestaña. Si no hay ningún programa adjunto a este trabajo, no se puede acceder a esta pestaña. 
+  **Control de versiones**: puede usar Git con el trabajo al configurarlo en un repositorio de Git. 

### Paneles de ETL visuales
<a name="glue-studio-ui-components-panels"></a>

 Cuando trabaja en el lienzo, hay varios paneles disponibles para ayudarle a configurar los nodos o a obtener una vista previa de los datos y ver el esquema de salida. 
+  **Propiedades**: el panel Propiedades aparece al elegir un nodo del lienzo. 
+  **Vista previa de datos**: el panel de vista previa de datos proporciona una vista preliminar de la salida de datos para que pueda tomar decisiones antes de ejecutar el trabajo y examinar la salida. 
+  **Esquema de salida**: la pestaña Esquema de salida permite ver y editar el esquema de los nodos de transformación. 

 **Redimensionar los paneles** 

 Puede cambiar el tamaño del panel de Propiedades situado en el lado derecho de la pantalla y en el panel inferior, que contiene las pestañas de Vista previa de datos y Esquema de salida al hacer clic en el borde del panel y arrastrarlo hacia la izquierda y hacia la derecha o hacia arriba y hacia abajo. 
+  **Panel de propiedades**: cambie el tamaño del panel de propiedades al hacer clic y arrastrar el borde del lienzo situado en el lado derecho de la pantalla y arrastrándolo hacia la izquierda para ampliar el ancho. De forma predeterminada, el panel está contraído y, cuando se selecciona un nodo, el panel de propiedades se abre con un tamaño predeterminado. 
+  **Panel de vista previa de datos y esquema de salida**: cambie el tamaño del panel inferior al hacer clic y arrastrar el borde inferior del lienzo en la parte inferior de la pantalla. Luego arrástrelo hacia arriba para ampliar la altura. De forma predeterminada, el panel está contraído y, cuando se selecciona un nodo, el panel inferior se abre con un tamaño predeterminado. 

### Lienzo de trabajo
<a name="glue-studio-ui-components-canvas"></a>

 Puede agregar, eliminar y mover o reordenar nodos directamente en el lienzo de ETL visuales. Considérelo su espacio de trabajo para crear un trabajo de ETL completamente funcional que comience con un origen de datos y termine con un destino de datos. 

 Cuando trabaja con nodos en el lienzo, cuenta con una barra de herramientas que puede ayudarle a acercar y alejar la imagen, eliminar nodos, establecer o editar conexiones entre nodos, cambiar la orientación del flujo de trabajo y deshacer o rehacer una acción. 

![\[La captura de pantalla muestra que el panel de recursos está cerrado.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/glue-studio-canvas-toolbar.png)


 La barra de herramientas flotante está anclada al tamaño superior derecho del lienzo y contiene varias imágenes que realizan acciones: 
+  **Icono de diseño**: el primer icono de la barra de herramientas es el icono de diseño. La dirección de las tareas visuales es de arriba a abajo de forma predeterminada. Reorganiza la dirección de las tareas visuales al organizar los nodos horizontalmente de izquierda a derecha. Al volver a hacer clic en el icono de diseño, se cambia la dirección de arriba a abajo. 
+  **Icono de recentrar**: el icono de recentrar cambia la vista del lienzo al centrarlo. Puede usarlo con trabajos grandes para volver a la posición central. 
+  **Ícono de zoom**: el icono de zoom amplía el tamaño de los nodos del lienzo. 
+  **Ícono de alejar**: el icono de zoom achica el tamaño de los nodos del lienzo. 
+  **Icono de papelera**: el icono de papelera elimina un nodo del trabajo visual. Primero debe seleccionar un nodo. 
+  **Icono de deshacer**: el icono de deshacer invierte la última acción realizada en el trabajo visual. 
+  **Icono de rehacer**: el icono de rehacer repite la última acción realizada en el trabajo visual. 

 **Uso del minimapa** 

![\[La captura de pantalla muestra un primer plano del minimapa.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/glue-studio-canvas-minimap.png)


### Panel de recursos
<a name="glue-studio-ui-components-canvas-resource-panel"></a>

 El panel de recursos contiene todos los orígenes de datos, las acciones de transformación y las conexiones disponibles. Abre el panel de recursos en el lienzo mediante un clic en el icono “\$1”. Esto abrirá el panel de recursos. 

 Para cerrar el panel de recursos, haz clic en la **X** situada en la esquina superior derecha del panel de recursos. Esto ocultará el panel hasta que estés listo para volver a abrirlo. 

![\[La captura de pantalla muestra cuando el panel del recursos está abierto.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/resource-panel-open.png)


#### Transformaciones populares y datos
<a name="glue-studio-ui-components-popular-transforms"></a>

 En la parte superior del panel hay una colección de **transformaciones populares y datos**. Estos nodos se utilizan habitualmente en AWS Glue. Elija uno para agregarlo al lienzo. También puede ocultar las **Transformaciones populares y datos** al hacer clic en el triángulo situado junto al encabezado **Transformaciones populares y datos**. 

 En la sección **Transformaciones populares y datos**, puede buscar transformaciones y nodos de orígenes de datos. Los resultados aparecen a medida que escribe. Cuantas más letras agregue a la búsqueda, la lista de resultados se reducirá. Los resultados de la búsqueda se llenan a partir del nombre o la descripción del nodo. Elija el nodo para agregarlo al lienzo. 

#### Transformaciones y datos
<a name="glue-studio-ui-components-transforms-and-data"></a>

 Hay dos pestañas que organizan los nodos en **transformaciones** y **datos**. 

 **Transformaciones**: al elegir la pestaña **Transformaciones**, se pueden seleccionar todas las transformaciones disponibles. Elija una transformación para agregarla al lienzo. También puede elegir **Agregar transformación** en la parte inferior de la lista de transformaciones, lo que abrirá una nueva página con la documentación para crear [transformaciones visuales personalizadas](https://docs.aws.amazon.com/glue/latest/ug/custom-visual-transform.html). Si sigue estos pasos, podrá crear sus propias transformaciones. Sus transformaciones aparecerán en la lista de transformaciones disponibles. 

 **Datos**: la pestaña de datos contiene todos los nodos de los **orígenes** y **los destinos**. Puede ocultar los orígenes y los destinos al hacer clic en el triángulo situado junto al encabezado Orígenes o destinos. Puede mostrar los orígenes y los destinos al hacer clic de nuevo en el triángulo. Elija un nodo de origen o de destino para agregarlo al lienzo. También puede elegir **Administrar conexiones** para agregar una nueva conexión. Esto abrirá la página de conectores en la consola. 

# AWS Glue para Spark y AWS Glue para Ray
<a name="how-it-works-engines"></a>

En AWS Glue en Apache Spark (ETL de AWS Glue), puede utilizar PySpark para escribir código Python para gestionar datos a escala. Spark es una solución conocida para este problema, pero a los ingenieros de datos con experiencia en Python puede parecerles poco intuitiva la transición. El modelo de DataFrame de Spark no es perfectamente como el de Python, lo que refleja el lenguaje de Scala y el entorno de ejecución de Java en el que se basa.

En AWS Glue, puede utilizar los trabajos del intérprete de comandos de Python para ejecutar integraciones de datos nativas de Python. Estos trabajos se ejecutan en una única instancia de Amazon EC2 y se ven limitados por la capacidad de esa instancia. Esto restringe el rendimiento de los datos que puede procesar y resulta costoso mantenerlos cuando se trata de macrodatos.

AWS Glue para Ray permite escalar verticalmente las cargas de trabajo de Python sin una inversión sustancial en el aprendizaje de Spark. Puede aprovechar ciertos escenarios en los que Ray tiene un mejor rendimiento. Al ofrecerle una opción, puede utilizar los puntos fuertes de Spark y Ray.

ETL de AWS Glue y AWS Glue para Ray son diferentes en el fondo, por lo que admiten diferentes características. Consulte la documentación para ver las características admitidas.

## ¿Qué es AWS Glue para Ray?
<a name="how-it-works-ray"></a>

Ray es un marco de computación distribuida de código abierto que se puede utilizar para escalar verticalmente las cargas de trabajo, con un enfoque en Python. Para obtener información sobre Ray, consulte el [sitio web de Ray](https://www.ray.io/). AWS Glue Los trabajos y las sesiones interactivas de Ray le permiten utilizar Ray en AWS Glue.

Puede usar AWS Glue para Ray para escribir scripts de Python para cálculos que se ejecutarán en paralelo en varias máquinas. En los trabajos y sesiones interactivas de Ray, puede utilizar bibliotecas de Python conocidas, como pandas, para facilitar la escritura y la ejecución de los flujos de trabajo. Para obtener más información sobre los conjuntos de datos de Ray, consulte [Conjuntos de datos de Ray](https://docs.ray.io/en/latest/data/dataset.html) en la documentación de Ray. Para más información acerca de Pandas, consulte el [sitio web de Pandas](https://pandas.pydata.org/).

Cuando utiliza AWS Glue para Ray, puede ejecutar los flujos de trabajo de pandas con macrodatos a escala empresarial, con solo algunas líneas de código. Puede crear un informe desde la consola de AWS Glue o AWS SDK. También puede abrir una sesión interactiva de AWS Glue para ejecutar el código en un entorno de Ray sin servidor. Aún no se admiten los trabajos visuales en AWS Glue Studio.

Los trabajos de AWS Glue para Ray permiten ejecutar un script según un cronograma o en respuesta a un evento de Amazon EventBridge. Los trabajos almacenan información de registro y estadísticas de supervisión en CloudWatch que permiten comprender el estado y la fiabilidad del script. Para más información sobre el sistema de trabajos de AWS Glue, consulte [Trabajar con tareas de Ray en AWS Glue](ray-jobs-section.md).

Ray automatiza el trabajo de escalar el código de Python mediante la distribución del procesamiento en un clúster de equipos que vuelve a configurar en tiempo real en función de la carga. Esto puede mejorar el rendimiento por dólar de determinadas cargas de trabajo. Con los trabajos de Ray, hemos incorporado el escalado automático de forma nativa en el modelo de trabajo de AWS Glue, para poder aprovechar al máximo esta característica. Los trabajos de Ray se ejecutan en AWS Graviton, lo que lleva a una mayor rentabilidad general de los precios.

Además de ahorrar costos, puede utilizar el escalado automático nativo para ejecutar cargas de trabajo de Ray sin invertir tiempo en el mantenimiento, el ajuste y la administración del clúster. Puede utilizar bibliotecas conocidas de código abierto listas para su uso, como pandas y AWS SDK para Pandas. Estas mejoran la velocidad de iteración mientras desarrolla en AWS Glue para Ray. Cuando utilice AWS Glue para Ray, podrá desarrollar y ejecutar rápidamente cargas de trabajo rentables de integración de datos.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/OJ3ZngYTyNE/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/OJ3ZngYTyNE)


# Conversión de esquemas semiestructurados a esquemas relacionales con AWS Glue
<a name="schema-relationalize"></a>

Es habitual querer convertir los datos semiestructurados en tablas relacionales. Conceptualmente, usted aplana un esquema jerárquico a un esquema relacional. AWS Glue puede realizar esta conversión automáticamente sobre la marcha.

Los datos semiestructurados suelen contar con margen para identificar las entidades dentro de los datos. Puede tener estructuras de datos anidadas sin esquema fijo. Para obtener más información acerca de los datos semiestructurados, consulte [Datos semiestructurados](https://en.wikipedia.org/wiki/Semi-structured_data) en Wikipedia. 

Los datos relacionales vienen representados por tablas que constan de filas y columnas. Las relaciones entre las tablas se pueden representar mediante una relación de clave principal a clave externa. Para obtener más información, consulte [Base de datos relacional](https://en.wikipedia.org/wiki/Relational_database) en Wikipedia. 

AWS Glue usa los rastreadores para inferir esquemas para los datos semiestructurados. A continuación, transforma los datos en un esquema relacional mediante un flujo de trabajo de ETL (extracción, transformación y carga). Por ejemplo, es posible que desee diseccionar datos JSON desde archivos de origen de Amazon Simple Storage Service (Amazon S3) hacia tablas de Amazon Relational Database Service (Amazon RDS). Saber cómo controla AWS Glue las diferencias entre los esquemas puede ayudarle a entender el proceso de transformación. 

En este diagrama se muestra cómo transforma AWS Glue un esquema semiestructurado en un esquema relacional.

![\[Flujo en el que se muestra la conversión del esquema semiestructurado en el esquema relacional.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/HowItWorks-schemaconversion.png)


En el siguiente diagrama se ilustra lo siguiente:
+ El valor único `A` se convierte directamente en una columna relacional.
+ El par de valores `B1` y `B2` se convierten en dos columnas relacionales.
+ La estructura `C`, con los elementos secundarios `X` e `Y`, se convierte en dos columnas relacionales.
+ La matriz `D[]` se convierte en una columna relacional con una clave externa que apunta a otra tabla relacional. Junto con una clave principal, la segunda tabla relacional tiene columnas que contienen el desplazamiento y el valor de los elementos en la matriz.

# Sistemas de tipos de AWS Glue
<a name="glue-types"></a>

 AWS Glue utiliza sistemas de tipos múltiples para proporcionar una interfaz versátil sobre sistemas de datos que almacenan datos de formas muy diferentes. Este documento desambigua los sistemas de tipos de AWS Glue y los estándares de datos.

## Tipos de catálogos de datos de AWS Glue
<a name="glue-types-catalog"></a>

El catálogo de datos es un registro de tablas y campos almacenados en diferentes sistemas de datos, un metaalmacén. Cuando los componentes de AWS Glue, como los rastreadores de AWS Glue y los trabajos de AWS Glue con Spark, escriben en el catálogo de datos, lo hacen con un sistema de tipos interno para rastrear los tipos de campos. Estos valores se muestran en la columna **Tipo de datos** del esquema de tablas de la consola de AWS Glue. Este sistema de tipos se basa en el sistema de tipos de Apache Hive. Para obtener más información sobre el sistema de tipos de Apache Hive, consulte [Tipos](https://cwiki.apache.org/confluence/display/hive/languagemanual+types) en la wiki de Apache Hive. Para obtener más información sobre los tipos específicos y la compatibilidad, se proporcionan ejemplos en la consola de AWS Glue como parte del generador de esquemas.

### Validación, compatibilidad y otros usos
<a name="w2aac11c31b5b5"></a>

El catálogo de datos no valida los tipos escritos en campos de tipos. Cuando los componentes de AWS Glue lean y escriban en el catálogo de datos, serán compatibles entre sí. Los componentes de AWS Glue también tienen como objetivo preservar un alto grado de compatibilidad con los tipos de Hive. Sin embargo, los componentes de AWS Glue no garantizan la compatibilidad con todos los tipos de Hive. Esto permite la interoperabilidad con herramientas como Athena DDL cuando se trabaja con tablas del catálogo de datos.

Dado que el catálogo de datos no valida los tipos, otros servicios pueden usarlo para rastrear los tipos mediante sistemas que se ajusten estrictamente al sistema de tipos de Hive o a cualquier otro sistema. 

## Tipos en los scripts de AWS Glue con Spark
<a name="glue-types-spark"></a>

Cuando un script de AWS Glue con Spark interpreta o transforma un conjunto de datos, proporcionamos `DynamicFrame`, una representación en memoria del conjunto de datos tal como se usa en el script. El objetivo de un `DynamicFrame` es similar al del Spark `DataFrame`: modela tu conjunto de datos para que Spark pueda programar y ejecutar transformaciones en los datos. Garantizamos que la representación de tipos de `DynamicFrame` es intercompatible con `DataFrame` y proporciona los métodos `toDF` y `fromDF`.

Si la información de tipos se puede inferir o proporcionar a un `DataFrame`, se puede inferir o proporcionar a un `DynamicFrame`, a menos que se documente lo contrario. Cuando proporcionamos lectores o escritores optimizados para formatos de datos específicos, si Spark puede leer o escribir sus datos, los lectores y escritores que proporcionemos podrán hacerlo, con sujeción a las limitaciones documentadas. Para obtener más información acerca de los lectores y los escritores, consulte [Opciones de formato de datos para las entradas y las salidas en AWS Glue para Spark](aws-glue-programming-etl-format.md).

### El tipo Choice
<a name="w2aac11c31b7b7"></a>

Los `DynamicFrames` proporcionan un mecanismo para modelar los campos de un conjunto de datos cuyo valor puede tener tipos inconsistentes en el disco en todas las filas. Por ejemplo, un campo puede contener un número almacenado como cadena en determinadas filas y un entero en otras. Este mecanismo es de un tipo en memoria denominado `Choice`. Proporcionamos transformaciones, como el método `ResolveChoice`, para resolver las columnas Choice en un tipo concreto. El proceso de ETL de AWS Glue no escribirá el tipo Choice en el catálogo de datos durante su funcionamiento normal; los tipos Choice solo existen en el contexto de los modelos de memoria de los conjuntos de datos de DynamicFrame. Para ver un ejemplo del uso del tipo Choice, consulte [Ejemplo de código: Preparación de datos con ResolveChoice, Lambda y ApplyMapping](aws-glue-programming-python-samples-medicaid.md).

## Tipos de rastreadores de AWS Glue
<a name="glue-types-crawler"></a>

El objetivo de los rastreadores es crear un esquema coherente y utilizable para el conjunto de datos y, a continuación, almacenarlo en el catálogo de datos para usarlo en otros componentes de AWS Glue y Athena. Los rastreadores se encargan de los tipos, como se describe en la sección anterior sobre el catálogo de datos, [Tipos de catálogos de datos de AWS Glue](#glue-types-catalog). Para generar un tipo utilizable en los escenarios de tipo “Choice”, en los que una columna contiene valores de dos o más tipos, los rastreadores crearán un tipo `struct` que modele los tipos potenciales.