Praktikum SSIS Denga Northwind

Post on 01-Dec-2015

65 views 9 download

transcript

Praktikum SSIS denga northwind

Buat database NORTHWIND_DWBuat table dengan perintah query sbb:

CREATE TABLE EMPLOYEE_DIM (EMPLOYEE_KEY INTEGER IDENTITY(1,1) NOT NULL UNIQUE,EMPLOYEE_ID INTEGER NOT NULL,LASTNAME NVARCHAR(20) NOT NULL,FIRSTNAME NVARCHAR(10) NOT NULL,TITLE NVARCHAR(30) NOT NULL,PRIMARY KEY (EMPLOYEE_KEY));

CREATE TABLE SHIPPER_DIM (SHIPPER_KEY INTEGER IDENTITY(1,1) NOT NULL UNIQUE,SHIPPER_ID INTEGER NOT NULL,COMPANY_NAME NVARCHAR(40) NOT NULL,PHONE NVARCHAR(24) NOT NULL,PRIMARY KEY (SHIPPER_KEY));

CREATE TABLE CUSTOMER_DIM (CUSTOMER_KEY INTEGER IDENTITY(1,1) NOT NULL UNIQUE,CUSTOMER_ID NCHAR(5) NOT NULL,COMPANY_NAME NVARCHAR(40) NOT NULL,CONTACT_TITLE NVARCHAR(30) NOT NULL,ADDRESS NVARCHAR(60) NOT NULL,CITY NVARCHAR(15) NOT NULL,REGION NVARCHAR(15),POSTAL_CODE NVARCHAR(10),COUNTRY NVARCHAR(15) NOT NULL,PHONE NVARCHAR(24) NOT NULL,FAX NVARCHAR(24),PRIMARY KEY (CUSTOMER_KEY));

CREATE TABLE PRODUCT_DIM (PRODUCT_KEY INTEGER IDENTITY(1,1) NOT NULL UNIQUE,PRODUCT_ID INTEGER NOT NULL,PRODUCT_NAME NVARCHAR(40) NOT NULL,CATEGORY_ID INTEGER NOT NULL,CATEGORY_NAME NVARCHAR(15) NOT NULL,SUPPLIER_ID INTEGER NOT NULL,DESCRIPTION NTEXT NOT NULL,COMPANY_NAME NVARCHAR(40) NOT NULL,CITY NVARCHAR(15) NOT NULL,REGION NVARCHAR(15),POSTAL_CODE NVARCHAR(10),COUNTRY NVARCHAR(15) NOT NULL,PRIMARY KEY (PRODUCT_KEY));

CREATE TABLE SALES_FACT (OrderID INTEGER NOT NULL,PRODUCT_KEY INTEGER NOT NULL,CUSTOMER_KEY INTEGER NOT NULL,EMPLOYEE_KEY INTEGER NOT NULL,

TIME_KEY INTEGER NOT NULL,SHIPPER_KEY INTEGER NOT NULL,UNIT_PRICE MONEY NOT NULL,QUANTITY SMALLINT NOT NULL,DISCOUNT REAL NOT NULL);

CREATE TABLE TIME_DIM (TIME_KEY INTEGER IDENTITY(1,1) NOT NULL UNIQUE,ORDER_DATE DATETIME NOT NULL,DAY_VALUE NVARCHAR(10),MONTH_VALUE NVARCHAR(10),QUARTER_VALUE NVARCHAR(10),YEAR_VALUE NVARCHAR(10),PRIMARY KEY (TIME_KEY));

Buat SSIS seperti tampak berikut

Ada 6 Data flow Task sbb:- Employee_DIM

Untuk OLE DB Source

SELECT NORTHWIND.DBO.EMPLOYEES.EMPLOYEEID,NORTHWIND.DBO.EMPLOYEES.LASTNAME, NORTHWIND.DBO.EMPLOYEES.FIRSTNAME,NORTHWIND.DBO.EMPLOYEES.TITLEFROM NORTHWIND.DBO.EMPLOYEESwhere NORTHWIND.DBO.EMPLOYEES.EMPLOYEEID

not in (select EMPLOYEE_IDfrom northwind_dw.dbo.EMPLOYEE_DIM)

Dan untuk OLE DB Destination

- SHIPPER_DIM

OLE DB Source

SELECT NORTHWIND.DBO.SHIPPERS.SHIPPERID,NORTHWIND.DBO.SHIPPERS.COMPANYNAME,NORTHWIND.DBO.SHIPPERS.PHONE FROM NORTHWIND.DBO.SHIPPERS whereNORTHWIND.DBO.SHIPPERS.SHIPPERIDnot in(select SHIPPER_ID from northwind_dw.dbo.SHIPPER_DIM)

