GSP935
Descripción general
Looker es una plataforma de datos moderna en Google Cloud que te permite analizar y visualizar tus datos de forma interactiva. Puedes usarla para analizar datos en profundidad, integrar estadísticas de diferentes fuentes de datos, crear flujos de trabajo prácticos basados en datos y crear aplicaciones de datos personalizadas.
En este lab, aprenderás a usar las tablas derivadas nativas para responder preguntas complejas, abordar casos de uso avanzados y personalizarlas con parámetros integrados.
Qué aprenderás
Aprenderás a hacer lo siguiente:
- Crear tablas derivadas nativas para responder preguntas complejas con columnas derivadas
- Actualizar una tabla derivada nativa para generar valores dinámicos con parámetros de filtro integrados
- Comprender cómo los usuarios empresariales aprovechan las tablas derivadas nativas personalizadas para responder preguntas complejas
Requisitos previos:
Para maximizar tu aprendizaje, es necesario que te familiarices con LookML, y te recomendamos que completes el curso con insignia de habilidad Comprende LookML en Looker antes de comenzar este lab.
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El temporizador, 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.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizará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 de navegador privada o de incógnito para ejecutar el lab. Así evitarás conflictos 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 Looker
-
Cuando tengas todo listo, haz clic en Comenzar lab.
Aparecerá el panel Detalles del lab con las credenciales temporales que debes usar para este lab.
Si debes pagar por el lab, se abrirá una ventana emergente para que selecciones tu forma de pago.
Observa tus credenciales del lab en el panel Detalles del lab. Las usarás para acceder a la instancia de Looker de este lab.
Nota: Si usas otras credenciales, recibirás errores o incurrirás en cargos.
-
Haz clic en Abrir Looker.
-
Ingresa el nombre de usuario y la contraseña que se proporcionaron en los campos Correo electrónico y Contraseña.
Nombre de usuario:
{{{looker.developer_username | Username}}}
Contraseña:
{{{looker.developer_password | Password}}}
Importante: Debes usar las credenciales del panel Detalles del lab en esta página. No uses tus credenciales de Google Cloud Skills Boost. Si tienes una cuenta personal de Looker, no la uses para este lab.
-
Haz clic en Acceder.
Después de acceder correctamente, verás la instancia de Looker para este lab.
Tarea 1: Personaliza las tablas derivadas nativas con columnas derivadas
Las tablas derivadas nativas son tablas derivadas que realizan la misma función que una consulta en SQL escrita, pero se expresan de forma nativa en el lenguaje LookML.
¿Por qué deberías usar tablas derivadas nativas? Piensa en la tabla derivada de SQL user_facts que creaste en el lab anterior. Realizaste una operación COUNT de los IDs de pedido como lifetime_order_count y una operación SUM de sale_price como lifetime_revenue. Si aún no lo notaste, estas agregaciones ya existen en tu modelo como mediciones. Tu vista order_items ya tiene un elemento order_count y un elemento total_sales.
Las tablas derivadas nativas son excelentes porque incorporan el principio fundamental de reutilización de LookML. Permiten heredar dimensiones, mediciones y hasta exploraciones y lógicas de unión ya existentes. Esto hace que tu modelo sea mucho más fácil de mantener a largo plazo, puesto que minimizas la cantidad de referencias de bases de datos “hard-coded”.
En esta sección, crearás una tabla derivada nativa llamada brand_order_facts que contiene una columna derivada para clasificar las marcas según los ingresos totales y que se puede filtrar con un período dinámico o entradas del usuario. También crearás nuevas dimensiones que etiqueten las filas como pertenecientes o no a las 5 marcas principales (es decir, agruparás todas las marcas clasificadas en el puesto 6 o más abajo como un solo nombre de marca de “6) Other”).
Crea una tabla derivada nativa que clasifique las 5 marcas principales según las ventas totales
-
Primero, en la parte inferior izquierda de la interfaz de usuario de Looker, haz clic en el botón de activación para ingresar al Modo de desarrollo.
-
En el menú de navegación de Looker, haz clic en Explorar.
-
En E-Commerce Training, haz clic en Order Items.
-
En la vista Inventory Items, haz clic en la dimensión Product Brand.
-
En la vista Order Items, haz clic en la medición Total Revenue.
-
Haz clic en Ejecutar.
-
Haz clic en el ícono de ajustes de configuración (
) junto a Ejecutar (parte superior derecha de la página) y selecciona Consultar LookML.
-
Pasa a la pestaña Tabla derivada, haz clic en el código de LookML del cuadro y cópialo en el portapapeles.
-
Navega al IDE de Looker (Desarrollo > qwiklabs-ecommerce), haz clic en el ícono de signo más (+) junto a Navegador de archivos y elige Crear vista.
-
Asigna el nombre brand_order_facts a la vista nueva y haz clic en Crear.
-
Haz clic en brand_order_facts.view y arrástralo a la carpeta views.
-
Borra todo el código de muestra generado automáticamente y pega el código copiado de exploración. No olvides corregir el nombre de la vista generado automáticamente y cambiarlo a brand_order_facts. Tu vista debería verse de la siguiente manera:

