Big Query parte 2 Flashcards

(908 cards)

1
Q

En un plan de ejecución de consulta simple (por ejemplo, al contar registros sujetos a una condición de filtrado), ¿cuál es típicamente la primera etapa de procesamiento en los nodos de trabajo distribuido?

A. Consolidación y suma final
B. Distribución de resultados al maestro
C. Filtrado y conteo parcial de entradas
D. Creación del plan de shuffle

A

C

¿Por qué la “C” es la correcta?
En un sistema distribuido, la regla de oro es “Lleva el cómputo a los datos, no los datos al cómputo”.

Imagina que tienes una tabla con 1 billón de filas repartidas en 1,000 computadoras (Workers). Quieres saber cuántas filas cumplen una condición (ej. WHERE pais = ‘España’).

Stage 1 (Fase de Mapa/Lectura): Antes de mover nada por la red, cada nodo trabajador lee su propio pedazo de disco (shard).

Filtrado: Aplica el filtro inmediatamente. Si la fila no es de ‘España’, la descarta.

Conteo Parcial: Cuenta cuántas filas de ‘España’ encontró en su pedazo.

Resultado del Worker 1: “Yo encontré 50”.

Resultado del Worker 2: “Yo encontré 200”.

Esto es lo más eficiente porque reduce drásticamente la cantidad de datos que deben viajar por la red hacia la siguiente etapa.

¿Por qué las otras opciones ocurren después (o no son la primera etapa)?
A. Consolidación y suma final (Stage 2):

❌ Incorrecta (Es el segundo paso).

Explicación: Esta es la fase de “Reduce”. Ocurre después de que los trabajadores han enviado sus conteos parciales. Aquí es donde se suman los “50” del Worker 1 + los “200” del Worker 2 para obtener el total global. No puedes sumar totales si primero no has contado las partes.

B. Distribución de resultados al maestro:

❌ Incorrecta (Es el paso final).

Explicación: Esto ocurre al final absoluto del proceso, cuando el cálculo ya terminó y el sistema le entrega la respuesta (“El total es 250”) al usuario o al nodo maestro.

D. Creación del plan de shuffle:

❌ Incorrecta.

Explicación: El “Shuffle” es el movimiento de datos entre la Etapa 1 y la Etapa 2. El plan de cómo se hará ese movimiento generalmente lo decide el “Query Master” antes de que los trabajadores empiecen a procesar nada, o es una fase intermedia de transferencia, no de procesamiento de datos en sí.

Analogía del CensoImagina que quieres contar cuántas personas viven en todo el país (El País es la Base de Datos Distribuida).Opción C (Lo correcto): Envías a un censista a cada ciudad. El censista cuenta a la gente de su ciudad y anota el número en un papel (Conteo Parcial).Opción A (Lo incorrecto): No le pides a todos los habitantes del país que viajen a la capital para contarlos todos juntos en una plaza. Eso colapsaría las carreteras (la red). Primero cuentas localmente, luego sumas los totales.Resumen del FlujoWorker (Stage 1 - Opción C): Lee disco $\rightarrow$ Filtra $\rightarrow$ Cuenta localmente.Red (Shuffle): Envía el numerito del conteo a un agregador.Worker/Master (Stage 2 - Opción A): Recibe los numeritos $\rightarrow$ Suma el total $\rightarrow$ Entrega resultado (Opción B).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Si al analizar las métricas de un plan de consulta se observa una diferencia significativa entre el tiempo máximo de procesamiento y el tiempo promedio, ¿cuál es la causa subyacente más probable?

A. El uso excesivo de funciones definidas por el usuario (UDF).

B. Un error de sintaxis no capturado previamente.

C. Una inclinación o asimetría de datos (data skew).

D. Un fallo en la lectura de la caché.

A

C

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Cuál es la meta fundamental al optimizar una consulta en un entorno de procesamiento distribuido?

A. Minimizar el número de etapas.

B. Reducir el trabajo total realizado por la consulta.

C. Aumentar el número de workers utilizados.

D. Maximizar el uso de la caché.

A

B

La Respuesta Correcta
B. Reducir el trabajo total realizado por la consulta.

¿Por qué? En computación distribuida, el “trabajo” se mide en tres factores costosos:

I/O (Entrada/Salida): Leer datos del disco.

Shuffle (Red): Mover datos entre diferentes ordenadores (nodos).

CPU: Procesar esos datos.

El objetivo fundamental de optimizar no es ser “más sofisticado”, sino hacer menos.

Si filtras los datos antes de hacer un Join, reduces el trabajo.

Si seleccionas solo las columnas que necesitas, reduces el trabajo.

Si usas particiones para no leer toda la tabla, reduces el trabajo.

Si logras reducir la cantidad de bytes que se leen y se mueven, la consulta será más rápida y barata, independientemente de cuántos servidores tengas.

Por qué las otras opciones son incorrectas
Estas opciones suelen confundirse con optimización, pero en realidad son tácticas secundarias o errores conceptuales.

A. Minimizar el número de etapas (Stages)
Por qué es mala: En sistemas como Spark, las “etapas” se crean cuando hay que mover datos (Shuffle). A veces, necesitas más etapas para que la consulta funcione bien.

Ejemplo: Si intentas forzar todo en una sola etapa, podrías sobrecargar la memoria de un solo worker y hacer que falle. A veces, dividir el trabajo en dos etapas (repartir y luego procesar) es más lento en teoría, pero más estable y necesario. El número de etapas es una consecuencia, no la meta.

C. Aumentar el número de workers utilizados
Por qué es mala: Esto no es optimizar, esto es escalar.

La analogía: Si tienes una mudanza y empacas las cajas de forma desordenada y lenta (una consulta ineficiente), contratar a 50 camiones más (workers) te ayudará a terminar, pero te saldrá carísimo y seguirás siendo ineficiente.

Regla de oro: Una mala consulta distribuida en 1000 nodos sigue siendo una mala consulta (y a veces va peor por la sobrecarga de gestión).

D. Maximizar el uso de la caché
Por qué es mala: La caché es una herramienta, no un objetivo.

El riesgo: Si intentas “maximizar” la caché, podrías llenarla de datos basura que no necesitas, provocando que el sistema se quede sin memoria (OOM - Out Of Memory) y falle. El objetivo es usar la caché inteligentemente para reducir la lectura de disco (que nos lleva de vuelta a la opción B: reducir el trabajo), no usarla por usarla.

Resumen Mental para el Examen
Piensa en la eficiencia como en cocinar:

Opción B (La Meta): Comprar solo los ingredientes necesarios y ensuciar pocos platos (Reducir el trabajo).

Opción C (Workers): Traer a 10 cocineros a una cocina pequeña. (A veces estorba más que ayuda).

Opción D (Caché): Llenar toda la mesa de ingredientes “por si acaso”. (Te quedas sin espacio para trabajar).

Por tanto, hacer menos trabajo (filtrar pronto, leer poco) siempre es la optimización reina.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué componentes se consideran explícitamente como “trabajo” (work) que contribuye al coste y tiempo de ejecución de una consulta? (selecciona todas las que apliquen)

A. I/O (lectura de bytes).
B. Shuffle (bytes pasados a la siguiente etapa).
C. Agrupación (Grouping).
D. CPU (ejecución de UDFs o funciones).

A

A, B, C y D

El “trabajo” (work) de una consulta es la suma de todos los recursos que el sistema debe gastar. Cada una de las cuatro opciones es un tipo de recurso consumido:

A. I/O (lectura de bytes): Es el trabajo de leer los datos desde el almacenamiento. Es el costo inicial de mover los datos del disco a la memoria para poder procesarlos.

B. Shuffle (bytes pasados a la siguiente etapa): Es el trabajo de mover datos a través de la red. Ocurre cuando los datos deben ser redistribuidos entre los nodos de cómputo, algo esencial para operaciones como JOIN y GROUP BY. A menudo es uno de los cuellos de botella más significativos.

C. Agrupación (Grouping): Es el trabajo de computación (CPU) específico para realizar la agregación. Implica crear y mantener estructuras de datos (como tablas hash) para agrupar las claves idénticas y luego ejecutar las funciones de agregación (SUM, AVG, MAX) sobre cada grupo. Es un tipo de trabajo de CPU distinto y muy intensivo.

D. CPU (ejecución de UDFs o funciones): Es el trabajo de computación (CPU) “general”. Esto incluye cualquier cálculo que no sea I/O o Shuffle, como aplicar filtros (WHERE), procesar expresiones (CASE WHEN…), o ejecutar funciones complejas como UDFs, JSON o expresiones regulares.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Si la mayor parte del tiempo de ejecución se invierte en tareas de CPU o en leer datos de etapas intermedias, ¿qué estrategia de optimización se recomienda aplicar?

A. Inspeccionar el uso de funciones definidas por el usuario (UDFs).

B. Filtrar los datos en una etapa más temprana de la consulta.

C. Utilizar funciones aproximadas en lugar de exactas.

D. Todas las anteriores.

A

D

Esta es una pregunta clásica de optimización de consultas en motores de bases de datos distribuidas (como BigQuery, Spark SQL, etc.). El problema describe dos cuellos de botella:

Exceso de tiempo en tareas de CPU: El motor está “pensando” demasiado (haciendo cálculos complejos).

Exceso de tiempo leyendo datos intermedios: Una etapa de la consulta produce un conjunto de resultados masivo, y la siguiente etapa tiene que leerlo todo para continuar.

Veamos por qué todas las opciones son estrategias válidas para solucionar esto.

Por qué todas las opciones son correctas
A. Inspeccionar el uso de funciones definidas por el usuario (UDFs).

Impacto: Las UDFs (especialmente las que están en JavaScript o Python) son “cajas negras” para el optimizador de consultas. Tienen un costo de CPU altísimo, ya que el motor tiene que cambiar de su ejecución SQL optimizada a un intérprete de otro lenguaje por cada fila.

Solución: Reemplazar una UDF lenta con funciones SQL nativas es una de las optimizaciones de CPU más efectivas.

B. Filtrar los datos en una etapa más temprana de la consulta.

Impacto: Esta es la regla de oro de la optimización SQL. Si aplicas tu filtro (WHERE) al final, el motor tiene que procesar, mover y leer millones o billones de filas innecesarias a través de todas las “etapas intermedias”.

Solución: Al filtrar lo antes posible, reduces la cantidad de filas en cada paso. Esto ahorra CPU (menos filas para procesar) y reduce drásticamente el tamaño de los datos intermedios.

C. Utilizar funciones aproximadas en lugar de exactas.

Impacto: Ciertas funciones, como COUNT(DISTINCT …), son extremadamente costosas en términos de CPU y memoria en conjuntos de datos masivos.

Solución: Si la precisión exacta no es vital, usar una función de aproximación (como APPROX_COUNT_DISTINCT()) es órdenes de magnitud más rápido. Utiliza algoritmos (como HyperLogLog++) que usan mucha menos CPU y memoria, aliviando ese cuello de botella.

Dado que las tres son estrategias de optimización potentes y recomendadas para los problemas específicos de CPU y datos intermedios, la respuesta correcta es D. Todas las anteriores.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Por qué se considera una mala práctica de optimización y coste el uso de SELECT * en consultas, especialmente en subconsultas?

A. El motor de consulta no puede paralelizar la lectura de todas las columnas.

B. Aumenta la complejidad del plan de ejecución innecesariamente.

C. Es ineficiente en términos de coste y rendimiento, ya que selecciona columnas innecesarias.

D. Causa errores de desbordamiento de recursos en la etapa final.

A

C

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Si es necesario seleccionar casi todas las columnas de una tabla grande, pero se desea excluir específicamente un número pequeño de ellas, ¿qué sintaxis se debe considerar para la optimización?

A. Uso de una vista materializada que solo contenga las columnas requeridas.

B. SELECT * EXCEPT (col1, col2)

C. Filtrar las columnas después del JOIN.

D. Denormalización manual de la tabla.

A

B

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué mecanismos de organización de tablas son mencionados como habilitadores del auto-poda o auto-recorte (auto-pruning) de datos? (selecciona DOS)

A. Particionamiento de la tabla.
B. Uso de la cláusula LIMIT.
C. Agrupación o Clustering de la tabla.
D. Denormalización plana.

A

A y C

¿Qué es el “Auto-Pruning” (Auto-Recorte)?
Imagina que tus datos son una biblioteca gigante. El “auto-pruning” es la habilidad del bibliotecario (el motor de consulta) de saber exactamente a qué estantería y a qué libro ir, basándose en tu solicitud (WHERE), en lugar de tener que revisar todos los libros de la biblioteca.

Esto reduce drásticamente el I/O (trabajo de lectura), lo cual ahorra tiempo y, en sistemas como BigQuery, ahorra costes.

✅ Las respuestas correctas
A. Particionamiento de la tabla (Partitioning)

Por qué es correcta: Este es el mecanismo de poda (pruning) a gran escala. Particionar una tabla la divide físicamente en “contenedores” separados basados en una columna (casi siempre una fecha).

Ejemplo: Si particionas una tabla de ventas por día (sales_date), todos los datos del 1 de enero están en un contenedor, los del 2 de enero en otro, etc.

Auto-Pruning: Cuando haces una consulta con WHERE sales_date = ‘2025-01-01’, el motor de consulta automáticamente poda (ignora) todos los demás contenedores y solo lee el del 1 de enero.

C. Agrupación o Clustering de la tabla (Clustering)

Por qué es correcta: Este es el mecanismo de poda a pequeña escala (más granular). Dentro de cada partición (o en toda la tabla si no está particionada), el clustering ordena físicamente los datos basándose en el contenido de una o más columnas.

Ejemplo: Si además de particionar por fecha, agrupas (cluster) por customer_id, todos los datos de un mismo cliente dentro de ese día se escribirán juntos en los mismos bloques de almacenamiento.

Auto-Pruning: Cuando haces una consulta con WHERE customer_id = ‘cliente_123’, el motor de consulta sabe exactamente en qué bloques dentro de la partición se encuentran los datos de ese cliente, y poda (ignora) el resto de bloques de esa misma partición.

❌ Las respuestas incorrectas
B. Uso de la cláusula LIMIT

Por qué es incorrecta: LIMIT no es un mecanismo de organización de la tabla. Es una instrucción de ejecución de la consulta. Le dice al motor: “cuando termines de procesar y encuentres X filas, detente”. No le ayuda al motor a decidir qué datos no leer al principio; simplemente detiene el trabajo una vez que se cumple la condición.

D. Denormalización plana (Flat denormalization)

Por qué es incorrecta: La denormalización es una técnica de modelado de datos (diseño del esquema), no un mecanismo de organización física del almacenamiento. Consiste en guardar datos relacionados juntos en una sola tabla (usando campos anidados o repetidos) para evitar costosos JOINs. Si bien hace que las consultas sean más eficientes al evitar JOINs, no habilita por sí misma el auto-pruning basado en filtros. De hecho, las tablas denormalizadas suelen ser muy grandes, por lo que es más importante aplicarles particionamiento (A) y clustering (C).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Al modelar datos que contienen ítems repetidos (como líneas de pedido), ¿cuál es la ventaja de anidar los ítems dentro de un campo en lugar de utilizar una denormalización plana con una fila por cada ítem?

A. Permite usar funciones de ventana de manera más eficiente.

B. Evita la necesidad de utilizar la cláusula GROUP BY para analizar la entidad principal (el pedido).

C. Reduce la latencia de I/O en un 50%.

D. Garantiza que la consulta utilice un shuffle join.

A

B

Este es un concepto clave en el modelado de datos para sistemas analíticos como BigQuery.

Imaginemos las dos estructuras con un pedido (order_id: 123) que tiene 3 ítems:

Denormalización Plana (una fila por ítem): | order_id | customer_id | item_sku | | :— | :— | :— | | 123 | 900 | A-001 | | 123 | 900 | B-002 | | 123 | 900 | C-003 |

Anidada (una fila por pedido): | order_id | customer_id | items (ARRAY) | | :— | :— | :— | | 123 | 900 | [ {sku: A-001}, {sku: B-002}, {sku: C-003} ] |

✅ La respuesta correcta
B. Evita la necesidad de utilizar la cláusula GROUP BY para analizar la entidad principal (el pedido).

Por qué es correcta: En el modelo anidado, la “entidad principal” (el pedido, order_id: 123) existe en una sola fila.

Si quieres hacer una pregunta sobre los pedidos, como “¿Cuántos pedidos tengo?”:

En el modelo anidado: SELECT COUNT(order_id) FROM tabla_anidada. (Respuesta: 1)

En el modelo plano: SELECT COUNT(order_id) FROM tabla_plana. (Respuesta: 3. ¡Incorrecto!)

Para obtener la respuesta correcta en el modelo plano, tienes que agrupar (GROUP BY) o contar distintos: SELECT COUNT(DISTINCT order_id) FROM tabla_plana.

El modelo anidado preserva la granularidad de la entidad principal, por lo que puedes analizarla directamente sin tener que “agrupar” primero los ítems que se repiten.

❌ Las respuestas incorrectas
A. Permite usar funciones de ventana de manera más eficiente.

Por qué es incorrecta: Es lo contrario. Las funciones de ventana operan sobre un conjunto de filas. En el modelo plano, los ítems ya están en filas separadas, por lo que es fácil usar PARTITION BY order_id para analizarlos. En el modelo anidado, primero tendrías que “desanidar” (usar UNNEST) el array para convertirlo en filas, lo cual es un paso extra.

C. Reduce la latencia de I/O en un 50%.

Por qué es incorrecta: Si bien el modelo anidado sí reduce el I/O (porque no repite los datos del pedido en cada fila, como order_id y customer_id), el número “50%” es completamente arbitrario y falso. El ahorro real depende de cuántos ítems haya por pedido y cuán grandes sean los datos del pedido que se repiten.

D. Garantiza que la consulta utilice un shuffle join.

Por qué es incorrecta: El objetivo de ambos métodos (plano y anidado) es la denormalización. La denormalización se hace precisamente para EVITAR tener que hacer JOINs (como un shuffle join) entre una tabla de pedidos y una tabla de lineas_de_pedido. Esta opción describe un problema, no una ventaja.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué factor se utiliza para calcular el hash que determina si se puede utilizar el resultado de una consulta desde la caché?

A. Las tablas referenciadas o vistas utilizadas.

B. La cadena de consulta exacta (Query string).

C. Los tiempos de modificación de los datos.

D. La zona horaria del usuario.

A

B

Por qué la Opción B es la Correcta
B. La cadena de consulta exacta (Query string).

El mecanismo de caché de BigQuery funciona de manera muy literal. Para determinar si un resultado se puede reutilizar, BigQuery toma la consulta SQL que envías y calcula un “hash” (un identificador único) basado en ese texto.

Es el factor principal: El hash se calcula directamente a partir de la cadena de texto de la consulta.

Debe ser idéntica: Si la nueva consulta es diferente por un solo carácter (un espacio extra, una mayúscula en lugar de minúscula, un comentario diferente), generará un hash diferente y la caché no se utilizará.

Esta es la base fundamental para encontrar una posible coincidencia en la caché.

Por qué las Otras Opciones son Incorrectas
A. Las tablas referenciadas o vistas utilizadas. y C. Los tiempos de modificación de los datos.

Incorrecto: Estas dos opciones están relacionadas, pero describen la invalidación de la caché, no el cálculo del hash.

El Proceso Correcto:

BigQuery calcula el hash de tu consulta (usando la opción B).

Busca ese hash en la caché.

Si lo encuentra, BigQuery realiza un segundo chequeo: ¿Han cambiado los datos en las tablas referenciadas (A) desde que se guardó este resultado? (Opción C).

Si los datos han cambiado (tiempo de modificación), la caché se considera “sucia” (stale) y no se usa, aunque el hash coincidiera. Por lo tanto, A y C son factores para decidir si usar la caché, pero no para calcular el hash inicial.

D. La zona horaria del usuario.

Incorrecto: La configuración de la zona horaria del usuario no se incluye en el cálculo del hash. De hecho, el uso de funciones que dependen del momento exacto (como NOW() o CURRENT_TIMESTAMP()) generalmente hace que una consulta no sea apta para la caché en primer lugar, ya que su resultado debe ser diferente cada vez que se ejecuta.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Bajo qué condiciones se omite el uso de la caché de consultas (Query cache)? (selecciona todas las que apliquen)

A. Si se solicita una tabla de resultados permanente.

B. Si se utiliza una función no determinista (ej. NOW()).

C. Si las tablas de origen tienen búferes de transmisión (streaming buffers).

D. Si las tablas o vistas referenciadas han sido modificadas.

A

A, B, C y D

Cada una de ellas describe una situación específica en la que BigQuery decide, por motivos de precisión o por la naturaleza de la solicitud, que no puede reutilizar un resultado anterior y debe ejecutar la consulta de nuevo.

A. Si se solicita una tabla de resultados permanente
Por qué es correcto: La caché de consultas existe para acelerar las consultas SELECT (lecturas) que se repiten. Si estás pidiendo una “tabla de resultados permanente” (es decir, usando la “Tabla de Destino” o Destination Table en la configuración), tu intención no es solo ver los datos, sino escribirlos en una nueva tabla.

La lógica: BigQuery debe ejecutar la consulta para generar los datos que va a escribir. No puede simplemente tomar un resultado de la caché y “moverlo” a una nueva tabla; debe procesar la solicitud de escritura. Por lo tanto, omite la caché y ejecuta el trabajo.

B. Si se utiliza una función no determinista (ej. NOW())
Por qué es correcto: Las funciones no deterministas son aquellas cuyo resultado cambia cada vez que se ejecutan, aunque la entrada sea la misma. NOW(), CURRENT_TIMESTAMP() o RAND() son los ejemplos perfectos.

La lógica: La caché solo funciona si el resultado de la consulta es estático y reutilizable. Si tu consulta es SELECT * FROM mi_tabla WHERE fecha > NOW() - INTERVAL 1 DAY, el valor de NOW() es diferente cada milisegundo. Si BigQuery usara un resultado de la caché, te estaría dando una respuesta basada en la hora de ayer o de hace 5 minutos, lo cual sería incorrecto. Para garantizar la precisión, BigQuery omite la caché.

C. Si las tablas de origen tienen búferes de transmisión (streaming buffers)
Por qué es correcto: Los “búferes de transmisión” (streaming buffers) contienen datos que acaban de ser insertados en BigQuery mediante la API de streaming y que aún no se han consolidado en el almacenamiento principal.

La lógica: Estos datos son los más “frescos” de la tabla. Un resultado guardado en la caché se generó antes de que estos nuevos datos llegaran. Si BigQuery usara la caché, tu consulta ignoraría por completo los datos recién llegados. Para garantizar que la consulta incluya los datos más recientes (incluidos los del búferred de streaming), BigQuery debe omitir la caché.

D. Si las tablas o vistas referenciadas han sido modificadas
Por qué es correcto: Esta es la regla de invalidación de caché más fundamental.

La lógica: La caché guarda una “foto” del resultado en un momento dado. Si los datos de la tabla original cambian (por un UPDATE, INSERT, DELETE, una carga por lotes, o incluso la expiración de una partición), esa “foto” guardada en la caché queda obsoleta (se vuelve stale).

BigQuery detecta que la tabla ha sido modificada y, aunque la pregunta (la cadena de consulta) sea la misma, sabe que la respuesta debe ser diferente. Por lo tanto, omite la caché y vuelve a ejecutar la consulta.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

En el contexto de la optimización de agregaciones, ¿cuál es la recomendación general sobre cuándo se debe realizar la agregación?

A. Siempre se debe agregar la tabla más grande primero.

B. Agregar tan tarde y tan raramente como sea posible, ya que es costoso.

C. Agregar siempre en la etapa de subconsulta inicial.

D. La agregación temprana es siempre la mejor práctica, independientemente del tamaño de la tabla.

A

B

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Existe una excepción a la regla de la agregación tardía: ¿cuándo se recomienda agregar un conjunto de datos antes de una operación de JOIN?

A. Cuando la agregación utiliza una función aproximada.

B. Si el JOIN es con una clave no única.

C. Si la tabla puede reducirse drásticamente en tamaño como preparación para la unión.

D. Cuando la consulta tiene una cláusula ORDER BY.

A

C

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Durante la ejecución de una agregación distribuida con shuffle (reorganización), ¿cuál es la función principal de esta operación de shuffle?

A. Realizar la ordenación final antes de aplicar LIMIT.

B. Distribuir el resultado de la agregación final al nodo maestro.

C. Garantizar que todos los valores iguales de la clave de agrupación vayan al mismo nodo de trabajo.

D. Reorganizar la tabla de entrada para la etapa de Partial GROUP BY.

A

C

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Al crear una consulta que utiliza JOIN, ¿cuál es la mejor práctica recomendada para ordenar manualmente las tablas a unir?

A. Colocar la tabla más pequeña primero.

B. Colocar la tabla más grande primero, seguida de la más pequeña, y luego por tamaño decreciente.

C. La tabla debe ser ordenada alfabéticamente por nombre.

D. El optimizador estándar de SQL siempre anula cualquier ordenación manual de la tabla.

A

B

Por qué la respuesta B es la correcta
B) Colocar la tabla más grande primero, seguida de la más pequeña, y luego por tamaño decreciente.

Esta es la respuesta correcta porque describe una heurística de optimización clave en los sistemas de data warehouse distribuidos y de procesamiento paralelo masivo (MPP), como BigQuery, Redshift o Spark SQL.

“Colocar la tabla más grande primero…”: Este es el principio más importante. En un hash join distribuido (el método más común en estos sistemas), el motor de consulta debe decidir qué tabla usar para “construir” (build) una tabla hash en memoria y qué tabla “sondear” (probe) o transmitir (stream).

Lo ideal es “construir” la tabla hash con la tabla más pequeña, ya que debe caber en la memoria de cada nodo worker.

La tabla más grande se “transmite” (stream), y cada una de sus filas se comprueba contra la tabla hash en memoria.

¿Por qué el orden manual importa?: Aunque los optimizadores de consulta son muy inteligentes, no son perfectos. Sus decisiones se basan en estadísticas de las tablas, que pueden estar desactualizadas o ser imprecisas. Al poner la tabla más grande primero en la cláusula FROM o JOIN, el desarrollador le está dando una pista fuerte (hint) al optimizador para que la trate como la tabla de stream y no intente cargarla en memoria (lo cual fallaría y causaría un error).

Aunque la segunda parte de la regla (“…seguida de la más pequeña, y luego por tamaño decreciente”) es muy específica y puede no ser universal, la parte principal (“Colocar la tabla más grande primero”) es la “mejor práctica” reconocida en este entorno.

Por qué las otras respuestas son incorrectas
A) Colocar la tabla más pequeña primero.

Incorrecto. Esta era una mejor práctica en sistemas de bases de datos antiguos que dependían de nested-loop joins (bucles anidados). En ese método, poner la tabla pequeña en el “bucle exterior” significaba menos iteraciones. En los data warehouses modernos que usan hash joins, esta lógica se invierte.

C) La tabla debe ser ordenada alfabéticamente por nombre.

Incorrecto. El rendimiento de la consulta no tiene absolutamente nada que ver con el nombre de las tablas.

D) El optimizador estándar de SQL siempre anula cualquier ordenación manual de la tabla.

Incorrecto (y es la “trampa”). Si bien es cierto que los optimizadores de consulta modernos (Cost-Based Optimizers) son los que toman la decisión final y pueden ignorar el orden del desarrollador, la palabra “siempre” es la que invalida esta opción.

En primer lugar, el optimizador a veces usa el orden como una pista.

En segundo lugar, casi todas las bases de datos tienen “pistas” de consulta (query hints, ej. /*+ ORDERED */ en Oracle) que fuerzan al optimizador a seguir el orden manual del desarrollador.

Dado que el optimizador no “siempre” anula el orden y que la “mejor práctica” en sistemas distribuidos es (B), esta opción es incorrecta.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Para asegurar que los conjuntos de datos a unir sean lo más pequeños posible, ¿dónde se recomienda ejecutar las cláusulas WHERE, especialmente en consultas que contienen JOINs?

A. Después de la agregación.

B. En una subconsulta o lo más pronto posible dentro de las condiciones de unión.

C. Exclusivamente en la tabla de la derecha del JOIN.

D. Solo cuando el plan de explicación muestre un uso excesivo de I/O.

A

B

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Qué tipo de JOIN se ilustra cuando una tabla pequeña (que califica para ser manejada por un solo nodo o ser replicada) se combina eficientemente con una tabla grande, sin necesidad de un shuffle independiente en ambos lados?

A. Hash Join
B. Shuffle Join
C. Broadcast Join (o Small JOIN)
D. Cartesian Join

A

C

Por qué la respuesta C es la correcta
C) Broadcast Join (o Small JOIN)

Un Broadcast Join (o “unión por difusión”) es una estrategia de optimización diseñada exactamente para el escenario descrito: unir una tabla muy pequeña con una tabla muy grande.

Así es como funciona:

El optimizador de consultas identifica que una de las tablas (la “tabla pequeña”) es lo suficientemente pequeña como para caber en la memoria de un solo nodo.

En lugar de “barajar” (shuffle) la tabla grande (lo cual es extremadamente costoso en términos de red y tiempo), el sistema hace lo contrario.

Transmite (Broadcasts) o replica la tabla pequeña completa a todos los nodos (workers) que tienen una parte de la tabla grande.

Una vez que cada worker tiene su parte de la tabla grande y una copia completa de la tabla pequeña, puede realizar el JOIN localmente (generalmente usando un Hash Join) sin más comunicación de red.

Esto se ajusta perfectamente a la descripción: la “tabla pequeña” es “replicada”, se une con una “tabla grande”, y se hace “sin necesidad de un shuffle” en la tabla grande.

Por qué las otras respuestas son incorrectas
A) Hash Join

Incorrecto. Un “Hash Join” es el algoritmo que se usa para realizar la unión dentro de cada nodo, no la estrategia para mover los datos entre los nodos. Tanto el Broadcast Join como el Shuffle Join usan un “Hash Join” como mecanismo. Es una respuesta demasiado genérica.

B) Shuffle Join

Incorrecto. Un “Shuffle Join” (o repartition join) es lo opuesto a lo descrito. Se usa cuando ambas tablas son grandes. En este caso, el sistema sí necesita hacer un “shuffle” en ambas tablas, reparticionándolas por la clave del JOIN para que las filas que coinciden terminen en el mismo nodo. Esto es lo que la opción C busca evitar.

D) Cartesian Join

Incorrecto. Un “Cartesian Join” (o CROSS JOIN) es un tipo de unión que multiplica cada fila de la tabla A por cada fila de la tabla B (M x N). No tiene una cláusula ON. Es la forma más ineficiente de unir tablas y no describe la estrategia de optimización mencionada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

¿Qué condiciones o acciones son causantes de una “explosión de JOIN” (Join explosion)? (selecciona todas las que apliquen)

A. El producto cartesiano de filas que comparten la misma clave de unión.

B. La utilización de una clave no única en ambos lados del JOIN.

C. La pre-agregación de filas mediante GROUP BY.

D. Un caso extremo donde el número de filas de salida es el producto del número de filas de la tabla izquierda por el número de filas de la tabla derecha.

A

A, B y D

¿Por qué A, B y D definen la “Explosión”?El término “Join Explosion” se refiere a cuando el resultado de unir dos tablas genera muchas más filas de las que esperabas, a menudo saturando la memoria del sistema (OOM - Out of Memory).1. La Causa Raíz (Opción B)El problema: Ocurre cuando intentas hacer un JOIN y la columna que usas como llave (key) no es única en ninguna de las dos tablas.El concepto: Es una relación Muchos-a-Muchos (N-to-N) no controlada.Ejemplo: Tienes la tabla “Ventas” y la tabla “Clientes”. Si por error tienes al cliente “Juan” duplicado 10 veces en la tabla de Clientes y 10 veces en la de Ventas, y haces un JOIN… ¡Boom!2. El mecanismo matemático (Opción A)Lo que sucede: El motor de base de datos realiza un producto cartesiano para esas filas coincidentes.Las matemáticas: Si tienes 1,000 filas con la clave “A” en la izquierda y 1,000 filas con la clave “A” en la derecha, el resultado no son 1,000 filas, ni 2,000. Son $1,000 \times 1,000 = \mathbf{1,000,000}$ de filas.3. El caso extremo (Opción D)Cross Join: Si haces un JOIN sin ninguna condición (o si todas las claves son idénticas en ambas tablas), obtienes el producto total de ambas tablas. Si cada tabla tiene 1 millón de filas, el resultado es 1 billón ($10^{12}$) de filas. Esto es la definición máxima de explosión.¿Por qué la C es “la mala” (en este contexto)?C. La pre-agregación de filas mediante GROUP BY.❌ No causa la explosión, ¡la cura!Explicación: Esta es la técnica estándar para evitar la explosión de JOINs.Cómo funciona: Antes de unir las tablas, usas GROUP BY para eliminar duplicados en la clave de unión, asegurándote de que al menos un lado del JOIN sea único.Estrategia: Transformas una relación “Muchos-a-Muchos” (peligrosa) en una “Muchos-a-Uno” (segura).Ejemplo VisualImagina que unes dos tablas por la clave ID:Tabla A| ID | Valor || :— | :— || 1 | X || 1 | Y |Tabla B| ID | Valor || :— | :— || 1 | A || 1 | B |Resultado del JOIN (Explosión - Opciones A/B):El resultado tendrá 4 filas ($2 \times 2$), duplicando datos innecesariamente.

ID,A.Valor,B.Valor
1,X,A
1,X,B
1,Y,A
1,Y,B

Solución (Opción C): Si haces un GROUP BY ID en la Tabla B antes de unir, solo tendrías 1 fila con ID 1, y el resultado final serían solo 2 filas, evitando la explosión.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

¿Cuál es la causa subyacente de un Skewed JOIN (JOIN asimétrico) en un sistema distribuido?

A. Una clave de unión que tiene muy pocos valores únicos.

B. El sistema reparte aleatoriamente los datos sin considerar la clave de unión.

C. El shuffle de datos envía todos los datos con la misma clave de unión a un único nodo de trabajo, sobrecargándolo.

D. El uso de la cláusula LIMIT sin ORDER BY.

A

C

¿Por qué la “C” es la respuesta correcta?
Para entender esto, hay que entender cómo funciona un JOIN en un sistema distribuido (cluster).

La regla de oro del JOIN: Para unir la Tabla A con la Tabla B usando una clave (ej. ID_Cliente), el sistema necesita que todas las filas de A con ID_Cliente = 50 y todas las filas de B con ID_Cliente = 50 estén en el mismo ordenador físico al mismo tiempo para poder compararlas.

El Shuffle (Barajado): El sistema mueve los datos a través de la red basándose en la clave. Envía el “Cliente 50” al Nodo 1, el “Cliente 51” al Nodo 2, etc.

El problema (Skew/Asimetría): Si tienes una clave muy popular (por ejemplo, ID_Cliente = “NULL” o una categoría como “Usuarios Anónimos” que tiene 10 millones de filas), el proceso de Shuffle enviará esos 10 millones de filas a un solo nodo pobre e infeliz.

El resultado: Mientras los otros 99 nodos terminan su trabajo en 5 segundos y se quedan esperando, el nodo sobrecargado tarda 2 horas o se queda sin memoria (OOM) y falla. Esto es el Skewed JOIN.

