arrow_back

Explora los tipos de datos planos y anidados en BigQuery

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

Explora los tipos de datos planos y anidados en BigQuery

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

Comprender los tipos de datos y estructuras es esencial para trabajar eficazmente con datos en BigQuery. Los tipos de datos planos almacenan un solo valor, como un número o una cadena de texto, mientras que los datos anidados pueden almacenar múltiples valores o estructuras complejas con diversos tipos de datos. Conocer la diferencia entre los tipos de datos planos y anidados te ayudará a organizar y consultar datos en BigQuery con eficiencia.

En este lab, explorarás los tipos de datos planos y anidados en BigQuery y aprenderás a usarlos eficazmente en tus consultas.

Situación

Trabajas como analista de datos en la nube para el comercio electrónico TheLook, una empresa global de indumentaria que se especializa en moda innovadora y suministros éticos y sustentables. Marta, la jefa de Distribución de Productos, te pidió ayuda con dos problemas relacionados con datos. Primero, tiene problemas para ejecutar una consulta que le permita generar un resumen de ventas por país y año. Segundo, le preocupa que las iniciativas ineficaces de marketing han provocado que el rendimiento de algunos productos sea malo en países específicos, pero no está segura de cómo usar los datos existentes para obtener las estadísticas que necesita. Para ayudar a Marta, deberás aplicar tus conocimientos de los tipos de datos planos y anidados.

Así harás esta tarea: Primero, explorarás los tipos de datos en BigQuery. A continuación, solucionarás los problemas de una consulta para aprender cómo funcionan los tipos de datos. Luego, explorarás los tipos de datos anidados y en qué se distinguen de los tipos de datos planos. Finalmente, trabajarás con los tipos de datos anidados para averiguar por qué un producto no se vende en Singapur y le entregarás a Marta estadísticas valiosas que la ayuden a obtener las respuestas que necesita.

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

Tarea 1: Explora los tipos de datos en BigQuery

Arturo, el arquitecto de datos, recomienda explorar la tabla a la que Marta desea acceder antes de solucionar los problemas de su consulta. Esto te ayudará a comprender mejor los datos, incluidas las columnas y los tipos de datos.

En esta tarea, explorarás el esquema de una tabla para identificar los tipos de datos y las columnas relevantes y aprender más sobre los tipos de datos planos.

  1. En el menú de navegación (Ícono del menú de navegación) de la consola de Google Cloud, selecciona 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 de las actualizaciones de la IU. Haz clic en Listo para continuar.
  1. En el panel Explorador, haz clic en la flecha desplegable junto al ID de proyecto para expandir la lista de conjuntos de datos.
Nota: Es probable que primero debas seleccionar un proyecto. Para hacerlo, haz clic en Selecciona un proyecto en la barra de título de la consola de Google Cloud y, luego, elige el vínculo del proyecto en el diálogo Selecciona un proyecto.
  1. Haz clic en la flecha desplegable junto al conjunto de datos thelook_gcda.
  2. En el conjunto de datos thelook_gcda, selecciona la tabla orders_by_state. Se muestra el esquema de la tabla.
  3. Localiza los nombres de columna en el esquema.
Nota: En BigQuery Studio, una columna se refiere al nombre del campo.

  1. Cada columna tiene un tipo de datos asociado. Localiza el tipo en el esquema.

Un valor STRING es una secuencia de caracteres que puede incluir letras, números y signos de puntuación. Aunque una STRING contenga números, se lee como texto.

Un valor INTEGER es un número entero positivo o negativo. Estos valores no contienen puntos decimales.

Los valores INTEGER Y STRING son tipos de datos planos porque contienen un solo valor.

  1. Localiza el Modo para cada columna en el esquema.

En BigQuery, las columnas pueden ser NULLABLE, REQUIRED y REPEATED.

  • NULLABLE significa que una columna puede contener valores NULL, faltantes o desconocidos.
  • REQUIRED significa que una columna no puede contener valores NULL.
  • REPEATED indica que la columna contiene un array de valores del tipo de datos de la columna.