- Haz clic en Guardar cambios.
Agrega una columna derivada brand_rank
Ahora tienes la base para tu tabla derivada nativa. La siguiente tarea es clasificar las marcas. En la mayoría de los dialectos de SQL, esto se puede hacer con lo que se denomina una función ROW_NUMBER().
Para ello, deberás agregar un elemento derived_column al parámetro explore_source de tus tablas derivadas nativas. En una tabla derivada nativa, puedes usar el elemento derived_column para especificar una columna que aún no existe en la exploración especificada por el parámetro explore_source. Para este ejemplo, la llamarás brand_rank.
- En la definición
column: total_revenue {}, comienza por definir la columna derivada brand_rank:
derived_column: brand_rank {}
- A continuación, agrega el siguiente parámetro sql entre las llaves:
derived_column: brand_rank {
sql: row_number() over (order by total_revenue desc) ;;
}
Cada vez que crees una columna derivada, también deberás agregarle una dimensión. Es lo mismo que cuando tienes una columna en tu tabla de base de datos normal: la columna debe representarse en LookML como una dimensión. ¿Notaste que las dimensiones generadas automáticamente no tienen un parámetro sql? Esto se debe a que, cuando no especificas el parámetro sql para una dimensión, Looker supone que debe apuntar a una columna en los datos subyacentes con exactamente el mismo nombre de la dimensión. Si lo deseas, puede ser un acceso directo útil para otras áreas de tu proyecto, aunque, en general, es mejor explicitar siempre que sea posible. En este caso, por lo menos debes especificar el tipo. Si no lo haces, Looker usará la cadena de forma predeterminada, lo que no te conviene en este caso.
- Fuera de la definición de derived_table, justo encima de la dimensión
product_brand, agrega el siguiente código:
dimension: brand_rank {
type: number
}
Tu nueva vista ahora debería ser similar a la siguiente:

-
Haz clic en Guardar cambios.
-
Luego, en la misma página, haz clic en el archivo training_ecommerce.model dentro de la carpeta model para modificar el contenido.
-
Busca la definición explore: order_items.
-
En la definición explore: order_items, especifica lo siguiente para agregar una nueva unión de brand_order_facts:
join: brand_order_facts {
type: left_outer
sql_on: ${inventory_items.product_brand} = ${brand_order_facts.product_brand} ;;
relationship: many_to_one
}
-
Haz clic en Guardar cambios.
-
Tu archivo de modelo ahora debería ser similar al siguiente:

-
Ahora que uniste la vista brand_order_facts a la exploración, navega a la página de exploración de Order Items.
-
En la vista Brand Order Facts, selecciona las dimensiones Brand Rank, Product Brand y, luego, Total Revenue.
-
Establece el límite de filas en 10.
-
Haz clic en Ejecutar. Tu resultado debería verse como el siguiente:

