Prepare dados em escala no Amazon SageMaker Studio usando sessões interativas sem servidor do AWS Glue PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Prepare dados em escala no Amazon SageMaker Studio usando sessões interativas do AWS Glue sem servidor

Estúdio Amazon SageMaker é o primeiro ambiente de desenvolvimento totalmente integrado (IDE) para aprendizado de máquina (ML). Ele fornece uma única interface visual baseada na Web, na qual você pode executar todas as etapas de desenvolvimento de ML, incluindo preparação de dados e construção, treinamento e implantação de modelos.

Cola AWS é um serviço de integração de dados sem servidor que facilita a descoberta, preparação e combinação de dados para análise, ML e desenvolvimento de aplicativos. O AWS Glue permite que você colete, transforme, limpe e prepare dados para armazenamento em data lakes e pipelines de dados de forma transparente usando diversos recursos, incluindo transformações embutidas.

Engenheiros de dados e cientistas de dados agora podem preparar dados interativamente em escala usando a integração integrada do seu notebook Studio com sessões do Spark sem servidor gerenciadas pelo AWS Glue. Iniciando em segundos e interrompendo automaticamente a computação quando ocioso, Sessões interativas do AWS Glue fornecer um back-end Spark sob demanda, altamente escalável e sem servidor para obter uma preparação de dados escalável no Studio. Os benefícios notáveis ​​do uso de sessões interativas do AWS Glue em notebooks Studio incluem:

  • Nenhum cluster para provisionar ou gerenciar
  • Nenhum cluster ocioso para pagar
  • Nenhuma configuração inicial necessária
  • Sem contenção de recursos para o mesmo ambiente de desenvolvimento
  • Exatamente o mesmo tempo de execução e plataforma do Spark sem servidor que os trabalhos de extração, transformação e carregamento (ETL) do AWS Glue

Nesta postagem, mostramos como preparar dados em escala no Studio usando sessões interativas do AWS Glue sem servidor.

Visão geral da solução

Para implementar esta solução, você conclui as seguintes etapas de alto nível:

  1. Atualize seu Gerenciamento de acesso e identidade da AWS (IAM) permissões de função.
  2. Inicie um kernel de sessão interativa do AWS Glue.
  3. Configure sua sessão interativa.
  4. Personalize sua sessão interativa e execute uma carga de trabalho de preparação de dados escalável.

Atualize suas permissões de função do IAM

Para começar, você precisa atualizar a função de execução do IAM do usuário do Studio com as permissões necessárias. Para instruções detalhadas, consulte Permissões para sessões interativas do Glue no SageMaker Studio.

Você primeiro adiciona as políticas gerenciadas à sua função de execução:

  1. No console IAM, escolha Setores no painel de navegação.
  2. Encontre a função de execução do Studio que você usará e escolha o nome da função para acessar a página de resumo da função.
  3. No Permissões guia, na Adicionar permissões menu, escolha Anexar políticas.
  4. Selecione as políticas gerenciadas AmazonSageMakerFullAccess e AwsGlueSessionUserRestrictedServiceRole
  5. Escolha Anexar políticas.
    A página de resumo mostra suas políticas gerenciadas recém-adicionadas. Agora você adiciona uma política personalizada e a anexa à sua função de execução.
  6. No Adicionar permissões menu, escolha Criar política em linha.
  7. No JSON guia, insira a seguinte política:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "*"
            }
        ]
    }

  8. Modifique a relação de confiança da sua função:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Iniciar um kernel de sessão interativa do AWS Glue

Se você já tem usuários existentes no seu domínio do Studio, talvez seja necessário tê-los desligue e reinicie o servidor Jupyter para pegar as novas imagens do kernel do notebook.

Ao recarregar, você pode criar um novo notebook Studio e selecione seu kernel preferido. O embutido SparkAnalytics 1.0 A imagem agora deve estar disponível e você pode escolher seu kernel do AWS Glue preferido (Cola Scala Spark or Cola PySpark).

Configure sua sessão interativa

Você pode configurar facilmente sua sessão interativa do AWS Glue com magias de célula de notebook antes da inicialização. Magics são pequenos comandos prefixados com % no início das células do Jupyter que fornecem atalhos para controlar o ambiente. Nas sessões interativas do AWS Glue, mágicas são usadas para todas as necessidades de configuração, incluindo:

  • %região – A região da AWS na qual inicializar uma sessão. O padrão é a Região do Studio.
  • %iam_role – O ARN da função do IAM com o qual executar sua sessão. O padrão é a função de execução do SageMaker do usuário.
  • %worker_type - A Tipo de trabalhador do AWS Glue. O padrão é padrão.
  • %número_de_trabalhadores – O número de trabalhadores que são alocados quando um trabalho é executado. O padrão é cinco.
  • %idle_timeout – O número de minutos de inatividade após os quais uma sessão expirará. O padrão é 2,880 minutos.
  • %additional_python_modules – Uma lista separada por vírgulas de módulos Python adicionais para incluir em seu cluster. Isso pode ser do PyPi ou Serviço de armazenamento simples da Amazon (Amazônia S3).
  • %% configurar – Um dicionário formatado em JSON que consiste em Parâmetros de configuração específicos do AWS Glue para uma sessão.

Para uma lista abrangente de parâmetros mágicos configuráveis ​​para este kernel, use o %help magia dentro do seu caderno.

Sua sessão interativa do AWS Glue não será iniciada até que a primeira célula não mágica seja executada.

Personalize sua sessão interativa e execute uma carga de trabalho de preparação de dados

