Sobes.tech

Data Engineer

Existen dos transacciones. Primero, la primera transacción ejecuta un comando. Luego, la segunda transacción ejecuta un comando. Después, la primera transacción continúa ejecutándose. ¿Qué secuencia conducirá a un bloqueo mutuo? ```sql -- primera transacción update accounts set balance = balance + 100 where id = ?; -- segunda transacción update accounts set balance = balance - 50 where id = ?; update accounts set balance = balance + 200 where id = ?; ```

Junior
165

Porcentaje de tráfico de bots El equipo de antifraude ha desarrollado un mecanismo para detectar tráfico de bots en el sitio de la tienda: cuando un bot ingresa al sitio, se añade la subcadena "bot" (sin distinguir mayúsculas o minúsculas) a los parámetros de su URL. Si el user_id fue identificado como bot al menos una vez en diciembre, siempre debe ser considerado como bot. Estudie el conjunto de datos con las visitas de los usuarios al sitio y calcule la proporción de bots respecto al total de usuarios en diciembre de 2024 (redondee a un decimal). Formato de entrada Tabla visits: - event_date (date) — fecha de la visita - user_id (int) — identificador único del usuario - url (string) — enlace por el que se realizó la visita Los datos no contienen valores faltantes o incorrectos. Formato de salida La consulta debe devolver una tabla con los campos: - share (float) — proporción de bots respecto al total de usuarios en diciembre, redondeada a un decimal.

Junior
165

¿Cómo recuperar el trabajo de una rama remota si al intentar acceder a ella con `git checkout hotfix/missing-footer` recibes un mensaje de error diciendo que la rama no se encuentra?

Junior
164

¿Qué estrategia sería efectiva para eliminar la vulnerabilidad en todas las ramas con el mínimo riesgo de interrumpir el funcionamiento del proyecto? - Crear una serie de commits de reversión para el commit problemático y todos los commits que lo corrigieron parcialmente, luego crear un nuevo commit con la corrección completa - Crear una rama hotfix desde un punto anterior al commit problemático, realizar las correcciones y fusionar esta rama con todas las ramas afectadas - Crear un commit de corrección único usando git revert abc123 en la rama principal y luego hacer cherry-pick de este commit en todas las ramas de lanzamiento - Usar git bisect para determinar exactamente el código problemático, crear un parche y aplicarlo a todas las ramas usando git am - Usar git rebase -i para editar el commit problemático en cada rama, seguido de un push forzado (force-push)

Junior
161

Análisis de la actividad de los usuarios en campañas publicitarias La empresa lleva un registro de eventos relacionados con campañas publicitarias. Se ingresan dos tablas: • campaigns — lista de campañas publicitarias con sus identificadores y nombres; • events — eventos de usuarios por campaña con información sobre el tipo de evento (por ejemplo, 'click' (clic en el anuncio)) y el tiempo. Es necesario crear un informe para cada campaña con los siguientes indicadores: • Número total de eventos. • Número de usuarios únicos que realizaron eventos. • Tiempo del primer y último evento por campaña. • Rango de la campaña en orden descendente por el número total de eventos. El rango es un número asignado a cada fila en el conjunto de resultados basado en el orden de los datos. Si dos o más filas tienen el mismo valor, se les asigna el mismo rango, pero se omite el siguiente rango. El informe debe incluir solo campañas que tuvieron eventos: las campañas sin eventos no se consideran. El informe final debe ordenarse primero por el rango de la campaña en orden ascendente, y luego por campaign_name en orden alfabético. Formato de entrada • campaign_name (string) — nombre de la campaña publicitaria • start_date (timestamp) — fecha y hora de inicio de la campaña • end_date (timestamp) — fecha y hora de fin de la campaña Tabla events: • event_id (int) — identificador único del evento • user_id (int) — identificador único del usuario que realizó el evento • campaign_id (int) — identificador único de la campaña • event_type (string) — tipo de evento, por ejemplo 'click' o 'conversion' • event_time (timestamp) — fecha y hora del evento Los datos no contienen valores faltantes o incorrectos. Formato de salida La consulta debe devolver una tabla con los siguientes campos en este orden: • campaign_name (string) — nombre de la campaña publicitaria • total_events (int) — número total de eventos relacionados con la campaña • unique_users (int) — número de usuarios únicos que realizaron eventos • first_event_time (timestamp) — fecha y hora del primer evento de la campaña • last_event_time (timestamp) — fecha y hora del último evento de la campaña • campaign_rank (int) — rango de la campaña en orden descendente por el número total de eventos Ordene los datos por el rango de la campaña en orden ascendente, y luego por campaign_name en orden alfabético.

Junior
161

¿Qué hay que hacer si quieres cambiar la rama a la que apunta un submódulo? - Los submódulos no soportan cambiar de rama - Eliminar el submódulo y agregarlo de nuevo con la rama deseada - Cambiar la rama en el submódulo y hacer un commit en el repositorio principal - Ejecutar git checkout en la rama deseada en el submódulo y registrar los cambios en el repositorio principal - Ejecutar git submodule update --branch especificando la nueva rama

Junior
158

¿Por qué estás considerando ofertas de trabajo en este momento?

Junior
151

¿Qué ocurrió y cómo se puede recuperar el trabajo?

Junior
151

La tabla notifications contiene un campo status, en el que los valores son: 'sent', 'delivered', 'read'. ¿Cuál de las consultas es correcta? select * from notifications where status like '%sent%' order by created_at desc limit 5 select * from notifications where status = 'read' order by created_at desc limit 5 select * from notifications order by status desc limit 5 select * from notifications where status not in ('sent', 'delivered') order by created_at asc limit 5 select * from notifications where status in ('sent', 'delivered') order by created_at desc limit 5