NULLABLE, REQUIRED y REPEATED se pueden usar con tipos de datos planos y valores RECORD anidados.

Tarea 2: Soluciona problemas de una consulta

Ahora que exploraste los datos, puedes ayudar a Marta con su consulta. Marta intenta generar un resumen de ventas por país y por año. Actualmente, usa la tabla orders_by_state, pero recibe un error y no puede encontrar el problema.

En esta tarea, usarás tu comprensión de los tipos de datos para solucionar el problema y corregir la consulta de modo que Marta pueda crear un resumen de ventas.

  1. En la barra de acciones de BigQuery, haz clic en la pestaña Sin título para mostrar el Editor de consultas.
  2. Copia la siguiente consulta en la pestaña Sin título:
SELECT sum(total_sales) as sum_total_sales FROM `thelook_gcda.orders_by_state`;

Esta es la consulta que Marta intentó ejecutar para obtener la suma de la columna total_sales.

¿Notaste el signo de exclamación en la línea uno cuando ingresaste la consulta? Esto es una advertencia de BigQuery que indica que la consulta podría contener errores. BigQuery analiza todas las consultas en busca de errores potenciales antes de ejecutarlas, y te alertará si encuentra errores.

La consulta en el editor, que ahora muestra un ícono de error rojo.

  1. Haz clic en Ejecutar.
  2. En la sección Resultados de la consulta, localiza el mensaje de error. Los mensajes de error son una forma útil de entender por qué no funciona una consulta. En esta instancia, el mensaje de error afirma que no hay una firma coincidente para la función de agregación SUM para los tipos de argumento STRING.

Para aclarar, la firma de una función describe sus parámetros y tipos de datos. Actualmente, la función SUM() recibe una STRING, un tipo de datos planos cuyo valor se lee como texto. Sin embargo, este no es un tipo de datos compatible.

Para corregir el error, deberás cambiar la consulta y, así, convertir el tipo de datos de STRING a un tipo que incluya un número. Dado que trabajas con números que podrían contener un punto decimal, el tipo de datos NUMERIC es una buena opción.

  1. Copia la siguiente consulta actualizada en el Editor de consultas:
Nota: Asegúrate de borrar la consulta anterior antes de copiar la actualizada. SELECT country, sum(cast(total_sales as numeric)) as sum_total_sales FROM `thelook_gcda.orders_by_state` GROUP BY country;
  1. Haz clic en Ejecutar.

CAST es una herramienta valiosa para usar en SQL porque convierte datos de un tipo a otro. La consulta ahora funciona porque cambia el tipo de datos de total_sales de STRING a NUMERIC, un tipo de datos compatible que se lee como un número y puede usarse para cálculos matemáticos. Esto resolverá el error que se mostraba.

Ahora que se resolvió el problema con total_sales, puedes ayudar a Marta a obtener la información que necesita.

  1. Copia la siguiente consulta en el Editor de consultas:
SELECT country, order_year, sum(cast(total_sales as decimal)) as sum_total_sales FROM `thelook_gcda.orders_by_state` GROUP BY country, order_year ORDER BY country asc, order_year desc;

Esta consulta devuelve los pedidos por país y por año. La consulta también mostrará los resultados por nombre de país en orden ascendente, y por año en orden descendente. Esto garantiza que el año más reciente aparezca primero.

  1. Haz clic en Ejecutar.

Haz clic en Revisar mi progreso para verificar que completaste esta tarea correctamente.

Solucionar problemas de una consulta

Tarea 3: Explora tipos de datos anidados

