Data Engineer
Cuéntenos sobre el uso de procedimientos PL/SQL en su trabajo.
Tenemos una tabla de clientes (id, nombre, dirección, etc.), productos (id, nombre, etc.), movimiento de productos (aquí tenemos id del cliente, producto, fecha, cantidad, suma), necesitamos encontrar qué productos se vendieron el 1 de enero, solo los únicos, y también mostrar el nombre del comprador y...
¿Qué tipos de claves/estrategias de distribución existen en Greenplum?
Análisis de ventas por categorías de productos en una tienda minorista Trabajas como analista en una tienda minorista. Tu tarea es crear un informe de ventas por categorías de productos con los siguientes cálculos: • cantidad total de unidades vendidas en la categoría (total_units_sold); • ingresos totales por categoría, considerando descuentos, donde el descuento se calcula como unit_price × units_sold × (1 − discount/100). Si no hay descuento (NULL), se considera un 0%. Redondear a dos decimales; • promedio de unidades vendidas por venta (avg_units_per_sale), redondeado a dos decimales; • proporción de ventas sin descuento (no_discount_share) — número de ventas con NULL o 0% de descuento, dividido por el total de ventas en la categoría, redondeado a tres decimales. Primero, ordena los resultados por ingresos totales (total_revenue) en orden descendente, luego por promedio de unidades por venta (avg_units_per_sale) en orden ascendente, y finalmente por nombre de categoría en orden alfabético. Formato de entrada Tabla sales: • sale_id (int) — identificador único de la venta • product_id (int) — identificador del producto • category (text) — categoría del producto • sale_date (timestamp) — fecha y hora de la venta • units_sold (int) — unidades vendidas • unit_price (numeric) — precio por unidad • discount (numeric) — descuento en porcentaje, puede ser NULL La columna discount puede contener valores nulos. Formato de salida La consulta debe devolver una tabla con los siguientes campos en este orden: • category (text) — categoría del producto • total_units_sold (int) — cantidad total de unidades vendidas en la categoría • total_revenue (numeric) — ingresos totales en la categoría, redondeados a dos decimales • avg_units_per_sale (numeric) — promedio de unidades por venta, redondeado a dos decimales • no_discount_share (numeric) — proporción de ventas sin descuentos (valor entre 0 y 1), redondeado a tres decimales El resultado se ordena primero por total_revenue en orden descendente, luego por avg_units_per_sale en orden ascendente, y finalmente por categoría en orden alfabético.
Cuéntame sobre tu experiencia en X5: ¿en qué trabajaste en relación con DWH?
¿El almacenamiento fue construido según el esquema Data Vault — tú también lo desarrollaste, lo mantuviste? ¿Agregaste hubs, enlaces manualmente?
¿Alguna vez has trabajado con el optimizador AQE (Ejecución Adaptativa de Consultas) en Spark? ¿Sabes cómo funciona?
¿Cómo entiendes el concepto de claves en las tablas, para qué sirve esto?
Cuente sobre los conceptos básicos de Kafka (grupo de consumidores, particiones, temas).
¿Qué formato de trabajo le conviene: remoto, híbrido o en oficina?
¿Se puede ver el esquema de la tabla antes de ejecutar la consulta en Hive?
¿Cómo ves tu desarrollo en el nuevo equipo y qué tareas te gustaría realizar más?
¿Para qué se utilizan los decoradores en Apache Airflow?
¿Cuáles son tus planes para los próximos 5 años? ¿En qué áreas te gustaría desarrollarte?
¿Alguna vez has tenido que hacer informes, paneles, visualizaciones (BI)?
¿Cómo actuar en caso de sesgo (skew) en user_id al hacer JOIN entre tablas de transacciones y usuarios? ¿Cómo elegir la clave de distribución óptima?
Cuéntame más sobre la red: ¿qué es y por qué es importante?
¿Cómo cargó los datos desde S3 en Greenplum?
¿Por qué decidiste salir al mercado y dejar tu trabajo actual?
¿Utilizaron Bridge y tablas PIT en Data Vault? Da un ejemplo y explica su propósito.