AWS Glue - Guia do desenvolvedorAWS Glue Guia do desenvolvedor Definir um banco de dados no seu...

744
AWS Glue Guia do desenvolvedor

Transcript of AWS Glue - Guia do desenvolvedorAWS Glue Guia do desenvolvedor Definir um banco de dados no seu...

  • AWS GlueGuia do desenvolvedor

  • AWS Glue Guia do desenvolvedor

    AWS Glue: Guia do desenvolvedorCopyright © 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 Guia do desenvolvedor

    Table of ContentsO que é o AWS Glue? ........................................................................................................................ 1

    Quando devo usar o AWS Glue? .................................................................................................. 1Como ele funciona .............................................................................................................................. 3

    Trabalhos de ETL sem servidor executados em isolamento .............................................................. 4Conceitos .................................................................................................................................. 4

    Terminologia do AWS Glue .................................................................................................. 6Components .............................................................................................................................. 7

    AWS Glue Console ............................................................................................................. 8Catálogo de dados do AWS Glue ......................................................................................... 8AWS Glue Crawlers and Classifiers ...................................................................................... 9AWS Glue ETL Operations .................................................................................................. 9Streaming ETL in AWS Glue ................................................................................................ 9The AWS Glue Jobs System ................................................................................................ 9

    Converter esquemas semiestruturados em esquemas relacionais ....................................................... 9Conceitos básicos ............................................................................................................................. 11

    Configurar permissões do IAM para o AWS Glue .......................................................................... 11Etapa 1: criar uma política do IAM para o serviço do AWS Glue ............................................... 11Etapa 2: criar uma função do IAM para o AWS Glue .............................................................. 15Etapa 3: anexar uma política aos usuários do IAM que acessam o AWS Glue ............................ 16Etapa 4: Criar uma política do IAM para servidores de notebook .............................................. 24Etapa 5: Criar uma função do IAM para servidores de notebook ............................................... 27Etapa 6: Criar uma política do IAM para notebooks do SageMaker ........................................... 28Etapa 7: Criar uma função do IAM para notebooks do SageMaker ............................................ 30

    Configuração do DNS na sua VPC .............................................................................................. 31Configurar seu ambiente para acessar os armazenamentos de dados ............................................... 32

    Amazon VPC endpoints para Amazon S3 ............................................................................. 32Configurar uma VPC para se conectar aos armazenamentos de dados JDBC ............................. 34

    Configurar seu ambiente para endpoints de desenvolvimento .......................................................... 37Configurar sua rede para um endpoint de desenvolvimento ..................................................... 37Configurar o Amazon EC2 para um servidor de notebook ....................................................... 39

    Configurar a criptografia ............................................................................................................. 39Visão geral do fluxo de trabalho do console .................................................................................. 42

    Segurança ....................................................................................................................................... 44Data Protection ......................................................................................................................... 44

    Encryption at Rest ............................................................................................................ 44Encryption in Transit ......................................................................................................... 51Key Management .............................................................................................................. 51AWS Glue Dependency on Other AWS Services ................................................................... 51Development Endpoints ..................................................................................................... 52

    Identity and Access Management ................................................................................................ 52Autenticação .................................................................................................................... 53Access Control Overview ................................................................................................... 54Granting Cross-Account Access .......................................................................................... 64ARNs de recursos ............................................................................................................. 69Exemplos de políticas ........................................................................................................ 74Referência de permissões da API ....................................................................................... 89

    Logging and Monitoring ............................................................................................................ 107Validação de conformidade ....................................................................................................... 107Resiliência .............................................................................................................................. 108Segurança da infraestrutura ...................................................................................................... 108

    Usar o AWS Glue com VPC endpoints ............................................................................... 108Amazon VPCs compartilhadas .......................................................................................... 109

    Preenchendo o Catálogo de dados do AWS Glue ................................................................................ 110Defining a Database in Your Data Catalog .................................................................................. 111

    iii

  • AWS Glue Guia do desenvolvedor

    Database Resource Links ................................................................................................. 111Trabalhar com banco de dados no console ......................................................................... 112

    Definir tabelas no Catálogo de dados do AWS Glue ..................................................................... 112Partições de tabela ......................................................................................................... 113Tabela Ligações de recursos ............................................................................................ 114Atualizar tabelas criadas manualmente com crawlers ............................................................ 114Trabalhar com tabelas no console ..................................................................................... 114Trabalhar com índices de partição ..................................................................................... 117

    Definir conexões no Data Catalog do AWS Glue .......................................................................... 119Conexões do AWS Glue .................................................................................................. 120Propriedades da conexão do AWS Glue ............................................................................. 120Adicionar uma conexão do AWS Glue ................................................................................ 124Testing an AWS Glue Connection ..................................................................................... 124Conectar-se a um armazenamento de dados JDBC em uma VPC .......................................... 125Gatinhar um Amazon S3 Loja de dados utilizando um parâmetro VPC ..................................... 126

    Definir crawlers ....................................................................................................................... 132Quais armazenamentos de dados eu posso rastrear? ........................................................... 132O que acontece quando um crawler é executado? ............................................................... 133Propriedades do crawler ................................................................................................... 135Configurar um rastreador .................................................................................................. 140Programar um crawler ..................................................................................................... 144Trabalhar com crawlers no console .................................................................................... 145

    Adicionar classificadores a um crawler ....................................................................................... 147Quando devo usar um classificador? .................................................................................. 147Classificadores personalizados .......................................................................................... 147Classificadores personalizados no AWS Glue ...................................................................... 148Escrever classificadores personalizados ............................................................................. 150Trabalhar com classificadores no console ........................................................................... 161

    Trabalhar com configurações de catálogo de dados no console do AWS Glue .................................. 162Criar tabelas, actualizar esquema e adicionar novas partições no Data Catalog de AWS GlueEmpregos ETL ........................................................................................................................ 164

    Novas partições .............................................................................................................. 164Atualizar esquema da tabela ............................................................................................. 165Criar tabelas ................................................................................................................... 166Restrições: ..................................................................................................................... 166

    Preencher o catálogo de dados usando modelos do AWS CloudFormation ....................................... 167Banco de dados de exemplo ............................................................................................ 168Exemplo de banco de dados, tabela e partições .................................................................. 169Exemplo de classificador grok ........................................................................................... 172Exemplo de classificador JSON ......................................................................................... 173Exemplo de classificador XML .......................................................................................... 173Exemplo de crawler do Amazon S3 ................................................................................... 174Exemplo de conexão ....................................................................................................... 175Exemplo de rastreador do JDBC ....................................................................................... 176Exemplo de trabalho do Amazon S3 para Amazon S3 .......................................................... 178Exemplo de trabalho para JDBC para Amazon S3 ............................................................... 179Exemplo de acionador sob demanda ................................................................................. 180Exemplo de acionador programado .................................................................................... 181Exemplo de acionador condicional ..................................................................................... 182Exemplo de endpoint de desenvolvimento ........................................................................... 183

    Criar trabalhos ................................................................................................................................ 185Visão geral do fluxo de trabalho ................................................................................................ 185Adicionar trabalhos .................................................................................................................. 186

    Definir propriedades do trabalho ........................................................................................ 187Adicionar trabalhos de shell do Python ............................................................................... 191Incluir trabalhos de ETL de streaming ................................................................................ 196Transformações integradas ............................................................................................... 199

    iv

  • AWS Glue Guia do desenvolvedor

    Trabalhos no console ...................................................................................................... 201Editar scripts .......................................................................................................................... 206

    Definir um script .............................................................................................................. 206Scripts no console ........................................................................................................... 208Fornecer seus próprios scripts personalizados ..................................................................... 209

    Desenvolver scripts com endpoints de desenvolvimento ................................................................ 210Fluxo de trabalho do endpoint de desenvolvimento ............................................................... 211Adicionar um endpoint de desenvolvimento ......................................................................... 212Visualizar propriedades do endpoint de desenvolvimento ...................................................... 214Acesso ao endpoint de desenvolvimento ............................................................................ 215Criar um servidor do notebook hospedado no Amazon EC2 ................................................... 216Pré-requisitos do tutorial ................................................................................................... 219Tutorial Bloco de notas de Zeppelin local ............................................................................ 222Tutorial: Servidor de notebook Zeppelin no Amazon EC2 ...................................................... 225Tutorial: usar um bloco de anotações do SageMaker ............................................................ 228Tutorial: Usar um shell REPL ............................................................................................ 230Tutorial Utilizar o pêndulo Profissional ................................................................................ 231

    Gerenciamento de notebooks .................................................................................................... 237Considerações de servidor de notebook ............................................................................. 238Como trabalhar com notebooks no console ......................................................................... 245

    Iniciar trabalhos e crawlers usando gatilhos ........................................................................................ 248Gatilhos do AWS Glue ............................................................................................................. 248Adicionar triggers .................................................................................................................... 249Ativar e desativar gatilhos ........................................................................................................ 250

    Executar e monitorar ....................................................................................................................... 252Ferramentas automatizadas ...................................................................................................... 253Programações baseadas em hora para trabalhos e crawlers .......................................................... 253

    Expressões cron ............................................................................................................. 253Rastreamento de dados processados usando marcadores de trabalho ............................................ 255

    Uso de marcadores de trabalho ........................................................................................ 256Uso de um script do AWS Glue ........................................................................................ 258Uso de time stamps de modificação .................................................................................. 260

    Tags da AWS ......................................................................................................................... 262Exemplos ....................................................................................................................... 263

    Automatizar com o Eventos do CloudWatch ................................................................................ 264Monitorar com a interface do usuário do Spark ............................................................................ 266

    Habilitar a interface do usuário do Spark para trabalhos ........................................................ 270Habilitar a interface do usuário do Spark para endpoints de desenvolvimento ............................ 271Iniciar o servidor de histórico do Spark ............................................................................... 272

    Monitorar com o CloudWatch .................................................................................................... 275Usando métricas do CloudWatch ....................................................................................... 276Configuração de alarmes do Amazon CloudWatch em perfis de trabalho do AWS Glue ............... 289Registro contínuo para tarefas do AWS Glue ...................................................................... 289

    Monitoramento e depuração de trabalho ..................................................................................... 293Depuração de exceções OOM e anomalias de trabalho ........................................................ 294Depuração de estágios exigentes e tarefas de retardatário .................................................... 301Como monitorar o progresso de vários trabalhos ................................................................. 305Monitoramento de planejamento de capacidade de DPU ....................................................... 310

    Registro usando o CloudTrail .................................................................................................... 314Informações sobre o AWS Glue no CloudTrail ..................................................................... 315Noções básicas das entradas dos arquivos de log do AWS Glue ............................................ 316

    Estados de execução de trabalho .............................................................................................. 317Performing Complex ETL Activities Using Workflows ............................................................................ 318

    Visão geral de fluxos de trabalho no AWS Glue ........................................................................... 318Visualizações estática e dinâmica do fluxo de trabalho ......................................................... 319Restrições do fluxo de trabalho ......................................................................................... 319

    Criar e executar fluxos de trabalho em AWS Glue ........................................................................ 320

    v

  • AWS Glue Guia do desenvolvedor

    Criar e criar um fluxo de trabalho utilizando o AWS Glue Consola ........................................... 320Executar um fluxo de trabalho .......................................................................................... 323

    Stopping a Workflow Run ......................................................................................................... 323Repairing and Resuming a Workflow Run ................................................................................... 324

    Resuming a Workflow Run: How It Works ........................................................................... 324Resuming a Workflow Run ............................................................................................... 326Notes and Limitations for Resuming Workflow Runs ............................................................. 328

    Obter e configurar as configurações de execução de fluxo de trabalho ............................................ 329Consultar fluxos de trabalho usando o AWS Glue API .................................................................. 329

    Consultar visualizações estáticas ....................................................................................... 330Consultar visualizações dinâmicas ..................................................................................... 330

    Programar ETL ............................................................................................................................... 333General Information ................................................................................................................. 333

    Parâmetros especiais ....................................................................................................... 333Connection Parameters .................................................................................................... 336Examples: Setting Connection Types and Options ................................................................ 346Opções de formato .......................................................................................................... 349Gerenciamento de partições ............................................................................................. 352Agrupamento de arquivos de entrada ................................................................................. 354Fazer a leitura do JDBC em paralelo ................................................................................. 355Mover dados entre o Amazon Redshift ............................................................................... 356Suporte do Catálogo de dados para tarefas do Spark SQL .................................................... 357Excluir classes de armazenamento do Amazon S3 ............................................................... 360Desenvolver e testar scripts de ETL localmente ................................................................... 361Cross-Account Cross-Region Access to DynamoDB Tables ................................................... 365

    Programar ETL no Python ........................................................................................................ 367Usar o Python ................................................................................................................ 367Lista de extensões .......................................................................................................... 367Lista de transformações ................................................................................................... 368Configuração do Python ................................................................................................... 368Chamar APIs .................................................................................................................. 369Bibliotecas Python ........................................................................................................... 371Exemplos do Python ........................................................................................................ 372Extensões PySpark ......................................................................................................... 386Transformações PySpark ................................................................................................. 415

    Programar ETL no Scala .......................................................................................................... 443Usar o Scala .................................................................................................................. 448Exemplo de script do Scala .............................................................................................. 449Lista de APIs do Scala .................................................................................................... 450

    Correspondência de registros com a FindMatches ............................................................................... 492Tipos de transformações de machine learning ............................................................................. 492

    Transformação para encontrar correspondências ................................................................. 493Ajustar transformações de Machine Learning .............................................................................. 496

    Medições de Machine Learning ......................................................................................... 497Escolher entre precisão e revocação .................................................................................. 497Decidir entre acurácia e custo ........................................................................................... 498Ensinar a transformação Find Matches (Encontrar correspondências) ...................................... 499

    Transformações de machine learning no console ......................................................................... 500Propriedades da transformação ......................................................................................... 500Adicionar e editar transformações de machine learning ......................................................... 501Visualizar detalhes da transformação ................................................................................. 501

    Tutorial: Como criar uma transformação de machine learning ......................................................... 503Etapa 1: Rastrear os dados de origem ............................................................................... 504Etapa 2: Adicionar uma transformação de machine learning ................................................... 504Etapa 3: Ensinar sua transformação de machine learning ...................................................... 505Etapa 4: Estimar a qualidade de sua transformação de machine learning ................................. 505Etapa 5: Adicionar e executar um trabalho com sua transformação de machine learning ............. 506

    vi

  • AWS Glue Guia do desenvolvedor

    Etapa 6: Verificar os dados de saída do Amazon S3 ............................................................ 508API do AWS Glue ........................................................................................................................... 509

    Segurança .............................................................................................................................. 516 Tipos de dados —    — .................................................................................................... 516: DataCatalogEncryptionSettings ........................................................................................ 517: EncryptionAtRest ........................................................................................................... 517: ConnectionPasswordEncryption ....................................................................................... 517: EncryptionConfiguration .................................................................................................. 518S3Encryption .................................................................................................................. 518: CloudWatchEncryption ................................................................................................... 518: JobBookmarksEncryption ................................................................................................ 519SecurityConfiguration ....................................................................................................... 519 —  operações   — ........................................................................................................... 519GetDataCatalogEncryptionSettings (get_data_catalog_encryption_settings) ............................... 519PutDataCatalogEncryptionSettings (put_data_catalog_encryption_settings) ............................... 520PutResourcePolicy (put_resource_policy) ............................................................................ 521GetResourcePolicy (get_resource_policy) ............................................................................ 522DeleteResourcePolicy (delete_resource_policy) .................................................................... 522CreateSecurityConfiguration (create_security_configuration) ................................................... 523DeleteSecurityConfiguration (delete_security_configuration) .................................................... 524GetSecurityConfiguration (get_security_configuration) ............................................................ 524GetSecurityConfigurations (get_security_configurations) ......................................................... 525

    Catálogo ................................................................................................................................ 525Bancos de dados ............................................................................................................ 525Tabelas ......................................................................................................................... 531Partições ........................................................................................................................ 549Conexões ....................................................................................................................... 560Funções definidas pelo usuário ......................................................................................... 568Importar um catálogo do Athena ....................................................................................... 573

    Crawlers e classificadores ........................................................................................................ 574Classificadores ................................................................................................................ 574Crawlers ........................................................................................................................ 584Scheduler ....................................................................................................................... 595

    Scripts de ETL de geração automática ....................................................................................... 597 Tipos de dados —    — .................................................................................................... 597CodeGenNode ................................................................................................................ 598CodeGenNodeArg ........................................................................................................... 598CodeGenEdge ................................................................................................................ 598Local ............................................................................................................................. 599CatalogEntry ................................................................................................................... 599MappingEntry ................................................................................................................. 599 —  operações   — ........................................................................................................... 600CreateScript (create_script) ............................................................................................... 600GetDataflowGraph (get_dataflow_graph) ............................................................................. 600GetMapping (get_mapping) ............................................................................................... 601GetPlan (get_plan) .......................................................................................................... 602

    Trabalhos ............................................................................................................................... 602Trabalhos ....................................................................................................................... 602Execução de trabalhos ..................................................................................................... 614Gatilhos ......................................................................................................................... 624

    Fluxos de trabalho .................................................................................................................. 633 Tipos de dados —    — .................................................................................................... 633JobNodeDetails ............................................................................................................... 634CrawlerNodeDetails ......................................................................................................... 634TriggerNodeDetails .......................................................................................................... 634Crawl ............................................................................................................................. 634Nó. ................................................................................................................................ 635

    vii

  • AWS Glue Guia do desenvolvedor

    @Edge .......................................................................................................................... 635WorkflowGraph ............................................................................................................... 635WorkflowRun .................................................................................................................. 636WorkflowRunStatistics ...................................................................................................... 637Workflow ........................................................................................................................ 637 —  operações   — ........................................................................................................... 638CreateWorkflow (create_workflow) ..................................................................................... 638UpdateWorkflow (update_workflow) .................................................................................... 639DeleteWorkflow (delete_workflow) ...................................................................................... 640GetWorkflow (get_workflow) .............................................................................................. 640ListWorkflows (list_workflows) ............................................................................................ 641BatchGetWorkflows (batch_get_workflows) .......................................................................... 641GetWorkflowRun (get_workflow_run) .................................................................................. 642GetWorkflowRuns (get_workflow_runs) ............................................................................... 642GetWorkflowRunProperties (get_workflow_run_properties) ..................................................... 643PutWorkflowRunProperties (put_workflow_run_properties) ...................................................... 644StartWorkflowRun (start_workflow_run) ............................................................................... 645StopWorkflowRun (stop_workflow_run) ............................................................................... 645resumeworkflowrun (retomar_fluxo de trabalho_execução) ..................................................... 646

    DevEndpoints ......................................................................................................................... 646 Tipos de dados —    — .................................................................................................... 647DevEndpoint ................................................................................................................... 647DevEndpointCustomLibraries ............................................................................................. 649 —  operações   — ........................................................................................................... 650CreateDevEndpoint (create_dev_endpoint) .......................................................................... 650UpdateDevEndpoint (update_dev_endpoint) ......................................................................... 654DeleteDevEndpoint (delete_dev_endpoint) ........................................................................... 655GetDevEndpoint (get_dev_endpoint) ................................................................................... 655GetDevEndpoints (get_dev_endpoints) ................................................................................ 656BatchGetDevEndpoints (batch_get_dev_endpoints) ............................................................... 657ListDevEndpoints (list_dev_endpoints) ................................................................................ 657

    Machine Learning .................................................................................................................... 658 Tipos de dados —    — .................................................................................................... 658: TransformParameters ..................................................................................................... 659EvaluationMetrics ............................................................................................................ 659MLTransform .................................................................................................................. 659FindMatchesParameters ................................................................................................... 661FindMatchesMetrics ......................................................................................................... 662ConfusionMatrix .............................................................................................................. 663GlueTable ...................................................................................................................... 663TaskRun ........................................................................................................................ 664TransformFilterCriteria ...................................................................................................... 665TransformSortCriteria ....................................................................................................... 665TaskRunFilterCriteria ....................................................................................................... 666TaskRunSortCriteria ......................................................................................................... 666TaskRunProperties .......................................................................................................... 666FindMatchesTaskRunProperties ......................................................................................... 667ImportLabelsTaskRunProperties ........................................................................................ 667ExportLabelsTaskRunProperties ........................................................................................ 667LabelingSetGenerationTaskRunProperties ........................................................................... 668SchemaColumn ............................................................................................................... 668 —  operações   — ........................................................................................................... 668CreateMLTransform (create_ml_transform) .......................................................................... 668UpdateMLTransform (update_ml_transform) ......................................................................... 671DeleteMLTransform (delete_ml_transform) ........................................................................... 672GetMLTransform (get_ml_transform) ................................................................................... 673GetMLTransforms (get_ml_transforms) ................................................................................ 675

    viii

  • AWS Glue Guia do desenvolvedor

    ListMLTransforms (list_ml_transforms) ................................................................................ 676StartMLEvaluationTaskRun (start_ml_evaluation_task_run) ..................................................... 677StartMLLabelingSetGenerationTaskRun (start_ml_labeling_set_generation_task_run) .................. 677GetMLTaskRun (get_ml_task_run) ...................................................................................... 678GetMLTaskRuns (get_ml_task_runs) ................................................................................... 679CancelMLTaskRun (cancel_ml_task_run) ............................................................................ 680StartExportLabelsTaskRun (start_export_labels_task_run) ...................................................... 681StartImportLabelsTaskRun (start_import_labels_task_run) ...................................................... 682

    Marcação de APIs ................................................................................................................... 683 Tipos de dados —    — .................................................................................................... 683Tag ............................................................................................................................... 683 —  operações   — ........................................................................................................... 683TagResource (tag_resource) ............................................................................................. 683UntagResource (untag_resource) ....................................................................................... 684GetTags (get_tags) .......................................................................................................... 684

    Common Data Types ............................................................................................................... 685Tag ............................................................................................................................... 685DecimalNumber .............................................................................................................. 685ErrorDetail ...................................................................................................................... 686PropertyPredicate ............................................................................................................ 686ResourceUri ................................................................................................................... 686String Patterns ................................................................................................................ 686

    Exceções ............................................................................................................................... 687AccessDeniedException ................................................................................................... 687AlreadyExistsException .................................................................................................... 687ConcurrentModificationException ....................................................................................... 687ConcurrentRunsExceededException ................................................................................... 688CrawlerNotRunningException ............................................................................................ 688CrawlerRunningException ................................................................................................. 688CrawlerStoppingException ................................................................................................ 688EntityNotFoundException .................................................................................................. 688GlueEncryptionException .................................................................................................. 689IdempotentParameterMismatchException ............................................................................ 689IllegalWorkflowStateException ........................................................................................... 689InternalServiceException .................................................................................................. 689InvalidExecutionEngineException ....................................................................................... 689InvalidInputException ....................................................................................................... 690InvalidTaskStatusTransitionException ................................................................................. 690JobDefinitionErrorException .............................................................................................. 690JobRunInTerminalStateException ....................................................................................... 690JobRunInvalidStateTransitionException ............................................................................... 690JobRunNotInTerminalStateException .................................................................................. 691LateRunnerException ....................................................................................................... 691NoScheduleException ...................................................................................................... 691OperationTimeoutException .............................................................................................. 691ResourceNumberLimitExceededException ........................................................................... 691SchedulerNotRunningException ......................................................................................... 692SchedulerRunningException .............................................................................................. 692SchedulerTransitioningException ........................................................................................ 692UnrecognizedRunnerException .......................................................................................... 692ValidationException ......................................................................................................... 692VersionMismatchException ............................................................................................... 693

    Solução de problemas ..................................................................................................................... 694Reunir informações sobre a solução de problemas do AWS Glue ................................................... 694Solução de problemas de conexão ............................................................................................ 694Solução de problemas de erros ................................................................................................. 695

    Erro: recurso indisponível ................................................................................................. 696

    ix

  • AWS Glue Guia do desenvolvedor

    Erro: não foi possível encontrar o endpoint do S3 nem gateway NAT para subnetId na VPC ........ 696Erro: regra de entrada no security group é obrigatória .......................................................... 696Erro: regra de saída no security group é obrigatória ............................................................. 696Erro: a execução do trabalho falhou porque a função transmitida deve receber permissões paraassumir a função para o serviço AWS Glue ........................................................................ 697Erro: a ação DescribeVpcEndpoints não está autorizada. Não é possível validar vpc-id de ID daVPC .............................................................................................................................. 697Erro: a ação DescribeRouteTables não está autorizada. Não é possível validar o ID de sub-rede:subnet-id no ID de VPC: vpc-id ......................................................................................... 697Erro: falha ao chamar ec2:DescribeSubnets ........................................................................ 697Erro: falha ao chamar ec2:DescribeSecurityGroups .............................................................. 697Erro: não foi possível encontrar um sub-rede para zona de disponibilidade ............................... 697Erro: exceção de execução de trabalho ao gravar um destino JDBC ....................................... 698Erro: tempo limite do Amazon S3 ...................................................................................... 698Erro: acesso negado ao Amazon S3 .................................................................................. 698Erro: o ID de chave de acesso do Amazon S3 não existe ..................................................... 699Erro: falha na execução do trabalho ao acessar o Amazon S3 com um URI s3a:// .................. 699Erro: token do serviço Amazon S3 expirado ........................................................................ 700Erro: nenhum DNS privado foi encontrado na interface de rede .............................................. 700Erro: falha no provisionamento do endpoint de desenvolvimento ............................................. 700Erro: servidor de notebook com status CREATE_FAILED ...................................................... 701Erro: falha ao iniciar o notebook local ................................................................................ 701Erro: erros de uso do notebook ......................................................................................... 701Erro: falha na execução do crawler .................................................................................... 701Erro: partições não foram atualizadas ................................................................................ 702Erro: atualização do catálogo de dado do Athena ................................................................ 702Erro: um trabalho está reprocessando dados quando marcadores do trabalho estão habilitados .... 702

    Exceções de machine learning do AWS Glue .............................................................................. 703CancelMLTaskRunActivity ................................................................................................. 703CreateMLTaskRunActivity ................................................................................................. 703DeleteMLTransformActivity ................................................................................................ 704GetMLTaskRunActivity ..................................................................................................... 704GetMLTaskRunsActivity .................................................................................................... 705GetMLTransformActivity .................................................................................................... 705GetMLTransformsActivity .................................................................................................. 705GetSaveLocationForTransformArtifactActivity ....................................................................... 705GetTaskRunArtifactActivity ................................................................................................ 706PublishMLTransformModelActivity ...................................................................................... 706PullLatestMLTransformModelActivity ................................................................................... 706PutJobMetadataForMLTransformActivity .............................................................................. 707StartExportLabelsTaskRunActivity ...................................................................................... 707StartImportLabelsTaskRunActivity ...................................................................................... 707StartMLEvaluationTaskRunActivity ..................................................................................... 708StartMLLabelingSetGenerationTaskRunActivity .................................................................... 708UpdateMLTransformActivity ............................................................................................... 709

    Cotas do AWS Glue ................................................................................................................ 710Problemas conhecidos ..................................................................................................................... 711

    Impedimento do acesso a dados entre trabalhos ......................................................................... 711AWS GlueNotas de release da ......................................................................................................... 713

    AWS GlueVersões do .............................................................................................................. 713Executar trabalhos ETL Spark com tempos de arranque reduzidos ................................................. 714

    Novas funcionalidades suportadas ..................................................................................... 714Comportamento de registo ............................................................................................... 716Recursos não compatíveis ................................................................................................ 717

    Histórico de documentos .................................................................................................................. 718Atualizações anteriores ............................................................................................................ 730

    AWS Glossary ................................................................................................................................ 732

    x

  • AWS Glue Guia do desenvolvedor

    .............................................................................................................................................. dccxxxiii

    xi

  • AWS Glue Guia do desenvolvedorQuando devo usar o AWS Glue?

    O que é o AWS Glue?O AWS Glue é um serviço de ETL (extração, transformação e carregamento) totalmente gerenciado quetorna mais fácil e econômico o processo de categorizar dados, limpá-los, aprimorá-los e movê-los de modoconfiável entre vários armazenamentos e streams de dados. O AWS Glue consiste em um repositóriode metadados central, conhecido como Catálogo de dados do AWS Glue, um mecanismo de ETL quegera automaticamente um código Python ou Scala e um programador flexível que lida com resolução dedependências, monitoramento de trabalhos e novas tentativas. O AWS Glue não usa servidor e, portanto,não requer a configuração ou o gerenciamento de uma infraestrutura.

    O AWS Glue foi projetado para trabalhar com dados semiestruturados. Ele apresenta um componentechamado quadro dinâmico, que pode ser usado em seus scripts de ETL. Um quadro dinâmico ésemelhante a um nome de dados do Apache Spark, que é uma abstração de dados usada para organizardados em linhas e colunas, exceto que cada registro é autodescritivo, portanto, nenhum esquema énecessário inicialmente. Com quadros dinâmicos, obtenha flexibilidade de esquema e um conjunto detransformações avançadas especificamente projetadas para quadros dinâmicos. Você pode converterentre quadros dinâmicos e dataframes do Spark, para que possa aproveitar as transformações do AWSGlue e do Spark a fim de realizar os tipos de análise desejados.

    É possível usar o console do AWS Glue para descobrir dados, transformá-los e disponibilizá-los parapesquisas e consultas. O console chama os serviços subjacentes de modo a orquestrar o trabalhonecessário para transformar seus dados. Você também pode usar operações da AWS Glue API parainteragir com os serviços do AWS Glue. Faça a edição, depuração e teste do seu código de ETL Python ouScala Apache Spark usando um ambiente de desenvolvimento familiar.

    Para obter informações sobre a definição de preços, consulte Definição de preço do AWS Glue.

    Quando devo usar o AWS Glue?Você pode usar o AWS Glue para organizar, limpar, validar e formatar dados para armazenamentoem um data warehouse ou data lake. Você pode transformar e mover dados da Nuvem AWS no seuarmazenamento de dados. Também é possível carregar dados de fontes estáticas ou de streamingdiferentes em seu data warehouse ou data lake para geração de relatórios e análises regulares. Aoarmazenar dados em um data warehouse ou data lake, integre informações de diferentes partes do seunegócio e forneça uma fonte comum de dados para a tomada de decisões.

    O AWS Glue simplifica muitas tarefas quando você cria um data warehouse ou data lake:

    • Descobre e cataloga metadados sobre seus armazenamentos de dados em um catálogo central. Vocêpode processar dados semiestruturados, como clickstream ou logs de processos.

    • Preenche o Catálogo de dados do AWS Glue com definições de tabela de programas de crawleragendados. Os crawlers chamam a lógica do classificador para inferir o esquema, o formato e os tiposde dados dos seus dados. Esses metadados são armazenados como tabelas no Catálogo de dados doAWS Glue e usados no processo de autoria dos seus trabalhos de ETL.

    • Gera scripts de ETL para transformação, nivelamento e enriquecimento dos seus dados, da fonte para odestino.

    • Detecta alterações de esquema e faz ajustes de acordo com as suas preferências.• Aciona seus trabalhos de ETL com base em uma programação ou um evento. Você pode iniciar os

    trabalhos automaticamente a fim de mover seus dados para seu data warehouse ou data lake. Osgatilhos podem ser usados para criar um fluxo de dependência entre os trabalhos.

    • Reúne métricas de tempo de execução para monitorar as atividades do seu data warehouse ou datalake.

    1

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

  • AWS Glue Guia do desenvolvedorQuando devo usar o AWS Glue?

    • Manipula automaticamente erros e novas tentativas.• Escala recursos, conforme necessário, para executar seus trabalhos.

    Você pode usar o AWS Glue ao executar consultas sem servidor no seu data lake do Amazon S3. O AWSGlue pode catalogar seus dados do Amazon Simple Storage Service (Amazon S3), disponibilizando-ospara consultas com o Amazon Athena e o Amazon Redshift Spectrum. Com crawlers, seus metadadospermanecem em sincronia com os dados subjacentes. O Athena e o Redshift Spectrum podem consultardiretamente seus dados do Amazon S3 usando o Catálogo de dados do AWS Glue. Com o AWS Glue,você acessa e analisa dados por meio de uma interface unificada sem precisar carregá-los em vários silosde dados.

    Você pode criar pipelines de ETL orientados por eventos com o AWS Glue. Você poderá executar seustrabalhos de ETL assim que novos dados estiverem disponíveis no Amazon S3. Para isso, basta invocarseus trabalhos de ETL do AWS Glue usando uma função do AWS Lambda. Também é possível registraresse novo conjunto de dados no Catálogo de dados do AWS Glue como parte de trabalhos de ETL.

    Você pode usar o AWS Glue para entender seus ativos de dados. Você pode armazenar seus dadospor meio dos diversos serviços da AWS e ainda manter uma exibição unificada deles usando o Catálogode dados do AWS Glue. Visualize o Data Catalog para pesquisar rapidamente e descobrir os conjuntosde dados que você possui, além de manter os metadados relevantes em um repositório central. O DataCatalog também serve como uma substituição inicial do Apache Hive Metastore.

    2

  • AWS Glue Guia do desenvolvedor

    AWS Glue: como ele funcionaO AWS Glue usa outros serviços da AWS para orquestrar seus trabalhos de ETL (extração, transformaçãoe carregamento) para criar data warehouses e data lakes e gerar streams de saída. O AWS Glue chamaoperações de API para transformar seus dados, criar logs de tempo de execução, armazenar a lógica dotrabalho e criar notificações para ajudar você a monitorar as execuções de trabalhos. O console do AWSGlue conecta esses serviços em um aplicativo gerenciado, para que você possa se concentrar na criação eno monitoramento do seu trabalho de ETL. O console executa operações de desenvolvimento de trabalhose administrativas em seu nome. Você fornece credenciais e outras propriedades para que o AWS Glueacesse suas fontes de dados e grave nos destinos de dados.

    O AWS Glue provisiona e gerenciar os recursos necessários para executar sua carga de trabalho. Nãoé necessário criar a infraestrutura para uma ferramenta de ETL porque o AWS Glue faz isso por você.Quando recursos são necessários, o AWS Glue usa uma instância do grupo de instâncias para executarsua carga de trabalho e reduzir o tempo de inicialização.

    Com o AWS Glue, você cria trabalhos usando definições de tabela no seu Data Catalog. Os trabalhosconsistem em scripts com a lógica de programação que executa a transformação. Você usa gatilhos parainiciar trabalhos em uma programação ou como resultado de um evento especificado. Você determinaonde seus dados de destino residirão e quais dados de origem que preencherão seu destino. Com suaentrada, o AWS Glue gera o código necessário para transformar seus dados de origem em dados dedestino. Você também pode fornecer scripts no console ou na API do AWS Glue para processamento dosseus dados.

    Fontes de dados

    O AWS Glue é compatível com as seguintes fontes de dados:

    • Armazenamentos de dados• Amazon S3• Amazon Relational Database Service (Amazon RDS)• Bancos de dados acessíveis a JDBC de terceiros• Amazon DynamoDB

    • Streams de dados• Amazon Kinesis Data Streams• Apache Kafka

    Destinos de dados

    O AWS Glue oferece suporte aos seguintes tipos de dados:

    • Armazenamentos de dados• Amazon S3• Amazon Relational Database Service (Amazon RDS)• Bancos de dados acessíveis a JDBC de terceiros

    O AWS Glue está disponível em diversas regiões da AWS. Para obter mais informações, consulteEndpoints e regiões da AWS na Referência geral do Amazon Web Services.

    3

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

  • AWS Glue Guia do desenvolvedorTrabalhos de ETL sem servidor executados em isolamento

    Tópicos• Trabalhos de ETL sem servidor executados em isolamento (p. 4)• Conceitos do AWS Glue (p. 4)• AWS Glue Components (p. 7)• Converter esquemas semiestruturados em esquemas relacionais (p. 9)

    Trabalhos de ETL sem servidor executados emisolamento

    O AWS Glue executa seus trabalhos de ETL em um ambiente sem servidor Apache Spark. O AWS Glueexecuta esses trabalhos em recursos virtuais que ele provisiona e gerencia na sua própria conta deserviço.

    O AWS Glue é projetado para fazer o seguinte:

    • Diferenciar dados de clientes.• Proteger os dados do cliente em trânsito e em repouso.• Acessar os dados do cliente apenas quando necessário em resposta às solicitações deles, usando

    credenciais temporárias com escopo ou com o consentimento do cliente para funções do IAM na contadeles.

    Durante o provisionamento de um trabalho de ETL, você fornece fontes de dados de entrada e destinosde dados de saída na sua nuvem virtual privada (VPC). Além disso, você fornece a função do IAM, o ID daVPC, o ID da sub-rede e o grupo de segurança necessários para acessar fontes de dados e destinos dedados. Para cada tupla (ID da conta do cliente, função do IAM, ID da sub-rede e grupo de segurança), oAWS Glue cria um novo ambiente Spark isolado na rede e um nível de gerenciamento de todos os outrosambientes Spark dentro da conta de serviço do AWS Glue.

    O AWS Glue cria interfaces de rede elástica na sua sub-rede usando endereços IP privados. Os trabalhosSpark usam essas interfaces de rede elástica para acessar suas fontes de dados e seus destinos dedados. O tráfego de entrada e saída e no ambiente Spark é regido por suas políticas da VPC e rede comuma exceção: as chamadas feitas para as bibliotecas do AWS Glue podem transmitir tráfego para asoperações da API do AWS Glue por meio da VPC do AWS Glue. Todas as chamadas de API do AWSGlue são registradas. Dessa forma, os proprietários de dados podem auditar o acesso da API habilitando oAWS CloudTrail, que fornece logs de auditoria à sua conta.

    Os ambientes Spark gerenciados do AWS Glue que executam seus trabalhos de ETL são protegidos comas mesmas práticas de segurança seguidas por outros serviços da AWS. Essas práticas estão listadas naseção Acesso da AWS do whitepaper Introdução aos processos de segurança da AWS.

    Conceitos do AWS GlueO diagrama a seguir mostra a arquitetura de um ambiente do AWS Glue.

    4

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

  • AWS Glue Guia do desenvolvedorConceitos

    Você define os trabalhos no AWS Glue para atender aos requisitos de extração, transformação ecarregamento (ETL) de dados de uma fonte de dados para um destino de dados. Você pode realizar asseguintes ações:

    • Para fontes de armazenamento de dados, defina um crawler para preencher seu Catálogo de dadosdo AWS Glue com definições da tabela de metadados. Apontar seu crawler para um armazenamentode dados de modo que ele crie definições de tabela no Data Catalog. Para fontes de streaming, definamanualmente as tabelas do Data Catalog e especifique propriedades de stream de dados.

    Além das definições de tabela, o Catálogo de dados do AWS Glue contém outros metadadosnecessários para definir trabalhos de ETL. Usar esses metadados ao definir um trabalho detransformação dos seus dados.

    • O AWS Glue pode gerar um script para transformar seus dados. Se preferir, você pode fornecer o scriptno console ou na API do AWS Glue.

    • É possível executar trabalhos sob demanda ou configurá-los para iniciar quando um determinado gatilhofor acionado. Os gatilhos podem ser programações ou eventos baseados em tempo.

    Quando seu trabalho é executado, um script extrai os dados da sua fonte de dados, transforma essesdados e os carrega no seu destino de dados. O script é executado em um ambiente do Apache Spark noAWS Glue.

    Important

    As tabelas e os bancos de dados contidos no AWS Glue são objetos no Catálogo de dados doAWS Glue. Eles contêm metadados;, e não dados de um armazenamento físico.

    5

  • AWS Glue Guia do desenvolvedorTerminologia do AWS Glue

    Dados baseados em texto, como CSVs, devem ser codificados em UTF-8 para que o AWS Glueprocesse-os com êxito. Para obter mais informações, consulte UTF-8 na Wikipédia.

    Terminologia do AWS GlueO AWS Glue depende da interação de vários componentes para criar e gerenciar o fluxo de trabalho deextração, transferência e carga (ETL).

    Catálogo de dados do AWS GlueO armazenamento persistente de metadados no AWS Glue. Ele contém definições de tabela, definições detrabalho e outras informações de controle para o gerenciamento do ambiente do AWS Glue. Cada conta daAWS tem um Catálogo de dados do AWS Glue por região.

    ClassificadorDetermina o esquema dos seus dados. O AWS Glue fornece classificadores para tipos de arquivo comuns,como CSV, JSON, XML, AVRO e outros. Ele também fornece classificadores para sistemas comuns degerenciamento do banco de dados relacional usando uma conexão JDBC. Você pode escrever seu próprioclassificador usando um padrão grok ou especificando uma linha de tag em um documento XML.

    ConexãoUm objeto do Data Catalog que contém as propriedades necessárias para se conectar a umarmazenamento de dados específico.

    CrawlerUm programa que se conecta a um armazenamento de dados (origem ou destino), passa por uma listaprioritária de classificadores para determinar o esquema dos dados e cria tabelas de metadados noCatálogo de dados do AWS Glue.

    Banco de dadosUm conjunto de definições da tabela associada do Data Catalog organizadas em um grupo lógico.

    Datastore, fonte de dados, destino de dadosUm datastore é um repositório para armazenar seus dados persistentemente. Os exemplos incluembuckets do Amazon S3 e bancos de dados relacionais. Uma fonte de dados é um datastore que é usadocomo entrada para um processo ou transformação. Um destino de dados é um datastore no qual umprocesso ou transformação grava.

    Endpoint de desenvolvimentoUm ambiente que pode ser usado para desenvolver e testar seus scripts de ETL do AWS Glue.

    Quadro dinâmicoUma tabela distribuída que oferece suporte a dados aninhados, como estruturas e matrizes. Cadaregistro é autodescritivo, projetado para flexibilidade de esquema com dados semiestruturados. Cada

    6

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

  • AWS Glue Guia do desenvolvedorComponents

    registro contém os dados e o esquema que descreve esses dados. Você pode usar quadros dinâmicose dataframes do Apache Spark em seus scripts de ETL, bem como converter entre eles. Os quadrosdinâmicos fornecem um conjunto de transformações avançadas para limpeza de dados e ETL.

    TrabalhoA lógica de negócios que é necessária para executar o trabalho de ETL. Ela é composta por um script detransformação, fonte de dados e destinos de dados. As execuções de trabalho são iniciadas por gatilhosque podem ser programados ou acionados por eventos.

    Servidor de notebookUm ambiente baseado na web, que você pode usar para executar suas instruções PySpark. PySpark é umdialeto Python para programação de ETL. Para obter mais informações, consulte Apache Zeppelin. Vocêpode configurar um servidor de notebook em um endpoint de desenvolvimento para executar instruçõesPySpark com as extensões do AWS Glue.

    ScriptCódigo que extrai dados de origens, transforma esses dados e os carrega em destinos. O AWS Glue gerascripts PySpark ou Scala.

    TabelaA definição de metadados que representa seus dados. Não importa se os seus dados estão em um arquivodo Amazon Simple Storage Service (Amazon S3), uma tabela do Amazon Relational Database Service(Amazon RDS) ou em outro conjunto de dados, uma tabela definirá o esquema dos seus dados. Umatabela no Catálogo de dados do AWS Glue consiste em nomes de colunas, definições de tipos de dados,informações de partição e outros metadados relacionados a um conjunto de dados de base. O esquemade dados é representado na sua definição da tabela do AWS Glue. Os dados reais permanecem no seuarmazenamento de dados original, em um arquivo ou uma tabela de banco de dados relacional. O AWSGlue cataloga seus arquivos e tabelas de banco de dados relacional no Catálogo de dados do AWS Glue.Eles são usados como fontes e destinos quando você cria um trabalho de ETL.

    TransformaçãoA lógica de código que é usada para manipular seus dados em um formato diferente.

    GatilhoInicia um trabalho de ETL. Os gatilhos podem ser definidos com base em um horário/evento programado.

    AWS Glue ComponentsO AWS Glue fornece um console e operações de API para configurar e gerenciar sua carga de trabalhode extração, transformação e carregamento (ETL). Você pode usar operações de API por meio de váriosSDKs específicos de linguagem e da AWS Command Line Interface (AWS CLI). Para obter informaçõessobre como usar a AWS CLI, consulte AWS CLI Command Reference.

    O AWS Glue usa o Catálogo de dados do AWS Glue para armazenar metadados relacionado às fontes dedados, transformações e destinos. O Data Catalog é uma substituição inicial do Apache Hive Metastore.O AWS Glue Jobs system fornece uma infraestrutura gerenciada para definir, programar e executar

    7

    http://zeppelin.apache.org/https://docs.aws.amazon.com/cli/latest/reference/

  • AWS Glue Guia do desenvolvedorAWS Glue Console

    operações de ETL nos seus dados. Para obter mais informações sobre o recurso de API do AWS Glue,consulte API do AWS Glue (p. 509).

    AWS Glue ConsoleO console do AWS Glue é usado para definir e orquestrar seu fluxo de trabalho de ETL. O console chamavárias operações de API no Catálogo de dados do AWS Glue e no AWS Glue Jobs system para executaras seguintes tarefas:

    • Define AWS Glue objects such as jobs, tables, crawlers, and connections.• Schedule when crawlers run.• Define events or schedules for job triggers.• Search and filter lists of AWS Glue objects.• Edit transformation scripts.

    Catálogo de dados do AWS GlueO Catálogo de dados do AWS Glue é seu armazenamento persistente de metadados. É um serviçogerenciado que permite armazenar, anotar e compartilhar metadados na nuvem da AWS da mesmamaneira que você faria em uma metastore do Apache Hive.

    Cada conta da AWS tem um Catálogo de dados do AWS Glue por região da AWS. Ele fornece umrepositório uniforme no qual sistemas diferentes podem armazenar e encontrar metadados paraacompanhar dados em silos de dados, além de usar esses metadados para consultar e transformar osdados.

    Você pode usar as políticas do AWS Identity and Access Management (IAM) para controlar o acessoàs fontes de dados gerenciadas pelo Catálogo de dados do AWS Glue. Essas políticas permitem quediferentes grupos na sua empresa publiquem dados com segurança na organização como um todo e, aomesmo tempo, proteja informações confidenciais. claramente e de forma consistente As políticas do IAMpermitem que você defina quais usuários têm acesso a quais dados, independentemente do seu local.

    O Data Catalog também fornece capacidades abrangentes de auditoria e governança, com controlode mudança de esquemas e controlos de acesso a dados. Pode auditar alterações nos esquemas dedados. Isso ajuda a garantir que os dados não sejam modificados inadequadamente ou compartilhadosinadvertidamente.

    Para obter informações sobre como usar o Catálogo de dados do AWS Glue, consulte Preenchendo oCatálogo de dados do AWS Glue (p. 110). Para obter informações sobre como programar usando a APIdo Data Catalog, consulte API do Catalog (p. 525).

    Os seguintes são outros AWS serviços e projetos de código aberto que utilizam o Catálogo de dados doAWS Glue:

    • AWS Lake Formation – for more information, see What Is AWS Lake Formation? in the Guia dodesenvolvedor do AWS Lake Formation.

    • Amazon Athena – for more information, see Understanding Tables, Databases, and the Data Catalog inthe Guia do usuário do Amazon Athena.

    • Amazon Redshift Spectrum – for more information, see Using Amazon Redshift Spectrum to QueryExternal Data in the Amazon Redshift Database Developer Guide.

    • Amazon EMR – for more information, see Use Resource-Based Policies for Amazon EMR Access toAWS Glue Data Catalog in the Guia de gerenciamento do Amazon EMR.

    • Catálogo de dados do AWS Glue Client for Apache Hive Metastore – for more information about thisGitHub project, see AWS Glue Data Catalog Client for Apache Hive Metastore.

    8

    https://docs.aws.amazon.com/lake-formation/latest/dg/what-is-lake-formation.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.htmlhttps://github.com/awslabs/aws-glue-data-catalog-client-for-apache-hive-metastore

  • AWS Glue Guia do desenvolvedorAWS Glue Crawlers and Classifiers

    AWS Glue Crawlers and ClassifiersCom o AWS Glue, você também pode configurar os crawlers capazes de verificar dados em todos ostipos de repositórios, classificá-los, extrair informações de esquema deles e armazenar os metadadosautomaticamente no Catálogo de dados do AWS Glue. A partir daí, eles poderão ser usados para orientaroperações de ETL.

    Para obter mais informações sobre como configurar crawlers e classificadores, consulte Definircrawlers (p. 132). Para obter mais informações sobre como programar crawlers e classificadores usandoa API do AWS Glue, consulte Crawlers e classificadores da API (p. 574).

    AWS Glue ETL OperationsAo usar os metadados no Data Catalog, o AWS Glue pode gerar automaticamente os scripts Scala ouPySpark (API do Python para Apache Spark) com extensões do AWS Glue que podem ser usadas emodificadas para executar várias operações de ETL. Por exemplo, você pode extrair, limpar e transformardados brutos e, em seguida, armazenar o resultado em um repositório diferente onde ele poderá serconsultado e analisado. Esse script pode converter um arquivo CSV em um formulário relacional e salvá-lono Amazon Redshift.

    Para obter mais informações sobre como usar os recursos de ETL do AWS Glue, consulte Programarscripts de ETL (p. 333).

    Streaming ETL in AWS GlueAWS Glue permite-lhe realizar operações ETL em streaming de dados utilizando trabalhos contínuos.AWS Glue O streaming ETL baseia-se no motor de streaming estruturado Apache Spark e pode ingerirfluxos de Amazon Kinesis Data Streams e Apache Kafka usando Amazon Managed Streaming for ApacheKafka. O ETL de streaming pode limpar e transformar dados de streaming e carregá-los no Amazon S3ou em armazenamentos de dados JDBC. Use o ETL de streaming no AWS Glue para processar dados deeventos, como streams de IoT, streams de cliques e logs de rede.

    Para obter mais informações, consulte the section called “Incluir trabalhos de ETL de streaming” (p. 196).

    The AWS Glue Jobs SystemO AWS Glue Jobs system fornece infraestrutura gerenciada para orquestrar seu fluxo de trabalho de ETL.Você pode criar trabalhos no AWS Glue que automatizam os scripts usados para extrair, transformar etransferir dados para diferentes locais. Os trabalhos podem ser programados e encadeados, ou podem seracionados por eventos, como a chegada de novos dados.

    Para obter mais informações sobre como usar a AWS Glue Jobs system, consulte Executar e monitoraro AWS Glue (p. 252). Para obter informações sobre como programar usando a API do AWS Glue Jobssystem, consulte API de trabalhos (p. 602).

    Converter esquemas semiestruturados emesquemas relacionais

    É comum querer converter dados semiestruturados em tabelas relacionais. Conceitualmente, vocêestá nivelando um esquema hierárquico para um esquema relacional. O AWS Glue pode realizar essaconversão para você rapidamente.

    9

  • AWS Glue Guia do desenvolvedorConverter esquemas semiestruturados

    em esquemas relacionais

    Os dados semiestruturados normalmente contêm marcação para identificar entidades nos dados. Elepode ter estruturas de dados aninhadas sem um esquema fixo. Para obter mais informações sobre dadossemiestruturados, consulte Dados semiestruturados na Wikipédia.

    Os dados relacionais são representados por tabelas que consistem em linhas e colunas. As relações entretabelas podem ser representadas por uma relação de chave primária (PK) para chave externa (FK). Paraobter mais informações, consulte Banco de dados relacional na Wikipédia.

    O AWS Glue usa crawlers para inferir esquemas para dados semiestruturados. Em seguida, eletransforma os dados em um esquema relacional usando um trabalho de ETL (extração, transformaçãoe carregamento). Por exemplo, convém analisar dados JSON desde os arquivos de origem do AmazonSimple Storage Service (Amazon S3) até as tabelas do Amazon Relational Database Service (AmazonRDS). Saber como o AWS Glue lida com as diferenças entre esquemas pode ajudar você a entender oprocesso de transformação.

    Este diagrama mostra como o AWS Glue transforma um esquema semiestruturado em um esquemarelacional.

    O diagrama ilustra o seguinte:

    • O valor único A converte-se diretamente em uma coluna relacional.• O par de valores B1 e B2 se convertem em duas colunas relacionais.• A estrutura C, com X e Y filhos, converte-se em duas colunas relacionais.• A matriz D[] se converte em uma coluna relacional com uma chave externa (FK) que aponta para outra

    tabela relacional. Junto com uma chave primária (PK), a segunda tabela relacional apresenta colunasque contêm o deslocamento e o valor dos itens na matriz.

    10

    https://en.wikipedia.org/wiki/Semi-structured_datahttps://en.wikipedia.org/wiki/Relational_database

  • AWS Glue Guia do desenvolvedorConfigurar permissões do IAM para o AWS Glue

    Conceitos básicos do uso do AWSGlue

    As seções a seguir fornecem uma visão geral e orientações sobre como configurar e usar o AWS Glue.Para obter informações sobre conceitos e componentes do AWS Glue, consulte AWS Glue: como elefunciona (p. 3).

    Tópicos• Configurar permissões do IAM para o AWS Glue (p. 11)• Configuração do DNS na sua VPC (p. 31)• Configurar seu ambiente para acessar os armazenamentos de dados (p. 32)• Configurar seu ambiente para endpoints de desenvolvimento (p. 37)• Configurar a criptografia no AWS Glue (p. 39)• Visão geral do fluxo de trabalho do console do AWS Glue (p. 42)

    Configurar permissões do IAM para o AWS GlueVocê usa o AWS Identity and Access Management (IAM) para definir políticas e funções necessárias paraacessar os recursos usados pelo AWS Glue. As etapas a seguir apresentam as permissões básicas deque você precisa para configurar seu ambiente. Dependendo das necessidades da sua empresa, pode sernecessário adicionar ou reduzir o acesso aos seus recursos.

    1. Criar uma política do IAM para o serviço do AWS Glue (p. 11): crie uma política de serviço queconceda acesso aos recursos do AWS Glue.

    2. Criar uma função do IAM para AWS Glue (p. 15): crie uma função do IAM e anexe a política deserviço do AWS Glue e uma política para os seus recursos do Amazon Simple Storage Service(Amazon S3) usados pelo AWS Glue.

    3. Anexar uma política a usuários do IAM que acessam o AWS Glue (p. 16): anexe políticas a qualquerusuário do IAM que fizer login no console do AWS Glue.

    4. Criar uma política do IAM para notebooks (p. 24): crie uma política de servidor de notebook a serusada na criação de servidores de notebook em endpoints de desenvolvimento.

    5. Criar uma função do IAM para notebooks (p. 27): crie uma função do IAM e anexe a política doservidor do notebook.

    6. Criar uma política do IAM para notebooks do Amazon SageMaker (p. 28): crie uma política do IAMpara uso ao criar notebooks do Amazon SageMaker em endpoints de desenvolvimento.

    7. Criar uma função do IAM para notebooks do Amazon SageMaker Notebooks (p. 30): Crie umafunção do IAM e anexe a política para conceder permissões ao criar notebooks do Amazon SageMakerem endpoints de desenvolvimento.

    Etapa 1: criar uma política do IAM para o serviço doAWS GluePara qualquer operação que acesse dados em outro recurso da AWS, como o acesso aos seus objetos noAmazon S3, o AWS Glue precisa de permissão para acessar o recurso em seu nome. Você fornece essaspermissões usando o AWS Identity and Access Management (IAM).

    11

  • AWS Glue Guia do desenvolvedorEtapa 1: criar uma política do

    IAM para o serviço do AWS Glue

    Note

    Você pode ignorar esta etapa se usar a política gerenciada da AWS AWSGlueServiceRole.

    Nesta etapa, você cria uma política semelhante a AWSGlueServiceRole. Você pode encontrar a versãomais atual do AWSGlueServiceRole no console do IAM.

    Para criar uma política do IAM para AWS Glue

    Esta política concede permissão a algumas ações do Amazon S3 para o gerenciamento dos recursos nasua conta que são exigidos pelo AWS Glue quando ele assume uma função usando a política. Alguns dosrecursos especificados nessa política referem-se a nomes padrão que são usados pelo AWS Glue parabuckets do Amazon S3, scripts de ETL do Amazon S3, CloudWatch Logs e recursos do Amazon EC2. Porquestões de simplicidade, o AWS Glue grava alguns objetos do Amazon S3 em buckets da sua conta comprefixo aws-glue-* por padrão.

    1. Faça login no Console de gerenciamento da AWS e abra o console da IAM em https://console.aws.amazon.com/iam/.

    2. No painel de navegação à esquerda, escolha Policies.3. Selecione Create Policy (Criar política).4. Na tela Create Policy, navegue até uma guia para editar o JSON. Crie um documento de política com

    as seguintes instruções JSON e escolha Review policy.Note

    Adicione todas as permissões necessárias para os recursos do Amazon S3. Convémdefinir o escopo da seção de recursos da sua política de acesso somente para os recursosnecessários.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:*", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:GetBucketAcl", "ec2:DescribeVpcEndpoints", "ec2:DescribeRouteTables",