Hasta aquí, todo bien. Pero ¿qué sucede si los usuarios empresariales quieren ver los nombres de las marcas como “1) Marca de ejemplo” y no solo “Marca de ejemplo”? ¿Con qué acciones podría lograrse esto? En este caso, podrías crear una dimensión que concatene otros dos valores de dimensión.
-
Regresa a la vista brand_order_facts.
-
Crea otra dimensión llamada brand_rank_concat, que concatene la clasificación de la marca y la marca del producto:
dimension: brand_rank_concat {
type: string
sql: ${brand_rank} || ') ' || ${product_brand} ;;
}
- Oculta
brand_rank, puesto que es probable que los usuarios empresariales solo encuentren el número de clasificación en nuestro nuevo brand_rank_concat y no quieran usar un campo separado:
dimension: brand_rank {
hidden: yes
type: number
}
- Agrega una etiqueta a
brand_rank_concat para que sea más fácil de usar. Usa la etiqueta “Brand Name”:
dimension: brand_rank_concat {
label: "Brand Name"
type: string
sql: ${brand_rank} || ') ' || ${product_brand} ;;
}
En el último paso, deberás agrupar todas las marcas que se encuentren en el lugar 6 de la clasificación y más abajo en una clasificación “Other”. Para ello, primero crearás una dimensión intermedia que evalúe si la clasificación de una marca se encuentra entre los 5 primeros lugares o no.
- En la misma vista brand_order_facts, crea una nueva dimensión llamada
brand_rank_top_5 con los siguientes parámetros:
dimension: brand_rank_top_5 {
hidden: yes
type: yesno
sql: ${brand_rank} <= 5 ;;
}
- A continuación, crea una nueva dimensión llamada
brand_rank_grouped y, luego, incorpora la dimensión brand_rank_top_5 con el siguiente código:
dimension: brand_rank_grouped {
label: "Brand Name Grouped"
type: string
sql: case when ${brand_rank_top_5} then ${brand_rank_concat} else '6) Other' end ;;
}
- Haz clic en Guardar cambios.
Ahora, tu vista debería ser similar a la siguiente:

-
Regresa a la página Exploración de Order Items.
-
En la vista Brand Order Facts, selecciona la dimensión Brand Name Grouped.
En la vista Order Items, selecciona la medición Total Revenue. Establece el límite de filas en 10.
-
Haz clic en Ejecutar.
-
Asegúrate de que la columna Brand Name Grouped esté ordenada de la primera a la última y, luego, en la pestaña Visualización, haz clic en Gráfico circular.
-
Verifica que tu visualización sea similar a la siguiente:

-
Haz clic en el ícono de ajustes de configuración (
) junto a Ejecutar (parte superior derecha de la página) y selecciona Guardar > Como vista.
-
Asigna el título Ranked Brand Revenue a la vista.
-
Haz clic en Guardar.
-
Regresa a la vista brand_order_facts.
Confirma los cambios y realiza la implementación en producción
-
Haz clic en Validar LookML y, luego, en Commit Changes & Push.
-
Agrega un mensaje de confirmación y haz clic en Confirmar.
-
Por último, haz clic en Implementar en producción.
¡Genial! Esperamos que esto te ayude a comprender lo útil que puede ser desglosar un caso de uso o la lógica deseada en dimensiones básicas separadas, que luego puedes combinar o usar como base para responder preguntas empresariales específicas. En el desarrollo de LookML según las prácticas recomendadas, es muy común tener muchas dimensiones y mediciones ocultas como estas que se usan en pasos intermedios.
Haz clic en Revisar mi progreso para verificar la realización de la tarea indicada arriba. Personalizar las tablas derivadas nativas con columnas derivadas
Tarea 2: Personaliza tablas derivadas nativas con filtros
Ahora, supongamos que a la empresa solo le interesan los pedidos recientes realizados en los últimos 365 días. Quizás algunas de estas 5 marcas principales fueron muy populares hace años debido a diferentes tendencias, pero las clasificaciones podrían haber cambiado en el último año.
En esta sección, explorarás los diferentes tipos de filtros que puedes usar para tu tabla derivada nativa en LookML. La opción Filtros se puede usar para aplicar filtros a la tabla derivada, de forma similar a una medición filtrada. Agrega una cláusula WHERE o HAVING.
Agrega un filtro de fecha estático
-
Primero, regresa a la vista brand_order_facts.
-
En la definición de derived_column, agrega un filtro para restringir la tabla derivada nativa a los pedidos creados en los últimos 365 días:
filters: [order_items.created_date: "365 days"]
- Haz clic en Guardar cambios. Tu archivo ahora debería ser similar al siguiente:

-
Regresa a la exploración de Order Items.
-
En la vista Brand Order Facts, selecciona Brand Name Grouped.
-
En la vista Order Items, selecciona la medición Total Revenue.
-
Haz clic en Ejecutar.
-
En la barra Datos, haz clic en la pestaña SQL para ver cómo se usa el filtro en la consulta.
Debido a que agregaste un filtro según el valor de Created Date en Order Items para que se analicen solo los pedidos realizados en los últimos 365 días, la condición WHERE solo se genera en lo que se denomina la consulta externa. Este es el comportamiento predeterminado de cualquier filtro de dimensión. No puedes indicarle que vaya dentro de la expresión de tabla común de la tabla derivada ni hacer que la cláusula WHERE externa se aplique también a la consulta interna. Aquí es donde resulta útil agregar un filtro a la NDT.
Agrega un filtro de vinculación
¿Qué sucede si la empresa considera que es demasiado inflexible restringir los datos solo a los pedidos de los últimos 365 días? A veces, es posible que los usuarios quieran analizar las clasificaciones de los últimos dos años. Con filters: [order_items.created_date: "365 days"], se codifica el período.
En este caso, bind_filters puede ser un parámetro más útil que los filtros. Puedes indicar qué campo de la exploración externa deseas aplicar también a la consulta interna de la tabla derivada nativa (el campo from_field) y a qué campo de la tabla derivada nativa se debe asignar (el campo to_field). En la gran mayoría de los casos, estos dos valores deberían ser iguales.
El subparámetro bind_filters de explore_source pasa un filtro específico de la consulta de exploración a la subconsulta de la tabla derivada nativa:
- El elemento
to_field es el campo de la tabla derivada nativa al que se aplica el filtro. El elemento to_field debe ser un campo del parámetro explore_source subyacente.
- El elemento
from_field especifica el campo de la exploración del que se obtendrá el filtro, si el usuario especifica un filtro en el entorno de ejecución.
-
Regresa a la vista brand_order_facts.
-
Para usar el filtro de vinculación, primero quita el filtro de fecha estático dentro de la definición de la tabla derivada que creaste en la sección anterior.
-
A continuación, agrega la siguiente plantilla de bind_filters en la definición de derived_column:
bind_filters: {
from_field: # El campo con el que interactúa el usuario final por medio del área de filtros
to_field: # El campo que debe filtrarse dentro de la NDT
}
En este caso, debes tomar el filtro from_field: order_items.created_date y hacer que influya en to_field: order_items.created_date o que se aplique a él.
- Agrega el siguiente código para los campos del filtro de vinculación:
bind_filters: {
from_field: order_items.created_date
to_field: order_items.created_date
}
Nota: Esto equivale a agregar un filtro basado en plantillas a la tabla derivada de SQL. Como viste en el lab anterior, se agregó un filtro basado en plantillas a una tabla derivada de SQL para que los usuarios pudieran elegir una fecha y ver cómo se actualizaban los valores según esa fecha.
- Haz clic en Guardar cambios. Tu archivo debería ser similar al siguiente:

-
Regresa a la exploración de Order Items.
-
En la vista Brand Order Facts, selecciona Brand Name Grouped.
-
En la vista Order Items, selecciona la medición Total Revenue.
-
También en la vista Order Items, dimensión Created Date, selecciona el campo Date y, luego, el botón de filtro junto a Date.
-
En la definición del filtro, especifica el filtro como: is in the past 1000 days. Para esta demostración, usamos 1,000 días para que el filtro no sea demasiado restrictivo, ya que así captura los últimos 3 años.
-
Haz clic en Ejecutar.

- En la barra Datos, haz clic en la pestaña SQL para ver cómo se usa el filtro en la consulta. Observa que el SQL generado ahora actualiza de forma dinámica la condición WHERE dentro de la expresión de tabla común para la tabla derivada, así como la condición WHERE externa.
Como puedes ver, esto es mucho más flexible. Si filtras según los pedidos creados en los 3 últimos trimestres, la tabla derivada nativa calcula las clasificaciones de los últimos 3 trimestres según corresponda. Además, si filtras según los pedidos creados en un período determinado, la tabla derivada nativa también usa ese mismo período en su condición WHERE.
-
Ahora, en el campo Users, selecciona Country y Age, y agrega un filtro para estas opciones. Configúralos de la siguiente forma:Country is equal to USA y Age is greater than 21.
-
Haz clic en Ejecutar.