OLE DB DESTINATION

- CUSTOMER_DIM

OLE DB SOURCE

SELECT NORTHWIND.DBO.CUSTOMERS.CUSTOMERID,NORTHWIND.DBO.CUSTOMERS.COMPANYNAME,NORTHWIND.DBO.CUSTOMERS.CONTACTTITLE,NORTHWIND.DBO.CUSTOMERS.ADDRESS,NORTHWIND.DBO.CUSTOMERS.CITY,NORTHWIND.DBO.CUSTOMERS.REGION,NORTHWIND.DBO.CUSTOMERS.POSTALCODE,NORTHWIND.DBO.CUSTOMERS.COUNTRY,NORTHWIND.DBO.CUSTOMERS.PHONE,NORTHWIND.DBO.CUSTOMERS.FAXFROM NORTHWIND.DBO.CUSTOMERSwhere NORTHWIND.DBO.CUSTOMERS.CUSTOMERIDnot in (select CUSTOMER_IDfrom northwind_dw.dbo.CUSTOMER_DIM)

OLE DB DESTINATION

- TIME_DIM

OLE DB SOURCE

SELECT distinct ORDERDATE,DAY(ORDERDATE) as hari,MONTH (ORDERDATE) as bulan,DATEPART(qq,ORDERDATE) as quarter,YEAR(orderdate) as tahunFROM NORTHWIND.DBO.ORDERSwhere orderdatenot in (select ORDER_DATE from northwind_dw.dbo.TIME_DIM)

OLEDB DESTINATION

- PRODUCT_DIM

OLEDB SOURCE

SELECT NORTHWIND.DBO.PRODUCTS.PRODUCTID,NORTHWIND.DBO.PRODUCTS.PRODUCTNAME,NORTHWIND.DBO.CATEGORIES.CATEGORYID,NORTHWIND.DBO.CATEGORIES.CATEGORYNAME,NORTHWIND.DBO.SUPPLIERS.SUPPLIERID,NORTHWIND.DBO.CATEGORIES.DESCRIPTION,NORTHWIND.DBO.SUPPLIERS.COMPANYNAME,NORTHWIND.DBO.SUPPLIERS.CITY,NORTHWIND.DBO.SUPPLIERS.REGION,NORTHWIND.DBO.SUPPLIERS.POSTALCODE,NORTHWIND.DBO.SUPPLIERS.COUNTRYFROM NORTHWIND.DBO.PRODUCTS,NORTHWIND.DBO.CATEGORIES,NORTHWIND.DBO.SUPPLIERSWHERE NORTHWIND.DBO.CATEGORIES.CATEGORYID = NORTHWIND.DBO.PRODUCTS.CATEGORYIDAND NORTHWIND.DBO.PRODUCTS.SUPPLIERID = NORTHWIND.DBO.SUPPLIERS.SUPPLIERIDand northwind.dbo.products.productid not in

( select PRODUCT_IDfrom northwind_dw.dbo.PRODUCT_DIM)

OLEDB DESTINATION

- SALES_FACT

OLE DB SOURCE

select (select product_key from northwind_dw.dbo.product_dim where northwind_dw.dbo.product_dim.PRODUCT_id=northwind.dbo.[order details].productid) as product_key,(select customer_key from northwind_dw.dbo.customer_dim where northwind_dw.dbo.customer_dim.CUSTOMER_id=northwind.dbo.orders.customerid)as customer_key,(select employee_key from northwind_dw.dbo.employee_dim where northwind_dw.dbo.employee_dim.EMPLOYEE_id=northwind.dbo.orders.employeeid) as empployee_key,(select time_key from northwind_dw.dbo.time_dim

where northwind_dw.dbo.time_dim.order_date=northwind.dbo.orders.orderdate) as TIME_KEY,( select shipper_key from northwind_dw.dbo.shipper_dim where northwind_dw.dbo.shipper_dim.shipper_id=northwind.dbo.orders.SHIPvia) as shipper_key,northwind.dbo.[order details].orderid as order_key,UNITPRICE,QUANTITY,DISCOUNTfrom northwind.dbo.[order details]inner join northwind.dbo.orders on northwind.dbo.[order details].orderid=northwind.dbo.orders.orderidwhere northwind.dbo.[order details].orderidnot in (select OrderIDfrom northwind_dw.dbo.sales_fact) order by northwind.dbo.[order details].orderid,northwind.dbo.[order details].productid

OLE DB DESTINATION