Instrucciones y requisitos de configuración del lab
Protege tu cuenta y tu progreso. Usa siempre una ventana de navegador privada y las credenciales del lab para ejecutarlo.

Cómo crear tablas permanentes y vistas con acceso controlado en BigQuery v1.5

Lab 1 hora universal_currency_alt 5 créditos show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Este contenido aún no está optimizado para dispositivos móviles.
Para obtener la mejor experiencia, visítanos en una computadora de escritorio con un vínculo que te enviaremos por correo electrónico.

Descripción general

BigQuery es la base de datos analítica de Google de bajo costo, no-ops y completamente administrada. Con BigQuery, puedes consultar muchos terabytes de datos sin tener que administrar infraestructuras y sin necesitar un administrador de base de datos. BigQuery usa SQL y puede aprovechar el modelo de pago por uso. BigQuery te permite enfocarte en el análisis de datos para buscar estadísticas valiosas.

Usarás un conjunto de datos de comercio electrónico que tiene millones de registros de Google Analytics para Google Merchandise Store cargados en BigQuery. Cuentas con una copia de ese conjunto de datos para este lab y explorarás los campos y las filas disponibles para obtener estadísticas.

En este lab, aprenderás a crear nuevas tablas permanentes de informes y revisiones lógicas a partir de un conjunto de datos de comercio electrónico existente.

Configuración y requisitos

En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.

  1. Accede a Qwiklabs desde una ventana de incógnito.

  2. Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00) y asegúrate de finalizarlo en el plazo asignado.
    No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.

  3. Cuando esté listo, haga clic en Comenzar lab.

  4. Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.

  5. Haga clic en Abrir Google Console.

  6. Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
    Si usa otras credenciales, se generarán errores o incurrirá en cargos.

  7. Acepta las condiciones y omite la página de recursos de recuperación.

Abra BigQuery en Console

  1. En la consola de Google Cloud, seleccione elmenú de navegación > BigQuery.

Se abrirá el cuadro de mensaje Te damos la bienvenida a BigQuery en la consola de Cloud, Contiene un vínculo a la guía de inicio rápido y enumera las actualizaciones de la IU.

  1. Haga clic en Listo.

Tarea 1. Crea un nuevo conjunto de datos para almacenar las tablas

  1. En BigQuery, haz clic en Ver acciones cerca del nombre de tu proyecto y, luego, haz clic en Crear conjunto de datos.

  2. En el campo ID de conjunto de datos, escribe comercio electrónico. Deja todas las otras opciones en los valores predeterminados (Ubicación de los datos y Vencimiento predeterminado de la tabla).

  3. Haz clic en Crear conjunto de datos.

La opción Crear conjunto de datos elegida

Tarea 2. Cómo solucionar problemas en instrucciones CREATE TABLE

Tu equipo de analistas de datos te proporcionó las siguientes instrucciones de consulta diseñadas para crear una tabla permanente en tu nuevo conjunto de datos de comercio electrónico. Lamentablemente, no funcionan correctamente.

Diagnostica por qué cada consulta es incorrecta y ofrece una solución.

Reglas para crear tablas con SQL en BigQuery

Lee estas reglas para crear tablas y úsalas como guía cuando corrijas las consultas incorrectas:

  1. La lista de columnas especificada o las columnas inferidas de una cláusula query_statement (o ambas) deben estar presentes.
  2. Cuando están presentes la lista de columnas y la cláusula as query_statement, BigQuery ignora los nombres en la cláusula as query_statement y hace coincidir las columnas con la lista de columnas por posición.
  3. Cuando la cláusula as query_statement está presente, pero no la lista de columnas, BigQuery determina los nombres y tipos de columnas a partir de la cláusula as query_statement.
  4. Los nombres de columna deben especificarse mediante la lista de columnas o la cláusula as query_statement.
  5. No se permiten nombres de columna duplicados.

Consulta 1: Columnas, columnas, columnas

  • Agrega esta consulta al EDITOR de consultas y, luego, ejecútala, diagnostica el error y responde las siguientes preguntas:
#standardSQL # copy one day of ecommerce data to explore CREATE OR REPLACE TABLE ecommerce.all_sessions_raw_20170801 OPTIONS( description="Raw data from analyst team into our dataset for 08/01/2017" ) AS SELECT fullVisitorId, * FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE date = '20170801' #56,989 records ;