Como exemplo, as células de notebook a seguir mostram como você pode personalizar sua sessão interativa do AWS Glue e executar uma carga de trabalho de preparação de dados escalável. Neste exemplo, realizamos uma tarefa de ETL para agregar dados de qualidade do ar para uma determinada cidade, agrupando por hora do dia.

Configuramos nossa sessão para salvar nossos logs do Spark em um bucket do S3 para depuração em tempo real, que veremos mais adiante nesta postagem. Certifique-se de que o iam_role que está executando sua sessão do AWS Glue tem acesso de gravação ao bucket S3 especificado.

%help

%session_id_prefix air-analysis-
%glue_version 3.0
%idle_timeout 60
%%configure
{
"--enable-spark-ui": "true",
"--spark-event-logs-path": "s3://<BUCKET>/gis-spark-logs/"
}

Em seguida, carregamos nosso conjunto de dados diretamente do Amazon S3. Alternativamente, você poderia carregar dados usando seu catálogo de dados do AWS Glue.

from pyspark.sql.functions import split, lower, hour
print(spark.version)
day_to_analyze = "2022-01-05"
df = spark.read.json(f"s3://openaq-fetches/realtime-gzipped/{day_to_analyze}/1641409725.ndjson.gz")
df_air = spark.read.schema(df.schema).json(f"s3://openaq-fetches/realtime-gzipped/{day_to_analyze}/*")

Por fim, gravamos nosso conjunto de dados transformado em um local de bucket de saída que definimos:

df_city = df_air.filter(lower((df_air.city)).contains('delhi')).filter(df_air.parameter == "no2").cache()
df_avg = df_city.withColumn("Hour", hour(df_city.date.utc)).groupBy("Hour").avg("value").withColumnRenamed("avg(value)", "no2_avg")
df_avg.sort("Hour").show()

# Examples of reading / writing to other data stores: 
# https://github.com/aws-samples/aws-glue-samples/tree/master/examples/notebooks

df_avg.write.parquet(f"s3://<BUCKET>/{day_to_analyze}.parquet")

Depois de concluir seu trabalho, você pode encerrar sua sessão interativa do AWS Glue imediatamente simplesmente desligando o kernel do notebook Studio ou pode usar o %stop_session magia.

Depuração e IU do Spark

No exemplo anterior, especificamos o ”--enable-spark-ui”: “true” argumento junto com um "--spark-event-logs-path": location. Isso configura nossa sessão do AWS Glue para registrar os logs das sessões para que possamos utilizar uma interface do usuário do Spark para monitorar e depurar nosso trabalho do AWS Glue em tempo real.

Para o processo de inicialização e leitura desses logs do Spark, consulte Iniciando o servidor de histórico do Spark. Na captura de tela a seguir, lançamos um contêiner do Docker local que tem permissão para ler o bucket do S3 que contém nossos logs. Opcionalmente, você pode hospedar um Amazon Elastic Compute Nuvem (Amazon EC2) para fazer isso, conforme descrito na documentação vinculada anterior.

Prepare dados em escala no Amazon SageMaker Studio usando sessões interativas sem servidor do AWS Glue PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Preços

Ao usar sessões interativas do AWS Glue em notebooks Studio, você é cobrado separadamente pelo uso de recursos em notebooks AWS Glue e Studio.

A AWS cobra pelas sessões interativas do AWS Glue com base em quanto tempo a sessão está ativa e no número de unidades de processamento de dados (DPUs) usadas. Você é cobrado por uma taxa horária pelo número de DPUs usados ​​para executar suas cargas de trabalho, cobrado em incrementos de 1 segundo. As sessões interativas do AWS Glue atribuem um padrão de 5 DPUs e exigem um mínimo de 2 DPUs. Há também uma duração mínima de cobrança de 1 minuto para cada sessão interativa. Para ver as taxas e exemplos de preços do AWS Glue ou para estimar seus custos usando a Calculadora de preços da AWS, consulte Preços do AWS Glue.

Seu notebook Studio é executado em uma instância do EC2 e você é cobrado pelo tipo de instância escolhido, com base na duração do uso. O Studio atribui a você um tipo de instância padrão do EC2 de ml-t3-medium quando você seleciona o SparkAnalytics imagem e kernel associado. Você pode alterar o tipo de instância do seu notebook Studio para se adequar à sua carga de trabalho. Para obter informações sobre os preços do SageMaker Studio, consulte Preços do Amazon SageMaker.

Conclusão

A integração nativa de notebooks Studio com sessões interativas do AWS Glue facilita a preparação de dados sem servidor perfeita e escalável para cientistas de dados e engenheiros de dados. Recomendamos que você experimente essa nova funcionalidade no Studio!

See Preparar dados usando sessões interativas do AWS Glue para obter mais informações.


Sobre os autores

Sean MorganSean Morgan é arquiteto de soluções de ML sênior na AWS. Ele tem experiência nas áreas de semicondutores e pesquisa acadêmica e usa sua experiência para ajudar os clientes a atingirem seus objetivos na AWS. Em seu tempo livre, Sean é um colaborador/mantenedor de código aberto ativo e é o líder do grupo de interesse especial para os complementos do TensorFlow.

Prepare dados em escala no Amazon SageMaker Studio usando sessões interativas sem servidor do AWS Glue PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Sumedha Swami é gerente de produto principal da Amazon Web Services. Ele lidera a equipe do SageMaker Studio para integrá-lo ao IDE de escolha para fluxos de trabalho interativos de ciência de dados e engenharia de dados. Ele passou os últimos 15 anos criando produtos para consumidores e empresas obcecados pelo cliente usando Machine Learning. Em seu tempo livre, ele gosta de fotografar a incrível geologia do sudoeste americano.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS