Curso
La tecnología de almacenamiento de datos se ha consolidado recientemente para ser más escalable y menos costosa con la popularización de los servicios de nube. Una de las soluciones más comunes es el almacén de datos BigQuery de Google Cloud Platform.
La encuesta Stack Overflow 2024 confirma su creciente popularidad, habiendo alcanzado un porcentaje de adopción del 24,1 % entre los usuarios de la nube en todo el mundo. La demanda de expertos en BigQuery ha aumentado significativamente en diversos sectores, por lo que comprender sus fundamentos se ha convertido en una necesidad profesional entre los profesionales de los datos.
En este artículo, encontrarás una recopilación de algunas preguntas sobre BigQuery que suelen plantearse en las entrevistas de trabajo para ayudarte a prepararte. Si estás empezando a familiarizarte con BigQuery, te recomiendo que primero consultes la siguiente guía sobre almacenamiento de datos en GCP.
Preguntas básicas para una entrevista sobre BigQuery
Es fundamental conocer los conceptos básicos de BigQuery antes de abordar temas complejos. Estas preguntas evalúan tu comprensión de sus conceptos básicos, arquitectura y funcionalidad. Si no puedes responder a las siguientes preguntas, te recomiendo que empieces desde el principio consultando la Guía para principiantes de BigQuery y te inscribas en nuestro curso introductorio sobre BigQuery.
¿Qué es BigQuery y en qué se diferencia de las bases de datos tradicionales?
Por qué se pregunta: Evaluar tu comprensión de los almacenes de datos modernos y sus ventajas sobre las bases de datos tradicionales.
BigQuery es un almacén de datos sin servidor y totalmente gestionado en Google Cloud, diseñado para el análisis de datos a gran escala. Permite realizar consultas SQL a alta velocidad en conjuntos de datos masivos sin necesidad de gestionar la infraestructura, lo que permite a los usuarios centrarse en la información obtenida en lugar de en el mantenimiento.
A diferencia de las bases de datos relacionales locales tradicionales, que suelen estar basadas en filas y limitadas por restricciones de hardware, BigQuery es un sistema de almacenamiento columnar nativo de la nube que ofrece una escalabilidad casi infinita. Tu arquitectura distribuida y tu modelo de precios de pago por uso lo hacen más eficiente para gestionar cargas de trabajo analíticas que las bases de datos convencionales.
¿Qué es un conjunto de datos en BigQuery?
Por qué se pregunta: Para poner a prueba tus conocimientos sobre la organización de datos y la estructura de BigQuery.
En BigQuery, un conjunto de datos se define como el contenedor superior que organiza tablas, vistas y otros recursos. Esto allana el camino para el control de acceso y la localización de los datos. Al estructurar los datos de manera eficiente, los conjuntos de datos garantizan un mejor rendimiento de las consultas y una mejor gestión del acceso, lo que los convierte en un componente fundamental de la arquitectura de BigQuery.
¿Cómo se cargan los datos en BigQuery?
Por qué se pregunta: Para poner a prueba tus conocimientos sobre los diferentes métodos de ingestión de datos.
BigQuery ofrece varios métodos de ingestión de datos destinados a diferentes fines.
- Modo de carga por lotes se utiliza normalmente para cargar un gran conjunto de datos históricos en BigQuery mediante la interfaz de usuario web de BigQuery, la herramienta de línea de comandos bq o llamadas a la API.
- Ingesta de streaming permite el procesamiento de datos en tiempo real mediante el envío de registros individuales o pequeños lotes utilizando la API de streaming de BigQuery.
- El servicio de transferencia de datos de BigQuery puede simplificar las importaciones de datos programadas desde Google Cloud Storage, Google Ads y fuentes SaaS.
Para flujos de trabajo ETL avanzados, Google Cloud Dataflow y otras herramientas de canalización facilitan el traslado fluido de datos a BigQuery. La elección del método de ingestión más adecuado depende del volumen de datos, la latencia y las necesidades de procesamiento.
¿Qué tipos de datos admite BigQuery?
Por qué se pregunta: Para poner a prueba tus conocimientos sobre las capacidades de gestión de datos de BigQuery.
BigQuery admite una gran variedad de tipos de datos, clasificados en:
- Tipos básicos: BOOL, INT64, FLOAT64, STRING, BYTES, DATE, DATETIME, TIME, TIMESTAMP
- Tipos complejos: ARRAY, STRUCT, JSON
- Tipos especializados: NUMÉRICO, BIGNUMÉRICO, INTERVALO, GEOGRAFÍA, RANGO
Cada tipo de datos tiene un tamaño de almacenamiento lógico definido, lo que afecta al rendimiento y al coste de las consultas. Por ejemplo, el almacenamiento STRING depende de la longitud codificada en UTF-8, mientras que ARRAY<INT64> requiere 8 bytes por elemento. Comprender estos tipos ayuda a optimizar las consultas y gestionar los costes de forma eficiente.
Puedes consultar todos los tipos de datos compatibles en la siguiente tabla.

