SlideShare une entreprise Scribd logo
1  sur  66
DATAWAREHOUSING WITH MySQL
CHAPTER 1-BASIC CONCEPTS
CHAPTER 1-BASIC CONCEPTS
In chapter 1 of the book dimensional datawarehousing with MySQL, four tasks are primarily covered which include:
• Creating a database user
• Creating the data warehouse database and the source database
• Creating data warehouse tables
• Generating surrogate keys
For the purpose of practice, the first step of creating a user-id has been avoided and the root id is used.
All other tasks have been covered with a screenshot of the outcomes
CREATING A DATABASE
In this task two databases dw and source have been created using the following commands:
Create database dw;
Create database source;
CREATING DATAWAREHOUSING TABLES
Creating customer_dim table:
CREATING DATAWAREHOUSING TABLES
Creating product_dim table:
CREATING DATAWAREHOUSING TABLES
Creating order_dim table:
CREATING DATAWAREHOUSING TABLES
Creating date_dim table:
CREATING DATAWAREHOUSING TABLES
Creating sales_order_fact table:
GENERATING SURROGATE KEYS
In the customer_dim table, 3 entries are inserted with a null value for customer_sk field. The surrogate keys are
automatically created
CHAPTER 2-DIMENSIONAL HISTORY
• Slowly Changing Dimension (SCD) is the technique for implementing dimension history in
a dimensional data warehouse
• For practicing we would use SCD1 and SCD2 techniques
• Slowly Changing Dimension Type1 involves updating and inserting into the customer_dim
table
• Before updating and inserting data a customer_stg table has to be created
• The Update statement copies the value of the customer_name column in the staging table to
the customer_name column in the customer_dim table
• The Insert statement inserts the record in the staging table that is not yet present in the
customer_dim table
• Running the script updates the name of the first customer and inserts the seventh customer
in the staging table to the customer_dim table.
•
Creating and Loading Customer Staging Table
Applying SCD1: Updating Existing Customers and inserting
into customer_dim
Slowly Changing SCD Type 2
• SCD2 has been applied to the product_dim table
• Whenever there is a change in the product_name and product_category
columns, SCD2 would remove the existing row and add a new row that
would describe the same product.
Creating a product_stg file
Applying SCD2 to the product_name and product_category in the
product_dim table
• The next output would show that SCD2 has been applied successfully
• Product 1 has two rows
• One of the rows, with product_sk 1, has expired with expiry date 4th Febuary, 2007
• This is one day earlier to the expiry date before applying SCD2
• Also another row is created with product_sk as 3 and it has a new name
• Its effective date is 5th February 2007 and expiry date 9999-12-31
• This means that it has not yet expired
Chapter 3: Measure Additivity
Testing Full Additivity
Inserting data into order_dim table
Testing Full Additivity:
Inserting data into table date_dim
Testing Full Additivity:
Inserting data into sales_order_fact:
Testing Full Additivity:
Generating the sum of the total order amounts by querying across all dimensions:
Testing Full Additivity:
Generating the sum by querying across date, customer and order
Testing Full Additivity:
Generating the sum of total orders by querying across date and order:
Chapter 4: Dimensional Queries
Aggregate Queries
• Aggregate queries aggregates individual facts
• The values are either summed or counted
• Under aggregate queries we would run two examples: aggregation of daily sales and annual
sales
• In all the cases, joins between tables is done using surrogate keys.
Daily Sales Aggregation:
The aggregation of the order amounts and number of orders is
done by date
Annual Sales Aggregation:
The order amounts and the number of orders are not only aggregated by date, but also
by product and customer city
Specific Queries:
Monthly Storage Product Sales:
The following query aggregates sales amount and the number of orders per month.
Specific Queries:
Quarterly Sales in Mechanicsburg:
The following query produces the quarterly aggregation of the order amounts in
Mechanicsburg
Inside-Out Queries:
Product Performer:
The following query gives you the sales orders of products that have a monthly sales
amount of 7,500 or more.
Inside –Out Queries:
Loyal Customer
The following query shows customers who have placed more than five orders annually in
the past 18 months
Chapter 5: Source Extraction
• Push-by-source CDC- It means that the source system extracts only the changes since the last
extraction
• Push-by-source CDC has been demonstrated on the sales order source data
• It has been done using a stored procedure that extracts sales order data from the sales_order
in the source database
Creating a sales_order table in another database called source and inserting
values in the tables
Order_dim:
Date_dim
Inserting values in the order_dim and date_dim tables in the dw
database
Running the following stored procedure:
USE source;
DELIMITER // ;
DROP PROCEDURE IF EXISTS push_sales_order //
CREATE PROCEDURE push_sales_order()
BEGIN
INSERT INTO dw.sales_order_fact
SELECT a.order_amount, b.order_sk, c.customer_sk, d.product_sk, e.date_sk
FROM sales_order a, dw.order_dim b, dw.customer_dim c, dw.product_dim d, dw.date_dim e
WHERE a.entry_date = CURRENT_DATE
AND a.order_number = b.order_number AND a.customer_number = c.customer_number AND a.product_code = d.product_code AND
a.order_date >= d.effective_date
AND a.order_date <= d.expiry_date
AND a.order date = e.date
;
END
//
DELIMITER ; //
The above stored procedure will make changes to the
sales_order_fact table in dw database.
Chapter 6 : Populating the Date Dimension
Pre-population: It is the simplest of the three techniques where the dates are
inserted for a period of time
For e.g. date could be inserted for 5 years between 2009 and 2014
Truncating the date_dim table
One Date Everyday:
This technique is similar to pre-population technique, but in this technique only one
date is pre-populated in a day
Daily Date population:
Loading dates from the source: The query loads the sales order dates from the
sales_order table of the source database into the date_dim table of the DW
database.
Adding more dates from the additional sales order
Chapter 7: Initial Population
Initial Population: After identifying the source data, a script
is written for initial population
Order_dim table:
Sales_order_fact table
Running the Initial Population Scheme
Truncating the sales_order table:
Running the Initial Population Scheme
Preparing the sales order table
Query to confirm whether the sales_order are loaded correctly or not
Chapter 8: Regular Population
Regular Population Script:
In this script, customer_dim and product_dim have been reloaded with data. SCD2 is
applied to customer addresses, product names, and product groups. SCD1 is applied to
customer names
Order_dim table:
Product_dim:
Product_stg:
Sales_order_fact:
Customer_dim:
Testing Data:
The data is tested by running the select query on the sales_order
table and the sales_order_fact table
Chapter 10: Adding Columns
Adding New Columns to the customer dimension:
When two new columns are added, the null values would be
displayed in the respective rows:
Customer_dim table:
Customer_stg table:
• Adding the order_quantity column in the sales_order
•
Datawarehousing with MySQL