Error: CREATE TABLE has columns with duplicate name fullVisitorId at [8:2]

¿Cuál de las reglas para crear tablas se infringe en la consulta anterior?

Consulta 2: Revisión de columnas

  • Agrega esta consulta al EDITOR de consultas y, luego, ejecútala, diagnostica el error y responde las siguientes preguntas:
#standardSQL # copy one day of ecommerce data to explore CREATE OR REPLACE TABLE ecommerce.all_sessions_raw_20170801 #schema ( fullVisitorId STRING OPTIONS(description="Unique visitor ID"), channelGrouping STRING OPTIONS(description="Channel e.g. Direct, Organic, Referral...") ) OPTIONS( description="Raw data from analyst team into our dataset for 08/01/2017" ) AS SELECT * FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE date = '20170801' #56,989 records ;

Error: The number of columns in the column definition list does not match the number of columns produced by the query at [6:1]

¿Cuál de las reglas para crear tablas se infringe en la consulta anterior?

Nota: No puedes especificar un esquema de campos para una tabla nueva que no coincide con el número de columnas que se mostraron en la instrucción de la consulta. En el ejemplo anterior, se especificó un esquema de dos columnas con fullVisitorId y channelGrouping, pero en la instrucción de la consulta se especificaron todas las columnas mostradas (\*).

Consulta 3: ¡Es válida! ¿O no?

  • Agrega esta consulta al EDITOR de consultas y, luego, ejecútala, diagnostica el error y responde las siguientes preguntas:
#standardSQL # copy one day of ecommerce data to explore CREATE OR REPLACE TABLE ecommerce.all_sessions_raw_20170801 #schema ( fullVisitorId STRING OPTIONS(description="Unique visitor ID"), channelGrouping STRING OPTIONS(description="Channel e.g. Direct, Organic, Referral...") ) OPTIONS( description="Raw data from analyst team into our dataset for 08/01/2017" ) AS SELECT fullVisitorId, city FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE date = '20170801' #56,989 records ;

Valid: This query will process 1.05 GB when run.

Recuerda la regla n° 2: Cuando están presentes la lista de columnas y la cláusula as query_statement, BigQuery ignora los nombres en la cláusula as query_statement y hace coincidir las columnas con la lista de columnas por posición.

Consulta 4: El guardián

  1. Ejecuta la siguiente consulta en el EDITOR de consultas y, luego, diagnostica el error y responde las siguientes preguntas:
#standardSQL # copy one day of ecommerce data to explore CREATE OR REPLACE TABLE ecommerce.all_sessions_raw_20170801 #schema ( fullVisitorId STRING NOT NULL OPTIONS(description="Unique visitor ID"), channelGrouping STRING NOT NULL OPTIONS(description="Channel e.g. Direct, Organic, Referral..."), totalTransactionRevenue INT64 NOT NULL OPTIONS(description="Revenue * 10^6 for the transaction") ) OPTIONS( description="Raw data from analyst team into our dataset for 08/01/2017" ) AS SELECT fullVisitorId, channelGrouping, totalTransactionRevenue FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE date = '20170801' #56,989 records ;

Valid: This query will process 907.52 MB when run.

  1. Corrige la consulta modificada y vuelve a ejecutarla para comprobar que se ejecuta con éxito.

Consulta 5: Funciona según lo previsto

  1. Ejecuta esta consulta en el EDITOR de consultas y, luego, diagnostica el error y responde las siguientes preguntas:
#standardSQL # copy one day of ecommerce data to explore CREATE OR REPLACE TABLE ecommerce.all_sessions_raw_20170801 #schema ( fullVisitorId STRING NOT NULL OPTIONS(description="Unique visitor ID"), channelGrouping STRING NOT NULL OPTIONS(description="Channel e.g. Direct, Organic, Referral..."), totalTransactionRevenue INT64 OPTIONS(description="Revenue * 10^6 for the transaction") ) OPTIONS( description="Raw data from analyst team into our dataset for 08/01/2017" ) AS SELECT fullVisitorId, channelGrouping, totalTransactionRevenue FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE date = '20170801' #56,989 records ;
  1. Explora el panel de tu conjunto de datos de comercio electrónico para confirmar que exista all_sessions_raw_(1).