Tipos de datos de BigQuery. Imagen de Documentación de la nube de Google.
¿Cuáles son las principales ventajas de utilizar BigQuery?
Por qué se pregunta: Para asegurarte de que comprendes las principales ventajas de utilizar BigQuery como almacén de datos.
El uso de los servicios de BigQuery ofrece cinco ventajas principales con respecto a las soluciones autogestionadas tradicionales:
- Escalabilidad: Todas las inversiones en hardware se posponen inicialmente. Nos permite ampliar o reducir fácilmente los recursos, en función de las necesidades del negocio.
- Flexibilidad: La infraestructura se puede modificar según las necesidades del negocio.
- Alta seguridad: Las copias de seguridad automáticas y las funciones de recuperación ante desastres son características predeterminadas de las soluciones en la nube como GCP.
- Rentable: Las opciones de pago por uso permiten a los clientes pagar solo por los servicios que utilizan.
- Intercambio de datos y colaboración: El uso de servicios en la nube fomenta el intercambio de datos y la colaboración.

Ventajas de BigQuery. Imagen del autor.
Preguntas técnicas para entrevistas sobre BigQuery
Una vez que hayas comprendido los fundamentos de BigQuery, es hora de profundizar en aspectos más técnicos que los entrevistadores suelen evaluar.
Estas preguntas van más allá de las definiciones básicas y ponen a prueba tu capacidad para optimizar el rendimiento, gestionar los costes y trabajar con funciones avanzadas como la partición, la agrupación en clústeres y la seguridad.
¿Qué es la partición en BigQuery y cómo mejora el rendimiento?
Por qué se pregunta: Evaluar tus conocimientos sobre técnicas de organización de datos y su impacto en la eficiencia de las consultas.
La partición en BigQuery es un método para subdividir tablas grandes en partes más pequeñas y manejables según un criterio determinado, como la fecha, la hora de ingestión o los valores de los números enteros. De este modo, al segmentar los datos en particiones, BigQuery puede restringir la cantidad de datos que se analizan durante las consultas, lo que aumenta considerablemente el rendimiento y reduce los costes.
Por ejemplo, una tabla particionada que almacena datos de transacciones diarias permite que las consultas filtren rangos de fechas específicos de manera eficiente, en lugar de escanear todo el conjunto de datos. Esto hace que la partición resulte especialmente beneficiosa para el análisis de series temporales y las cargas de trabajo analíticas a gran escala.
¿Qué es la agrupación en BigQuery y cómo mejora el rendimiento de las consultas?
Por qué se pregunta: Evaluar tu comprensión de las estrategias de organización de datos que optimizan la eficiencia y el coste de las consultas.
La agrupación en BigQuery se refiere a la organización de datos dentro de particiones basada en los valores de una o varias columnas especificadas. Al agrupar esencialmente las filas relacionadas mediante la agrupación, BigQuery reduce la cantidad de datos que se escanean, lo que mejora el rendimiento de las consultas y disminuye los costos generales de procesamiento.
Esta forma de optimizar las consultas ha demostrado ser especialmente eficaz a la hora de filtrar, ordenar o agregar datos basados en columnas agrupadas, donde el motor de consultas puede omitir todos los datos irrelevantes en lugar de realizar un escaneo completo de la partición. La agrupación funciona mejor cuando se combina con la partición y ofrece aún más ventajas de rendimiento cuando se trabaja con grandes conjuntos de datos.
¿Cuál es la diferencia entre una tabla y una vista en BigQuery?
Por qué se pregunta: Evaluar tu comprensión de las estructuras de datos de BigQuery y sus casos de uso.
En BigQuery, una tabla es una unidad de almacenamiento estructurada que contiene datos físicamente, mientras que una vista es una tabla virtual que recupera datos dinámicamente basándose en una consulta SQL predefinida. La diferencia clave entre ellos es que las vistas no pueden contener datos por sí mismas, sino que sirven como elemento básico para escribir consultas grandes o aplicar reglas de seguridad en torno al acceso a los datos, al ofrecer acceso a un subconjunto de datos sin duplicarlos efectivamente. Las vistas también mejoran los tiempos de ejecución de las consultas al permitir a los usuarios volver a acceder a los datos sin tener que recargar ni reorganizar las tablas, lo que las hace muy útiles para el análisis, la abstracción de datos y la aplicación de medidas de seguridad.
En resumen:
- A tabla es una unidad de almacenamiento estructurada que contiene datos físicamente.
- A vista es una tabla virtual que recupera datos de forma dinámica basándose en una consulta SQL predefinida sin almacenarlos.
¿Cómo gestiona BigQuery la seguridad de los datos?
Por qué se pregunta: Para comprobar tus conocimientos sobre la seguridad de BigQuery en combinación con la protección de datos confidenciales.
BigQuery emplea un enfoque por capas para la seguridad de los datos, comenzando por un modelo seguro diseñado para proteger los datos en todas las etapas de su ciclo de vida.
- Los datos se cifran en reposo mediante claves de cifrado gestionadas por Google de forma predeterminada, o mediante claves gestionadas por el cliente si deseas mantener el control administrativo sobre ellas.
- Los datos se cifran durante su tránsito a través de HTTPS/TLS y en tránsito entre los clientes y BigQuery.
- La gestión de identidades y accesos (IAM) permite un control de acceso muy preciso, ya que proporciona funciones y asignaciones de cuentas de usuario y de servicio para garantizar que solo las partes autorizadas puedan acceder a los datos o modificarlos.
- El registro de auditoría tiene como objetivo realizar un seguimiento de la actividad de los usuarios y del sistema, proporcionando un registro de auditoría que puede utilizarse para la supervisión y el cumplimiento normativo.
Estas funciones de seguridad integradas ayudan a las organizaciones a mantener la confidencialidad y la integridad de los datos, así como el cumplimiento normativo.
¿Qué es el servicio de transferencia de datos BigQuery y cómo simplifica la ingesta de datos?
Por qué se pregunta: Evaluar tu comprensión del movimiento e integración automatizados de datos dentro de BigQuery.
El servicio BigQuery Data Transfer Service (BQ DTS) automatiza y programa las importaciones de datos desde diversas fuentes externas a BigQuery, lo que elimina la necesidad de procesos ETL manuales. Se integra de forma nativa con servicios de Google como Google Ads, YouTube y Google Cloud Storage, así como con aplicaciones SaaS de terceros.
Al habilitar transferencias de datos automatizadas y programadas, BQ DTS garantiza que los datos se mantengan actualizados para su análisis sin necesidad de intervención por parte del usuario. Este servicio resulta especialmente útil para organizaciones que gestionanflujos de trabajo de ingesta de datos recurrentes a gran escala , ya que mejora la eficiencia y reduce los gastos generales operativos.
¿Qué son los campos anidados y repetidos en BigQuery y por qué son útiles?
Por qué se pregunta: Evaluar tu comprensión del soporte de BigQuery para datos semiestructurados y sus ventajas sobre los modelos relacionales tradicionales.
BigQuery permite campos anidados y repetidos, lo que permite un almacenamiento y una consulta más eficientes de datos jerárquicos o basados en arreglo. Campos anidados utiliza el tipo de datos STRUCT , lo que permite que una columna contenga subcampos, de forma similar a un objeto JSON.
Los campos repetidos funcionan como ARREGLOS, lo que permite que una sola columna almacene múltiples valores. Estas estructuras ayudana eliminar la necesidad de operaciones JOIN complejas, mejorar el rendimiento de las consultas y hacer que BigQuery sea adecuado para procesar datos semiestructurados, como registros, flujos de eventos y conjuntos de datos similares a nosql.
¿Cómo se pueden programar y automatizar tareas en BigQuery?
Por qué se pregunta: Evaluar tus conocimientos sobre la automatización de la ejecución de consultas y la gestión del flujo de trabajo en BigQuery.
BigQuery ofrece varios métodos para programar y automatizar trabajos, lo que garantiza que las tareas recurrentes se ejecuten sin intervención manual.
- Las consultas programadas permiten a los usuarios definir ejecuciones de consultas recurrentes directamente a través de la interfaz de usuario web o la API de BigQuery.
- Nube Scheduler ofrece un servicio totalmente gestionado similar a cron que activa consultas a intervalos predefinidos.
- Para la automatización basada en eventos, Cloud Functions puede ejecutar trabajos de BigQuery en respuesta a activadores de otros servicios de Google Cloud.
Estas herramientas de automatización ayudan a optimizar los flujos de datos, reducir la carga de trabajo manual y garantizar el procesamiento oportuno de los datos para su análisis y presentación en informes.
¿Cómo gestiona Big Query la partición y la agrupación de datos?
Por qué se pregunta: Evaluar tu comprensión de las estrategias de organización de datos en BigQuery y su impacto en el rendimiento de las consultas y la rentabilidad.
La partición divide las tablas grandes en segmentos más pequeños, lo que mejora el rendimiento de las consultas al escanear solo los datos relevantes.
-
basado en el tiempo: Por FECHA, MARCA DE TIEMPO, FECHA Y HORA (por ejemplo, particiones diarias de fecha_de_ventas).
-
Rango de enteros: Por valores INTEGER (por ejemplo, rangos de
user_id). -
a en el momento de la ingestión: Por marca de tiempo de carga de datos (
_PARTITIONDATE).
Es ideal para datos de series temporales y para reducir los costes de consulta al filtrar por fecha o rangos numéricos.
La agrupación organiza los datos dentro de una tabla o partición ordenándolos en función de las columnas seleccionadas, lo que agiliza las consultas.
Es ideal para filtrar y agregar campos consultados con frecuencia, como región o user_id.

