Exploración de tablas de almacenamiento de datos con aprendizaje automático y portátiles Amazon SageMaker

¿Es usted un científico de datos con tablas de almacenamiento de datos que le gustaría explorar en su entorno de aprendizaje automático (ML)?

Si es así, sigue leyendo. En esta publicación, te muestro cómo realizar un análisis exploratorio de grandes conjuntos de datos almacenados en tu almacén de datos y catalogados en  AWS Glue catálogo de datos de tu cuaderno  Amazon SageMaker .

Detallo cómo identificar y explorar un conjunto de datos en el almacén de datos corporativos de su computadora portátil Jupyter que se ejecuta en Amazon SageMaker. Demuestro cómo extraer la información interesante de Amazon Redshift en Amazon EMR y la transformo más allá. Luego, puede continuar analizando y visualizando sus datos en su cuaderno, todo en una experiencia perfecta.

Esta publicación se basa en las siguientes publicaciones anteriores; puede que le resulte útil revisarlas primero.

Descripción general de Amazon SageMaker

Amazon SageMaker es un servicio ML totalmente administrado. Con Amazon SageMaker los científicos y desarrolladores de datos pueden construir y entrenar rápida y fácilmente modelos ML, y luego implementarlos directamente en un entorno hospedado listo para la producción. Amazon SageMaker proporciona un entorno de creación de Jupyter integrado para que los científicos de datos realicen la exploración, el análisis y la creación de modelos iniciales de datos.

El desafío es localizar los conjuntos de datos de interés. Si los datos están en el almacén de datos, extraiga el subconjunto relevante de información y cárguelo en su cuaderno Jupyter para una exploración o modelado más detallado.

A medida que los conjuntos de datos individuales se vuelven más grandes y más numerosos, extraer todos los conjuntos de datos potencialmente interesantes, cargarlos en su cuaderno y fusionarlos deja de ser práctico y ralentiza la productividad.

Este tipo de combinación y exploración de datos puede llevar hasta el 80% del tiempo de un científico de datos. Aumentar la productividad aquí es fundamental para acelerar la finalización de sus proyectos de LD.

Un número cada vez mayor de empresas están utilizando Amazon Redshift como su almacén de datos. Amazon Redshift le permite ejecutar consultas analíticas complejas contra petabytes de datos estructurados, mediante la optimización sofisticada de consultas, el almacenamiento en columnas en discos locales de alto rendimiento y la ejecución masiva de consultas paralelas.

Estas capacidades lo convierten en un imán para el tipo de datos que también es de interés para los científicos de datos. Sin embargo, para realizar tareas de LD, los datos se deben extraer en una plataforma de ML para que los científicos de datos puedan operar en ella.

Las capacidades de Amazon Redshift se pueden usar para unir y filtrar los datos según sea necesario, y luego extraer solo los datos relevantes en la plataforma ML para la transformación específica de ML.

Con frecuencia, las grandes corporaciones también usan AWS Glue para administrar su lago de datos. AWS Glue es un servicio de ETL (extracción, transformación y carga) totalmente gestionado. Resulta simple y rentable categorizar sus datos, limpiarlos, enriquecerlos y moverlos de manera confiable entre varios almacenes de datos.

AWS Glue contiene un repositorio central de metadatos conocido como AWS Glue Data Catalog, que hace que los datos enriquecidos y categorizados en el lago de datos estén disponibles para búsquedas y consultas. Puede usar los metadatos en el Catálogo de datos para identificar los nombres, las ubicaciones, el contenido y las características de los conjuntos de datos de interés.

Incluso después de unir y filtrar los datos en Amazon Redshift, los datos restantes aún pueden ser demasiado grandes para su portátil. para almacenar y ejecutar operaciones de ML en. Operar en conjuntos de datos extremadamente grandes es una tarea para la cual Apache Spark en EMR es ideal.

Spark es un marco de computación de clúster con módulos incorporados que admiten análisis de una variedad de idiomas, incluyendo Python, Java, y Scala.

