Prepare datos a escala en Amazon SageMaker Studio mediante sesiones interactivas de AWS Glue sin servidor PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Prepare datos a escala en Amazon SageMaker Studio mediante sesiones interactivas de AWS Glue sin servidor

Estudio Amazon SageMaker es el primer entorno de desarrollo totalmente integrado (IDE) para el aprendizaje automático (ML). Proporciona una única interfaz visual basada en la web donde puede realizar todos los pasos de desarrollo de ML, incluida la preparación de datos y la creación, capacitación e implementación de modelos.

Pegamento AWS es un servicio de integración de datos sin servidor que facilita descubrir, preparar y combinar datos para análisis, aprendizaje automático y desarrollo de aplicaciones. AWS Glue le permite recopilar, transformar, limpiar y preparar datos sin problemas para almacenarlos en sus lagos de datos y canalizaciones de datos mediante una variedad de capacidades, que incluyen transformaciones incorporadas.

Los ingenieros de datos y los científicos de datos ahora pueden preparar datos a escala de forma interactiva mediante la integración integrada de su portátil Studio con sesiones de Spark sin servidor administradas por AWS Glue. Comenzando en segundos y deteniendo automáticamente el cómputo cuando está inactivo, Sesiones interactivas de AWS Glue proporcionar un backend Spark sin servidor, altamente escalable y bajo demanda para lograr una preparación de datos escalable dentro de Studio. Los beneficios notables de usar sesiones interactivas de AWS Glue en notebooks de Studio incluyen:

  • No hay clústeres para aprovisionar o administrar
  • No hay clústeres inactivos por los que pagar
  • No se requiere configuración inicial
  • Sin contención de recursos para el mismo entorno de desarrollo
  • Exactamente el mismo tiempo de ejecución y plataforma de Spark sin servidor que los trabajos de extracción, transformación y carga (ETL) de AWS Glue

En esta publicación, le mostramos cómo preparar datos a escala en Studio mediante sesiones interactivas de AWS Glue sin servidor.

Resumen de la solución

Para implementar esta solución, complete los siguientes pasos de alto nivel:

  1. Actualice su Gestión de identidades y accesos de AWS (IAM) permisos de función.
  2. Inicie un kernel de sesión interactivo de AWS Glue.
  3. Configura tu sesión interactiva.
  4. Personalice su sesión interactiva y ejecute una carga de trabajo de preparación de datos escalable.

Actualice sus permisos de rol de IAM

Para comenzar, debe actualizar el rol de ejecución de IAM de su usuario de Studio con los permisos necesarios. Para obtener instrucciones detalladas, consulte Permisos para sesiones interactivas de Glue en SageMaker Studio.

Primero agrega las políticas administradas a su rol de ejecución:

  1. En la consola de IAM, elija Roles en el panel de navegación.
  2. Busque la función de ejecución de Studio que usará y elija el nombre de la función para ir a la página de resumen de funciones.
  3. En Permisos pestaña, en la Agregar permisos menú, seleccione Adjuntar políticas.
  4. Seleccione las políticas administradas AmazonSageMakerFullAccess y AwsGlueSessionUserRestrictedServiceRole
  5. Elige Adjuntar políticas.
    La página de resumen muestra sus políticas administradas recién agregadas. Ahora agrega una política personalizada y la adjunta a su rol de ejecución.
  6. En Agregar permisos menú, seleccione Crear política en línea.
  7. En JSON pestaña, ingrese la siguiente política:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "*"
            }
        ]
    }

  8. Modifique la relación de confianza de su rol:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Inicie un kernel de sesión interactivo de AWS Glue

Si ya tiene usuarios existentes dentro de su dominio de Studio, es posible que necesite tenerlos apagar y reiniciar su servidor Jupyter para recoger las nuevas imágenes del kernel del portátil.

Al recargar, puede crear un nuevo cuaderno Studio y seleccione su núcleo preferido. El incorporado SparkAnalytics 1.0 La imagen ahora debería estar disponible, y puede elegir su kernel de AWS Glue preferido (Pegamento Scala Spark or Pegamento PySpark).

Configura tu sesión interactiva

Puede configurar fácilmente su sesión interactiva de AWS Glue con magias de celdas de notebook antes de la inicialización. Las magias son pequeños comandos con el prefijo % al comienzo de las celdas de Jupyter que proporcionan atajos para controlar el entorno. En las sesiones interactivas de AWS Glue, la magia se utiliza para todas las necesidades de configuración, incluidas las siguientes:

  • %región – La región de AWS en la que inicializar una sesión. El valor predeterminado es la región de estudio.
  • %iam_role – El ARN del rol de IAM para ejecutar su sesión. El valor predeterminado es el rol de ejecución de SageMaker del usuario.
  • % tipo_trabajador - El Tipo de trabajador de AWS Glue. El valor predeterminado es estándar.
  • %Numero de trabajadores – El número de trabajadores que se asignan cuando se ejecuta un trabajo. El valor predeterminado es cinco.
  • %tiempo de inactividad – El número de minutos de inactividad después de los cuales se agotará el tiempo de espera de una sesión. El valor predeterminado es 2,880 minutos.
  • % módulos_adicionales_python – Una lista separada por comas de módulos de Python adicionales para incluir en su clúster. Esto puede ser de PyPi o Servicio de almacenamiento simple de Amazon (Amazon S3).
  • %%configurar – Un diccionario con formato JSON que consta de Parámetros de configuración específicos de AWS Glue para una sesión.

