15
STD – CONSTRUYENDO UN DATA WAREHOUSE Página 1 LABORATORIO N° 04 Asignatura : Sistema de Toma de Decisiones Turno : Noche Docente : Ing. Johny Pretell C. Ciclo : VII Semestre : 2012-2 I. OBJETIVOS Familiarizarse con una Base de Datos OnLine Transaction Process (OLTP) Ejecutando Simples búsquedas a los datos en un Online Analytical Processing (OLAP) II. EQUIPOS Y MATERIALES Computadora personal MS Integration Services Guía de Laboratorio. Base de Datos Completa NorthWind III. METODOLOGIA Y ACTIVIDADES Ejercicio 01 Definiendo Flujos de Trabajo Con el DTS se puede definir un flujo de trabajo que controla la ejecución secuencial paso a paso. Controlar el flujo lógico y determinando las precedencias respectivas, priorizando tareas a desarrollar. Definiendo Pasos de Transformación Un paso define una unidad de trabajo que es ejecutada como parte de un proceso de transformación. Un paso puede: Ejecutar una orden SQL Mover y transformar datos heterogéneos Ejecutar Jscript, VBScript. Estos scripts pueden ejecutar cualquier operación con su lenguaje nativo. Recuperar y ejecutar otros DTS packages. Por ejemplo Ud. Puede preparar un DTS package para sumarizar las ventas al contado y al crédito resumidas por mes, vendedor, etc. De diferentes tablas y ponerlas un una sola tabla. Pasos, Tareas y Restricciones de precedencia: Un paquete se forma a partir de conexiones de datos (orígenes y destinos) y tareas usadas para ejecutar estas conexiones. La acción de ejecutar una tarea es controlada por un paso: Notemos los sgts pasos y restricciones de precedencia en el DTS Designer. CARRERA PROFESIONAL DE INGENIERÍA DE SISTEMAS Procesos ETL con Microsoft Integration Services

Laboratorio-N-04 Poblando Un DW

Embed Size (px)