La chispa en la capacidad de EMR para escalar es una buena opción para los grandes conjuntos de datos que se encuentran con frecuencia en los lagos de datos corporativos.

Si los conjuntos de datos ya están definidos en su Catálogo de datos de pegamento de AWS, será aún más fácil acceder a ellos, al usar el Catálogo de datos como un Metastore externo de Apache Hive en EMR.

En Spark, puede realizar transformaciones complejas que van más allá de las capacidades de SQL. Eso lo convierte en una buena plataforma para seguir procesando o masajeando sus datos; por ejemplo, utilizando las capacidades completas de Python y Spark MLlib .

Al usar la configuración descrita en esta publicación, usa Amazon Redshift para unirse y filtrar los datos de origen. Luego, transforma iterativamente los conjuntos de datos resultantes reducidos (pero posiblemente aún grandes), utilizando EMR para el procesamiento de peso pesado.

Puede hacer esto mientras usa su notebook Amazon SageMaker para explorar y visualizar subconjuntos de los datos relevantes para la tarea en cuestión. Las diversas tareas (unir y filtrar; transformación compleja y visualización) se han agrupado en un servicio íntimamente adecuado para esa tarea.

Descripción general de la solución

La ​​primera sección de la solución recorre las consultas del Catálogo de datos de pegamento de AWS Para encontrar la base de datos de interés y revisar las tablas y sus definiciones.

Las declaraciones de la tabla identifican la ubicación de los datos, en este caso, Amazon Redshift. AWS Glue Data Catalog también proporciona la información necesaria para crear la cadena de conexión de Amazon Redshift para su uso en la recuperación de datos.

La segunda parte de la solución es leer los datos en EMR. Se aplica si el tamaño de los datos que está extrayendo de Amazon Redshift es lo suficientemente grande como para que leerlo directamente en su notebook ya no sea práctico. La potencia de un servicio de cómputo de clústeres, como EMR, proporciona la escalabilidad necesaria.

Si las siguientes afirmaciones son ciertas, existe una solución mucho más simple. Para obtener más información, consulte Amazon Redshift muestra de muestra de demostración provista con los ejemplos de Amazon SageMaker.

  • Conozca el grupo de Amazon Redshift que contiene los datos de interés.
  • Conoce la conexión de Amazon Redshift información.
  • Los datos que está extrayendo y explorando están a una escala adecuada para una conexión JDBC.

La solución se implementa utilizando cuatro servicios de AWS y algunos componentes de código abierto:

  • Un Amazon SageMaker instancia de notebook, que proporciona los IDE de notebooks Jupyter alojados de configuración cero para la exploración, limpieza y preprocesamiento de datos. Esta instancia de cuaderno se ejecuta:
    • Jupyter cuadernos
    • SparkMagic : un conjunto de herramientas para trabajar de manera interactiva con grupos de Chispas remotos a través del Livy El proyecto Spark en el [194590064] Magias para ejecutar interactivamente el código Spark en múltiples idiomas. Las magias son funciones predefinidas que ejecutan los comandos suministrados. El proyecto también incluye algunos núcleos que puedes usar para convertir Jupyter en un entorno Spark integrado.
  • Un EMR cluster ejecutando Apache Spark, y:
    • Apache Livy : un servicio que permite una fácil interacción con Spark en un clúster EMR a través de una interfaz REST. Livy permite el uso de Spark para aplicaciones web / móviles interactivas, en este caso, desde su computadora portátil Jupyter.
    • El AWS Glue Data Catalog que actúa como el depósito central de metadatos. Aquí se utiliza como Hive Metastore externo para aplicaciones de datos grandes que se ejecutan en EMR.
    • Amazon Redshift como su almacén de datos.
  • El grupo EMR con Spark lee desde Amazon Redshift usando un paquete provisto por Databricks, Redshift Data Source para Apache Spark .

En esta publicación, todos estos componentes interactúan como se muestra en la siguiente diagrama.