Ejemplos de agrupaciones de tablas y particiones. Imagen de Google Nube.
Preguntas sobre la arquitectura de BigQuery en una entrevista de trabajo
¿Cómo está diseñada la arquitectura de Google BigQuery y qué la hace única?
Por qué se pregunta: Evaluar tu comprensión de la arquitectura sin servidor de BigQuery y en qué se diferencia de los almacenes de datos tradicionales.
BigQuery cuenta con una arquitectura sin servidor y totalmente gestionada que separa el almacenamiento y la computación, lo que les permite escalar de forma independiente en función de la demanda. A diferencia de los almacenes de datos tradicionales en la nube olos sistemas de procesamiento masivamente paralelo (MPP) locales , esta separación proporciona flexibilidad, rentabilidad y alta disponibilidad sin necesidad de que los usuarios gestionen la infraestructura. El motor de cálculo de BigQuery funciona con Dremel, un clúster multitenant que ejecuta consultas SQL de forma eficiente, mientras que los datos se almacenan en Colossus, el sistema de almacenamiento distribuido global de Google. Estos componentes se comunican a través de Jupiter, la red a escala petabit de Google, lo que garantiza una transferencia de datos ultrarrápida. Todo el sistema está coordinado por Borg, el sistema interno de gestión de clústeres de Google y precursor de Kubernetes. Esta arquitectura permite a los usuarios ejecutaranálisis escalables y de alto rendimiento de en conjuntos de datos masivos sin preocuparse por la gestión de la infraestructura.