- Por último, haz clic en la pestaña SQL.
Observa que la condición WHERE de la tabla derivada no se ve afectada. ¿Qué sucede si los usuarios empresariales tienen otros criterios además de la fecha de creación de los artículos pedidos? ¿Qué sucede si solo quieren ver las clasificaciones de los pedidos de clientes de EE.UU. o de clientes hombres?
Sin duda, podrías seguir agregando bind_filters, pero observa cuántos campos tienes en la exploración de Order Items. Llevaría mucho tiempo agregar bind_filters para todos ellos. Aquí es donde puede ser extremadamente útil otro parámetro: bind_all_filters.
Haz clic en Revisar mi progreso para verificar la realización de la tarea indicada arriba. Personalizar tablas derivadas nativas con filtros
Usa bind_all_filters
La forma más sencilla de pasar filtros de una exploración a una subconsulta de tabla derivada nativa es especificar bind_all_filters: yes en el parámetro explore_source de la tabla derivada nativa. Esto pasará todos los filtros del entorno de ejecución de una exploración a la subconsulta de la tabla derivada nativa.
Si deseas usar la tabla derivada nativa en otra exploración, usa el parámetro bind_filters, como se describe en la sección anterior.
-
Comienza por quitar bind_filter dentro de la definición de la tabla derivada que creaste en la sección anterior.
-
Agrega la definición bind_all_filters: yes debajo de la definición derived_column no solo para vincularle order_created_date, sino también cada filtro a ella:
bind_all_filters: yes
- Haz clic en Guardar cambios. Tu archivo debería ser similar al siguiente:

-
Regresa a la exploración de Order Items.
-
En la vista Brand Order Facts, selecciona Brand Name Grouped.
-
En la vista Order Items, selecciona la medición Total Revenue.
-
También en la vista Order Items, busca la dimensión Created Date y haz clic en el botón de filtro junto a Date.
-
En la definición del filtro, especifica que el filtro sea: is in the past 365 days.
-
En la vista Users, agrega un filtro en Country y Age, y configúralos como Country is equal to USA y Age is greater than 21.
-
Haz clic en Ejecutar.
-
Haz clic en la pestaña SQL. Observa cómo la condición WHERE de la tabla derivada ahora se actualiza de forma dinámica.
Si bien bind_all_filters es excelente, solo funciona si uniste la tabla derivada nativa a su explore_source. En otras palabras, solo puedes usar esto aquí porque uniste brand_order_facts a la misma exploración que explore_source, order_items.
¿Por qué? Porque bind_all_filters hace que Looker deba saber cómo generar una condición WHERE para cualquier campo de toda la exploración. Si la tabla derivada nativa usa un parámetro explore_source de order_items, pero la unes a otra exploración, esa otra exploración podría tener cualquier cantidad de vistas y campos unidos que no existen en order_items y, por lo tanto, no tendrían sentido en el mundo de order_items. Looker no sabría cómo filtrar la tabla derivada con esos otros campos.
Ahora que viste bind_all_filters en acción, prueba otros filtros de exploración y observa cómo afectan la forma en que se compila la tabla derivada nativa.
- Regresa a la vista brand_order_facts.
Confirma los cambios y realiza la implementación en producción
-
Haz clic en Validar LookML y, luego, en Commit Changes & Push.
-
Agrega un mensaje de confirmación y haz clic en Confirmar.
-
Por último, haz clic en Implementar en producción.
¡Felicitaciones!
En este lab, usaste tablas derivadas nativas para responder preguntas complejas y abordar casos de uso avanzados con columnas derivadas, y las actualizaste para generar valores dinámicos con parámetros de filtro integrados. También aprendiste de qué manera los usuarios empresariales aprovechan las tablas derivadas nativas personalizadas para responder preguntas complejas.
Próximos pasos y más información
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Actualización más reciente del manual: 4 de marzo de 2024
Prueba más reciente del lab: 4 de marzo de 2024
Copyright 2026 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.