arrow_back

Compara los análisis de datos con BigQuery y Dataproc

Acceder Unirse
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Compara los análisis de datos con BigQuery y Dataproc

Lab 1 hora 30 minutos universal_currency_alt 2 créditos show_chart Introductorio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses
ícono de información importante IMPORTANTE:

ícono de computadora de escritorio/laptop Asegúrate de completar este lab práctico únicamente en una computadora de escritorio o laptop.

ícono de verificación Se permiten solo 5 intentos por lab.

ícono de diana del cuestionario A modo de recordatorio, es habitual no responder de forma correcta a todas las preguntas en el primer intento o incluso tener que volver a realizar una tarea; esto forma parte del proceso de aprendizaje.

ícono de cronómetro Una vez comenzado el lab, no se puede detener el cronómetro. Después de 1 hora y 30 minutos, el lab terminará y tendrás que volver a empezar.

ícono de sugerencia Para obtener más información, consulta la lectura Sugerencias técnicas para el lab.

Descripción general de la actividad

El análisis de datos en la nube es un campo de rápida evolución y los analistas deben aprender sobre nuevas plataformas y tecnologías para ser eficaces en su trabajo. Una buena forma de hacerlo es comparar distintas plataformas, como BigQuery y Dataproc.

BigQuery y Dataproc son dos plataformas de procesamiento de datos en la nube, pero se usan distintos motores, dialectos de SQL y entornos de desarrollo para analizar datos.

BigQuery es un almacén de datos útil para realizar consultas interactivas en conjuntos de datos grandes. Es fácil de usar y admite un amplio rango de tareas de análisis de datos.

Dataproc es un servicio administrado de Hadoop y Spark que es útil en trabajos de procesamiento por lotes en conjuntos de datos grandes. Es más flexible que BigQuery, pero puede ser más difícil de configurar y usar.

Tanto BigQuery como Dataproc están integrados a otros servicios de Google Cloud, lo que hace que mover datos entre ellos y descubrir fuentes de data lakes sea sencillo.

En este lab, unirás datos de dos archivos CSV en un archivo Parquet. Luego, usarás los datos combinados para comparar los análisis realizados por BigQuery con los realizados por Dataproc y Spark en los mismos datos.

Situación

El comercio electrónico TheLook está haciendo una prueba piloto de un programa que puede aceptar devoluciones de pedidos en línea en cualquiera de sus tiendas físicas. Este programa facilita el proceso de devolución de artículos para los clientes y se espera que esto derive en un aumento en las ventas y la satisfacción del cliente.

Para hacer un seguimiento de este programa, Marta, la jefa de productos, te pidió que prepares un informe en el que se combinen las direcciones y los datos de devoluciones de cada tienda. Este informe se usará para hacer un seguimiento de las devoluciones por ubicación y región; la información también será útil para determinar el éxito del programa piloto en distintos mercados.

Para empezar, revisas los datos recopilados de cada ubicación hasta entonces. Pero, de inmediato, te das cuenta de que la cantidad de datos es inmensa. Contactas a Arturo, el arquitecto de datos, para que te ayude a trabajar con el gran volumen de datos que se deben recopilar, procesar y analizar.

Arturo te sugiere que uses Dataproc para combinar los dos archivos CSV con los que estás trabajando en un solo archivo Parquet. Parquet es un formato de datos en columnas que está optimizado para realizar búsquedas analíticas rápidas. Arturo también dice que, como el comercio electrónico TheLook acaba de adquirir una empresa que hace estadísticas con Spark, esta es una gran oportunidad para aprender más sobre Dataproc y Spark.

La propuesta es que uses los datos combinados del informe de Marta para comparar dos formas de ejecutar estadísticas: una basada en BigQuery, un producto con el que estás familiarizado, y otra basada en Dataproc y Spark. Esta es una gran forma de obtener más información acerca de Dataproc y Spark, además de comparar ambas plataformas y descubrir cuál de las dos se ajusta mejor a las necesidades del programa piloto.

Agradeces a Arturo por su ayuda. Pero antes de poder empezar a comparar BigQuery con Dataproc y Spark, debes pensar en cómo recopilarás y procesarás los datos que usarás en la comparación.

Diseñas un diagrama para planear mejor cómo combinarás los dos archivos CSV; quieres unir ambos archivos con Dataproc Spark SQL y renderizar un archivo combinado de devoluciones en formato Parquet.