Arquitectura de Big Query. Imagen de Google.
¿Cómo separa BigQuery el almacenamiento y la computación, y por qué es beneficioso?
Por qué se pregunta: Esta pregunta evalúa tu comprensión de la arquitectura de BigQuery, concretamente cómo su modelo de almacenamiento y computación desacoplado mejora la escalabilidad, la rentabilidad y el rendimiento.
BigQuery sigue una arquitectura sin servidor y totalmente gestionada en la que el almacenamiento y la computación están completamente separados:
- Almacenamiento: Los datos se almacenan en Colossus, el sistema de almacenamiento distribuido global de Google. Esto garantiza una alta disponibilidad, durabilidad y una escalabilidad casi infinita sin necesidad de que los usuarios gestionen la infraestructura.
- Calcular: La ejecución de consultas se gestiona mediante Dremel, un motor de consultas distribuido que asigna dinámicamente recursos computacionales (ranuras) en función de la demanda de carga de trabajo.
Ventajas principales de la separación entre almacenamiento y computación:
- Escalado independiente: Puedes ampliar el almacenamiento sin afectar a la capacidad de cálculo y viceversa.
- Rentabilidad: Solo pagas por los datos escaneados durante las consultas, lo que evita costes informáticos innecesarios.
- Rendimiento optimizado: Las consultas se ejecutan más rápido, ya que el almacenamiento no supone un obstáculo para el cálculo.
- Almacenamiento multirregional: Los datos se pueden almacenar en diferentes ubicaciones sin que ello afecte a la velocidad de las consultas.
Este diseño permite a BigQuery procesar consultas a escala de petabytes de manera eficiente y manteniendo los costes bajos, lo que lo convierte en la opción ideal para el análisis en la nube.
¿Qué es Dremel y cómo permite el rápido rendimiento de las consultas de BigQuery?
Por qué se pregunta: Evaluar tus conocimientos sobre Dremel, el motor de consultas subyacente de BigQuery, y cómo su modelo de ejecución columnar basado en árboles permite un análisis de datos de alto rendimiento.
Dremel es un motor de ejecución de consultas distribuidas que impulsa BigQuery. A diferencia de las bases de datos tradicionales que utilizan un procesamiento basado en filas, Dremel emplea un formato de almacenamiento en columnas y un modelo de ejecución de consultas basado en árboles para optimizar la velocidad y la eficiencia.
Cómo Dremel permite realizar consultas rápidas:
- Almacenamiento en columnas: En lugar de leer filas completas, Dremel solo escanea las columnas necesarias, lo que reduce la cantidad de datos procesados.
- Ejecución basada en árboles: Las consultas se dividen en fragmentos y se ejecutan en paralelo en miles de nodos. Los resultados se agregan en una estructura jerárquica en forma de árbol, lo que minimiza la latencia.
- Asignación de recursos sin servidor: Dremel asigna dinámicamente ranuras de cálculo a las consultas en función de su complejidad, lo que garantiza un uso eficiente de los recursos.
Ventajas principales de Dremel:
- Consultas ultrarrápidas en conjuntos de datos a escala de petabytes.
- Procesamiento rentable mediante el escaneo solo de las columnas relevantes.
- Paralelización automática para grandes cargas de trabajo sin necesidad de ajustes manuales.
Puedes obtener más información sobre Dremel en la documentación oficial de Google.
¿Cómo funciona la desnormalización en BigQuery y cuándo se debe utilizar?
Por qué se pregunta: Evaluar tu comprensión de las estrategias de modelado de datos y su impacto en el rendimiento de las consultas en bases de datos analíticas.
La desnormalización en BigQuery introduce intencionadamente redundancia mediante la fusión de tablas y la duplicación de datos para optimizar el rendimiento de las consultas. A diferencia de la normalización, que minimiza la redundancia mediante tablas más pequeñas y relacionadas entre sí, la desnormalización reduce la necesidad de realizar uniones complejas, lo que se traduce en tiempos de lectura más rápidos. Este enfoque resulta especialmente útil enel almacenamiento y análisis de datos e es, donde las operaciones de lectura son más frecuentes que las de escritura. Sin embargo, la desnormalización aumenta los requisitos de almacenamiento, por lo que BigQuery recomienda utilizarcampos anidados y repetidos para estructurar de manera eficiente los datos desnormalizados y minimizar la sobrecarga de almacenamiento.