¿Por qué no se muestra el nombre completo de la tabla?

Respuesta: El sufijo de la tabla 20170801 se particiona automáticamente por día. Si creáramos más tablas para otros días, all_sessions_raw_(N) aumentaría por N días distintos de datos. En otro lab, se exploran distintas maneras de particionar las tablas de datos.

Consulta 6: Tu turno de practicar

  1. Objetivo: En el editor de consultas, crea una nueva tabla permanente que almacene todas las transacciones con ingresos del 1 de agosto de 2017.

Usa las reglas a continuación como guía:

  • Crea una nueva tabla en tu conjunto de datos de comercio electrónico y nómbrala revenue_transactions_20170801. Reemplaza la tabla si ya existe.
  • Extrae tus datos sin procesar de la tabla data-to-insights.ecommerce.all_sessions_raw.
  • Divide el campo de ingresos entre 1,000,000 y almacénalo como FLOAT64 en lugar de un NÚMERO ENTERO.
  • En tu tabla final, incluye únicamente transacciones con ingresos (sugerencia: usa una cláusula WHERE).
  • Incluye solo transacciones con fecha 20170801.
  • Incluye estos campos:
  • fullVisitorId como un campo de string OBLIGATORIO
  • visitId como un campo de string OBLIGATORIO (sugerencia: deberás escribir convert)
  • channelGrouping como un campo de string OBLIGATORIO
  • totalTransactionRevenue como un campo de FLOAT64
  • Agrega descripciones breves para los cuatro campos anteriores haciendo referencia al esquema.
  • Asegúrate de anular los registros duplicados que tienen el mismo fullVisitorId y visitId (sugerencia: usa DISTINCT).
/* write the answer to the above prompt in BigQuery and compare it to the answer below */

Respuesta posible:

#standardSQL # copy one day of ecommerce data to explore CREATE OR REPLACE TABLE ecommerce.revenue_transactions_20170801 #schema ( fullVisitorId STRING NOT NULL OPTIONS(description="Unique visitor ID"), visitId STRING NOT NULL OPTIONS(description="ID of the session, not unique across all users"), channelGrouping STRING NOT NULL OPTIONS(description="Channel e.g. Direct, Organic, Referral..."), totalTransactionRevenue FLOAT64 NOT NULL OPTIONS(description="Revenue for the transaction") ) OPTIONS( description="Revenue transactions for 08/01/2017" ) AS SELECT DISTINCT fullVisitorId, CAST(visitId AS STRING) AS visitId, channelGrouping, totalTransactionRevenue / 1000000 AS totalTransactionRevenue FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE date = '20170801' AND totalTransactionRevenue IS NOT NULL #XX transactions ;
  1. Después de ejecutar la consulta con éxito, confirma en tu conjunto de datos de comercio electrónico que exista la nueva tabla revenue_transactions_20170801 y elígela.

  2. Verifica el esquema. Para eso, compáralo con el ejemplo a continuación. Ten en cuenta los tipos de campos, los datos obligatorios y la descripción opcional:

Página de esquema con pestañas

Cómo manejar actualizaciones de datos de origen ascendentes

¿Qué estrategias se pueden usar para solucionar los datos inactivos?

Hay dos formas de solucionar los datos inactivos en las tablas de informes:

  1. Volver a ejecutar consultas que se insertan en registros nuevos para actualizar periódicamente las tablas permanentes. Esto se puede realizar con consultas programadas de BigQuery o con un flujo de trabajo de Cloud Dataprep/Cloud Dataflow.
  2. Usar vistas lógicas para volver a ejecutar una consulta almacenada cada vez que se seleccione la vista.

En el resto de este lab, te enfocarás en cómo crear vistas lógicas.

Tarea 3. Crea vistas

Las vistas son consultas guardadas que se ejecutan cada vez que se las llama. En BigQuery, las vistas son lógicas y no materializadas. Como parte de la vista, solo se almacena la consulta; no los datos subyacentes.

Consulta las últimas 100 transacciones

  1. Copia y pega la siguiente consulta y ejecútala en BigQuery:
#standardSQL SELECT DISTINCT date, fullVisitorId, CAST(visitId AS STRING) AS visitId, channelGrouping, totalTransactionRevenue / 1000000 AS totalTransactionRevenue FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE totalTransactionRevenue IS NOT NULL ORDER BY date DESC # latest transactions LIMIT 100 ;
  1. Haz un análisis para filtrar los resultados.

¿Cuál fue la última transacción de más de $2,000?

Respuesta:

date

fullVisitorId

visitId

channelGrouping

totalTransactionRevenue

20170801

9947542428111966715

1501608078

Referral

2934.61

Si se agregaran nuevos registros a este conjunto de datos públicos de comercio electrónico, también se actualizaría la última transacción.

  1. Para ahorrar tiempo y permitir una mejor organización y colaboración, puedes guardar tus consultas de informes comunes como vistas, tal como se muestra a continuación:
#standardSQL CREATE OR REPLACE VIEW ecommerce.vw_latest_transactions AS SELECT DISTINCT date, fullVisitorId, CAST(visitId AS STRING) AS visitId, channelGrouping, totalTransactionRevenue / 1000000 AS totalTransactionRevenue FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE totalTransactionRevenue IS NOT NULL ORDER BY date DESC # latest transactions LIMIT 100 ; Nota: A menudo, es difícil saber si usas SELECT en una tabla o una vista con solo mirar el nombre. Una convención sencilla es agregar el prefijo vw_ o un sufijo como _vw o _view al nombre de la vista.
  1. Además, puedes usar OPTIONS para agregar una descripción y etiquetas a la vista. Copia y pega la siguiente consulta y ejecútala en BigQuery:
#standardSQL CREATE OR REPLACE VIEW ecommerce.vw_latest_transactions OPTIONS( description="latest 100 ecommerce transactions", labels=[('report_type','operational')] ) AS SELECT DISTINCT date, fullVisitorId, CAST(visitId AS STRING) AS visitId, channelGrouping, totalTransactionRevenue / 1000000 AS totalTransactionRevenue FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE totalTransactionRevenue IS NOT NULL ORDER BY date DESC # latest transactions LIMIT 100 ;
  1. Busca la tabla vw_latest_transactions que acabas de crear en tu conjunto de datos de comercio electrónico y elígela.

  2. Selecciona la pestaña Detalles.

  3. Confirma que la descripción y las etiquetas de tu vista se muestren correctamente en la IU de BigQuery.

También puedes ver la consulta que define la vista en la página Detalles. Esto te servirá para entender la lógica de las vistas que tú o tu equipo crearon.

  1. Ahora ejecuta esta consulta para crear una nueva vista:
#standardSQL # top 50 latest transactions CREATE VIEW ecommerce.vw_latest_transactions # CREATE OPTIONS( description="latest 50 ecommerce transactions", labels=[('report_type','operational')] ) AS SELECT DISTINCT date, fullVisitorId, CAST(visitId AS STRING) AS visitId, channelGrouping, totalTransactionRevenue / 1000000 AS totalTransactionRevenue FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE totalTransactionRevenue IS NOT NULL ORDER BY date DESC # latest transactions LIMIT 50 ;

Error: Already Exists: Table project-name:ecommerce.vw_latest_transactions

Si ya creaste la vista antes, es probable que recibas un error. ¿Puedes determinar por qué?

Respuesta: La instrucción para crear vistas se actualizó de CREATE OR REPLACE a solo CREATE, por lo que no podrás reemplazar tablas o vistas si estas ya existen. Una tercera opción, CREATE VIEW IF NOT EXISTS, te permitirá crear tablas o vistas solo si estas no existen; en caso contrario, omitirá la creación para que no se produzca un error.

Crea vistas: tu turno para practicar

Situación: Tu equipo contra fraudes te pidió que crearas un informe que muestre las 10 transacciones más recientes cuyo monto del pedido sea 1,000 o más para revisarlo manualmente.

Tarea: Crea una nueva vista que muestre las 10 transacciones más recientes con ingresos mayores a 1,000, del 1 de enero de 2017 en adelante.