Diagrama que muestra los dos archivos CSV unidos con Dataproc Spark SQL y combinados en un archivo Parquet

Estos son los datos que usarás como base para tu comparación.

Realizarás la tarea así: primero, abrirás un notebook de Jupyter en un clúster de Dataproc. Luego, seguirás las instrucciones en el notebook para unir los archivos CSV en un archivo Parquet. Después, cargarás los datos del archivo Parquet almacenados en un bucket de Cloud Storage a una tabla estándar de BigQuery para analizarlos. Por último, harás una referencia del archivo Parquet en un notebook de Jupyter en un clúster de Dataproc para comparar el análisis de datos de BigQuery con el realizado por Dataproc y Spark.

Configuración

Antes de hacer clic en Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

En este lab práctico, puedes realizar las actividades por tu cuenta en un entorno de nube real, en lugar de una simulación o un entorno de demostración. Para ello, se te proporcionan credenciales temporales nuevas que usarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana del navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar tu lab y acceder a la consola de Google Cloud

  1. Haz clic en el botón Comenzar lab. A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:

    • Tiempo restante
    • El botón Abrir la consola de Google
    • Las credenciales temporales que debes usar para el lab
    • Otra información para completar el lab, si es necesaria
    Nota: Si debes pagar por el lab, se abrirá una ventana emergente para que selecciones tu forma de pago.
  2. Haz clic en Abrir la consola de Google (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito) si ejecutas el navegador Chrome. La página Acceder se abre en una pestaña del navegador nueva.

    Sugerencia: Puedes organizar las pestañas de manera independiente (una ventana al lado de la otra) para alternar fácilmente entre ellas.

    Nota: Si aparece el diálogo Elige una cuenta, haz clic en Usar otra cuenta.
  3. Si es necesario, copia el nombre de usuario de Google Cloud a continuación, y pégalo en el diálogo Ingresar. Haz clic en Siguiente.

{{{user_0.username | "nombre de usuario de Google Cloud"}}}

También puedes encontrar el nombre de usuario de Google Cloud en el panel Detalles del lab.

  1. Copia la contraseña de Google Cloud a continuación y pégala en el diálogo te damos la bienvenida. Haz clic en Siguiente.
{{{user_0.password | "contraseña de Google Cloud"}}}

También puedes encontrar la contraseña de Google Cloud en el panel Detalles del lab.

Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud. Nota: Usar tu propia cuenta de Google Cloud podría generar cargos adicionales.
  1. Haz clic para avanzar por las páginas siguientes:
    • Acepta los Términos y Condiciones.
    • No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No te registres para las pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Menú de la consola de Google Cloud con el ícono de menú de navegación destacado Nota: Luego de que hagas clic en Comenzar lab, aparece el tiempo que tienes para el aprovisionamiento de los recursos. Sin embargo, puede que tome un poco más de lo que se muestra.

Tarea 1: Abre JupyterLab en un clúster de Dataproc

JupyterLab se puede usar para crear, abrir y editar notebooks de Jupyter en un clúster de Dataproc. Esto te permite aprovechar los recursos del clúster, como su alto rendimiento y escalabilidad, y te permite ejecutar tus notebooks más rápido y en conjuntos de datos más extensos. También puedes usar JupyterLab para colaborar con otros en tus proyectos.

En esta tarea, abrirás un clúster de Dataproc existente y navegarás a JupyterLab para ubicar los notebooks de Jupyter que usarás para completar el resto de las tareas de este lab.

  1. En la barra del título de la consola de Google Cloud, escribe “Dataproc” en el campo Búsqueda y presiona INTRO.
  2. En los resultados de la búsqueda, selecciona Dataproc.
  3. En la página Clústeres, haz clic en el nombre del clúster con el nombre mycluster.
  4. En la página con pestañas de detalles del Clúster, selecciona la pestaña Interfaces Web.
  5. En la sección Puerta de enlace del componente, haz clic en el vínculo JupyterLab.
Nota: Ten cuidado de no confundir el vínculo de JupyterLab con el de Jupyter.

El entorno de JupyterLab se abre en una pestaña nueva del navegador.

  1. Ubica el archivo C2M4-1 Combine and Export.ipynb en la lista de la barra lateral izquierda.

Tarea 2: Combina los datos y exporta los archivos Parquet

Marta necesita información sobre cada devolución y la dirección física donde esta se hizo para identificar las ubicaciones y los mercados. Pero esta información se encuentra en dos archivos CSV separados.