Puede acceder a los conjuntos de datos que viven en Amazon S3 y se define en el Catálogo de datos de pegamento de AWS con los siguientes pasos:

  1. Trabaja en su Jupyter SparkMagic notebook en Amazon SageMaker. Dentro del cuaderno, usted emite comandos al clúster EMR. Puede usar los comandos de PySpark, o puede usar la magia de SQL para emitir comandos de HiveQL.
  2. Los comandos para el clúster EMR son recibidos por Livy que se ejecuta en el clúster.
  3. Livy pasa el comandos a Spark, que también se ejecutan en el clúster EMR.
  4. Spark accede a su Hive Metastore para identificar la ubicación, el DDL y las propiedades del conjunto de datos catalogado. En este caso, la metastore de Hive se ha establecido en el Catálogo de datos.
  5. Usted define y ejecuta una función boto3 (get_redshift_data, que se proporciona a continuación) para recuperar la información de conexión del Catálogo de datos y emitir el comando a Amazon Redshift para leer la mesa. El paquete spark-redshift descarga la tabla en un archivo S3 temporal, luego lo carga en Spark.
  6. Después de realizar las manipulaciones deseadas en Spark, EMR devuelve los datos a su computadora portátil como un marco de datos para análisis y visualización adicionales.
En las secciones que siguen, realice estos pasos en un conjunto de muestras de tablas:
  1. Use la pila de AWS CloudFormation provista para crear la instancia de notebook Amazon SageMaker; Cluster EMR con Livy y Spark; y el driver Amazon Redshift. Especifique AWS Glue como la metáfora Hive del clúster; y seleccione un clúster de Amazon Redshift. La pila también configura una conexión de AWS Glue al clúster de Amazon Redshift y un rastreador para rastrear Amazon Redshift.
  2. Configure algunos datos de muestra en Amazon Redshift.
  3. Ejecute el rastreador de AWS Glue para acceder a Amazon Redshift y rellenar metadatos sobre las tablas que contiene en el Catálogo de datos.
  4. Desde su cuaderno Jupyter en Amazon SageMaker:
    1. Utilice la información del Catálogo de datos para ubicar las tablas de interés y extraiga la información de conexión para Amazon Redshift.
    2. Lea las tablas de Amazon Redshift y extraiga los datos en Spark. Puede filtrar o agregar los datos de Amazon Redshift según sea necesario durante la operación de descarga.
    3. Transforme aún más los datos en Spark, transformándolos en la salida deseada.
    4. Coloque el conjunto de datos reducido en su cuaderno y realice un ML rudimentario

Configure la infraestructura de la solución

Primero, inicie una pila de AWS CloudFormation predefinida para configurar los componentes de la infraestructura. La pila de AWS CloudFormation configura los siguientes recursos:

  • Un grupo de EMR con Livy y Spark, que utiliza el Catálogo de datos de pegamento de AWS como el Metastore compatible con Hive externo . Además, configura a Livy para utilizar el mismo Metastore que el clúster EMR.
  • Un cubo S3.
  • Una instancia de notebook de Amazon SageMaker, junto con componentes asociados:
    • Un rol IAM para uso de la instancia de notebook. La función IAM tiene la función administrada AmazonSageMakerFullAccess, además de acceso al grupo S3 creado anteriormente.
    • Un grupo de seguridad, utilizado para la instancia del portátil.
    • Una configuración del ciclo de vida de Amazon SageMaker que configura a Livy para acceder al grupo de EMR lanzado por apilar y copiar en un cuaderno Jupyter predefinido con el código de muestra.
  • Un clúster de Amazon Redshift, en su propio grupo de seguridad. Los puertos se abren para permitir que EMR, Amazon SageMaker y el rastreador de pegamento AWS accedan a él.
  • Una base de datos de pegamento de AWS, una conexión de pegado de AWS que especifica el clúster Redshift de Amazon como objetivo, y un rastreador de pegamento de AWS para rastrear la conexión.

