No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Extracción: querys en SQL

18/26
Recursos

¿Cómo crear soluciones de bases de datos efectivas?

En el ámbito del Business Intelligence, construir una arquitectura sólida de bases de datos es clave para el proceso de toma de decisiones. La creación de tablas bien estructuradas y llenas de datos precisos es esencial. Revisemos los pasos y mejores prácticas para lograrlo.

¿Qué importancia tienen las tablas de dimensiones y hechos?

Al estructurar un Data Warehouse, se utilizan tablas de dimensiones y de hechos para organizar la información:

  • Tabla de Dimensiones: Define categorías de análisis (por ejemplo, productos, territorios, vendedores, tiempo) e incorpora campos de auditoría como fecha de carga y actualización.
  • Tabla de Hechos (FAQ): Se centra en los eventos procesables, vinculando todas las dimensiones necesarias mediante sus IDs.

¿Cómo se integra una dimensión de tiempo útil?

La dimensión de tiempo es fundamental y debe estar ajustada de acuerdo a:

  • Atributos Clave: Fecha, día, mes, año, día de la semana, día del año.
  • Utilidad: Permitir análisis temporales como mensuales, anuales o diarios.

Algunas herramientas de visualización como Power BI pueden generar esta dimensión automáticamente, pero estructurarla manualmente en modelos permite flexibilidad en el contexto de diferentes herramientas.

¿Cómo ejecutar extracción y transformación de datos?

Uno de los componentes más emocionantes del flujo de trabajo en BI es la creación del código para extracción y transformación de datos. Este proceso puede simplificarse con herramientas como Pentaho. Veamos cómo hacerlo de manera eficiente usando un ejemplo práctico: la dimensión de clientes.

¿Cómo se construye un Query detallado?

Para extraer la dimensión de clientes desde AdventureWorks a nuestro Data Warehouse, se siguen estos pasos:

  1. Construcción Inicial:

    • Empezamos con el campo CustomerID desde la tabla Customer.
    SELECT C.CustomerID
    FROM sales.Customer AS C
    
  2. Incorporación de Datos Personales:

    • Datos de nombres y apellidos se extraen de Person.Person.
    LEFT JOIN person.Person AS P
    ON C.PersonID = P.BusinessEntityID
    SELECT 
      (P.FirstName + ' ' + P.LastName) as NombreCompleto
    
  3. Extracción de Teléfonos:

    • Se realiza un LEFT JOIN con la tabla PersonPhone para obtener distintos tipos de teléfono.
    LEFT JOIN person.PersonPhone AS PH
    ON P.BusinessEntityID = PH.BusinessEntityID
    
  4. Relación de Dirección:

    • Para obtener la ciudad, se realiza una secuencia de JOINs desde Person.Person a Address.
    LEFT JOIN person.BusinessEntityAddress AS B2
    ON P.BusinessEntityID = B2.BusinessEntityID
    
  5. Uso de Condiciones Específicas:

    • Inclusión de condiciones WHERE para filtrar los datos, como solo incluir números de teléfono tipo 1 (celular).

¿Cómo se implementan estas transformaciones en Pentaho?

Después de la creación exitosa del Query SQL:

  • Integración en Pentaho: Copiar y pegar el Query en Pentaho para ejecutar transformaciones de datos.
  • Resultado esperado: Cumplir con la estructura necesaria para la tabla dimensional de clientes.

Construir tablas eficaces y aplicar un flujo de extracción, transformación y carga (ETL) preciso asegura que el Data Warehouse funcione de manera óptima para apoyar el proceso de decisión. Este tipo de trabajo detallado y considerado es esencial para cualquier proyecto de inteligencia de negocios exitoso. ¡Sigue aprendiendo y aplicando estas técnicas para dominar el mundo del BI!

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Como buena práctica en el desarrollo de data warehouse no se recomienda tener registros NULL en las dimensiones y/o hechos. Se sugiere cambiarlos por registros dummy, por ejemplo, asignar palabras dicientes de cada campo como (sin_telefono, sin_ciudad, no_registra…) o asignar el valor en blanco (" ").

A todos los interesados en el arte de data warehousing, de dimensional modeling, les recomiendo dbt, es una herramienta que es el estandar en la industria.

Soy Analytics Engineer y es mi herramienta principal, fundamental en lo que llamamos el “Modern Data Stack”.

Seria buenisimo un curso de dbt por parte de platzi, hoy en dia no conozco una startup que no utilice dbt, y aqui nunca lo he escuchado en ningun curso.

Una consulta: Si las tablas en el datawarehouse no tienen relaciones como en las bases de datos transaccionales como hago para presentar información en una herramienta de bi y qeu esa relacion se mantenga cuando realizo los filtros?

De acuerdo con lo visto aqui, quiere decir que hay clientes creados que no existen en la tabla personas?

No debe existir primero la persona y luego el cliente?, dado que no todas las personas creadas deben ser necesariamente clientes, pero si todos los clientes son necesariamente personas?

Entiendo que esto aquí no tiene relevancia porque es para temas netamente académicos, pero si nos encontramos con problemas como estos en la vida real, cual sería la metodología mas correcta a seguir?