Los datos de devoluciones de la tienda se exportaron en un formato CSV y se copiaron en un bucket de Cloud Storage. Estos datos incluyen order_id, rma_id, return_status, status_date, product_ied, quantity_returned y store_id.

En las 10 primeras líneas del archivo de devoluciones de la tienda, se incluye lo siguiente:

Las diez primeras líneas del archivo CSV de devoluciones de la tienda que muestran columnas separadas por comas

Los datos de la dirección de la tienda se incluyen en un archivo CSV separado. Estos datos incluyen el store_id y la street_address.

En las 10 primeras líneas del archivo de dirección de la tienda, se incluye:

Las diez primeras líneas del archivo CSV de dirección de la tienda que muestran columnas separadas por comas

En esta tarea, ejecutarás las consultas en SQL y los comandos de Python contenidos en el archivo C2M4-1 Combine and Export.ipynb para unir los dos archivos CSV. Los archivos combinados se almacenarán como un archivo Parquet.

Diagrama que muestra los dos archivos CSV unidos con Dataproc Spark SQL y combinados en un archivo Parquet

  1. En la barra lateral izquierda, haz doble clic en el archivo C2M4-1 Combine and Export.ipynb para abrirlo en el entorno de JupyterLab.
Nota: Si se abre el cuadro de diálogo Select Kernel (Seleccionar Kernel), selecciona PySpark y haz clic en el botón Select (Seleccionar). Para obtener más información sobre cómo ejecutar código en Jupyter Notebook, visita la documentación de Jupyter Notebook.

A continuación, sigue las instrucciones en el notebook y ejecuta el código en cada una de las celdas.

  1. Haz clic en cada celda del notebook y, luego, en el ícono Run the selected cells and advance (Ejecutar las celdas seleccionadas y continuar) (Ícono para ejecutar las celdas seleccionadas y continuar) para ejecutar cada celda. También puedes presionar MAYÚSCULAS+INTRO para ejecutar el código. Las celdas que dependen del resultado de una celda anterior DEBEN ejecutarse en orden. Si cometes un error y ejecutas una celda en otro orden, haz clic en el botón de actualizar (Ícono para reiniciar el kernel) en la barra de tareas del notebook para reiniciar el kernel.
Nota: Las celdas en el notebook deben ejecutarse en orden para que funcionen correctamente. Si aparece un mensaje de error cuando ejecutas una celda en el notebook, asegúrate de que cada celda se haya ejecutado y vuelve a ejecutar todo el notebook para borrar el error.
  1. Explora los resultados de cada celda en el notebook. Los dos archivos CSV ahora están unidos y el archivo Parquet, que usarás en la próxima tarea, se creó automáticamente.

Una sesión de Spark en Dataproc es una forma de conectarse a un clúster de Dataproc y ejecutar aplicaciones de Spark. Es la manera principal de iniciar aplicaciones de Spark y crear DataFrames. Los DataFrames son tablas que Spark puede procesar y en las que puede ejecutar consultas. Con Spark, también puedes leer y escribir datos en diferentes sistemas de almacenamiento, como Google Cloud Storage o BigQuery.

Nota: Dataproc también puede procesar consultas guardadas en archivos de texto, que son la solución típica para los procesos automatizados. Usar un notebook es la solución estándar durante el desarrollo y la exploración de datos.

En este notebook, creaste una sesión de Spark y cargaste los datos de devoluciones de la tienda desde un archivo CSV a un DataFrame, una tabla que se usa en Spark. Luego, cargaste las direcciones de las tiendas de un segundo archivo CSV y uniste ambos DataFrames para exportar una única tabla como un archivo Parquet. Por último, usaste una consulta para modificar el nombre de una de las columnas.

Sugerencia: Mantén el notebook con los resultados abierto mientras respondes las siguientes preguntas.

Haz clic en Revisar mi progreso para verificar que completaste esta tarea de manera correcta. Combinar los datos y exportar los archivos Parquet

Tarea 3: Consulta datos en BigQuery

Ahora que el archivo Parquet combinado está creado y almacenado en un bucket de Cloud Storage, estás en buen camino para comparar las dos maneras de ejecutar análisis: una basada en BigQuery y otra basada en Dataproc y Spark.

Empieza por BigQuery, un almacén de datos que usa el motor de BigQuery para ejecutar consultas y analizar datos.