Para ver esta solución en funcionamiento en us-west-2, inicie la pila desde el siguiente botón. La solución total cuesta alrededor de $ 1.00 por hora de funcionamiento. Recuerde eliminar la pila AWS CloudFormation cuando haya terminado con la solución para evitar cargos adicionales.

  1. Elija Launch Stack y elija Siguiente .
  2. Actualice los siguientes parámetros para su entorno:
    • Contraseña de desplazamiento al rojo de Amazon : debe contener al menos una letra mayúscula, una letra minúscula y un número.
    • VPCId . Debe tener acceso a Internet y un punto final Amazon S3 VPC . Puede usar la VPC predeterminada creada en su cuenta. En el panel de control de Amazon VPC, seleccione Puntos finales . Compruebe que la VPC elegida tenga el siguiente punto final: com.amazonaws.us-west-2.s3. Si no, cree uno.
    • VPCSubnet : debe tener acceso a Internet, para permitir la instalación de los componentes de software necesarios.
    • Zona de disponibilidad : debe coincidir con la subred elegida. 19659068] La información de la Zona de disponibilidad y el punto final S3 VPC son utilizados por el rastreador de pegamento de AWS para acceder a Amazon Redshift.
    • Deje los valores predeterminados para los demás parámetros. Cambiar el nombre de la base de datos de AWS Glue requiere cambios en el cuaderno de Amazon SageMaker que ejecuta en un paso posterior. La siguiente captura de pantalla muestra los parámetros predeterminados.
    • Elija Siguiente .
    • Seleccione Reconozco que AWS CloudFormation podría crear recursos IAM con nombres personalizados y Reconozco que AWS CloudFormation podría requerir la siguiente capacidad: CAPABILITY_AUTO_EXPAND .
    • Elija Crear .

Espere a que la pila maestra de AWS CloudFormation y sus pilas anidadas alcancen el estado de CREATE_COMPLETE . La implementación puede demorar hasta 45 minutos.

En la pila maestra, revise la pestaña Salidas para los recursos creados. Usas los datos clave-valor en los siguientes pasos. La siguiente captura de pantalla muestra los recursos que creé, pero sus valores serán diferentes.

Agregue datos de muestra a Amazon Redshift

Usando el punto de referencia RedshiftCluster desde sus resultados de CloudFormation, el nombre de usuario principal (masteruser), la contraseña que especificó en la pila de AWS CloudFormation, y la base de datos Redshift de ‘dev’, conéctese a su clúster de Amazon Redshift utilizando su cliente SQL favorito. Use uno de los siguientes métodos:

Los datos de muestra a utilizar provienen de Paso 6: Cargar datos de muestra de Amazon S3 . Estos datos contienen las ventas de boletos para eventos en varias categorías, junto con información sobre las categorías “gustadas” por los compradores.

Más adelante, utilizará estos datos para calcular la correlación entre el gusto por una categoría y la asistencia a eventos (y luego explorar más a su gusto).

Ejecute los comandos de creación de tablas seguidos de los comandos COPY. Inserte el rol IAM RedshiftIamCopyRoleArn creado por AWS CloudFormation en los comandos de COPIA. Al final de esta secuencia, los datos de muestra se encuentran en Amazon Redshift, en el esquema público.

Explora los datos en la tabla, usando SQL. Usted explora los mismos datos de nuevo en pasos posteriores. Ahora tiene un almacén de datos de Amazon Redshift con varias tablas normalizadas que contienen datos relacionados con la venta de boletos de eventos.

Pruebe la siguiente consulta. Más tarde, utilizará esta misma consulta (menos el límite) de Amazon SageMaker para recuperar datos de Amazon Redshift en EMR y Spark. También ayuda a confirmar que ha cargado los datos en Amazon Redshift correctamente.

 SELECCIONE un u.userid distinto, u.city, u.state,
