Table of Contents

Conceptos básicos de almacenamiento de datos

Una comprensión sólida de los fundamentos de almacenamiento de datos es lo primero que evalúan los entrevistadores. Necesita no sólo definir términos sino también explicar cómo se aplican en escenarios del mundo real.

¿Qué es un almacén de datos?

Un almacén de datos es un repositorio centralizado que almacena grandes volúmenes de datos estructurados e históricos de múltiples sistemas de fuentes. Se optimiza para consultas y análisis en lugar de procesamiento de transacciones. Los almacenes de datos apoyan actividades de inteligencia empresarial como la presentación de informes, paneles y análisis ad-hoc. A diferencia de las bases de datos operacionales, un almacén de datos contiene datos integrados, subjetivos, variables de tiempo y no volátiles.

¿Cuáles son las características clave de un almacén de datos?

  • Orientación subjetiva:] Organizado en torno a temas importantes (por ejemplo, clientes, productos, ventas) en lugar de procesos de aplicación.
  • ]Integrado: Los datos de fuentes dispares se limpian, transforman y estandarizan en un formato consistente.
  • No-volatile: Los datos se leen una vez cargados; los cambios históricos se rastrean mediante la versión, no sobreescritura.
  • Tiempo-variante: Los datos contienen atributos de dimensión del tiempo (por ejemplo, sellos de fecha, períodos) para apoyar el análisis histórico.

¿Cómo difiere un almacén de datos de un lago de datos?

Un lago de datos almacena datos brutos, no procesados en su formato nativo (estructurados, semiestructurados o no estructurados). Un almacén de datos almacena datos procesados, limpiados y estructurados. Las organizaciones a menudo utilizan ambos: el lago para análisis exploratorios y aprendizaje automático, y el almacén para la presentación de informes estructurados. Los entrevistadores pueden preguntar sobre los casos de uso en los que uno es preferido por el otro.

¿Qué es un almacén de datos operativos?

Un ODS es una base de datos diseñada para integrar datos de múltiples sistemas operativos para la presentación de informes casi en tiempo real. A diferencia de un almacén de datos, el ODS se actualiza con frecuencia (a menudo en tiempo real) y normalmente no conserva instantáneas históricas. Actúa como un área de puesta en escena para la presentación de informes operacionales antes de que los datos se trasladen al almacén de datos.

Modelado de datos en almacenamiento de datos

El modelado de datos es el plano de un almacén de datos. Dos enfoques comunes son el esquema estrella y el esquema de copos de nieve.

¿Qué es un esquema estrella?

Un esquema estrella tiene una tabla de hechos central vinculada a una o más tablas de dimensión a través de claves extranjeras. Las dimensiones son denormalizadas (por ejemplo, una tabla de dimensión de producto única que contiene categoría, marca y subcategoría). Esta estructura simplifica las consultas y mejora el rendimiento de lectura. Es el modelo más común en el almacenamiento de datos.

¿Qué es un esquema de copos de nieve?

Un esquema de copos de nieve normaliza tablas de dimensión en varias tablas relacionadas. Por ejemplo, una dimensión de producto puede dividirse en tablas separadas de productos, marca y categoría. Si bien esto reduce la redundancia de datos, aumenta el número de afiliaciones y puede frenar el rendimiento de consultas. Se utiliza cuando la eficiencia de almacenamiento se prioriza sobre la velocidad de consulta.

¿Qué es una tabla de hechos? ¿Cuáles son los tipos de hechos?

Una tabla de hechos almacena medidas cuantitativas (por ejemplo, cantidad de ventas, cantidad, ganancia) y claves extranjeras que se unen a tablas de dimensión.

  • Transactional] – registra eventos individuales (por ejemplo, cada punto de línea de venta).
  • instantáneas periódicas] – captura medidas a intervalos regulares (por ejemplo, niveles diarios de inventario).
  • Acumulación de instantáneas – procesos de pistas con un inicio y final fijo (por ejemplo, etapas de cumplimiento de pedidos).