En la tarea anterior, creaste un archivo Parquet y lo almacenaste en un bucket de Cloud Storage. Tienes dos opciones para acceder a estos datos desde BigQuery: una tabla externa o una tabla estándar. Una tabla externa se refiere a los datos almacenados fuera de BigQuery, por ejemplo, en Google Cloud Storage. Una tabla estándar almacena una copia de los datos directamente en BigQuery.

Arturo te dijo que las tablas estándar suelen ser más eficientes cuando se trabaja con macrodatos, ya que estos se pueden consultar y procesar de manera rápida. Por esto, decides que una tabla estándar es la mejor opción para esta tarea.

En esta tarea, cargarás el archivo Parquet en una tabla estándar en BigQuery y ejecutarás una consulta mediante GoogleSQL, el dialecto SQL que se usa en el entorno de BigQuery. A continuación, responderás las preguntas para asegurarte de que tienes la información necesaria para comparar BigQuery con Dataproc y Spark en la próxima tarea.

  1. Regresa a la pestaña del navegador de la consola de Google Cloud (donde todavía deberías tener la página de Dataproc abierta), sin cerrar la pestaña del navegador de JupyterLab.

  2. En la consola de Google Cloud Menú de navegación (Menú de navegación), haz clic en BigQuery > BigQuery Studio. BigQuery Studio es la manera principal de escribir y ejecutar consultas en BigQuery.

Nota: Puede aparecer el mensaje Te damos la bienvenida a BigQuery en la consola de Cloud, que proporciona vínculos a la guía de inicio rápido y las notas de la versión para actualizaciones de IU. Haz clic en Done para continuar.
  1. En el Editor de consultas, haz clic en el ícono Redactar nueva consulta (+) para abrir una nueva pestaña Sin título.

  2. Copia la siguiente búsqueda en la pestaña Sin título:

LOAD DATA OVERWRITE thelook_gcda.product_returns_to_store FROM FILES ( format="PARQUET", uris=["gs://{{{project_0.project_id | "PROJECT_ID"}}}/store_returns_output/store_returns.parquet/*.parquet"] ) ;

Esta consulta importa el archivo Parquet a BigQuery.

  1. Haz clic en Run.

Un URI (Identificador de Recursos Uniforme) es la ruta a un archivo en un bucket de Cloud Storage. Un conjunto de URI puede establecerse como entrada para el comando LOAD DATA si encierras los URI deseados entre corchetes []. Esto indica que el valor es un array de URI.

El URI siempre empieza con gs://, lo que indica que es un recurso en Cloud Storage. El URI del ejemplo anterior filtra los archivos con una extensión .parquet, ya que termina con *.parquet. El símbolo * es un comodín, es decir que puede ser cualquier cadena.

Esta consulta devuelve todos los archivos en la ruta gs:///store_returns_output/store_returns.parquet/ que estén nombrados de cualquier forma que termine con .parquet y carga los datos en la tabla store_returns.

  1. Copia la siguiente consulta en el Editor de consultas:
SELECT count(*) FROM thelook_gcda.product_returns_to_store;

Esta consulta devuelve el número de filas en la tabla “thelook_gcda.product_returns_to_store”.

  1. Haz clic en Run.

De forma predeterminada, una consulta ejecutada en BigQuery Studio usa el dialecto GoogleSQL. GoogleSQL es un superconjunto del dialecto SQL estándar, es decir, incluye todas las consultas en SQL estándar y otras extensiones que facilitan el trabajo con grandes cantidades de datos y tipos de datos complejos en BigQuery.

  1. Copia la siguiente consulta en el Editor de consultas:
SELECT substring(status_date, 1, 7) as year_month, return_status, count(order_id) as order_count FROM thelook_gcda.product_returns_to_store GROUP BY year_month, return_status;

Esta consulta muestra la cantidad de devoluciones recibidas por mes y por estado.

  1. Haz clic en Run.
Nota: La columna year_month puede contener valores nulos en el resultado.

Haz clic en Revisar mi progreso para comprobar que completaste esta tarea de manera correcta.

Consultar datos en BigQuery

Tarea 4. Consulta datos en Dataproc y Spark

Ahora que completaste tu análisis en BigQuery, tienes todo listo para explorar un análisis basado en Dataproc y Spark.

Spark es el principal motor de procesamiento de datos para analizar datos con Dataproc. Dataproc administra el clúster de Spark automáticamente y está preinstalado con Spark, lo que lo convierte en una opción conveniente y útil para el análisis de datos.