u.likebroadway, u.likeclassical, u.likeconcerts, u.likejazz, u.likemusicals, u.likeopera, u.likerock, u.likesports, u.liketheatre, u.likevegas,
d.caldate, d.day, d.month, d.year, d.week, d.holiday,
s.pricepaid, s.qtysold, - s.salesid, s.listid, s.saletime, s.sellerid, s.commission
e.eventname, - e.venueid, e.catid, e.eventid,
c.catgroup, c.catname,
v.venuecity, v.venuename, v.venuestate, v.venueseats
DE los usuarios u, ventas s, evento e, lugar v, fecha d, categoría c
DONDE u.userid = s.buyerid y s.dateid = e.dateid and s.eventid = e.eventid and e.venueid = v.venueid
    y e.dateid = d.dateid y e.catid = c.catid
LÍMITE 100; 

Los campos “me gusta” contienen nulos. Convierta esto a “falso” aquí, para simplificar el procesamiento posterior.

 SELECCIONE un u.userid distinto, u.city, u.state,
NVL (u.likebroadway, false) como likebwayway, NVL (u.likeclassical, false) como likeclassical, NVL (u.likeconcerts, false) como likeconcerts,
NVL (u.likejazz, false) como likejazz, NVL (u.likemusicals, false) como likemusicals, NVL (u.likeopera, false) como likeopera, NVL (u.likerock, false) como likerock,
NVL (u.likesports, false) como likesports, NVL (u.liketheatre, false) como liketheatre, NVL (u.likevegas, false) como likevegas,
d.caldate, d.day, d.month, d.year, d.week, d.holiday,
s.pricepaid, s.qtysold, - s.salesid, s.listid, s.saletime, s.sellerid, s.commission
e.eventname, - e.venueid, e.catid, e.eventid,
c.catgroup, c.catname,
v.venuecity, v.venuename, v.venuestate, v.venueseats
DE los usuarios u, ventas s, evento e, lugar v, fecha d, categoría c
DONDE u.userid = s.buyerid y s.dateid = e.dateid and s.eventid = e.eventid and e.venueid = v.venueid
    y e.dateid = d.dateid y e.catid = c.catid
LIMITE 100;

Use un rastreador AWS Glue para agregar tablas al Catálogo de datos

Ahora que hay datos de muestra en el clúster de Amazon Redshift, el siguiente paso es hacer que las tablas de Amazon Redshift sean visibles en el Catálogo de datos de AWS Glue. La plantilla de AWS CloudFormation configuró los componentes para usted: una base de datos de AWS Glue, una conexión a Amazon Redshift y un rastreador. Ahora ejecuta el rastreador, que lee el catálogo de Amazon Redshift y llena el Catálogo de datos con esa información.

Primero, compruebe que la conexión de AWS Glue puede conectarse a Amazon Redshift:
  1. En la consola de AWS Glue, en la barra de navegación izquierda panel, elija Conexiones .
  2. Seleccione la conexión GlueRedshiftConnection y elija Test Connection .
  3. Cuando se le solicite un rol de IAM, elija el rol GlueRedshiftService creado por la plantilla de AWS CloudFormation.
  4. Espere mientras AWS Glue prueba la conexión. Si lo hace correctamente, verá el mensaje GlueRedshiftConnection conectado correctamente a su instancia . Si no lo hace, la causa más probable es que la subred, la VPC y la zona de disponibilidad no coincidan. O podría ser que a la subred le falte un punto final S3 o acceso a Internet.

A continuación, recupere los metadatos de Amazon Redshift sobre las tablas que existen en la base de datos de Amazon Redshift anotadas en los parámetros de la plantilla de AWS CloudFormation.