Comparación de diferentes estrategias de normalización de datos. Imagen de Google Nube.
Preguntas específicas sobre SQL
Una vez que tengas un conocimiento sólido de la arquitectura y las técnicas de optimización de BigQuery, el siguiente aspecto fundamental en el que debes centrarte es el dominio del lenguaje SQL. SQL es la columna vertebral del trabajo con BigQuery, y los entrevistadores suelen evaluar tu capacidad para escribir, optimizar y resolver problemas relacionados con las consultas. Para estar mejor preparado, te recomiendo que te inscribas en los cursos de SQL de DataCamp.
¿Cómo se realiza una operación JOIN en BigQuery?
Por qué se pregunta: Evaluar tu capacidad para combinar datos de varias tablas utilizando operaciones SQL JOIN.
BigQuery admite varios tipos de JOIN para combinar datos de varias tablas basándose en una columna compartida. Por ejemplo, para recuperar los detalles de los productos junto con su información de ventas, puedes utilizar un INNER JOIN entre la TABLA DE VENTAS y la TABLA DE PRODUCTOS en Product_Id:
SELECT
s.Id AS Sales_Id,
p.Product,
p.Price,
s.Purchase_date
FROM sales_table s
JOIN product_table p
ON s.Product_Id = p.Id;
Para obtener más detalles, como las fechas de entrega, puedes consultar la TABLA DE ENTREGAS:
SELECT
s.Id AS Sales_Id,
p.Product,
p.Price,
s.Purchase_date,
d.Deliver_date
FROM sales_table s
JOIN product_table p ON s.Product_Id = p.Id
JOIN delivery_table d ON s.Id = d.Sales_Id;
Escribe una consulta SQL para seleccionar los 10 productos más caros.
Por qué se pregunta: Evaluar tu capacidad para recuperar y clasificar datos de manera eficiente.
Para encontrar los 10 productos más caros, utiliza ORDER BY para ordenarlos por precio en orden descendente y LIMIT para restringir el resultado:
SELECT
Product,
Price
FROM product_table
ORDER BY Price DESC
LIMIT 10;
Escribe una consulta SQL para calcular el promedio de ventas por mes.
Por qué se pregunta: Evaluar tu capacidad para realizar agregaciones basadas en el tiempo.
Para calcular el número medio de ventas por mes, utiliza la función « EXTRACT » (Agrupar por mes) para agrupar las ventas por mes y « COUNT » (Contar por mes) para contar el número de ventas por mes:
SELECT
EXTRACT(MONTH FROM Purchase_date) AS Month,
COUNT(Id) AS Total_Sales,
AVG(COUNT(Id)) OVER () AS Average_Sales
FROM sales_table
GROUP BY Month;
Escribe una consulta SQL para encontrar el número total de entregas por producto.
Por qué se pregunta: Para evaluar tu capacidad para agregar datos utilizando GROUP BY y COUNT.
Para contar las entregas de cada producto:
SELECT
p.Product,
COUNT(d.Id) AS Total_Deliveries
FROM delivery_table d
JOIN product_table p
ON d.Product_Id = p.Id
GROUP BY p.Product;
Escribe una consulta SQL para encontrar el número total de entregas de cada producto.
Por qué se pregunta: Evaluar tu capacidad para filtrar datos basados en el tiempo.
Para obtener los registros de ventas de los últimos 30 días:
SELECT *
FROM sales_table
WHERE Purchase_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY);
Escribe una consulta SQL para contar el número de productos únicos vendidos durante la última semana.
Por qué se pregunta: Evaluar tu capacidad para realizar recuentos distintos en datos basados en el tiempo.
Para contar los productos distintos vendidos en los últimos 7 días:
SELECT COUNT(DISTINCT Product_Id) AS Unique_Products_Sold
FROM sales_table
WHERE Purchase_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY);
Escribe una consulta SQL para agrupar los datos de ventas por producto y calcular los ingresos totales de cada uno.
Por qué se pregunta: Para poner a prueba tu capacidad para utilizar GROUP BY y agregar ventas.
Para calcular los ingresos totales por producto:
SELECT
p.Product,
SUM(p.Price) AS Total_Revenue
FROM sales_table s
JOIN product_table p
ON s.Product_Id = p.Id
GROUP BY p.Product;
Escribe una consulta SQL para calcular el porcentaje de las ventas totales que aporta cada producto.
Por qué se pregunta: Evaluar tu capacidad para calcular porcentajes utilizando SQL.
Para determinar el porcentaje de ventas totales por producto:
SELECT
p.Product,
SUM(p.Price) AS Product_Sales,
(SUM(p.Price) / (SELECT SUM(Price) FROM product_table)) * 100 AS Sales_Percentage
FROM sales_table s
JOIN product_table p
ON s.Product_Id = p.Id
GROUP BY p.Product;
Escribe una consulta SQL para clasificar los productos según las ventas totales.
Por qué se pregunta: Evaluar tu capacidad para utilizar funciones de ventana para la clasificación.
Para clasificar los productos según las ventas totales:
SELECT
p.Product,
SUM(p.Price) AS Total_Sales,
RANK() OVER (ORDER BY SUM(p.Price) DESC) AS Sales_Rank
FROM sales_table s
JOIN product_table p
ON s.Product_Id = p.Id
GROUP BY p.Product;
Escribe una consulta SQL para calcular el tiempo medio de entrega de cada producto.
Por qué se pregunta: Evaluar tu capacidad para trabajar con diferencias de fecha en SQL.
Para calcular el tiempo medio de entrega por producto:
SELECT
p.Product,
AVG(DATE_DIFF(d.Deliver_date, s.Purchase_date, DAY)) AS Avg_Delivery_Time
FROM sales_table s
JOIN delivery_table d
ON s.Id = d.Sales_Id
JOIN product_table p
ON s.Product_Id = p.Id
GROUP BY p.Product;
Preguntas avanzadas y basadas en situaciones hipotéticas
Más allá de los conocimientos básicos y el dominio de SQL, las habilidades para resolver problemas del mundo real son fundamentales para trabajar con BigQuery a gran escala.
Las preguntas avanzadas de las entrevistas suelen centrarse en el manejo de grandes conjuntos de datos, la optimización del rendimiento, la gestión de flujos de datos y la resolución de problemas comunes en entornos de producción.
¿Puedes describir tu experiencia con la implementación de canalizaciones de datos en BigQuery?
Por qué se pregunta: Evaluar tus conocimientos prácticos sobre la creación, gestión y optimización de canalizaciones de datos en BigQuery, incluyendo la ingestión, transformación, coordinación y supervisión.
El entrevistador busca información sobre tu experiencia práctica en el diseño e implementación de canalizaciones de datos en BigQuery. Debes hablar sobre:
- Ingesta de datos: Métodos utilizados (, BigQuery Data Transfer Service, Cloud Storage, ingesta de streaming).
- Transformación de datos: Uso detransformaciones basadas en SQL de , consultas programadas o herramientas como Dataflow y dbt.
- Orquestación: Cómo gestionar los flujos de trabajo de canalización mediante Cloud Composer (Apache Airflow), Cloud Functions o Cloud Scheduler.
- Supervisión y optimización: Cómo programarel rendimiento de un canal de ventas de , depurar problemas y optimizar los costes de las consultas.
Una respuesta contundente debe incluir ejemplos reales de los retos a los que te has enfrentado y cómo los has abordado, como manejar grandes conjuntos de datos, optimizar el rendimiento de las consultas o garantizar la integridad de los datos en los procesos de producción.
Algunos recursos útiles para implementar un proyecto de este tipo son:
- La siguiente guía de YouTubesobre canalizaciones por lotes ETL utilizando BigQuery.
- El siguiente repositorio GitHub de canalización de extremo a extremo.
- El siguiente canal ETL con Airflow y BigQuery GitHub repo.
¿Cómo puedes eliminar los registros duplicados de una columna en una tabla grande de BigQuery sin cambiar el nombre de la tabla?
Por qué se pregunta: Evaluar tu capacidad para gestionar datos duplicados de forma eficiente en BigQuery sin alterar la estructura de la tabla.
Cuando se trabaja con una tabla que contiene millones de filas y valores duplicados en una columna específica, el mejor enfoque es utilizar la función de ventana « ROW_NUMBER() » (Mantener la primera ocurrencia) para identificar y conservar solo la primera ocurrencia de cada duplicado, eliminando el resto.
Para ello, sobrescribe la tabla con una versión deduplicada utilizando una instrucción ` CREATE OR REPLACE TABLE `:
CREATE OR REPLACE TABLE tableX AS
SELECT * EXCEPT(row_number)
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY troubleColumn ORDER BY someOtherColumn) AS row_number
FROM tableX
)
WHERE row_number = 1;
Así es como funciona:
-
ROW_NUMBER()asigna un número de fila único a cada registro dentro del mismo valor detroubleColumn, lo que garantiza que solo se conserve un registro por grupo duplicado. -
El
PARTITION BYtroubleColumnagrupa las filas en función de los duplicados en esa columna. -
El
ORDER BYsomeOtherColumn(por ejemplo,Purchase_date) garantiza que se conserve un registro específico. -
La consulta externa solo filtra la primera aparición (
row_number = 1), eliminando eficazmente los duplicados. -
La
CREATE OR REPLACE TABLEinstrucción garantiza que la tabla mantenga el mismo nombre al reemplazarla con los datos limpios.
Este enfoque elimina eficazmente los duplicados sin crear una nueva tabla ni afectar a la estructura general de la tabla.
¿Cómo utilizas BigQuery para la visualización de datos y la generación de informes, y cuáles son las herramientas más comunes para ello?
Por qué se pregunta: Evaluar tu capacidad para integrar BigQuery con herramientas de visualización y comunicar eficazmente la información obtenida a través de informes.
BigQuery sirve como un potente backend para la visualización de datos y la generación de informes, lo que permite conexiones directas con herramientas como Google Looker Studio (antes Data Studio), Tableau y Power BI.
Estas herramientas permiten a los usuarios consultar datos en tiempo real y crear paneles, gráficos e informes personalizados sin necesidad de exportar datos manualmente. Las técnicas clave para la visualización incluyen:
- Agregación y transformación de datos en BigQuery mediante SQL antes de su visualización.
- Creación de paneles interactivos con filtros dinámicos y capacidades de desglose.
- Optimización de consultas y vistas materializadas para mejorar el rendimiento del panel de control.
Una respuesta contundente debería destacar casos de uso del mundo real, como por ejemplo:
- Seguimiento de los KPI empresariales
- Seguimiento de tendencias
- Generación de informes automatizados
Para implementar tu propio proyecto de visualización de datos, puedes seguir los proyectos especializados de DataCamp sobre el análisis de los hábitos de recarga de vehículos eléctricos y la exploración de la red de transporte de Londres con BigQuery.
Preguntas sobre las prácticas recomendadas y la optimización de BigQuery
Trabajar de forma eficiente con BigQuery va más allá de escribir consultas SQL: requiere optimizar el rendimiento, gestionar los costes e implementar las mejores prácticas para garantizar un funcionamiento fluido de los datos. Dado que BigQuery funciona con un modelo de pago por uso, es fundamental comprender cómo minimizar los escaneos de datos, aprovechar la partición y la agrupación, y optimizar la ejecución de consultas, tanto para el rendimiento como para la rentabilidad.
¿Cuáles son las prácticas recomendadas para gestionar los costes de BigQuery de forma eficiente?
Por qué se pregunta: Evaluar tu capacidad para optimizar la rentabilidad mientras trabajas con grandes conjuntos de datos en BigQuery.
Para gestionar los costes de BigQuery de forma eficaz, debes:
-
Optimizar las consultas para escanear solo las columnas y filas necesarias, evitando
SELECT *. -
Utiliza tablas particionadas y agrupadas para minimizar el escaneo de datos y mejorar el rendimiento de las consultas.
-
Aprovecha las herramientas de control de costes como presupuestos, alertas y políticas de control de costes en Google Cloud.
-
Aprovecha las reservas de franjas horarias para obtener precios más predecibles y ahorrar costes.
-
Limpia regularmente las tablas y particiones que no se utilicen para optimizar los costes de almacenamiento.
Una estrategia de gestión de costes bien estructurada ayuda a controlar los gastos y a mantener una ejecución eficiente de las consultas.
¿Cuáles son las prácticas recomendadas para optimizar el rendimiento de las consultas en BigQuery?
Por qué se pregunta: Evaluar tu capacidad para escribir consultas eficientes que reduzcan el tiempo y el coste de ejecución.
Para optimizar el rendimiento de las consultas en BigQuery:
-
Diseña un esquema eficiente, seleccionando los tipos de datos adecuados y evitando una normalización excesiva.
-
Utiliza particiones y agrupaciones para reducir la cantidad de datos escaneados.
-
Evita
SELECT *, recuperando solo las columnas necesarias. -
Optimizar las operaciones JOIN y GROUP BY, asegurándote de que sigan las mejores prácticas para consultas a gran escala.
-
Aprovecha el almacenamiento en caché y las vistas materializadas para almacenar resultados precalculados y mejorar el rendimiento.
-
Utiliza funciones de agregación aproximadas, como
APPROX_COUNT_DISTINCT, cuando no se requiera una precisión exacta.
Al seguir estas prácticas, podrás acelerar las consultas, reducir los costes informáticos y mejorar la eficiencia general.
¿Qué son las ranuras de BigQuery y cómo afectan al rendimiento de las consultas?
Por qué se pregunta: Evaluar tu comprensión de los recursos informáticos de BigQuery y su efecto en la ejecución de consultas.
Las ranurasde BigQuery son unidades de capacidad computacional que se utilizan para procesar consultas SQL. Se asignan dinámicamente en función de las demandas de carga de trabajo, lo que garantiza un uso eficiente de los recursos. Las organizaciones pueden elegir entre:
- Espacios bajo demanda, que se adaptan automáticamente en función de las necesidades de consulta.
- Espacios reservados, que proporcionan un rendimiento más predecible y un ahorro de costes para cargas de trabajo constantes.
Una gestión eficiente de las ranuras puede reducir el tiempo de ejecución de las consultas, optimizar la asignación de recursos y reducir los costes generales.
¿Cómo puedes supervisar y optimizar los costes de BigQuery de forma eficaz?
Por qué se pregunta: Evaluar tu capacidad para realizar un seguimiento y controlar los gastos de BigQuery.
Para supervisar y optimizar los costes en BigQuery:
- Analizar la ejecución de consultas utilizando el historial de consultas y los planes EXPLAIN para identificar operaciones costosas.
- Habilita los registros de auditoría para realizar un seguimiento de los patrones de uso y detectar consultas ineficientes.
- Configura presupuestos y alertas de gastos para evitar gastos inesperados.
- Optimiza el uso de las ranurasaprovechando las ranuras reservadas para cargas de trabajo constantes con el fin de reducir costes.
- Limpia regularmente las tablas y particiones que no se usen para evitar gastos de almacenamiento innecesarios.
Al implementar estas estrategias, puedes garantizar un procesamiento de datos rentable, al tiempo que mantienes el rendimiento y la escalabilidad.
Consejos adicionales para superar con éxito tu entrevista sobre BigQuery
Aquí tienes algunos consejos finales para superar con éxito tu próxima entrevista sobre BigQuery.
Domina los fundamentos. Comprende la arquitectura de BigQuery, incluido el diseño sin servidor, la separación entre almacenamiento y computación, y el motor de consultas Dremel con nuestrocurso introductorio sobre BigQuery. Aprende a utilizar conjuntos de datos, tablas, vistas y vistas materializadas para gestionar y estructurar datos de forma eficiente. Nuestrotutorial sobre vistas materializadas SQL te será de ayuda.
Perfecciona tus habilidades en SQL y optimización de consultas. Practica las funciones SQL específicas de BigQuery (arreglo, STRUCT y funciones de ventana) para consultas complejas con nuestro tutorial «Introducción a BigQuery» con código. Optimiza las consultas con funciones de partición, agrupación y aproximación para reducir costes y mejorar el rendimiento siguiendo la documentación oficial de Google.
Adquiere experiencia práctica. Trabaja en proyectos del mundo real utilizando conjuntos de datos públicos y crea informes con Looker Studio, Tableau o Power BI con los proyectos de DataCamp. Prueba nuestros ejercicios «Análisis de los hábitos de recarga de vehículos eléctricos » y «Exploración de la red de transporte de Londres», ambos excelentes para mejorar tus habilidades con SQL.
Josep es Científico de Datos y Gestor de Proyectos en la Agencia Catalana de Turismo, utilizando datos para mejorar la experiencia de los turistas en Cataluña. Su experiencia incluye la gestión del almacenamiento y procesamiento de datos, junto con la analítica avanzada y la comunicación eficaz de las perspectivas de los datos.
También es un dedicado educador, que imparte clases en el Máster de Big Data de la Universidad de Navarra, y contribuye regularmente con artículos perspicaces sobre ciencia de datos en Medium y KDNuggets.
Es Licenciado en Ingeniería Física por la Universidad Politécnica de Cataluña y Máster en Sistemas Interactivos Inteligentes por la Universidad Pompeu Fabra.
En la actualidad, se dedica con pasión a hacer que las tecnologías relacionadas con los datos sean más accesibles a un público más amplio a través de la publicación de Medium ForCode'Sake.
Preguntas frecuentes
¿Qué es BigQuery y en qué se diferencia de las bases de datos tradicionales?
BigQuery es un almacén de datos sin servidor y totalmente gestionado en Google Cloud, diseñado para el análisis de datos a gran escala. A diferencia de las bases de datos relacionales locales tradicionales, que suelen estar basadas en filas y limitadas por restricciones de hardware, BigQuery es un sistema de almacenamiento columnar nativo de la nube que ofrece una escalabilidad casi infinita. Tu arquitectura distribuida y tu modelo de precios de pago por uso lo hacen más eficiente para gestionar cargas de trabajo analíticas que las bases de datos convencionales.
¿Cuáles son las principales ventajas de utilizar BigQuery?
BigQuery ofrece cinco ventajas clave: (1) Escalabilidad: amplía o reduce automáticamente los recursos; (2) Flexibilidad: la infraestructura se adapta a las necesidades empresariales; (3) Alta seguridad: cifrado y control de acceso integrados; (4) Rentabilidad: precios de pago por uso; y (5) Intercambio de datos y colaboración: las soluciones en la nube permiten un acceso fluido entre equipos.
¿Qué es la partición en BigQuery y cómo mejora el rendimiento?
La partición en BigQuery divide las tablas grandes en partes más pequeñas y manejables según criterios como la fecha, la hora de ingestión o los valores numéricos. Esto mejora el rendimiento de las consultas al escanear solo las particiones relevantes en lugar de toda la tabla, lo que reduce los costes de las consultas y el tiempo de ejecución. Es especialmente útil para el análisis de series temporales y grandes conjuntos de datos.
¿Cuál es la diferencia entre una tabla y una vista en BigQuery?
Una tabla almacena datos físicamente, mientras que una vista es una tabla virtual que recupera datos dinámicamente basándose en una consulta SQL predefinida. Las vistas ayudan a simplificar consultas complejas, aplicar controles de acceso a los datos y mejorar los tiempos de ejecución de las consultas sin duplicar los datos.
¿Cómo gestiona BigQuery la seguridad de los datos?
BigQuery emplea múltiples capas de seguridad: (1) Cifrado de datos en reposo y en tránsito, (2) Gestión de identidades y accesos (IAM) para un control de acceso granular, (3) Registro de auditoría para supervisar el uso y el cumplimiento, y (4) Claves de cifrado gestionadas por el cliente para un mayor control de la seguridad.