Citation preview

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 1

    LABORATORIO N 04

    Asignatura : Sistema de Toma de Decisiones Turno : Noche Docente : Ing. Johny Pretell C. Ciclo : VII Semestre : 2012-2

    I. OBJETIVOS Familiarizarse con una Base de Datos OnLine Transaction Process (OLTP)

    Ejecutando Simples bsquedas a los datos en un Online Analytical Processing (OLAP)

    II. EQUIPOS Y MATERIALES Computadora personal

    MS Integration Services

    Gua de Laboratorio.

    Base de Datos Completa NorthWind

    III. METODOLOGIA Y ACTIVIDADES

    Ejercicio 01 Definiendo Flujos de Trabajo

    Con el DTS se puede definir un flujo de trabajo que controla la ejecucin secuencial paso a

    paso. Controlar el flujo lgico y determinando las precedencias respectivas, priorizando tareas

    a desarrollar.

    Definiendo Pasos de Transformacin

    Un paso define una unidad de trabajo que es ejecutada como parte de un proceso de

    transformacin. Un paso puede:

    Ejecutar una orden SQL

    Mover y transformar datos heterogneos Ejecutar Jscript, VBScript. Estos scripts pueden

    ejecutar cualquier operacin con su lenguaje

    nativo.

    Recuperar y ejecutar otros DTS packages.

    Por ejemplo Ud. Puede preparar un DTS package

    para sumarizar las ventas al contado y al crdito

    resumidas por mes, vendedor, etc. De diferentes

    tablas y ponerlas un una sola tabla.

    Pasos, Tareas y Restricciones de precedencia: Un paquete se forma a partir de conexiones de

    datos (orgenes y destinos) y tareas usadas para

    ejecutar estas conexiones. La accin de ejecutar

    una tarea es controlada por un paso:

    Notemos los sgts pasos y restricciones de precedencia en el DTS Designer.

    Poblando un Data Warehouse

    CARRERA PROFESIONAL DE INGENIERA

    DE SISTEMAS

    Procesos ETL con Microsoft Integration Services

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 2

    Las restricciones de precedencia son representadas por una lnea azul (Cuando se ha

    completado) Verde (ejecutada) o Rojo (Error)

    Veamos el sgte. Diagrama:

    Tipos de Restriccin de Precedencia

    Los tipos de restricciones de precedencia que seleccione determinar los requerimientos para

    ejecutar cada paso:

    SUCCESS indica que el paso origen debe completarse satisfactoriamente antes de que el paso

    de destino empiece a ejecutarse.

    FAILURE indica que el Paso origen debe completarse con una indicacin de error antes de

    ejecutar el paso destino.

    COMPLETION: indica que el paso origen debe simplemente ejecutarse (con FAILURE O

    SUCCESS) antes de que el paso destino se ejecute.

    Ejemplo de formas de flujo de trabajo: Un paquete con pasos que se ejecutan en paralelo y secuencialmente

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 3

    Poblamiento Utilizando el Transact-SQL Ejemplo 1 Copiando informacin y transformando datos. Mismo Origen

    Origen: MS SQL Server: NorthWind.dbo.Employees

    Destino: MS SQL Server: NorthWind_Mart.dbo.Employee_Dim Sin verificar datos del destino.

    Suponga que desea copiar informacin desde NorthWind hacia NorthWind_Mart de la tabla Employees

    USE NorthWind

    INSERT employee_dim

    (EmployeeID, EmployeeName, HireDate)

    SELECT EmployeeID, LastName + ','+ FirstName AS EmployeeName, HireDate

    FROM NorthWind.dbo.Employees

    Ejecute nuevamente esta ltima instruccin y luego consulte la informacin de la tabla

    dimensin:Employee_Dim

    Qu observa en los datos?

    Eliminando datos de la Tabla Dimensin: Employee_Dim

    DELETE FROM Employee_Dim Copiando informacin y transformando datos. Verificando datos del destino

    Utilizando el mtodo de limpieza total

    DELETE FROM Employee_Dim

    INSERT employee_dim

    (EmployeeID, EmployeeName, HireDate)

    SELECT EmployeeID, LastName + ','+ FirstName AS EmployeeName, HireDate

    FROM NorthWind.dbo.Employees WHERE EmployeeID

    Utilizando el mtodo incremental

    INSERT employee_dim

    (EmployeeID, EmployeeName, HireDate)

    SELECT EmployeeID, LastName + ','+ FirstName AS EmployeeName, HireDate FROM NorthWind.dbo.Employees WHERE EmployeeID

    NOT IN (SELECT EmployeeID FROM employee_dim)

    Ejemplo de Ejecucin de un Package Creacin de una DTS Package Creando un Paquete y Adicionando Conexiones

    Actividad 1: Ingresando al SSIS

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 4

    1. Iniciar el SQL Server Business Intelligence Development Studio y desde el Menu la opcion : File New Project con lo que aparece la interfaz siguiente:

    2. Elija en

    a. Tipo Proyecto: Business Intelligent Projects

    b. Templates: Integration Services Project

    c. Name: Doblamiento General NorthWind_Mart

    d. Browse: ubique la direccion deseada

    e. Ok Ver la sgte interfaz

    3. Renombrar el Paquete como: Poblamiento General

    Recuerde que un proyecto es una coleccin de Paquetes, DataSources,

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 5

    DataSource Views y otros elementos que podrn ser usados mientras desarrolle la construccin del paquete.

    Actividad 2: Creando la conexin de datos ORIGEN

    1. Clic derecho sobre DataSource : New con lo que se activa:

    2. Haga clic en New y digite los sgts datos

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 6

    3. Ok 4. Next

    5. Finish

    Actividad 3: Creando la conexin destino de datos 1. Proceda como en paso anterior, pero esta vez establezca la conexin con la BD

    NorthWind_Mart.

    Actividad 4: Agregando una tarea de ejecucin 1. Asegurarse de estar ubicado en Control Flow 2. Desde ToolBox arrastre Execute SQL Task luego clic derecho Edit ubique la

    propiedad Connection y seleccione: localhost.NorthWind_Mart

    3. Ubique la propiedad SQL Statment clic en () y digite lo sgte:

    DELETE Sales_Fact

    DELETE Employee_Dim

    DBCC CHECKIDENT('Employee_Dim', reseed,0)

    DELETE Time_Dim

    DBCC CHECKIDENT('Time_Dim', reseed,0) DELETE Customer_Dim

    DBCC CHECKIDENT('Customer_Dim', reseed,0)

    DELETE Shipper_Dim

    DBCC CHECKIDENT('Shipper_Dim', reseed,0) DELETE Product_Dim

    DBCC CHECKIDENT('Product_Dim', reseed,0)

    4. Ok 5. Ok

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 7

    Poblando Dimensin Transportistas Actividad 1: Creando el Flujo de Datos

    1. Desde ToolBox arrastre DataFlowTask

    2. Clic derecho: Rename y digite: Poblando Transportistas 3. Clic en Execute SQL Tasks, clic en la flecha verde y arrastre hasta Poblando

    Transportistas

    Aspecto Inicial Actividad 2: Estableciendo el origen

    1. Doble clic sobre Poblando Transportistas 2. En ToolBox en DataFlowSources arrastre OLEDB DataSource y haga doble clic

    3. Desde ConnectionManager a. OLE DB Connection Manager : localhost.NorthWind

    b. Data Access: Table o View

    c. Name: Shippers

    4. S

    Actividad 3: Estableciendo el destino

    1. En ToolBox en DataFlowDestinations , arrastre OLEDB DataDestionation

    2. Clic en OLE DB DataSource, clic en la flecha verde y arrastre hacia OLEDB

    Data Destination

    3. Doble Clic en OLEDB DataDestination.

    4. Desde ConnectionManager>

    a. OLE DB Connection Manager: localhost.NorthWind_Mart

    b. Data Access; Table

    c. Name: Shipper_Dim

    Clic en Mappings: y trate de llegar al sgte esquema

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 8

    Actividad 4: Grabando y Ejecutando el Paquete

    1. Grabar

    2. Presione F5 para ejecutar

    Actividad 5: Verificando Poblamiento

    1. Cargue el SQL Server Management Studio 2. Clic en New Quero 3. Seleccione la BD: NorthWind_Mart 4. Digite: SELECT * FROM Shipper_Dim

    Poblando Dimensin Clientes Actividad 1: Creando el Flujo de Datos

    1. Desde ToolBox arrastre DataFlowTask

    2. Clic derecho: Rename y digite: Poblando Clientes

    3. Clic en Execute SQL Tasks, clic en la flecha verde y arrastre hasta

    4. Poblando Clientes

    Actividad 2: Estableciendo el origen

    1. Doble clic sobre Poblando Cliente

    2. En ToolBox en DataFlowSources arrastre OLEDB DataSource y haga doble clic

    3. Desde ConnectionManager

    4. Desde ConnectionManager> a. OLE DB Connection Manager : localhost.NorthWind b. Data Access:

    SQL Command

    b. Data Access: SQL Command

    c. SQL CommandText: SELECT *, Regioncita = ISNULL(Region, 'Otros')

    FROM customers

    Actividad 3: Estableciendo el destino

    1. En ToolBox en DataFlowDestinations , arrastre OLEDB DataDestionation

    2. Clic en OLE DB DataSource, clic en la flecha verde y arrastre hacia OLEDB Data Destination

    3. Doble Clic en OLEDB DataDestination 4. Desde ConnectionManager>

    a. OLE DB Connection Manager: localhost.NorthWind_Mart b. Data Access; Table c. Name: Customer_Dim

    Clic en Mappings: y trate de llegar al sgte esquema

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 9

    Asegurarse de que en Destino Regin sea a partir de Regioncita

    Actividad 4: Grabando y Ejecutando el Paquete

    1. Grabar

    2. Presione F5 para ejecutar Actividad 5: Verificando Poblamiento 1. Cargue el SQL Server Management Studio

    2. Clic en New Query

    3. Seleccione la BD: NorthWind_Mart

    4. Digite: SELECT * FROM Customer_Dim

    Poblando Dimensin Tiempo Actividad 1: Creando el Flujo de Datos

    1. Desde ToolBox arrastre DataFlowTask

    2. Clic derecho: Rename y digite: Poblando Tiempo 3. Clic en Execute SQL Tasks, clic en la flecha verde y arrastre hasta Poblando

    Tiempo

    Actividad 2: Estableciendo el origen 4. Doble clic sobre Poblando Tiempo 5. En ToolBox en DataFlowSources arrastre OLEDB DataSource y haga doble clic

    6. Desde ConnectionManager a. OLE DB Connection Manager : localhost.NorthWind

    b. Data Access: SQL Command

    c. SQL CommandText:

    SELECT DISTINCT S.ShippedDate AS TheDate, DateName(dw, S.ShippedDate) AS DayOfWeek,

    DatePart(mm, S.ShippedDate) AS [Month], DatePart(yy, S.ShippedDate) AS [Year],

    DatePart(qq, S.ShippedDate) AS [Quarter],DatePart(dy, S.ShippedDate) AS

    DayOfYear,

    DateName(month, S.ShippedDate) + '_' + DateName(year,S.ShippedDate) AS YearMonth, DatePart(wk,

    S.ShippedDate) AS WeekOfYear

    FROM Orders S

    WHERE S.ShippedDate IS NOT NULL

    Actividad 3: Estableciendo el destino

    1. En ToolBox en DataFlowDestinations , arrastre OLEDB DataDestionation 2. Clic en OLE DB DataSource, clic en la flecha verde y arrastre hacia OLEDB Data

    Destination 3. Doble Clic en OLEDB DataDestination. 4. Desde ConnectionManager>

    a. OLE DB Connection Manager: localhost.NorthWind_Mart b. Data Access; Table c. Name: time_Dim

    Clic en Mappings: y trate de llegar al sgte esquema

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 10

    Actividad 4: Grabando y Ejecutando el Paquete

    1. Grabar

    2. Presione F5 para ejecutar

    Actividad 5: Verificando Poblamiento

    1. Cargue el SQL Server Management Studio

    2. Clic en New Query

    3. Seleccione la BD: NorthWind_Mart

    4. Digite: SELECT * FROM Time_Dim

    Poblando Dimension Producto

    Actividad 1: Creando el Flujo de Datos

    1. Desde ToolBox arrastre DataFlowTask

    2 Clic derecho: Rename y digite: Poblando Producto

    3. Clic en Execute SQL Tasks, clic en la flecha verde y arrastre hasta Poblando Producto

    Actividad 2: Estableciendo el origen 1. Doble clic sobre Poblando Tiempo 2. En ToolBox en DataFlowSources arrastre OLEDB DataSource y haga doble clic

    3. Desde ConnectionManager a. OLE DB Connection Manager : localhost.NorthWind

    b. Data Access: SQL Command

    c. Clic en el boton: Build Query

    d. Clic derecho: Add Table. Seleccione: Products, Suppliers y Categories

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 11

    e. Clic: Add

    f. Clic:Close g. Seleccione las columnas de acuerdo a lo mostrado a continuacin.

    h. Clic ok i. Clic ok

    Actividad 3: Estableciendo el destino

    1. En ToolBox en DataFlowDestinations , arrastre OLEDB DataDestionation

    2. Clic en OLE DB DataSource, clic en la flecha verde y arrastre hacia OLEDB Data Destination

    3. Doble Clic en OLEDB DataDestination. 4. Desde ConnectionManager>

    a. OLE DB Connection Manager: localhost.NorthWind_Mart b. Data Access; Table c. Name: Product_Dim

    Clic en Mappings: y trate de llegar al sgte esquema

    Actividad 4: Grabando y Ejecutando el Paquete

    1. Grabar

    2. Presione F5 para ejecutar Actividad 5: Verificando Poblamiento 1. Cargue el SQL Server Management Studio

    2. Clic en New Query

    3. Seleccione la BD: NorthWind_Mart

    4. Digite: SELECT * FROM Product_Dim

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 12

    Poblando Dimensin Empleados

    Actividad 1: Creando el Flujo de Datos

    1. Desde ToolBox arrastre DataFlowTask

    2. Clic derecho: Rename y digite: Poblando Empleados

    3. Clic en Execute SQL Tasks, clic en la flecha verde y arrastre hasta Poblando Empleados Actividad 2: Estableciendo el origen 1. Doble clic sobre Poblando Tiempo 2. En ToolBox en DataFlowSources arrastre OLEDB DataSource y haga doble clic

    3. Desde ConnectionManager a. OLE DB Connection Manager : localhost.NorthWind

    b. Data Access: SQL Command

    c. SQL CommandText:

    select * , FirstName +',' + LastName as EmployeeName

    from employees

    Actividad 3: Estableciendo el destino

    1. En ToolBox en DataFlowDestinations , arrastre OLEDB DataDestionation

    2. Clic en OLE DB DataSource, clic en la flecha verde y arrastre hacia OLEDB Data

    Destination

    3. Doble Clic en OLEDB DataDestination.

    4. Desde ConnectionManager>

    a. OLE DB Connection Manager: localhost.NorthWind_Mart b. Data Access; Table

    c. Name: Employee_Dim

    Clic en Mappings: y trate de llegar al sgte esquema

    Actividad 4: Grabando y Ejecutando el Paquete

    1. Grabar 2. Presione F5 para ejecutar Actividad 5: Verificando Poblamiento 1. Cargue el SQL Server Management Studio

    2. Clic en New Query

    3. Seleccione la BD: NorthWind_Mart

    4. Digite: SELECT * FROM Employee_Dim 5. Execute

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 13

    Poblando Tabla Hecho Actividad 1: Creando el Flujo de Datos

    1. Ubicarse en Control Flow

    2. Desde ToolBox arrastre DataFlowTask

    3. Clic derecho: Rename y digite: Poblando Tabla Hecho 4. Clic en Poblando Transportistas, clic en la flecha verde y arrastre hasta

    Poblando Tabla Hecho.

    5. Clic en Poblando Clientes, clic en la flecha verde y arrastre hasta Poblando Tabla

    Hecho.

    6. Clic en Poblando Tiempo, clic en la flecha verde y arrastre hasta Poblando Tabla Hecho.

    7. Clic en Poblando Productos, clic en la flecha verde y arrastre hasta Poblando Tabla Hecho.

    8. Clic en Poblando Empleados, clic en la flecha verde y arrastre hasta Poblando Tabla Hecho.

    Actividad 2: Estableciendo el origen

    1. Doble clic sobre Poblando Tabla Hecho 2. En ToolBox en DataFlowSources arrastre OLEDB DataSource y haga doble clic

    3. Desde ConnectionManager a. OLE DB Connection Manager : localhost.NorthWind

    b. Data Access: SQL Command

    c. SQL CommandText:

    SELECT

    Northwind_Mart.dbo.Time_Dim.TimeKey,

    Northwind_Mart.dbo.Customer_Dim.CustomerKey,

    Northwind_Mart.dbo.Shipper_Dim.ShipperKey,

    Northwind_Mart.dbo.Product_Dim.ProductKey, Northwind_Mart.dbo.Employee_Dim.EmployeeKey,

    Northwind.dbo.Orders.RequiredDate, Orders.Freight * [Order Details].Quantity /

    (SELECT SUM(Quantity)

    FROM [Order Details] od

    WHERE od.OrderID = Orders.OrderID) AS

    LineItemFreight,

    [Order Details].UnitPrice * [Order Details].Quantity AS

    LineItemTotal,

    [Order Details].Quantity AS LineItemQuantity,

    [Order Details].Discount * [Order Details].UnitPrice *,

    [Order Details].Quantity AS LineItemDiscount

    FROM Orders

    INNER JOIN [Order Details] ON Orders.OrderID =

    [Order Details].OrderID INNER JOIN Northwind_Mart.dbo.Product_Dim

    ON [Order Details].ProductID =

    Northwind_Mart.dbo.Product_Dim.ProductID INNER JOIN Northwind_Mart.dbo.Customer_Dim

    ON Orders.CustomerID =

    Northwind_Mart.dbo.Customer_Dim.CustomerID INNER JOIN Northwind_Mart.dbo.Time_Dim

    ON Orders.ShippedDate =

    Northwind_Mart.dbo.Time_Dim.TheDate INNER JOIN

    Northwind_Mart.dbo.Shipper_Dim

    ON Orders.ShipVia =

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 14

    Northwind_Mart.dbo.Shipper_Dim.ShipperID INNER JOIN

    Northwind_Mart.dbo.Employee_Dim

    ON Orders.EmployeeID =

    Northwind_Mart.dbo.Employee_Dim.EmployeeID WHERE

    (Orders.ShippedDate IS NOT NULL)

    Actividad 3: Estableciendo el destino

    9. En ToolBox en DataFlowDestinations , arrastre OLEDB DataDestionation

    10. Clic en OLE DB DataSource, clic en la flecha verde y arrastre hacia OLEDB Data Destination

    11. Doble Clic en OLEDB DataDestination.

    12. Desde ConnectionManager>

    a. OLE DB Connection Manager: localhost.NorthWind_Mart

    b. Data Access; Table

    c. Name: Sales_Fact

    Clic en Mappings: y trate de llegar al sgte esquema

    Actividad 4: Grabando y Ejecutando el Paquete

    1. Grabar

    2. Presione F5 para ejecutar Actividad 5: Verificando Poblamiento 1. Cargue el SQL Server Management Studio

    2. Clic en New Query

    3. Seleccione la BD: NorthWind_Mart

    4. Digite: SELECT * FROM Sales_Fact 5. Ejecutar

    Ejercicio 04 Grabando y Ejecutando el Paquete

    1. Hace click en el cono de grabar. 2. Grabe el paqute con: Poblando el Data Mart para NorthWind 3. Seleccione SQL Server de la lista Location 4. Click OK Ejecutar el Paquete: 1. Presione el botn grabar 2. Para ejecutar el paquete haga click en el botn execute 3. A continuacin observar la ejecucin de cada dimensin programada. 4. Si observa ninguna advertencia de error, corrija. 5. Haga click en Done

  • STD CONSTRUYENDO UN DATA WAREHOUSE Pgina 15

    6. Repita los pasos 2,3, 4 y 5 ms veces. Esto le permitir ver informacin ms tarde.

    Ejercicio 05. Consultando informacin de NorthWind_mart

    1. Ejecutar la siguiente consulta:

    SELECT

    Product_Dim.ProductName, Product_Dim.CategoryName, Product_Dim.SupplierName, SUM(Sales_Fact.LineItemQuantity) AS [Total Units Sold]

    FROM Sales_Fact

    INNER JOIN Product_Dim ON Sales_Fact.ProductKey = Product_Dim.ProductKey GROUP BY

    Product_Dim.ProductName, Product_Dim.CategoryName,

    Product_Dim.SupplierName, Sales_Fact.RequiredDate HAVING (Sales_Fact.RequiredDate < getdate()) 2. Realice las sgts consultas de informacin, que determinan la Jerarqua de los Datos en

    un Data WareHouse en la dimensin productos

    a. Consultando Productos select ProducName, SUM(LineItemQuantity) as cantidad, SUM(LineItemTotal) AS total from sales_fact sf inner join product_Dim p on sf.productKey = p.ProductKey GROUP BY ProductName

    b. Consultando Categoras - Productos select CategoryName, ProductName,

    SUM(LineItemQuantity) as cantidad, SUM(LineItemTotal) AS total from sales_fact sf inner join product_Dim p on sf.productKey = p.ProductKey GROUP BY CategoryName, ProductName

    ORDER BY CategoryName, ProductName

    c. Consultando Proveedores Categorias Productos

    select SupplierName, CategoryName, ProductName, SUM(LineItemQuantity) as cantidad, SUM(LineItemTotal) AS total from sales_fact sf inner join product_Dim p on sf.productKey = p.ProductKey GROUP BY SupplierName, CategoryName, ProductName ORDER BY SupplierName, CategoryName, ProductName

    3. Realice las consultas que determinen la jerarqua de la dimensin Clientes:

    a. Para el cliente b. Ciudad - Cliente c. Region Ciudad Cliente d. Pas Regin Ciudad Cliente

    4. Se quiere un realizar un anlisis de las ventas de las productos por aos. Ejecute las

    sgts. Consulta:

    select t.year, ProductName, SUM(LineItemQuantity) as cantidad, SUM(LineItemTotal) AS total from sales_fact sf inner join product_Dim p on sf.productKey = p.ProductKey inner join time_Dim t on sf.TimeKey = t.TimeKey GROUP BY t.year, ProductName

    Suponga que slo quiere analizar el producto: Queso Manchego La Pastora, en qu ao se vendi ms. Se puede determinar en qu trimestre las ventas fueron mayores y en que mes?

    5. Haga un anlisis de las ventas por categoras en el tiempo. Determine el mejor

    mes de venta de una categora determinada. 6. Haga un anlisis de las ventas por cliente en el tiempo. Determine la mejor semana

    de venta de una regin determinada.