Para hacerlo, ejecute el rastreador de AWS Glue que creó la plantilla de AWS CloudFormation:
  1. En la consola de AWS Glue, seleccione Crawlers en la barra de navegación de la izquierda.
  2. Seleccione GlueRedshiftCrawler en la lista de rastreadores, y elija Ejecutar rastreador . Si se le solicita una función de IAM, elija la función GlueRedshiftService creada por la plantilla de AWS CloudFormation.
  3. Espere mientras se ejecuta el rastreador. Se debe completar en dos o tres minutos. Verá el cambio de estado a Comenzando luego Ejecutando Deteniendo y finalmente Listo .
  4. Cuando el estado del rastreador es Lista verifique la columna en Tablas agregadas . Debe ver que se han agregado siete tablas.
Para revisar las tablas que agregó el rastreador, siga los siguientes pasos:
  1. Elija Bases de datos y seleccione la base de datos llamada glueredsage . Esta base de datos fue creada por la pila AWS CloudFormation.
  2. Elija Tablas en glueredsage .

Debe ver las tablas que creó en Amazon Redshift, como se muestra en la captura de pantalla que sigue. El nombre de la tabla de AWS Glue está formado por la base de datos (dev), el esquema (público) y el nombre real de la tabla de Amazon Redshift (por ejemplo, fecha). La clasificación de AWS Glue es Amazon Redshift.

Puede acceder a estos metadatos desde su cuaderno Jupyter en el siguiente paso.

Acceda a los datos definidos en el Catálogo de datos de AWS Glue desde el cuaderno

En esta sección , ubica los datos de interés de Amazon Redshift en el AWS Glue Data Catalog y obtiene los datos de Amazon Redshift, de un cuaderno de Amazon SageMaker.

  1. En la consola de Amazon SageMaker, en el panel de navegación izquierdo, elija .
  2. Junto al cuaderno que comenzó con su pila de AWS CloudFormation, elija Abrir Jupyter .

Verá una página similar a la siguiente captura de pantalla. La configuración del ciclo de vida de Amazon SageMaker en la pila de CF cargó automáticamente el cuaderno Using_SageMaker_Notebooks_to_access_Redshift_via_Glue.ipynb en su panel de Jupyter. El tipo de kernel es “SparkMagic (PySpark)”. Alternativamente, puede examinar los resultados estáticos de una ejecución anterior en formato HTML . Los siguientes enlaces lo llevan a la sección relevante en esta versión.

Comience a ejecutar las celdas en el cuaderno, siguiendo las instrucciones que se encuentran allí. Las instrucciones le guían a través de:

  • Accediendo al clúster Spark desde su computadora portátil local a través de Livy y emitiendo una simple declaración Pyspark desde su computadora portátil local para mostrar cómo puede usar Pyspark en este entorno.  Listado de las bases de datos en su Catálogo de datos de pegamento de AWS y mostrar las tablas en la base de datos de pegamento de AWS, glueredsage, que configuró previamente a través de la plantilla de AWS CloudFormation. Aquí, utiliza un par de funciones de ayuda de Python. para acceder al Catálogo de datos desde su cuaderno local. Puede identificar las tablas de interés del Catálogo de datos y ver que están almacenadas en Amazon Redshift. Esta es su pista de que debe conectarse a Amazon Redshift para leer estos datos.
  • Recuperación de la información de conexión de Amazon Redshift del Catálogo de datos para las tablas de interés.
  • Recuperación de los datos relevantes para su problema de investigación planificado una serie de tablas de Amazon Redshift en Spark EMR usando dos métodos: recuperar la tabla completa o, mediante la ejecución de un SQL que une y filtra los datos. Primero, recupera una pequeña tabla de Amazon Redshift que contiene algunos metadatos, las categorías de eventos. Luego, realiza una consulta compleja que retira un conjunto de datos aplanado que contiene datos sobre qué personas en qué ciudades les gustan qué tipo de eventos (Broadway, Jazz, clásica, etc.). Los datos irrelevantes no se recuperan para un análisis posterior. Los datos regresan como un marco de datos de Spark, en el que puede realizar un análisis adicional.
  • Usando el marco de datos resultante (potencialmente grande) en EMR para realizar primero algunas funciones de ML en Spark: convertir varias columnas en representaciones de vectores de un solo calor y calculando correlaciones entre ellos. El marco de datos de correlaciones es mucho más pequeño y es práctico de procesar en su portátil local.
  • Por último, trabajando con el marco de datos procesados ​​en su instancia de portátil local . Aquí visualiza los resultados (mucho más pequeños) de sus correlaciones localmente.