Usa estas reglas como guía:

  • Crea una nueva vista en tu conjunto de datos de comercio electrónico y nómbrala "vw_large_transactions". Reemplaza vista si ya existe.
  • Agrega una descripción para la vista: "transacciones grandes para revisión".
  • Agrega una etiqueta para la vista [("org_unit", "loss_prevention")].
  • Extrae tus datos sin procesar de la tabla data-to-insights.ecommerce.all_sessions_raw.
  • Divide el campo de ingresos entre 1,000,000.
  • Incluye únicamente transacciones con ingresos iguales o superiores a 1,000.
  • Incluye solo transacciones con fecha 20170101 o una fecha posterior, y ordénelas de modo que se muestren primero las más recientes.
  • Incluye solo currencyCode = 'USD'.
  • Muestra estos campos:
    • date
    • fullVisitorId
    • visitId
    • channelGrouping
    • totalTransactionRevenue AS revenue
    • currencyCode
    • v2ProductName
  • Asegúrate de anular los registros duplicados (sugerencia: usa DISTINCT).

Inténtalo

/* write the answer to the above prompt in BigQuery and compare it to the answer given below */

Solución posible:

#standardSQL CREATE OR REPLACE VIEW ecommerce.vw_large_transactions OPTIONS( description="large transactions for review", labels=[('org_unit','loss_prevention')] ) AS SELECT DISTINCT date, fullVisitorId, visitId, channelGrouping, totalTransactionRevenue / 1000000 AS revenue, currencyCode #v2ProductName FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE (totalTransactionRevenue / 1000000) > 1000 AND currencyCode = 'USD' ORDER BY date DESC # latest transactions LIMIT 10 ; Nota: Necesitas repetir la división en la cláusula WHERE porque no puedes usar nombres de campos con alias como filtros.

Crédito adicional

Situación: Tu departamento contra fraudes agradece la consulta y la supervisa a diario con el objetivo de detectar pedidos sospechosos. Ahora te pidió que, además de los resultados que enviaste antes, incluyas una muestra de los productos que conforman cada pedido.

  • Usa la función de agregación de strings de BigQuery STRING_AGG y el campo v2ProductName para modificar tu consulta anterior de modo que muestre en orden alfabético 10 de los nombres de los productos de cada pedido.

Solución posible:

#standardSQL CREATE OR REPLACE VIEW ecommerce.vw_large_transactions OPTIONS( description="large transactions for review", labels=[('org_unit','loss_prevention')] ) AS SELECT DISTINCT date, fullVisitorId, visitId, channelGrouping, totalTransactionRevenue / 1000000 AS totalTransactionRevenue, currencyCode, STRING_AGG(DISTINCT v2ProductName ORDER BY v2ProductName LIMIT 10) AS products_ordered FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE (totalTransactionRevenue / 1000000) > 1000 AND currencyCode = 'USD' GROUP BY 1,2,3,4,5,6 ORDER BY date DESC # latest transactions LIMIT 10

Observa aquí las dos adiciones para agregar la lista de productos en cada pedido con STRING_AGG(). Además, puesto que se realiza una agregación, se agrega la cláusula GROUP BY necesaria para los otros campos.

Cómo usar SESSION_USER() en vistas para limitar el acceso a los datos

Situación: El líder de tu equipo de datos te pidió que buscaras la forma de limitar qué personas de tu organización podían ver los datos obtenidos mediante la vista que creaste recientemente. La información de pedidos es especialmente sensible y debe compartirse solo con los usuarios que necesitan verla.

Tarea: Modifica la vista que creaste antes para que solo los usuarios que accedieron con un dominio de sesión qwiklabs.net puedan ver los datos en la vista subyacente. (Nota: En un lab posterior sobre acceso, aprenderás a crear listas de grupos de usuarios específicos permitidos. Por ahora, realizarás la validación en función del dominio del usuario de la sesión).

  1. Para ver tu propia información de acceso a la sesión, ejecuta la siguiente consulta que usa SESSION_USER():
#standardSQL SELECT SESSION_USER() AS viewer_ldap;

Verás xxxx@qwiklabs.net.

  1. Modifica la siguiente consulta para agregar un filtro adicional con el objetivo de permitir que solo los usuarios del dominio qwiklabs.net puedan ver los resultados:
#standardSQL SELECT DISTINCT SESSION_USER() AS viewer_ldap, REGEXP_EXTRACT(SESSION_USER(), r'@(.+)') AS domain, date, fullVisitorId, visitId, channelGrouping, totalTransactionRevenue / 1000000 AS totalTransactionRevenue, currencyCode, STRING_AGG(DISTINCT v2ProductName ORDER BY v2ProductName LIMIT 10) AS products_ordered FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE (totalTransactionRevenue / 1000000) > 1000 AND currencyCode = 'USD' # add filter here GROUP BY 1,2,3,4,5,6,7,8 ORDER BY date DESC # latest transactions LIMIT 10

Solución posible:

#standardSQL SELECT DISTINCT SESSION_USER() AS viewer_ldap, REGEXP_EXTRACT(SESSION_USER(), r'@(.+)') AS domain, date, fullVisitorId, visitId, channelGrouping, totalTransactionRevenue / 1000000 AS totalTransactionRevenue, currencyCode, STRING_AGG(DISTINCT v2ProductName ORDER BY v2ProductName LIMIT 10) AS products_ordered FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE (totalTransactionRevenue / 1000000) > 1000 AND currencyCode = 'USD' AND REGEXP_EXTRACT(SESSION_USER(), r'@(.+)') IN ('qwiklabs.net') GROUP BY 1,2,3,4,5,6,7,8 ORDER BY date DESC # latest transactions LIMIT 10
  1. Ejecuta la consulta anterior para confirmar que puedes ver los registros que se mostraron.

  2. Ahora, quita todos los dominios del filtro IN REGEXP_EXTRACT(SESSION_USER(), r'@(.+)') IN (''), vuelva a ejecutar la consulta y confirma que no se muestra ningún registro.

  3. Vuelve a crear la vista vw_large_transactions y reemplázala por la nueva consulta anterior. Como parámetro adicional de OPTIONS, agrega expiration_timestamp para que toda la vista sea de 90 días a partir de ahora:

expiration_timestamp=TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL 90 DAY).

Solución posible:

#standardSQL CREATE OR REPLACE VIEW ecommerce.vw_large_transactions OPTIONS( description="large transactions for review", labels=[('org_unit','loss_prevention')], expiration_timestamp=TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL 90 DAY) ) AS #standardSQL SELECT DISTINCT SESSION_USER() AS viewer_ldap, REGEXP_EXTRACT(SESSION_USER(), r'@(.+)') AS domain, date, fullVisitorId, visitId, channelGrouping, totalTransactionRevenue / 1000000 AS totalTransactionRevenue, currencyCode, STRING_AGG(DISTINCT v2ProductName ORDER BY v2ProductName LIMIT 10) AS products_ordered FROM `data-to-insights.ecommerce.all_sessions_raw` WHERE (totalTransactionRevenue / 1000000) > 1000 AND currencyCode = 'USD' AND REGEXP_EXTRACT(SESSION_USER(), r'@(.+)') IN ('qwiklabs.net') GROUP BY 1,2,3,4,5,6,7,8 ORDER BY date DESC # latest transactions LIMIT 10; Nota: La opción expiration_timestamp también se puede aplicar en tablas permanentes.
  1. Confirma con la instrucción SELECT que puedes ver los datos que se muestran en la vista (con el acceso al dominio) y la marca de tiempo de vencimiento en los detalles de la vista.
#standardSQL SELECT * FROM ecommerce.vw_large_transactions;

¡Felicitaciones!

Creaste con éxito tablas y vistas con acceso controlado por medio de DDL (lenguaje de definición de datos) de SQL dentro de BigQuery.

Finalice su lab

Cuando haya completado el lab, haga clic en Finalizar lab. Google Cloud Skills Boost quitará los recursos que usó y limpiará la cuenta.

Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.

La cantidad de estrellas indica lo siguiente:

  • 1 estrella = Muy insatisfecho
  • 2 estrellas = Insatisfecho
  • 3 estrellas = Neutral
  • 4 estrellas = Satisfecho
  • 5 estrellas = Muy satisfecho

Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.

Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.

Copyright 2026 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.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usar una ventana de incógnito o de navegación privada es la mejor forma de 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.