Para obtener una lista completa de los parámetros mágicos configurables para este kernel, utilice el %help magia dentro de su cuaderno.

Su sesión interactiva de AWS Glue no comenzará hasta que se ejecute la primera celda no mágica.

Personalice su sesión interactiva y ejecute una carga de trabajo de preparación de datos

Como ejemplo, las siguientes celdas del cuaderno muestran cómo puede personalizar su sesión interactiva de AWS Glue y ejecutar una carga de trabajo de preparación de datos escalable. En este ejemplo, realizamos una tarea ETL para agregar datos de calidad del aire para una ciudad determinada, agrupados por hora del día.

Configuramos nuestra sesión para guardar nuestros registros de Spark en un depósito S3 para la depuración en tiempo real, que veremos más adelante en esta publicación. Asegúrese de que el iam_role que está ejecutando su sesión de AWS Glue tiene acceso de escritura al depósito de 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/"
}

A continuación, cargamos nuestro conjunto de datos directamente desde Amazon S3. Alternativamente, podrías cargar datos usando su AWS Glue Data Catalog.

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}/*")

Finalmente, escribimos nuestro conjunto de datos transformado en una ubicación de depósito de salida 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")

Una vez que haya completado su trabajo, puede finalizar su sesión interactiva de AWS Glue inmediatamente simplemente cerrando el kernel del cuaderno de Studio, o puede usar el %stop_session magia.

Depuración y Spark UI

En el ejemplo anterior, especificamos el ”--enable-spark-ui”: “true” argumento junto con un "--spark-event-logs-path": location. Esto configura nuestra sesión de AWS Glue para registrar los registros de las sesiones, de modo que podamos utilizar una interfaz de usuario de Spark para monitorear y depurar nuestro trabajo de AWS Glue en tiempo real.

Para conocer el proceso para iniciar y leer esos registros de Spark, consulte Lanzamiento del servidor de historial de Spark. En la siguiente captura de pantalla, lanzamos un contenedor Docker local que tiene permiso para leer el depósito S3 que contiene nuestros registros. Opcionalmente, podría albergar un Nube informática elástica de Amazon (Amazon EC2) para hacer esto, como se describe en la documentación vinculada anterior.

Prepare datos a escala en Amazon SageMaker Studio mediante sesiones interactivas de AWS Glue sin servidor PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Precios

Cuando utiliza sesiones interactivas de AWS Glue en notebooks de Studio, se le cobra por separado el uso de recursos en las notebooks de AWS Glue y Studio.

AWS cobra por las sesiones interactivas de AWS Glue según el tiempo que la sesión está activa y la cantidad de unidades de procesamiento de datos (DPU) utilizadas. Se le cobra una tarifa por hora por la cantidad de DPU utilizadas para ejecutar sus cargas de trabajo, facturadas en incrementos de 1 segundo. Las sesiones interactivas de AWS Glue asignan un valor predeterminado de 5 DPU y requieren un mínimo de 2 DPU. También hay una duración mínima de facturación de 1 minuto para cada sesión interactiva. Para ver las tarifas de AWS Glue y los ejemplos de precios, o para calcular sus costos con la calculadora de precios de AWS, consulte Precios de AWS Glue.

Su notebook Studio se ejecuta en una instancia EC2 y se le cobra por el tipo de instancia que elija, según la duración del uso. Studio le asigna un tipo de instancia EC2 predeterminado de ml-t3-medium cuando selecciona el SparkAnalytics imagen y núcleo asociado. Puede cambiar el tipo de instancia de su cuaderno de Studio para adaptarlo a su carga de trabajo. Para obtener información sobre los precios de SageMaker Studio, consulte Precios de Amazon SageMaker.

Conclusión

La integración nativa de las notebooks de Studio con las sesiones interactivas de AWS Glue facilita la preparación de datos sin servidor sin problemas y escalables para científicos e ingenieros de datos. ¡Le animamos a que pruebe esta nueva funcionalidad en Studio!

See Preparar datos con sesiones interactivas de AWS Glue para obtener más información.


Sobre los autores

Sean MorganSean Morgan es arquitecto sénior de soluciones de aprendizaje automático en AWS. Tiene experiencia en los campos de investigación académica y de semiconductores, y utiliza su experiencia para ayudar a los clientes a alcanzar sus objetivos en AWS. En su tiempo libre, Sean es un colaborador/mantenedor activo de código abierto y es el líder del grupo de interés especial para TensorFlow Addons.

Prepare datos a escala en Amazon SageMaker Studio mediante sesiones interactivas de AWS Glue sin servidor PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Sumedha Swamy es gerente principal de productos en Amazon Web Services. Lidera el equipo de SageMaker Studio para integrarlo en el IDE elegido para flujos de trabajo interactivos de ingeniería de datos y ciencia de datos. Ha pasado los últimos 15 años creando productos empresariales y de consumo obsesionados con el cliente utilizando Machine Learning. En su tiempo libre le gusta fotografiar la asombrosa geología del suroeste de Estados Unidos.

Sello de tiempo:

Mas de Aprendizaje automático de AWS