Marta te pidió crear un informe sobre la eficacia del marketing para ciertos productos en 2021. Sospecha que una falta de reconocimiento por parte de los clientes pudo haber provocado menos ventas en algunos mercados, y un informe puede ayudar a determinar si las fallas de marketing fueron la causa. No tienes claro qué datos se necesitan, así que te comunicas con Arturo, el arquitecto de datos, para que te ayude. Arturo te explica que Google Analytics capta las vistas del sitio web en la tabla ga4_events, y puedes buscar un evento llamado view_item en la columna event_name para obtener los datos que necesitas.

BigQuery puede ser engañoso, pues contiene dos tipos principales: array y STRUCT. Las columnas REPEATED son arrays, lo que significa que almacenan múltiples valores del mismo tipo de datos. Las columnas RECORD son structs, lo que significa que pueden almacenar múltiples valores de diferentes tipos de datos. Incluso puedes tener un array completo formado por STRUCTS llamado columna REPEATED RECORD.

Le agradeces a Arturo y te pones a trabajar.

En esta tarea, explorarás tipos de datos anidados en la tabla ga4_events y aprenderás sobre los tipos de datos anidados.

  1. En el conjunto de datos thelook_gcda, selecciona la tabla ga4_events y revisa la pestaña Esquema.

STRING, INTEGER y FLOAT son tipos de datos planos, mientras que RECORD es un tipo de datos anidados que funciona como un tipo especial de STRUCT. Los STRUCTS te permiten tratar diversos fragmentos de datos como una unidad, incluso si son de diferentes tipos. Por ejemplo, el RECORD geo comprende varias columnas, como país, región y ciudad, que juntos representan una referencia geográfica para el evento, o la ubicación del cliente que vio el producto en el momento del evento.

  1. Localiza las columnas anidadas en la columna geo.

  1. Localiza la columna event_name. Aquí encontrarás el tipo de evento que usarás como filtro.

  1. Localiza la columna items y revisa su modo.

El modo Repeated es exclusivo de los tipos de datos anidados en BigQuery. Cuando una columna está marcada como Repeated, indica que puede haber múltiples elementos para cada fila en la tabla. Adicionalmente, las columnas repetidas pueden contener múltiples valores de diversos tipos de datos.

Tarea 4: Trabaja con tipos de datos anidados

Después de explorar los tipos de datos anidados, casi tienes todo listo para ayudar a Marta a comprender de qué manera el marketing en 2021 afectó las ventas de productos.

Antes de eso, le pides a Arturo más sugerencias. Te dice que, cuando trabajas con tipos de datos planos como STRING, puedes hacer referencia a ellos directamente. Pero cuando trabajas con tipos de datos anidados como RECORD, necesitas hacer referencia a ellos con la notación de punto.

Le agradeces a Arturo y comienzas a pensar cómo usar los datos que exploraste para ayudar a Marta. Dado que Marta notó que la venta de camisetas Google Dino Game en Singapur fue mucho menor que la esperada, decides analizar cuántas personas vieron la camiseta Dino en el sitio web en ese mercado durante 2021. Esta estadística podría ayudarla a comprender mejor si las iniciativas ineficaces de marketing podrían haber afectado la venta de productos.

En esta tarea, generarás un informe de la cantidad de vistas para el producto Google Dino Game Tee en 2021 para Singapur, un mercado en el que se vendieron muy pocas camisetas Dino.

  1. Copia la siguiente consulta en el Editor de consultas:
SELECT event_date, event_name, geo FROM `thelook_gcda.ga4_events`;

Esta consulta recupera event_date, event_name y geo de la tabla ga4_events y, luego, inspecciona los resultados.

  1. Haz clic en Ejecutar.

Esos son muchos resultados. Para ver solo la información relevante, deberás filtrar los eventos por tipo.

  1. Copia la siguiente consulta en el Editor de consultas:
SELECT event_date, event_name, geo FROM `thelook_gcda.ga4_events` WHERE event_name = 'view_item';

Esta consulta devuelve solo las filas que coinciden con el tipo de evento view_item.

  1. Haz clic en Ejecutar.