¿Por qué las otras opciones no son la “causa subyacente”?
A. Una clave de unión que tiene muy pocos valores únicos.

⚠️ Parcialmente cierta, pero incompleta.

Explicación: Tener pocos valores únicos (Baja Cardinalidad) facilita el skew, pero no es la única causa.

El matiz: Podrías tener 1 millón de claves únicas (alta cardinalidad), pero si una sola de esas claves (ej. la clave “X”) representa el 90% de tus datos, tendrás un Skewed JOIN brutal, aunque haya muchas otras claves únicas. La opción C describe el mecanismo mecánico del fallo (el nodo sobrecargado por el shuffle) que aplica a todos los casos.

B. El sistema reparte aleatoriamente los datos sin considerar la clave de unión.

❌ Incorrecta.

Explicación: Esto es lo contrario a un JOIN estándar. Si el sistema repartiera los datos aleatoriamente, nunca podría hacer el JOIN correctamente (porque el Cliente A estaría en el nodo 1 y sus ventas en el nodo 5). El sistema está obligado a considerar la clave de unión, y esa obligación es lo que causa el problema.

D. El uso de la cláusula LIMIT sin ORDER BY.

❌ Incorrecta.

Explicación: Esto genera resultados no deterministas (cada vez que corres la consulta podrías ver filas distintas), pero es un problema de lógica de negocio, no de rendimiento o distribución de carga en el clúster.

Analogía del Supermercado
Imagina un supermercado con 10 cajas (Nodos).

Funcionamiento normal: Los clientes se reparten equitativamente.

Skewed JOIN (Opción C): Hay una regla que dice “Todos los que compren Pan deben ir a la Caja 1”.

Si el 90% de la gente compra pan, la Caja 1 tendrá una fila kilométrica (Sobrecarga/Bottleneck), mientras las cajas 2-10 están vacías. El problema es la regla de agrupación (Shuffle por clave) combinada con la popularidad del Pan (Dato asimétrico).

Resumen Mental
Síntoma: Un nodo trabaja mucho más que el resto (Straggler).

Causa Técnica (Opción C): El Shuffle concentra datos de una clave popular (Hot Key) en un solo lugar.

Solución típica: “Salting” (añadir un número aleatorio a la clave para dividirla artificialmente).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

¿Qué estrategias de mitigación o solución se recomiendan para trabajar en torno a un Skewed JOIN? (selecciona todas las que apliquen)

A. Pre-filtrar las filas de la consulta que tienen la clave desequilibrada (unbalanced key).

B. Utilizar funciones de agregación exactas en lugar de aproximadas.

C. Potencialmente dividir la operación en dos consultas separadas.

D. Forzar el uso de un Broadcast JOIN.

A

A, C y D

¿Por qué A, C y D son las soluciones?Analicemos cada estrategia desde la más simple a la más técnica:1. Pre-filtrar (Opción A) - “La solución higiénica”La lógica: A menudo, el Data Skew es causado por “basura”. Por ejemplo, millones de filas tienen la clave NULL o una cadena vacía “” porque el sistema de origen falló al registrar el ID.La acción: Si esos datos no son útiles para tu análisis, simplemente elimínalos antes del JOIN (WHERE id IS NOT NULL).Resultado: Eliminas la clave masiva que iba a saturar un nodo. Problema resuelto sin ingeniería compleja.2. Broadcast JOIN (Opción D) - “La solución arquitectónica”La lógica: El Skew ocurre durante el Shuffle (mover la tabla grande a través de la red para agrupar claves).La acción: Si una de las dos tablas es pequeña (ej. una tabla de dimensiones de “Códigos de País”), puedes forzar un Broadcast JOIN.Cómo funciona: En lugar de mover la tabla gigante, el sistema copia la tabla pequeña completa y la envía a todos los nodos.Resultado: Cada nodo puede hacer el JOIN localmente con su pedazo de la tabla gigante sin necesidad de hacer Shuffle. Si no hay Shuffle, no hay Skew.3. Dividir la operación (Opción C) - “Divide y vencerás”La lógica: Si tienes una clave que es necesaria pero muy masiva (ej. “Cliente Genérico”), y no puedes usar Broadcast.La acción: Separas el proceso en dos:Una consulta solo para la clave problemática (quizás usando técnicas especiales).Otra consulta para el resto de los datos “normales”.Al final, haces un UNION ALL de los resultados.Resultado: Aíslas el problema para que no ralentice todo el pipeline.¿Por qué la B es incorrecta?B. Utilizar funciones de agregación exactas en lugar de aproximadas.❌ Incorrecta.El motivo: Esto mezcla peras con manzanas.Las funciones “aproximadas” (como APPROX_COUNT_DISTINCT) se usan para hacer conteos más rápidos sacrificando un poco de precisión (usando algoritmos como HyperLogLog).Usar una función “exacta” (COUNT(DISTINCT)) es más pesado computacionalmente y requiere más Shuffle, por lo que empeoraría el rendimiento, no solucionaría el bloqueo del JOIN.Resumen de Estrategias para el ExamenSi te encuentras con un Skewed JOIN, tu lista de chequeo mental debe ser:¿Es basura? $\rightarrow$ Filtra (Opción A).¿Cabe la otra tabla en memoria? $\rightarrow$ Broadcast Join (Opción D).¿Es un dato válido y gigante? $\rightarrow$ Divide la consulta (Opción C) o usa “Salting” (añadir aleatoriedad a la clave).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Asumiendo que el optimizador no reordena las expresiones, ¿cómo deben ordenarse las expresiones dentro de una cláusula WHERE para lograr la máxima selectividad temprana?

A. Las expresiones más costosas de ejecutar primero.

B. Las expresiones menos selectivas primero.

C. Las expresiones más selectivas primero.

D. El orden de las expresiones no tiene impacto en el rendimiento.

A

C

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Cuando se intenta ordenar un conjunto de resultados muy grande mediante una cláusula ORDER BY sin restricciones, ¿por qué es común que ocurran errores de “Recursos Excedidos”?

A. El proceso de shuffle es incapaz de manejar el volumen de datos.

B. La ordenación final debe ser realizada por un único slot/nodo, lo que puede sobrecargarlo.

C. El I/O de lectura inicial se vuelve demasiado lento.

D. La clave de ordenación es demasiado larga.

A

B

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Para mitigar el riesgo de errores por sobrecarga de recursos al ordenar un número muy grande de valores, ¿qué cláusula de optimización debe combinarse con ORDER BY?

A. GROUP BY
B. HAVING
C. LIMIT
D. EXCEPT

A

C

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

¿Cómo mejora el rendimiento distribuido la combinación de ORDER BY con LIMIT?

A. Permite que el nodo Maestro realice toda la ordenación.

B. Permite a los nodos de trabajo descartar valores que superan el límite en etapas intermedias, reduciendo el volumen de datos a mover.

C. Transforma la operación en un Broadcast Join.

D. Obliga a utilizar una clave de clustering.

A

