Data Engineer
¿Cómo puede ocurrir una inyección SQL a través del campo de entrada de fecha?
¿En qué se diferencia HDFS de los sistemas de archivos distribuidos tradicionales?
¿Qué te gustaría hacer en nuestro equipo?
¿Cómo ver el plan de ejecución de una consulta en Oracle? ¿En qué se diferencia EXPLAIN PLAN de EXPLAIN ANALYZE?
¿Qué tipos de algoritmos JOIN existen en PostgreSQL y en qué se diferencia Hash Join de Nested Loop Join? ¿En qué casos no se puede usar Hash Join?
¿Qué hace OPTIMIZE en ClickHouse y por qué no se debe ejecutar sin pensar?
¿Qué operadores de Airflow utilizaste? ¿Cómo interactuaste con dbt a través de Airflow?
¿Qué es YARN y para qué sirve?
¿Qué haces cuando te enfrentas a un problema en la línea de producción?
¿Qué tan interesado estás en este rol, considerando el trabajo cercano con analistas, revisión de su código y asesoramiento?
¿Cómo ves tu participación en el proyecto teniendo en cuenta la composición del equipo descrita?
¿Qué tipos de unión física de tablas existen (Hash Join, Merge Join, Nested Loop)?
¿Qué es GIL (Global Interpreter Lock) y cómo funciona en Python?
¿Cómo funciona la partición en Hive y cómo se representa físicamente en el sistema de archivos?
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.
¿Cómo funciona Merge Join (unión con ordenamiento)?
¿Por qué eligieron específicamente DBT? ¿Qué ventajas y desventajas ves en este marco de trabajo?
¿Cómo hacer una extensión hacia arriba (rellenar NULL con el valor no nulo anterior en dirección inversa)?
¿Había algún líder o alguien más dirigía el equipo de 4 personas?
¿Cómo conocer el plan real de ejecución de una consulta en Oracle?