Cuando creas un informe, una buena estrategia es comenzar con la cantidad total de filas en el conjunto de datos. Luego, puedes agregar filtros para reducir los resultados. Es importante llevar un registro de cuántas filas tiene el conjunto de datos filtrado, para que puedas comprender de qué manera tus filtros afectan los resultados.

Para obtener los resultados que necesitas para Marta, deberás filtrarlos por país. "Country" es una columna anidada en el tipo de datos anidados "geo". Para hacer referencia a una columna en un tipo de datos anidados, usa la notación de punto.

Nota: Para usar la notación de punto, agrega un punto (.) entre el nombre de la columna RECORD y el nombre de la columna anidada a la que deseas acceder. Por ejemplo, si tienes una columna RECORD llamada “geo” que tiene una columna anidada llamada “country”, la notación de punto sería geo.country.
  1. Copia la siguiente consulta en el Editor de consultas:
SELECT event_date, event_name, geo.country FROM `thelook_gcda.ga4_events` WHERE event_name = 'view_item' and geo.country = 'Singapore';

Esta consulta filtra eventos por país, específicamente Singapur. Observa que “country” se muestra anidada dentro de "geo" con geo.country.

  1. Haz clic en Ejecutar.

Finalmente, necesitas filtrar usando el nombre del producto. La siguiente consulta agrega la columna “items”, que tiene el tipo de datos RECORD y está marcada como REPEATED. Esto significa que es una colección de RECORDS. En otras palabras, la columna “items” es un array de STRUCTS.

  1. Copia la siguiente consulta en el Editor de consultas:
SELECT event_date, event_name, geo.country, items FROM `thelook_gcda.ga4_events` WHERE event_name = 'view_item' and geo.country = 'Singapore';
  1. Haz clic en Ejecutar.

  2. Desplázate hacia abajo para ver los resultados.

Cada fila numerada en la columna Row de los resultados representa un evento: la vista de un elemento. Observa que algunas filas de evento contienen múltiples elementos, como es el caso en la fila 19. Así es como BigQuery muestra columnas que se repiten en la misma fila.

La cantidad de filas en los resultados se mantiene igual en 65, dado que la consulta aún encuentra un total de 65 eventos. Sin embargo, la fila 19 en el conjunto de resultados tiene 9 elementos anidados en la columna “items”. Esto significa que, a pesar de que la fila 19 corresponde a 1 evento, en realidad contiene 9 elementos.

Ahora, intentemos obtener una lista de los nombres de los artículos en la consulta, pues a Marta le interesa el artículo con el nombre "Google Dino Game Tee".

  1. Copia la siguiente consulta en el Editor de consultas:
SELECT event_date, event_name, geo.country, items.item_name FROM `thelook_gcda.ga4_events` WHERE event_name = 'view_item' and geo.country = 'Singapore';
  1. Haz clic en Ejecutar.
  2. Examina cuántas filas devuelve la consulta.

En este caso, no se devuelve ninguna de las filas. En su lugar, la consulta devuelve un error. BigQuery no puede determinar a cuál de los elementos anidados se hace referencia, dado que estos son una colección (en otras palabras, un array que contiene múltiples valores del tipo de datos STRUCT).

Mensaje de error de la consulta, “No se puede acceder al campo item_name en un valor con tipo ARRAY”

Una manera de trabajar con columnas anidadas en una consulta es simplemente desanidarlas para que sea fácil hacer referencia a ellas. La operación se conoce como “aplanado” y usa la función UNNEST, a la que se puede referir como una tabla.

Nota: El aplanado convierte un tipo de datos anidados en planos que solo contienen un valor.

La consulta que sigue usa unnest en la columna “items” y define el item como un alias; luego, hace una unión cruzada con cada fila individual de evento. Esto seleccionará todos los eventos en los que un usuario vio un artículo en Singapur.

  1. Copia la siguiente consulta en el Editor de consultas:
SELECT event.event_date, event_name, geo.country, item.item_name FROM `thelook_gcda.ga4_events` as event INNER JOIN unnest(items) as item WHERE event_name = 'view_item' AND geo.country = 'Singapore';
  1. Haz clic en Ejecutar.

En el paso anterior, tenías 65 filas que coincidían con el nombre de evento view_item y el país Singapur. Sin embargo, después de la operación UNNEST, ¡ahora tienes 571 filas! Esto se debe a que la operación UNNEST aplana el array “items”, lo que significa que cada elemento en el array ahora es una fila separada.

Nota: Esta vez pudiste hacer referencia a item_name sin problemas. BigQuery copia event_date, event_name y geo.country en las filas recién creadas. Si te desplazas hacia abajo por los resultados, notarás que cada fila y columna ahora tiene un solo valor. En otras palabras, no hay columnas anidadas: este es un conjunto de datos aplanado.

Usando el conjunto de datos aplanado, agrega un filtro para que solo se muestren productos llamados “Google Dino Game Tee” en el conjunto de resultados.

  1. Copia la siguiente consulta en el Editor de consultas:
SELECT event.event_date, event_name, geo.country, item.item_name from `thelook_gcda.ga4_events` as event INNER JOIN unnest(items) as item WHERE event_name = 'view_item' AND geo.country = 'Singapore' AND item.item_name = 'Google Dino Game Tee';
  1. Haz clic en Ejecutar.

¿Cuántas filas se devuelven ahora? ¿La campaña de marketing generó muchas vistas en el sitio web?

Parece que solo tres eventos coinciden con los criterios. Esto significa que, para todo el país de Singapur y todo el año de 2021, solo tres personas miraron el producto “Google Dino Game Tee” en el sitio web. Eso no representa muchas vistas para un país de millones de personas. Parece que tienes una estadística valiosa que puedes compartir con Marta para ayudarla a comprender mejor si el marketing tuvo un impacto en las ventas de producto en 2021. ¡Muy bien!

Haz clic en Revisar mi progreso para verificar que completaste esta tarea correctamente.

Trabajar con tipos de datos anidados

Resumen

  • Cuando trabajas con consultas, puedes hacer referencia directamente a STRING y los tipos de datos de número por sus nombres en las cláusulas SELECT y WHERE.
  • Para las columnas de tipo RECORD, como la columna “geo” en este lab, se usa un nombre de dos partes, como "geo.country", para hacer referencia a columnas anidadas específicas.
  • Las columnas marcadas como REPEATED son colecciones que pueden tener múltiples filas, como demostró la columna “items” en este lab.
  • Cuando trabajas con columnas en modo REPEATED, se emplean métodos de referencia especiales en las consultas.
  • Una manera de aplanar estas estructuras anidadas es usar el operador UNNEST.

Si quisieras revisar los conceptos abarcados en este lab, consulta la lección sobre tipos de datos.

Conclusión

¡Muy bien!

Como analista de datos en la nube del comercio electrónico TheLook, usaste tus conocimientos de tipos de datos planos y anidados para ayudar a Marta a corregir una consulta y obtener estadísticas sobre una falta de ventas de producto en un mercado específico.

Primero, exploraste los tipos de datos planos y aplicaste tus conocimientos para corregir la consulta de Marta y que pudiera ejecutar el informe de ventas que necesitaba. Luego, exploraste los tipos de datos anidados para ayudar a Marta a descubrir por qué las camisetas Google Game Dino no se vendían en Singapur.

Estás en buen camino en la comprensión sobre cómo usar los tipos de datos planos y anidados para consultar datos con BigQuery.

Finaliza el lab

Antes de que finalices el lab, asegúrate de estar conforme con la forma en que completaste 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.

Copyright 2024 Google LLC. Todos los derechos reservados. Google y el logotipo de Google son marcas de Google LLC. El resto de los nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que están asociados.