đồ án tham khảo môn KHO DỮ LIỆU VÀ OLAP, chia sẻ kiến thức về kho dữ liệu và kỹ thuật OLAP trong phân tích dữ liệu kinh doanh. Đồ án ứng dụng kỹ thuật OLAP vào phân tích dữ liệu bán hàng ở thị trường bán lẻ xe cộ. Từ kỹ thuật đó giúp phân tích rõ hơn về thị trường, xu hướng mua hàng, hành vi khách hàng, ...
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG TP.HCM
KHOA HỆ THỐNG THÔNG TIN
BÁO CÁO ĐỒ ÁN MÔN KHO DỮ LIỆU VÀ OLAP
ĐỀ TÀI: ANALYSIS OF SALES DATA
(PHÂN TÍCH DỮ LIỆU BÁN HÀNG)
Môn học: Kho dữ liệu và OLAP Lớp: IS217.K13.HTCL GVHD: Đỗ Thị Minh Phụng Thành viên nhóm: Lê Hoàng Phương Thể (17521072)
Bùi Hà Nguyên (17520815)
TP Hồ Chí Minh, Tháng 12 Năm 2019
Trang 2Lớp: IS217.K13.HTCL
LỜI CẢM ƠN
Lời mở đầu, nhóm xin gửi lời cảm ơn đến Cô Đỗ Thị Minh Phụng (Giảng viênhướng dẫn môn Kho dữ liệu và OLAP) Cô đã cung cấp kiến thức, chỉ bảo và đóng gópnhững ý kiến quý báu giúp nhóm hoàn thành được đồ án môn học của mình Nhóm rấtmong nhận sự góp ý từ phía cô nhằm rút ra những kinh nghiệm quý báu và hoàn thiệnvốn kiến thức để nhóm có thể tiếp tục hoàn thành những đồ án khác trong tương lai.Xin chân thành cảm ơn Cô!
Hiện nay, công nghệ thông tin đã được ứng dụng rộng rãi trong tất cả các lĩnh vựccủa đời sống xã hội đặc biệt là trong lĩnh vực Business Intelligence (BI) Vấn đề cốt lõitrong hệ thống BI là kho dữ liệu (Data Warehouse) và khai phá dữ liệu (Data Mining)
vì dữ liệu dùng trong BI là dữ liệu tổng hợp (Nhiều nguồn, nhiều định dạng, phân tán
và có tính lịch sử) đó là đặc trưng của kho dữ liệu Đồng thời việc phân tích dữ liệutrong BI không phải là những phân tích đơn giản (Query, Filtering) mà là những kỹthuật trong khai phá dữ liệu (Data Mining) dùng để phân loại (classification) phân cụm(Clustering), hay dự đoán (Prediction) Vì vậy BI có mối quan hệ rất chặt chẽ với DataWarehouse và Data Mining
Do đó việc ứng dụng mô hình OLAP vào trong lĩnh vực phân tích dữ liệu kinhdoanh đang đem lại rất nhiều giá trị cho các doanh nghiệp lớn, giúp doanh nghiệp cóđược cái nhìn tổng quan về dữ liệu, hỗ trợ ra quyết định, khai phá dữ liệu và giúp địnhhướng và phát triển doanh nghiệp, vv… Trong thời gian một học kỳ thực hiện đề tài,nhóm chúng em đã vận dụng những kiến thức nền tảng đã tích lũy đồng thời kết hợpvới việc học hỏi và nghiên cứu những kiến thức mới vận dụng tối đa những gì đã thuthập được để hoàn thành đề tài đồ án tốt nhất Tuy nhiên, trong quá trình thực hiện,nhóm chúng em không tránh khỏi những thiếu sót Chính vì vậy, rất mong nhận đượcnhững sự góp ý từ phía các Thầy Cô nhằm hoàn thiện những kiến thức mà nhóm chúng
em đã học tập và là hành trang để nhóm thực hiện tiếp các đề tài khác trong tương lai
2
Trang 3Lớp: IS217.K13.HTCL
MỤC LỤC
3
Trang 4• Cải thiện sự gắn kết khách hàng
Một trong những thử thách lớn nhất của các nhà bán hàng là làm thế nào đểchuyển những khách hàng mua sắm một lần (one-time shoppers) thành những kháchhàng trung thành của mình (brand loyalists) Những nhà bán hàng lớn trên thế giới nhưAmazon đã theo dõi những thói quen tiêu dùng của khách hàng, lịch sử tìm kiếm, thịhiếu, Không chỉ những công ty thương mại điện tử eCommerce lớn, mà kể cả nhữngcông ty vừa và nhỏ cũng cần sử dụng những phân tích này, kết hợp với phân tích dựbáo (predictive analytics) để phát hiện ra những tiềm năng bán hàng, xu hướng bánhàng, các chương trình thu hút sự tham gia của khách hàng hoặc thậm chí là ý tưởng vềnhững sản phẩm mới mà các khách hàng tiềm năng đang cần Bằng việc kết hợp phân
4
Trang 5Lớp: IS217.K13.HTCL
tích bán hàng (retail analytics) vào các mô hình dự báo, chúng ta có thể dự báo đượcnhu cầu khách hàng và khuyến khích họ quay trở lại
• Cải thiện quản lý kho hàng và chuỗi cửa hàng
Có nhiều các sản phẩm còn ứ đọng chưa bán được, hoặc chưa đủ các sản phẩmcần thiết có thể dẫn đến các tổn thất lớn cho doanh nghiệp Sử dụng phân tích dự báo
có thể giúp doanh nghiệp giảm chi phí trong quản lý hàng tồn kho, tăng hiệu quả sửdụng các kệ hàng, tập trung nguồn lực vào những khu vực có nhu cầu cao, nắm bắtnhanh các xu hướng bán hàng, tối ưu hóa việc vận chuyển, giảm chi phí tồn kho và cảithiện chuỗi cung ứng, gia tăng lợi nhuận cho doanh nghiệp
• Cải thiện các quyết định về giá bán
Trong xu hướng cắt giảm chi tiêu của người tiêu dùng và sự gia tăng của các kênhbán hàng, giá bán trở nên một trong những mục tiêu quan trọng mà các nhà quản lý cầncân nhắc; tuy nhiên, việc xác định giá bán phù hợp không phải là một quyết định dễdàng Phân tích dữ liệu nâng cao (advanced analytics) sẽ giúp những nhà quản lý có thể
có được một mức giá bền vững, đo lường sự khác biệt trong nhu cầu của từng phânkhúc khách hàng, xác định các sản phẩm chủ chốt, việc quản lý phân phối các cửahàng, phân tích hành vi người tiêu dùng qua các kênh phân phối,… Những thông tinnày giúp nhà bán hàng có thể đưa ra các chiến lược về giá hợp lý khi đã cân nhắc sựphân hóa về đối tượng khách hàng, kênh bán hàng, đối thủ cạnh tranh, và các mặthàng,… Theo một báo cao phân tích của Deloitte về “Analytics in Retail” cho thấyrằng các giải pháp về giá bán có thể làm cải thiện tỷ suất hoạt động (marginperformance) ngay lập tức lên đến 2%-4% và tăng trưởng doanh thu lên đến 1%-2%
• Cải thiện các chiến lược Marketing
Ngày nay, các nghiên cứu cho thấy chiến lược marketing “cá nhân hóa”(personalized marketing) có tác động mạnh đến hành vi người tiêu dùng Khi Facebook
và Instagram có thể cho chúng ta thấy những quảng cáo liên quan dựa trên nhữngthông tin chúng ta chia sẻ hằng ngày; thì các nhà bán hàng cũng có thể thu thập nhữngthông tin mang tính cá nhân như sở thích, lịch sử tìm kiếm, xu hướng và thói quen tiêudùng, … Do đó, thay vì tạo ra các chiến lược quảng bá lớn với chi phí khổng lồ nhưng
5
Trang 6Lớp: IS217.K13.HTCL
lại có ít tác động trực tiếp, việc ứng dụng phân tích dữ liệu và dự báo có thể “cá nhânhóa” (personalize) các quá trình tiếp thị này Bằng việc đưa ra các thông tin trực tiếp(direct messages) có nghĩa là chúng ta có thể kiểm soát không chỉ nội dung, mà còn khinào, bằng cách nào, và tại sao, và cuối cùng, giúp cải thiện ROI và hiệu quả bán hàngcho công ty
1.2 Nội dung đề tài
Đây là bộ dữ liệu mô tả về dữ liệu bán hàng mẫu được lấy trên trangwww.kaggle.com bao gồm nhiều thông tin về dữ liệu bán hàng, thông tin khách hàng,thông tin về order, doanh thu, giao hàng, … Dữ liệu được dùng để phân khúc, phântích, phân cụm khách hàng, sản phẩm và dữ liệu được dùng cho phân tích dữ liệu kinhdoanh trong ngành bán lẻ
Datasets này gồm 2824 dòng và có 25 cột thuộc tính
Link Dataset: https://www.kaggle.com/kyanyoga/sample-sales-data
6
Trang 7Lớp: IS217.K13.HTCL
1.3 Mô tả dữ liệu gốc
STT Tên thuộc tính Ý nghĩa Kiểu dữ liệu
4 ORDERLINENUMBER Mã order line của hóa đơn INT
14 CUSTOMERNAME Tên khách hàng (công ty) STRING
16 ADDRESSLINE1 Địa chỉ 1 của khách hàng STRING
17 ADDRESSLINE2 Địa chỉ 2 của khách hàng STRING
23 CONTACTLASTNAME Tên liên hệ cuối của khách
Trang 8Lớp: IS217.K13.HTCL
2.1 Dữ liệu gốc
Hình 1
8
Trang 9Lớp: IS217.K13.HTCL
Hình 2
9
Trang 11Lớp: IS217.K13.HTCL
Hình 5
Hình 6
11
Trang 12Lớp: IS217.K13.HTCL
Hình 7
3 Thiết kế kho dữ liệu
3.1 Lược đồ hình sao
Mô hình Diagram
12
Trang 13Lớp: IS217.K13.HTCL
Hình 8
3.2 Bảng FACT
order
13
Trang 14Lớp: IS217.K13.HTCL
3.3 Bảng DIM
3.3.1 DIM_CUSTOMER
(công ty)
khách hàng
3.3.2 DIM_PRODUCT
1 PRODUCT_CODE NVARCHAR Primary key Mã Product
3.3.3 DIM_TIME
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa
3.3.4 DIM_SIZE
3.3.5 DIM_STATUS
14
Trang 15Lớp: IS217.K13.HTCL
15
Trang 16Tên thuộc tính Ý nghĩa Kiểu dữ liệu
23 CONTACTLASTNAME Tên liên hệ cuối của khách hàng STRING
24 CONTACTFIRSTNAME Tên liên hệ đầu của khách hàng STRING
3 Quá trình SSIS
Các bước đổ dữ liệu trong quá trình SSIS
3.1 Chuẩn bị dữ liệu và công cụ
File import: Sale.xlxs
Công cụ: SQL Server 2014 Management Studio, Visual Studio 2015
16
Trang 17Lớp: IS217.K13.HTCL
3.2 Bắt đầu quá trình
• Tạo CSDL ANALYSIS SALES DATA (SSIS_PROJECT) trong SQLServer
• Tạo Integration Services Project
17
Trang 18Lớp: IS217.K13.HTCL
• Trích xuất dữ liệu (làm sạch dữ liệu)
- Tạo Data Flow Task
- Trích xuất dữ liệu từ Ecxel Source (dữ liệu nguồn)
18
Trang 19Lớp: IS217.K13.HTCL
- Tạo đường dẫn đến file excel.xlsx
- Viết câu lệnh SQL command text tương ứng để đổ dữ liệu vàoExcel source
19
Trang 20Lớp: IS217.K13.HTCL
- Tạo OLE DB Destination
- Kết nối đến database SSIS_05
20
Trang 21Lớp: IS217.K13.HTCL
- Tạo bảng
21
Trang 22Lớp: IS217.K13.HTCL
- Mapping các trường dữ liệu
22
Trang 23Lớp: IS217.K13.HTCL
- Đỗ dữ liệu gốc vào database
- Tạo 1 Data Flow Task lấy dữ liệu từ trước để lọc sạch dữ liệu
23
Trang 24Lớp: IS217.K13.HTCL
- Tạo OLE DB Source (lấy dữ liệu từ ban đầu)
- Tạo Derived Column và edit
24
Trang 25Lớp: IS217.K13.HTCL
- Tạo Data Conversion và edit
25
Trang 26Lớp: IS217.K13.HTCL
- Tạo OLE DB Destinasion (Data_Clean) tạo bảng và mapping
26
Trang 27Lớp: IS217.K13.HTCL
27
Trang 28Lớp: IS217.K13.HTCL
- Đổ dữ liệu đã làm sạch vào bảng
• Chia các bảng DIM
28
Trang 29Lớp: IS217.K13.HTCL
- Tạo Data Flow Task
- Tạo OLE DB Source và lấy dữ liệu từ bảng (Data_Clean) đã làmsạch
29
Trang 30Lớp: IS217.K13.HTCL
- Tạo Derived Column và Edit (nối chuỗi)
30
Trang 31Lớp: IS217.K13.HTCL
- Tạo Aggregate và edit
31
Trang 32Lớp: IS217.K13.HTCL
- Tạo Sort dữ liệu và edit (lựa chọn các trường cho bảng DIM)
32
Trang 33Lớp: IS217.K13.HTCL
- Tạo Script Component và edit (tạo khóa chính tự động tăng)
33
Trang 34Lớp: IS217.K13.HTCL
34
Trang 35Lớp: IS217.K13.HTCL
35
Trang 36Lớp: IS217.K13.HTCL
- Tạo OLE DB Destination tạo bảng DIM và mapping
36
Trang 37Lớp: IS217.K13.HTCL
37
Trang 38Lớp: IS217.K13.HTCL
- Đỗ dữ liệu vào bảng DIM
- Tương tự cho các bảng DIM khác
38
Trang 39Lớp: IS217.K13.HTCL
• Tạo bảng FACT
- Tạo Lookup cho các bảng DIM và edit
- Chọn General -> chọn Redirect rows to no match output
39
Trang 40Lớp: IS217.K13.HTCL
- Vào Connection viết SQL query Select bảng DIM
40
Trang 41Lớp: IS217.K13.HTCL
- Vào Column
41
Trang 42Lớp: IS217.K13.HTCL
- Tạo Lookup cho các bảng DIM khác và làm tương tự
- Tạo Scrip Component và edit (tạo khóa chính tự động tương tựbảng DIM)
42
Trang 43Lớp: IS217.K13.HTCL
- Tạo OLE DB Destination tạo bảng FACT và mapping
43
Trang 44Lớp: IS217.K13.HTCL
44
Trang 45Lớp: IS217.K13.HTCL
- Đổ dữ liệu vào bảng FACT
• Tạo các Execute SQL Task để viết lệnh xóa Data và xóa khóa ngoại và tạokhóa ngoại (bảng FACT) sau mỗi lần đổ lại dữ liệu
45
Trang 47Lớp: IS217.K13.HTCL
• Bảng DIM_PRODUCT
• Bảng DIM_TIME
47
Trang 48Lớp: IS217.K13.HTCL
• Bảng DIM_SIZE
• Bảng DIM_STATUS
48
Trang 49Lớp: IS217.K13.HTCL
49
Trang 50Lớp: IS217.K13.HTCL
III. PHÂN TÍCH KHO DỮ LIỆU (SSAS)
1 Tạo project SSAS
2 Tạo Data Source
• Chọn Data Source based on an existing or new connection và chọn data đã
đổ ở quá trìn SSIS
50
Trang 51Lớp: IS217.K13.HTCL
• Chọn Use the service account
51
Trang 52Lớp: IS217.K13.HTCL
• Đặt tên cho Data Source
52
Trang 53Lớp: IS217.K13.HTCL
53
Trang 54Lớp: IS217.K13.HTCL
3 Tạo Data Source View
• Chọn Add Related Tables bảng FACT và các bảng DIM
54
Trang 55Lớp: IS217.K13.HTCL
• Đặt tên cho Data Source View
55
Trang 56Lớp: IS217.K13.HTCL
• Kết quả sau khi hoàn thành
56
Trang 57Lớp: IS217.K13.HTCL
57
Trang 58Lớp: IS217.K13.HTCL
4 Tạo Cube
• Chọn bảng FACT
58
Trang 59Lớp: IS217.K13.HTCL
• Chọn độ đo cho bảng FACT
59
Trang 60Lớp: IS217.K13.HTCL
• Chọn các bảng DIM
60
Trang 61Lớp: IS217.K13.HTCL
• Đặt tên cho Cube
61
Trang 62Lớp: IS217.K13.HTCL
• Kết quả sau khi hoàn thành
62
Trang 66Lớp: IS217.K13.HTCL
- Chỉnh Attribute Relationship
• DIM_STATUS
66
Trang 67Lớp: IS217.K13.HTCL
• DIM_SIZE
67
Trang 68Lớp: IS217.K13.HTCL
6 Chạy tiến trình để Deployment
• Kết quả sau khi SSAS project xong
68
Trang 69select {[Measures].[QUANTITYORDERED]} on columns,
{[DIM TIME].[MONTH ID].members} on rowsfrom [SSIS SALE]
where [DIM TIME].[Hierarchy].[YEAR ID].&[2.003E3];
69
Trang 70Lớp: IS217.K13.HTCL
1.3 Truy vấn dữ liệu sử dụng Pivot Table
70
Trang 71Lớp: IS217.K13.HTCL
2 Tổng số doanh thu theo từng tháng 2 và tháng 3 trong năm 2003
2.1 Truy vấn dữ liệu sử dụng BI
2.2 Truy vấn dữ liệu sử dụng MDX
select [Measures].[SALES] on columns,
{[DIM TIME].[Hierarchy].[MONTH ID].&[2.003E3]&[1.]&[2.],[DIM TIME].[Hierarchy].[MONTH ID].&[2.003E3]&[1.]&[3.]} on rows
from [SSIS SALE];
71
Trang 72Lớp: IS217.K13.HTCL
2.3 Truy vấn dữ liệu sử dụng Pivot Table
72
Trang 73Lớp: IS217.K13.HTCL
3 Tổng số lượt khách hàng order của quý 2 và quý 3 trong năm 2004
3.1 Truy vấn dữ liệu sử dụng BI
3.2 Truy vấn dữ liệu sử dụng MDX
select [Measures].[CUSTOMER QT] on columns
from [SSIS SALE]
where {[DIM TIME].[Hierarchy].[QTR ID].&[2.004E3]&[2.],[DIM TIME].[Hierarchy].[QTR ID].&[2.004E3]&[3.]};
73
Trang 74Lớp: IS217.K13.HTCL
3.3 Truy vấn dữ liệu sử dụng Pivot Table
4 Liệt kê các thành phố đã order sản phẩm > 500 sản phẩm trong năm 2004
4.1 Truy vấn dữ liệu sử dụng BI
4.2 Truy vấn dữ liệu sử dụng MDX
select [Measures].[QUANTITYORDERED] on columns,
74
Trang 75Lớp: IS217.K13.HTCL
[QUANTITYORDERED]>500)) on rows
from [SSIS SALE]
where {[DIM TIME].[YEAR ID].&[2004]};
4.3 Truy vấn dữ liệu sử dụng Pivot Table
75
Trang 76Lớp: IS217.K13.HTCL
5 Top 5 nước có số lượt khách hàng order đông nhất
5.1 Truy vấn dữ liệu sử dụng BI
5.2 Truy vấn dữ liệu sử dụng MDX
select [Measures].[CUSTOMER QT] on columns,
topcount ([DIM CUSTOMER].[COUNTRY].children,5,[Measures].[CUSTOMER QT]) on rows
from [SSIS SALE]
where [DIM TIME].[Hierarchy].[YEAR ID];
76
Trang 77Lớp: IS217.K13.HTCL
5.3 Truy vấn dữ liệu sử dụng Pivot Table
77
Trang 78Lớp: IS217.K13.HTCL
6 Liệt kê các nước đã order sản phẩm Motorcycles với tổng doanh thu > 5000
6.1 Truy vấn dữ liệu sử dụng BI
6.2 Truy vấn dữ liệu sử dụng MDX
select [Measures].[SALES] on columns,
non empty [DIM CUSTOMER].[COUNTRY].[COUNTRY].members
having [Measures].[SALES]>5000 on rows
from [SSIS SALE]
where [DIM PRODUCT].[PRODUCTLINE].&[Motorcycles];
78
Trang 79Lớp: IS217.K13.HTCL
6.3 Truy vấn dữ liệu sử dụng Pivot Table
79
Trang 80Lớp: IS217.K13.HTCL
7 Tìm ra 3 sản phẩm có tổng doanh thu lớn nhất qua từng năm
7.1 Truy vấn dữ liệu sử dụng BI
7.2 Truy vấn dữ liệu sử dụng MDX
select [Measures].[SALES] on columns,
ID].currentmember*topcount([DIM PRODUCT].[PRODUCTLINE].children,3,[Measures].[SALES])) on rows
from [SSIS SALE];
80
Trang 81Lớp: IS217.K13.HTCL
7.3 Truy vấn dữ liệu sử dụng Pivot Table
8 Số lượt khách hàng đã order sản phẩm cỡ nhỏ (size: Small) qua từng năm
8.1 Truy vấn dữ liệu sử dụng BI
8.2 Truy vấn dữ liệu sử dụng MDX
select [Measures].[CUSTOMER QT] on columns,
[YEAR ID].members) on rows
from [SSIS SALE]
where [DIM SIZE].[DEALSIZE].&[Small];
81
Trang 82Lớp: IS217.K13.HTCL
8.3 Truy vấn dữ liệu sử dụng Pivot Table
82
Trang 83Lớp: IS217.K13.HTCL
9 Số lượt sản phẩm Classic Cars đã bị Cancelled qua từng năm *
9.1 Truy vấn dữ liệu sử dụng BI
9.2 Truy vấn dữ liệu sử dụng MDX
select [Measures].[QUANTITYORDERED] on columns,
non empty{[DIM PRODUCT].[PRODUCTLINE].&[Classic Cars]*[DIM TIME].[YEAR ID].members} on rows
from [SSIS SALE]
where [DIM STATUS].[STATUS].&[Cancelled];
83
Trang 84Lớp: IS217.K13.HTCL
9.3 Truy vấn dữ liệu sử dụng Pivot Table
84
Trang 85Lớp: IS217.K13.HTCL
10 Tháng 2 quý 1 năm 2005 tổng số doanh thu của từng nước là bao nhiêu *
10.1 Truy vấn dữ liệu sử dụng BI
10.2 Truy vấn dữ liệu sử dụng MDX
select [Measures].[SALES] on columns,
non empty{[DIM CUSTOMER].[COUNTRY].members} on rows
from [SSIS SALE]
where [DIM TIME].[Hierarchy].[MONTH ID].&[2.005E3]&[1.]&[2.];
85
Trang 86Lớp: IS217.K13.HTCL
10.3 Truy vấn dữ liệu sử dụng Pivot Table
86
Trang 87Lớp: IS217.K13.HTCL
11 Tổng số doanh thu của các nước ở vùng EMEA trong năm 2004
11.1 Truy vấn dữ liệu sử dụng BI
11.2 Truy vấn dữ liệu sử dụng MDX
select [Measures].[SALES] on columns,
[DIM CUSTOMER].[Hierarchy].[COUNTRY] on rows
from [SSIS SALE]
where ([DIM CUSTOMER].[TERRITORY].&[EMEA],[DIM TIME].[YEAR ID].&[2.004E3]);
87
Trang 88Lớp: IS217.K13.HTCL
11.3 Truy vấn dữ liệu sử dụng Pivot Table
88
Trang 89from [SSIS SALE]
where ([DIM CUSTOMER].[TERRITORY].&[EMEA],[DIM TIME].[YEAR ID].&[2.004E3]);
89
Trang 90Lớp: IS217.K13.HTCL
12.3 Truy vấn dữ liệu sử dụng Pivot Table
13 Top 5 sản phẩm bán chạy nhất trong năm 2005 (số lượng bán ra nhiều nhất)
13.1 Truy vấn dữ liệu sử dụng BI
90