Además, Spark usa su propio dialecto de SQL, Spark SQL. Al igual que GoogleSQL, Spark SQL es un dialecto de SQL. Spark SQL es un dialecto de SQL distribuido, lo que significa que puede consultar y analizar datos distribuidos a través de distintas máquinas en un clúster de Spark.

Para ejecutar consultas en Spark SQL con Dataproc y Spark, deberás usar un notebook de Jupyter. Este entorno interactivo te permite escribir código y mostrar sus resultados de manera sencilla.

En esta tarea, ejecutarás consultas en Spark SQL en el archivo Parquet al que se hace referencia en el bucket de Cloud Storage. Luego, responderás preguntas que te ayudarán a completar la comparación de las dos formas de ejecutar análisis: una basada en BigQuery y una basada en Dataproc y Spark.

  1. Regresa a la pestaña de JupyterLabSTRONG en tu navegador.

  2. Haz doble clic en el archivo C2M4-2 Query Store Data with Spark SQL.ipynb para abrirlo en el entorno de JupyterLab.

Sigue las instrucciones en el notebook y ejecuta el código en cada una de las celdas.

  1. Haz clic en cada celda del notebook y, luego, en Run o presiona MAYÚSCULAS+INTRO para ejecutar el código.

  2. Explora los resultados de las consultas en Spark SQL en el notebook.

En este notebook, creaste una sesión de Spark. Luego, hiciste referencia a los datos en los archivos Parquet en Cloud Storage mediante el notebook The iPython y completaste un DataFrame. Después, creaste una vista para que el DataFrame pueda usarse con Spark SQL. Luego, ejecutaste una consulta en Spark SQL que devolvió las tres primeras filas del DataFrame. Por último, ejecutaste la misma consulta que ejecutaste en BigQuery en el paso anterior.

Haz clic en Revisar mi progreso para comprobar que completaste esta tarea de manera correcta.

Consultar datos en Dataproc y Spark

Tarea 5. Detén el clúster

Como práctica recomendada, antes de salir de un entorno asegúrate de detener el clúster.

Nota: No detener un clúster usa recursos y puede generar costos adicionales.
  1. Regresa a la pestaña BigQuery en tu navegador.
  2. En la barra del título de la consola de Google Cloud, escribe Dataproc en el campo Búsqueda.
  3. Selecciona Dataproc entre los resultados de la búsqueda. Se abre la página Clústeres.
  4. En la lista de clústeres, selecciona la casilla de verificación al lado de mycluster.
  5. En la barra Acción, haz clic en Detener.

Resumen

Revisa la siguiente tabla que resume las diferencias entre el análisis de datos con BigQuery y el análisis de datos con Dataproc y Spark que se abarcaron en este lab.

Tarea 3 Tarea 4
Producto central BigQuery Dataproc
Motor de procesamiento de datos BigQuery Spark
Ubicación de los datos Tabla estándar de BigQuery Archivo Parquet en GCS
Dialecto de SQL GoogleSQL Spark SQL
Entorno de desarrollo BigQuery Studio Notebooks de Jupyter

Conclusión

Muy bien.

Recopilaste y procesaste con éxito los datos que Marta necesitaba en su informe y usaste los datos combinados para comparar dos formas de ejecutar análisis: una basada en BigQuery, un producto que ya conoces, y una basada en Dataproc y Spark.

Primero abriste un notebook de Jupyter en un clúster de Dataproc existente.

Luego, seguiste las instrucciones en el notebook para unir dos archivos CSV con los datos de devoluciones y direcciones para crear un archivo Parquet combinado y almacenarlo en un bucket de Cloud Storage.

Seguiste los consejos de Arturo y usaste el archivo Parquet combinado para comparar los análisis de datos de BigQuery y Dataproc y Spark para saber más sobre sus motores de procesamiento de datos, sus dialectos de SQL, la ubicación de sus datos y sus entornos de desarrollo.

Estás en un buen camino para comprender cómo usar Dataproc y Spark para trabajar con conjuntos de datos grandes.

Finaliza el lab

Antes de que finalices el lab, asegúrate de estar satisfecho de haber completado todas las tareas. Cuando estés conforme, haz clic en Finalizar Lab y, luego, haz clic en Enviar.

Finalizar el lab te quitará el acceso al entorno del lab y no podrás volver a acceder al trabajo que completaste.