AWS Glue - Guía del desarrollador · AWS Glue Guía del desarrollador

690
AWS Glue Guía del desarrollador

Transcript of AWS Glue - Guía del desarrollador · AWS Glue Guía del desarrollador

  • AWS GlueGuía del desarrollador

  • AWS Glue Guía del desarrollador

    AWS Glue: Guía del desarrolladorCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

    Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

  • AWS Glue Guía del desarrollador

    Table of Contents¿Qué es AWS Glue? .......................................................................................................................... 1

    ¿Cuándo debo usar AWS Glue? ................................................................................................... 1Cómo funciona ................................................................................................................................... 3

    Los trabajos de ETL sin servidor se ejecutan de forma aislada .......................................................... 3Conceptos ................................................................................................................................. 4

    Terminología de AWS Glue .................................................................................................. 5Componentes ............................................................................................................................. 7

    Consola de AWS Glue ........................................................................................................ 7AWS Glue Data Catalog ...................................................................................................... 7Rastreadores y clasificadores de AWS Glue ........................................................................... 8AWS GlueOperaciones de ETL ............................................................................................ 8El sistema de trabajos de AWS Glue ..................................................................................... 8

    Conversión de esquemas semiestructurados a esquemas relacionales ................................................ 8Introducción ..................................................................................................................................... 10

    Configuración de permisos de IAM para AWS Glue ....................................................................... 10Paso 1: Crear una política de IAM para el servicio de AWS Glue ............................................. 10Paso 2: Crear un rol de IAM para AWS Glue ........................................................................ 14Paso 3: Adjuntar una política a usuarios de IAM que obtienen acceso a AWS Glue ...................... 15Paso 4: crear una política de IAM para servidores de blocs de notas ........................................ 23Paso 5: crear un rol de IAM para servidores de blocs de notas ................................................ 26Paso 6: crear una política de IAM para blocs de notas de Amazon SageMaker ........................... 28Paso 7: crear un rol de IAM para blocs de notas de Amazon SageMaker ................................... 30

    Configuración de DNS en la VPC ............................................................................................... 31Configuración del entorno para obtener acceso a almacenes de datos .............................................. 31

    Puntos de enlace de Amazon VPC paraAmazon S3 ............................................................... 32Configuración de una VPC para conectarse a almacenes de datos JDBC .................................. 33

    Configuración del entorno para puntos de enlace de desarrollo ........................................................ 36Configuración de su red para un punto de enlace de desarrollo ................................................ 36Configuración de Amazon EC2 para un servidor de blocs de notas ........................................... 38

    Configuración del cifrado ............................................................................................................ 38Información general sobre el flujo de trabajo de la consola .............................................................. 41

    Seguridad ........................................................................................................................................ 43Protección de los datos ............................................................................................................. 43

    Cifrado en reposo ............................................................................................................. 44Cifrado en tránsito ............................................................................................................ 50Administración de claves .................................................................................................... 50Privacidad del tráfico entre redes ........................................................................................ 50Dependencia de AWS Glue en otros servicios de AWS .......................................................... 52Puntos de enlace de desarrollo ........................................................................................... 53

    Administración de identidad y acceso .......................................................................................... 53Autenticación .................................................................................................................... 54Descripción general de control de acceso ............................................................................. 55Acceso entre cuentas ........................................................................................................ 65Los ARN del recurso ......................................................................................................... 69Ejemplos de política .......................................................................................................... 73Referencia de permisos de la API ....................................................................................... 89

    Registro y monitorización ......................................................................................................... 106Validación de la conformidad .................................................................................................... 107Resiliencia .............................................................................................................................. 107Seguridad de la infraestructura .................................................................................................. 107

    Uso de AWS Glue con puntos de enlace de VPC ................................................................ 108VPC de Amazon compartidas ........................................................................................... 108

    Rellenar AWS Glue Data Catalog ...................................................................................................... 109Definición de una base de datos en su catálogo de datos ............................................................. 110

    iii

  • AWS Glue Guía del desarrollador

    Trabajo con bases de datos en la consola .......................................................................... 110Definición de tablas en AWS Glue Data Catalog .......................................................................... 111

    Particiones de la tabla ..................................................................................................... 111Actualización de tablas creadas de forma manual con rastreadores ......................................... 112Trabajo con tablas en la consola ....................................................................................... 112

    Adición de una conexión a su almacén de datos .......................................................................... 115¿Cuándo se usa una conexión? ........................................................................................ 115Definición de una conexión en el AWS Glue Data Catalog ..................................................... 116Conexión a un almacén de datos de JDBC en una VPC ....................................................... 116Trabajo con conexiones en la consola ................................................................................ 118

    Definición de rastreadores ........................................................................................................ 122¿Qué almacenes de datos puedo rastrear? ......................................................................... 122¿Qué ocurre cuando se ejecuta un rastreador? ................................................................... 123Propiedades del rastreador ............................................................................................... 125Configuración de un rastreador ......................................................................................... 130Programación de un rastreador ......................................................................................... 134Trabajo con rastreadores en la consola .............................................................................. 134

    Adición de clasificadores a un rastreador .................................................................................... 137¿Cuándo uso un clasificador? ........................................................................................... 137Clasificadores personalizados ........................................................................................... 137Clasificadores integrados en AWS Glue .............................................................................. 138Escritura de clasificadores personalizados .......................................................................... 140Trabajo con clasificadores en la consola ............................................................................. 151

    Trabajo con la configuración del catálogo de datos en la consola de AWS Glue ................................ 152Actualización de Data Catalog con nuevas particiones .................................................................. 153Relleno del catálogo de datos mediante plantillas de AWS CloudFormation ...................................... 154

    Base de datos de muestra ............................................................................................... 156Base de datos, tabla y particiones de muestra ..................................................................... 157Clasificador de grok de muestra ........................................................................................ 160Clasificador de JSON de muestra ...................................................................................... 160Clasificador de XML de muestra ........................................................................................ 161Rastreador de Amazon S3 de muestra ............................................................................... 162Conexión de muestra ....................................................................................................... 163Rastreador de JDBC de muestra ....................................................................................... 164Flujo de trabajo de muestra de Amazon S3 para Amazon S3 ................................................. 166Flujo de trabajo de muestra de JDBC para Amazon S3 ......................................................... 167Disparador bajo demanda de muestra ................................................................................ 168Disparador programado de muestra ................................................................................... 169Disparador condicional de muestra .................................................................................... 170Punto de enlace de desarrollo de muestra .......................................................................... 171

    Creación de trabajos ....................................................................................................................... 172Información general sobre el flujo de flujo de trabajo .................................................................... 173Adición de trabajos .................................................................................................................. 173

    Definición de las propiedades de trabajo ............................................................................ 174Adición de trabajos de shell de Python ............................................................................... 178Built-In Transforms (Transformaciones integradas) ............................................................... 182Trabajos en la consola ..................................................................................................... 184

    Edición de scripts .................................................................................................................... 189Definición de scripts ........................................................................................................ 189Scripts en la consola ....................................................................................................... 191Proporcionar sus propios scripts personalizados .................................................................. 192

    Activación de trabajos .............................................................................................................. 193Activación de trabajos según programaciones o eventos ....................................................... 194Definición de tipos de disparador ....................................................................................... 194Trabajo con disparadores en la consola ............................................................................. 194

    Desarrollo de scripts usando puntos de enlace de desarrollo ......................................................... 196Flujo de trabajo de punto de enlace de desarrollo ................................................................ 197

    iv

  • AWS Glue Guía del desarrollador

    Añadir un punto de enlace de desarrollo. ............................................................................ 197Visualización de las propiedades del punto de enlace de desarrollo ........................................ 199Acceso al punto de enlace de desarrollo ............................................................................ 201Creación de un servidor de blocs de notas alojado en Amazon EC2 ........................................ 202Requisitos previos del tutorial ........................................................................................... 204Tutorial: Local Zeppelin Notebook (Bloc de notas Zeppelin local) ............................................ 208Tutorial: Servidor de bloc de notas Zeppelin en Amazon EC2 ................................................. 211Tutorial: Uso de un bloc de notas de SageMaker ................................................................. 214Tutorial: Utilice un REPL Shell .......................................................................................... 216Tutorial: Uso de PyCharm Professional .............................................................................. 217

    Administración de blocs de notas .............................................................................................. 223Consideraciones sobre los servidores de blocs de notas ....................................................... 225Uso de blocs de notas en la consola ................................................................................. 231

    Ejecución y monitorización ............................................................................................................... 235Herramientas automatizadas ..................................................................................................... 236Programaciones basadas en tiempo para trabajos y rastreadores ................................................... 237

    Expresiones Cron ............................................................................................................ 237Seguimiento de los datos procesados mediante marcadores de trabajo ........................................... 239

    Uso de marcadores de trabajo .......................................................................................... 240Uso de un script de AWS Glue ......................................................................................... 241Uso de marca temporal de modificación ............................................................................. 244

    Etiquetas de AWS ................................................................................................................... 245Ejemplos ........................................................................................................................ 246

    Automatización con Eventos de CloudWatch ............................................................................... 247Monitorización con la interfaz de usuario de Spark ....................................................................... 249

    Habilitación de la interfaz de usuario de Spark para trabajos .................................................. 253Habilitación de la interfaz de usuario de Spark para puntos de enlace de desarrollo ................... 254Lanzamiento del servidor de historial de Spark .................................................................... 255

    Monitorización con CloudWatch ................................................................................................. 258Uso de las métricas de CloudWatch .................................................................................. 259Configuración de alarmas de Amazon CloudWatch en perfiles de trabajo de AWS Glue .............. 272Registro continuo para trabajos de AWS Glue ..................................................................... 272

    Monitoreo y depuración de trabajo ............................................................................................. 276Depuración de excepciones de memoria insuficiente e irregularidades relativas al trabajo ............ 277Depuración de etapas exigentes y tareas rezagadas ............................................................ 284Monitoreo del progreso de varios trabajos ........................................................................... 288Monitorización de la planificación de la capacidad de DPU .................................................... 293

    Registro mediante CloudTrail .................................................................................................... 298Información de AWS Glue en CloudTrail ............................................................................. 298Descripción de las entradas de los archivos de registro de AWS Glue ..................................... 299

    Realización de actividades de ETL complejas mediante flujos de trabajo ................................................. 301Descripción general de flujos de trabajo ..................................................................................... 301

    Vistas de flujo de trabajo estáticas y dinámicas ................................................................... 302Restricciones del flujo de datos ......................................................................................... 302

    Creación y ejecución de flujos de trabajo .................................................................................... 302Creación y desarrollo de un flujo de trabajo mediante la consola ............................................ 303Ejecución de un flujo de trabajo ........................................................................................ 306

    Obtención y configuración de propiedades de ejecución de flujo de trabajo ....................................... 306Consulta de flujos de trabajo mediante la AWS Glue API .............................................................. 307

    Consulta de vistas estáticas ............................................................................................. 307Consulta de vistas dinámicas ............................................................................................ 307

    Programación de ETL ...................................................................................................................... 311Información general ................................................................................................................. 311

    Parámetros especiales ..................................................................................................... 311Parámetros de conexión ................................................................................................... 313Opciones de formato ....................................................................................................... 318Administración de particiones ............................................................................................ 321

    v

  • AWS Glue Guía del desarrollador

    Agrupación de archivos de entrada .................................................................................... 322Lectura desde JDBC en paralelo ....................................................................................... 324Movimiento de datos a y desde Amazon Redshift ................................................................ 325Compatibilidad de Data Catalog con trabajos de Spark SQL .................................................. 326Exclusión de clases de almacenamiento de Amazon S3 ........................................................ 328Desarrollo y prueba de scripts de ETL localmente ................................................................ 330

    Programación de ETL en Python ............................................................................................... 334Uso de Python ................................................................................................................ 334Lista de extensiones ........................................................................................................ 334Lista de transformaciones ................................................................................................. 334Configuración de Python .................................................................................................. 335Llamada a las API .......................................................................................................... 335Bibliotecas Python ........................................................................................................... 337Muestras de Python ........................................................................................................ 339Extensiones PySpark ....................................................................................................... 353Transformaciones PySpark ............................................................................................... 383

    Programación de ETL en Scala ................................................................................................. 411Uso de Scala ................................................................................................................. 416Lista de API de Scala ...................................................................................................... 417

    Coincidencia de registros con FindMatches ......................................................................................... 462Tipos de transformaciones de aprendizaje automático .................................................................. 462

    Transformación de búsqueda de coincidencias .................................................................... 463Ajuste de transformaciones de aprendizaje automático ................................................................. 466

    Mediciones de aprendizaje automático ............................................................................... 467Decidir entre precisión y exhaustividad ............................................................................... 467Decisión entre exactitud y costo ........................................................................................ 468Enseñanza de la transformación de búsqueda de coincidencias ............................................. 469

    Transformaciones de aprendizaje automático en la consola ........................................................... 470Propiedades de transformación ......................................................................................... 470Adición y edición de transformaciones de aprendizaje automático ........................................... 471Visualización de los detalles de la transformación ................................................................ 472

    Tutorial: Creación de una transformación de aprendizaje automático ............................................... 474Paso 1: Rastrear los datos de origen ................................................................................. 474Paso 2: Añadir una transformación de aprendizaje automático ............................................... 475Paso 3: Añadir una transformación de aprendizaje automático ............................................... 475Paso 4: Calcular la calidad de su transformación de aprendizaje automático ............................. 476Paso 5: Añadir y ejecutar un trabajo con su transformación de aprendizaje automático. ............... 476Paso 6: Verificar los datos de salida desde Amazon S3 ........................................................ 478

    API de AWS Glue ........................................................................................................................... 480Seguridad .............................................................................................................................. 487

     —  tipos de datos   — ...................................................................................................... 487DataCatalogEncryptionSettings .......................................................................................... 487EncryptionAtRest ............................................................................................................. 488ConnectionPasswordEncryption ......................................................................................... 488EncryptionConfiguration .................................................................................................... 489S3Encryption .................................................................................................................. 489CloudWatchEncryption ..................................................................................................... 489JobBookmarksEncryption .................................................................................................. 489SecurityConfiguration ....................................................................................................... 490 —Operaciones de      — .................................................................................................... 490GetDataCatalogEncryptionSettings (get_data_catalog_encryption_settings) ............................... 490PutDataCatalogEncryptionSettings (put_data_catalog_encryption_settings) ............................... 491PutResourcePolicy (put_resource_policy) ............................................................................ 491GetResourcePolicy (get_resource_policy) ............................................................................ 492DeleteResourcePolicy (delete_resource_policy) .................................................................... 493CreateSecurityConfiguration (create_security_configuration) ................................................... 493DeleteSecurityConfiguration (delete_security_configuration) .................................................... 494

    vi

  • AWS Glue Guía del desarrollador

    GetSecurityConfiguration (get_security_configuration) ............................................................ 494GetSecurityConfigurations (get_security_configurations) ......................................................... 495

    Catálogo ................................................................................................................................ 495Bases de datos ............................................................................................................... 496Tablas ........................................................................................................................... 501Particiones ..................................................................................................................... 516Conexiones .................................................................................................................... 528Funciones definidas por el usuario ..................................................................................... 535Importación de un catálogo Athena .................................................................................... 540

    Rastreadores y clasificadores .................................................................................................... 541Clasificadores ................................................................................................................. 541Rastreadores .................................................................................................................. 551Programador .................................................................................................................. 562

    Generación automática de scripts de ETL ................................................................................... 564 —  tipos de datos   — ...................................................................................................... 564CodeGenNode ................................................................................................................ 564CodeGenNodeArg ........................................................................................................... 565CodeGenEdge ................................................................................................................ 565Ubicación ....................................................................................................................... 565CatalogEntry ................................................................................................................... 566MappingEntry ................................................................................................................. 566 —Operaciones de      — .................................................................................................... 567CreateScript (create_script) ............................................................................................... 567GetDataflowGraph (get_dataflow_graph) ............................................................................. 567GetMapping (get_mapping) ............................................................................................... 568GetPlan (get_plan) .......................................................................................................... 568

    Trabajos ................................................................................................................................ 569Trabajos ........................................................................................................................ 569Ejecuciones de trabajo ..................................................................................................... 581Disparadores .................................................................................................................. 591

    Flujos de trabajo ..................................................................................................................... 600 —  tipos de datos   — ...................................................................................................... 600JobNodeDetails ............................................................................................................... 600CrawlerNodeDetails ......................................................................................................... 600TriggerNodeDetails .......................................................................................................... 601Rastreo .......................................................................................................................... 601Nodo ............................................................................................................................. 601Ubicaciones .................................................................................................................... 602WorkflowGraph ............................................................................................................... 602WorkflowRun .................................................................................................................. 602WorkflowRunStatistics ...................................................................................................... 603Flujo de trabajo ............................................................................................................... 604 —Operaciones de      — .................................................................................................... 604CreateWorkflow (create_workflow) ..................................................................................... 605UpdateWorkflow (update_workflow) .................................................................................... 605DeleteWorkflow (delete_workflow) ...................................................................................... 606ListWorkflows (list_workflows) ............................................................................................ 607BatchGetWorkflows (batch_get_workflows) .......................................................................... 607GetWorkflowRun (get_workflow_run) .................................................................................. 608GetWorkflowRuns (get_workflow_runs) ............................................................................... 608GetWorkflowRunProperties (get_workflow_run_properties) ..................................................... 609PutWorkflowRunProperties (put_workflow_run_properties) ...................................................... 610

    DevEndpoints ......................................................................................................................... 611 —  tipos de datos   — ...................................................................................................... 611DevEndpoint ................................................................................................................... 611DevEndpointCustomLibraries ............................................................................................. 614 —Operaciones de      — .................................................................................................... 614

    vii

  • AWS Glue Guía del desarrollador

    CreateDevEndpoint (create_dev_endpoint) .......................................................................... 614UpdateDevEndpoint (update_dev_endpoint) ......................................................................... 618DeleteDevEndpoint (delete_dev_endpoint) ........................................................................... 619GetDevEndpoint (get_dev_endpoint) ................................................................................... 619GetDevEndpoints (get_dev_endpoints) ................................................................................ 620BatchGetDevEndpoints (batch_get_dev_endpoints) ............................................................... 621ListDevEndpoints (list_dev_endpoints) ................................................................................ 621

    Aprendizaje automático ............................................................................................................ 622 —  tipos de datos   — ...................................................................................................... 622TransformParameters ....................................................................................................... 623EvaluationMetrics ............................................................................................................ 623MLTransform .................................................................................................................. 623FindMatchesParameters ................................................................................................... 625FindMatchesMetrics ......................................................................................................... 626ConfusionMatrix .............................................................................................................. 627GlueTable ...................................................................................................................... 628TaskRun ........................................................................................................................ 628TransformFilterCriteria ...................................................................................................... 629TransformSortCriteria ....................................................................................................... 630TaskRunFilterCriteria ....................................................................................................... 630TaskRunSortCriteria ......................................................................................................... 630TaskRunProperties .......................................................................................................... 631FindMatchesTaskRunProperties ......................................................................................... 631ImportLabelsTaskRunProperties ........................................................................................ 631ExportLabelsTaskRunProperties ........................................................................................ 632LabelingSetGenerationTaskRunProperties ........................................................................... 632SchemaColumn ............................................................................................................... 632 —Operaciones de      — .................................................................................................... 632CreateMLTransform (create_ml_transform) .......................................................................... 633UpdateMLTransform (update_ml_transform) ......................................................................... 635DeleteMLTransform (delete_ml_transform) ........................................................................... 637GetMLTransform (get_ml_transform) ................................................................................... 637GetMLTransforms (get_ml_transforms) ................................................................................ 639StartMLEvaluationTaskRun (start_ml_evaluation_task_run) ..................................................... 640StartMLLabelingSetGenerationTaskRun (start_ml_labeling_set_generation_task_run) .................. 641GetMLTaskRun (get_ml_task_run) ...................................................................................... 642GetMLTaskRuns (get_ml_task_runs) ................................................................................... 643CancelMLTaskRun (cancel_ml_task_run) ............................................................................ 644StartExportLabelsTaskRun (start_export_labels_task_run) ...................................................... 644StartImportLabelsTaskRun (start_import_labels_task_run) ...................................................... 645

    API de etiquetado ................................................................................................................... 646 —  tipos de datos   — ...................................................................................................... 646Tag ............................................................................................................................... 646 —Operaciones de      — .................................................................................................... 647TagResource (tag_resource) ............................................................................................. 647UntagResource (untag_resource) ....................................................................................... 647GetTags (get_tags) .......................................................................................................... 648

    Tipos de datos comunes .......................................................................................................... 648Tag ............................................................................................................................... 648DecimalNumber .............................................................................................................. 649ErrorDetail ...................................................................................................................... 649PropertyPredicate ............................................................................................................ 649ResourceUri ................................................................................................................... 650Patrones de cadena ........................................................................................................ 650

    Excepciones ........................................................................................................................... 650AccessDeniedException ................................................................................................... 650AlreadyExistsException .................................................................................................... 651

    viii

  • AWS Glue Guía del desarrollador

    ConcurrentModificationException ....................................................................................... 651ConcurrentRunsExceededException ................................................................................... 651CrawlerNotRunningException ............................................................................................ 651CrawlerRunningException ................................................................................................. 651CrawlerStoppingException ................................................................................................ 652EntityNotFoundException .................................................................................................. 652GlueEncryptionException .................................................................................................. 652IdempotentParameterMismatchException ............................................................................ 652InternalServiceException .................................................................................................. 652InvalidExecutionEngineException ....................................................................................... 653InvalidInputException ....................................................................................................... 653InvalidTaskStatusTransitionException ................................................................................. 653JobDefinitionErrorException .............................................................................................. 653JobRunInTerminalStateException ....................................................................................... 653JobRunInvalidStateTransitionException ............................................................................... 654JobRunNotInTerminalStateException .................................................................................. 654LateRunnerException ....................................................................................................... 654NoScheduleException ...................................................................................................... 654OperationTimeoutException .............................................................................................. 655ResourceNumberLimitExceededException ........................................................................... 655SchedulerNotRunningException ......................................................................................... 655SchedulerRunningException .............................................................................................. 655SchedulerTransitioningException ........................................................................................ 655UnrecognizedRunnerException .......................................................................................... 656ValidationException ......................................................................................................... 656VersionMismatchException ............................................................................................... 656

    Solución de problemas ..................................................................................................................... 657Recopilación de información sobre la solución de problemas en AWS Glue ...................................... 657Solución de problemas de conexión ........................................................................................... 657Solución de errores ................................................................................................................. 658

    Error: recurso no disponible .............................................................................................. 659Error: Could Not Find S3 Endpoint or NAT Gateway for subnetId in VPC (No se encontró el puntode enlace S3 o gateway NAT para subnetId en la VPC) ........................................................ 659Error: Inbound Rule in Security Group Required (la regla de entrada del grupo de seguridad esobligatoria) ..................................................................................................................... 659Error: Outbound Rule in Security Group Required (la regla de salida del grupo de seguridad esobligatoria) ..................................................................................................................... 660Error: error de trabajo porque el rol pasado debería tener premisos para asumir el rol para elservicio AWS Glue .......................................................................................................... 660Error: DescribeVpcEndpoints Action Is Unauthorized. Unable to Validate VPC ID vpc-id (Laacción DescribeVpcEndpoints no está autorizada. No se puede validar la ID de VPC vpc-id) ........ 660Error: DescribeRouteTables Action Is Unauthorized. Unable to Validate Subnet Id: subnet-id inVPC id: vpc-id (La acción DescribeRouteTables no está autorizada. No se puede validar el Id desubred:subnet-id in VPC id: vpc-id) .................................................................................... 660Error: Failed to Call ec2:DescribeSubnets (Error al llamar a ec2:DescribeSubnets) ..................... 661Error: Failed to Call ec2:DescribeSecurityGroups (Error al llamar a ec2:DescribeSecurityGroups) .. 661Error: Could Not Find Subnet for AZ (No se pudo encontrar la subred de AZ) ............................ 661Error: Job Run Exception When Writing to a JDBC Target (Excepción de ejecución de flujo detrabajo al escribir en un destino JDBC) .............................................................................. 661Error: Amazon S3 Timeout (Tiempo de espera de agotado) ................................................... 662Error: Amazon S3 Access Denied (Acceso denegado de) ...................................................... 662Error: Amazon S3 Access Key ID Does Not Exist (El ID de clave de acceso de no existe) ............ 662Error: se produce un error en la ejecución de trabajo al obtener acceso a Amazon S3 con un URIde s3a:// ..................................................................................................................... 662Error: token de servicio de Amazon S3 caducado ................................................................ 664Error: No Private DNS for Network Interface Found (No se encontró un DNS privado para lainterfaz de red) ............................................................................................................... 664

    ix

  • AWS Glue Guía del desarrollador

    Error: Development Endpoint Provisioning Failed (Error en el aprovisionamiento del punto deenlace de desarrollo) ....................................................................................................... 664Error: Notebook Server CREATE_FAILED (CREATE_FAILED el servidor del bloc de notas) ......... 664Error: Local Notebook Fails to Start (El bloc de notas local no se inicia) ................................... 665Error: Notebook Usage Errors (Errores de uso del bloc de notas) ........................................... 665Error: Running Crawler Failed (Error de ejecución del rastreador) ........................................... 665Error: Upgrading Athena Data Catalog (Error de actualización del catálogo de datos de Athena) ... 665Error: un trabajo está reprocesando datos cuando los marcadores de trabajo están habilitados .... 666

    Cuotas de AWS Glue .............................................................................................................. 666Problemas conocidos ....................................................................................................................... 667

    Prevención del acceso a datos entre trabajos .............................................................................. 667Notas de la versión AWS Glue ......................................................................................................... 669

    Versiones de AWS Glue .......................................................................................................... 669Historial de revisión ......................................................................................................................... 670

    Actualizaciones anteriores ........................................................................................................ 679AWS Glossary ................................................................................................................................ 680

    x

  • AWS Glue Guía del desarrollador¿Cuándo debo usar AWS Glue?

    ¿Qué es AWS Glue?AWS Glue es un servicio plenamente administrado de ETL (extracción, transformación y carga) queproporciona una forma más rentable y sencilla de categorizar los datos, limpiarlos, enriquecerlos ymoverlos de manera fiable entre distintos almacenes de datos. AWS Glue consta de un repositorio demetadatos central conocido como AWS Glue Data Catalog, un motor de ETL que genera automáticamentecódigo Python o Scala y un programador flexible que se encarga de la resolución de dependencias, lamonitorización de los trabajos y la aplicación de reintentos. AWS Glue no usa servidor, por lo que no hayninguna infraestructura que configurar ni administrar.

    Use la consola de AWS Glue para detectar datos, transformarlos y hacer que estén disponibles parabúsquedas y consultas. La consola llama a los servicios subyacentes para orquestar el flujo de trabajonecesario para transformar sus datos. También puede usar las operaciones de la AWS Glue APIinteraccionar con servicios de AWS Glue. Edite, depure y pruebe su código ETL de Apache Spark dePython o Scala mediante un entorno de desarrollo que le resulte familiar.

    Para obtener información acerca de los precios, consulte Precios de AWS Glue.

    ¿Cuándo debo usar AWS Glue?Puede usar AWS Glue para crear un almacén de datos para organizar, limpiar, validar y dar formato alos datos. Puede transformar y mover datos en la nube de AWS a su almacén de datos. También puedecargar datos de orígenes diferentes en su data warehouse para realizar análisis y obtener informes demanera regular. Al almacenarlos en un data warehouse, puede integrar información de diversas partes desu empresa y proporcionar un origen de datos común para la toma de decisiones.

    AWS Glue simplifica muchas tareas cuando crea un almacén de datos:

    • Descubre y cataloga metadatos acerca de sus almacenes de datos en un catálogo central. Puedeprocesar datos semiestructurados, como registros de procesos o secuencias de clics.

    • Rellena AWS Glue Data Catalog con definiciones de tabla desde programas del rastreadorprogramados. Los rastreadores llaman a la lógica del clasificador para inferir el esquema, el formato ylos tipos de datos de sus datos. Estos metadatos se almacenan como tablas en AWS Glue Data Catalogy se usan en el proceso de creación de sus trabajos de ETL.

    • Genera scripts ETL para transformar, acoplar y enriquecer sus datos del origen al destino.• Detecta cambios de esquema y se adapta según sus preferencias.• Activa sus trabajos de ETL según una programación o evento. Puede iniciar trabajos automáticamente

    para mover sus datos a su data warehouse. Los disparadores se pueden usar para crear un flujo dedependencia entre los trabajos.

    • Recopila métricas en tiempo de ejecución para monitorear las actividades de su data warehouse.• Administra errores y reintentos de forma automática.• Escala recursos, según las necesidades, para ejecutar sus trabajos.

    Puede utilizar AWS Glue al ejecutar consultas sin servidor en su lago de datos de Amazon S3. AWSGlue puede catalogar sus datos de Amazon Simple Storage Service (Amazon S3), haciendo que esténdisponibles para las consultas con Amazon Athena y Amazon Redshift Spectrum. Con los rastreadores,sus metadatos permanecen sincronizados con los datos subyacentes. Athena y Redshift Spectrum puedenconsultar directamente su lago de datos de Amazon S3 mediante AWS Glue Data Catalog. Con AWS Glue,puede obtener acceso a datos y analizarlos a través de una interfaz unificada sin cargarlos en varios silosde datos.

    1

    https://aws.amazon.com/glue/pricing

  • AWS Glue Guía del desarrollador¿Cuándo debo usar AWS Glue?

    Puede crear canalizaciones ETL basadas en eventos con AWS Glue. Puede ejecutar sus trabajos deETL tan pronto como los nuevos datos estén disponibles en Amazon S3 invocando sus trabajos de ETLde AWS Glue desde una función de AWS Lambda. Como parte de los trabajos de ETL, también puederegistrar el nuevo conjunto de datos en AWS Glue Data Catalog.

    Puede usar AWS Glue para entender sus recursos de datos. Puede almacenar sus datos mediantediversos servicios de AWS y seguir manteniendo una perspectiva unificada de sus datos mediante AWSGlue Data Catalog. Consulte Data Catalog para buscar y descubrir rápidamente los conjuntos de datos queposee y mantenga los metadatos relevantes en un repositorio central. Data Catalog también sirve como unreemplazo instantáneo para su metaalmacén de Apache Hive externo.

    2

  • AWS Glue Guía del desarrolladorLos trabajos de ETL sin servidor

    se ejecutan de forma aislada

    AWS Glue: cómo funcionaAWS Glueutiliza otros servicios de AWS para organizar los trabajos de ETL (extraer, transformar y cargar)con el fin de crear un almacén de datos. AWS Glue invoca operaciones de la API para transformar losdatos, crear registros en tiempo de ejecución, almacenar su lógica de flujo de trabajo y crear notificacionespara supervisar las tareas de ejecución de los trabajos. La consola de AWS Glue conecta estos serviciosen una aplicación administrada, para que pueda concentrarse en la creación y monitorización de lostrabajos de ETL. La consola desarrolla operaciones administrativas y de desarrollo de trabajos en sunombre. Puede proporcionar credenciales y otras propiedades a AWS Glue para obtener acceso a losorígenes de datos y escribir en el almacén de datos.

    AWS Glue se encarga del aprovisionamiento y la administración de los recursos necesarios para ejecutarla carga de flujo de trabajo. No es necesario crear la infraestructura para una herramienta de ETL porqueAWS 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 Data Catalog. Las trabajosse componen de scripts que incluyen la lógica de programación encargada de efectuar la transformación.Puede utilizar disparadores para iniciar trabajos en función de una programación o a través del resultadode un evento especificado. Puede determinar dónde van a residir los datos y qué datos de origen van arellenar el destino. Con la entrada, AWS Glue genera el código necesario para transformar los datos desdeel origen hasta el destino. También puede proporcionar scripts en la consola de AWS Glue o la API paraprocesar los datos.

    AWS Glue está disponible en varias regiones de AWS. Para obtener más información, consulte Regiones ypuntos de enlace de AWS en la Referencia general de Amazon Web Services.

    Temas• Los trabajos de ETL sin servidor se ejecutan de forma aislada (p. 3)• Conceptos de AWS Glue (p. 4)• Componentes de AWS Glue (p. 7)• Conversión de esquemas semiestructurados a esquemas relacionales (p. 8)

    Los trabajos de ETL sin servidor se ejecutan deforma aislada

    AWS Glue ejecuta los trabajos de ETL en un entorno Apache Spark sin servidor. AWS Glue ejecuta estostrabajos 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.• Obtener 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 elconsentimiento 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 deentrada y los destinos de datos de salida en la nube virtual privada (VPC). Además, debe proporcionar elrol de IAM, el ID de la VPC, el ID de la subred y el grupo de seguridad; todos ellos necesarios para obtener

    3

    https://docs.aws.amazon.com/general/latest/gr/rande.htmlhttps://docs.aws.amazon.com/general/latest/gr/rande.html

  • AWS Glue Guía del desarrolladorConceptos

    acceso a los orígenes y los destinos de datos. Para cada una de las tuplas (el ID de la cuenta de cliente,el rol de IAM, el ID de subred y el grupo de seguridad), AWS Glue crea un nuevo entorno Spark que seaísla en la red y en las tareas de administración de todos los entornos de Spark que estén en la cuenta deservicio de AWS Glue.

    AWS Glue crea interfaces de red elástica en la subred mediante direcciones IP privadas. Los trabajos deSpark utilizan estas interfaces de red elástica para obtener acceso a los orígenes de datos y los destinosde datos. El tráfico entrante y saliente del entorno de Spark, así como el interno, está regido por laspolíticas de VPC y de red, con una única excepción: las llamadas realizadas a las bibliotecas de AWSGlue pueden utilizar un proxy para el tráfico de las operaciones de la API de AWS Glue a través de la VPCde AWS Glue. Se registran todas las llamadas al API de AWS Glue, por tanto, los propietarios de datospueden auditar el acceso a la API mediante la habilitación de AWS CloudTrail, que entrega registros deauditoría a su cuenta.

    Los entornos de Spark que administra AWS Glue y que ejecutan los trabajos de ETL están protegidosa través de las mismas prácticas de seguridad que aplican otros servicios de AWS. Estas prácticas seindican en la sección Acceso a AWS del documento técnico Introducción a los procesos de seguridad deAWS.

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

    Los trabajos se definen en AWS Glue a fin de realizar el flujo de trabajo necesario para extraer, transformary cargar datos (ETL) desde un origen de datos hasta un destino de datos. Normalmente, usted llevará acabo las siguientes acciones:

    4

    https://docs.aws.amazon.com/awscloudtrail/latest/userguide/https://d1.awsstatic.com/whitepapers/Security/Intro_Security_Practices.pdfhttps://d1.awsstatic.com/whitepapers/Security/Intro_Security_Practices.pdf

  • AWS Glue Guía del desarrolladorTerminología de AWS Glue

    • Puede definir un rastreador para rellenar su AWS Glue Data Catalog con definiciones de tabla demetadatos. Puede dirigir su rastreador a un almacén de datos y el rastreador crea definiciones de tablaen el Data Catalog.

    Además de las definiciones de tabla, el AWS Glue Data Catalog contiene otros metadatos necesariospara definir los trabajos de ETL. Utilizará estos metadatos al definir un flujo de trabajo para transformarsus datos.

    • AWS Glue puede generar un script para transformar sus datos. O bien, puede proporcionar el script en laconsola o API de AWS Glue.

    • Puede ejecutar su flujo de trabajo bajo demanda o configurarlo de modo que se inicie al activarse undisparador especificado. El disparador puede corresponder a una programación basada en tiempo o aun evento.

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

    Important

    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 el formato UTF-8 para que AWSGlue los procese correctamente. Para obtener más información, consulte UTF-8 en Wikipedia.

    Terminología de AWS GlueAWS Glue se apoya en la interacción de varios componentes para crear y administrar su flujo de flujo detrabajo de almacén de datos.

    AWS Glue Data CatalogEl almacén de metadatos persistentes en AWS Glue. Contiene definiciones de tablas, definiciones detrabajos y otra información de control para administrar su entorno de AWS Glue. Cada cuenta de AWStiene una AWS Glue Data Catalog por región.

    ClasificadorDetermina el esquema de sus datos. AWS Glue proporciona clasificadores para tipos de archivoscomunes, como CSV, JSON, AVRO, XML y otros. También proporciona clasificadores para sistemas deadministración de bases de datos relacionales comunes mediante una conexión de JDBC. Puede escribirsu propio clasificador mediante un patrón de grok o especificando una etiqueta de fila en un documentoXML.

    ConexiónContiene las propiedades que son necesarias para conectarse a su almacén de datos.

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

    5

    https://en.wikipedia.org/wiki/UTF-8

  • AWS Glue Guía del desarrolladorTerminología de AWS Glue

    Base de datosUn conjunto de definiciones de tabla de Data Catalog asociadas organizadas en un grupo lógico en AWSGlue.

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

    Punto de enlace de desarrolloUn entorno que puede utilizar para desarrollar y probar los scripts ETL de AWS Glue.

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

    Servidor de blocs de notasUn entorno basado en web que puede usar para ejecutar sus instrucciones PySpark. PySpark es undialecto Python para la programación de ETL. Para obtener más información, consulte Apache Zeppelin.Puede configurar un servidor de blocs de notas en un punto de enlace de desarrollo para ejecutarinstrucciones PySpark con extensiones de AWS Glue.

    ScriptLos scripts contienen código que extrae datos de orígenes, los transforma y los carga en destinos. AWSGlue genera scripts PySpark o Scala.

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

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

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

    6

    http://zeppelin.apache.org/

  • AWS Glue Guía del desarrolladorComponentes

    Componentes de AWS GlueAWS Glue proporciona una consola y operaciones de API para configurar y administrar su carga de flujode trabajo de extracción, transformación y carga (ETL). Puede usar las operaciones de API a través devarios SDK específicos de lenguaje y la AWS Command Line Interface (AWS CLI). Para obtener másinformación acerca del uso de la AWS CLI, consulte AWS CLI Command 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 metaalmacén ApacheHive. AWS Glue Jobs system proporciona una infraestructura administrada para definir, programar yejecutar operaciones de ETL en sus datos. Para obtener más información sobre API de AWS Glue,consulte API de AWS Glue (p. 480).

    Consola de AWS GlueUse la consola de AWS Glue para definir y orquestar su flujo de flujo de trabajo de ETL. La consola llama avarias operaciones API en el AWS Glue Data Catalog y AWS Glue Jobs system para realizar las siguientestareas:

    • 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 CatalogEl AWS Glue Data Catalog es su almacén de metadatos persistentes. Se trata de un servicio administradoque le permite almacenar, comentar y compartir metadatos en la nube de AWS de la misma forma queharía en un metaalmacén Apache Hive.

    Cada cuenta de AWS tiene una AWS Glue Data Catalog por región de AWS. Proporciona un repositoriouniforme donde sistemas dispares pueden almacenar y encontrar metadatos para realizar un seguimientode los datos en silos de datos, así como usar esos metadatos para consultar y transformar los datos.

    Puede usar las políticas de AWS Identity and Access Management (IAM) para controlar el acceso a losorígenes de datos administrados por el AWS Glue Data Catalog. Estas políticas permiten a los diversosgrupos de su compañía publicar datos de forma segura en toda la organización al mismo tiempo que seprotege la información confidencial. Las políticas de IAM le permiten definir de forma clara y coherentequé usuarios tienen acceso y cuáles son los datos a los que tienen acceso, independientemente de suubicación.

    Para obtener información acerca de cómo utilizar la AWS Glue Data Catalog, consulte Rellenar AWS GlueData Catalog (p. 109). Para obtener información acerca de cómo programar con la API de Data Catalog,consulte API de catálogo (p. 495).

    AWS Glue Data Catalog puede utilizarse con otros servicios de AWS y proyectos de código abierto:

    • Amazon Athena: para obtener más información, consulte Descripción de las tablas, bases de datos y elcatálogo de datos en la Guía del usuario de Amazon Athena.

    • Amazon Redshift Spectrum: para obtener más información, consulte Uso de Amazon Redshift Spectrumpara consultar datos externos en la Amazon Redshift Database Developer Guide.

    • Amazon EMR: para obtener más información, consulte Uso de políticas basadas en recursos para elacceso de Amazon EMR a AWS Glue Data Catalog en la Guía de administración de Amazon EMR.

    7

    https://docs.aws.amazon.com/cli/latest/reference/https://docs.aws.amazon.com/athena/latest/ug/understanding-tables-databases-and-the-data-catalog.htmlhttps://docs.aws.amazon.com/athena/latest/ug/understanding-tables-databases-and-the-data-catalog.htmlhttps://docs.aws.amazon.com/redshift/latest/dg/c-using-spectrum.htmlhttps://docs.aws.amazon.com/redshift/latest/dg/c-using-spectrum.htmlhttps://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-glue.htmlhttps://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles-glue.html

  • AWS Glue Guía del desarrolladorRastreadores y clasificadores de AWS Glue

    • Cliente de AWS Glue Data Catalog para el metaalmacén de Apache Hive: para obtener más informaciónsobre este proyecto de GitHub, consulte AWS Glue Data Catalog Client for Apache Hive Metastore.

    Rastreadores y clasificadores de AWS GlueAWS Glue también le permite configurar rastreadores que pueden analizar datos en toda clase derepositorios, clasificarlos, extraer información de esquema de ellos y almacenar los metadatos de formaautomática en el AWS Glue Data Catalog. Desde ahí se puede usar para guiar las operaciones de ETL.

    Para obtener información acerca de cómo configurar rastreadores y clasificadores, consulte Definición derastreadores (p. 122). Para obtener información acerca de cómo programar rastreadores y clasificadoresmediante la API de AWS Glue, consulte API de rastreadores y clasificadores (p. 541).

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

    Para obtener más información acerca de cómo usar capacidades de ETL de AWS Glue, consulteProgramación de scripts de ETL (p. 311).

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

    Para obtener más información acerca del uso de AWS Glue Jobs system, consulte Ejecución ymonitorización de AWS Glue (p. 235). Para obtener información acerca de la programación del uso de laAPI de AWS Glue Jobs system, consulte API de trabajos (p. 569).

    Conversión de esquemas semiestructurados aesquemas relacionales

    Es habitual querer convertir los datos semiestructurados en tablas relacionales. Conceptualmente, ustedaplana un esquema jerárquico a un esquema relacional. AWS Glue puede realizar esta conversiónautomá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 losdatos semiestructurados, consulte Datos semiestructurados en Wikipedia.

    Los datos relacionales vienen representados por tablas que constan de filas y columnas. Las relacionesentre las tablas se pueden representar mediante una relación de clave principal a clave externa. Paraobtener más información, consulte Base de datos relacional 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,

    8

    https://github.com/awslabs/aws-glue-data-catalog-client-for-apache-hive-metastorehttps://en.wikipedia.org/wiki/Semi-structured_datahttps://en.wikipedia.org/wiki/Relational_database

  • AWS Glue Guía del desarrolladorConversión de esquemas

    semiestructurados a esquemas relacionales

    transformación y carga). Por ejemplo, es posible que desee analizar datos JSON, abarcando desdearchivos de origen de Amazon Simple Storage Service (Amazon S3) a tablas de Amazon RelationalDatabase Service (Amazon RDS). Saber cómo controla AWS Glue las diferencias entre los esquemaspuede ayudarle a entender el proceso de transformación.

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

    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 eldesplazamiento y el valor de los elementos en la matriz.

    9

  • AWS Glue Guía del desarrolladorConfiguración de permisos de IAM para AWS Glue

    Introducción al uso de AWS GlueLas siguientes secciones ofrecen información general y una guía para configurar y empezar a utilizar AWSGlue. Para obtener más información sobre los conceptos y componentes de AWS Glue, consulte AWSGlue: cómo funciona (p. 3).

    Temas• Configuración de permisos de IAM para AWS Glue (p. 10)• Configuración de DNS en la VPC (p. 31)• Configuración del entorno para obtener acceso a almacenes de datos (p. 31)• Configuración del entorno para puntos de enlace de desarrollo (p. 36)• Configuración del cifrado en AWS Glue (p. 38)• Información general sobre el flujo de flujo de trabajo de la consola de AWS Glue (p. 41)

    Configuración de permisos de IAM para AWS GlueAWS Identity and Access Management (IAM) se utiliza para definir políticas y roles que son necesariospara obtener acceso a recursos que AWS Glue utiliza. Los pasos siguientes le guiarán por los permisosbásicos necesarios para configurar su entorno. Según las necesidades de su negocio, es posible quetenga que añadir o reducir el acceso a los recursos.

    1. Cree una política de IAM para AWS Glue Service (p. 10): cree una política del servicio que le permitael acceso a recursos de AWS Glue.

    2. Cree un rol de IAM para AWS Glue (p. 14): cree un rol de IAM y asocie la política de servicio de AWSGlue y una política para sus recursos de Amazon Simple Storage Service (Amazon S3) que AWS Glueutiliza.

    3. Asocie una política a los usuarios de IAM que tengan acceso a AWS Glue (p. 15): asocie políticas atodo usuario de IAM que inicie sesión en la consola de AWS Glue.

    4. Cree una política de IAM para blocs de notas (p. 23): cree una política de servidor de blocs de notaspara utilizarla en la creación de servidores de blocs de notas en los puntos de enlace de desarrollo.

    5. Cree un rol de IAM para blocs de notas (p. 26): cree un rol de IAM y asocie la política de servidor deblocs de notas.

    6. Crear una política de IAM para blocs de notas de Amazon SageMaker (p. 28): crear una política deIAM que se utilizará al crear blocs de notas de Amazon SageMaker de puntos de enlace de desarrollo.

    7. Crear un rol de IAM para blocs de notas de Amazon SageMaker (p. 30): crear un rol de IAM y asociarla política para conceder permisos al crear blocs de notas de Amazon SageMaker en puntos de enlacede desarrollo.

    Paso 1: Crear una política de IAM para el servicio deAWS GluePara cualquier operación que obtenga acceso a datos que estén en otro recurso de AWS, como el accesoa sus objetos en Amazon S3, AWS Glue necesita permiso para obtener acceso al recurso en su nombre.Estos permisos los concede utilizando AWS Identity and Access Management (IAM).

    Note

    Puede omitir este paso si utiliza la política administrada de AWS AWSGlueServiceRole.

    10

  • AWS Glue Guía del desarrolladorPaso 1: Crear una política de IAM

    para el servicio de AWS Glue

    En este paso, crea una política que es similar a AWSGlueServiceRole. Puede encontrar la versión másactual de AWSGlueServiceRole en la consola de IAM.

    Para crear una política de IAM para AWS Glue

    Esta política concede permiso para que algunas acciones de Amazon S3 administren recursos desu cuenta que AWS Glue necesita cuando asume el rol con esta política. Algunos de los recursosespecificados en esta política hacen referencia a nombres predeterminados que AWS Glue utiliza parabuckets de Amazon S3, scripts de ETL de Amazon S3, CloudWatch Logs y recursos de Amazon EC2. Deforma predeterminada y para mayor simplicidad, AWS Glue escribe algunos objetos de Amazon S3 enbuckets de su cuenta con el prefijo aws-glue-*.

    1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/.

    2. En el panel de navegación izquierdo, elija Policies.3. Elija Create Policy.4. En la pantalla Create Policy (Crear política) vaya a una pestaña para editar JSON. Cree un documento

    de política con las instrucciones JSON siguientes y, a continuación, elija Review policy (Revisarpolítica).

    Note

    Añada todos los permisos necesarios para los recursos de Amazon S3. Es posible quele interese que la sección de recursos de su política de acceso abarque solo los recursosnecesarios.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:*", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketAcl", "ec2:DescribeVpcEndpoints", "ec2:DescribeRouteTables", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "iam:ListRolePolicies", "iam:GetRole", "iam:GetRolePolicy", "cloudwatch:PutMetricData" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket" ], "Resource": [ "arn:aws:s3:::aws-glue-*" ]

    11

    https://console.aws.amazon.com/iam/https://console.aws.amazon.com/iam/

  • AWS Glue Guía del desarrolladorPaso 1: Crear una política de IAM

    para el servicio de AWS Glue

    }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::aws-glue-*/*", "arn:aws:s3:::*/*aws-glue-*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::crawler-public*", "arn:aws:s3:::aws-glue-*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:AssociateKmsKey" ], "Resource": [ "arn:aws:logs:*:*:/aws-glue/*" ] }, { "Effect": "Allow", "Action": [ "ec2:CreateTags", "ec2:DeleteTags" ], "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "aws-glue-service-resource" ] } }, "Resource": [ "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*", "arn:aws:ec2:*:*:instance/*" ] } ]}

    En la siguiente tabla se describen los permisos que esta política concede.

    12

  • AWS Glue Guía del desarrolladorPaso 1: Crear una política de IAM

    para el servicio de AWS Glue

    Acción Recurso Descripción

    "glue:*" "*" Concede permiso para ejecutartodas las operaciones de la API deAWS Glue.

    "s3:GetBucketLocation","s3:ListBucket","s3:ListAllMyBuckets","s3:GetBucketAcl",

    "*" Permite crear listas de bucketsde Amazon S3 a partir derastreadores, trabajos, puntos deenlace de desarrollo y servidoresde blocs de notas.

    "ec2:DescribeVpcEndpoints","ec2:DescribeRouteTables","ec2:CreateNetworkInterface","ec2:DeleteNetworkInterface","ec2:DescribeNetworkInterfaces","ec2:DescribeSecurityGroups","ec2:DescribeSubnets","ec2:DescribeVpcAttribute",

    "*" Permite configurar elementos dered de Amazon EC2, como nubesprivadas virtuales (VPC), cuandose ejecutan trabajos, rastreadoresy puntos de enlace de desarrollo.

    "iam:ListRolePolicies","iam:GetRole","iam:GetRolePolicy"

    "*" Permite crear listas de roles deIAM a partir de rastreadores,trabajos, puntos de enlace dedesarrollo y servidores de blocs denotas.

    "cloudwatch:PutMetricData" "*" Permite escribir métricas deCloudWatch de trabajos.

    "s3:CreateBucket" "arn:aws:s3:::aws-glue-*" Permite la creación de buckets deAmazon S3 en su cuenta a partirde trabajos y servidores de blocsde notas.

    Convención de denominación:utiliza carpetas de Amazon S3denominadas aws-glue-.

    "s3:GetObject", "s3:PutObject","s3:DeleteObject"

    "arn:aws:s3:::aws-glue-*/*", "arn:aws:s3:::*/*aws-glue-*/*"

    Permite obtener, poner y eliminarobjetos de Amazon S3 en sucuenta al almacenar objetos comoscripts de ETL y ubicaciones deservidores de blocs de notas.

    Convención de denominación:concede permiso a buckets ocarpetas de Amazon S3 cuyosnombres tienen el prefijo aws-glue-.

    13

  • AWS Glue Guía del desarrolladorPaso 2: Crear un rol de IAM para AWS Glue

    Acción Recurso Descripción

    "s3:GetObject" "arn:aws:s3:::crawler-public*","arn:aws:s3:::aws-glue-*"

    Permite conseguir objetos deAmazon S3 que utilizan losejemplos y tutoriales de losrastreadores y los trabajos.

    Convención de denominación: losnombres de bucket de AmazonS3 comienzan por crawler-public yaws-glue-.

    "logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"

    "arn:aws:logs:*:*:/aws-glue/*"

    Permite escribir registros enCloudWatch Logs.

    Convención de denominación:AWS Glue escribe registrosen grupos de registros cuyosnombres comienzan por aws-glue.

    "ec2:CreateTags","ec2:DeleteTags"

    "arn:aws:ec2:*:*:network-interface/*","arn:aws:ec2:*:*:security-group/*","arn:aws:ec2:*:*:instance/*"

    Permite el etiquetado de recursosde Amazon EC2 creados parapuntos de enlace de desarrollo.

    Convención de denominación:AWS Glue etiqueta interfaces dered de Amazon EC2, grupos deseguridad e instancias con aws-glue-service-resource.

    5. En la pantalla Review Policy (Revisar política), escriba su Policy Name (Nombre de política); porejemplo, GlueServiceRolePolicy. Escriba una descripción opcional y, cuando quede satisfecho con lapolítica, elija Create Policy (Crear política).

    Paso 2: Crear un rol de IAM para AWS GlueTiene que conceder sus permisos de rol de IAM que AWS Glue puede asumir cuando llame a otrosservicios en su nombre. Esto incluye el acceso a Amazon S3 para todos los orígenes, los objetivos, losscripts y los directorios temporales que utilice con AWS Glue. Los rastreadores, los trabajos y los puntosde enlace de desarrollo necesitan permiso.

    Estos permisos los concede utilizando AWS Identity and Access Management (IAM). Añada una política alrol de IAM que pase a AWS Glue.

    Pasos para crear un rol de IAM para AWS Glue

    1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/.

    2. En el panel de navegación izquierdo, seleccione Roles.3. Elija Create role.4. En el tipo de rol, seleccione AWS Service (Servicio de AWS), encuentre y elija Glue y, a continuación,

    seleccione Next: Permissions (Siguiente: permisos).5. En la página Attach permissions policy (Asociar política de permisos) elija las políticas que contienen

    los permisos necesarios; por ejemplo, la política administrada de AWS AWSGlueServiceRole parapermisos de AWS Glue generales y la política administrada de AWS AmazonS3FullAccess paraobtener acceso a los recursos de Amazon S3. A continuación, seleccione Next: Review.

    14

    https://console.aws.amazon.com/iam/https://console.aws.amazon.com/iam/

  • AWS Glue Guía del desarrolladorPaso 3: Adjuntar una política a usuarios

    de IAM que obtienen acceso a AWS Glue

    Note

    Asegúrese de que una de las políticas de este rol conceda permisos a sus orígenesy destinos de Amazon S3. Es posible que le interese proporcionar su propia políticapara obtener acceso a determinados recursos de Amazon S3. Los orígenes de datosrequieren permisos s3:ListBucket y s3:GetObject. Los destinos de datos requierenpermisos s3:ListBucket, s3:PutObject y s3:DeleteObject. Para obtener másinformación acerca de la creación de una política de Amazon S3 para sus recursos, consulteEspecificación de recursos en una política. Para ver un ejemplo de política de Amazon S3,consulte la sección sobre cómo escribir políticas de IAM: cómo conceder acceso a un bucketde Amazon S3.Si tiene previsto obtener acceso a orígenes y destinos de Amazon S3 cifrados con SSE-KMS,asocie una política que permita a los rastreadores, traba