Aquí está el resultado de su análisis inicial, que muestra la correlación entre la asistencia a eventos y las categorías de eventos que le gustaron:

Puede ver que Según las compras de tickets y la asistencia a los eventos, las categorías de Me gusta y evento están solo débilmente correlacionadas (la correlación máxima es 0.02).

Aunque las correlaciones son débiles, en términos relativos:
  • El teatro del agrado se correlaciona positivamente con los musicales de asistencia.
  • La ópera del agrado se correlaciona positivamente con las obras de teatro que asisten.
  • El rock del agrado se correlaciona negativamente con la presencia de los musicales.
  • . está correlacionada negativamente con la asistencia a las reproducciones (¡sorprendentemente!).

Depuración de la conexión

Si su computadora portátil no se conecta a su grupo de EMR, revise la siguiente información para ver dónde está el problema.

Las instancias de la computadora portátil Amazon SageMaker pueden utilizar una configuración de ciclo de vida. Con una configuración del ciclo de vida puede proporcionar un script Bash para que se ejecute siempre que se cree una instancia de notebook Amazon SageMaker o cuando se reinicie después de haberse detenido.

La plantilla de AWS CloudFormation usa un script de tiempo de creación para configurar la configuración de Livy en la instancia de notebook con la dirección de la instancia maestra de EMR creada anteriormente.

Las fuentes más comunes de dificultades de conexión son las siguientes:
  • No tener la configuración correcta en livy.conf.
  • No tener los puertos correctos abiertos en los grupos de seguridad entre el clúster de EMR y la instancia del notebook.

Cuando La instancia de la notebook se crea o inicia, los resultados de la ejecución de la configuración del ciclo de vida se capturan en un grupo de registro de Amazon CloudWatch Logs llamado / aws / sagemaker / NotebookInstances.

Este grupo de registro tiene una secuencia para los resultados del script / LifecycleConfigOnCreate, y otro para / LifeCycleConfigOnStart (que se muestra a continuación para una instancia de cuaderno de “test-scripts2”). Estas secuencias contienen mensajes de registro de las ejecuciones del script del ciclo de vida y puede ver si se produjo algún error.

A continuación, verifique la configuración de Livy y el acceso a EMR en la instancia del notebook. En el panel de control de archivos Jupyter, elija Nuevo Terminal . Esto abre un shell para usted en la instancia del cuaderno.

El archivo de configuración de Livy se almacena en: /home/ec2-user/SageMaker/.sparkmagic/config.json.

Asegúrese de que la dirección IP de su grupo EMR haya reemplazado la dirección original http: // localhost: 8998 en tres lugares del archivo.

Si recibe errores durante la recuperación de datos de Amazon Redshift, verifique si la solicitud está llegando a Amazon Redshift.

  1. En la consola de Amazon Redshift, elija Clusters y seleccione el clúster iniciado por la plantilla AWS CloudFormation.
  2. Elija Queries .
  3. Su solicitud debe estar en la lista de consultas SQL que el clúster de Amazon Redshift ha ejecutado. De lo contrario, verifique que la conexión a Amazon Redshift esté funcionando y que haya utilizado el rol de copia, el ID de usuario y la contraseña de IAM correctos.

Un último lugar para verificar es el directorio S3 temporal que especificó en el copia de declaración. Debería ver una carpeta colocada allí con los datos que se descargaron de Amazon Redshift.

Ampliación de la solución y uso en producción