Los entrevistadores pueden pedirle que elija el tipo de hecho adecuado para un escenario de negocio dado.

¿Qué son las tablas de dimensión? Explicar las dimensiones conformadas.

Las tablas de dimensiones contienen atributos descriptivos (por ejemplo, nombre del cliente, color del producto, ubicación de la tienda). Las dimensiones conformadas se comparten en varias tablas de hecho dentro de un almacén de datos o en diferentes martas de datos. Garantizan la consistencia para que los informes puedan combinarse significativamente. Por ejemplo, una dimensión de fecha utilizada tanto en las ventas como en las tablas de datos de inventario debe tener la misma estructura y granularidad.

Dimensiones de cambio lento (SCDs)

Manejo de cambios en los atributos de dimensión a lo largo del tiempo es una habilidad crítica en el diseño de ETL. Los entrevistadores frecuentemente preguntan sobre los tipos de SCD.

Explicar Tipo 1, Tipo 2, y Tipo 3 cambiando lentamente las dimensiones.

  • Tipo 1: Sobrescribe el valor antiguo con el nuevo valor. No se conserva la historia. Adecuado cuando no se requiere la exactitud histórica (por ejemplo, corregir un tipopo en un nombre de producto).
  • Tipo 2:] Añade una nueva fila para seguir el cambio, con rangos de fecha eficaces (fecha de inicio, fecha final) y una bandera actual. Esto conserva la historia completa. La mayoría común para atributos como dirección de cliente o departamento de empleados.
  • Tipo 3:] Añade una nueva columna para almacenar el valor anterior manteniendo el valor actual. Esto permite una historia limitada (normalmente una versión anterior). Se utiliza para atributos que cambian de forma infrecuente (por ejemplo, realineación de la categoría de producto).

Prepárate para discutir los cambios: Tipo 2 aumenta el recuento de filas pero da una ruta completa de auditoría; Tipo 1 es simple pero pierde historia.

ETL Process Overview

El proceso de ETL es la columna vertebral de la integración de datos. Es esencial un entendimiento exhaustivo de cada fase y de los desafíos comunes.

Explicar cada paso de ETL en detalle.

Extract:] Los datos se extraen de varios sistemas de fuentes — bases de datos relacionales, archivos planos (CSV, JSON, XML), APIs, almacenamiento en la nube o plataformas de streaming. La extracción puede ser completa (todos los datos) o incremental (sólo nuevos/modificados registros desde la última ejecución).