Contenu connexe

Similaire à Datawarehousing with MySQL

Porfolio of Setfocus work
Porfolio of Setfocus workPorfolio of Setfocus work
Porfolio of Setfocus work
KevinPSF
 
Nota database object query
Nota database object queryNota database object query
Nota database object query
Azmiah Mahmud
 
Case Study Scenario - Global Trading PLCGlobal Trading PLC is.docx
Case Study Scenario - Global Trading PLCGlobal Trading PLC is.docxCase Study Scenario - Global Trading PLCGlobal Trading PLC is.docx
Case Study Scenario - Global Trading PLCGlobal Trading PLC is.docx
tidwellveronique
 
SQL Server 2008 Portfolio for Saumya Bhatnagar
SQL Server 2008 Portfolio for Saumya BhatnagarSQL Server 2008 Portfolio for Saumya Bhatnagar
SQL Server 2008 Portfolio for Saumya Bhatnagar
sammykb
 

Similaire à Datawarehousing with MySQL (20)

Data analysis with Postgres and Power BI
Data analysis with Postgres and Power BIData analysis with Postgres and Power BI
Data analysis with Postgres and Power BI
 
Porfolio of Setfocus work
Porfolio of Setfocus workPorfolio of Setfocus work
Porfolio of Setfocus work
 
Data warehouse project on retail store
Data warehouse project on retail storeData warehouse project on retail store
Data warehouse project on retail store
 
Data warehousing
Data warehousingData warehousing
Data warehousing
 
Nota database object query
Nota database object queryNota database object query
Nota database object query
 
Notacd12
Notacd12Notacd12
Notacd12
 
Notacd12
Notacd12Notacd12
Notacd12
 
Group - 9 Final Deliverable
Group - 9 Final DeliverableGroup - 9 Final Deliverable
Group - 9 Final Deliverable
 
Case Study Scenario - Global Trading PLCGlobal Trading PLC is.docx
Case Study Scenario - Global Trading PLCGlobal Trading PLC is.docxCase Study Scenario - Global Trading PLCGlobal Trading PLC is.docx
Case Study Scenario - Global Trading PLCGlobal Trading PLC is.docx
 
Rodney Matejek Portfolio
Rodney Matejek PortfolioRodney Matejek Portfolio
Rodney Matejek Portfolio
 
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
 
Nota ict form 5
Nota ict form 5Nota ict form 5
Nota ict form 5
 
Data warehousing and business intelligence project report
Data warehousing and business intelligence project reportData warehousing and business intelligence project report
Data warehousing and business intelligence project report
 
Tableau.pdf
Tableau.pdfTableau.pdf
Tableau.pdf
 
Learn Database Design with MySQL - Chapter 6 - Database design process
Learn Database Design with MySQL - Chapter 6 - Database design processLearn Database Design with MySQL - Chapter 6 - Database design process
Learn Database Design with MySQL - Chapter 6 - Database design process
 
Database Connection
Database ConnectionDatabase Connection
Database Connection
 
SQL Server 2008 Portfolio for Saumya Bhatnagar
SQL Server 2008 Portfolio for Saumya BhatnagarSQL Server 2008 Portfolio for Saumya Bhatnagar
SQL Server 2008 Portfolio for Saumya Bhatnagar
 
PowerBI Training
PowerBI Training PowerBI Training
PowerBI Training
 
Dwbi Project
Dwbi ProjectDwbi Project
Dwbi Project
 
CoreBigBench: Benchmarking Big Data Core Operations
CoreBigBench: Benchmarking Big Data Core OperationsCoreBigBench: Benchmarking Big Data Core Operations
CoreBigBench: Benchmarking Big Data Core Operations
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Datawarehousing with MySQL