Nhờ có sự chỉ dẫn và động viên của các thầy cô, chúng em đã có thể hoàn thành báo cáo thực tập nghề nghiệp với tên đề tài “Xây dựng kho dữ liệu trên nền tảng Azure và phân tích hoạt động
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ
KHOA THỐNG KÊ – TIN HỌC
BÁO CÁO THỰC TẬP NGHỀ NGHIỆP
NGÀNH HỆ THỐNG THÔNG TIN QUẢN LÝ
CHUYÊN NGÀNH QUẢN TRỊ HỆ THỐNG THÔNG TIN VÀ TIN HỌC
Đơn vị thực tập : TMA Solution Bình Định
Giảng viên hướng dẫn : TS Phan Đình Vấn
Trang 2LỜI CẢM ƠN
Để hoàn thành báo cáo thực tập nghề nghiệp này, trước tiên chúng em xin gửi lời cảm ơn chân thành đến các quý thầy, cô giảng viên khoa Thống kê - Tin học, trường Đại học Kinh tế - Đại học Đà Nẵng đã tạo điều kiện và hỗ trợ chúng em trong quá trình học tập
và thực tập Nhờ có sự chỉ dẫn và động viên của các thầy cô, chúng em đã có thể hoàn
thành báo cáo thực tập nghề nghiệp với tên đề tài “Xây dựng kho dữ liệu trên nền tảng Azure và phân tích hoạt động cho hệ thống quản lý cửa hàng quần áo”
Tiếp theo, chúng em xin gửi lời cảm ơn đến quý Công ty TNHH Giải pháp Phần mềm Tường Minh Bình Định, nơi chúng em đã được thực tập Chúng em xin cảm ơn ban lãnh đạo công ty đã tạo cơ hội cho chúng em được làm việc trong một môi trường chuyên nghiệp và thân thiện Chúng em cũng xin cảm ơn các anh chị cán bộ, nhân viên phòng Data Science đã giúp đỡ chúng em trong dự án và công việc Nhờ có sự hướng dẫn và chia sẻ của các anh chị, chúng em đã có được những kinh nghiệm và bài học thực tiễn rất bổ ích
Đặc biệt, chúng em xin gửi lời cảm ơn chân thành và sâu sắc nhất đến thầy TS.Phan Đình Vấn - Giảng viên hướng dẫn và anh Nguyễn Hoàng Vũ Thân - người đã trực tiếp hướng dẫn tại công ty đã theo dõi quá trình thực tập của chúng em, luôn sẵn sàng giải đáp những thắc mắc và khó khăn Đã dành cho chúng em những lời khuyên và góp ý quý giá
để hoàn thiện bài báo cáo này
Trong quá trình thực tập và thực hiện báo cáo, vì kiến thức còn nhiều hạn chế nên chúng em không thể tránh khỏi những sai sót, kính mong nhận được sự góp ý của quý thầy
cô, quý công ty để chúng em có thể rút kinh nghiệm và chỉnh sửa
Chúng em xin chân thành cảm ơn!
Trang 3LỜI CAM ĐOAN
Chúng em xin cam đoan bài báo cáo “Xây dựng kho dữ liệu trên nền tảng Azure
và phân tích hoạt động cho hệ thống quản lý cửa hàng quần áo” là kết quả nghiên cứu
của nhóm chúng em dưới sự hướng dẫn của giảng viên hướng dẫn TS.Phan Đình Vấn và anh Nguyễn Hoàng Vũ Thân tại Công ty TMA Bình Định
Báo cáo thực tập này là sản phẩm mà nhóm chúng em đã nổ lực nghiên cứu trong suốt thời gian thực tập tại Công ty TMA Bình Định Chúng em cam kết tất cả những thông tin được cung cấp trong báo cáo thực tập nghề nghiệp này là chính xác, trung thực Chúng
em xin chịu hoàn toàn mọi trách nhiệm, kỷ luật của nhà trường nếu có vấn đề nào xảy ra
Trang 4MỤC LỤC
LỜI CẢM ƠN iii
LỜI CAM ĐOAN iv
MỤC LỤC v
DANH MỤC HÌNH ẢNH vii
DANH MỤC CÁC TỪ VIẾT TẮT x
LỜI MỞ ĐẦU 1
CHƯƠNG 1 GIỚI THIỆU VỀ ĐƠN VỊ THỰC TẬP TMA BÌNH ĐỊNH VÀ ĐỀ TÀI 2 1.1 Giới thiệu tổng quát về doanh nghiệp thực tập TMA Bình Định 2
1.1.1 Giới thiệu về công ty TMA Bình Định 2
1.1.2 Lĩnh vực kinh doanh 2
1.2 Giới thiệu về đề tài xây dựng kho dữ liệu trên nền tảng Azure và phân tích hoạt động cho hệ thống quản lý cửa hàng quần áo 3
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT HỖ TRỢ XÂY DỰNG KHO DỮ LIỆU TRÊN NỀN TẢNG AZURE 5
2.1 Giới thiệu về công việc Data Engineer 5
2.1.1 Khái niệm 5
2.1.2 Công việc của Data Engineer trong dự án phân tích dữ liệu 5
2.1.3 Kiến thức, kỹ năng cần có của Data Engineer 6
2.1.4 Con đường phát triển sự nghiệp Data Engineer 6
2.2 Giới thiệu về Database và các kỹ thuật xây dựng Database cho dự án 6
2.2.1 Giới thiệu về Database 6
2.2.2 Hệ quản trị Database (DBMS) 7
2.2.3 Các kỹ thuật mô phỏng dữ liệu cho Database 8
Trang 52.3 Giới thiệu về Data Lake 9
2.4 Giới thiệu về Data Warehouse 9
2.5 Giới thiệu về ETL pipeline 9
2.6 Giới thiệu về điện toán đám mây và nền tảng Azure 10
2.6.1 Khái niệm 10
2.6.2 Các dịch vụ Azure được sử dụng trong dự án 10
CHƯƠNG 3 ỨNG DỤNG CÁC DỊCH VỤ TRÊN NỀN TẢNG AZURE ĐỂ XÂY DỰNG KHO DỮ LIỆU PHỤC VỤ PHÂN TÍCH HOẠT ĐỘNG CHO HỆ THỐNG QUẢN LÝ CỬA HÀNG QUẦN ÁO 13
3.1 Quy trình xây dựng Database 13
3.2 Quy trình xây dựng kho dữ liệu trên Azure 21
3.3 Trực quan hóa dữ liệu 33
3.4 Kết quả đạt được 35
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 37
TÀI LIỆU THAM KHẢO 39
CHECK LIST CỦA BÁO CÁO 41
Trang 6DANH MỤC HÌNH ẢNH
Hình 1.1.1 Công ty TMA Solutions Bình Định 2
Hình 2.5.1 Các bước để xây dựng ETL pipeline 9
Hình 2.6.1 Các thành phần của Azure Synapse Analytics 12
Hình 3.1.1 Thiết kế bảng Branch 13
Hình 3.1.2 Thiết kế bảng Category 13
Hình 3.1.3 Thiết kế bảng Customer 13
Hình 3.1.4 Thiết kế bảng Employee 14
Hình 3.1.5 Thiết kế bảng Inventory 14
Hình 3.1.6 Thiết kế bảng Order Detail 14
Hình 3.1.7 Thiết kế bảng Orders 15
Hình 3.1.8 Thiết kế bảng Product 15
Hình 3.1.9 Thiết kế bảng Shipment 15
Hình 3.1.10 Thiết kế bảng Supplier 16
Hình 3.1.11 Thiết kế bảng Supplier Tracking 16
Hình 3.1.12 Thiết kế bảng Tracking Detail 16
Hình 3.1.13 Dữ liệu cho bảng Tracking Detail 17
Hình 3.1.14 Dữ liệu cho bảng Customer 17
Hình 3.1.15 Dữ liệu cho bảng Employee 17
Hình 3.1.16 Dữ liệu cho bảng Inventory 18
Hình 3.1.17 Dữ liệu cho bảng Order Detail 18
Hình 3.1.18 Dữ liệu cho bảng Orders 18
Hình 3.1.19 Dữ liệu cho bảng Product 19
Hình 3.1.20 Dữ liệu cho bảng Category 19
Hình 3.1.21 Dữ liệu cho bảng Shipment 19
Hình 3.1.22 Dữ liệu cho bảng Supplier 20
Hình 3.1.23 Dữ liệu cho bảng Supplier Tracking 20
Hình 3.1.24 Dữ liệu cho bảng Tracking Detail 20
Trang 7Hình 3.2.1 Quy trình xây dựng kho dữ liệu trên Azure 21
Hình 3.2.2 Tạo tài khoản Storage 21
Hình 3.2.3 Tạo nơi lưu trữ containers 21
Hình 3.2.4 Tạo Data Factory 22
Hình 3.2.5 Thiết lập Integration Runtime 22
Hình 3.2.6 Chọn dữ liệu nguồn 22
Hình 3.2.7 Chọn dữ liệu đích 23
Hình 3.2.8 Định dạng tệp 23
Hình 3.2.9 Cài đặt sao chép dữ liệu 23
Hình 3.2.10 Kiểm tra dữ liệu nguồn và dữ liệu đích 24
Hình 3.2.11 Quá trình chạy pipeline 24
Hình 3.2.12 File parquet ở Azure Data Lake Gen 2 24
Hình 3.2.13 Schema datawarehouse 25
Hình 3.2.14 Tạo Dedicated SQL pool 25
Hình 3.2.15 Tạo bảng dữ liệu trong Dedicated SQL pool 25
Hình 3.2.16 Dataset cho dữ liệu ở Data Lake Store Gen 2 26
Hình 3.2.17 Linked service liên kết với Data Lake Gen 2 26
Hình 3.2.18 Dataset cho 12 bảng dữ liệu nguồn 27
Hình 3.2.19 Dataset cho dữ liệu ở Dedicated SQL pool 27
Hình 3.2.20 Linked service liên kết với Dedicated SQL pool 28
Hình 3.2.21 Dataset cho 10 bảng dữ liệu đích 28
Hình 3.2.22 Data flows cho 10 bảng dữ liệu 29
Hình 3.2.23 Data flow cho bảng Dim_Branch 29
Hình 3.2.24 Data flow cho bảng Dim_Customer 29
Hình 3.2.25 Data flow cho bảng Dim_Employee 30
Hình 3.2.26 Data flow cho bảng Fact_Import 30
Trang 8Hình 3.2.29 Data flow cho bảng Dim_Product 31
Hình 3.2.30 Data flow cho bảng Dim_Shipment 32
Hình 3.2.31 Data flow cho bảng Dim_Supplier 32
Hình 3.2.32 Data flow cho bảng Dim_Time 32
Hình 3.2.33 Pipeline tải dữ liệu 33
Hình 3.3.1 Dashboard tồn kho 33
Hình 3.3.2 Dashboard bán hàng 34
Trang 9DANH MỤC CÁC TỪ VIẾT TẮT
ETL : Extract - Transform – Load
ELT : Extract – Load - Transform
BI : Business Intelligence
SQL : Structured Query Language
T-SQL : Transact - Structured Query Language NoSQL : Not Only Structured Query Language
AWS : Amazon Web Services
DBMS : Database Management System
HTTP : Hypertext Transfer Protocol
HTTPS : Hypertext Transfer Protocol Secure
OLAP : Online Analytical Processing
REST : Representational State Transfer
API : Application Programming Interface
DB : Database
ML : Machine Learning
DW : DataWarehouse
Trang 10LỜI MỞ ĐẦU
1 Mục tiêu của đề tài
- Xây dựng kho dữ liệu trên nền tảng Azure, nhằm cung cấp thông tin về nhân viên, khách hàng, sản phẩm và các chi nhánh cho các nhà quản lý, nhà nghiên cứu và các bên liên quan để khai thác, phân tích và trình bày dữ liệu
- Để xây dựng kho dữ liệu, đề tài này sẽ thực hiện các bước thu thập, làm sạch, chuẩn hóa, tích hợp và lưu trữ dữ liệu trên nền tảng Azure Kết quả đề tài này hướng tới là
có được một kho dữ liệu hoàn chỉnh, an toàn và dễ sử dụng giúp cho việc đánh giá, cải thiện hệ thống quản lý cửa hàng quần áo trở nên dễ dàng và chính xác hơn
2 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Dữ liệu này sử dụng ngôn ngữ lập trình python tạo ra các dữ liệu giả lập của cửa hàng quần áo như khách hàng, nhân viên, chi nhánh và một vài
dữ liệu thực tế như sản phẩm được lấy từ website yody.vn
Đề tài nghiên cứu về các hoạt động của hệ thống quản lý cửa hàng quần áo, đặc biệt
là các cửa hàng quần áo có nhu cầu quản lý hoạt động kinh doanh một cách hiệu quả và tiết kiệm chi phí
- Phạm vi nghiên cứu: Nghiên cứu hoạt động của hệ thống quản lý cửa hàng quần áo
3 Kết cấu của đề tài
Đề tài được tổ chức gồm phần mở đầu, 3 chương nội dung và phần kết luận
- Mở đầu
- Chương 1: Giới thiệu về đơn vị thực tập TMA Bình Định và đề tài
- Chương 2: Cơ sở lý thuyết hỗ trợ xây dựng kho dữ liệu trên nền tảng Azure
- Chương 3: Ứng dụng các dịch vụ trên nền tảng Azure để xây dựng kho dữ liệu phục
vụ phân tích hoạt động cho hệ thống quản lý cửa hàng quần áo
- Kết luận và hướng phát triển
Trang 11CHƯƠNG 1 GIỚI THIỆU VỀ ĐƠN VỊ THỰC TẬP TMA BÌNH ĐỊNH VÀ
ĐỀ TÀI
1.1 Giới thiệu tổng quát về doanh nghiệp thực tập TMA Bình Định
1.1.1 Giới thiệu về công ty TMA Bình Định
- Tên doanh nghiệp: Công ty TNHH Giải pháp Phần mềm Tường Minh Bình Định (TMA Solutions Bình Định)
Hình 1.1.1 Công ty TMA Solutions Bình Định
- Địa chỉ: 12 Đại lộ Khoa học, Khu vực 2, P Ghềnh Ráng, TP Quy Nhơn, Bình Định
- Điện thoại liên hệ: (0256) 389 8979
- Email: contact@tma-binhdinh.vn
- Website: https://www.tma-binhdinh.vn/
Được thành lập vào năm 1997, TMA là tập đoàn công nghệ hàng đầu Việt Nam với
4000 kỹ sư và khách hàng là tập đoàn công nghệ cao hàng đầu thế giới từ 30 quốc gia TMA hiện có 7 chi nhánh tại Việt Nam (6 tại Tp.HCM và 1 tại Tp Quy Nhơn) cùng 6 chi nhánh tại nước ngoài (Mỹ, Úc, Canada, Đức, Nhật, Singapore)
Tầm nhìn: Trở thành một trong những công ty phần mềm hàng đầu thế giới, cung
cấp các giải pháp và dịch vụ chất lượng cao cho khách hàng
Sứ mệnh: Trở thành sứ mệnh trung tâm phần mềm và công nghệ hàng đầu tại miền
Trung, góp phần quan trọng đưa Thung lũng sáng tạo Quy Nhơn trở thành điểm đến của công nghệ 4.0 tại Việt Nam
1.1.2 Lĩnh vực kinh doanh
Trang 12Đi cùng với vấn đề tận dụng dữ liệu là yêu cầu về thu thập, lưu trữ và xử lý dữ liệu một cách hiệu quả Đây là một trong những vấn đề quan trọng trong ngành dữ liệu, do
đó ngày càng có nhiều công nghệ ra đời nhằm đem lại những giải pháp tối ưu phục vụ cho những nhu cầu khác nhau của doanh nghiệp Một trong những công nghệ phổ biến hiện nay chính là điện toán đám mây Điện toán đám mây mang lại cho doanh nghiệp giải pháp thực hiện các tác vụ với dữ liệu từ quá trình thu thập đến quá trình phân tích một cách an toàn, tối ưu và tiết kiệm chi phí
Lĩnh vực mà đề tài hướng đến là thời trang Sản phẩm thời trang là loại sản phẩm
đa dạng có xu hướng thay đổi theo mùa, theo năm, theo các sự kiện, cũng như bị ảnh hưởng bởi các yếu tố như điện ảnh, người nổi tiếng, xu hướng thời trang,… Việc nắm
Trang 13bắt xu hướng thị trường và nắm bắt tâm lý khách hàng là hai trong những mục tiêu hàng đầu đối với doanh nghiệp
Với đề tài này, chúng em mong muốn thực hiện đầy đủ quy trình của một dự án phân tích dữ liệu Hệ thống cửa hàng bán quần áo được đề cập trong đề tài là một hệ thống cửa hàng mô phỏng Đây là một chuỗi cửa hàng quần áo lớn, có 10 chi nhánh trên khắp địa bàn thành phố Đà Nẵng Đề tài bắt đầu từ việc xây dựng database trên Microsoft SQL Server để thu thập dữ liệu từ hoạt động kinh doanh của chuỗi cửa hàng
Dữ liệu sẽ được lưu trữ, xử lý trên nền tảng điện toán đám mây Microsoft Azure Cuối cùng, dữ liệu sẽ được phân tích để lấy được những thông tin hữu ích, phục vụ cho hoạt động kinh doanh của doanh nghiệp
Trang 14CHƯƠNG 2 CƠ SỞ LÝ THUYẾT HỖ TRỢ XÂY DỰNG KHO DỮ LIỆU
2.1.2 Công việc của Data Engineer trong dự án phân tích dữ liệu
Trong quá trình hoạt động, các tổ chức vừa và lớn thường tạo ra nhiều dữ liệu, đặc biệt là các tổ chức về y tế, bán lẻ và tài chính Việc ra quyết định dựa trên dữ liệu mang lại nhiều lợi ích cho tổ chức Tuy nhiên lượng dữ liệu này thường đến từ nhiều nguồn khác nhau, thuộc nhiều loại khác nhau (dữ liệu có cấu trúc, không cấu trúc, bán cấu trúc) và thường chưa sẵn sàng để người Data Scientist hay BI sử dụng (dữ liệu bị dư thừa, chưa đúng định dạng để phân tích, chứa giá trị null,…) Data Engineer đóng vai trò quản lý lượng dữ liệu này, giúp dữ liệu dễ dàng truy cập và tối ưu hóa quá trình sử dụng dữ liệu của tổ chức
Data Engineer xây dựng các data pipeline (đường ống dữ liệu) để tập hợp dữ liệu từ nhiều nguồn khác nhau, tích hợp dữ liệu để lưu trữ tại Data Warehouse hay Data Lake của tổ chức, ngoài ra trong một tổ chức thường có nhiều phòng ban, mỗi phòng có nhu cầu về dữ liệu khác nhau, nên các data pipeline cũng làm nhiệm vụ lấy dữ liệu từ Data Warehouse/Data Lake và đưa bộ dữ liệu phù hợp tới các phòng ban
Trong quá trình dữ liệu đi từ nguồn ban đầu đến đích (nơi sử dụng dữ liệu), dữ liệu trải qua quá trình như: Lọc (loại bỏ các dữ liệu không cần thiết hay không đảm bảo các tiêu chí đã đặt ra), Tích hợp (Kết hợp dữ liệu từ nhiều nguồn lại với nhau), Chuẩn hóa (Đưa dữ liệu về cũng một định dạng thống nhất và nhất quán),…
• Data Engineer làm việc với nhiều loại cơ sở dữ liệu khác nhau, từ cơ sở dữ liệu quan hệ đến cơ sở dữ liệu phi quan hệ, từ cơ sở dữ liệu trên đám mây (như AWS) đến cơ sở dữ liệu trên máy chủ (như Oracle) Công việc của Data
Trang 15Engineer cần dùng các công cụ và ngôn ngữ lập trình khác nhau như Python, Java, Scala, Spark, Hadoop, Kafka,… để xử lý và biến đổi dữ liệu
2.1.3 Kiến thức, kỹ năng cần có của Data Engineer
Những kiến thức và kỹ năng mà một data engineer cần có bao gồm: Database, data warehouse, SQL, ETL/ELT, kiến thức phát triển phần mềm, kiến thức về hạ tầng máy tính, điện toán đám mây, kỹ năng giao tiếp
2.1.4 Con đường phát triển sự nghiệp Data Engineer
Data engineer trải qua nhiều vị trên con đường sự nghiệp của mình
Junior data engineer: Học hỏi, tích lũy kinh nghiệm, công việc xung quanh quá trình sửa lỗi, thực hiện nhiệm vụ đơn giản cho các dự án
Mid-level data engineer: Đóng vai trò định hướng nhiệm vụ cho nhóm nhân viên cấp độ thấp hơn
Senior data engineer: Xây dựng, duy trì hệ thống, mô hình thu thập dữ liệu
Lead data engineer: Phát triển và triển khai các chiến lược để đảm bảo rằng tổ chức của đang sử dụng dữ liệu một cách hiệu quả, chịu trách nhiệm quản lý mối quan hệ với các nhà cung cấp hoặc bên thứ ba khác cung cấp dịch vụ dữ liệu cho công ty
2.2 Giới thiệu về Database và các kỹ thuật xây dựng Database cho dự án
2.2.1 Giới thiệu về Database
Database hay cơ sở dữ liệu là một tập hợp có tổ chức của thông tin có cấu trúc hoặc thường được lưu trữ dưới dạng điện tử trong một hệ thống máy tính Cơ sở dữ liệu thường được kiểm soát bởi hệ quản trị cơ sở dữ liệu (DBMS)
Dữ liệu trong các loại cơ sở dữ liệu phổ biến nhất thường được mô hình hóa thành các hàng và cột trong một loạt bảng để giúp xử lý và truy vấn dữ liệu hiệu quả Sau đó, người ta có thể dễ dàng truy cập, quản lý, sửa đổi, cập nhật, kiểm soát và tổ chức Hầu hết các Database sử dụng ngôn ngữ truy vấn có cấu trúc (SQL) để thiết lập và truy vấn
dữ liệu
Trang 16Mặc dù các loại cơ sở dữ liệu khác nhau sẽ khác nhau về lược đồ, cấu trúc dữ liệu
và kiểu dữ liệu, nhưng các Database đều bao gồm năm thành phần cơ bản giống nhau sau:
DBMS là chữ viết tắt của Database Management System – Hệ thống quản trị cơ sở
dữ liệu, là một phần mềm hệ thống phục vụ các hoạt động tạo và quản lý các cơ sở dữ liệu, phần mềm hỗ trợ cho người dùng cuối (End Users) có thể tạo, đọc, cập nhật và xóa các dữ liệu trong cơ sở dữ liệu
Những thao tác có thể thực hiện trên một hệ thống quản lý cơ sở dữ liệu cơ bản bao gồm :
• Xác định tổ chức cơ sở dữ liệu: Hỗ trợ người dùng tạo, thay đổi và xóa các định nghĩa xác định tổ chức cơ sở dữ liệu
• Cập nhật dữ liệu: Phần mềm cung cấp quyền truy cập đến người dùng nhằm mục đích hỗ trợ chèn, sửa đổi và xóa dữ liệu khỏi cơ sở dữ liệu
• Khôi phục dữ liệu: Cho phép người sử dụng khôi phục lại dữ liệu đã xóa từ
cơ sở dữ liệu dựa trên những yêu cầu từ người sử dụng
• Quản trị người dùng: Hỗ trợ việc đăng ký tài khoản và giám sát mọi hoạt động của họ nhằm thực thi bảo mật dữ liệu, duy trì tính toàn vẹn dữ liệu và giám sát hiệu suất
Hiện này có những hệ quản trị cơ sở dữ liệu phổ biến sau:
• Hệ quản trị cơ sở dữ liệu Oracle
• Hệ quản trị cơ sở dữ liệu MySQL
• Hệ quản trị cơ sở dữ liệu SQL Server
• Hệ quản trị cơ sở dữ liệu Access
Trang 17DBMS là một công cụ vô cùng hữu ích dành cho các cá nhân, cơ quan, doanh nghiệp, công ty để dễ dàng quản lý kho dữ liệu lớn của mình Theo xu hướng và sự phát triển công nghệ 4.0 thì DBMS ngày càng đa dạng Với việc công nghệ thông tin ngày càng phát triển thì những phần mềm quản lý cơ sở dữ liệu đang góp vai trò cực kì quan trọng cho các doanh nghiệp thuộc nhiều lĩnh vực
2.2.3 Các kỹ thuật mô phỏng dữ liệu cho Database
a) Web Scraping
Web scraping, web harvesting hay còn gọi là web data extraction là quá trình cào
dữ liệu được sử dụng để trích xuất dữ liệu từ các website Các phần mềm web scraping truy cập vào website bằng giao thức HTTP hoặc bằng web browser để lấy ra các dữ liệu
mà họ quan tâm Quá trình này có thể được thực hiện thủ công bằng cách sử dụng phần mềm, tuy nhiên phần lớn khi nhắc đến web scraping tương đương với quá trình thu thập
dữ liệu tự động được triển khai bằng bot hoặc các web crawler
Đề tài sử dụng 2 công cụ Selenium và Scrapy để thực hiện trích xuất dữ liệu:
• Selenium là công cụ tự động hóa trình duyệt web ban đầu được thiết kế để tự động hóa các ứng dụng web cho mục đích thử nghiệm (testing) Nó hiện được
sử dụng cho nhiều ứng dụng khác như tự động hóa các tác vụ quản trị dựa trên web, tương tác với các nền tảng không cung cấp API, cũng như để thu thập thông tin web (web crawling)
• Scrapy là một thư viện Python được tạo ra để quét và xây dựng các trình thu thập dữ liệu web Nó nhanh chóng, đơn giản và có thể điều hướng qua nhiều trang web mà không mất nhiều công sức
b) Faking data
Faking data là quá trình tạo ra dữ liệu giả (giả mạo) cho cơ sở dữ liệu Dữ liệu giả được tạo mới mục đích mô phỏng, kiểm thử, đánh giá và phát triển ứng dụng Quá trình tạo ra dữ liệu giả thường được thực hiện thông qua công cụ Faker
Faker là một thư viện rất nổi tiếng để tạo dữ liệu giả, với rất nhiều kiểu dữ liệu cho các vấn đề khác nhau như người dùng, công việc, thẻ ngân hàng, Faker được viết trên
Trang 18đo suy nghĩ nên viết script tạo dữ liệu giả như thế nào vì phần lớn các thông tin giả cần tạo đều đã có sẵn trong thư viện
2.3 Giới thiệu về Data Lake
Dữ liệu ở khắp mọi nơi được Data Engineer đưa vào Database, ban đầu dữ liệu này
sẽ không đi thẳng vào Data Warehouse mà sẽ đi qua Data Lake Nó sẽ chứa các dữ liệu thô dữ liệu này là gần như lấy từ Database qua Nó sử dụng để report như : Báo cáo doanh thu hàng tháng, Lượt mua hàng của khách hàng trong những ngày lễ,…Và dùng cho nhiều mục đích báo cáo khác, người trực tiếp sử dụng Data Lake là các Data Analytics Họ dùng Data Lake để đưa ra các phân tích cho doanh nghiệp
2.4 Giới thiệu về Data Warehouse
Dữ liệu từ Data Lake được chuyển đến nơi tiếp theo ở đây chúng ta gọi là Data Warehouse, Data Warehouse là nơi tập trung tất cả các nguồn dữ liệu đổ về Nhằm giải quyết các vấn đề sai lệch giữa các báo cáo, đảm bảo mọi dữ liệu đều từ một nguồn mà
ra Và data trong Data Warehouse là data sạch
Data Warehouse là nơi tập trung các dữ liệu nhằm phục vụ mục đích báo cáo phân tích và những dữ liệu đã được xử lý Để đẩy dữ liệu từ Data Lake sang Data Warehouse chúng ta vẫn sử dụng ETL
Từ Data Warehouse mình chọn các dữ liệu cần thiết để tạo ra Data Mart sau khi tạo
ra Data Mart, chúng ta kết nối với các công cụ như Visualization để phân tích Data Mart nhằm tạo ra các mô hình đa chiều sử dụng mô hình OLAP
2.5 Giới thiệu về ETL pipeline
Hình 2.5.1 Các bước để xây dựng ETL pipeline
Trang 19ETL pipeline là một cơ chế mà các quá trình ETL xảy ra ETL là viết tắt của Extract, Transform và Load Pipeline chủ yếu được sử dụng để trích xuất dữ liệu từ một hệ thống nguồn chuyển đổi nó dựa trên các yêu cầu và tải nó vào Data Warehouse chủ yếu cho mục đích phân tích
2.6 Giới thiệu về điện toán đám mây và nền tảng Azure
2.6.1 Khái niệm
Azure là một nền tảng điện toán đám mây của Microsoft phát triển Nền tảng này được các nhà phát triển và các chuyên gia công nghệ thông tin sử dụng và xây dựng, triển khai, quản lý thông qua mạng lưới trung tâm dữ liệu của họ
2.6.2 Các dịch vụ Azure được sử dụng trong dự án
a) Azure Storage
Azure Storage là nền tảng lưu trữ đám mây của Microsoft cho các nhu cầu lưu trữ
dữ liệu hiện đại Azure Storage cho phép lưu trữ nhiều loại dữ liệu trên đám mây với khả năng cao, có thể mở rộng quy mô lớn, bền vững và bảo mật Các loại dữ liệu Azure Storage có thể được truy cập từ bất kỳ đâu trên thế giới qua giao thức HTTP hoặc HTTPS
Azure Storage bao gồm các loại lưu trữ chính sau:
• Azure Blob Storage
• Azure Files Storage
• Azure Queue Storage
• Azure Table Storage
Azure Data Lake Storage là dịch vụ lưu trữ tệp để lưu trữ và phân tích dữ liệu lớn trong các ứng dụng phân tích dữ liệu
• Azure Data Lake Storage Gen1 là bộ lưu trữ siêu quy mô được tối ưu hóa cho các tác vụ phân tích dữ liệu, cho phép thu thập dữ liệu ở mọi kích thước, loại và tốc độ ở một nơi để thực hiện Phân tích hoạt động và tìm kiếm bằng cách sử dụng các khung khác nhau Azure Data Lake Storage Gen 1 có cấu trúc phân
Trang 20• Azure Data Lake Storage Gen2 là một nền tảng lưu trữ đám mây cho phân tích
dữ liệu lớn, dựa trên Azure Blob Storage Data Lake Storage Gen2 hợp nhất các tính năng của Azure Data Lake Storage Gen1 và Azure Blob Storage Data Lake Storage Gen2 biến Azure Storage thành nền tảng để tạo các kho dữ liệu trên Azure Data Lake Storage Gen2 giúp bạn quản lý lượng lớn dữ liệu một cách hiệu quả
b) Azure Data Factory
Azure Data Factory là một dịch vụ tích hợp dữ liệu đám mây được sử dụng để tổng hợp các dịch vụ lưu trữ, di chuyển và xử lý dữ liệu thành các đường dẫn dữ liệu tự động Data Factory có thể tích hợp dữ liệu từ nhiều nguồn khác nhau, bao gồm cả dữ liệu lớn,
dữ liệu SaaS, bằng cách sử dụng hơn 90 bộ kết nối được tích hợp sẵn Azure Data Factory là một dịch vụ không máy chủ, thanh toán theo yêu cầu và có thể mở rộng theo nhu cầu
Các thành phần của Azure Data Factory:
• Pipeline là một tập hợp các hoạt động được sử dụng để thu thập và xử lý dữ liệu,
tự động hóa các quy trình công việc liên quan đến dữ liệu và có thể chứa nhiều bước, bao gồm các hoạt động ETL Các quy trình trong Azure Data Factory được xây dựng bằng cách sử dụng các thành phần cơ bản như Dataset, Linked Service
và Activity Nó cho phép quản lý các hoạt động dưới dạng một bộ sưu tập thay
vì từng cái một
• Activity là thành phần xác định một hành động cụ thể để thực hiện trên dữ liệu
Có ba loại hoạt động chính: hoạt động di chuyển dữ liệu, hoạt động chuyển đổi
dữ liệu và hoạt động điều khiển
• Mapping Data Flows cho phép người dùng áp dụng các thao tác trích xuất, chuyển đổi và tải dữ liệu dễ dàng hơn bằng cách sử dụng các thao tác kéo và thả trên giao diện người dùng
• Integration Runtime là dịch vụ tính toán và kết nối cho các hoạt động tích hợp
và chuyển dữ liệu trong Azure Data Factory và Azure Synapse pipelines Integration Runtime có ba loại: Azure, Self-hosted và Azure-SSIS, phục vụ cho các môi trường mạng khác nhau
Trang 21c) Azure Synapse Analytics
Azure Synapse Analytics là một dịch vụ phân tích doanh nghiệp giúp tăng tốc thời gian để hiểu rõ dữ liệu và hệ thống dữ liệu lớn Azure Synapse tập hợp những công nghệ SQL tốt nhất được sử dụng trong kho dữ liệu doanh nghiệp, công nghệ Spark được
sử dụng cho dữ liệu lớn, Data Explorer để phân tích nhật ký và chuỗi thời gian, Đường ống để tích hợp dữ liệu và ETL/ETL cũng như tích hợp sâu với các dịch vụ Azure khác như Power BI, Cosmos DB và Azure ML
Hình 2.6.1 Các thành phần của Azure Synapse Analytics
d) Dedicated SQL Pool (formerly SQL DW)
Dedicated SQL Pool là dịch vụ cung cấp các tính năng lưu trữ phục vụ nhu cầu phân tích dữ liệu trong Azure Synapse Analytics Đây là dịch vụ bao gồm các tài nguyên phân tích được cung cấp khi sử dụng Synapse SQL
Dedicated SQL Pool lưu trữ dữ liệu trong các bảng quan hệ với định dạng lưu trữ theo cột (một cách thức lưu trữ phục vụ cho mục đích phân tích dữ liệu) Định dạng này giảm đáng kể chi phí lưu trữ dữ liệu và cải thiện hiệu suất truy vấn Sau khi dữ liệu được lưu trữ, người dùng có thể chạy phân tích ở quy mô lớn So với các hệ thống cơ
sở dữ liệu truyền thống, các truy vấn phân tích kéo dài trong vài giây thay vì vài phút hoặc vài giờ thay vì vài ngày
Trang 22CHƯƠNG 3 ỨNG DỤNG CÁC DỊCH VỤ TRÊN NỀN TẢNG AZURE ĐỂ XÂY DỰNG KHO DỮ LIỆU PHỤC VỤ PHÂN TÍCH HOẠT ĐỘNG CHO
HỆ THỐNG QUẢN LÝ CỬA HÀNG QUẦN ÁO
3.1 Quy trình xây dựng Database