El ejemplo proporcionado utiliza un conjunto de datos simple y SQL para permitirle concentrarse más fácilmente en las conexiones entre los componentes. Sin embargo, el verdadero poder de la solución proviene del acceso a todas las capacidades de su almacén de datos de Amazon Redshift y de los datos que contiene. Puede usar consultas SQL mucho más complejas, con combinaciones, agregados y filtros, para manipular, transformar y reducir los datos dentro de Amazon Redshift. Luego, retire los subconjuntos de interés en Amazon SageMaker para una exploración más detallada.

Esta sección aborda tres preguntas adicionales:
  • ¿Qué hay de fusionar los datos de Amazon Redshift con los datos en S3?
  • ¿Qué hay de moverse de los datos? -exploración de la fase para entrenar su modelo de ML, y luego a la producción?
  • ¿Cómo se replica esta solución?

Usando Redshift Spectrum en esta solución

Durante esta fase de exploración de datos, puede encontrar que algunos datos adicionales existe en S3 que es útil en combinación con los datos alojados en Amazon Redshift. Es sencillo combinar los dos, usando el poder de Amazon Redshift Spectrum .

Amazon Redshift Spectrum consulta directamente los datos en S3, utilizando la misma sintaxis SQL de Amazon Redshift.

También puede ejecutar consultas que abarcan los datos a los que se accede con frecuencia almacenados localmente en Amazon Redshift y sus conjuntos de datos completos almacenados de manera rentable en S3.

Para usar esta capacidad desde su cuaderno de Amazon SageMaker:
  1. Primero, siga las instrucciones para tablas de catalogación con un rastreador para agregar sus conjuntos de datos S3 a su catálogo de datos de pegamento de AWS.
  2. Luego, siga las instrucciones en Creación de esquemas externos para Amazon Redshift Spectrum para agregar un existente. Esquema externo a Amazon Redshift. Necesita los permisos descritos en Políticas para otorgar permisos mínimos .

Después de definir el esquema externo en Amazon Redshift, puede usar SQL para leer los archivos S3 de Amazon Redshift. También puede unir, agregar y filtrar sin problemas los archivos S3 con las tablas de Amazon Redshift.

De la misma manera, puede usar SQL desde el cuaderno para leer los datos combinados de S3 y Amazon Redshift en Spark / EMR. A partir de ahí, léalo en su cuaderno, usando las funciones ya definidas.

Pasando de la exploración a la capacitación y la producción

La tubería que se describe aquí, que se lee directamente de Amazon Redshift, está optimizada para la fase de exploración de datos de su ML proyecto.

Durante esta fase, es probable que estés iterando rápidamente en diferentes conjuntos de datos, viendo qué datos y qué combinaciones son útiles para el problema que estás resolviendo.

Después de que hayas establecido los datos que se utilizarán para el entrenamiento, es más apropiado para materializar el SQL final en un extracto en S3. El conjunto de datos en S3 se puede usar para la fase de capacitación, como se muestra en los portátiles de Amazon SageMaker de muestra.

El despliegue en producción tiene diferentes requisitos, con un patrón de acceso a datos diferente. Por ejemplo, las respuestas interactivas que necesitan las transacciones en línea no son adecuadas para Amazon Redshift.

Considere las necesidades de su aplicación y el flujo de datos, e ingrese una combinación adecuada de fuentes de datos y métodos de acceso para esa necesidad. Replicación de esta solución

Limpieza

Para evitar cargos adicionales, recuerde eliminar la pila AWS CloudFormation cuando haya terminado con la solución.

Conclusión

A estas alturas, puede ver el verdadero poder de esta combinación. al explorar los datos que se encuentran en su lago de datos y en el almacén de datos:
  • Exponga los datos a través del AWS Glue Data Catalog.
  • Utilice la capacidad de procesamiento y escalabilidad de Amazon Redshift y Amazon EMR para preprocesar, filtrar, unir y agregar datos de your Amazon S3 data lake data.
  • Your data scientists can use tools they’re familiar with—Amazon SageMaker, Jupyter notebooks, and SQL—to quickly explore and visualize data that’s already been cataloged.

 

 

Dejá un comentario