[LT:0]Transform:

    Los datos se limpian, validan y se convierten en un formato consistente. Las transformaciones incluyen:
    • Conversiones tipo data (por ejemplo, cadena hasta la fecha)
    • [Complemento de duplicación y manipulación de nulas [LT] [LT] [LT] [

      Carga: Los datos transformados se insertan en el almacén de datos objetivo. Estrategias de carga: actualización completa (configurar y recargar), apéndice incremental y soporte (configurar). Considere la reconstrucción del índice, conmutación de particiones y gestión de transacciones durante la carga.

      ¿Cuál es la diferencia entre ETL y ELT?

      ETL transforma los datos antes de cargarlos en el almacén. ELT (Extract, Load, Transform) carga los datos brutos primero y luego lo transforma utilizando el poder de procesamiento del almacén de datos (por ejemplo, SQL o MapReduce). ELT es común en los almacenes de datos de nube modernos como Snowflake, BigQuery y Redshift, donde se descodifican fuente de almacenamiento y compute.

      ¿Cuáles son las herramientas comunes de ETL?

      Las herramientas populares incluyen Informatica PowerCenter, Talend, IBM DataStage, Microsoft SSIS, Apache NiFi y servicios de cloud-native como AWS Glue, Azure Data Factory y Google Dataflow. Opciones de código abierto: Pentaho (Kettle), Apache Airflow (orquestación), y dbt (herramienta de construcción de datos para las transformaciones).

      Preguntas de entrevista común y sus respuestas detalladas

      1. ¿Cuáles son los principales retos que se enfrentan en los procesos de ETL, y cómo los mitiga?

      Entre los desafíos se incluyen:

      • Cuestiones de calidad de datos] – valores perdidos, duplicados, formatos inconsistentes. Mitigación: implementar reglas de profilado y validación tempranamente; usar tablas de estadificación para cuarentena de registros malos.
      • Performance bottlenecks] – lenta extracción de sistemas de fuentes, transformaciones pesadas o cargas ineficientes. Mitigación: uso de extracción incremental, procesamiento paralelo, partición de lotes y optimización de las estrategias de unión SQL.
      • Crecimiento del volumen de datos – cargando terabytes diariamente. Mitigación: implementar la poda de partición, compresión y infraestructura cloud escalable.
      • Requisitos de latencia de datos] – necesidad de actualizaciones casi en tiempo real. Mitigación: utilizar la captura de datos de cambio (CDC) y herramientas de ingestión de streaming (Kafka, Kinesis).
      • Gestión de la dependencia] – Trabajos ETL que no se deben a la contención de recursos o conflictos de programación. Mitigación: utilizar herramientas de orquestación con lógica de reingreso y alerta.

      2. ¿Cómo optimiza los procesos de ETL para el rendimiento?

      Optimización de rendimiento abarca múltiples áreas:

      • Extracción:] Utilizar extracción incremental en lugar de cargas completas; implementar CDC (por ejemplo, basado en registros o en tiempos de hora); utilizar utilidades de copia a granel.
      • Transformación:] Empujar transformaciones cuando sea posible (por ejemplo, utilizar SQL en la base de datos); evitar operaciones de fila por fila; usar la lógica basada en conjunto; paralelizar tareas independientes.
      • Carga: Desactivar índices y limitaciones durante la carga y reconstruir después; utilizar los insertos de lotes; considerar la conmutación de partición para tablas grandes.
      • Infraestructura: Utilizar SSDs, escala de recursos y capas de caché. Monitorear con herramientas de perfilado para identificar los cuellos de botella.

      3. ¿Cuál es la diferencia entre los sistemas OLAP y OLTP?

      OLTP (Procesamiento de transacciones en línea) está diseñado para transacciones atómicas de alto volumen (por ejemplo, entrada de pedidos, actualizaciones de inventario). Los datos se normalizan y las consultas tocan un pequeño número de registros. OLAP (Procesamiento analítico en línea) está diseñado para consultas complejas que agregan grandes volúmenes de datos históricos. Los sistemas OLAP son normalmente desnormalizados (procesamiento de estrellas) y soporte análisis multidimensional

      4. Explicar el concepto de claves surrogadas vs claves naturales en el almacenamiento de datos.

      Una clave de surrogado es un identificador único creado por el sistema (por ejemplo, secuencia de enteros) usado como la clave principal en una tabla de dimensión. Una clave natural es un identificador de negocios de la fuente (por ejemplo, código de producto, ID de cliente). Las claves de surogado se recomiendan porque son estables (las claves de negocio pueden cambiar, causando efectos de onda), soporte SCD Tipo 2 (atributos de comprobación de trazados por negocio).

      5. ¿Cómo se maneja el manejo de errores en un oleoducto ETL?

      Implementar un marco de gestión de errores robusto:

      • Utilice bloques de captura de prueba y errores de registro en una tabla de error separada con ID de trabajo, timetamp, datos de fila y descripción de errores.
      • Definir reglas de calidad de datos y rechazar registros que no validen en una carpeta o tabla de cuarentena.
      • Configurar alertas (email, Slack) para fallos críticos.
      • Implementar la lógica de retry para errores transitorios (tiempos de red).
      • Mantener una tabla de historia de ejecución para seguir el éxito/la situación de fracaso para cada paso de trabajo.

      6. ¿Qué es la captura de datos de cambio (CDC)?

      CDC es una técnica para capturar cambios (insértese, actualizaciones, borrados) en los datos de origen y aplicarlos a un sistema de destino. Métodos incluyen:

      • CDC basado en el segmento de tiempo (por ejemplo, Oracle GoldenGate, Debezium)
      • [Fcompleto]

        Preguntas de entrevista avanzada

        7. ¿Cómo se diseña un proceso de ETL para un almacén de datos que soporta tanto la ingestión de lotes como en tiempo real?

        Para el lote: programar trabajos nocturnos utilizando cargas incrementales. Para el tiempo real: utilizar una capa de streaming (por ejemplo, Kafka) para capturar eventos, luego aplicar transformaciones ligeras y cargar en una tabla de hecho en tiempo real o una capa delta (por ejemplo, en un lagos).Los caminos del lote y el parque real deben converger en el almacén utilizando la lógica del subsuelo Considerar las herramientas de partición por tiempo consistente

        8. Explicar el linaje de datos y por qué es importante.

        El linaje de datos rastrea el origen, las transformaciones y el movimiento de datos de origen a destino. Ayuda en análisis de impacto (lo que los informes de abajo rompen si una fuente cambia), depuración (trace por qué un valor es incorrecto) y auditoría (cumplimiento de regulaciones como GDPR o SOX). Herramientas como Apache Atlas, Márquez o soluciones comerciales (Collibración, Alación) proporcionan lineage automatizado.

        9. ¿Cuál es la diferencia entre un almacén de datos y un conjunto de datos?

        Un almacén de datos es un repositorio de toda la empresa que abarca múltiples áreas temáticas. Un conjunto de datos es un subconjunto enfocado en una sola función empresarial (por ejemplo, ventas, finanzas). Los datos se pueden construir sobre el almacén (dependiente) o independiente (independiente). Elegir entre ellos implica compensación de costos, gobernanza y agilidad.

        10. ¿Cómo se manejan las dimensiones cambiantes lentamente en ETL?

        El enfoque depende del tipo SCD:

        • Tipo 1:] Usar las declaraciones UPDATE para sobreescribir el registro.
        • Tipo 2:] Usar un MERGE (upsert) para cerrar la versión anterior (fecha de inicio) e insertar una nueva fila con fecha de inicio = ahora y la bandera actual = verdadero.
        • Tipo 3:] UPDATE la columna actual y mover el valor antiguo a la columna anterior.

        Para grandes dimensiones, implemente un caché de búsqueda para reducir los viajes de ronda de bases de datos. Considere también utilizar la comparación de hash para detectar cambios reales y evitar actualizaciones innecesarias.

        ETL Mejores Prácticas

        Los entrevistadores buscarán experiencia práctica. Mencionar estas mejores prácticas durante las discusiones:

        • Diseño modular: Rompe los empleos de ETL en componentes reutilizables (por ejemplo, carga de estadificación reutilizable, biblioteca de transformación estándar).
        • Idempotencia:] Asegurar que la reorganización de un trabajo produce el mismo resultado (sin duplicados).
        • Gestión de metadatos: Mantener un diccionario de datos y un gráfico de dependencia de empleo.
        • Supervisión de la actuación: Seguimiento de métricas clave: filas procesadas por minuto, duración, tasas de error y skew. Usar tableros de control.
        • Control de la versión: Almacene código ETL en Git junto con scripts SQL y archivos de configuración.
        • Testing: Escribe pruebas unitarias para las transformaciones, pruebas de integración para los oleoductos finales a extremos y pruebas de comparación de datos contra la fuente y el objetivo.

        Referencia de recursos externos para un aprendizaje más profundo: IBM on ETL], Snowflake: ETL vs ELT, and Martin Fowler on evolutionary data].

        Conclusión

        La docencia de entrevistas sobre el almacenamiento de datos y los procesos de ETL requiere tanto conocimiento teórico como experiencia práctica. Centrarse en conceptos básicos – características de almacén de datos, modelado dimensional, optimización de SCDs y ETL – y estar listo para discutir retos reales con soluciones específicas. Prácticamente explicando claramente su proceso de pensamiento. Al prepararse para estas preguntas comunes y avanzadas, usted demostrará la experiencia necesaria para desempeñar funciones exitosas de gestión de datos.