Junior
150

¿Qué operación realizó el comando? - Ejecutó git revert en el commit con config.yaml - Ejecutó git filter-branch --index-filter "git rm --cached config.yaml" -- --all - Ejecutó git rebase -i eliminando los commits que contenían cambios en el archivo - Ejecutó git commit --amend y git push --force - Ejecutó git cherry-pick para crear una nueva rama sin config.yaml

Junior
148

Se ha creado la estructura de tablas indicada en la imagen. Es necesario ejecutar la consulta mostrada en la imagen. ¿Qué tipo de join se debe usar en lugar de [...] para que en el resultado, las filas con type = 'table_aw' tengan la columna 'naming' llena, y las filas con type = 'table2' tengan la columna 'serial_number'? create table multirelation( type varchar not null, entity_id integer not null ); create table table_aw( id integer primary key, naming varchar not null ); create table table2( id integer primary key, serial_number varchar not null ); -- estructura de las tablas select m.type,m.entity_id, ta.naming, t2.serial_number from multirelation m [...] join table_aw ta on m.entity_id = ta.id and m.type='table_aw' [...] join table2 t2 on m.entity_id = t2.id and m.type='table2'; -- consulta Dejar en blanco inner cross right left

Junior
148

En PostgreSQL, el encabezado de versión de la fila incluye el parámetro xmax. ¿Cuál es su función en la gestión de transacciones? - Para crear un identificador único de fila en la tabla - Para verificar la visibilidad de la fila por otras transacciones - Para indicar el número de transacción que eliminó o actualizó la fila - Para bloquear la fila contra cambios simultáneos por varias transacciones - Para indicar el valor máximo que puede ser registrado en una columna numérica

Junior
147

Por favor, cuéntenos, ¿por qué le interesa esta vacante?

Junior
146

¿Qué comando desde la carpeta raíz del proyecto debe usarse para actualizar el submódulo docs/ a la última versión del repositorio remoto y preparar este cambio para el commit? git fetch docs/ && git merge docs/FETCH_HEAD git pull --recurse-submodules git submodule update --remote docs/ cd docs/ && git pull && cd .. && git commit -am "Actualización" git submodule update --init docs/

Junior
144

Análisis de la asistencia a clubes de fitness Trabajas como analista en una cadena de clubes de fitness. Tienes información sobre las visitas de los usuarios y las membresías que compran. Es necesario analizar la efectividad del uso de las membresías. Calcula para cada tipo de membresía: • el número total de usuarios que han utilizado ese tipo de membresía. Considera solo usuarios únicos user_id; • el número total de visitas con esa membresía. Considera todas las visitas de los usuarios con esa membresía; • la proporción de usuarios de esa membresía en porcentaje del total de todos los usuarios (redondeado a un decimal). Para calcular la proporción de usuarios, usa la relación entre el número de usuarios con esa membresía y el número total de usuarios únicos. Cada usuario puede tener solo una membresía. Ordena el resultado por tipo de membresía en orden alfabético. Formato de entrada Tabla memberships: • membership_id (int) — identificador único de la membresía • user_id (int) — identificador único del usuario • membership_type (text) — tipo de membresía Tabla visits:

Junior
143

¿En qué proyectos de Scala has trabajado anteriormente? Comparte tareas específicas y logros en esta tecnología.

Junior
141

¿Qué ocurrió y cómo puedes recuperar el trabajo?

Junior
141

¿Qué se puede decir sobre la corrección de la siguiente consulta? select * from sessions where ended_at is null and status != 'pending';

Junior
140

Informe para la empresa logística Eres un analista de una empresa logística que lleva el registro de operaciones en los almacenes. Necesitas elaborar un informe sobre la eficiencia de cada almacén. Para cada almacén, calcula: • cantidad total de operaciones (count_operations); • cantidad total de productos procesados en el almacén (sum_quantity); • tiempo medio de procesamiento de la operación (avg_processing_time), considerando solo las operaciones con tiempo especificado (no NULL), redondeado al número entero más cercano; • cantidad máxima y mínima de productos procesados en una sola operación (max_quantity, min_quantity); • cantidad de operaciones de cada tipo («pago», «envío», «traslado») en columnas separadas: supply_operations, shipment_operations, transfer_operations. Filtra los almacenes cuya cantidad total de operaciones sea mayor a 2 y el tiempo medio de procesamiento no supere los 60 minutos. Ordena el resultado por ID del almacén en orden ascendente. Formato de entrada Tabla operations: • operation_id (int) — identificador único de la operación • warehouse_id (int) — identificador del almacén • operation_type (text) — tipo de operación: «pago», «envío», «traslado»

Junior
139

Tienes dos tablas relacionadas: first_table y second_table. Quieres ejecutar el comando TRUNCATE TABLE second_table CASCADE;, para eliminar todas las filas de la tabla second_table y todos los datos dependientes de ella. ¿Qué consecuencias puede tener la ejecución de este comando? create table first_table ( id integer primary key ); create table second_table ( id serial primary key, first_table_fk integer references first_table(id) ); - La secuencia second_table_id_seq será restablecida a su valor inicial. - Se eliminarán todos los registros de first_table relacionados mediante clave externa con second_table. - Los índices existentes para second_table serán eliminados y recreados automáticamente. - En inserciones posteriores en second_table, el valor predeterminado para id puede comenzar con un valor incorrecto. - Se producirá un error, ya que la opción CASCADE está prohibida para tablas con claves externas.

Junior
139
/3