B

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Si solo se requiere una coincidencia simple con comodines (wildcard matching) en la comparación de cadenas, ¿qué función debe preferirse para un mejor rendimiento en comparación con REGEXP_CONTAINS? A. CONCAT B. LIKE C. SUBSTR D. CAST
B La Respuesta Correcta B. LIKE ¿Por qué es la mejor opción? Imagina que quieres cortar una hoja de papel. LIKE es como usar unas tijeras: herramienta simple, ligera y diseñada específicamente para esa tarea. REGEXP_CONTAINS es como usar una motosierra: muy potente, capaz de cortar árboles enteros (patrones complejos), pero excesiva, pesada y lenta para cortar una simple hoja. Razones técnicas de rendimiento: Complejidad Computacional: El operador LIKE es mucho más ligero para la CPU. Solo busca dos cosas básicas: % (cualquier cosa) y _ (un carácter). El motor de expresiones regulares (REGEXP), en cambio, tiene que cargar un "motor" complejo para analizar reglas gramaticales avanzadas, lo que consume más recursos. Uso de Índices (Sargable): Esta es la gran diferencia. Si usas WHERE nombre LIKE 'Juan%', muchas bases de datos pueden usar sus índices para ir directamente a la "J", saltándose millones de filas. Si usas REGEXP_CONTAINS(nombre, r'^Juan'), la mayoría de las bases de datos no pueden usar el índice eficientemente y se ven obligadas a leer toda la tabla (Full Table Scan) para procesar la expresión regular fila por fila. Por qué las otras opciones son incorrectas A. CONCAT Función: Sirve para pegar (concatenar) dos o más cadenas (ej. "Hola" + "Mundo" = "HolaMundo"). Por qué es mala: No sirve para comparar ni filtrar datos, solo para transformarlos. No tiene nada que ver con buscar coincidencias. C. SUBSTR Función: Sirve para recortar una parte de una cadena (ej. extraer las primeras 3 letras). Por qué es mala: Aunque podrías usarla para simular una búsqueda (ej. SUBSTR(campo, 1, 3) = 'ABC'), es menos legible y generalmente menos eficiente que LIKE para patrones variables. Además, LIKE es el estándar declarativo para "matching". D. CAST Función: Sirve para cambiar el tipo de dato (ej. convertir el texto "123" al número 123). Por qué es mala: No tiene ninguna utilidad para buscar patrones de texto. Resumen Mental para el Examen: ¿Patrón Simple? (Empieza por..., contiene..., termina en...) $\rightarrow$ Usa LIKE. (Es las tijeras). ¿Patrón Complejo? (Contiene 3 dígitos seguidos de una letra, opcionalmente un guion...) $\rightarrow$ Usa REGEXP. (Es la motosierra). Regla de oro: Nunca uses una función más compleja de lo estrictamente necesario. En Data Engineering, simple = rápido = barato.
26
Si una función de agregación SQL tiene un equivalente de función aproximada (ej. APPROX_COUNT_DISTINCT), ¿por qué se debería preferir la versión aproximada? A. Produce un resultado que generalmente está dentro del 1% del número exacto. B. Resulta en un rendimiento de consulta más rápido. C. Elimina la necesidad de utilizar la cláusula GROUP BY. D. Reduce la probabilidad de un Skewed JOIN.
A y B
27
¿Qué tipo de UDF (Función Definida por el Usuario) debe evitarse en favor de su alternativa, debido a que el tipo menos preferido reduce sustancialmente el rendimiento al tener que iniciar un subproceso V8 para la evaluación? A. UDFs de SQL en lugar de UDFs persistentes. B. UDFs de JavaScript en lugar de UDFs de SQL. C. UDFs persistentes en lugar de UDFs temporales. D. UDFs de SQL en lugar de UDFs de JavaScript.
B
28
¿Cuál es el beneficio de crear funciones definidas por el usuario persistentes en un conjunto de datos centralizado? A. Eliminan el shuffle de la consulta. B. Permiten que la lógica de negocio se centralice y se invoque en múltiples consultas y vistas lógicas. C. Se ejecutan en el nodo maestro, no en los workers. D. Solo funcionan con tipos de datos enteros (INT64).
B
29
¿Qué capacidades suelen estar disponibles al utilizar scripting y procedimientos almacenados en la ejecución de consultas? A. Declarar, asignar y utilizar variables. B. Controlar la ejecución mediante condiciones y bucles. C. Ejecutar múltiples declaraciones en una sola solicitud. D. Garantizar que todas las declaraciones se comprometen de manera dependiente entre sí.
A, B y C
30
¿Qué etapa del procesamiento de una consulta suele beneficiarse más de un filtrado temprano? A) Lectura desde almacenamiento B) Escritura de resultados C) Lectura de etapas intermedias D) Cálculo en CPU
C y D
31
¿Qué indicador sugiere la presencia de un data skew? A) Promedio y máximo de tiempo similares B) Promedio mucho menor que el máximo C) Tiempos de ejecución uniformes D) Lectura reducida de bytes
B
32
¿Qué métrica representa el volumen de datos enviados entre etapas de procesamiento? A) I/O B) Shuffle C) Grouping D) Materialization
B
33
¿Cuál de las siguientes reduce la carga de CPU en una consulta? A) Usar funciones aproximadas B) Usar SELECT * C) Evitar filtrado temprano D) Aumentar el tamaño del resultado
A
34
¿Por qué se recomienda evitar SELECT *? A) Porque devuelve resultados incompletos B) Porque aumenta el coste y ralentiza la ejecución C) Porque impide el uso de índices D) Porque requiere particionamiento
B
35
¿Qué ventaja tiene SELECT * EXCEPT? A) Excluye columnas innecesarias sin escribirlas todas B) Mejora la exactitud de las funciones C) Reduce los costes de escritura D) Forza la agregación
A
36
¿Qué efecto tiene el clustering sobre una tabla particionada? A) Aumenta el tiempo de lectura B) Reduce los bytes procesados para consultas filtradas C) Elimina la necesidad de índices D) Hace más lenta la agregación
B
37
¿Qué práctica permite eliminar la necesidad de un GROUP BY en modelos jerárquicos? A) Usar SELECT DISTINCT B) Anidar datos repetidos en campos anidados C) Aplicar funciones aproximadas D) Hacer JOINs cruzados
B
38
¿Cuándo se invalida la caché de consultas? A) Si no hay funciones deterministas B) Cuando las tablas referenciadas cambian C) Cuando se ejecuta en modo anónimo D) Siempre que se usa un SELECT *
B
39
¿Qué principio guía la optimización de agregaciones? A) Agregar lo antes posible siempre B) Agregar tarde y lo menos posible C) Evitar el GROUP BY D) Hacer sumas dentro del JOIN
B
40
¿Cuándo conviene agregar temprano? A) Cuando la agregación reduce drásticamente el tamaño antes del JOIN B) Cuando las tablas son idénticas C) Cuando hay pocas columnas D) Cuando hay un filtro posterior
A
41
¿Qué ventaja aporta el shuffle aggregation? A) Evita ordenar datos B) Permite escalabilidad repartiendo claves iguales entre nodos C) Duplica los datos por seguridad D) Desactiva la paralelización
B
42
¿Cuál es la mejor práctica en el orden de los JOINs? A) De menor a mayor tamaño B) De mayor a menor tamaño C) Orden aleatorio D) Siempre usando subconsultas
B
43
¿Por qué es preferible filtrar antes de un JOIN? A) Para reducir el tamaño de las tablas a unir B) Para mantener la cardinalidad C) Porque mejora el resultado final D) Porque evita los índices
A
44
¿Cuál es la diferencia principal entre Broadcast Join y Shuffle Join? A) El primero duplica la tabla grande B) El primero envía la tabla pequeña a todos los nodos C) El segundo no usa red D) El segundo sólo se aplica en tablas particionadas
B
45
¿Qué condición permite el uso de Broadcast Join? A) Que la tabla izquierda sea pequeña B) Que la tabla derecha sea pequeña C) Que ambas estén particionadas D) Que no haya filtros
B
46
¿Qué riesgo presentan los Join explosions? A) Duplicación de filas y resultados excesivos B) Pérdida de datos C) Bloqueo de caché D) Falta de paralelismo
A
47
¿Qué causa un Skewed Join? A) Claves de unión distribuidas uniformemente B) Claves con distribución muy desigual C) Filtros redundantes D) Falta de partición
B
48
¿Cómo puede mitigarse un Skewed Join? A) Eliminando todas las claves B) Filtrando previamente las claves desbalanceadas C) Aumentando los slots de CPU D) Desactivando el shuffle
B
49
¿Qué indicador en el plan de ejecución revela un Skewed Join? A) Tiempo promedio alto B) Tiempo máximo muy superior al promedio C) Bajo uso de CPU D) Igual número de filas por clave
B
50
¿Qué orden debe seguirse en las condiciones WHERE? A) Aleatorio B) Por nombre de columna C) La expresión más selectiva primero D) La más costosa primero
C
51
¿Por qué puede fallar un ORDER BY sin LIMIT? A) Porque requiere demasiada memoria en el nodo maestro B) Porque BigQuery no lo soporta C) Porque necesita índices D) Porque no se puede ordenar alfabéticamente
A
52
¿Qué ventaja tiene añadir LIMIT a una consulta con ORDER BY? A) Acelera la escritura B) Reduce el volumen que debe ordenarse C) Elimina duplicados D) Mejora la precisión
B
53
¿Qué ocurre cuando ORDER BY se combina con LIMIT en consultas distribuidas? A) Los nodos pueden descartar valores por encima del límite antes de combinar B) Todos los nodos deben procesar todas las filas C) Se desactiva la paralelización D) Aumenta el uso de red
A
54
¿Cuál es la diferencia de rendimiento entre REGEXP_CONTAINS y LIKE? A) Son equivalentes B) REGEXP_CONTAINS es más rápido C) LIKE es más rápido si no se necesita regex D) LIKE siempre requiere índices
C
55
¿Qué función se debe preferir para contar valores distintos más rápido? A) COUNT(DISTINCT) B) APPROX_TOP_COUNT C) APPROX_COUNT_DISTINCT D) COUNT(*)
C
56
¿Qué precisión típica tienen las funciones aproximadas? A) ±10% B) ±5% C) ±1% D) ±0.1%
C
57
¿Por qué deben evitarse las UDFs en JavaScript? A) Porque no soportan expresiones complejas B) Porque ejecutan código fuera de BigQuery y reducen rendimiento C) Porque no pueden ser persistentes D) Porque no devuelven valores
B
58
¿Qué ventaja tienen las UDFs persistentes sobre las temporales? A) Pueden reutilizarse entre consultas y proyectos B) Son más rápidas de ejecutar C) No necesitan permisos D) No se pueden modificar
A
59
¿Qué característica permite el scripting en SQL? A) Ejecución de múltiples sentencias en una sola solicitud B) Definir claves primarias C) Crear índices automáticos D) Evitar transacciones
A
60
¿Qué acción debe realizarse primero para optimizar una consulta cuyo tiempo máximo supera ampliamente al promedio en el plan de ejecución? A) Usar funciones exactas en lugar de aproximadas B) Aplicar el filtro lo más temprano posible C) Ordenar los resultados antes de filtrar D) Materializar resultados intermedios
B
61
¿Cuál de los siguientes aspectos representa 'trabajo' realizado por una consulta? A) Número de vistas materializadas B) Bytes leídos, bytes escritos y bytes agrupados C) Número de columnas seleccionadas D) Número de instrucciones SQL
B
62
¿Por qué se recomienda evitar el uso de SELECT * en consultas complejas? A) Porque disminuye la legibilidad del código B) Porque puede aumentar costos y afectar el rendimiento C) Porque impide usar particiones D) Porque obliga a usar subconsultas
B
63
¿En qué casos es preferible usar SELECT * EXCEPT sobre SELECT *? A) Cuando se necesitan todas las columnas B) Cuando se desea excluir columnas no necesarias C) Cuando la tabla está particionada D) Cuando se usa una función de agregado
B
64
¿Qué ventaja ofrece una tabla clusterizada frente a una solo particionada al filtrar por agrupaciones de valores? A) Menos datos procesados y menos recursos consumidos B) Mayor granularidad en los resultados C) Reducción en la necesidad de índices D) Mayor número de columnas por defecto
A
65
¿Cuál es la ventaja de modelar los datos repetidos como campos anidados en vez de filas separadas? A) Requiere menos uso de GROUP BY B) Facilita la creación de índices C) Permite consultas más lentas D) Exige usar subconsultas
A
66
¿Qué condiciones invalidan la caché de una consulta? A) La consulta utiliza funciones deterministas B) Se solicita una tabla permanente como resultado C) Los datos fuente no han cambiado D) Usa columnas calculadas
B
67
¿Cuál debería ser la regla general sobre el momento de realizar agregaciones en una consulta compleja? A) Agregar lo antes posible siempre B) Agregar lo más tarde y menos frecuentemente posible C) Agregar únicamente después de los JOIN D) No realizar agregaciones
B
68
¿En qué situación conviene agregar antes de realizar un JOIN? A) Cuando los datos tienen bajo cardinalidad B) Cuando las tablas pueden reducirse drásticamente con la agregación C) Cuando ambos lados del JOIN no están agregados al mismo nivel D) Cuando se usa SELECT *
B
69
¿Cuál es la mejor práctica respecto al orden de las tablas en un JOIN? A) Ubicar primero la tabla más pequeña B) Dejar que el optimizador SQL determine el orden C) Ubicar primero la tabla más grande y luego las demás por tamaño D) Ordenarlas alfabéticamente
C
70
¿Por qué es importante aplicar las cláusulas WHERE antes de ejecutar un JOIN? A) Para maximizar la cardinalidad de los resultados B) Para minimizar el número de filas a unir C) Para evitar el uso de índices D) Porque se ejecutan automáticamente
B
71
¿Cuándo es más eficiente utilizar un Broadcast JOIN en vez de un Shuffle JOIN? A) Cuando las dos tablas tienen millones de filas B) Cuando una de las tablas es pequeña y cabe en memoria C) Cuando las tablas tienen la misma cardinalidad D) Cuando se requiere agrupación por clave
B
72
¿Qué problema puede causar un JOIN donde la clave no es única en ambos lados? A) La consulta solo devuelve una fila B) Se produce un producto cartesiano grande C) Se impide el uso de particiones D) La consulta ignora los filtros
B
73
¿Cómo puede diagnosticarse una “explosión de JOIN” en el plan de ejecución? A) Revisando el número de filas de salida comparado con las de entrada B) Observando el tipo de partición C) Analizando el costo total estimado D) Verificando si hay funciones persistentes
A
74
¿Qué ocurre cuando hay un sesgo de datos (data skew) en un JOIN? A) Todos los workers procesan una carga uniforme B) Un worker procesa demasiados datos C) Ningún worker recibe datos D) El resultado es siempre nulo
B
75
¿Cuáles son las estrategias para evitar problemas de sesgos en JOINs? A) Pre-filtrar filas con claves desequilibradas B) Repetir la consulta sin cambios C) Usar funciones persistentes D) Eliminar las particiones
A
76
¿Por qué el orden de las expresiones en la cláusula WHERE influye en el rendimiento? A) Porque SQL ordena los filtros automáticamente B) Porque la expresión más selectiva debe aplicarse primero C) Porque el optimizador ignora el texto D) Porque afecta la cardinalidad
B
77
¿Cómo puede prevenirse un error de “Resources Exceeded” al ordenar grandes cantidades de datos? A) Usando una cláusula LIMIT junto con ORDER BY B) Realizando primero un JOIN C) Eliminando las funciones de agregado D) Usando variables
A
78
¿Cuándo está justificado el uso de LIKE en vez de REGEXP_CONTAINS en una condición de filtrado? A) Cuando se necesita toda la potencia de regex B) Cuando se requiere solo coincidencia de comodines C) Cuando la columna es numérica D) Cuando se busca un valor exacto
B
79
¿En qué caso conviene emplear funciones de agregación aproximadas? A) Cuando se requiere alta precisión B) Cuando se necesita mejorar el rendimiento C) Cuando se usan columnas de tipo array D) Cuando se busca ordenación alfabética
B
80
¿Por qué las UDFs en JavaScript pueden disminuir el rendimiento respecto a las definidas en SQL? A) Porque requieren iniciar un proceso V8 B) Porque usan funciones de sistema C) Porque SQL no soporta lógica compleja D) Porque no pueden ser persistentes
A
81
¿Cuál es la ventaja principal de emplear funciones persistentes UDF en lugar de temporales? A) Crean librerías reutilizables y permiten invocaciones en diversos contextos B) Solo pueden usarse en la consulta actual C) Eliminan la necesidad de particionar D) Permiten mayor cantidad de parámetros
A
82
¿Qué característica NO es propia de los scripts y procedimientos almacenados en SQL? A) Ejecutar múltiples sentencias en una solicitud B) Controlar ejecución con condiciones y bucles C) Todas las declaraciones se comiten de forma indivisible D) Usar variables dentro de las sentencias
C
83
¿Cuál es el coste más directo que mide cuánto datos lee una consulta? A. Shuffle B. I/O C. Materialization D. Grouping
B
84
En un plan de ejecución donde avg time es mucho menor que max time, ¿qué diagnóstico es más probable? A. Muchas compresiones de datos B. Data skew (sesgo de datos) C. Tablas mal particionadas D. Uso excesivo de ORDER BY
B
85
¿Qué acción es la menos indicada para reducir trabajo de CPU en una consulta? A. Usar funciones aproximadas cuando existan B. Inspeccionar y limitar UDFs pesadas C. Aumentar el número de columnas seleccionadas con SELECT * D. Filtrar temprano las filas irrelevantes
C
86
En un plan simple con dos etapas (Stage 1: filtro y conteo distribuido; Stage 2: suma final), ¿qué componente suele concentrar el trabajo de agregación final? A. Master que coordina, un único worker para la suma final B. Cada worker realiza la suma final localmente sin coordinación C. No hay etapa de suma en consultas distribuidas D. La etapa de lectura finaliza la agregación sin workers
A
87
¿Qué práctica reduce el volumen de datos leídos y mejora rendimiento en subconsultas? A. Usar SELECT * en todas las subconsultas B. Seleccionar solo las columnas necesarias (ej. SELECT * EXCEPT) C. Materializar resultados intermedios cada vez D. Añadir ORDER BY en subconsultas pequeñas
B
88
¿Cuál es el beneficio principal de particionar y además clusterizar una tabla? A. Permite almacenar datos en múltiples regiones automáticamente B. Reduce bytes procesados y mejora prunning automático al filtrar por partición y clúster C. Evita por completo los shuffles en joins D. Hace inútil el uso de índices
B
89
Dos consultas similares: una sobre tabla particionada solo y otra particionada + clusterizada, ambas filtran por rango de fecha y título. ¿Qué diferencia esperas en bytes procesados? A. La versión clusterizada suele procesar menos bytes por mejor pruning B. La particionada siempre procesará menos bytes que la clusterizada C. Ambas procesarán exactamente los mismos bytes D. Clusterizar aumenta bytes procesados por overhead
A
90
¿Por qué es preferible "agregar tarde" (late aggregation) en muchas consultas distribuidas? A. Porque la agregación temprana libera más memoria en master B. Porque la agregación es costosa y dejarla al final evita trabajo innecesario en etapas intermedias C. Porque los motores no soportan agregaciones tempranas D. Porque agrupar tarde elimina la necesidad de joins
B
91
¿En qué caso conviene agregar antes de un JOIN? A. Cuando la tabla no cambia nunca B. Nunca; siempre es peor C. Cuando la agregación reduce drásticamente el tamaño de la tabla y los niveles de agregación coinciden con la clave de join D. Solo cuando hay columnas repetidas
C
92
¿Qué hace el shuffle durante una agregación distribuida? A. Ordena datos dentro de cada worker sin moverlos entre nodos B. Envía valores iguales de la clave a un mismo worker para poder agregarlos globalmente C. Duplica filas para balancear carga D. Elimina filas con cardinalidad alta
B
93
¿Por qué las agregaciones con alta cardinalidad pueden requerir muchos sinks intermedios? A. Porque se evita el hashing sobre la clave B. Porque cada valor distinto de la clave debe agruparse y redistribuirse, generando muchos puntos de combinación C. Porque se escribe todo en disco sin usar memoria D. Porque se ejecutan exclusivamente en el master
B
94
En una consulta GROUP BY ... ORDER BY ... LIMIT N sobre datos distribuidos, ¿qué optimización es clave para reducir carga en el paso final? A. Eliminar el ORDER BY B. Usar LIMIT para reducir el número de valores que llegan a la fase final de sort C. Hacer ORDER BY sobre muchas columnas para paralelismo D. Materializar la tabla completa antes del ORDER BY
B
95
¿Qué describe mejor la reparticionación (repartitioning) en una consulta distribuida? A. Leer todo en un único worker para luego dividirlo B. Organizar múltiples etapas intermedias con shuffles para agrupar valores y balancear trabajo antes del paso final C. Evitar cualquier tipo de shuffle para mejorar rendimiento D. Forzar joins broadcast automáticos
B
96
¿Cuál es la recomendación sobre el orden lógico de tablas en un JOIN para optimización? A. Colocar primero la tabla más pequeña siempre B. Colocar primero la tabla más grande, luego la más pequeña, y seguir por tamaños decrecientes C. El orden no importa; el optimizador siempre lo arregla D. Siempre usar CROSS JOIN para mejorar paralelismo
B
97
¿Por qué es útil filtrar antes de realizar un JOIN? A. Porque reduce el número de columnas de la tabla derecha automáticamente B. Porque minimiza el tamaño de las tablas que se van a unir, reduciendo I/O y shuffle necesarios C. Porque evita la necesidad de claves de join D. Porque duplica la cantidad de filas por join
B
98
¿Qué distingue un broadcast (small JOIN) de un shuffle JOIN? A. Broadcast envía una copia completa de la tabla pequeña a cada worker; shuffle redistribuye ambas tablas por clave B. Shuffle siempre usa menos recursos que broadcast C. Broadcast requiere clustering y shuffle no D. No existe diferencia; ambos son equivalentes
A
99
En qué condicion se puede beneficiar un JOIN cuando la tabla izquierda está clusterizada y la subconsulta derecha cabe para broadcast? A. Se vuelve innecesario el uso de WHERE B. Se puede filtrar el lado izquierdo usando el rango de valores de la derecha antes de escanear todo, reduciendo datos leídos y slots consumidos C. El clusterizado impide cualquier optimización adicional D. Solo mejora si ambas tablas están particionadas por la misma columna
B
100
¿Qué provoca una join explosion (explosión por JOIN)? A. Joins entre tablas con claves únicas en ambos lados B. JOIN con claves no únicas en ambos lados que produce producto cartesiano parcial o completo C. Uso de FILTER en subconsulta derecha D. Uso de funciones agregadas en la cláusula ON
B
101
¿Cuál es una mitigación habitual para joins explosivos? A. Convertir todos los joins a subconsultas correlacionadas B. Pre-aggregate (GROUP BY) cada lado para asegurar unicidad por clave de join antes de unir C. Remover índices de las tablas D. Añadir ORDER BY en cada tabla antes del join
B
102
¿Qué ocurre cuando un join está skewed (sesgado)? A. Todos los workers procesan la misma cantidad de datos B. Un worker recibe demasiadas filas para una misma clave, causando tiempos máximos mucho mayores que el promedio C. El master realiza todo el trabajo de join D. El shuffle se desactiva automáticamente
B
103
¿Cuál es una estrategia práctica para manejar un skewed JOIN? A. Aumentar el tamaño del cluster sin cambiar la consulta B. Pre-filtrar las filas con la clave desbalanceada o dividir el join en consultas separadas que traten el caso desbalanceado por separado C. Usar ORDER BY en la clave desbalanceada D. Reemplazar JOIN por UNION ALL
B
104
En la cláusula WHERE, ¿por qué el orden de las expresiones puede afectar el rendimiento? A. El motor reordena siempre las expresiones por costo, así que no importa B. Porque BigQuery asume que el usuario ha colocado el mejor orden y no reordena, por lo que una expresión costosa evaluada sobre más filas incrementa el trabajo C. El orden solo afecta el resultado semántico, no el rendimiento D. El orden solo importa si se usan funciones agregadas
B
105
Entre estas dos expresiones en WHERE, ¿cuál conviene poner primera para filtrar más temprano? WHERE text LIKE '%java%' AND user = 'anon' A. text LIKE '%java%' primero B. user = 'anon' primero C. Ambas al mismo tiempo; el orden no cambia nada D. Poner una subconsulta en lugar de WHERE
B
106
¿Por qué es peligroso un ORDER BY sin LIMIT en grandes conjuntos de datos distribuidos? A. Porque impide el uso de particiones B. Porque la ordenación final debe ejecutarse en un solo slot y puede causar ResourceExhausted C. Porque devuelve los resultados en orden aleatorio D. Porque obliga a usar UDFs
B
107
¿Qué ventaja trae usar ORDER BY ... LIMIT N en una consulta distribuida? A. Permite que cada nodo descarte localmente valores por encima del límite antes del merge final, reduciendo memoria y shuffle B. Duplica el número de archivos intermedios C. Evita el uso de índices en disco D. Aumenta el tiempo total de latencia
A
108
¿Cuál es la diferencia clave entre un ORDER BY que necesita ordenar todo y uno con LIMIT pequeño? A. El ORDER BY con LIMIT finaliza en cada nodo sin exchange alguno B. El ORDER BY completo requiere que el master ordene y almacene todos los valores; con LIMIT cada nodo puede emitir solo sus top-N y la etapa final ordena menos datos C. No hay diferencia en uso de memoria D. LIMIT siempre provoca un full table scan extra
B
109
Para buscar si una cadena contiene una subcadena simple, ¿qué función suele ser más rápida? A. REGEXP_CONTAINS B. LIKE '%subcadena%' C. Usar UDF JavaScript con indexOf D. CAST a BYTES y comparar
B
110
¿Cuál es la ganancia al usar approx_count_distinct en lugar de COUNT(DISTINCT)? A. Resultados exactos gratis B. Menor rendimiento pero mayor exactitud C. Mejor rendimiento con un error aproximado típico ~1% D. Requiere más memoria que COUNT(DISTINCT)
C
111
¿Por qué se recomienda evitar UDFs en JavaScript cuando sea posible? A. Porque no soportan tipos numéricos B. Porque invocar JavaScript obliga a iniciar un proceso V8 extra y penaliza el rendimiento en CPU y latencia C. Porque no funcionan en consultas interactivas D. Porque no se pueden usar en subconsultas
B
112
¿Cuál es la ventaja principal de crear funciones persistentes (CREATE OR REPLACE FUNCTION) en lugar de TEMP FUNCTION por repetición de lógica? A. Permiten conectarse a bases externas automáticamente B. Facilitan reuso centralizado, evitan reescribir la misma lógica y suponen menor overhead operativo al invocarlas desde múltiples consultas C. Son siempre más rápidas que SQL nativas D. Solo funcionan con JavaScript
B
113
Al reemplazar una TEMP FUNCTION por una función persistente usada en muchos queries, ¿qué mejora se busca? A. Hacer que la función sea privada por query B. Evitar replicar definición en cada consulta y permitir mantenimiento centralizado y potencial optimización de ejecución compartida C. Forzar recompilación en cada ejecución D. Reducir la legibilidad del SQL
B
114
¿Qué característica permite la scripting y stored procedures en SQL del motor? A. Ejecutar múltiples sentencias en una sola petición, declarar variables, bucles y control de flujo B. Garantizar rollback automático de todas las sentencias en bloque si falla una C. Ejecutar UDFs en paralelo automáticamente sin control del usuario D. Sustituir todas las consultas por procedimientos externos
A
115
¿Cuál es una advertencia importante al usar scripting con múltiples sentencias? A. Las sentencias se ejecutan todas en una sola transacción atómica B. Cada sentencia se comete de forma independiente, por lo que no hay commit/rollback global automático C. No se pueden usar variables ni bucles en cloud SQL scripting D. La ejecución solo es posible en modo batch
B
116
En un ejemplo de procedimiento que genera primos usando arrays y loops, ¿qué instrucción evita comprobar todos los primos cuando ya se supera sqrt(n)? A. CONTINUE B. BREAK cuando prime * prime >= n C. RETURN inmediatamente con resultado parcial D. GOTO a la siguiente iteración
B
117
¿Qué estrategia general se recomienda para organizar bibliotecas de lógica de negocio reutilizable en BigQuery? A. Duplicar funciones temporales en cada consulta para independencia B. Centralizar funciones persistentes en datasets compartidos para invocación org-wide y mantenimiento centralizado C. Mantener todo el código en UDFs JavaScript en lugar de SQL UDFs D. Evitar cualquier UDF y codificar lógica en la aplicación cliente siempre
B
118
Si buscas acelerar una consulta que usa una comparación compleja con regex pero solo necesitas una coincidencia simple de substring, ¿qué conviene hacer? A. Mantener REGEXP_CONTAINS por seguridad B. Reemplazar regex por LIKE '%patrón%' para mejor rendimiento cuando la potencia completa de regex no es necesaria C. Convertir la columna a JSON y usar JSON functions D. Usar una UDF JavaScript para mayor flexibilidad
B
119
En un sistema de procesamiento de consultas distribuido, ¿cuál es la función principal del nodo "maestro"? A. Almacenar todos los datos de forma permanente. B. Ejecutar las tareas de filtrado y conteo inicial. C. Coordinar el trabajo entre los nodos "trabajadores" y agregar los resultados finales. D. Interactuar directamente con el almacenamiento distribuido.
C
120
¿Qué podría indicar una diferencia significativa entre el tiempo promedio (avg) y el tiempo máximo (max) en la ejecución de una etapa de una consulta? A. Un uso eficiente de la memoria caché. B. Una distribución uniforme de los datos. C. La existencia de un desequilibrio o sesgo de datos (data skew). D. Un error en la sintaxis de la consulta SQL.
C
121
Si el plan de ejecución de una consulta muestra que la mayor parte del tiempo se dedica a leer datos de etapas intermedias, ¿qué acción de optimización sería más recomendable? A. Aumentar el número de columnas en el SELECT. B. Aplicar los filtros en una etapa más temprana de la consulta. C. Utilizar funciones de agregación más complejas. D. Reemplazar JOINs por UNIONs.
B
122
¿Cuál de las siguientes métricas de "trabajo" en una consulta se refiere a la cantidad de bytes leídos del almacenamiento inicial? A. Shuffle B. Materialization C. I/O D. CPU work
C
123
¿A qué se refiere el término "Shuffle" en el contexto del procesamiento de consultas distribuidas? A. La cantidad de bytes escritos en la tabla de resultados final. B. El tiempo de CPU utilizado por las funciones definidas por el usuario (UDFs). C. La cantidad de bytes transferidos entre etapas o nodos de trabajo. D. La cantidad de bytes leídos de las tablas originales.
C
124
¿Por qué se considera una mala práctica utilizar SELECT * en consultas, especialmente en subconsultas? A. Porque siempre devuelve los resultados en un orden incorrecto. B. Porque es ineficiente en costes y puede perjudicar el rendimiento al procesar datos innecesarios. C. Porque no es compatible con las cláusulas WHERE. D. Porque limita el número de filas devueltas a 1000.
B
125
Si necesitas seleccionar casi todas las columnas de una tabla excepto unas pocas, ¿qué sintaxis es la más eficiente? A. SELECT * B. SELECT ALL COLUMNS C. SELECT * EXCEPT (columna1, columna2) D. Listar manualmente todas las columnas que sí se desean incluir.
C
126
¿Qué técnica permite a un motor de base de datos omitir la lectura de particiones irrelevantes en una tabla, mejorando significativamente el rendimiento y reduciendo costes? A. El uso de SELECT *. B. El "auto-pruning" o poda automática basada en la partición. C. La desnormalización de los datos. D. El uso de la memoria caché de consultas.
B
127
¿Cuál es el principal beneficio de usar tablas clusterizadas junto con la partición? A. Aumentan el tamaño total de la tabla en el almacenamiento. B. Reducen la cantidad de datos escaneados al filtrar por la clave de clusterización, incluso dentro de las particiones relevantes. C. Eliminan la necesidad de usar una cláusula WHERE. D. Garantizan que todas las consultas se ejecuten en menos de un segundo.
B
128
¿En qué escenario es más beneficioso anidar datos repetidos (por ejemplo, los artículos de un pedido) en lugar de usar un modelo plano (una fila por cada artículo)? A. Cuando se necesita realizar JOINs complejos con otras tablas. B. Cuando se quiere evitar el uso de GROUP BY para agregar los datos anidados. C. Cuando todas las columnas tienen tipos de datos numéricos. D. Cuando se planea actualizar los datos anidados con frecuencia.
B
129
¿Cuál de las siguientes condiciones INVALIDARÍA el uso de la memoria caché de resultados para una consulta? (Selecciona todas las que apliquen) A. La consulta utiliza una función no determinista como NOW(). B. Los datos de las tablas referenciadas han cambiado desde la última ejecución. C. Se solicita explícitamente una tabla de resultados permanente. D. La sintaxis de la consulta es idéntica a una ejecución anterior.
A, B y C
130
¿Cuál es la estrategia general recomendada para aplicar agregaciones en una consulta compleja? A. Agregar los datos lo antes posible para reducir el tamaño de las tablas. B. Agregar los datos lo más tarde posible, ya que la agregación es una operación costosa. C. Evitar las agregaciones por completo. D. Siempre agregar antes de realizar una operación JOIN.
B
131
¿En qué situación específica es recomendable realizar una agregación TEMPRANA, antes de una operación JOIN? A. Cuando la agregación reduce drásticamente el tamaño de la tabla que se va a unir. B. Cuando las tablas son muy pequeñas. C. Cuando no hay una clave de unión común. D. Cuando se utiliza SELECT *.
A
132
¿Qué característica del procesamiento de agregaciones con "shuffle" en BigQuery permite una alta escalabilidad al manejar datos de alta cardinalidad? A. Envía todos los datos a un único nodo trabajador para su agregación. B. Agrupa los valores similares en el mismo nodo trabajador en una etapa intermedia. C. Descarta inmediatamente los valores que no formarán parte del TOP N final. D. Procesa los datos de forma estrictamente secuencial.
B
133
Al realizar un JOIN entre varias tablas, ¿cuál es la mejor práctica recomendada para ordenar las tablas en la consulta? A. Ordenarlas alfabéticamente por su nombre. B. Colocar primero la tabla más grande, seguida de las demás en orden decreciente de tamaño. C. Colocar primero la tabla más pequeña para que quepa en memoria. D. El orden de las tablas es irrelevante porque el optimizador siempre lo corrige.
B
134
Para optimizar una consulta que incluye un JOIN, ¿dónde se deben aplicar las cláusulas WHERE? A. Siempre después del JOIN, para filtrar el resultado combinado. B. Lo antes posible, para reducir el tamaño de las tablas antes de que se unan. C. Solo en la tabla más grande de la unión. D. Es indiferente, el resultado y el rendimiento son los mismos.
B
135
¿Qué tipo de JOIN se produce cuando una de las tablas es lo suficientemente pequeña como para ser enviada (transmitida) a todos los nodos trabajadores que procesan la tabla más grande? A. Shuffle JOIN B. Cross JOIN C. Broadcast JOIN D. Skewed JOIN
C
136
Un Large JOIN o Shuffle JOIN se caracteriza por: A. Enviar una copia de la tabla pequeña a cada nodo. B. Reorganizar (shuffle) los datos de ambas tablas a través de la red para que las filas con la misma clave de unión lleguen al mismo trabajador. C. Ser la opción más eficiente para unir una tabla grande con una muy pequeña. D. Evitar por completo el movimiento de datos entre nodos.
B
137
¿Qué es una "explosión de JOIN" (Join explosion)? A. Un error de sintaxis en la cláusula ON. B. Un JOIN que se ejecuta de forma extremadamente rápida. C. Una situación en la que el número de filas de salida es el producto cartesiano de filas con claves de unión no únicas en ambas tablas. D. Un JOIN que no produce ninguna fila como resultado.
C
138
¿Qué estrategia puede ayudar a mitigar una "explosión de JOIN"? A. Utilizar SELECT * en ambas tablas. B. Realizar un GROUP BY para pre-agregar los datos y asegurar claves de unión únicas antes del JOIN. C. Eliminar la cláusula ON. D. Añadir más columnas a la clave de unión.
B
139
¿Qué es un Skewed JOIN? A. Un JOIN donde la distribución de las claves de unión es uniforme. B. Un JOIN donde una o pocas claves de unión son mucho más frecuentes que las demás, sobrecargando a un solo nodo trabajador. C. Un JOIN que utiliza una sintaxis incorrecta. D. El nombre alternativo para un Broadcast JOIN.
B
140
¿Cuál es una posible solución para manejar un Skewed JOIN? A. Aumentar el tamaño de todas las tablas. B. Pre-filtrar las filas que contienen la clave de unión desequilibrada o dividir la consulta en dos. C. Usar siempre un Broadcast JOIN. D. Eliminar todos los índices de las tablas.
B
141
En una cláusula WHERE con múltiples condiciones unidas por AND, ¿por qué es importante el orden de las expresiones? A. El orden es irrelevante, el optimizador siempre las reordena. B. Las expresiones deben ordenarse de la menos selectiva a la más selectiva. C. El motor de consultas asume que el usuario ha proporcionado el mejor orden y no intenta reordenarlas. D. Las expresiones más costosas (como LIKE) deben ir siempre primero.
C
142
Para un rendimiento óptimo, ¿cómo deben ordenarse las condiciones en una cláusula WHERE? A. De la más selectiva (la que filtra más datos) a la menos selectiva. B. Alfabéticamente, según el nombre de la columna. C. De la más simple a la más compleja en términos de sintaxis. D. De la menos selectiva a la más selectiva.
A
143
¿Qué problema puede surgir al ejecutar una consulta con una cláusula ORDER BY sobre un conjunto de resultados muy grande? A. La consulta se ejecutará más rápido de lo esperado. B. Puede causar un error de "Recursos Excedidos" porque la ordenación final debe realizarse en un solo slot/nodo. C. Los resultados pueden no estar completamente ordenados. D. La cláusula ORDER BY se ignora si el conjunto de resultados es demasiado grande.
B
144
Si necesitas ordenar un conjunto de resultados muy grande pero solo te interesan los primeros N resultados, ¿qué cláusula deberías añadir para optimizar la consulta y evitar errores? A. GROUP BY B. HAVING C. LIMIT D. WHERE ROWNUM <= N
C
145
¿Cómo ayuda la cláusula LIMIT a optimizar una operación ORDER BY en un sistema distribuido? A. Permite que cada nodo trabajador descarte valores que no estarán en el resultado final antes de enviarlos al nodo maestro. B. Aumenta la cantidad de memoria asignada al nodo maestro. C. Realiza la ordenación en múltiples nodos en paralelo. D. Convierte la operación de ordenación en una de filtrado.
A
146
Al comparar cadenas, si solo se necesita una coincidencia de comodines simple (por ejemplo, encontrar texto que comienza con "test"), ¿qué operador es generalmente más eficiente que REGEXP_CONTAINS? A. CONTAINS B. MATCHES C. LIKE D. EQUALS
C
147
¿Cuándo es apropiado usar funciones de agregación aproximadas, como APPROX_COUNT_DISTINCT? A. Cuando se requiere una precisión del 100% en el resultado. B. Cuando un resultado con un pequeño margen de error es aceptable a cambio de un rendimiento de consulta mucho más rápido. C. Cuando se trabaja con tablas muy pequeñas. D. Únicamente cuando se cuentan valores no nulos.
B
148
Entre las UDF (Funciones Definidas por el Usuario) de SQL y las UDF de JavaScript, ¿cuál tiende a ofrecer un mejor rendimiento y por qué? A. JavaScript, porque es un lenguaje más moderno. B. JavaScript, porque no requiere compilar la consulta. C. SQL, porque se ejecuta de forma nativa dentro del motor de consultas sin la sobrecarga de iniciar un subproceso externo. D. Ambas tienen exactamente el mismo rendimiento.
C
149
¿Cuál es la principal ventaja de crear UDFs persistentes en un conjunto de datos centralizado en lugar de usar UDFs temporales en cada consulta? A. Las UDFs persistentes se ejecutan más lentamente. B. Permiten crear bibliotecas de lógica de negocio reutilizables que pueden ser invocadas desde múltiples consultas y por diferentes usuarios. C. Solo las UDFs temporales pueden aceptar argumentos. D. Las UDFs persistentes solo pueden escribirse en JavaScript.
B
150
¿Qué capacidad ofrecen las secuencias de comandos (scripting) y los procedimientos almacenados en una base de datos analítica? A. Ejecutar una única declaración SELECT por solicitud. B. Ejecutar múltiples declaraciones, usar variables y controlar el flujo con bucles y condicionales en una sola solicitud. C. Únicamente la capacidad de declarar variables. D. Garantizar que todas las declaraciones dentro del script se ejecuten como una única transacción atómica.
B
151
What is the primary goal of query optimization in a distributed database system? A. Increasing data storage costs B. Reducing query execution time by minimizing work C. Maximizing the number of workers used D. Adding more data to the query results
B
152
In a simple query execution involving filtering and counting, how many stages are typically involved when aggregating results? A. One stage B. Two stages C. Three stages D. Four stages
B
153
154
What role does the master node play in distributed query processing? A. Performs all data filtering B. Coordinates workers and stages C. Stores all distributed data D. Executes user-defined functions
B
155
Which factors indicate a data skew in a query plan? (Select all that apply) A. Significant difference between average and maximum time B. Most time spent on CPU tasks C. Use of approximate functions D. High shuffle bytes passed
A
156
If most query time is spent reading from intermediate stages, what optimization should be considered? A. Use more workers B. Filter data earlier in the query C. Increase grouping operations D. Add more materialization steps
B
157
What types of work contribute to query processing overhead? (Select all that apply) A. I/O bytes read B. Shuffle bytes passed C. CPU operations from functions D. Network latency from users
A, B y C
158
Why is selecting only necessary columns important in queries? A. It increases query cost B. It improves performance by reducing data processed C. It requires more storage D. It adds unnecessary complexity
B
159
When should SELECT * EXCEPT be used instead of listing columns? A. When excluding a small number of columns from a large set B. When all columns are needed C. When performance is not a concern D. When data is partitioned
A
160
How does partitioning a table by date affect query performance? A. It increases data scanned for all queries B. It allows auto-pruning of irrelevant partitions C. It requires clustering for any benefit D. It slows down aggregation
B
161
What additional benefit does clustering provide over partitioning alone? A. Reduces processed data within partitions B. Eliminates the need for filters C. Increases table size D. Disables auto-pruning
A
162
In an example with Wikipedia pageviews, how much data was processed in a partitioned table query versus a partitioned and clustered one? A. 180 GB vs 180 GB B. 180 GB vs 16 MB C. 16 MB vs 180 GB D. 16 MB vs 16 MB
B
163
Why is nesting repeated data beneficial in table design? A. It requires GROUP BY for analysis B. It eliminates the need for GROUP BY C. It increases denormalization issues D. It flattens the data structure
B
164
What is an example of nesting in an orders table? A. One row per line item B. One row per order with nested line items array C. Separate tables for orders and items D. Duplicated order IDs across rows
B
165
What determines if a query result is cached? A. Hash of data modification times, tables, and query string B. User permissions only C. Random selection D. Query execution time
A
166
When is query caching skipped? (Select all that apply) A. Referenced tables have changed B. Non-deterministic functions are used C. Permanent result table is requested D. Source tables have streaming buffers
A, B, C y D
167
How is the cache hash used in output? A. Becomes the output table name B. Ignored for performance C. Shared across users D. Deleted after query
A
168
In aggregation optimization, when should aggregation occur? A. As early as possible always B. As late as possible, unless reducing table size for joins C. Only before filtering D. Never in subqueries
B
169
What condition allows late aggregation in joins? A. Tables aggregated to different levels B. Tables aggregated to the same level C. No join keys present D. High cardinality keys
B
170
How does shuffle aggregation work in distributed systems? A. Groups data across all nodes without redistribution B. Redistributes like values to the same node C. Ignores cardinality D. Always uses a single worker
B
171
In high cardinality aggregation without shuffle, what limitation exists? A. Scalable to any size B. Cannot discard non-top values early C. Requires repartitioning D. Uses broadcast join
B
172
What is repartitioning in query execution? A. Initial data read B. Multiple sub-stages for shuffling and processing C. Final output write D. Filtering only
B
173
In JOIN optimization, what is the recommended order of tables? A. Smallest first, then largest B. Largest first, then smallest by size C. Alphabetical order D. Random order
B
174
When does the query optimizer automatically reorder joins based on size? A. Always B. Only under specific table conditions C. Never D. For small tables only
B
175
Why filter before JOINs? A. To make tables larger B. To execute WHERE clauses early, reducing join size C. To avoid pushdown D. To increase slots used
B
176
What is a broadcast JOIN? A. Shuffles both tables independently B. Broadcasts small table to workers with large table C. Used for large tables only D. Avoids shuffling
B
177
What is a shuffle JOIN? A. Broadcasts data B. Shuffles both sides independently for large JOINs C. Uses a single worker D. Ignores keys
B
178
How can clustered tables optimize JOINs? A. By filtering left table using right table values before joining B. By increasing data scanned C. Without requirements D. Only for partitioned tables
A
179
What are requirements for clustered table JOIN optimization? (Select all that apply) A. Subquery result qualifies for broadcast B. Left table is clustered C. Right table is partitioned D. No filters applied
A y B
180
What causes JOIN explosions? A. Unique keys on both sides B. Non-unique keys leading to cartesian products C. Filtering after JOIN D. Small result sets
B
181
How to diagnose JOIN explosions? A. Check output vs input rows in query plan B. Ignore row counts C. Use GROUP BY after D. Add more keys
A
182
What workaround for JOIN explosions? A. Pre-aggregate with GROUP BY B. Increase keys C. Remove filters D. Use broadcast always
A
183
What happens in a skewed JOIN? A. Even distribution to workers B. One worker overloaded due to data skew C. No shuffling D. Broadcast to all
B
184
Workarounds for skewed JOINs include: (Select all that apply) A. Pre-filter unbalanced keys B. Split into multiple queries C. Increase skew D. Use more slots
A y B
185
In WHERE clauses, why does expression order matter? A. Optimizer always reorders B. Most selective first for better filtering C. Least selective first D. No impact
B
186
Which expression is more selective: equality or LIKE with wildcard? A. LIKE with wildcard B. Equality check C. Both equal D. Depends on data size
B
187
Why use LIMIT with ORDER BY? A. To avoid resources exceeded on large sorts B. To increase sorting time C. To remove sorting D. For small datasets only
A
188
In large ORDER BY without LIMIT, what issue occurs? A. Master node sorts all values B. Drops values early C. Uses multiple nodes for sort D. Ignores order
A
189
With ORDER BY and LIMIT, what optimization happens? A. Increases master load B. Drops values over limit at each node C. Requires full sort D. Broadcasts all data
B
190
For string matching, which is faster: LIKE or REGEXP_CONTAINS? A. REGEXP_CONTAINS B. LIKE when regex not needed C. Both same D. Depends on string length
B
191
When to use approximate functions like APPROX_COUNT_DISTINCT? A. For exact results only B. For faster performance with ~1% error C. When accuracy is critical D. In small datasets
B
192
Why prefer SQL UDFs over JavaScript UDFs? A. JavaScript is faster B. SQL avoids V8 subprocess overhead C. JavaScript supports more logic D. No difference
B
193
What are persistent UDFs? A. Temporary per query B. Stored in dataset for reuse across queries C. JavaScript only D. Non-shareable
B
194
Benefits of persistent UDFs include: (Select all that apply) A. Centralized business logic B. Invokable in views C. Org-wide libraries D. Automatic deletion
A, B y C
195
What does scripting allow in queries? A. Single statement only B. Multiple statements, variables, conditions, loops C. No control flow D. Dependent commits
B
196
Caveat of scripting statements? A. Committed together B. Committed independently C. No execution D. Always atomic
B
197
¿Cuál es el principal objetivo de la optimización de consultas en una base de datos distribuida? A.Aumentar la capacidad de almacenamiento distribuido. B.Reducir la latencia de la red. C.Minimizar la cantidad de trabajo realizado por el sistema. D.Mejorar la seguridad de los datos durante la transferencia.
C
198
¿Qué métrica del plan de consulta sugiere una posible asimetría de datos (data skew)? A.Un tiempo de CPU muy elevado en todas las etapas. B.Una gran cantidad de bytes leídos desde el almacenamiento. C.El número de filas de salida es muy inferior al de entrada. D.Una diferencia significativa entre el tiempo promedio y el tiempo máximo de ejecución en una etapa.
D
199
¿Cuál de las siguientes es una buena práctica para optimizar el uso de la sentencia SELECT? A.Evitar el uso de `SELECT * EXCEPT` porque es menos legible. B.Seleccionar únicamente las columnas necesarias para la consulta. C.Utilizar siempre `SELECT *` para obtener todos los datos y filtrarlos después en la aplicación. D.Usar `SELECT *` en subconsultas para simplificar el código.
B
200
¿Cómo benefician el particionamiento y el clustering al rendimiento de las consultas? A.Aumentan la compresión de los datos en el almacenamiento. B.Garantizan que los resultados de la consulta se devuelvan siempre en el mismo orden. C.Reducen el coste de la CPU al utilizar funciones de agregación. D.Permiten al sistema omitir la lectura de datos irrelevantes (pruning).
D
201
¿En qué escenario es preferible realizar una agregación (GROUP BY) de forma temprana en una consulta? A.Solo cuando se utilizan funciones de agregación aproximadas. B.Cuando la agregación reduce drásticamente el tamaño de una tabla antes de un JOIN. C.Nunca, la agregación debe ser el último paso. D.Siempre, porque la agregación reduce el número de filas.
B
202
¿Qué es un 'shuffle' en el contexto del procesamiento de consultas distribuidas? A.La redistribución de datos entre los nodos de trabajo (workers) para agrupar claves comunes. B.La reordenación aleatoria de las filas para mejorar la privacidad. C.Una copia de seguridad de los datos intermedios en el almacenamiento distribuido. D.La encriptación de los datos antes de enviarlos a través de la red.
A
203
En una operación JOIN, ¿cuál es la práctica recomendada respecto al orden de las tablas? A.Colocar primero la tabla más pequeña para que actúe como filtro. B.Colocar la tabla más grande primero, seguida por la más pequeña, y luego las demás en orden decreciente de tamaño. C.El orden es irrelevante porque el optimizador siempre lo corregirá. D.El orden debe ser siempre alfabético por el nombre de la tabla para mejorar la legibilidad.
B
204
¿Qué caracteriza a un 'Broadcast JOIN' (o Small JOIN)? A.Ambas tablas se dividen y se redistribuyen (shuffle) a través de los nodos. B.Se utiliza exclusivamente cuando se unen tablas con una sola columna. C.La operación de JOIN se realiza íntegramente en el nodo maestro. D.La tabla más pequeña se envía completa a cada nodo que procesa una parte de la tabla grande.
D
205
¿Qué es una 'explosión de JOIN' (JOIN explosion)? A.Cuando un JOIN de tipo broadcast falla porque la tabla pequeña es demasiado grande. B.La generación de un número de filas de salida mucho mayor que las de entrada, debido a claves de unión no únicas en ambas tablas. C.Un error que ocurre cuando se intenta unir más de 10 tablas en una sola consulta. D.Un aumento repentino en el consumo de CPU durante una operación de JOIN.
B
206
Al utilizar una cláusula WHERE, ¿por qué es importante el orden de las expresiones de filtrado? A.Para mejorar la legibilidad del código, las expresiones más complejas deben ir al final. B.Las expresiones más selectivas (que filtran más datos) deben ir primero. C.Las expresiones que utilizan funciones deben ir siempre al principio. D.No es importante, el optimizador siempre reordena las expresiones.
B
207
¿Cuándo es especialmente importante usar una cláusula LIMIT junto con ORDER BY? A.Cuando se utiliza un orden descendente (DESC). B.Siempre, ya que mejora la velocidad de cualquier ordenación. C.Cuando se ordena un conjunto de resultados muy grande que podría sobrecargar un único nodo. D.Solo cuando se ordena por una columna de tipo texto (string).
C
208
En cuanto a la comparación de cadenas de texto, ¿qué afirmación es correcta? A.`REGEXP_CONTAINS` es siempre más rápido que `LIKE`. B.`LIKE` es preferible cuando no se necesita la potencia completa de las expresiones regulares. C.Se debe usar `REGEXP_CONTAINS` para todas las comparaciones para mantener la consistencia en el código. D.Ambas funciones, `LIKE` y `REGEXP_CONTAINS`, tienen el mismo rendimiento.
B
209
¿Cuál es la principal ventaja de usar funciones de agregación aproximadas (por ejemplo, `APPROX_COUNT_DISTINCT`)? A.Proporcionan un resultado 100% exacto con menos código. B.Reducen el almacenamiento necesario para los resultados de la consulta. C.Mejoran significativamente el rendimiento de la consulta a cambio de una pequeña pérdida de precisión. D.Son las únicas funciones de agregación que se pueden usar en tablas particionadas.
C
210
Entre una UDF (User-Defined Function) de SQL y una de JavaScript, ¿cuál suele ofrecer mejor rendimiento y por qué? A.JavaScript, porque puede manejar lógicas más complejas que SQL. B.SQL, porque se ejecuta de forma nativa dentro del motor de la base de datos sin sobrecargas. C.Ambas tienen el mismo rendimiento, la elección es solo por preferencia de lenguaje. D.JavaScript, porque es un lenguaje más moderno y optimizado.
B
211
¿Cuál es el beneficio de crear UDFs persistentes en un conjunto de datos (dataset) compartido? A.Las UDFs persistentes se ejecutan más rápido que las temporales. B.Ocupan menos espacio de almacenamiento en el proyecto. C.Es la única manera de utilizar UDFs en vistas lógicas (views). D.Permite crear una biblioteca centralizada de lógica de negocio que puede ser reutilizada por múltiples usuarios y consultas.
D
212
¿Qué representan las ranuras (slots) en el contexto de la ejecución de consultas en BigQuery? A. Unidades monetarias fijas utilizadas para la facturación mensual. B. Unidades de capacidad computacional (CPU, memoria y red) requeridas para ejecutar cargas de trabajo SQL. C. La cantidad de datos que se pueden almacenar en una región específica. D. El tiempo máximo que puede durar una consulta en estado PENDING.
B
213
Según las pautas generales de asignación de capacidad, ¿cuántas ranuras se recomienda planificar para 50 consultas de complejidad media ejecutándose simultáneamente? A. 500 ranuras. B. 1.000 ranuras. C. 2.000 ranuras. D. 5.00 ranuras.
C
214
Cuando se ejecuta un trabajo con prioridad BATCH, ¿cuánto tiempo mínimo se difiere su transición al estado RUNNING, independientemente de la disponibilidad de cuota? A. Nunca se difiere; entra inmediatamente en RUNNING. B. Se difiere si el servidor individual está cerca de su capacidad, pero sin un mínimo fijo. C. Se difiere exponencialmente. D. Se difiere siempre al menos 1 minuto.
D
215
En el ciclo de vida de la programación de consultas, ¿cuál es el paso inmediato posterior a que la consulta solicite trabajadores (workers)? A. La consulta entra en la zona. B. La consulta solicita recursos de ranuras al Query Master. C. Cada trabajador solicita una tarea. D. Se actualizan las estadísticas de la consulta.
C
216
¿Qué factores se consideran en la estimación de las ranuras necesarias para trabajos de carga de datos? A. La complejidad del conjunto de datos, incluyendo el número de campos anidados o repetidos. B. El Esquema de la tabla, específicamente si está particionada o agrupada (clustered). C. La frecuencia de la carga de datos (ej., horaria, diaria). D. El número total de proyectos asignados a la organización.
A y C
217
Si se mantiene una asignación de ranuras fija, ¿qué señales indican consistentemente que se necesita más capacidad para las consultas de los usuarios? A. El rendimiento (Throughput) disminuye constantemente. B. El tiempo promedio de espera aumenta constantemente. C. La utilización de ranuras es consistentemente alta, por ejemplo, del 50% o menos. D. La utilización de ranuras es consistentemente del 90% o superior.
A, B y D
218
En el modelo de precios de BigQuery, ¿cuál es el porcentaje aproximado de reducción de precio para los datos que cumplen con la definición de "almacenamiento a largo plazo"? A. 10% B. 25% C. 50% D. 75%
C
219
¿Qué actividades NO reinician el temporizador de almacenamiento de BigQuery, permitiendo que la tabla o partición potencialmente transicione a precios de almacenamiento a largo plazo? A. Consultar una tabla. B. Crear una vista que consulta una tabla. C. Escribir resultados de consultas en una partición o tabla. D. Exportar datos de una tabla.
A, B y D
220
Respecto al modelo de precios On-demand (por demanda), ¿cuáles de las siguientes afirmaciones son correctas? A. El costo es de $5 por TB de datos procesados. B. Ofrece una cuota límite de 2.000 ranuras, compartidas entre todos los usuarios On-demand. C. Se requiere un mínimo de 100 ranuras dedicadas 24/7. D. El primer TB de datos procesados es gratuito cada mes.
A, B y D
221
El modelo de precios Flat-rate (tarifa plana) se caracteriza por: A. Ser ideal para trabajos exploratorios donde el uso es esporádico. B. Ofrecer slots dedicados 24/7 a partir de un mínimo de 100 slots. C. Facturar según los bytes procesados en cada consulta. D. No permitir la combinación con el modelo On-demand.
B
222
¿Qué modelo de compromiso de ranuras es más adecuado para eventos cíclicos de alta demanda, como el "lunes por la mañana" de ETL o el análisis urgente de inventario único? A. Compromiso anual de tarifa plana (Flat Rate). B. Pago por consulta (Pay per query). C. Ranuras Flex (Flex slots). D. Compromiso mensual de tarifa plana (Flat Rate).
C
223
Cuando un usuario de un Proyecto A ejecuta una consulta contra datos almacenados en un Proyecto B (asumiendo que se comparte el acceso a los datos), ¿qué proyecto incurre en el costo de la ejecución de la consulta? A. El Proyecto B, ya que es donde residen los datos. B. El costo se divide uniformemente entre el Proyecto A y el Proyecto B. C. El Proyecto A, ya que el costo de una consulta se asigna siempre al proyecto activo desde donde se ejecuta. D. El proyecto del administrador de la organización.
C
224
En relación con los cargos de consulta bajo el modelo On-demand, ¿qué afirmaciones son verdaderas? A. Las consultas canceladas nunca incurren en cargos. B. Se cobra por la cantidad total de datos procesados en las columnas seleccionadas y el tipo de datos. C. Los resultados provenientes de la caché son cobrados. D. El cobro se redondea al MB más cercano, con un mínimo de 10 MB.
B y D
225
Una característica clave de las Ranuras Flex (Flex slots) es: A. Deben contratarse con un compromiso mínimo de un año. B. Permiten escalar la capacidad para eventos importantes, y solo se paga por lo que se consume. C. No se pueden combinar con compromisos a largo plazo. D. Requieren una notificación previa de 24 horas para su cancelación.
B
226
¿Cuál es la secuencia correcta de pasos al implementar la gestión de capacidad de Tarifa Plana (Flat Rate) en BigQuery? A. Asignación -> Reserva -> Compromiso B. Reserva -> Compromiso -> Asignación C. Compromiso -> Reserva -> Asignación D. Reserva -> Asignación -> Compromiso
C
227
¿Cuál es el incremento mínimo obligatorio para la compra de capacidad de ranuras (slot commitments)? A. 1 ranura. B. 10 ranuras. C. 50 ranuras. D. 100 ranuras.
D
228
¿Para qué tipos de cargas de trabajo se pueden establecer asignaciones (assignments) a las reservas de ranuras? A. QUERY (Consultas). B. STORAGE (Almacenamiento). C. PIPELINE (Procesos ETL/ELT). D. ML_EXTERNAL (Machine Learning Externo).
A, C y D
229
Si la demanda de recursos dentro de una reserva excede la capacidad disponible, ¿qué sucede con las ranuras adicionales que se ponen en cola? A. Se cobran automáticamente a la tarifa On-demand. B. Se rechazan para evitar el exceso de capacidad. C. BigQuery las pone en cola, y el cliente no es cargado por ellas ni por tarifas On-demand adicionales. D. La consulta pasa al estado DONE debido a un tiempo de espera.
C
230
El concepto de "Fair sharing" (distribución justa) en las reservas de ranuras asegura que: A. Cada consulta recibe exactamente la misma cantidad de ranuras que las demás. B. Los slots se distribuyen equitativamente entre todos los proyectos y todas las consultas activas dentro de esos proyectos. C. Las consultas más cortas siempre tienen prioridad sobre las más largas. D. La distribución se basa en la antigüedad del proyecto.
B
231
¿Qué ocurre inmediatamente cuando una reserva que estaba compartiendo capacidad ociosa (idle slots) necesita recuperar esa capacidad para su propia carga de trabajo? A. Las consultas que utilizaban ranuras ociosas fallan. B. Las consultas cuya capacidad fue usurpada deben renegociar su posición en la cola. C. La reserva recupera su capacidad inmediatamente, y las consultas cuyas ranuras fueron previamente utilizadas simplemente vuelven a sus recursos originales sin fallar. D. Se realiza una notificación al administrador del proyecto que estaba utilizando las ranuras ociosas.
C
232
Respecto a la Tarifa Plana (Flat-rate pricing), ¿a qué cargos aplica? A. Aplica tanto a los costos de consulta (incluyendo DML y DDL) como a los costos de almacenamiento. B. Solo aplica a los costos de almacenamiento. C. Aplica a los costos de consulta (incluyendo DML y DDL), pero no a los costos de almacenamiento. D. Solo aplica a las consultas SELECT.
C
233
¿Cuál es el propósito principal de crear una reserva de ranuras con un "zero slot" y prioridad de ejecución en segundo plano? A. Asegurar que estas consultas siempre se ejecuten en primer lugar. B. Garantizar que estas consultas solo se ejecuten cuando haya ranuras ociosas disponibles en el sistema. C. Crear una "caja de penalización" para consultas demasiado costosas. D. Deshabilitar el uso de ranuras ociosas.
B
234
Respecto a las políticas de compromiso de capacidad (Commitments) en la tarifa plana, ¿qué es cierto sobre la cancelación o degradación? A. Los compromisos mensuales no se pueden cancelar ni degradar durante 60 días naturales. B. Los compromisos anuales no se pueden cancelar ni degradar durante un año natural. C. Los compromisos mensuales no se pueden cancelar ni degradar durante 30 días naturales. D. Para comprar ranuras adicionales, siempre se debe modificar el compromiso existente.
B y C
235
¿Cuál es la práctica más costosa y, por tanto, una de las primeras cosas a evitar para controlar los costos de consulta? A. Utilizar el comando LIMIT en todas las consultas. B. Evitar la partición de tablas. C. Utilizar SELECT * para consultar datos. D. Usar inserciones por streaming.
C
236
¿Qué herramienta o método se recomienda para limitar los costos de una consulta antes de su ejecución? A. El uso de LIMIT en la cláusula de selección. B. La opción de previsualización (preview) de tablas. C. Configurar el ajuste de bytes máximos facturados. D. La materialización de resultados en etapas.
C
237
¿Cuál es el impacto del uso de la cláusula LIMIT en una consulta de BigQuery como método de control de costos? A. Reduce significativamente la cantidad de datos leídos y, por lo tanto, el costo. B. Solo reduce el costo si la tabla está agrupada (clustered), pero no si solo está particionada. C. No afecta la cantidad de datos leídos ni el costo, a menos que se utilice la agrupación (clustering). D. Genera un error si se combina con la configuración de bytes máximos facturados.
C
238
¿Qué estructuras de tabla ayudan a reducir la cantidad de datos leídos y potencialmente los costos de consulta? A. Tablas particionadas. B. Tablas temporales. C. Tablas agrupadas (clustered). D. Tablas sin fecha de expiración por defecto.
A y C
239
Respecto a la ingesta de datos en BigQuery, ¿cuál de los siguientes métodos conlleva un cargo? A. La carga de datos masiva (bulk loading). B. La copia de una tabla a otra. C. El uso de inserciones por streaming. D. La exportación de datos.
C
240
What is a BigQuery slot? A) A unit of storage capacity for datasets B) A unit of computational capacity (CPU, memory, and networking) C) A quota for concurrent queries D) A pricing model for compute usage
B
241
Which of the following is true about BigQuery compute clusters? A) They are global resources with no regional dependence B) Each query must manually allocate compute slots C) They are regional resources with zonal redundancy D) They require manual capacity provisioning
C
242
What happens when more BigQuery slots are available? A) Query execution becomes slower B) More concurrent queries can run simultaneously C) Query queuing increases D) CPU utilization decreases
B
243
What is the recommended slot allocation for 50 medium-complexity queries? A) 500 slots B) 1,000 slots C) 2,000 slots D) 5,000 slots
C
244
What state does a BigQuery job enter before execution? A) STARTED B) RUNNING C) PENDING D) COMPLETED
C
245
When does a job in BATCH priority defer execution? A) Never B) Only during server downtime C) Always at least 1 minute D) When slot utilization is under 50%
C
246
Which priority type never defers the RUNNING state? A) INTERACTIVE B) BATCH C) BACKGROUND D) LOW-PRIORITY
A
247
Which of the following factors influences slot estimation for load jobs? (Select all that apply) A) Dataset size B) Table partitioning or clustering C) SQL dialect used D) Load frequency
A, B y D
248
What is an indicator that more slots may be required? A) Decreasing concurrency B) Increasing average query wait time C) Decreasing slot utilization D) Reduced user growth
B
249
If slot utilization remains consistently above 90%, what should be considered? A) Reducing queries B) Buying more slots C) Reducing memory D) Turning off idle slot sharing
B
250
BigQuery pricing separates which two main components? A) Storage and networking B) Storage and compute C) Compute and APIs D) Compute and metadata
B
251
What durability level does BigQuery storage offer? A) 99.99% B) 99.9999% C) 99.999999999% D) 100%
C
252
What happens after 90 consecutive days without editing a table? A) Table is archived B) Table is deleted C) Storage cost drops by about 50% D) Performance decreases
C
253
Which of the following actions resets the 90-day timer? A) Exporting data from a table B) Creating a view querying the table C) Copying data into the table D) Querying the table
C y D
254
What is the on-demand query price? A) $1 per GB processed B) $5 per TB processed C) $10 per 500 slots D) $0.02 per query
B
255
In flat-rate pricing, what is the base price per 500 slots per month? A) $5,000 B) $10,000 C) $15,000 D) $20,000
B
256
Which pricing model is best for predictable workloads? A) On-demand B) Flex slots C) Flat rate D) Streaming
C
257
Which model is best for ad-hoc or exploratory queries? A) Flat rate B) On-demand C) Flex slots D) Annual commitment
B
258
What are Flex Slots mainly used for? A) Long-term analytics B) Burst or temporary workloads C) Storage optimization D) Free-tier testing
B
259
lex slots can be canceled after how long? A) 1 hour B) 10 minutes C) 60 seconds D) 24 hours
C
260
Which tool estimates query cost before execution? A) Query Plan Visualizer B) BigQuery Validator C) Data Studio Dashboard D) Query Optimizer
B
261
Which command estimates data processed by a query without running it? A) bq --estimate B) bq dry_run C) bq preview D) bq --cost-only
B
262
In BigQuery, who pays for query execution? A) The dataset owner B) The user executing the query C) The project where the query runs D) The shared billing account
C
263
Which of the following actions incur no query cost? A) Cached results B) Failed queries C) Data export jobs D) Streaming inserts
A
264
What feature helps reduce the amount of data processed by a query? A) LIMIT clause B) Clustering and partitioning C) SELECT * D) Nested fields
B
265
What does a BigQuery slot commitment enable? A) Dynamic scaling B) Flat-rate billing C) On-demand compute D) Free storage
B
266
At what level are slot commitments purchased? A) Project B) Region C) Organization D) Zone
B y C
267
How many slots must be purchased per increment? A) 10 B) 50 C) 100 D) 500
C
268
Which assignment types are supported in reservations? A) QUERY, PIPELINE, ML_EXTERNAL B) ETL, API, STREAMING C) DATAFLOW, STORAGE, ML D) EXPORT, LOAD, ANALYSIS
A
269
What happens when resource demand exceeds available slots? A) Queries fail B) Extra slots are charged at on-demand rate C) BigQuery queues jobs automatically D) Users must buy more slots
C
270
What mechanism ensures resources are fairly distributed? A) Priority queues B) Manual allocation C) Fair sharing D) Round-robin scheduling
C
271
What is idle slot sharing? A) Sharing slots with external users B) Allowing unused slots to be borrowed by other reservations C) Releasing slots to Google Cloud Storage D) Cancelling unused commitments
B
272
Which of the following statements about flat-rate pricing is true? A) It includes storage costs B) It applies only to DDL statements C) It offers predictable query costs D) It is billed per GB processed
C
273
How long must annual commitments be held before cancellation? A) 30 days B) 6 months C) 12 months D) 18 months
C
274
What is a “penalty box” reservation? A) A backup slot pool B) A small isolated pool used to restrict costly queries C) A high-priority resource queue D) A compute quota alert system
B
275
What is the most expensive way to query data in BigQuery? A) SELECT * B) SELECT limited columns C) Using filters D) Query preview
A
276
How can you preview table data for free? A) Query in dry-run mode B) Use table preview option C) Export to CSV D) Use SELECT LIMIT 10
B
277
What happens if a query exceeds the maximum bytes billed limit? A) It is canceled with an error B) It runs and bills partially C) It pauses until approval D) It retries automatically
A
278
Does using LIMIT reduce cost? A) Always B) Only with clustering C) Never D) Only with partitioning
B
279
¿Qué es un BigQuery slot? A) Una unidad de almacenamiento de datos B) Un recurso de cómputo que combina CPU, RAM y red para ejecutar consultas C) Un proceso que gestiona los permisos de usuarios D) Un componente del sistema de replicación de datos
B
280
¿Qué ocurre cuando una consulta tiene más slots disponibles en BigQuery? A) Se ejecuta más lentamente B) Aumenta la latencia de red C) Se ejecuta más rápido y permite más consultas simultáneas D) Disminuye la precisión de los resultados
C
281
¿Cuál es la recomendación general para estimar la cantidad de slots necesarios en BigQuery? A) 1000 slots por cada 100 consultas simultáneas B) 2000 slots por cada 50 consultas de complejidad media C) 500 slots por cada 25 consultas sencillas D) 100 slots por consulta
B
282
¿Qué estado inicial tiene un trabajo (job) en BigQuery antes de comenzar su ejecución? A) RUNNING B) COMPLETED C) PENDING D) WAITING
C
283
¿Cuál es la diferencia principal entre las prioridades BATCH e INTERACTIVE en BigQuery? A) INTERACTIVE retrasa la ejecución al menos 1 minuto, BATCH se ejecuta inmediatamente B) BATCH retrasa la ejecución al menos 1 minuto, INTERACTIVE no se retrasa C) Ambas tienen el mismo comportamiento D) INTERACTIVE se usa solo para cargas de datos
B
284
¿Qué componente coordina la asignación de tareas a los slots en BigQuery? A) Job router B) Query master C) Data shuffler D) Storage scheduler
B
285
¿Qué factores influyen en la estimación de slots para cargas (load jobs) en BigQuery? (Selecciona tres) A) Tamaño y complejidad del conjunto de datos B) Cantidad de usuarios conectados simultáneamente C) Esquema de la tabla (particionado o clusterizado) D) Frecuencia y SLA de carga
A, C y D
286
¿Qué indicador sugiere que una organización necesita más slots en BigQuery? A) Disminución constante del throughput y aumento de la concurrencia B) Reducción del tamaño de los datos almacenados C) Menor tiempo promedio de espera D) Baja utilización de slots (<10%)
A
287
¿Cómo se cobra el almacenamiento activo en BigQuery? A) Por consulta ejecutada B) Por cantidad de CPU utilizada C) Prorrateado por MB y por segundo de almacenamiento D) De forma fija mensual por tabla
C
288
¿Qué sucede con las tablas no modificadas durante 90 días consecutivos en BigQuery? A) Se eliminan automáticamente B) Su rendimiento disminuye C) Su precio de almacenamiento se reduce aproximadamente 50% D) Se bloquean hasta nueva actualización
C
289
¿Cuál de las siguientes acciones reinicia el contador de almacenamiento a largo plazo en BigQuery? A) Consultar la tabla B) Crear una vista que la consulte C) Escribir resultados de una consulta en la tabla D) Exportar la tabla a otra ubicación
C
290
¿Cuál es el precio del modelo on-demand en BigQuery? A) $5 por TB de datos procesados B) $10 por TB de datos almacenados C) $10k por 500 slots al mes D) $0.02 por GB procesado
A
291
¿Qué modelo de precios de BigQuery se recomienda para cargas de trabajo grandes y constantes? A) On-demand B) Flex slots C) Flat-rate D) Storage-based
C
292
¿Qué modelo de precios de BigQuery ofrece la posibilidad de pagar por minuto, hora o día? A) On-demand B) Flex slots C) Flat-rate anual D) Committed use
B
293
¿Cómo se calcula el costo de una consulta en BigQuery On-demand? A) Por número de filas devueltas B) Por bytes procesados en las columnas seleccionadas C) Por tiempo de ejecución D) Por número de tablas consultadas
B
294
¿Qué comando permite estimar el costo de una consulta sin ejecutarla en BigQuery? A) bq dry_run B) bq cost_check C) bq simulate D) bq analyze
A
295
¿Cómo se determina qué proyecto paga por una consulta en BigQuery compartido? A) El proyecto propietario del dataset B) El proyecto desde el que se ejecuta la consulta C) El proyecto con más slots disponibles D) El proyecto con menor costo de almacenamiento
B
296
¿Qué afirmación describe correctamente la política de facturación por consultas en BigQuery? A) Las consultas se cobran aunque fallen B) Las consultas desde la caché también generan cargos C) Las consultas canceladas pueden incurrir en cargos D) El límite de bytes procesados evita cargos fijos
C
297
¿Qué tipo de compromiso es necesario para acceder a precios planos en BigQuery? A) Compromiso por almacenamiento B) Compromiso por tiempo de procesamiento C) Compromiso por slots D) Compromiso por consultas mensuales
C
298
¿Qué característica de las reservas de slots permite evitar la inanición de cargas de trabajo? A) Idle slot sharing B) Fair sharing C) Background jobs D) Penalty boxes
B
299
¿Qué sucede con la capacidad no utilizada en una reserva de BigQuery? A) Se pierde automáticamente B) Se acumula para el siguiente ciclo C) Se comparte en tiempo real con otras reservas D) Se bloquea hasta ser liberada manualmente
C
300
¿Cuántos tipos de planes de compromiso existen para la capacidad en BigQuery? A) Dos: mensual y anual B) Tres: anual, mensual y flex C) Cuatro: diario, mensual, trimestral y anual D) Uno solo: anual
B
301
¿Qué ocurre si se supera la capacidad disponible en una reserva? A) BigQuery cobra tarifas adicionales B) BigQuery cancela las consultas en espera C) Las tareas se encolan sin costo adicional D) Se activa el modo on-demand automáticamente
C
302
¿Qué tipo de asignaciones se pueden realizar en las reservas de BigQuery? (Selecciona tres) A) QUERY B) PIPELINE C) ML_EXTERNAL D) STREAMING
A, B y C Cuando compras "slots" de BigQuery (capacidad de cómputo) a través de reservas, debes asignar tus proyectos a esa reserva. Al hacerlo, especificas qué tipos de trabajos (assignment types) de ese proyecto deben usar los slots que has comprado. Por qué A, B y C son CORRECTAS A) QUERY (Consulta): Esta es la asignación más común y fundamental. Se aplica a todas las consultas SQL estándar, incluyendo SELECT, DML (como INSERT, UPDATE, DELETE) y DDL (como CREATE TABLE). B) PIPELINE (Canalización): Esta asignación se utiliza para trabajos de ingesta y exportación de datos en lote. Esto incluye trabajos de LOAD (carga), EXTRACT (extracción) y COPY (copia). Servicios como Dataflow o el Servicio de Transferencia de Datos de BigQuery a menudo utilizan este tipo de asignación para sus trabajos. C) ML_EXTERNAL (Machine Learning Externo): Esta asignación se usa específicamente para trabajos de BigQuery ML que crean modelos llamando a servicios externos (por ejemplo, un modelo de AutoML Tables o un modelo de TensorFlow alojado en Vertex AI). Por qué D es INCORRECTA D) STREAMING (Transmisión): Esta es la opción incorrecta. La ingesta de datos por streaming (usando la Storage Write API o la API de streaming heredada) no consume slots de cómputo de una reserva. El streaming tiene su propio modelo de precios, que se cobra por la cantidad de datos (GiB) ingeridos, y no compite por los recursos que usan tus trabajos de QUERY o PIPELINE.
303
¿Qué sucede con las consultas de baja prioridad si se usa idle slot sharing? A) Fallan si pierden recursos B) Esperan hasta que haya capacidad disponible C) Se reanudan automáticamente cuando recuperan recursos D) Se ejecutan con prioridad máxima
B y C
304
¿Qué compromiso mínimo tiene una suscripción mensual de flat-rate en BigQuery? A) 7 días B) 15 días C) 30 días D) 1 año
C
305
¿Cuál de las siguientes prácticas NO ayuda a controlar costos en BigQuery? A) Evitar SELECT * B) Usar vista previa de tabla C) Aplicar LIMIT como método de ahorro D) Estimar costos antes de ejecutar consultas
C
306
¿Por qué usar tablas particionadas o clusterizadas puede reducir costos en BigQuery? A) Permiten leer menos datos para ciertas consultas B) Aumentan el rendimiento de las escrituras C) Reducen el almacenamiento total usado D) Evitan cargos por DML
A
307
¿Cuál es la mejor práctica respecto a los resultados de consultas grandes en BigQuery? A) Guardarlos indefinidamente para futuras consultas B) Usar expiración por defecto para eliminar datos no necesarios C) Exportarlos siempre a Cloud Storage D) Evitar su materialización en tablas temporales
B
308
¿Qué componente NO forma parte de un slot en BigQuery? A) CPU B) RAM C) Disco duro D) Red
C
309
¿Cómo determina BigQuery la cantidad de slots que necesita para ejecutar una consulta? A) El usuario lo especifica manualmente B) Se asigna una cantidad fija para todas las consultas C) Lo calcula automáticamente en base a tamaño y complejidad D) Depende únicamente del tamaño de los datos
C
310
Para gestionar simultaneidad de 50 consultas de complejidad media, ¿cuántos slots se recomienda reservar según las mejores prácticas de Google? A) 1000 B) 2000 C) 5000 D) 50
B
311
¿Cuál es el propósito principal de un compromiso de slot en BigQuery? A) Reservar espacio de almacenamiento B) Reservar capacidad computacional dedicada C) Obtener acceso a funciones premium D) Priorizar queries por tipo de proyecto
B
312
¿Cuál de las siguientes NO es una señal común de necesitar más slots en BigQuery? A) La concurrencia aumenta consistentemente B) El throughput disminuye regularmente C) La utilización de slots permanece baja D) El tiempo promedio de espera crece de manera sostenida
C
313
¿Qué modelo de precios permite pagar por cada byte procesado en BigQuery? A) Flat-rate B) On-demand C) Flex slots D) Pago por almacenamiento
B
314
¿Qué acción NO reinicia el temporizador para precios de almacenamiento a largo plazo en BigQuery? A) Consultar la tabla con SQL B) Copiar la tabla a otra tabla de destino C) Exportar datos desde la tabla D) Crear una vista que consulte la tabla
D
315
¿Cuál es el tamaño mínima de datos que se factura al procesar queries en BigQuery (On-demand)? A) 1 MB B) 10 MB C) 100 MB D) 1 GB
B
316
¿Con el modelo Flat-rate, los slots en BigQuery son...? A) Compartidos entre todos los usuarios bajo demanda B) Dedicados para el usuario 24x7 C) Limitados por el tamaño de la tabla D) Reservados solo para streaming
B
317
¿Qué configuración permite limitar el costo máximo de una query en BigQuery? A) LIMIT B) Partitioned tables C) Maximum bytes billed D) Slots commitment
C
318
¿Qué sucede si el número de slots disponibles en una reserva es inferior al requerido por las queries en ejecución? A) Las queries fallan inmediatamente B) BigQuery pone en cola el trabajo excedente sin cargo adicional C) Se factura el trabajo extra como On-demand D) Las queries se procesan parcialmente
B
319
¿Cuál de las siguientes recomendaciones NO es válida para reducir costes en BigQuery? A) Usar vistas materializadas por etapas B) Seleccionar solo las columnas necesarias en tus consultas C) Aplicar cláusula LIMIT para controlar coste en queries D) Utilizar tableros para monitoreo de costes
C
320
¿Cuál de los siguientes compromisos de slots permite cancelación en cualquier momento tras los primeros 60 segundos? A) Mensual B) Anual C) Flex slots D) Reserva compartida
C
321
En BigQuery, ¿cómo se distribuyen los slots comprados entre diferentes proyectos usando reservas? A) Se asignan automáticamente a todos los proyectos B) El administrador crea reservas aisladas y asigna proyectos C) Se reparten equitativamente según tamaño de dataset D) Solo se pueden asignar a un único proyecto
B
322
¿En qué casos es restringida la capacidad de cancelar o modificar compromisos mensuales en BigQuery? A) No se pueden cancelar hasta cumplir 30 días desde la confirmación B) Se pueden cancelar en cualquier momento C) Solo se pueden cancelar si la utilización es inferior al 50% D) Requiere aprobación de Google Cloud
A
323
¿Qué sucede con los slots ociosos en una reserva de BigQuery? A) Permanecen sin usarse hasta que sean reasignados manualmente B) Se comparten automáticamente con otras reservas que los necesiten C) Solo se usan para queries en segundo plano D) Se pierden al finalizar el mes
B
324
¿Cuál es la mejor técnica para ver datos de una tabla sin afectar las cuotas ni generar costes? A) Query estándar SELECT B) Vista materializada C) Table preview D) Exportar datos a otra tabla
C
325
¿Qué método permite estimar previamente el coste de una query en BigQuery? A) Analizando el histórico de billings B) Usando la opción dryrun del CLI C) Sumando el tamaño total de la tabla D) Dividiendo el coste entre el número de slots
B
326
¿Cómo afecta la cláusula LIMIT al coste de una consulta en BigQuery? A) Reduce directamente el coste por menos datos B) No afecta al coste salvo que haya clustering C) Duplicará el coste si se usa con múltiples tablas D) Aplica solo a modelos Flat-rate
B
327
¿Qué factor incrementa los costes de streaming en BigQuery? A) Uso excesivo de SELECT B) Inserciones frecuentes en tiempo real C) Expiración de la tabla D) Materialización en varias etapas
B
328
¿Qué es un slot en BigQuery? A) Una unidad de almacenamiento de datos B) Una unidad de capacidad computacional que incluye CPU, memoria y recursos de red C) Un tipo de consulta SQL D) Un modelo de precios para el almacenamiento
B
329
¿Cómo calcula BigQuery automáticamente el número de slots requeridos para una consulta? A) Basado en el número de usuarios concurrentes B) Basado en el tamaño y la complejidad de la consulta C) Siempre asigna un número fijo de slots D) El usuario debe especificarlo manualmente
B
330
¿Cuál es la recomendación general para planificar slots en BigQuery para 50 consultas de complejidad media simultáneas? A) 1,000 slots B) 2,000 slots C) 500 slots D) 100 slots
B
331
¿En qué estado inician los jobs en BigQuery? A) RUNNING B) DONE C) PENDING D) QUEUED
C
332
¿Cuáles son las prioridades de jobs que pueden diferir la transición a RUNNING en BigQuery? (Selecciona dos) A) INTERACTIVE B) BATCH C) HIGH D) LOW
B
333
¿Qué componente en BigQuery solicita workers para una consulta durante el ciclo de vida de programación? A) Scheduler B) Query Master C) Worker D) Job Server
B
334
¿En el ejemplo de procesamiento de consulta en BigQuery, qué hace la Etapa 1? A) Sumar los resultados B) Filtrar y contar con 4 workers C) Leer datos del almacenamiento D) Almacenar resultados intermedios
B
335
¿Cómo se determina el uso de slots para una consulta en BigQuery? A) Solo mediante la interfaz web B) Usando SQL o la API C) Calculando manualmente el tamaño de los datos D) Consultando el historial de jobs
B
336
¿Cuáles son factores para estimar slots en cargas de datos en BigQuery? (Selecciona tres) A) Tamaño del dataset B) Complejidad del dataset: número de campos, campos anidados/repetidos C) Esquema de la tabla: particionada o clustered D) Número de usuarios
"A
337
¿Qué señales indican que se necesitan más slots para consultas de usuarios en BigQuery? (Selecciona tres) A) Concurrencia consistentemente aumentando B) Throughput consistentemente disminuyendo C) Utilización de slots consistentemente alta, por ejemplo 90% o más D) Número de datasets disminuyendo
"A
338
¿En qué se separa el pricing de BigQuery? A) Almacenamiento y cómputo B) Consultas y streaming C) Cargas y exportaciones D) Usuarios y proyectos
A
339
¿Cuál es el pricing para almacenamiento activo en BigQuery por 1 TB por mes completo? A) $10 B) $20 C) $5 D) $50
B
340
¿Cuáles actividades resetean el timer para almacenamiento de largo plazo en BigQuery? (Selecciona dos) A) Cargar, copiar o streaming de datos en una partición o tabla no particionada B) Escribir resultados de consulta en una partición o tabla no particionada C) Consultar una tabla D) Exportar datos de una tabla
"A y B"
341
¿Cuáles son los modelos de pricing para BigQuery? (Selecciona dos) A) On-demand B) Flat-rate C) Per-user D) Per-dataset
"A y B"
342
¿En el modelo on-demand de BigQuery, cuánto cuesta por TB de datos procesados? A) $10 B) $5 C) $20 D) $1
B
343
¿Cuál es la ventaja del modelo flat-rate en BigQuery? A) Pago por uso variable B) Slots dedicados 24/7 y facturación mensual consistente C) Límite de 2,000 slots compartidos D) Primer TB gratis cada mes
B
344
¿Qué escenarios son ideales para usar flex slots en BigQuery? (Selecciona dos) A) Análisis urgente de inventario una sola vez B) Eventos de calendario mayores como Black Friday C) Inteligencia de negocios estándar D) Jobs programados para construir data marts
"A y B"
345
¿Cómo se estima el costo de una consulta usando la línea de comandos en BigQuery? A) Usando bq query --dry_run B) Usando gcloud bigquery query C) Usando sql estimate D) Usando pricing calculator directamente
A
346
¿En un escenario donde un usuario de Project A consulta datos en Project B, ¿quién paga por la consulta? A) Project B B) Project A C) Se divide entre ambos D) Depende del tipo de datos
B
347
¿Cuáles son características del pricing on-demand en BigQuery? (Selecciona dos) A) Basado únicamente en uso B) Puedes establecer controles de costo personalizados a nivel de usuario y proyecto C) Slots dedicados D) Precio fijo mensual
"A y B"
348
¿Qué notas son importantes respecto a los cargos por consultas en BigQuery? (Selecciona tres) A) Cargado según datos procesados en columnas seleccionadas y tipo de datos B) No hay cargo por errores o resultados de cache C) Redondeado al MB más cercano; mínimo 10 MB D) LIMIT siempre reduce el costo
"A
349
¿Cuáles son beneficios de los flex slots en BigQuery? (Selecciona dos) A) Desplegar en minutos B) Pagar solo por lo consumido C) Requiere compromiso anual D) No se puede combinar con compromisos a largo plazo
"A y B"
350
¿Para qué se usan los flex slots en escenarios como la temporada de impuestos o lanzamientos de videojuegos? A) Para cumplir con períodos cíclicos de alta demanda B) Para jobs estándar de ETL C) Para almacenamiento de datos D) Para exportaciones de datos
A
351
¿Qué es un slot commitment en BigQuery? A) Compra de una porción dedicada de un cluster de BigQuery B) Un límite de consultas concurrentes C) Un tipo de reserva para almacenamiento D) Un modelo de pricing por bytes procesados
A
352
¿Qué sucede la primera vez que compras un slot commitment en BigQuery? A) Se crea una reserva default y se asigna la organización a ella B) Se asigna automáticamente a todos los proyectos C) Se requiere crear manualmente reservas D) Se aplica solo a un proyecto específico
A
353
¿Cómo fluyen los slots en las reservas en BigQuery? A) Se compran a nivel de organización, se crean reservas y se asignan proyectos B) Se asignan directamente a usuarios C) Se comparten solo dentro de un proyecto D) No se pueden compartir
A
354
¿Cuáles son los planes de commitment para capacity commitments en BigQuery? (Selecciona tres) A) Annual B) Monthly C) Flex D) Daily
"A
355
¿Qué tipos de assignments hay en reservas de BigQuery? (Selecciona tres) A) QUERY B) PIPELINE C) ML_EXTERNAL D) STORAGE
"A
356
¿Qué ocurre si la demanda de recursos excede la capacidad disponible en una reserva de BigQuery? A) Las consultas fallan B) BigQuery pone en cola slots adicionales sin cargo extra C) Se cobra on-demand adicional D) Se reduce la prioridad automáticamente
B
357
¿Cómo se distribuyen los slots en una reserva de BigQuery para evitar starvation de workload? A) Distribución justa entre proyectos y consultas activas B) Primero en llegar, primero servido C) Basado en prioridad de usuario D) Aleatoriamente
A
358
¿Qué es el idle slot sharing en reservas de BigQuery? A) Capacidad idle en una reserva disponible para otras reservas B) Compartir slots solo dentro de la misma reserva C) No compartir slots idle D) Compartir solo durante horas pico
A
359
¿A qué se aplica el flat-rate pricing en BigQuery? A) Costos de consultas, incluyendo DML y DDL B) Costos de almacenamiento C) Streaming inserts D) Exportaciones de datos
A
360
¿Cuáles son aplicaciones inusuales de reservas en BigQuery? (Selecciona dos) A) Reservas con cero slots para jobs de background priority B) Penalty box reservations con pocos slots para queries costosas C) Reservas para almacenamiento D) Reservas para usuarios individuales
"A y B"
361
¿Cuáles son consideraciones al inscribirse en flat-rate pricing en BigQuery? (Selecciona dos) A) Flex slots sujetos a disponibilidad de capacidad B) Commitments mensuales no cancelables por 30 días C) Se aplica a todo el storage automáticamente D) No se puede usar con on-demand
"A y B"
362
¿Cómo controlar costos en BigQuery evitando SELECT *? A) Consultar solo las columnas necesarias B) Usar siempre LIMIT C) Preview de datos gratis D) Usar tablas particionadas
A
363
¿Por qué LIMIT no afecta siempre el costo en BigQuery? A) No afecta la cantidad de datos leídos, a menos que se use clustering B) Siempre reduce el costo C) Solo afecta en tablas particionadas D) Afecta solo en on-demand
A
364
¿Cómo limitar costos de queries en BigQuery estableciendo máximo bytes billed? A) Usando la configuración maximum bytes billed B) Usando quotas de proyecto C) Usando reservas D) Usando pricing calculator
A
365
¿Qué método usar para ver costos en BigQuery? A) Crear un dashboard y consultar logs de auditoría B) Solo usar la API C) Usar comandos CLI D) Consultar tablas directamente
A
366
¿Cómo mejorar performance y reducir costos en BigQuery con tablas? A) Usar tablas particionadas y/o clustered B) Usar SELECT * C) Usar streaming siempre D) Evitar materializar resultados
A
367
¿Qué considerar con grandes sets de resultados en BigQuery? A) Usar tiempo de expiración default para remover datos no needed B) Almacenar indefinidamente C) Usar storage de largo plazo manualmente D) Exportar siempre
A
368
¿Por qué usar streaming inserts con precaución en BigQuery? A) Hay cargo por streaming data into BigQuery B) Es gratis como bulk loading C) Afecta solo storage D) No hay cargo por loading
A
369
Según la arquitectura de BigQuery, ¿qué tres componentes principales constituyen un 'slot'? A) CPU, Almacenamiento y Red B) CPU, RAM y Red C) Solo CPU y RAM D) Almacenamiento, RAM y Red
B
370
¿Cómo determina BigQuery la cantidad de slots necesarios para ejecutar una consulta SQL? A) El usuario debe especificar la cantidad de slots en cada consulta B) Se asigna una cantidad fija de 100 slots a todas las consultas interactivas C) Se basa únicamente en el tamaño de la tabla que se está consultando D) Lo calcula automáticamente basándose en el tamaño y la complejidad de la consulta
D
371
De acuerdo con la guía general proporcionada, ¿cuántos slots de BigQuery se recomienda planificar por cada 50 consultas de complejidad media que se ejecutan simultáneamente? A) 500 slots B) 1,000 slots C) 2,000 slots D) 5,000 slots
C
372
En el ciclo de vida de una consulta en BigQuery, ¿cuándo un trabajo (job) puede pasar del estado 'PENDING' a 'RUNNING' de forma diferida? A) Siempre para consultas con prioridad INTERACTIVE B) Siempre para consultas con prioridad BATCH C) Únicamente cuando el sistema no tiene capacidad disponible D) Nunca, todas las consultas pasan a RUNNING inmediatamente
B
373
¿Cuáles de los siguientes son los tres modelos de precios de análisis (cómputo) que ofrece BigQuery? (Selecciona tres) A) Tarifa plana (Flat-rate) B) Pago por consulta (On-demand) C) Slots flexibles (Flex slots) D) Pago por almacenamiento activo
A, B y C
374
¿Bajo qué condición el precio del almacenamiento en BigQuery cambia de 'active storage' a 'long-term storage'? A) Cuando una tabla o partición no ha sido consultada en 90 días consecutivos B) Cuando una tabla o partición no ha sido editada en 30 días consecutivos C) Cuando una tabla o partición no ha sido editada en 90 días consecutivos D) Cuando el tamaño total del dataset supera 1 TB durante 90 días
C
375
¿Cuál de las siguientes acciones NO reinicia el contador de 90 días para la tarificación de almacenamiento a largo plazo (long-term storage)? A) Cargar datos en una tabla B) Escribir los resultados de una consulta en una tabla de destino C) Consultar los datos de una tabla (ejecutar un SELECT) D) Modificar la estructura de la tabla usando DDL
C
376
¿Cuál es el caso de uso ideal para el modelo de precios On-demand (pago por consulta) en BigQuery? A) Cargas de trabajo de producción con un gasto mensual predecible y constante B) Trabajos de tipo ETL (Extracción, Transformación y Carga) que se ejecutan en momentos de alta demanda C) Para obtener la facturación mensual más consistente y predecible D) Para trabajos exploratorios y descubrimiento de datos con patrones de uso impredecibles
D
377
Una empresa necesita capacidad de cómputo adicional en BigQuery solo durante los fines de mes para generar informes financieros. ¿Qué modelo de precios sería el más adecuado y rentable para esta necesidad cíclica? A) Tarifa plana (Flat-rate) anual B) Slots flexibles (Flex slots) C) Pago por consulta (On-demand) D) Almacenamiento a largo plazo
B
378
¿Cómo se asigna el coste de una consulta en un escenario donde un usuario del Proyecto A ejecuta una consulta sobre una tabla almacenada en el Proyecto B? A) El coste de la consulta se asigna siempre al Proyecto B, que es donde se almacenan los datos B) El coste se divide equitativamente entre el Proyecto A y el Proyecto B C) El coste de la consulta se asigna siempre al Proyecto A, que es desde donde se ejecuta la consulta D) El coste del almacenamiento se asigna al Proyecto A y el de la consulta al Proyecto B
C
379
¿Cuál es la secuencia correcta de pasos para implementar la gestión de cargas de trabajo utilizando el modelo de tarifa plana (flat-rate) en BigQuery? A) 1. Asignaciones, 2. Reservas, 3. Compromisos B) 1. Reservas, 2. Compromisos, 3. Asignaciones C) 1. Compromisos, 2. Reservas, 3. Asignaciones D) 1. Asignaciones, 2. Compromisos, 3. Reservas
C
380
En el contexto de las Reservas de BigQuery, ¿qué sucede con la capacidad (slots) de una reserva que no se está utilizando en un momento dado? A) Se pierde y no puede ser utilizada por nadie más B) Se comparte automáticamente y en tiempo real con otras reservas que la necesiten C) Se pone en cola y se libera solo después de un período de inactividad de 10 minutos D) Se convierte automáticamente en un coste menor bajo el modelo on-demand
B
381
Si la demanda de recursos dentro de una reserva de BigQuery excede la capacidad de slots disponibles, ¿qué hace el sistema? A) Cancela automáticamente las consultas que no pueden ejecutarse B) Cobra un extra por los slots adicionales a una tarifa on-demand C) Pone en cola el trabajo adicional sin coste extra, y lo procesa a medida que se liberan los slots D) Reduce la prioridad de todas las consultas activas para procesar las nuevas
C
382
Una organización ha creado una reserva con 0 slots y le ha asignado los proyectos que ejecutan trabajos de baja prioridad. ¿Cuál es el propósito de esta configuración? A) Asegurar que estos trabajos se ejecuten con la máxima prioridad B) Ejecutar estos trabajos utilizando únicamente los slots inactivos (idle slots) de otras reservas, sin coste garantizado de ejecución C) Bloquear la ejecución de cualquier trabajo en esos proyectos D) Forzar a que los trabajos de esos proyectos se cobren bajo el modelo on-demand
B
383
¿Cuál de las siguientes afirmaciones sobre la cláusula LIMIT en una consulta de BigQuery es correcta en términos de control de costes? A) Es la mejor manera de reducir el coste, ya que solo se procesan las filas especificadas en el LIMIT B) No afecta a la cantidad de datos leídos (y por lo tanto al coste), a menos que la tabla esté clusterizada C) Reduce el coste de la consulta proporcionalmente al número de filas devueltas D) Su uso está prohibido en el modelo de precios on-demand para evitar abusos
B
384
¿Cuál de las siguientes prácticas es la más recomendada para controlar y reducir los costes de las consultas en BigQuery? A) Utilizar siempre SELECT * para explorar la estructura de las tablas B) Evitar el uso de tablas particionadas porque añaden complejidad a las consultas C) Consultar únicamente las columnas necesarias en lugar de usar SELECT * D) Realizar inserciones por streaming siempre que sea posible en lugar de cargas masivas
C
385
¿Por qué se recomienda evitar el uso de 'SELECT *' para controlar los costes en BigQuery? A) Porque ralentiza la ejecución de la consulta sin importar el número de columnas B) Porque es la forma más cara de consultar datos, ya que procesa todas las columnas de la tabla C) Porque la sintaxis 'SELECT *' está obsoleta y puede generar errores D) Porque consume más slots de cómputo aunque no aumente los bytes procesados
B
386
¿Qué herramienta de BigQuery permite estimar el coste de una consulta (los bytes que serán procesados) sin ejecutarla realmente y sin incurrir en costes? A) El programador de consultas (Schedule query) B) El validador de consultas en la UI o la opción --dry_run en la CLI de 'bq' C) El panel de monitorización de slots D) La vista previa de la tabla (Table preview)
B
387
¿Cuál es la diferencia principal entre el BQ Admin Panel y Cloud Monitoring? A) Cloud Monitoring incluye alertas, mientras que el Admin Panel no B) El Admin Panel incluye alertas, mientras que Cloud Monitoring no C) Ambos ofrecen las mismas métricas y funcionalidades D) Cloud Monitoring no requiere permisos especiales
A
388
¿Qué indica una necesidad de más slots según la proyección de slots en BigQuery? A) Disminución constante de la concurrencia B) Aumento del throughput C) Tiempo promedio de espera y uso de slots en aumento constante D) Reducción del número de usuarios
C
389
¿Qué significa el término 'métrica' en Cloud Monitoring? A) Un evento único de registro B) Un valor numérico recolectado periódicamente para análisis C) Una etiqueta de recurso de BigQuery D) Un nivel de permisos IAM
B
390
¿Cuál de los siguientes es un tipo de recurso de métricas en BigQuery? A) bigquery_region B) bigquery_dataset C) bigquery_instance D) bigquery_storage
B
391
¿Qué lenguaje permite manipular y filtrar datos de series temporales en Cloud Monitoring? A) MQL (Monitoring Query Language) B) SQL C) DQL (Data Query Language) D) GQL (Google Query Language)
A
392
En el ejemplo de MQL, ¿qué consulta muestra el número de trabajos de carga (load jobs) en vuelo agrupados por intervalos de 10 minutos? A) fetch global | metric 'bigquery.googleapis.com/query/count' | filter metric.priority = 'interactive' B) fetch bigquery_project | metric 'bigquery.googleapis.com/job/num_in_flight' | filter metric.job_type = 'load' | group_by 10m C) fetch bigquery_dataset | metric 'bigquery.googleapis.com/query/time' | filter metric.job_type = 'load' D) fetch global | metric 'bigquery.googleapis.com/query/errors' | group_by 5m
B
393
¿Qué prerrequisitos son necesarios para monitorear recursos de BigQuery en Cloud Monitoring? A) Solo una cuenta de servicio B) Un proyecto con facturación habilitada y una cuenta de facturación asociada C) Permisos de lectura de datasets D) Un bucket de Cloud Storage configurado
B
394
¿Cuál es el uso principal del panel de administración (Admin Panel) de BigQuery? A) Configurar alertas personalizadas B) Analizar causas raíz y planificar capacidad basándose en el uso histórico C) Crear datasets de auditoría D) Ejecutar consultas DDL automáticas
B
395
¿Cuánto tiempo máximo retrocede la información disponible en los Admin Resource Charts de BigQuery? A) 7 días B) 14 días C) 30 días D) 90 días
C
396
¿Qué permiso de IAM es necesario a nivel de organización para acceder a la vista completa de los gráficos del panel de administración? A) bigquery.jobs.create B) bigquery.jobs.listExecutionMetadata C) bigquery.tables.getData D) bigquery.datasets.list
B
397
¿Qué permisos adicionales se requieren para ver datos de reservas en los Admin Resource Charts? (Selecciona dos) A) bigquery.reservations.list B) bigquery.capacityCommitments.list C) bigquery.jobs.cancel D) bigquery.datasets.update
A y B
398
¿Cuál de las siguientes afirmaciones sobre la facturación del Admin Panel es correcta? A) Las consultas del panel generan cargos adicionales B) Los gráficos se cobran según el volumen de datos consultado C) No generan costos adicionales ni consumen slots del usuario D) Solo los usuarios con Flat-rate pueden acceder sin costo
C
399
¿Qué tipo de información incluyen los Cloud Audit Logs de BigQuery? A) Solo los errores críticos del sistema B) Detalles del trabajo ejecutado como tiempo, bytes procesados y campos referenciados C) Solo información sobre los permisos IAM D) Solo consultas exitosas
B
400
¿Cuáles son los tres tipos de registros auditables en BigQuery? A) Access control, Performance, Metadata B) Admin activity, Data access, System event C) Dataset logs, Storage logs, Query logs D) User event, AuditData, Billing event
B
401
¿Qué formato de mensaje debe usarse para nuevo desarrollo en BigQuery Audit Logs? A) AuditData B) BigQueryAuditMetadata C) AuditLog D) LogEntryLegacy
B
402
¿Qué tipo de evento se registra cuando una tabla expira automáticamente en BigQuery? A) TableChangeEvent B) TableDeletion C) TableExpirationLog D) DatasetRemoval
B
403
¿Qué práctica recomendada se menciona respecto a los Data Access audit logs? A) Exportarlos a Cloud Storage para archivado B) Exportarlos en tiempo real a BigQuery para análisis agregados C) Desactivarlos para mejorar el rendimiento D) Almacenarlos localmente por razones de seguridad
B
404
"¿Qué filtro permite extraer únicamente los mensajes de auditoría de BigQuery en Cloud Logging? A) protoPayload.serviceName="bigquery.googleapis.com" B) protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.BigQueryAuditMetadata" C) protoPayload.jobType="interactive" D) protoPayload.tableAction="DataAccessLogEvent",B "¿Qué permite consultar con INFORMATION_SCHEMA.JOBS_BY_PROJECT?
405
406
A) El número total de datasets activos
407
B) Las consultas ejecutadas y bytes procesados por proyecto
408
C) Los permisos de usuario
409
D) Los costos acumulados de almacenamiento"
B
410
¿Cuál de las siguientes vistas INFORMATION_SCHEMA permite consultar metadatos de rutinas? A) JOBS_BY_PROJECT B) TABLES C) ROUTINES D) STREAMING_TIMELINE_BY_PROJECT
C
411
¿Qué vistas de INFORMATION_SCHEMA permiten analizar cambios en reservas y compromisos de capacidad? A) CAPACITY_COMMITMENT_CHANGES_BY_PROJECT y RESERVATION_CHANGES_BY_PROJECT B) JOBS_TIMELINE_BY_PROJECT y JOBS_BY_USER C) TABLES y TABLE_OPTIONS D) STREAMING_TIMELINE_BY_FOLDER y OBJECT_PRIVILEGES
A
412
¿Qué ocurre si una consulta en BigQuery devuelve un conjunto de resultados mayor a 10 GB comprimidos? A) Se cobra una tarifa adicional B) Se cancela automáticamente con error “Results too large” C) Se almacena parcialmente D) Se reduce automáticamente el tamaño del resultado
B
413
¿Qué causas principales pueden generar errores de tiempo de espera en BigQuery? A) Consultas mal formadas o ineficientes, o con demasiadas cláusulas WITH B) Falta de permisos en las tablas C) Baja disponibilidad de slots D) Uso excesivo de funciones analíticas
A
414
¿Qué error se produce si falta el permiso bigquery.jobs.create al ejecutar una consulta? A) Syntax error B) Resource not found C) Permission denied D) Invalid quota
C
415
¿Qué acción realiza el Job server antes de enviar una consulta al motor Dremel? A) Crea el dataset de resultados B) Valida permisos, cuotas y guarda la definición del trabajo C) Ejecuta directamente el plan de consulta D) Cierra la sesión de usuario
B
416
¿Cuál de las siguientes señales indica que necesitas más slots para las consultas de usuario en BigQuery? A) Crecimiento constante de la concurrencia, disminución de throughput, aumento en el tiempo medio de espera y ejecución, y utilización alta sostenida B) Disminución de usuarios y consultas C) Aumento del espacio de almacenamiento D) Disminución del uso de memoria RAM
A
417
¿Qué panel de Google Cloud permite el análisis causal y planificación de capacidad histórica en BigQuery, mostrando uso de slots y concurrencia de trabajos? A) Cloud Storage Metrics Panel B) BigQuery Admin Panel C) Cloud Billing Panel D) Stackdriver Admin Dashboard
B
418
¿Cuál es una característica del BigQuery Admin Resource Charts? A) Tiene coste adicional según el uso de slots B) Solo muestra información histórica hasta 7 días C) Actualiza datos en tiempo real hasta 30 días atrás y no genera costes adicionales D) Solo puede ser utilizado por administradores de red
C
419
¿Qué permiso de IAM se requiere para consultar la ejecución y metadatos completos en los Admin charts a nivel de organización? A) bigquery.tables.getData B) bigquery.jobs.listExecutionMetadata C) bigquery.reservations.update D) bigquery.storage.read
B
420
¿Qué tipos principales de log proporciona BigQuery en Cloud Audit Logs? A) System event, Data Access y Admin Activity B) Logging, Monitoring y Debugging C) Warning, Error y Info D) Job Persistence, Billing Quota, Query Timeline
A
421
¿Cuál de las siguientes prácticas es recomendada para monitorear el acceso y uso sobre datos sensibles en BigQuery? A) Exportar y analizar los Data Access audit logs en BigQuery en tiempo real B) Solo analizar logs agregados a final de mes C) No registrar logs de acceso para minimizar costes D) Deshabilitar los logs de auditoría en proyectos críticos
A
422
¿Qué opción describe mejor el uso del INFORMATION_SCHEMA en BigQuery? A) Solo permite consultar metadatos de tablas B) Permite monitorizar en tiempo real trabajos, reservas y usuarios mediante SQL C) Solo muestra información histórica de logs D) Únicamente sirve para gestionar permisos IAM
B
423
¿Qué log stream reportaría la creación de una nueva tabla en BigQuery? A) System event B) Data Access C) Admin Activity D) Table Data Change
C
424
¿Para qué sirve establecer alertas en Cloud Monitoring respecto a BigQuery? A) Enviar notificaciones en caso de que una métrica supere cierto umbral B) Borrar automáticamente datos antiguos C) Crear tablas particionadas al superar cuotas D) Restringir accesos a determinados grupos IAM
A
425
¿Cuál es una buena práctica referente a visualización de logs de auditoría en BigQuery? A) Desactivar la exportación de logs para reducir costes B) Usar Looker Studio o paneles personalizados para analizar tendencias de gasto y cantidad de consultas C) Limitar el análisis solo a los logs de almacenamiento D) Analizar logs solo al finalizar el año fiscal
B Por qué la opción B es la correcta El "qué" (los logs) y el "para qué" (visualizarlos) están perfectamente conectados en esta respuesta. Los Logs de Auditoría de BigQuery son ricos en datos: No solo te dicen quién accedió a qué tabla (seguridad), sino que, lo más importante, registran metadatos vitales sobre las consultas. Esto incluye totalBilledBytes (cuántos bytes se facturaron por la consulta), totalSlotMs (cuánto tiempo de cómputo usó) y el email del usuario (principalEmail). La visualización es para encontrar tendencias: Estos logs puros son difíciles de leer en formato JSON. Una "buena práctica" es exportar estos logs (a menudo, de vuelta a BigQuery en una tabla) y conectar una herramienta de visualización como Looker Studio (antes Data Studio). Resultado: Esto te permite construir paneles para responder preguntas clave como: "¿Quiénes son mis usuarios más costosos?", "¿Cuáles son las consultas más ineficientes?", "¿Está creciendo nuestro gasto en BigQuery mes a mes?". Esto es gestión de costos y rendimiento proactiva. Por qué las otras opciones son incorrectas A) Desactivar la exportación de logs para reducir costes: Esta es una pésima práctica. Es el equivalente a quitar las cámaras de seguridad de un banco para ahorrar en la factura de la luz. Los logs son esenciales para la seguridad, la auditoría de cumplimiento (compliance) y, precisamente, para el control de costos. El costo de almacenar los logs es minúsculo comparado con el costo de una consulta descontrolada que no puedes identificar. C) Limitar el análisis solo a los logs de almacenamiento: Esto es incompleto. El costo de BigQuery tiene dos componentes principales: almacenamiento (storage) y cómputo (queries). Los costos de cómputo (consultas) suelen ser mucho más variables y altos que los de almacenamiento. Limitar el análisis a los logs de almacenamiento ignora la parte más costosa y optimizable del servicio. D) Analizar logs solo al finalizar el año fiscal: Esto es una práctica reactiva y negligente. Si una consulta errónea o maliciosa está costando miles de dólares al día, te darías cuenta 12 meses después, cuando la factura es astronómica. Una buena práctica implica monitorización continua o diaria/semanal para detectar anomalías inmediatamente.
426
¿Cuál de las siguientes métricas NO es evaluada a través de Cloud Monitoring en BigQuery? A) Número de trabajos en ejecución B) Bytes escaneados por consulta C) Distribución de tiempos de consulta D) Tamaño de las tablas particionadas
D
427
¿Qué es el Monitoring Query Language (MQL) en el contexto de BigQuery y Google Cloud? A) Un editor de SQL avanzado para Cloud Storage B) Un lenguaje de consulta especializado que permite manipular y analizar series temporales de métricas en Cloud Monitoring C) Un sistema de permisos IAM específico para logs D) Un protocolo de encriptación de logs
B
428
¿Qué información NO obtendrás directamente en los logs Data Access de BigQuery? A) Sentencia SQL ejecutada B) Bytes escaneados por consulta C) Usuario que ejecuta la consulta D) Cambios de esquema de tablas
D
429
¿Cuál sería la causa frecuente de un error de 'timeout' en la ejecución de una consulta en BigQuery? A) Exceso de carga en Cloud Storage B) Consulta mal formada o ineficiente, como múltiples cláusulas WITH anidadas C) Superar el límite de usuarios concurrentes en IAM D) Finalización del billing account
B
430
¿Cuál es el límite de tamaño para los resultados directos de una consulta en BigQuery antes de sugerir uso de filtro o tabla destino? A) 100 MB comprimidos B) 500 MB sin comprimir C) 1 GB comprimido D) 10 GB comprimido
D
431
¿Para consultar trabajos y usuarios más costosos en tiempo real vía SQL en BigQuery, qué vista de INFORMATION_SCHEMA utilizarías? A) JOBSBYUSER B) PARTITIONS C) ROUTINES D) STREAMINGTIMELINEBYPROJECT
A
432
¿Qué debe hacerse antes de poder monitorizar recursos de BigQuery desde Cloud Monitoring? A) Habilitar Cloud Monitoring, una cuenta de facturación activa y asociar el proyecto de BigQuery B) Instalar un agente local y permisos de root en las máquinas C) Compartir todos los datasets como públicos D) Configurar manualmente las cuotas cada día
A
433
¿Qué tipo de error común ocasiona 'Permission denied: bigquery.jobs.create' al enviar una consulta? A) Es un error del sistema B) Consulta supera el límite de tiempo C) Falta permiso IAM adecuado para crear trabajos D) El dataset está deshabilitado
C
434
¿Qué representa la métrica 'totalSlotMs' en las entradas de log de una consulta? A) El total de megabytes almacenados por la consulta B) El uso total de memoria RAM en milisegundos C) El total de slot-milliseconds consumidos por la consulta D) El tiempo acumulado de ejecución de todos los usuarios
C
435
¿Para qué sirve la exportación agregada de Cloud Audit Logs a BigQuery a nivel de organización o carpeta? A) Permite monitorear y correlacionar acceso y cambios de datos entre múltiples proyectos B) Solo visualiza logs del proyecto actual C) Reduce automáticamente el uso de slots D) Activa la exportación al almacenamiento Nearline
A
436
¿Cuáles son las opciones de monitoreo mencionadas para BigQuery en el documento? A) Solo Cloud Monitoring B) BQ Admin Panel y Cloud Monitoring C) Solo INFORMATION_SCHEMA D) Cloud Audit Logs y Query Path
B
437
¿Cuáles son las limitaciones de Cloud Monitoring para BigQuery según el documento? (Selecciona tres) A) Subset de métricas de jobs disponibles B) Límite de 375 proyectos por workspace C) Datos limitados de reservas D) Soporte completo para alertas
"A
438
¿Cuáles son las características del BQ Admin Panel según el documento? (Selecciona tres) A) Soporta una lista de tipos de métricas B) No tiene funcionalidad de alertas C) Requiere permisos para ver a nivel de organización D) Datos ilimitados de reservas
"A
439
¿Cuáles señales indican que se necesitan más slots para consultas de usuarios en BigQuery? (Selecciona tres) A) Concurrencia consistentemente aumentando B) Throughput consistentemente disminuyendo C) Utilización de slots consistentemente alta, por ejemplo 90% o más D) Tiempo de espera promedio disminuyendo
"A
440
¿Cuáles señales sugieren que se necesitan menos slots en BigQuery? (Selecciona dos) A) Tendencia opuesta a la de needing more slots B) Pronóstico de compañía muestra tendencia decreciente en uso, como menos usuarios o menos consultas C) Concurrencia aumentando D) Throughput aumentando
"A y B"
441
¿Qué son las métricas en Cloud Monitoring según el documento? A) Valores numéricos recolectados a intervalos regulares para análisis B) Logs de errores en BigQuery C) Consultas SQL ejecutadas D) Tablas de datos almacenadas
A
442
¿Cómo se usan las métricas en Cloud Monitoring? (Selecciona tres) A) Crear charts y dashboards B) Disparar alertas para condiciones que necesitan intervención humana C) Analizar performance histórica D) Ejecutar consultas SQL directamente
"A
443
¿Cuáles son ejemplos de métricas en BigQuery mencionadas? (Selecciona tres) A) Número de jobs running B) Bytes escaneados durante una consulta C) Distribución de tiempos de consulta D) Tamaño de datasets
"A
444
¿Cuáles son los tipos de recursos en métricas de BigQuery? (Selecciona tres) A) bigquery_dataset B) bigquery_project C) global D) bigquery_user
"A
445
¿Qué proporciona Monitoring Query Language (MQL) en Cloud Monitoring? A) Interfaz expresiva basada en texto para datos de series temporales B) Ejecución de consultas SQL en BigQuery C) Creación de datasets D) Gestión de slots
A
446
¿Qué hace el ejemplo de MQL 1 en el documento? A) Grafica el número de consultas interactivas en vuelo B) Obtiene el número de load jobs en vuelo C) Filtra por prioridad batch D) Agrupa por 10 minutos
A
447
¿Qué hace el ejemplo de MQL 2 en el documento? A) Obtiene el número de load jobs en vuelo, agrupados en intervalos de 10 minutos B) Grafica consultas interactivas C) Filtra por prioridad interactive D) Usa métrica query/count
A
448
¿Cuáles son los pre-requisitos para monitorear recursos de BigQuery usando Cloud Monitoring? (Selecciona dos) A) Una cuenta de Cloud Billing B) Un proyecto de BigQuery con billing enabled C) Un dataset público D) Slots flexibles
"A y B"
449
¿Cómo monitorear recursos de BigQuery en Cloud Monitoring? (Selecciona tres) A) Ver el dashboard de Cloud Monitoring B) Visualizar slots disponibles y asignados C) Crear un dashboard y chart D) Crear una alerta
"A
450
¿Cuáles son los usos primarios del BigQuery Admin Panel? A) Análisis de causa raíz para planificación de capacidad basado en utilización histórica de recursos y diagnóstico de cambios de performance B) Ejecución de consultas SQL C) Creación de datasets D) Gestión de usuarios
A
451
¿De dónde provienen los datos en los Admin Resource Charts? A) Basados en tablas INFORMATION_SCHEMA, actualizados en tiempo real, hasta 30 días atrás B) De Cloud Audit Logs C) De métricas de Cloud Monitoring D) De queries manuales
A
452
¿Cuáles permisos IAM son requeridos a nivel de organización para ver la vista completa en BigQuery Admin charts? (Selecciona dos) A) bigquery.jobs.listExecutionMetadata B) bigquery.jobs.listAll C) bigquery.datasets.create D) bigquery.tables.get
"A y B"
453
¿Cuáles permisos adicionales se necesitan para ver datos parciales a nivel de reserva en el Admin Panel? A) bigquery.reservations.list y bigquery.reservationAssignments.list B) bigquery.jobs.create C) bigquery.capacityCommitments.list D) bigquery.tables.update
A
454
¿Qué permiso se necesita para ver datos de capacidad de reserva en Admin Resource Charts? A) bigquery.capacityCommitments.list B) bigquery.jobs.list C) bigquery.datasets.get D) bigquery.tables.list
A
455
¿Cómo acceder a los Admin Resource Charts en BigQuery? A) Seleccionar el admin project en el project picker, navegar a ADMINISTRATION > Monitoring B) Usar la API directamente C) Desde Cloud Monitoring dashboard D) A través de INFORMATION_SCHEMA
A
456
¿Cuáles son los componentes interactivos primarios de los Admin Resource Charts? (Selecciona tres) A) El event timeline chart B) El main chart con métricas como slot usage, job concurrency, etc. C) Un side panel para elegir charts, breakdowns y filtros D) Un editor SQL
"A
457
¿Hay costo adicional por usar Admin Resource Charts? A) No, disponible sin costo adicional B) Sí, basado en bytes procesados C) Sí, por slots usados D) Sí, por queries ejecutadas
A
458
¿Cuáles detalles proporcionan los logs sobre jobs ejecutados en BigQuery? (Selecciona tres) A) Query - El SQL ejecutado B) startTime y endTime C) totalProcessedBytes y totalBilledBytes D) Tamaño de datasets
"A
459
¿Cuáles son los tipos de Cloud Audit Logs para BigQuery? (Selecciona tres) A) Admin activity B) Data access C) System event D) User activity
"A
460
¿Cuáles son los kinds de log messages en BigQuery? (Selecciona tres) A) AuditData (older version) B) BigQueryAuditMetadata (newer version) C) AuditLog D) ErrorLog
"A
461
¿En qué streams se organizan los audit logs? (Selecciona tres) A) Data Access B) System Event C) Admin Activity D) User Access
"A
462
¿Qué permiten los log exports de Cloud Logging a BigQuery? A) Análisis agregado en datos de logs B) Ejecución de jobs C) Creación de slots D) Monitoreo en tiempo real
A
463
¿Cuál es la best practice para exportar Data Access audit logs? A) Exportarlos a BigQuery en tiempo real, crear exports agregados a nivel de org o folder B) Exportarlos a Cloud Storage C) No exportarlos D) Usar solo Cloud Monitoring
A
464
¿Qué filtro se usa para mensajes de audit relevantes de BigQuery? A) protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.BigQueryAuditMetadata" B) protoPayload.serviceName="bigquery.googleapis.com" C) logName="projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access" D) severity=ERROR
A
465
¿Qué query de exported logs reporta tablas expiradas? A) SELECT protopayload_auditlog.resourceName, receiveTimestamp FROM table WHERE methodName = 'InternalTableExpired' B) SELECT datasetRef, COUNT(DISTINCT ...) FROM table GROUP BY datasetRef C) SELECT query FROM INFORMATION_SCHEMA D) SELECT slots FROM metrics
A
466
¿Qué query de exported logs encuentra los datasets más populares? A) SELECT datasetRef, active_tables, dataReadEvents, dataChangeEvents FROM table GROUP BY datasetRef ORDER BY dataReadEvents DESC B) SELECT resourceName FROM table WHERE methodName = 'InternalTableExpired' C) SELECT user_email FROM INFORMATION_SCHEMA D) SELECT count FROM metrics
A
467
¿Cuáles son best practices para visualizar audit logs? (Selecciona tres) A) Analizar tendencias de gasto y volumen de queries over time B) Break down costs by project and user C) Ser proactivo rastreando queries caras y optimizándolas D) Crear nuevos datasets
"A
468
¿Cómo usar INFORMATION_SCHEMA para monitoring en BigQuery? A) Leverage views para real-time updates, run ad hoc SQL queries contra todos los jobs en el project B) Usar para crear tables C) Para exportar logs D) Para definir slots
A
469
¿Cuáles categorías de INFORMATION_SCHEMA views hay? (Selecciona tres) A) Dataset Metadata (SCHEMATA, etc.) B) Table and View Metadata (TABLES, etc.) C) Job Metadata (JOBS_BY_USER, etc.) D) User Metadata
"A
470
¿Qué APIs se usan para submitir una query en BigQuery? A) Jobs.Insert (asynchronous) / Jobs.query (semi-asynchronous, timeout 10s) B) Datasets.create C) Tables.insert D) Reservations.create
A
471
¿Cuáles componentes están en el query path de BigQuery? (Selecciona tres) A) Job server, Query master, Dremel workers B) Scheduler, Shuffle, Colossus C) Router, Spanner D) Dataset, Table
"A
472
¿Cuáles son los pasos en query startup on Job server? (Selecciona tres) A) Verify user permissions B) Extract referenced entities from SQL C) Authorize input tables D) Create new dataset
"A
473
¿Cuáles son causas comunes de query startup errors? (Selecciona tres) A) Permission denied (bigquery.jobs.create) B) Syntax errors in SQL C) Insufficient quota D) Successful persistence
"A
474
¿Cuáles son causas principales de timeout errors en BigQuery? A) Query malformed or inefficient, o query con several WITH statements B) Results too large C) Connection error D) Permission denied
A
475
¿Qué error ocurre si la respuesta es larger than 10 GB compressed? A) Results too large B) Timeout C) Insufficient quota D) Syntax error
A
476
¿Cómo mitigar el error 'Results too large' en BigQuery? (Selecciona tres) A) Use filters to limit result set B) Use LIMIT clause C) Specify destination table for query results D) Increase slots
"A
477
¿Cuál es una limitación de usar Cloud Monitoring para supervisar BigQuery en comparación con el Panel de Administración (Admin Panel)? A) Cloud Monitoring no permite crear alertas B) Cloud Monitoring tiene un límite de 375 proyectos por espacio de trabajo (workspace) C) Los datos en Cloud Monitoring se actualizan cada 24 horas D) Cloud Monitoring no puede mostrar métricas relacionadas con los slots
B
478
Según las señales de proyección de slots, ¿cuál de los siguientes indicadores sugiere de manera consistente que se necesitan MÁS slots? A) El tiempo de espera promedio (Avg. Wait Time) disminuye de forma constante B) La utilización de slots (Slot utilization) se mantiene por debajo del 20% C) El rendimiento (Throughput) aumenta de forma constante D) La concurrencia de consultas (Concurrency) aumenta de forma constante
D
479
¿Para qué se utiliza principalmente el Lenguaje de Consulta de Monitorización (MQL) en el contexto de Cloud Monitoring para BigQuery? A) Para escribir las consultas SQL que se ejecutan en BigQuery B) Para definir los permisos de IAM sobre las métricas de monitoreo C) Para recuperar, filtrar y manipular datos de series temporales de las métricas de Cloud Monitoring D) Para crear directamente los paneles de visualización sin necesidad de seleccionar métricas
C
480
¿Cuál es el caso de uso principal del Panel de Administración de BigQuery (Admin Resource Charts)? A) Ejecutar consultas SQL y gestionar transferencias de datos B) Crear alertas en tiempo real para el uso de slots C) Realizar análisis de causa raíz para la planificación de capacidad basándose en la utilización histórica de recursos D) Gestionar los permisos de IAM a nivel de organización para todos los proyectos de BigQuery
C
481
Para poder ver la vista completa de los gráficos de recursos de administrador (Admin Resource Charts) a nivel de organización en BigQuery, ¿cuál de los siguientes permisos de IAM se requiere? A) bigquery.datasets.create B) bigquery.jobs.listExecutionMetadata C) bigquery.tables.list D) bigquery.reservations.list
B
482
¿Cuál de las siguientes afirmaciones sobre la facturación del Panel de Administración de BigQuery (Admin Panel) es correcta? A) Se cobra una tarifa fija por cada panel de control visualizado B) Las consultas utilizadas para poblar los gráficos se facturan y consumen slots de las reservas del usuario C) El uso de los gráficos de recursos de administrador está disponible sin coste adicional D) Cada filtro aplicado en los gráficos incurre en un pequeño coste de consulta
C
483
¿Qué tipo de información se puede encontrar en los Cloud Audit Logs de BigQuery? (Selecciona tres) A) El texto completo de la consulta SQL ejecutada B) El total de bytes procesados y facturados por un trabajo C) El número total de 'slot-ms' consumidos por la consulta D) El resultado completo de la consulta SELECT ejecutada
A, B y C
484
Cloud Audit Logs para BigQuery se organiza en tres flujos de logs. ¿Cuáles son estos tres flujos? A) Actividad del Administrador (Admin Activity), Acceso a Datos (Data Access) y Evento del Sistema (System Event) B) Logs de Inserción, Logs de Actualización y Logs de Eliminación C) Logs de Consultas, Logs de Cargas y Logs de Exportaciones D) Logs de Seguridad, Logs de Rendimiento y Logs de Facturación
A
485
¿Qué tipo de evento se registraría en el flujo de logs de 'Evento del Sistema' (System Event) de BigQuery? A) La creación de un nuevo conjunto de datos (dataset) B) La ejecución de una consulta SELECT sobre una tabla C) La eliminación automática de una tabla debido a que ha alcanzado su tiempo de expiración D) Un cambio en los permisos de IAM de un usuario
C
486
¿Cuál es el principal beneficio de exportar los logs de auditoría de Cloud Logging a BigQuery? A) Reducir los costes de almacenamiento de logs B) Permitir el análisis agregado sobre los datos de los logs mediante consultas SQL C) Acelerar la entrega de logs en tiempo real D) Habilitar la retención de logs por un período indefinido sin coste
B
487
¿Para qué se utilizan las vistas de INFORMATION_SCHEMA en BigQuery? A) Para almacenar los resultados de las consultas de los usuarios B) Para acceder a metadatos en tiempo real sobre trabajos, tablas, reservas y otros recursos de BigQuery C) Para definir las políticas de seguridad y control de acceso a los datos D) Para visualizar el uso histórico de slots en los últimos 12 meses
B
488
Un usuario intenta ejecutar una consulta y recibe un error de 'Permission denied, bigquery.jobs.create IAM permission'. ¿En qué fase del inicio de la consulta se produce este error? A) Durante la comprobación de la cuota de concurrencia B) Al enviar la solicitud a Dremel C) Al verificar los permisos del usuario para autorizar la creación del trabajo (job) D) Al leer los esquemas de las tablas de entrada
C
489
¿Cuál es la solución recomendada cuando una consulta en BigQuery falla con el error 'Results too large'? A) Aumentar el número de slots en la reserva B) Especificar una tabla de destino para los resultados de la consulta C) Usar la cláusula 'ORDER BY' para ordenar los resultados D) Ejecutar la consulta durante las horas de menor actividad
B
490
¿Cuál es el principio clave que debe guiar la asignación de permisos en BigQuery? A) Permitir acceso total a todos los usuarios por defecto B) Aplicar el principio de mínimo privilegio, otorgando solo los permisos necesarios para la función de cada usuario C) Asignar permisos solo a nivel de proyecto, nunca a tablas específicas D) Permitir que los desarrolladores gestionen sus propios permisos
B
491
¿Qué afirmación es cierta sobre las Authorized Views en BigQuery? A) Permiten exportar datos directamente desde las vistas a sistemas externos B) Permiten conceder acceso a subconjuntos de datos sin permitir acceso directo a las tablas subyacentes C) Solo funcionan entre tablas en la misma ubicación física y el mismo proyecto D) No es posible restringir columnas específicas mediante views
B
492
¿Cuál es la diferencia principal entre el uso de Authorized Views y Row-Level Security en BigQuery? A) Authorized Views permiten compartir todas las filas, Row-Level Security solo algunas columnas B) Authorized Views se utilizan para controlar acceso por columnas o subconjuntos filtrados mediante SQL, Row-Level Security aplica políticas de acceso directamente sobre filas específicas de una tabla C) Row-Level Security solo se aplica a datasets públicos D) Authorized Views son más seguras que Row-Level Security en todos los casos
B
493
¿Qué rol de IAM permite crear, leer, actualizar y eliminar taxonomías y etiquetas de políticas en Data Catalog para control de acceso fino a columnas? A) BigQuery Admin B) Data Catalog Policy Tag Admin C) BigQuery Data Viewer D) BigQuery Masked Reader
B
494
¿Qué se recomienda al asignar roles en BigQuery para facilitar la gestión y mejorar la seguridad? A) Asignar roles personalizados a cada usuario individual B) Utilizar grupos de Google para asignar permisos en función de las necesidades del equipo C) Asignar siempre el rol de BigQuery Admin a todos los desarrolladores D) Solo usar los identificadores allUsers o allAuthenticatedUsers para todo acceso
B
495
¿Cuál es una ventaja del uso de políticas de acceso a nivel de columna (column-level security) en BigQuery? A) Permiten cambiar el tipo de datos de una columna automáticamente B) Permiten restringir el acceso a columnas sensibles sin modificar el esquema de la tabla ni las consultas existentes C) Sólo funcionan junto con particionamiento obligatorio D) Permiten cifrado cliente-servidor a medida
B
496
¿Qué operación NO es compatible con row-level security en BigQuery? A) Crear políticas de acceso sobre columnas JSON B) Crear una política DDL sobre una tabla regular C) Restringir acceso a filas por condiciones de usuario D) Combinar múltiples políticas de acceso en una tabla
A
497
¿Cuál es una limitación de las políticas de acceso a filas (row-level access policies) en BigQuery? A) Solo puede haber una política por tabla B) No funcionan con SQL estándar C) No participan en el 'query pruning' de particiones y clusters D) Solo pueden ser creadas por usuarios externos
C
498
¿Con qué función de BigQuery SQL puedes construir soluciones de crypto-shredding para datos sensibles? A) INFORMATION_SCHEMA B) AEAD.Encrypt y AEAD.Decrypt C) ROW_FILTER D) AUTHORIZED_VIEW
B
499
¿Qué corresponde a un uso adecuado de la encriptación gestionada por el cliente (CMEK) en BigQuery? A) Permite al usuario administrar sus claves de cifrado y cumplir con requisitos regulatorios adicionales B) Solo habilita el cifrado durante la transmisión y no en reposo C) Solo permite el uso de claves creadas fuera de Google Cloud D) Deshabilita la rotación automática de claves
A
500
¿Qué herramienta permite la inspección y etiquetado automático de PII (información personal) en los datasets de BigQuery? A) Data Catalog B) Cloud Data Loss Prevention (DLP) C) Cloud Storage D) Stackdriver Logging
B
501
¿Por qué se recomienda separar datasets o proyectos según funcionalidad y entorno en BigQuery (por ejemplo, DEV, QA, PRD)? A) Para reducir la cantidad de logs generados B) Para aplicar diferentes políticas de acceso y auditar roles según el entorno C) Porque BigQuery solo permite un dataset por proyecto D) Para disminuir el espacio de almacenamiento utilizado
B
502
¿Qué tipo de cuenta es recomendable utilizar para la ejecución de procesos automatizados que requieren acceso a BigQuery sin intervención humana directa? A) Cuenta personal del administrador B) Cuenta de servicio específica creada para la tarea C) Cuenta root de organización D) Grupo allAuthenticatedUsers
B
503
¿Qué técnica proporciona el máximo aislamiento de datos sensibles en BigQuery? A) Crear tablas separadas con distintos permisos para cada subconjunto de datos B) Usar Authorized Views exclusivamente C) Aplicar únicamente políticas de acceso a filas D) Asignar permisos a nivel de columna
A
504
¿Qué sucede si se asigna el permiso bigquery.tables.delete a nivel de carpeta en la jerarquía de recursos? A) Solo podrá borrar tablas existentes, no datasets ni proyectos B) Afectará a todas las tablas de todos los proyectos y datasets que estén dentro de esa carpeta C) Solo tendrá efectos en el proyecto raíz D) No tiene ningún efecto
B
505
¿Cuál es el principal objetivo de la separación de funciones (Separation of Duties) en la seguridad de BigQuery? A) Facilitar el despliegue de código automatizado B) Minimizar el riesgo de manipulación o robo de datos por una sola persona y asegurar detección de cambios o eliminación no autorizada C) Permitir acceso omnicanal a todos los recursos D) Optimizar el rendimiento de consultas sobre grandes volúmenes
B
506
¿En qué consiste la funcionalidad de dynamic data masking en BigQuery? A) Cambia los valores de datos sensibles cifrando toda la tabla físicamente B) Permite compartir tablas con grandes grupos, ocultando columnas sensibles mediante enmascaramiento selectivo controlado por política C) Solo funciona con claves de cifrado externas D) Borra automáticamente los datos después de 30 días
B
507
¿Qué buenas prácticas se recomiendan para limitar ataques de canal lateral al aplicar Row-Level Security en BigQuery? A) Dar permisos amplios a todos los usuarios B) Restringir los permisos y utilizar políticas de acceso solo dentro de la organización C) Filtrar sobre columnas particionadas D) Definir todas las filas como “sin restricción”
B
508
¿Qué niveles jerárquicos de acceso se consideran al asignar permisos en BigQuery con IAM? A) Solo dataset y tabla B) Organización, carpeta, proyecto, dataset, tabla o columna C) Únicamente proyecto D) Solo usuario directo
B
509
¿Qué herramienta cloud proporciona un catálogo seguro y centralizado para gestionar metadatos, cumplimientos y descubrimiento de datos en proyectos de BigQuery? A) Data Catalog B) Data Studio C) PubSub D) Cloud Composer
A
510
¿Cuál es el principio de seguridad que indica que los usuarios solo deben tener los permisos necesarios para realizar su trabajo? A) Defensa en profundidad B) Principio de mínimo privilegio C) Autenticación multifactor D) Control de acceso por roles
B
511
¿Qué elemento de IAM se recomienda usar para identificar procesos o aplicaciones en lugar de usuarios? A) Cuentas de servicio B) Cuentas de usuario C) Grupos D) Dominios
A
512
¿Cuál es una buena práctica al asignar roles en IAM para BigQuery? A) Asignar permisos a individuos B) Usar grupos de Google en lugar de usuarios individuales C) Usar siempre roles personalizados D) Conceder el rol de Owner por defecto
B
513
¿Qué ocurre al conceder un permiso en un nivel superior de la jerarquía de recursos (por ejemplo, carpeta o proyecto) en IAM? A) Solo aplica al recurso seleccionado B) No afecta a los recursos hijos C) Se hereda automáticamente por los recursos subordinados D) Requiere replicación manual del permiso
C
514
¿Cuál de los siguientes roles tiene acceso completo para administrar todos los recursos de BigQuery? A) BigQuery Data Owner B) BigQuery Admin C) BigQuery Job User D) BigQuery User
B
515
¿Qué rol de BigQuery permite ejecutar trabajos (jobs) pero sin acceso directo a los datos? A) BigQuery Data Viewer B) BigQuery Job User C) BigQuery Data Owner D) BigQuery Metadata Viewer
B
516
¿Qué rol obtiene un usuario automáticamente al crear un nuevo dataset en un proyecto? A) Data Editor B) Data Viewer C) Data Owner D) Job User
C
517
¿Cuál es la función principal de las Authorized Views en BigQuery? A) Permitir compartir datos sin exponer las tablas subyacentes B) Crear copias físicas de las tablas protegidas C) Aplicar encriptación personalizada a las vistas D) Auditar el acceso a las tablas externas
A
518
¿Dónde debe crearse una Authorized View respecto al dataset original? A) En el mismo dataset B) En un dataset diferente con permisos distintos C) En el mismo proyecto con permisos idénticos D) En Cloud Storage
B
519
¿Qué función cumple la cláusula SESSION_USER() en una Authorized View? A) Identifica la sesión activa para aplicar filtros de fila personalizados B) Cifra las consultas ejecutadas por usuarios externos C) Bloquea el acceso de usuarios no autenticados D) Limita la ejecución de consultas complejas
A
520
¿Qué tipo de seguridad permite controlar qué usuarios pueden ver ciertas columnas en BigQuery? A) Row-level security B) Column-level security C) Dataset-level permissions D) Encryption at rest
B
521
¿Dónde se gestionan las etiquetas de política (policy tags) para aplicar control a nivel de columna? A) En Cloud Storage B) En Cloud KMS C) En Data Catalog D) En Cloud Audit Logs
C
522
¿Qué rol permite crear y administrar taxonomías y etiquetas de política (policy tags) en Data Catalog? A) Fine-Grained Reader B) Policy Tag Admin C) BigQuery Admin D) Metadata Viewer
B
523
¿Qué rol debe tener un usuario para acceder a los valores en columnas restringidas por etiquetas de política? A) Data Catalog Policy Tag Admin B) BigQuery Admin C) Fine-Grained Reader D) Data Owner
C
524
¿Cuál es el propósito de la función de Dynamic Data Masking en BigQuery? A) Ocultar columnas sensibles sin modificar las consultas B) Cifrar los datos en tránsito C) Borrar filas de datos confidenciales D) Generar claves de encriptación dinámicas
A
525
¿Qué característica de BigQuery permite aplicar filtros de acceso por fila según usuario o grupo? A) Column-level security B) Row-level security C) Authorized views D) Access Control Lists (ACLs)
B
526
¿Qué sentencia SQL se usa para crear una política de acceso por fila en BigQuery? A) CREATE COLUMN POLICY B) CREATE ROW ACCESS POLICY C) ALTER ROW ACCESS POLICY D) GRANT ROW FILTER
B
527
¿Qué limitación tiene la seguridad a nivel de fila en BigQuery? A) No puede coexistir con políticas de columna B) No es compatible con SQL estándar C) No participa en el query pruning de tablas particionadas D) Solo puede aplicarse a vistas
C
528
¿Cuántas políticas de acceso por fila puede tener como máximo una tabla en BigQuery? A) 10 B) 25 C) 50 D) 100
D
529
¿Qué enfoque proporciona el mayor aislamiento de datos cuando se requiere máxima confidencialidad? A) Row-level access policies B) Authorized views C) Tablas separadas D) Column-level filtering
C
530
¿Qué protocolo se utiliza para cifrar los datos en tránsito hacia Google Cloud? A) SSL B) HTTPS C) TLS D) AES-256
C
531
¿Qué algoritmo se utiliza en BigQuery para cifrar los Data Encryption Keys (DEK)? A) RSA-2048 B) AES-256 C) SHA-256 D) MD5
B
532
¿Qué servicio de Google Cloud permite a los clientes crear y administrar sus propias claves de cifrado? A) Cloud Data Catalog B) Cloud Key Management Service (KMS) C) Cloud DLP D) Cloud HSM
B
533
¿Qué función tienen las AEAD encryption functions en BigQuery? A) Permitir cifrar y descifrar datos dentro de SQL mediante claves administradas B) Reemplazar el cifrado de servidor predeterminado C) Cifrar los metadatos de tablas D) Aplicar mascaramiento dinámico en vistas
A
534
¿Cuál es el propósito principal de Data Catalog en BigQuery? A) Almacenar datasets cifrados B) Centralizar la gestión de metadatos y etiquetas C) Crear vistas autorizadas D) Monitorear cuotas de consulta
B
535
¿Qué servicio de Google ayuda a detectar y proteger datos sensibles como correos o tarjetas de crédito? A) Cloud DLP (Data Loss Prevention API) B) Cloud Logging C) Cloud IAM D) Cloud Key Management Service
A
536
¿Qué acción realiza la integración entre BigQuery y Cloud DLP? A) Cifra automáticamente los datos con claves KMS B) Autoetiqueta datos PII mediante análisis de inspección C) Copia datasets sensibles a proyectos separados D) Bloquea las consultas que acceden a datos confidenciales
B
537
¿Qué tipo de metadatos pueden incluirse en las etiquetas estructuradas de Data Catalog? A) Información de calidad, clasificación, propietario y retención B) Solo el tipo de datos C) Detalles del esquema SQL D) Métricas de facturación
A
538
¿Qué función tiene el rol “Tag template owner” en Data Catalog? A) Crear y administrar plantillas de etiquetas B) Solo leer las etiquetas existentes C) Aplicar políticas de cifrado D) Ejecutar auditorías automáticas
A
539
¿Cuáles son los componentes principales de seguridad, encriptación y auditoría en BigQuery según el documento? A) Cloud Audit Logs, Authentication, Access Control y Key Management B) Slots, Pricing Models y Reservations C) Monitoring, INFORMATION_SCHEMA y Query Path D) Datasets, Tables y Views
A
540
¿Qué principio establece que los usuarios solo deben poder realizar las tareas requeridas por sus trabajos, aplicándose también a instancias de máquinas y procesos en tiempo de ejecución? A) Principio de separación de duties B) Principio de least privilege C) Principio de encriptación por default D) Principio de data governance
B
541
¿Cuáles son las recomendaciones para implementar el principio de least privilege en BigQuery? (Selecciona tres) A) Usar IAM para enforzarlo B) Identificar usuarios con su login C) Identificar máquinas y código usando service accounts D) Asignar roles a nivel de organización siempre
"A
542
¿Qué principio de seguridad evita que una sola persona pueda cambiar o eliminar datos sin ser detectada, o robar datos sensibles? A) Least privilege B) Separation of duties C) Encryption by default D) Data classification
B
543
¿Cuáles son ejemplos de separation of duties en el documento? (Selecciona dos) A) Las personas que escriben el código no deben deployarlo B) Quienes deployan el código no deben poder cambiarlo C) Todos deben tener acceso completo a los datos D) Usar un solo proyecto para todos los duties
"A y B"
544
¿Cómo se recomienda organizar proyectos para separation of duties? A) Usar múltiples proyectos y folders para organizarlos B) Usar un solo proyecto con todos los derechos C) No usar folders D) Asignar todos los roles a nivel de proyecto
A
545
¿Cuáles son las mejores prácticas para IAM en BigQuery según el documento? (Selecciona tres) A) Grant roles a Google groups en lugar de individuals B) Preferir pre-defined roles sobre custom roles C) Grant roles al smallest scope needed D) Usar siempre owner y editor roles
"A
546
¿Cuáles son los tipos de identities en IAM para BigQuery? (Selecciona tres) A) Specific end user como example@mydomain.com B) Service accounts C) Groups como data-analysts@mydomain.com D) Slots commitments
"A
547
¿Cómo funciona la permission inheritance en BigQuery IAM? A) Granting a permission a un resource afecta todos los resources below it B) Las permissions no se heredan C) Solo se heredan a nivel de proyecto D) Inheritance solo aplica a storage
A
548
¿Qué describe BigQuery predefined IAM roles? A) Roles para controlling access a datasets, tables, views o columns B) Roles para pricing models C) Roles para monitoring D) Roles para encryption keys
A
549
¿Cuáles son categorías de BigQuery predefined IAM roles? (Selecciona tres) A) Admin roles como BigQuery Admin B) Data roles como BigQuery Data Owner C) Viewer roles como BigQuery Metadata Viewer D) Pricing roles
"A
550
¿Qué permite el role BigQuery Admin? A) Can do everything in BigQuery: create and read data, run jobs, set IAM policies, etc. B) Solo read access C) Solo run jobs D) Solo list datasets
A
551
¿Qué permite el role BigQuery Data Viewer? A) Has read-only access to data B) Read/write access C) Can grant access to others D) Can delete datasets
A
552
¿Qué permite el role BigQuery Job User? A) Can create and run jobs, but has no access to data B) Full access to data C) Can create datasets D) Can set IAM policies
A
553
¿Cómo se usan BigQuery IAM roles en práctica? A) Assign groups o users a roles, provide access to datasets como viewer, editor o owner B) Solo assign a individuals C) No usar groups D) El creator no es owner
A
554
¿Cuáles son las capabilities del basic role Viewer en IAM Project Roles para BigQuery? (Selecciona tres) A) Can start a job in the project B) Can list and get all jobs C) Grants bigquery.dataViewer to new datasets D) Can delete datasets
"A
555
¿Qué añade el basic role Editor sobre Viewer en BigQuery? A) Can create a new dataset B) Grants bigquery.dataEditor to new datasets C) Can list all datasets D) Can delete any dataset
"A y B"
556
¿Qué añade el basic role Owner sobre Editor en BigQuery? (Selecciona tres) A) Can list all datasets B) Can delete any dataset C) Can list and get all jobs D) Grants bigquery.dataOwner to new datasets
"A
557
¿Qué permiten las authorized views en BigQuery? A) Provide row o column level permissions sin dar acceso completo al dataset B) Solo provide full access C) No permiten filtering D) Deben estar en el mismo dataset
A
558
¿Cuáles son los pasos para crear una authorized view? (Selecciona tres) A) Create a second dataset con different permissions B) Add a view al second dataset que selects subset de data C) Give access al view en el first dataset D) Usar el mismo dataset para view y tables
"A
559
¿Cómo lograr row-level security usando authorized views? A) Usar SESSION_USER() para custom authorization logic B) No usar SESSION_USER() C) Solo con IAM roles D) Con encryption keys
A
560
¿Qué hace el ejemplo de SQL para row-level security? A) SELECT column1, column2 FROM table WHERE allowed_viewer = SESSION_USER() B) SELECT * FROM table C) DELETE FROM table D) UPDATE table SET column = value
A
561
¿Cómo se crea una authorized view en un escenario con dos teams? A) Create view en dataset_a que selects from dataset_b, grant access B) Views en el mismo dataset C) No grant access D) Usar storage buckets
A
562
¿Cuáles son ventajas de column-level y row-level security en BigQuery? (Selecciona dos) A) Control who can view data en select columns usando policy tags B) Filter data to specific rows basado en user conditions C) Reemplaza IAM completamente D) Solo para encryption
"A y B"
563
¿Qué es un taxonomy en column-level access control? A) Organización de data classes en policy tags B) Un tipo de encryption C) Un monitoring tool D) Un pricing model
A
564
¿Cuáles son los pasos en column-level access control workflow? (Selecciona tres) A) Define data classes y organize en policy tags B) Set policy tags en columns C) Manage access por policy tags D) Ignore user authorization
"A
565
¿Cómo se set policy tags en columns? A) Modify schema.json y usar bq update B) Usar solo UI C) No se puede update schema D) Con DML statements
A
566
¿Cuáles roles se usan con column-level access control? (Selecciona tres) A) Data Catalog Policy Tag Admin para create taxonomies B) BigQuery Admin o Data Owner para data policies C) Data Catalog Fine-Grained Reader para access restricted columns D) BigQuery Job User para encryption
"A
567
¿Qué es dynamic data masking en BigQuery? A) Mask sensitive columns para share tables con larger groups B) Encriptar data at rest C) Monitor queries D) Set pricing
A
568
¿Cuáles son beneficios de dynamic data masking? (Selecciona dos) A) No need to modify queries excluding columns B) Write data policy once y apply to multiple columns C) Requiere cambiar todas las queries D) Solo para row-level
"A y B"
569
¿Qué describe row-level security en BigQuery? A) Creation de row-level access policies en target tables con filters basado en users o groups B) Solo column-level C) Usar views solo D) Encryption method
A
570
¿Quién puede crear row-level access policies? A) Users con BigQuery Admin o BigQuery DataOwner roles B) Cualquiera C) Solo viewers D) Job users
A
571
¿Ejemplo de row access policy para filter por region? A) CREATE ROW ACCESS POLICY apac_filter ON table GRANT TO group FILTER USING (Region=“APAC”) B) Usar DELETE C) Sin GRANT D) Con allUsers
A
572
¿Cómo combinar multiple row access policies? A) En una sola policy con OR conditions B) No se puede combinar C) Usar separate tables D) Con encryption
A
573
¿Cuáles son limitaciones de row-level security? (Selecciona tres) A) Up to 100 policies por table B) No compatible con legacy SQL C) No participa en query pruning D) Compatible con JSON columns
"A
574
¿Cuáles son best practices para row-level security? (Selecciona tres) A) Avoid filters en clustered y partitioned columns B) Restrict user permissions para limit side-channel attacks C) Use only within organizations D) Usar Filtered Data Viewer sin caution
"A
575
¿Qué describe encryption by default en BigQuery? A) Data chunked y encrypted con DEKs, wrapped con KEKs, distributed B) No encryption por default C) Solo in transit D) User-managed solo
A
576
¿Características de Google-managed encryption? (Selecciona tres) A) DEK usa AES-256 B) Keys rotated automatically C) On-the-fly decryption sin performance impact D) User controls root keys
"A
577
¿Qué son customer-managed encryption keys (CMEK)? A) Keys created en Cloud KMS, specified por user, con rotation frequency B) Google controls all C) No rotation D) Solo para storage
A
578
¿Qué permiten AEAD encryption functions en BigQuery? A) Build crypto-shredding solutions con encrypt/decrypt en SQL B) Solo decryption C) No usar keys D) Para monitoring
A
579
¿Qué es Data Catalog en contexto de BigQuery security? A) Fully managed metadata service para data discovery y governance B) Un encryption tool C) Un pricing calculator D) Un monitoring dashboard
A
580
¿Cuáles son features de Data Catalog? (Selecciona tres) A) Unified view de datasets B) Data governance foundation con access controls y DLP integration C) Simplify data discovery D) Execute queries
"A
581
¿Qué hace Cloud DLP API? A) Scans data para detect sensitive info como emails, credit cards B) Solo encripta C) Monitors slots D) Sets prices
A
582
¿Cómo se usa DLP con BigQuery? A) Auto-tagging de PII data en Data Catalog B) Solo manual tagging C) No integration D) Para delete datasets
A
583
¿Qué son structured tags en Data Catalog? A) Enrich metadata con tags como data_ingestion, data governance B) Solo PII tags C) No se usan templates D) Para encryption
A
584
¿Cuáles son ACL controls en Data Catalog metadata? (Selecciona tres) A) Data Catalog viewer para discover y read metadata B) Tag template owner para create templates y tags C) Tag template user para use y view tags D) BigQuery Admin para all
"A
585
¿Cuáles son best practices para avoid access pitfalls en BigQuery? (Selecciona tres) A) Minimum permissions needed por role B) Separate projects o datasets para different environments C) Audit roles periodically D) Grant maximum access
"A
586
¿Qué principio de seguridad de Google Cloud establece que los usuarios y los procesos solo deben tener acceso a los recursos estrictamente necesarios para realizar sus tareas? A) Separación de deberes B) Confianza cero (Zero Trust) C) Principio de mínimo privilegio (least privilege) D) Defensa en profundidad (Defense in depth)
C
587
De acuerdo con el principio de separación de deberes, ¿cuál es la práctica recomendada en Google Cloud para evitar que una sola persona tenga un control excesivo sobre un sistema? A) Asignar el rol de 'Propietario' (Owner) a todos los desarrolladores B) Utilizar una única cuenta de servicio para todas las aplicaciones C) Usar múltiples proyectos para separar las responsabilidades y asignar diferentes roles en cada uno D) Almacenar todo el código y los datos en un único bucket de Cloud Storage
C
588
¿Cuál de las siguientes es una práctica recomendada al gestionar roles de IAM en Google Cloud para BigQuery? A) Asignar roles directamente a usuarios individuales en lugar de a grupos B) Utilizar siempre roles personalizados en lugar de los predefinidos C) Asignar los roles de 'Propietario' (Owner) y 'Editor' (Editor) de forma amplia para simplificar la gestión D) Conceder roles en el ámbito más pequeño necesario para seguir el principio de mínimo privilegio
D
589
Un analista de datos necesita ejecutar trabajos en BigQuery, incluyendo consultas, y crear nuevos conjuntos de datos, pero no debe tener acceso de lectura o escritura a los datos existentes por defecto. ¿Qué rol predefinido de BigQuery es el más adecuado para esta tarea? A) BigQuery Data Viewer B) BigQuery Job User C) BigQuery User D) BigQuery Data Editor
C
590
Si un usuario tiene el rol básico de 'Visualizador' (Viewer) a nivel de proyecto, ¿qué permiso obtiene automáticamente en cualquier nuevo conjunto de datos que se cree en ese proyecto? A) bigquery.dataOwner B) bigquery.dataEditor C) bigquery.dataViewer D) bigquery.user
C
591
¿Cuál es el propósito principal de una 'vista autorizada' (authorized view) en BigQuery? A) Permitir a los usuarios exportar datos de una vista directamente a Cloud Storage B) Permitir a los usuarios consultar una vista sin necesidad de tener permisos de lectura sobre las tablas subyacentes C) Crear una copia materializada de una tabla para mejorar el rendimiento de las consultas D) Otorgar permisos de escritura sobre un subconjunto de columnas de una tabla
B
592
Al implementar la seguridad a nivel de fila (row-level security) utilizando una vista autorizada, ¿qué función de BigQuery SQL se utiliza para identificar al usuario que está ejecutando la consulta? A) CURRENT_USER() B) SESSION_USER() C) LOGGED_IN_USER() D) QUERY_USER()
B
593
¿Cuál es el flujo de trabajo correcto para implementar la seguridad a nivel de columna (column-level security) en BigQuery? A) 1. Crear una vista autorizada, 2. Asignar roles de IAM a la vista, 3. Aplicar la vista a las columnas B) 1. Definir una taxonomía y etiquetas de política (policy tags) en Data Catalog, 2. Aplicar las etiquetas a las columnas de BigQuery, 3. Gestionar el acceso concediendo roles de IAM sobre las etiquetas C) 1. Escribir una política de acceso a filas, 2. Aplicarla a la tabla, 3. Conceder el rol 'Filtered Data Viewer' D) 1. Cifrar las columnas con claves CMEK, 2. Dar acceso a las claves solo a usuarios autorizados
B
594
Un usuario necesita poder ver los datos en columnas que han sido protegidas con etiquetas de política (policy tags) de Data Catalog. ¿Qué rol de IAM, además de los permisos de lectura de BigQuery, necesita este usuario? A) Data Catalog Policy Tag Admin B) Data Catalog Fine-Grained Reader C) BigQuery Admin D) Masked Reader
B
595
¿Qué es el 'enmascaramiento dinámico de datos' (dynamic data masking) en BigQuery? A) Una técnica que elimina permanentemente los datos sensibles de una tabla B) Un método para cifrar columnas enteras usando claves gestionadas por el cliente C) Una función que oculta datos sensibles a ciertos usuarios en tiempo de consulta, mostrando en su lugar una versión modificada (por ejemplo, un hash) D) Una política que impide por completo la ejecución de consultas que seleccionen columnas sensibles
C
596
¿Cómo se define una política de acceso a nivel de fila (row-level access policy) en BigQuery? A) Mediante la configuración de permisos en la consola de Google Cloud B) Utilizando una declaración DDL 'CREATE ROW ACCESS POLICY' C) Creando una etiqueta de política en Data Catalog D) Modificando el esquema de la tabla con un archivo JSON
B
597
¿En qué escenario es más recomendable utilizar tablas separadas en lugar de vistas autorizadas o políticas de acceso a nivel de fila para la seguridad de los datos? A) Cuando la flexibilidad y el rendimiento son lo más importante dentro del mismo grupo de trabajo B) Cuando es necesario proporcionar un aislamiento completo de los datos, por ejemplo, al compartirlos con socios externos a la organización C) Cuando todos los usuarios deben consultar la misma tabla pero con acceso a diferentes filas D) Cuando se quiere implementar seguridad a nivel de columna
B
598
¿Cómo gestiona BigQuery el cifrado de los datos en reposo (at rest) por defecto? A) Los datos no se cifran por defecto; el usuario debe configurar el cifrado B) Los datos se cifran utilizando claves proporcionadas por el usuario en cada carga C) Los datos se cifran automáticamente usando AES-256, con claves gestionadas por Google D) El cifrado por defecto utiliza un algoritmo de hashing SHA-256 en lugar de cifrado simétrico
C
599
¿Para qué se utiliza la API de Cloud Data Loss Prevention (DLP) en conjunto con BigQuery? A) Para optimizar el rendimiento de las consultas y reducir los costes de análisis B) Para descubrir, clasificar y, opcionalmente, redactar o enmascarar datos sensibles (PII) almacenados en las tablas C) Para gestionar las claves de cifrado utilizadas para proteger los datos en reposo D) Para auditar los registros de acceso a los datos y generar alertas de seguridad
B
600
¿Qué herramienta de Google Cloud se utiliza para crear un catálogo de metadatos centralizado y aplicar etiquetas estructuradas (tags) a los activos de datos de BigQuery? A) Cloud Logging B) Cloud Monitoring C) Data Catalog D) BigQuery Admin Panel
C
601
602
¿Cuál es el principal problema de rendimiento cuando un dashboard se alimenta directamente de vistas (stored query) en lugar de tablas? A) Los datos quedan obsoletos inmediatamente B) El dashboard puede ser lento porque ejecuta la consulta SQL completa cada vez C) No es posible programar actualizaciones automáticas D) Las vistas no son compatibles con herramientas de BI
B
603
¿Qué solución recomienda BigQuery para balancear frescura de datos y rendimiento en dashboards? A) Usar exclusivamente vistas SQL para garantizar datos frescos B) Crear tablas permanentes sin actualizaciones automáticas C) Crear tablas de reportes que se actualicen automáticamente a intervalos regulares D) Eliminar el uso de SQL y usar solo datos en tiempo real
C
604
En BigQuery, ¿qué funcionalidad permite automatizar la ejecución de consultas basadas en una programación temporal? A) Materialized views B) Scheduled queries C) Temporary tables D) Persistent functions
B
605
¿Cuál de los siguientes ejemplos de consultas programadas es correcto según el documento? A) Consulta de archivo mensual que se ejecuta a las 4 AM cada mes B) Consulta que se ejecuta solo una vez al año C) Consulta que requiere intervención manual cada vez D) Consulta que solo funciona en modo interactivo
A
606
¿Qué comando se utiliza para crear una consulta programada desde la línea de comandos en BigQuery? A) bq schedule B) bq query con el parámetro --schedule C) bq create --scheduled_query D) bq run --timer
B
607
En la parametrización de consultas programadas, ¿qué representa el parámetro run_time? A) La hora local del usuario B) La hora UTC de ejecución de la consulta C) La hora de creación de la tabla de destino D) La hora de finalización del trabajo
B
608
Si una consulta programada se ejecuta el 2018-02-15 00:00:00 y usa el parámetro mytable_{run_time|"%Y%m%d"}, ¿cuál será el nombre de la tabla de destino? A) mytable B) mytable_20180215 C) mytable_2018-02-15 D) mytable_15022018
B
609
¿Qué resultado produce el parámetro mytable_{run_time+25h|"%Y%m%d"} si run_time es 2018-02-15 00:00:00? A) mytable_20180215 B) mytable_20180216 C) mytable_20180214 D) mytable_20180217
B
610
¿Qué beneficio principal aportan las consultas programadas al rendimiento de herramientas de BI? A) Eliminan la necesidad de BigQuery B) Permiten visualizar datos precalculados en tablas actualizadas periódicamente C) Reducen el costo de almacenamiento a cero D) Convierten todas las consultas en tiempo real
B
611
¿Qué es una función definida por el usuario (UDF) en BigQuery? A) Una función nativa de BigQuery que no se puede modificar B) Una función creada por el usuario mediante expresiones SQL o código JavaScript C) Un procedimiento almacenado que solo acepta parámetros de entrada D) Una vista materializada con lógica personalizada
B
612
¿Cuáles son los dos tipos de UDF según su persistencia en BigQuery? (Selecciona dos) A) Temporary B) Persistent C) Permanent D) Dynamic
A y B
613
¿Qué sentencia se utiliza para crear una UDF temporal en BigQuery? A) CREATE FUNCTION B) CREATE TEMP FUNCTION C) CREATE TEMPORARY UDF D) DEFINE FUNCTION
B
614
¿Cuándo expira una UDF temporal en BigQuery? A) Después de 24 horas B) Al finalizar la sesión del usuario C) Tan pronto como la consulta termina D) Después de 7 días sin uso
C
615
Para crear una UDF persistente llamada AddFourAndDivide en el dataset demo, ¿qué sintaxis es correcta? A) CREATE FUNCTION AddFourAndDivide(x INT64, y INT64) B) CREATE FUNCTION demo.AddFourAndDivide(x INT64, y INT64) C) CREATE TEMP FUNCTION demo.AddFourAndDivide(x INT64, y INT64) D) DEFINE FUNCTION demo.AddFourAndDivide(x INT64, y INT64)
B
616
¿Dónde comparte BigQuery un repositorio público de funciones definidas por el usuario comunes? A) En Google Drive B) En BigQuery Studio C) En GitHub (bigquery-utils) D) En Cloud Storage
C
617
¿Qué palabra clave se usa para especificar que una UDF está escrita en JavaScript? A) LANGUAGE js B) TYPE javascript C) JAVASCRIPT CODE D) AS JS
A
618
En una UDF de JavaScript, ¿cómo se delimita el código JavaScript? A) Entre comillas simples B) Entre comillas dobles C) Usando r"" al inicio y "" al final D) Sin delimitadores especiales
C
619
¿Qué es un procedimiento almacenado (stored procedure) en BigQuery? A) Una función que solo devuelve un valor B) Una colección de sentencias que puede ser llamada desde otras consultas o procedimientos C) Una vista materializada con parámetros D) Un tipo especial de UDF que no acepta argumentos
B
620
¿Qué ventaja ofrecen los procedimientos almacenados en BigQuery? A) Solo permiten ejecutar una única sentencia SQL B) Soportan sentencias de lenguaje procedimental como definición de variables y control de flujo C) No pueden aceptar argumentos de entrada D) Reemplazan completamente a las UDFs
B
621
¿Qué sentencia se utiliza para crear un procedimiento almacenado en BigQuery? A) DEFINE PROCEDURE B) CREATE STORED PROCEDURE C) CREATE PROCEDURE D) NEW PROCEDURE
C
622
En la sintaxis de un procedimiento almacenado, ¿entre qué palabras clave se coloca el cuerpo del procedimiento? A) START y STOP B) BEGIN y END C) OPEN y CLOSE D) INIT y FINISH
B
623
¿Qué sentencia se usa para ejecutar un procedimiento almacenado en BigQuery? A) RUN B) EXECUTE C) CALL D) INVOKE
C
624
En el ejemplo CREATE OR REPLACE PROCEDURE Scheduling_demo.test(), ¿qué hace este procedimiento? A) Elimina una tabla B) Devuelve el texto "Hello World!" C) Crea una nueva base de datos D) Programa una consulta
B
625
¿Cuál es la diferencia entre test() y test2(name STRING) en los ejemplos de procedimientos almacenados? A) test2 acepta un parámetro de entrada de tipo STRING B) test() es persistente y test2() es temporal C) test2() solo funciona en JavaScript D) No hay diferencias significativas
A
626
En el procedimiento retail.add_new_name, ¿qué hace la cláusula IF EXISTS? A) Crea una nueva tabla si no existe B) Verifica si un nombre ya está en la base de datos antes de insertarlo C) Elimina registros duplicados D) Actualiza todos los registros existentes
B
627
¿Cuál es la función del procedimiento del sistema BQ.JOBS.CANCEL? A) Cancela todas las consultas programadas B) Cancela un trabajo en ejecución especificando su job_id C) Detiene la facturación de BigQuery D) Elimina un dataset completo
B
628
¿Qué hace el procedimiento del sistema BQ.REFRESH_MATERIALIZED_VIEW? A) Crea una nueva vista materializada B) Elimina una vista materializada C) Actualiza (refresca) una vista materializada D) Convierte una vista normal en materializada
C
629
Al usar BQ.JOBS.CANCEL, ¿qué restricción importante debe cumplirse? A) Solo puede cancelar consultas programadas B) Debe ejecutarse en la misma región que el trabajo a cancelar C) Requiere permisos de administrador de proyecto D) Solo funciona en horario laboral
B
630
Según el documento, ¿cuáles son tres herramientas de Google Cloud para ETL? (Selecciona tres) A) Dataproc B) Dataflow C) Cloud Data Fusion D) Cloud Run
A, B y C
631
¿Qué significa ETL en el contexto de procesamiento de datos? A) Execute, Test, Load B) Extract, Transform, and Load C) Evaluate, Transfer, Log D) Export, Translate, Link
B
632
¿Qué es Dataproc? A) Un servicio de almacenamiento de datos B) Un servicio administrado para procesamiento por lotes, consultas, streaming y ML C) Una herramienta de visualización de datos D) Un sistema de gestión de bases de datos relacionales
B
633
¿Cuáles son características clave de Dataproc? (Selecciona tres) A) Totalmente administrado B) Ecosistema de código abierto C) Rápido y escalable D) Requiere instalación manual
A, B y C
634
¿Qué ventaja tiene Dataproc en términos de costos? A) Es completamente gratuito B) Es cost effective (eficiente en costos) C) Solo se paga una tarifa fija mensual D) No tiene costos de almacenamiento
B
635
¿Para qué se utiliza Dataflow principalmente? A) Para almacenar datos en frío B) Para preparar y filtrar datos antes de escribirlos en BigQuery C) Para crear visualizaciones de datos D) Para gestionar usuarios y permisos
B
636
¿Cuáles son las dos implementaciones de runners en Dataflow? (Selecciona dos) A) Batch B) Streaming C) Hybrid D) Realtime
A y B
637
¿Qué característica distingue al runner Batch de Dataflow? A) Soporta fuentes ilimitadas (unbounded) B) Se ejecuta indefinidamente hasta ser cancelado C) Solo soporta fuentes/destinos delimitados (bounded) y finaliza cuando el pipeline termina D) Tiene baja latencia de registros
C
638
¿Qué característica distingue al runner Streaming de Dataflow? A) Soporta solo fuentes delimitadas B) Se ejecuta indefinidamente y necesita ser cancelado manualmente C) Finaliza automáticamente cuando termina el pipeline D) Solo procesa miles de elementos
B
639
¿Cuáles son fuentes de datos válidas para Dataflow? (Selecciona tres) A) Cloud Storage B) Cloud Bigtable C) BigQuery D) Gmail
A, B y C
640
¿Cuáles son destinos (sinks) válidos para Dataflow? (Selecciona tres) A) Cloud Storage B) BigQuery C) Pub/Sub D) Cloud Functions
A, B y C
641
¿Qué herramienta permite construir y gestionar pipelines de datos rápidamente con una interfaz visual? A) Dataproc B) Dataflow C) Cloud Data Fusion D) Cloud Composer
C
642
¿Qué tecnología de código abierto está detrás de Cloud Composer? A) Apache Spark B) Apache Hadoop C) Apache Airflow D) Apache Kafka
C
643
¿Para qué se utiliza Cloud Composer principalmente? A) Para crear funciones JavaScript B) Para orquestar flujos de trabajo de producción C) Para almacenar objetos grandes D) Para ejecutar consultas SQL
B
644
¿Cuáles son características clave de Cloud Composer? (Selecciona tres) A) Híbrido y multi-cloud B) Código abierto (open source) C) Orquestación sencilla D) Solo funciona en una región
A, B y C
645
En una arquitectura de datos típica en Google Cloud, ¿qué rol cumple Pub/Sub? A) Almacenamiento de data lake B) Procesamiento de datos en streaming C) Data warehouse D) Entrenamiento de modelos ML
B
646
En una arquitectura de datos, ¿qué herramienta se usa como data warehouse? A) Cloud Storage B) Cloud Bigtable C) BigQuery D) Dataproc
C
647
¿Qué herramienta se recomienda para nuevos pipelines de procesamiento de datos unificados (batch y streaming)? A) Dataproc B) Dataflow C) Cloud Data Fusion D) BigQuery
B
648
¿Para qué tipo de aplicaciones se recomienda Dataproc? (Selecciona dos) A) Aplicaciones existentes de Hadoop/Spark B) Trabajos de batch grandes con VMs preemptibles C) Desarrollo sin código D) Solo streaming en tiempo real
A y B
649
¿Qué nivel de experiencia requiere Dataflow? A) Hadoop y Hive B) Apache Beam C) Apache Airflow D) Spark y Flink
B
650
¿Dataproc es un servicio totalmente administrado? A) Sí, completamente administrado B) No, requiere gestión manual de clústeres C) Solo en la versión Enterprise D) Depende de la región
B
651
¿Qué interfaces soporta Dataproc? (Selecciona tres) A) Google Cloud SDK B) Google Cloud console C) SSH D) Solo API REST
A, B y C
652
¿Dataproc soporta autoescalado? A) No, requiere configuración manual de nodos B) Sí, soporta autoescalado C) Solo en modo batch D) Solo con Spark
B
653
¿Para qué se recomienda Cloud Dataprep? A) Para procesamiento de datos en tiempo real B) Para limpieza y preparación de datos (data wrangling) C) Para orquestación de workflows D) Para almacenamiento de objetos
B
654
¿Qué tipo de interfaz ofrece Cloud Dataprep? A) Solo línea de comandos B) API REST únicamente C) Interfaz visual punto y clic sin código D) Requiere escribir código en Python
C
655
¿Qué backend de procesamiento puede usar Cloud Dataprep? (Selecciona dos) A) Dataflow B) Dataproc C) BigQuery D) Cloud Functions
A y B
656
¿Para qué casos de uso se recomienda Cloud Data Fusion? A) Solo para análisis de logs B) Para desarrollo visual de pipelines ETL sin código mediante interfaz point-and-click C) Para consultas SQL simples D) Solo para datos no estructurados
B
657
¿Qué tipo de datos puede preparar Cloud Dataprep? A) Solo datos estructurados B) Solo datos no estructurados C) Datos estructurados y no estructurados D) Solo archivos CSV
C
658
En el flujo conceptual de datos de Google Cloud, ¿qué herramientas se usan para batch transfer? (Selecciona tres) A) Transfer Service B) gsutil C) Transfer Appliance D) Dataflow
A, B y C
659
¿Qué herramienta de Google Cloud se usa para notebooks en exploración de datos y ML? A) Cloud Shell B) Notebooks (como Jupyter) C) Cloud Code D) Cloud Functions
B
660
Para el entrenamiento de modelos de ML, ¿qué servicio de Google Cloud se menciona en el documento? A) AutoML B) Vertex AI C) AI Platform Legacy D) TensorFlow Enterprise
B
661
¿Dónde se almacenan los datos refinados y archivos de entrenamiento de ML en la arquitectura mostrada? A) BigQuery B) Cloud SQL C) Cloud Storage D) Cloud Bigtable
C
662
¿Qué herramienta se usa para el procesamiento de streams en la arquitectura de datos de Google Cloud? A) Cloud Composer B) Dataflow C) Transfer Service D) Dataprep
B
663
¿Qué servicio se menciona como almacén en tiempo real (real-time store) en la arquitectura? A) BigQuery B) Cloud Storage C) Cloud Bigtable D) Cloud SQL
C
664
Además de Cloud Bigtable, ¿qué otro servicio se menciona como data store transaccional? A) Firestore B) Spanner C) Cloud SQL D) Datastore
B
665
¿Qué servicio de visualización de datos de Google Cloud se menciona al final del documento? A) Data Studio (Looker Studio) B) Looker C) Tableau D) Power BI
B
666
¿Qué herramienta de Google Cloud permite integración con hojas de cálculo para análisis de datos? A) Google Docs B) Google Sheets C) Google Forms D) Google Slides
B
667
¿Cuál es el propósito del parámetro @run_time en consultas programadas? A) Especificar la zona horaria local B) Permitir la parametrización basada en el tiempo de ejecución de la consulta C) Definir cuánto tiempo debe ejecutarse una consulta D) Establecer timeouts para consultas largas
B
668
¿Qué parámetro de bq query se usa para especificar la tabla de destino? A) --output_table B) --destination_table C) --target_table D) --result_table
B
669
¿Qué parámetro indica que se debe usar SQL estándar y no SQL heredado (legacy)? A) --standard_sql=true B) --use_legacy_sql=false C) --new_sql=true D) --sql_version=standard
B
670
En la sintaxis de bq mk --transfer_config, ¿qué parámetro especifica la fuente de datos? A) --source=scheduled_query B) --data_source=scheduled_query C) --query_source=scheduled D) --type=scheduled_query
B
671
¿Qué valor de write_disposition se usa para sobrescribir la tabla de destino completamente? A) WRITE_APPEND B) WRITE_EMPTY C) WRITE_TRUNCATE D) WRITE_REPLACE
C
672
¿Cómo se elimina una UDF persistente en BigQuery? A) Usando DELETE FUNCTION B) Usando DROP FUNCTION C) Usando REMOVE FUNCTION D) Se elimina automáticamente después de 30 días
B
673
¿Es posible usar DROP FUNCTION para UDFs temporales? A) Sí, siempre B) Sí, pero solo en consultas multi-sentencia y procedimientos C) No, nunca D) Solo con permisos especiales
B
674
En una UDF SQL, ¿qué palabra clave se usa para especificar el tipo de dato que retorna? A) OUTPUT B) RETURNS C) RESULT D) TYPE
B
675
¿Qué función SQL se usa en el ejemplo de procedimiento para formatear cadenas con parámetros? A) STRING_FORMAT B) CONCAT C) FORMAT D) SPRINTF
C
676
En el procedimiento add_new_name, ¿qué cláusula SQL se usa para verificar la existencia de un registro? A) CHECK EXISTS B) IF EXISTS C) WHERE EXISTS D) VALIDATE EXISTS
B
677
¿Qué sentencia SQL se usa dentro del procedimiento add_new_name para agregar un nuevo registro? A) ADD B) CREATE C) INSERT D) APPEND
C
678
¿Qué estructura de control se usa en el procedimiento add_new_name para decisiones condicionales? A) CASE WHEN B) IF...THEN...ELSE C) SWITCH D) TRY...CATCH
B
679
¿Qué formato de especificación se usa para el job_id al llamar BQ.JOBS.CANCEL? A) [region.]job_id B) [project_id.]job_id C) [dataset.]job_id D) job_id únicamente
B
680
¿Qué formato se usa para especificar una vista materializada en BQ.REFRESH_MATERIALIZED_VIEW? A) [project_id.]dataset.table B) [dataset.]table C) project_id.table D) Solo el nombre de la tabla
A
681
¿Cuántos temas principales cubre el módulo M10 sobre Automating Workloads? A) 2 B) 3 C) 4 D) 5
C
682
¿Cuál NO es uno de los temas principales del módulo M10? A) Scheduling Queries B) Scripting in BigQuery C) Stored Procedures D) Machine Learning Models
D
683
¿Cuál es el título principal del módulo tratado en el documento? A) Automating Data B) Automating Workloads C) Automating Queries D) Automating Procedures
B
684
¿Cuáles son los cuatro temas principales cubiertos en el documento? (Selecciona cuatro) A) Scheduling Queries B) Scripting in BigQuery C) Stored Procedures D) Integration with Big Data Products E) Data Visualization
A
685
¿Cuál es un problema común mencionado relacionado con los dashboards en BigQuery? A) Los dashboards no se cargan en absoluto B) Los dashboards tardan demasiado en cargar C) Los dashboards muestran datos incorrectos D) Los dashboards no se pueden compartir
B
686
¿De dónde puede extraer datos un dashboard según el documento? A) Solo de tablas almacenadas B) Solo de vistas almacenadas C) De tablas (datos almacenados) versus vistas (consultas almacenadas) D) Solo de procedimientos almacenados
C
687
¿Qué describe el espectro de frescura de datos en el contexto de dashboards? A) De datos frescos pero intensivos en rendimiento a datos obsoletos pero rápidos de visualizar B) De datos obsoletos pero rápidos de visualizar a datos frescos pero intensivos en rendimiento C) Solo datos frescos D) Solo datos obsoletos
B
688
¿Cuál es una solución común para mejorar el rendimiento de los dashboards según el documento? A) Eliminar las tablas de informes B) Crear tablas de informes que se actualicen automáticamente en intervalos regulares C) Usar solo vistas SQL sin tablas D) Evitar el uso de consultas programadas
B
689
¿Qué permite BigQuery para automatizar la ejecución de consultas y guardar resultados en una tabla? A) Vistas programadas B) Consultas programadas C) Procedimientos programados D) Funciones programadas
B
690
¿Cómo se describe la automatización de consultas en BigQuery? A) Ejecución manual basada en un horario B) Ejecución automática basada en un horario C) Solo ejecución única D) Ejecución basada en eventos externos
B
691
¿Es posible tener múltiples consultas programadas guardadas en BigQuery? A) No, solo una por proyecto B) Sí, como consultas diarias, semanales y mensuales C) Solo si son del mismo tipo D) No, limita a dos
B
692
¿Qué opciones se mencionan para crear consultas programadas en BigQuery? A) Solo mediante CLI B) Solo mediante API C) Mediante UI y CLI D) Solo mediante scripts
C
693
¿Cuál es un ejemplo de comando CLI para crear una consulta programada en BigQuery? A) bq query con flags como --schedule B) gcloud query C) gsutil query D) kubectl query
A
694
¿Qué parámetro se usa en consultas programadas para parametrización basada en tiempo? A) @run_date B) @run_time C) @exec_time D) @schedule_time
B
695
¿Cómo se puede templar el nombre de la tabla de destino en consultas programadas? A) Usando {run_time|"%Y%m%d"} B) Usando [run_time] C) Usando run_time sin formato D) No es posible
A
696
¿Qué beneficio proporcionan las consultas programadas para herramientas de BI? A) Reducen el costo de almacenamiento B) Mejoran el rendimiento de BI al usar tablas precalculadas C) Aumentan la complejidad de las consultas D) Eliminan la necesidad de visualización
B
697
¿Qué se menciona sobre el parámetro @run_time en las demos de programación? A) Se usa para fechas locales B) Es en UTC y se puede ajustar con offsets como +25h C) Solo para horas D) No soporta formatos
B
698
¿Qué soporta BigQuery para transformaciones personalizadas? A) Solo funciones definidas por el usuario en SQL B) Funciones definidas por el usuario en SQL, JavaScript y scripting C) Solo en JavaScript D) Ninguna, solo consultas estándar
B
699
¿Qué es una función definida por el usuario (UDF) en BigQuery? A) Una función que crea tablas automáticamente B) Una función creada con expresión SQL o código JavaScript que acepta entradas y retorna valores C) Una función solo para procedimientos D) Una función para programar consultas
B
700
¿Cuáles son los tipos de UDFs en BigQuery? A) Temporales y persistentes B) Públicas y privadas C) Simples y complejas D) Batch y streaming
A
701
¿Cómo se crea una UDF temporal en SQL? A) Usando CREATE FUNCTION sin TEMP B) Usando CREATE TEMP FUNCTION C) Usando DEFINE FUNCTION D) Usando ALTER FUNCTION
B
702
¿Cómo se crea una UDF persistente en SQL? A) Usando CREATE TEMP FUNCTION B) Usando CREATE FUNCTION C) Usando DROP FUNCTION D) Usando CALL FUNCTION
B
703
¿Dónde se menciona un repositorio público para UDFs comunes en BigQuery? A) En GitHub de Microsoft B) En GitHub del equipo de BigQuery: https://github.com/GoogleCloudPlatform/bigquery-utils/tree/master/udfs/community C) En Bitbucket D) No se menciona
B
704
¿Qué lenguaje se usa en el ejemplo de UDF temporal para multiplicar entradas? A) SQL B) Python C) JavaScript D) Java
C
705
¿Qué es un procedimiento almacenado en BigQuery? A) Una sola consulta que se ejecuta automáticamente B) Una colección de statements que se puede llamar desde otras consultas o procedimientos, con argumentos de entrada y salida C) Una función sin argumentos D) Una vista materializada
B
706
¿Cómo se crea un procedimiento almacenado en BigQuery? A) Usando CREATE PROCEDURE, con cuerpo entre BEGIN y END B) Usando DEFINE PROCEDURE C) Usando ALTER PROCEDURE D) Usando DROP PROCEDURE
A
707
¿Cómo se ejecuta un procedimiento almacenado? A) Usando RUN PROCEDURE B) Usando CALL procedure_name C) Usando EXECUTE PROCEDURE D) Usando START PROCEDURE
B
708
¿Qué muestra el ejemplo 1 de procedimiento almacenado? A) Un procedimiento con parámetro B) Un procedimiento simple que selecciona 'Hello World!' C) Un procedimiento con IF D) Un procedimiento sistema
B
709
¿Qué hace el ejemplo 2 de procedimiento almacenado? A) Agrega un nombre nuevo si no existe B) Formatea 'Hello %s!' con un nombre como parámetro C) Cancela un job D) Refresca una vista
B
710
¿Qué lógica condicional se usa en el ejemplo 3 de procedimiento almacenado? A) WHILE B) FOR C) IF EXISTS THEN ELSE D) CASE
C
711
¿Cuáles son ejemplos de procedimientos de sistema en BigQuery? (Selecciona dos) A) BQ.JOBS.CANCEL B) BQ.REFRESH_MATERIALIZED_VIEW C) BQ.CREATE_TABLE D) BQ.DROP_DATABASE
A
712
¿Qué hace BQ.JOBS.CANCEL? A) Refresca una vista materializada B) Cancela un job en ejecución, especificando el job_id C) Crea un nuevo job D) Lista jobs
B
713
¿Qué especifica BQ.REFRESH_MATERIALIZED_VIEW? A) Un job_id B) Un materialized view como '[project_id.]dataset.table' C) Una consulta programada D) Un procedimiento
B
714
¿Cuáles son algunos productos de Google Cloud para ETL mencionados? (Selecciona tres) A) Google Sheets B) Dataproc C) Cloud Composer D) Vertex AI E) Looker
A
715
¿Qué componentes incluye el flujo de datos en Google Cloud? A) Solo data warehousing B) Data ingestion at any scale, data transformation and streaming pipelines, data warehousing and data lake, advanced analytics C) Solo ML D) Solo visualización
B
716
¿Qué significa ETL en el contexto de procesamiento de datos? A) Extract, Transform, Load B) Execute, Test, Launch C) Explore, Train, Learn D) Encrypt, Transmit, Load
A
717
¿Cuáles son las herramientas mencionadas para procesamiento de datos cuando los datos no son usables en su forma original? (Selecciona tres) A) Dataproc B) Dataflow C) Cloud Data Fusion D) BigQuery E) Pub/Sub
A
718
¿Cuáles son características clave de Dataproc? (Selecciona tres) A) Integrated, Versioning, Fully managed B) Cost effective, Open source ecosystem, Fast and scalable C) Solo batch D) No autoscaling E) Propietary
A
719
¿Qué permite Dataflow en relación con BigQuery? A) Preparar y filtrar datos antes de escribir en BigQuery B) Solo leer de BigQuery C) Eliminar datos de BigQuery D) No integra con BigQuery
A
720
¿Cuáles son los dos tipos de runners en Dataflow? A) Batch y Streaming B) Local y Cloud C) SQL y JS D) Temp y Persistent
A
721
¿Cuáles son ejemplos de sources para Dataflow? (Selecciona tres) A) Cloud Storage B) Cloud Bigtable C) BigQuery D) Vertex AI E) Looker
A
722
¿Cuáles son ejemplos de sinks para Dataflow? (Selecciona tres) A) Cloud Storage B) Datastore C) Firestore D) Dataproc E) Composer
A
723
¿Qué es Cloud Data Fusion? A) Una herramienta para orquestación B) Una herramienta para construir y gestionar pipelines de datos rápidamente C) Una base de datos D) Un servicio de ML
B
724
¿Qué es Cloud Composer? A) Un servicio gestionado de Apache Airflow para orquestar workflows de producción B) Un editor de código C) Un almacén de datos D) Un visualizador
A
725
¿Cuáles son características clave de Cloud Composer? (Selecciona tres) A) Hybrid and multi-cloud B) Open source C) Easy orchestration D) Fully proprietary E) No support for Airflow
A
726
¿Qué incluye el concepto review en el documento? (Selecciona tres) A) Data sources B) Data lake C) Data pipelines D) Data visualization E) Data encryption
A
727
¿Para qué se recomienda Dataflow en las opciones de procesamiento de Google Cloud? A) Nuevos pipelines de procesamiento de datos, batch unificado y streaming B) Solo aplicaciones existentes de Hadoop/Spark C) Solo wrangling de datos D) Solo interfaces visuales
A
728
¿Para qué se recomienda Dataproc? A) Aplicaciones existentes de Hadoop/Spark, ecosistema de ML/data science, jobs batch grandes, VMs preemptibles B) Solo pipelines nuevos C) Solo streaming video D) No para ML
A
729
¿Cuáles son diferencias entre Dataflow y Dataproc? (Selecciona dos) A) Dataflow es fully managed: Yes; Dataproc: No B) Expertise: Apache Beam para Dataflow; Hadoop, Spark para Dataproc C) Ambos tienen autoscaling: No D) Interface igual para ambos
A
730
¿Para qué se recomienda Cloud Dataprep? A) Data wrangling and preparation B) Procesamiento de pipelines nuevos C) Análisis avanzado D) ML training
A
731
¿Para qué se recomienda Cloud Data Fusion? A) Nuevos pipelines de procesamiento de datos con interfaz visual point-and-click B) Solo cleaning de datos C) Solo batch D) No managed
A
732
¿El documento cubre integración con productos como Pub/Sub, Cloud Bigtable y Cloud Storage? A) No B) Sí, en el contexto de data sources y sinks C) Solo Pub/Sub D) Solo Storage
B
733
Un analista de datos se queja de que su panel de control (dashboard), que se conecta directamente a un conjunto de vistas (Views) de BigQuery, tarda demasiado en cargarse. ¿Cuál es la causa más probable de este bajo rendimiento? A) Las vistas (Views) almacenan datos obsoletos que ralentizan la carga. B) Las tablas subyacentes están mal indexadas, lo que afecta el rendimiento de las vistas. C) Las vistas (Views) son consultas almacenadas que se ejecutan cada vez que se carga el panel, procesando los datos sin procesar en tiempo real. D) El problema reside en la herramienta de BI, no en BigQuery, ya que las vistas siempre son más rápidas que las tablas.
C
734
¿Cuál es la solución más eficaz en BigQuery para resolver el problema de un panel de control lento que utiliza vistas (Views) sobre datos sin procesar, equilibrando el rendimiento y la frescura de los datos? A) Migrar todos los datos a una base de datos diferente que sea más rápida para la visualización. B) Crear tablas de informes permanentes que precalculen los campos y actualizarlas periódicamente mediante consultas programadas (scheduled queries). C) Aumentar la cantidad de slots de BigQuery asignados a la herramienta de BI para que las consultas de las vistas se ejecuten más rápido. D) Utilizar exclusivamente vistas materializadas, ya que no requieren ninguna actualización manual o programada.
B
735
En el contexto de la optimización de paneles de control en BigQuery, ¿cuál es la principal desventaja de usar tablas pre-calculadas en comparación con el uso de vistas (Views) directamente sobre los datos brutos? A) Las tablas son más costosas de almacenar que las vistas. B) Las tablas pueden contener datos obsoletos (stale) si no se actualizan con la frecuencia necesaria. C) Las tablas son significativamente más lentas de consultar que las vistas. D) Las tablas no se pueden consultar con herramientas de BI estándar.
B
736
¿Qué funcionalidad de BigQuery permite ejecutar automáticamente una consulta SQL en un horario definido y guardar los resultados en una tabla? A) Vistas Materializadas (Materialized Views) B) Funciones Definidas por el Usuario (UDFs) C) Consultas Programadas (Scheduled Queries) D) BigQuery Transfer Service
C
737
Al configurar una nueva consulta programada en la interfaz de usuario de BigQuery, ¿cuáles de las siguientes opciones son obligatorias para guardar la configuración? (Selecciona dos) A) Una tabla de destino para los resultados. B) Una frecuencia de repetición (por ejemplo, diaria, semanal). C) La configuración de notificaciones por correo electrónico. D) Una hora de finalización para la programación.
A y B
738
Un equipo de análisis necesita generar un informe agregado de ventas que debe estar disponible todos los lunes a las 9 AM. El informe se basa en una consulta compleja que consume muchos recursos. ¿Qué enfoque deberían adoptar en BigQuery para automatizar este proceso de manera eficiente? A) Ejecutar la consulta manualmente cada lunes por la mañana. B) Crear una vista (View) y pedir a los usuarios que la consulten los lunes. C) Configurar una consulta programada (Scheduled Query) para que se ejecute semanalmente los lunes por la mañana y guarde los resultados en una tabla. D) Crear un procedimiento almacenado (Stored Procedure) que envíe los resultados por correo electrónico.
C
739
Al configurar el destino de una consulta programada, ¿qué significa la opción 'Overwrite table' (Sobrescribir tabla)? A) Añade los nuevos resultados al final de la tabla de destino. B) Reemplaza completamente los datos existentes en la tabla de destino con los nuevos resultados de la consulta cada vez que se ejecuta. C) Crea una nueva tabla con un sufijo de fecha y hora cada vez que se ejecuta la consulta. D) Archiva la tabla existente y crea una nueva con el mismo nombre.
B
740
¿Qué permite la parametrización en las consultas programadas de BigQuery, utilizando variables como @run_time? A) Permite que los usuarios introduzcan valores diferentes cada vez que se ejecuta la consulta manualmente. B) Permite ejecutar la misma consulta en diferentes proyectos de Google Cloud sin cambiar el código. C) Permite crear dinámicamente nombres de tablas de destino o filtrar datos basándose en la fecha y hora de ejecución de la consulta. D) Permite ajustar automáticamente los recursos de cómputo (slots) asignados a la consulta.
C
741
¿Cuál de las siguientes plantillas de parámetros crearía una tabla de destino con el formato mytable_YYYYMMDD (por ejemplo, mytable_20180215) para una consulta que se ejecuta el 15 de febrero de 2018? A) mytable_{run_time} B) mytable_{@run_time|"%Y-%m-%d"} C) mytable_{run_time|"%Y%m%d"} D) mytable_{run_date}
C
742
¿Cuál es el principal beneficio de utilizar consultas programadas para materializar datos que alimentan herramientas de Business Intelligence (BI) como Looker, Tableau o Power BI? A) Mejora drásticamente el rendimiento y la velocidad de carga de los paneles de control, ya que consultan datos pre-agregados en lugar de ejecutar consultas complejas sobre la marcha. B) Reduce los costos de almacenamiento en BigQuery al comprimir los datos de manera más eficiente. C) Garantiza que los paneles de control siempre muestren datos en tiempo real con una latencia de milisegundos. D) Elimina la necesidad de credenciales de seguridad para acceder a los datos desde la herramienta de BI.
A
743
¿Qué es una Función Definida por el Usuario (UDF) en BigQuery? A) Una consulta predefinida que se puede ejecutar con un solo comando. B) Una función, creada con una expresión SQL o código JavaScript, que acepta columnas como entrada, realiza acciones y devuelve un resultado como valor. C) Un conector integrado para importar datos desde servicios de terceros. D) Un tipo de tabla optimizada para análisis de series temporales.
B
744
¿Cuál es la diferencia fundamental entre una UDF temporal (Temporary) y una UDF persistente (Persistent) en BigQuery? A) Las UDFs temporales solo se pueden escribir en SQL, mientras que las persistentes solo se pueden escribir en JavaScript. B) Una UDF temporal existe solo durante la ejecución de una única consulta o script, mientras que una UDF persistente se almacena en un conjunto de datos y puede ser reutilizada en múltiples consultas por usuarios con los permisos adecuados. C) Las UDFs temporales no pueden aceptar argumentos, mientras que las persistentes sí. D) Las UDFs temporales son gratuitas, pero las persistentes incurren en un costo de almacenamiento adicional.
B
745
¿Qué palabra clave se utiliza en la sentencia CREATE FUNCTION para definir una UDF que solo existirá durante la ejecución de la consulta actual? A) VOLATILE B) SINGLE_USE C) TEMP D) LOCAL
C
746
¿Cómo se invoca o llama a una UDF persistente llamada mi_funcion que está guardada en el conjunto de datos mi_dataset? A) CALL mi_funcion(argumento1) B) mi_dataset.mi_funcion(argumento1) C) EXECUTE mi_funcion(argumento1) D) RUN mi_dataset.mi_funcion(argumento1)
B
747
Según la documentación, ¿qué tipo de datos de JavaScript corresponde al tipo de datos NUMERIC o BIGNUMERIC de BigQuery cuando el valor no puede ser representado exactamente como un número de punto flotante IEEE 754? A) Number B) BigInt C) String D) Object
C
748
¿Qué es un procedimiento almacenado (Stored Procedure) en BigQuery? A) Una vista que almacena los resultados de una consulta para un acceso más rápido. B) Un disparador (trigger) que se ejecuta automáticamente cuando los datos de una tabla cambian. C) Una colección de sentencias SQL, que puede incluir definición de variables y control de flujo, que se puede llamar desde otras consultas. D) Un script de JavaScript que se ejecuta en el lado del cliente para transformar los resultados de la consulta.
C
749
¿Qué dos sentencias SQL se utilizan, respectivamente, para crear y ejecutar un procedimiento almacenado en BigQuery? A) MAKE PROCEDURE y RUN B) DEFINE PROCEDURE y EXECUTE C) CREATE PROCEDURE y CALL D) STORE PROCEDURE y PERFORM
C
750
Un desarrollador necesita crear una lógica reutilizable en BigQuery que primero verifique si un cliente ya existe en una tabla de clientes y, si no existe, lo inserte. ¿Qué característica de BigQuery es la más adecuada para encapsular esta lógica? A) Una Vista (View) B) Una Función Definida por el Usuario (UDF) C) Un Procedimiento Almacenado (Stored Procedure) D) Una Consulta Programada (Scheduled Query)
C
751
¿Para qué se utiliza el procedimiento del sistema BQ.JOBS.CANCEL en BigQuery? A) Para eliminar una tabla de resultados de un trabajo completado. B) Para cancelar un trabajo (job) que se está ejecutando actualmente. C) Para eliminar una consulta programada. D) Para revertir los cambios realizados por un trabajo de DML.
B
752
¿Cuál de las siguientes afirmaciones describe mejor el caso de uso de Google Cloud Dataproc? A) Es un servicio de almacenamiento de objetos para data lakes. B) Es un servicio totalmente gestionado y sin servidor para ejecutar pipelines de Apache Beam. C) Es un servicio gestionado para ejecutar clústeres de Apache Hadoop y Apache Spark, ideal para migrar cargas de trabajo existentes de estos ecosistemas. D) Es una herramienta visual sin código para la preparación de datos.
C
753
¿Qué servicio de Google Cloud está diseñado para el procesamiento de datos unificado (tanto batch como streaming) y se basa en el modelo de programación de Apache Beam? A) Dataproc B) Dataflow C) Cloud Data Fusion D) BigQuery
B
754
Un equipo de desarrollo necesita procesar un flujo continuo de datos de telemetría provenientes de Pub/Sub, aplicar transformaciones complejas y cargar los resultados en BigQuery con baja latencia. ¿Cuál es el servicio más adecuado para esta tarea? A) Cloud Data Fusion, utilizando su interfaz gráfica. B) Dataproc, configurando un trabajo de Spark Streaming. C) BigQuery, utilizando consultas programadas cada segundo. D) Dataflow, implementando un pipeline de streaming.
D
755
¿Cuál es la principal diferencia entre los 'runners' de Batch y Streaming en Dataflow? A) El runner de Batch solo soporta fuentes y sumideros (sinks) limitados (bounded), mientras que el de Streaming soporta tanto limitados como ilimitados (unbounded). B) El runner de Streaming siempre es más rápido que el de Batch, independientemente del volumen de datos. C) El runner de Batch está diseñado para baja latencia, mientras que el de Streaming está optimizado para un alto rendimiento (throughput). D) El runner de Batch se ejecuta indefinidamente, mientras que el de Streaming finaliza cuando el pipeline termina.
A
756
¿Para qué tipo de usuario o caso de uso es más adecuado Cloud Data Fusion? A) Para científicos de datos que necesitan control total sobre un clúster de Spark para entrenar modelos de ML. B) Para desarrolladores que desean construir pipelines de datos complejos escribiendo código en Java o Python con el SDK de Apache Beam. C) Para desarrolladores y analistas que prefieren construir, desplegar y gestionar pipelines de ETL/ELT a través de una interfaz gráfica de usuario sin escribir código. D) Para administradores de bases de datos que solo necesitan ejecutar consultas SQL programadas.
C
757
¿Qué servicio de Google Cloud se utiliza para la orquestación de flujos de trabajo (workflows) y se basa en el proyecto de código abierto Apache Airflow? A) Cloud Functions B) Cloud Scheduler C) Cloud Composer D) Cloud Tasks
C
758
En una arquitectura de datos típica en Google Cloud, ¿qué servicio cumple la función de 'Data Warehouse'? A) Cloud Storage B) BigQuery C) Dataproc D) Cloud SQL
B
759
Su equipo necesita migrar una aplicación existente de procesamiento de datos por lotes basada en Hadoop/Spark a Google Cloud con cambios mínimos en el código. ¿Qué servicio de Google Cloud debería elegir? A) Dataflow B) Dataproc C) Cloud Data Fusion D) BigQuery
B
760
Un analista de negocio sin experiencia en programación necesita limpiar y preparar un archivo CSV almacenado en Cloud Storage para su análisis. ¿Qué herramienta de Google Cloud le ofrecería una interfaz visual e inteligente para realizar esta tarea? A) Cloud Dataprep B) Cloud Dataflow C) La interfaz de usuario de BigQuery D) Cloud Datalab
A
761
¿Cuál de las siguientes afirmaciones describe correctamente la relación entre Cloud Dataprep y Dataflow? A) Son dos servicios completamente independientes sin ninguna relación. B) Cloud Dataprep es una interfaz de usuario para construir visualmente pipelines que luego se ejecutan como trabajos de Dataflow. C) Dataflow es una versión más antigua de Cloud Dataprep. D) Cloud Dataprep solo puede leer datos de BigQuery, mientras que Dataflow puede leer de múltiples fuentes.
B"
762
¿Cuál es la ventaja principal de BigQuery ML frente a entrenar modelos fuera de BigQuery? A) Solo admite modelos de TensorFlow B) Permite iterar en SQL directamente sobre los datos sin moverlos C) Requiere menos datos para el entrenamiento D) No soporta hiperparámetros
B
763
¿Qué tipos de modelos soporta BigQuery ML para clasificación? (Selecciona dos) A) Logistic regression B) DNN classifier (TensorFlow) C) ARIMA_PLUS D) k-means clustering
A y B
764
¿Qué función se utiliza para evaluar el rendimiento de un modelo en BigQuery ML? A) ML.PREDICT B) ML.FORECAST C) ML.EVALUATE D) ML.RECOMMEND
C
765
¿Qué sentencia SQL crea y entrena un modelo de regresión lineal en BigQuery ML? A) CREATE MODEL ... OPTIONS(model_type='logistic_reg') AS SELECT ... B) CREATE OR REPLACE MODEL ... OPTIONS(model_type='linear_reg') AS SELECT ... C) TRAIN MODEL ... TYPE='linear' SELECT ... D) BUILD MODEL ... TYPE='linear_reg' AS SELECT ...
B
766
En el ejemplo de predicción de tarifa de taxi, ¿qué columna se usa como etiqueta (label)? A) pickup_longitude B) passenger_count C) fare_amount D) dropoff_latitude
C
767
¿Qué opción de BigQuery ML permite generar recomendaciones de productos? A) ML.RECOMMEND B) ML.RECOMMENDATION_SYSTEM C) ML.PREDICT D) ML.GENERATE_RECS
A
768
¿Qué modelo se recomienda para sistemas de recomendación en BigQuery ML? A) XGBoost B) Matrix factorization C) DNN classifier D) k-means clustering
B
769
¿Qué parámetro define la columna de usuario en un modelo matrix factorization? A) user_col B) visitor_id C) user_id D) customer_col
A
770
¿Cómo se almacenan los resultados de ML.RECOMMEND para múltiples usuarios en batch? A) Usando ARRAY_AGG B) Directamente en una tabla temporal C) Con la cláusula OVER() D) No es posible en batch
B
771
¿Qué función se usa para pronosticar valores en series temporales con BigQuery ML? A) ML.PREDICT B) ML.FORECAST C) ML.EVALUATE D) ML.FORECAST_TIME
B
772
¿Qué modelo de series temporales utiliza BigQuery ML por defecto al especificar ARIMA_PLUS? A) ARIMA_SIMPLE B) ARIMA_PLUS C) AUTO_REGRESSION D) TREND_MODEL
B
773
¿Cuál es el propósito de TIME_SERIES_ID_COL en un modelo ARIMA_PLUS? A) Definir la columna de fecha B) Identificar cada serie temporal separada C) Especificar el valor a predecir D) Configurar el nivel de confianza
B
774
¿Qué herramienta se usa para visualizar series temporales generadas por ML.FORECAST? A) Cloud Data Fusion B) Looker Studio C) Dataflow D) Dataproc
B
775
¿Qué fase NO forma parte de un proyecto típico de BigQuery ML? A) Crear el modelo dentro de BigQuery B) Seleccionar y preprocesar features C) Implementar workflow con Apache Airflow D) Evaluar el rendimiento del modelo
C
776
¿Qué sentencias de BigQuery ML permiten explicar predicciones a nivel global? (Selecciona dos) A) ML.FEATURE_IMPORTANCE B) ML.GLOBAL_EXPLAIN C) ML.EXPLAIN_PREDICT D) ML.ADVANCED_WEIGHTS
A y B
777
¿Cuál es la diferencia entre explainabilidad local y global? A) Local explica todos los ejemplos, global solo uno B) Local obtiene atribuciones por ejemplo, global resume la influencia total de features C) Local usa ML.EXPLAIN_FORECAST, global usa ML.EXPLAIN_PREDICT D) Global es más precisa que local
B
778
Para generar explicaciones de un modelo de regresión, ¿qué función se utiliza? A) ML.EXPLAIN_PREDICT B) ML.EXPLAIN_REG C) ML.EXPLAIN D) ML.FEATURE_IMPORTANCE
A
779
¿Qué opción establece el nivel de confianza al hacer forecast? A) confidence_level B) interval_probability C) forecast_confidence D) ci_level
A
780
¿Qué sintaxis es correcta para declarar un parámetro STRUCT en ML.FORECAST? A) STRUCT(30 AS horizon, 0.9 AS confidence_level) B) (30, 0.9) C) {horizon:30, confidence_level:0.9} D) ARRAY(30,0.9)
A
781
¿Qué comando permite iterar el entrenamiento y ajuste de hiperparámetros automáticamente? A) AUTO_TUNE B) AUTOML C) USING default_hparam_tuning D) BigQuery ML automatiza tareas comunes automáticamente
D
782
¿Qué modelo de clustering soporta BigQuery ML? A) DBSCAN B) K-means C) Hierarchical D) Gaussian Mixture
B
783
¿Qué método de inferencia utiliza ML.DETECT_ANOMALIES? A) Regresión B) Detección de anomalías en series temporales C) Clustering D) Clasificación
B
784
En BigQuery ML, ¿cómo se llama la función para calcular la pérdida de reconstrucción? A) ML.RECONSTRUCT_LOSS B) ML.LOSS_RECONSTRUCTION C) ML.RECONSTRUCTION_LOSS D) ML.LOSS
C
785
¿Qué modelo necesita pricing de flat-rate para entrenar matrix factorization? A) DNN classifier B) Logistic regression C) Matrix factorization D) ARIMA_PLUS
C
786
¿Qué comando SQL une datos históricos y forecast para visualización? A) JOIN B) UNION ALL C) MERGE D) CONCAT
B
787
¿Qué función global de XAI retorna la importancia de features agregada? A) ML.FEATURE_IMPORTANCE B) ML.GLOBAL_EXPLAIN C) ML.EXPLAIN_PREDICT D) ML.ADVANCED_WEIGHTS
A
788
Para explicar un forecast, ¿qué función se utiliza? A) ML.EXPLAIN_FORECAST B) ML.FORECAST_EXPLAIN C) ML.EXPLAIN_PREDICT D) ML.GLOBAL_EXPLAIN
A
789
¿Cuál es el primer paso para construir un sistema de recomendación en BigQuery ML? A) Entrenar el modelo B) Preparar datos de entrenamiento en BigQuery C) Evaluar resultados D) Hacer predicciones
B
790
¿Qué tipo de feedback es más común para sistemas de recomendación basados en interacción? A) Feedback explícito B) Feedback implícito C) Feedback supervisado D) Feedback no estructurado
B
791
¿Qué consulta SELECT usa los datos de la tabla aggregate_web_stats para entrenamiento de recomendación? A) SELECT COUNT(*) FROM bqml.aggregate_web_stats B) SELECT * FROM bqml.aggregate_web_stats C) SELECT DISTINCT visitorId FROM bqml.aggregate_web_stats D) SELECT itemId, session_duration FROM bqml.aggregate_web_stats
B
792
¿Qué característica de BigQuery ML acelera el desarrollo al usar SQL? A) Permite UDFs en Python B) Ejecuta entrenamiento dentro de BigQuery sin mover datos C) Ofrece containers Docker D) Soporta llamadas REST
B
793
¿Qué modelo en BigQuery ML usarías para series temporales con efecto de días festivos? A) XGBoost B) ARIMA_PLUS C) Linear regression D) k-means clustering
B
794
¿Cuál es la función de ML.ADVANCED_WEIGHTS? A) Mostrar pesos de features en modelos DNN B) Entrenar modelos avanzados C) Exportar modelos a TensorFlow D) Analizar correlación de features
A
795
¿Qué parámetro en CREATE MODEL define la columna de datos de series temporales? A) TIME_SERIES_ID_COL B) TIME_SERIES_TIMESTAMP_COL C) DATA_COL D) TS_DATA_COL
B
796
¿Qué herramienta se menciona para explicar modelos fuera de SQL embebido? A) Perception APIs B) Explainable AI framework C) Cloud AI Platform D) TensorBoard
B
797
¿Cuál es el objetivo de ML.PREDICT? A) Entrenar un modelo B) Realizar predicciones con un modelo existente C) Explicar predicciones D) Evaluar un modelo
B
798
¿Qué modelo de BigQuery ML se usa para regresión no lineal con TensorFlow? A) DNN regressor B) Linear regression C) XGBoost D) Matrix factorization
A
799
¿Qué fase sigue a crear el modelo en un proyecto de BigQuery ML? A) Preprocesar datos B) Evaluar el rendimiento del modelo C) Hacer predicciones D) Extraer y transformar datos
B
800
¿Qué consulta SQL usas para evaluar un modelo ARIMA_PLUS? A) ML.PREDICT B) ML.EVALUATE C) ML.FORECAST D) ML.DETECT_ANOMALIES
B
801
¿Qué parámetro define el horizonte de pronóstico en ML.FORECAST? A) horizon B) forecast_horizon C) periods D) steps
A
802
¿Qué modelo NO está listado en BigQuery ML? A) Logistic regression B) Random forest C) Linear regression D) k-means clustering
B
803
¿Qué modelo permite predicciones en línea con TensorFlow importado? A) AutoML Tables B) TensorFlow model import/export C) XGBoost D) Matrix factorization
B
804
¿Qué función se utiliza para predicciones batch de modelos importados de TensorFlow? A) ML.BATCH_PREDICT B) ML.BATCH_FORECAST C) ML.PREDICT D) ML.IMPORT_PREDICT
C
805
¿Cuál es la recomendación de Google para mejorar conversiones con ML.RECOMMEND? A) Usar solo feedback explícito B) Exportar recomendaciones a Google Analytics y CRM C) Implementar UDFs personalizadas D) Ejecutar modelos fuera de BigQuery
B
806
¿Cuál es el componente esencial para explicar predicciones locales? A) Retornar feature attributions para cada ejemplo B) Calcular solo feature_importance global C) Solo usar ML.ADVANCED_WEIGHTS D) Solo agregar datos de entrada
A
807
¿Cuál es el formato de salida de ML.EXPLAIN_PREDICT? A) Scalar B) JSON con listas top_feature_attributions C) Tabla con columnas label y prediction D) Archivo externo en Cloud Storage
B
808
¿Qué herramienta de Google recomienda combinar con BigQuery ML para orquestar pipelines? A) Dataflow B) Cloud Composer C) Dataproc D) Cloud Data Fusion
B
809
¿Qué función de BigQuery ML se usa para detectar anomalías de reconstrucción? A) ML.DETECT_ANOMALIES B) ML.RECONSTRUCTION_LOSS C) ML.FORECAST D) ML.PREDICT
B
810
¿Qué ventaja ofrece ML.GLOBAL_EXPLAIN? A) Explica predicción individual B) Agrega influencia de features en todo el dataset C) Mejora la precisión del modelo D) Exporta explicaciones a BigQuery
B
811
¿Cuál es la última fase de un proyecto de BigQuery ML según el documento? A) Evaluar modelo B) Implementar UDFs C) Usar el modelo para hacer predicciones D) Exportar datos
C
812
¿Qué función SQL usarías para limpiar y preparar datos antes de modelar en BigQuery ML? A) ML.CLEAN_DATA B) SQL estándar con SELECT y CTE C) ML.PREPROCESS D) BigQuery Data Prep integrada
B
813
¿Cuál es la modalidad de feedback que mide tiempo de sesión en recomendación? A) Explicito B) Implícito C) Supervisado D) No supervisado
B
814
¿Qué función de ML permite crear explicaciones automáticas al evaluar series temporales? A) ML.EXPLAIN_FORECAST B) ML.GLOBAL_EXPLAIN C) ML.FORECAST D) ML.FEATURE_IMPORTANCE
A
815
¿Para qué sirve ML.FEATURE_IMPORTANCE? A) Entrenar ARIMA_PLUS B) Mostrar la importancia global de features C) Hacer predicciones D) Evaluar modelos de clustering
B
816
¿Qué modelo de BigQuery ML soporta hiperparámetros automáticos? A) XGBoost B) Linear regression C) Matrix factorization D) ARIMA_PLUS
A
817
¿Qué modelo de BigQuery ML usarías para segmentación de clientes sin etiquetas? A) Logistic regression B) k-means clustering C) DNN classifier D) XGBoost
B
818
¿Cuál es el propósito de ML.DETECT_ANOMALIES? A) Clasificar datos B) Detectar anomalías al reconstruir datos de entrada C) Generar recomendaciones D) Pronosticar valores
B
819
¿Qué modelo en BigQuery ML requiere especificar feedback_type? A) Logistic regression B) Matrix factorization C) ARIMA_PLUS D) Linear regression
B
820
¿Qué operación de ML se usaría para retornar predicciones de un modelo lineal? A) ML.FORECAST B) ML.PREDICT C) ML.EVALUATE D) ML.RECOMMEND
B
821
¿Qué función retorna pérdidas de reconstrucción para cada ejemplo? A) ML.RECONSTRUCTION_LOSS B) ML.DETECT_ANOMALIES C) ML.PREDICT D) ML.FEATURE_IMPORTANCE
A
822
¿Qué proceso automatiza la creación y evaluación de múltiples modelos por item en ARIMA_PLUS? A) AutoML Tables B) Auto ARIMA C) Automated clustering D) Hyperparameter tuning
B
823
¿Cuál es el requisito para usar modelos matrix factorization en BigQuery ML? A) Pricing de on-demand B) Pricing de flat-rate C) Uso de Python UDF D) Uso de legacy SQL
B
824
¿Cuál de estos comandos NO pertenece a BigQuery ML? A) ML.TRAIN B) ML.EVALUATE C) ML.PREDICT D) ML.FORECAST
A
825
¿Qué función de explainable AI muestra cómo cada característica afecta una predicción particular? A) ML.GLOBAL_EXPLAIN B) ML.EXPLAIN_PREDICT C) ML.FEATURE_IMPORTANCE D) ML.ADVANCED_WEIGHTS
B
826
¿Qué modelo de BigQuery ML se usa para regresión con TensorFlow en SQL? A) DNN classifier B) DNN regressor C) Logistic regression D) Linear regression
B
827
¿Qué tipo de modelos NO se mencionan en BigQuery ML? A) Perception APIs B) Neural networks integradas en SQL C) External TensorFlow import D) Spark MLlib
D
828
¿Cómo se añade el parámetro feedback_type en matrix factorization? A) feedback='implicit' B) feedback_type='implicit' C) feedbackMode='implicit' D) type_feedback='implicit'
B
829
¿Cuál es el método para combinar conjuntos de datos históricos y de pronóstico en una vista? A) JOIN INNER B) UNION ALL C) CROSS JOIN D) LEFT JOIN
B
830
¿Qué función de XAI en BigQuery ML retorna una tabla con attribution values por feature? A) ML.ADVANCED_WEIGHTS B) ML.EXPLAIN_PREDICT C) ML.GLOBAL_EXPLAIN D) ML.FEATURE_IMPORTANCE
B
831
¿Qué herramienta complementaria se usa para pipelines ETL visuales sin código? A) Dataproc B) Dataflow C) Cloud Data Fusion D) Cloud Composer
C
832
¿Cuál es la utilidad de ML.FORECAST en BigQuery ML? A) Clasificar datos B) Pronosticar valores futuros en una serie temporal C) Evaluar modelos D) Explicar predicciones
B
833
¿Qué parámetro de ML.FORECAST determina el nivel de certeza de los intervalos? A) interval_confidence B) confidence_level C) certainty D) level_of_confidence
B
834
¿Qué fase finaliza un proyecto de BigQuery ML? A) Deploy del modelo B) Evaluación del modelo C) Uso del modelo para predicciones D) Extracción de datos
C
835
¿Qué función retorna un conjunto de predicciones con intervalos para series temporales? A) ML.ENHANCED_FORECAST B) ML.FORECAST C) ML.EVALUATE D) ML.PREDICT
B
836
¿Cuál es el título principal del módulo tratado en el documento? A) BigQuery ML B) Automating Workloads C) Scheduling Queries D) BigQuery Basics
A
837
¿Cuáles son los seis temas principales cubiertos en el documento? (Selecciona seis) A) Introduction to BigQuery ML B) How to Make Predictions with BigQuery ML C) How to Build and Deploy a Recommendation System D) How to Build and Deploy a Demand Forecasting Solution with BigQuery ML E) Time-Series Models with BigQuery ML F) BigQuery ML Explainability G) Scripting in BigQuery
A, B, C, D, E y F
838
¿Qué tipos de modelos se asocian comúnmente con 'AI or ML' según el documento? A) Image models, Sequence models, Neural networks B) Linear regression, Clustering, Forecasting C) Only Neural networks D) Only Image models
A
839
¿Qué porcentaje de modelos desplegados en Google operan en datos estructurados según la fuente de 2017? A) 29% B) 5% C) 61% D) 100%
C
840
¿Qué tipo de red es el más común en modelos desplegados en Google según la tabla? A) LSTM0 B) CNN1 C) MLP0 D) MLP1
C
841
¿Para qué audiencias está diseñado BigQuery ML según el documento? (Selecciona tres) A) App developers B) Data engineers/Data scientists C) Data analysts D) Perception APIs users E) Only AI experts
A, B y C
842
¿Cuáles son las fases clave en la creación de un modelo personalizado sin BigQuery ML? (Selecciona todas las aplicables) A) Identify a problem and gather data B) Import and preprocess data C) Split data D) Build a model E) Train and evaluate F) Deploy the model G) Make predictions
A, B, C, D, E, F y G
843
¿Cuántas fases se reducen en la creación de un modelo personalizado con BigQuery ML? A) De 7 a 3 B) De 7 a 5 C) De 5 a 3 D) No se reduce
A
844
¿Cuáles son los beneficios de BigQuery ML mencionados? (Selecciona tres) A) Execute ML models without moving data from BigQuery B) Iterate on models in SQL in BigQuery to increase development speed C) Automate common ML tasks and hyperparameter tuning D) Requires exporting data to external tools
"A
845
¿Cuáles son los modelos soportados en BigQuery ML para clasificación? (Selecciona tres) A) Logistic regression B) DNN classifier (TensorFlow) C) XGBoost D) Linear regression E) k-means clustering
A, B y C
846
¿Cuáles son los modelos soportados en BigQuery ML para regresión? (Selecciona tres) A) Linear regression B) DNN regressor (TensorFlow) C) XGBoost D) Time series forecasting E) Matrix factorization
A, B y C
847
¿Qué modelo se usa para recomendación en BigQuery ML? A) k-means clustering B) Matrix factorization C) AutoML Tables D) TensorFlow models
B
848
¿Cuáles son las funciones de inferencia de modelos en BigQuery ML? (Selecciona todas las aplicables) A) ML.PREDICT B) ML.FORECAST C) ML.RECOMMEND D) ML.DETECT_ANOMALIES E) ML.RECONSTRUCTION_LOSS
A, B, C, D y E
849
¿Cuáles son las fases clave de un proyecto de BigQuery ML? (Selecciona cinco) A) Extract, transform, and load data into BigQuery B) Select and preprocess features C) Create the model inside BigQuery D) Evaluate the performance of the trained model E) Use the model to make predictions
A, B, C, D y E
850
¿En el escenario de predicción de tarifa de taxi, qué función se usa para seleccionar datos? A) SELECT con campos como fare_amount, coordenadas y passenger_count B) CREATE MODEL C) ML.EVALUATE D) ML.PREDICT
A
851
¿Qué tipo de modelo se usa en el ejemplo de tarifa de taxi? A) logistic_reg B) linear_reg C) dnn_classifier D) matrix_factorization
B
852
¿Qué función se usa para evaluar el modelo en el ejemplo de taxi? A) ML.PREDICT B) ML.EVALUATE C) ML.FORECAST D) ML.RECOMMEND
B
853
¿Qué función se usa para hacer predicciones en el ejemplo de taxi? A) ML.EVALUATE B) ML.PREDICT C) CREATE MODEL D) SELECT
B
854
¿Por qué las empresas necesitan sistemas de recomendación según el documento? A) Para mejorar conversiones, clickthrough-rates y lealtad del cliente B) Solo para recopilar datos C) Para reducir costos de almacenamiento D) Para automatizar queries
A
855
¿Cuáles son los pasos para construir un sistema de recomendación con BigQuery ML? (Selecciona tres) A) Prepare your training data in BigQuery B) Train a recommendation system with BigQuery ML C) Use the predicted recommendations in production D) Export data to external ML tools
A, B y C
856
¿Cómo se determina si un usuario likes un producto en sistemas de recomendación? A) Explicit feedback o Implicit feedback B) Solo explicit C) Solo implicit D) Ninguno
A
857
¿Qué es un ejemplo de implicit feedback? A) Rating de estrellas B) Amount of time spent viewing a product C) Comentarios escritos D) Compras directas
B
858
¿De dónde proviene el sample data de Google Analytics 360 en el documento? A) Google Merchandise Store, disponible en BigQuery Public Datasets B) Austin Bikeshare C) NYC Taxi D) Iowa Liquor Sales
A
859
¿Qué algoritmo se usa para entrenar el sistema de recomendación? A) Linear regression B) Matrix factorization C) ARIMA_PLUS D) k-means
B
860
¿Qué explica la matrix factorization? A) Descomposición de la matriz de interacción user-item en dos matrices de menor dimensionalidad B) Clustering de datos C) Forecasting de series temporales D) Clasificación binaria
A
861
¿Qué opciones se especifican en CREATE MODEL para recomendación? A) model_type='matrix_factorization', user_col, item_col, rating_col, feedback_type='implicit' B) model_type='linear_reg' C) TIME_SERIES_TIMESTAMP_COL D) input_label_cols
A
862
¿Qué requiere el entrenamiento de matrix factorization? A) Flat-rate pricing B) On-demand pricing C) Free tier D) No pricing
A
863
¿Qué función se usa para evaluar el modelo de recomendación? A) ML.PREDICT B) ML.EVALUATE C) ML.FORECAST D) ML.RECOMMEND
B
864
¿Qué función se usa para predecir recomendaciones para un single user? A) ML.RECOMMEND con DECLARE para visitorID B) ML.PREDICT C) ML.FORECAST D) ML.EVALUATE
A
865
¿Cómo se usan las predicciones en producción? (Selecciona dos) A) Export recommendations for ad retargeting campaigns B) Connect with your CRM for personalized emails C) Solo en dashboards D) No se usan
A y B
866
¿En qué industrias se aplica demand forecasting según el documento? (Selecciona cuatro) A) Transportation B) Telecommunications C) Media/Gaming D) Retail E) Healthcare
A, B, C y D
867
¿Cuáles son los pasos para una solución de demand forecasting con BigQuery ML? (Selecciona cuatro) A) Prepare the training data in BigQuery B) Train and evaluate a time-series model with BigQuery ML C) Visualize the forecasts in a dashboard D) Schedule and automate model retraining
A, B, C y D
868
¿De dónde proviene el bike share data? A) bigquery-public-data.austin_bikeshare.bikeshare_trips B) Google Merchandise Store C) NYC Taxi D) Iowa Liquor Sales
A
869
¿Qué calcula el training data para bike share? A) no_bikes_difference = no_bikes_taken - no_bikes_returned B) Solo no_bikes_taken C) Solo no_bikes_returned D) Passenger count
A
870
¿Qué filtro se aplica al training data? A) Date greater than or equal to 01/01/2020 B) Date less than 01/01/2020 C) No filtro D) Solo station_name
A
871
¿Qué model_type se usa para time-series en BigQuery ML? A) ARIMA_PLUS B) MATRIX_FACTORIZATION C) LINEAR_REG D) DNN_REGRESSOR
A
872
¿Qué columnas se especifican en OPTIONS para time-series? A) TIME_SERIES_TIMESTAMP_COL, TIME_SERIES_DATA_COL, TIME_SERIES_ID_COL B) user_col, item_col C) input_label_cols D) model_type only
A
873
¿Qué hace TIME_SERIES_ID_COL? A) Entrena multiple time-series models, one for every station_name B) Solo uno por query C) No afecta D) Requiere flat-rate
A
874
¿Cuántos candidate models crea BigQuery ML por item usando Auto ARIMA? A) Up to 42 B) 1 C) 10 D) 100
A
875
¿Cuáles son los componentes en el pipeline de creación de time-series models? (Selecciona cuatro) A) Pre-processing (missing value imputation, de-duplication, identifying anomalies) B) Holiday effects C) Seasonal and trend decomposition D) Trend modeling with ARIMA and Auto ARIMA E) Solo ARIMA
A, B, C y D
876
¿Qué función se usa para evaluar el time-series model? A) ML.FORECAST B) ML.EVALUATE C) ML.PREDICT D) ML.RECOMMEND
B
877
¿Qué función se usa para hacer forecasts? A) ML.FORECAST con STRUCT(horizon, confidence_level) B) ML.PREDICT C) ML.EVALUATE D) ML.RECOMMEND
A
878
¿Cómo se prepara data para visualización en dashboard? A) Combine historical data with forecasted values using UNION ALL B) Solo historical C) Solo forecasted D) No combine
A
879
¿Qué herramienta se usa para visualizar forecasts? A) Data Studio B) BigQuery UI C) Excel D) Tableau
A
880
¿Cómo se schedule model retraining? A) Con scheduled queries B) Manualmente C) Con Dataflow D) Con Dataproc
A
881
¿Qué es Explainable AI (XAI)? A) Set of tools and frameworks integrated with Google products to understand and interpret ML predictions B) Solo para Vertex AI C) No integrado D) Solo para images
A
882
¿Por qué usar XAI? (Selecciona cuatro) A) Verify model behavior B) Recognize biases C) Improve model and data D) Help others understand models E) Solo predictions
A, B, C y D
883
¿Qué es local explainability? A) Feature attribution values for each explained example B) Overall influence on the model C) Aggregated over dataset D) No relative to baseline
A
884
¿Qué es global explainability? A) Overall influence, aggregated feature attributions B) Per example C) Solo baseline D) No aggregation
A
885
¿Cuáles son las offerings de XAI en BigQuery ML? (Selecciona cinco) A) ML.EXPLAIN_PREDICT B) ML.GLOBAL_EXPLAIN C) ML.EXPLAIN_FORECAST D) ML.ADVANCED_WEIGHTS E) ML.FEATURE_IMPORTANCE
A, B, C, D y E
886
¿En el ejemplo de XAI, qué función se usa para explanations? A) ML.EXPLAIN_PREDICT B) ML.PREDICT C) ML.FORECAST D) ML.EVALUATE
A
887
¿Qué incluye el output de ML.EXPLAIN_PREDICT? (Selecciona todas las aplicables) A) predicted_value B) top_feature_attributions C) baseline_prediction_value D) prediction_value E) approximation_error
A, B, C, D y E
888
¿Qué lab se menciona al final? A) Predict Bike Trip Duration with a Regression Model in BigQuery ML B) Demand Forecasting C) Recommendation System D) Taxi Fare
A
889
¿Cuál es el principal objetivo de BigQuery ML (BQML)? A) Proporcionar una plataforma para que los científicos de datos escriban algoritmos de Machine Learning complejos en Python y R. B) Permitir a los analistas de datos y desarrolladores de bases de datos crear y ejecutar modelos de Machine Learning directamente en BigQuery utilizando sentencias SQL. C) Ofrecer una herramienta de visualización de datos para crear paneles de control interactivos. D) Funcionar como un servicio de ingesta de datos en tiempo real para modelos de Machine Learning.
B
890
Según la presentación, ¿cómo simplifica BigQuery ML el flujo de trabajo tradicional para la creación de modelos personalizados? A) Elimina la necesidad de identificar un problema y recopilar datos. B) Consolida varios pasos, como la exportación de datos, la construcción del modelo en un framework externo y el despliegue, en menos pasos ejecutables dentro de BigQuery. C) Automatiza completamente la selección de características, eliminando la necesidad de la intervención del analista. D) Reemplaza el lenguaje SQL por un lenguaje de programación visual basado en arrastrar y soltar.
B
891
¿Qué tipo de modelos de Machine Learning se pueden crear en BigQuery ML para problemas de clasificación? (Selecciona tres) A) Regresión lineal (Linear regression) B) Regresión logística (Logistic regression) C) Clasificador DNN (DNN classifier) D) XGBoost
B, C y D Por qué B, C y D son correctas (para Clasificación) El objetivo de un problema de clasificación es predecir una categoría o clase (por ejemplo, "¿Este correo es spam o no es spam?", "¿Este cliente es 'premium', 'básico' o 'propenso a irse'?"). B) Regresión logística (Logistic regression): A pesar de tener "regresión" en el nombre, este es el modelo estadístico fundamental para la clasificación. Funciona prediciendo la probabilidad de que algo pertenezca a una clase (ej. "Hay un 95% de probabilidad de que esto sea fraude"). Es la opción principal en BQML para la clasificación binaria y multiclase (MODEL_TYPE='LOGISTIC_REG'). C) Clasificador DNN (DNN classifier): El propio nombre lo dice. Es un Clasificador de Red Neuronal Profunda (Deep Neural Network). Se utiliza para problemas de clasificación más complejos donde las relaciones entre las características no son simples. BQML lo soporta con MODEL_TYPE='DNN_CLASSIFIER'. D) XGBoost: XGBoost (o Árboles Potenciados/Boosted Trees) es un algoritmo extremadamente popular y potente que se puede usar tanto para regresión como para clasificación. BQML lo soporta explícitamente para tareas de clasificación bajo el tipo de modelo MODEL_TYPE='BOOSTED_TREE_CLASSIFIER'. Por qué la A es la incorrecta A) Regresión lineal (Linear regression): Este es el único modelo de la lista que no se usa para clasificación. La regresión lineal se usa exclusivamente para problemas de regresión, es decir, para predecir un valor numérico continuo (ej. predecir el precio de
892
¿Cuál de las siguientes funciones se utiliza específicamente para obtener predicciones de un modelo de pronóstico de series temporales en BigQuery ML? A) ML.PREDICT B) ML.FORECAST C) ML.RECOMMEND D) ML.DETECT_ANOMALIES
B
893
Un analista de datos ha entrenado un modelo de regresión lineal en BigQuery ML para predecir las tarifas de los taxis. ¿Qué sentencia SQL utilizaría para crear el modelo? A) TRAIN MODEL mydataset.model_linreg OPTIONS(model_type='linear_reg') AS SELECT ... B) CREATE OR REPLACE MODEL mydataset.model_linreg OPTIONS(model_type='linear_reg', input_label_cols=['fare_amount']) AS SELECT ... C) EXECUTE MODEL mydataset.model_linreg TYPE='linear_reg' AS SELECT ... D) DEPLOY MODEL mydataset.model_linreg OPTIONS(label='fare_amount') AS SELECT ...
B
894
Después de crear un modelo, ¿qué función se utiliza para ver sus métricas de rendimiento, como el error cuadrático medio (mean squared error)? A) ML.PERFORMANCE(MODEL mydataset.model_linreg) B) ML.DESCRIBE(MODEL mydataset.model_linreg) C) ML.EVALUATE(MODEL mydataset.model_linreg) D) ML.STATISTICS(MODEL mydataset.model_linreg)
C
895
¿Qué función se debe usar para aplicar un modelo de clasificación o regresión ya entrenado a un nuevo conjunto de datos para generar predicciones? A) ML.EXECUTE B) ML.APPLY C) ML.INFERENCE D) ML.PREDICT
D
896
Al construir un sistema de recomendación, ¿cuál es un ejemplo de 'feedback implícito'? A) Un usuario califica una película con 5 estrellas. B) Un usuario hace clic en el botón 'Me gusta' de un artículo. C) Un usuario escribe una reseña positiva de un producto. D) La cantidad de tiempo que un usuario pasa viendo la página de un producto.
D
897
¿Qué algoritmo se utiliza en BigQuery ML para construir sistemas de recomendación basados en filtrado colaborativo? A) K-means clustering B) ARIMA C) Regresión logística D) Factorización de matrices (Matrix factorization)
D Este es el algoritmo fundamental que BigQuery ML utiliza para crear sistemas de recomendación basados en filtrado colaborativo. Por qué D) es la respuesta correcta El filtrado colaborativo funciona bajo la premisa de "usuarios a los que les gustó X, también les gustó Y". Para hacer esto, necesita procesar una matriz (tabla) gigante y dispersa (con muchos huecos) de interacciones usuario-ítem (por ejemplo, millones de usuarios contra millones de productos). La Factorización de Matrices es una técnica de machine learning diseñada para tomar esa matriz gigante y "descomponerla" en dos matrices mucho más pequeñas y densas: Una matriz de "features latentes" (características ocultas) de usuarios. Una matriz de "features latentes" de ítems. Al multiplicar estas dos matrices pequeñas, el modelo puede "predecir" o "rellenar los huecos" de la matriz original, estimando qué calificación le daría un usuario a un producto que nunca ha visto. BigQuery ML tiene un modelo específico (CREATE MODEL ... MODEL_TYPE='MATRIX_FACTORIZATION') que implementa esta técnica (usando un algoritmo llamado WALS) para construir sistemas de recomendación. Por qué las otras respuestas son incorrectas A) K-means clustering: Es un algoritmo de agrupamiento (clustering). Se usa para segmentar datos (por ejemplo, "agrupar clientes por comportamiento de compra"), pero no para predecir la afinidad entre un usuario específico y un ítem específico. B) ARIMA: Es un algoritmo de pronóstico de series temporales. Se usa para predecir valores futuros basados en una secuencia de tiempo (por ejemplo, "predecir las ventas del próximo mes"). No tiene nada que ver con recomendaciones. C) Regresión logística: Es un algoritmo de clasificación. Se usa para predecir un resultado binario (Sí/No), como "este cliente abandonará" o "este email es spam". Aunque se podría forzar un problema de recomendación a este formato (predecir "clic" o "no clic"), no es el enfoque estándar para el filtrado colaborativo basado en calificaciones o historial de interacciones.
898
Al crear un modelo de recomendación de tipo matrix_factorization, ¿qué opción es obligatoria en la cláusula OPTIONS para especificar la columna que contiene las valoraciones o interacciones? A) user_col B) item_col C) rating_col D) feedback_type
C
899
Una vez entrenado un modelo de recomendación (matrix_factorization), ¿qué función se utiliza para obtener las 5 mejores recomendaciones para un usuario específico? A) SELECT * FROM ML.PREDICT(MODEL bqml.retail_recommender, ...) B) SELECT * FROM ML.FORECAST(MODEL bqml.retail_recommender, ...) C) SELECT * FROM ML.RECOMMEND(MODEL bqml.retail_recommender, ...) LIMIT 5 D) SELECT * FROM ML.SUGGEST(MODEL bqml.retail_recommender, ...) TOP 5
C
900
¿Para qué tipo de problemas se utilizan los modelos de series temporales como ARIMA_PLUS en BigQuery ML? A) Para clasificar a los clientes en segmentos de mercado. B) Para agrupar productos similares basados en sus características. C) Para predecir valores futuros basándose en datos históricos ordenados por tiempo, como las ventas diarias o el tráfico de red. D) Para recomendar productos a los usuarios basándose en sus compras anteriores.
C
901
Al crear un modelo de series temporales (ARIMA_PLUS), ¿qué opción se utiliza para especificar la columna que contiene la marca de tiempo de los datos? A) TIME_SERIES_DATA_COL B) TIME_SERIES_TIMESTAMP_COL C) TIME_SERIES_ID_COL D) MODEL_TYPE
B
902
Un analista quiere pronosticar la demanda de bicicletas para 50 estaciones diferentes. ¿Cómo puede entrenar un modelo de series temporales para cada estación en una sola consulta CREATE MODEL? A) Debe ejecutar 50 consultas CREATE MODEL diferentes, una para cada estación. B) Utilizando la opción TIME_SERIES_ID_COL y especificando la columna que contiene el nombre de la estación. C) Combinando los datos de todas las estaciones en una única serie temporal y entrenando un solo modelo. D) Utilizando el modelo XGBoost en lugar de ARIMA_PLUS.
B
903
¿Qué tareas de preprocesamiento realiza automáticamente el pipeline de creación de modelos de series temporales de BigQuery ML? (Selecciona tres) A) Imputación de valores ausentes. B) Identificación de anomalías y cambios abruptos. C) Traducción de los datos a diferentes idiomas. D) De-duplicación de marcas de tiempo (timestamps).
A, B y D
904
¿Qué parámetro dentro de la función ML.FORECAST se utiliza para especificar cuántos puntos de datos futuros se deben predecir? A) steps B) duration C) horizon D) confidence_level
C
905
¿Cuál es la forma más eficiente y automatizada de reentrenar periódicamente un modelo de BigQuery ML con datos nuevos? A) Ejecutar manualmente la consulta CREATE OR REPLACE MODEL cada semana. B) Configurar una Alerta de Cloud Monitoring para que ejecute la consulta. C) Escribir un script de Python que se conecte a BigQuery y ejecutarlo con un cron job. D) Guardar la consulta CREATE OR REPLACE MODEL como una Consulta Programada (Scheduled Query) en BigQuery.
D
906
¿Qué es la IA Explicable (Explainable AI o XAI) en el contexto de BigQuery ML? A) Un conjunto de modelos de Machine Learning que pueden explicar su funcionamiento en lenguaje natural. B) Un tipo de modelo que solo utiliza características fácilmente interpretables por los humanos. C) Un conjunto de herramientas y funciones que ayudan a entender e interpretar las predicciones hechas por los modelos de Machine Learning. D) Una API que traduce automáticamente el código SQL a código Python para una mejor explicación.
C
907
¿Cuál es la diferencia entre explicabilidad local y global? A) La explicabilidad local se aplica a modelos de regresión y la global a modelos de clasificación. B) La explicabilidad local describe cuánto afectó una característica a una predicción particular, mientras que la global describe la influencia general de una característica en el modelo sobre todo el conjunto de datos. C) La explicabilidad local solo funciona para datos almacenados en una única región, mientras que la global funciona para datos multirregionales. D) La explicabilidad local la proporcionan los usuarios y la global la proporciona Google automáticamente.
B
908
¿Qué función de BigQuery ML se utilizaría para entender por qué un modelo de clasificación predijo un resultado específico para un cliente en particular, mostrando la contribución de cada característica a esa predicción? A) ML.GLOBAL_EXPLAIN B) ML.FEATURE_IMPORTANCE C) ML.EXPLAIN_PREDICT D) ML.ADVANCED_WEIGHTS
C"