Để làm rõ được những yếu tố nào tác động đến khả năng thành công cuộc các chiến dịch tiếp thị trực tiếp thông qua gọi điện thoại, nhóm đi đến quyết định lựa chọn đề tài “Ứng dụng Apache
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINHKHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CUỐI KỲ MÔN HỌC TRỰC QUAN HOÁ DỮ LIỆU
ĐỀ TÀI
ỨNG DỤNG APACHE SUPERSET ĐỂ XÂY DỰNGDASHBOARD NGHIÊN CỨU VỀ TIẾP THỊ NGÂN HÀNG
Tp Hồ Chí Minh, ngày30 tháng 5 năm 2022
Trang 2TP.HCM KHOA CNTT
Độc lập – Tự do – Hạnh Phúc
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Tp Hồ Chí Minh, ngày30 tháng 5 năm 2022
Giáo viên hướng dẫn
(Ký & ghi rõ họ tên)
ĐH SƯ PHẠM KỸ THUẬTTP.HCM KHOA CNTT
XÃ HỘI CHỦ NGHĨA VIỆT NAM
Trang 3******* Độc lập – Tự do – Hạnh Phúc
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Tp Hồ Chí Minh, ngày 30 tháng 5 năm 2022
Giáo viên phản biện
(Ký & ghi rõ họ tên)
Trang 4LỜI CẢM ƠN
Lời nói đầu tiên, nhóm thực hiện xin được gửi đến thầy Huỳnh Xuân Phụng – giảng viên bộ môn lời cảm ơn chân thành và sâu sắc nhất.
Thứ hai, nhóm cũng xin gửi lời cảm ơn chân thành đến các thành viên và các nhóm trong lớp học đã gửi những câu hỏi và lời góp ý đến nhóm Thông qua những góp ý này, nhóm chúng tôi đã hoàn thiện và khắc phục những điểm thiếu sót.
Nhóm thực hiện xin cảm ơn sự quan tâm và giúp đỡ tận tình của thầy trong suốt quá trình giảng dạy Cảm ơn thầy đã luôn giải đáp những thắc mắc cũng như đưa ra những nhận xét, góp ý giúp nhóm thực hiện cải thiện chất lượng công việc của nhóm.
Vì khả năng còn hạn chế nên trong quá trình thực hiện báo cáo không tránh khỏi sai sót, kính mong nhận được những ý kiến đóng góp từ thầy để nhóm có thể cải thiện hơn sau này.
Nhóm thực hiện xin chân thành cảm ơn thầy.
Trang 62.1 Thiết kế cơ sở dữ liệu 16
Trang 7DANH MỤC HÌNH
7
Trang 8DANH MỤC TỪ VIẾT TẮT
8
Trang 9PHẦN 1: MỞ ĐẦU 1.1 Tính cấp thiết của đề tài
Trong bối cảnh kinh tế phát triển mạnh mẽ, nguồn tài chính dồi dào và có dư thừa Việc tích trữ tiền tệ thông qua nhu cầu gửi lãi có kỳ hạn là điều được nhiều khách hàng nhắm đến Thế nhưng ngân hàng nào cũng cung cấp dịch vụ này, điều này tạo ra cuộc chiến giành giật khách hàng thông qua tiếp thị
Tiếp thị cũng có nhiều chủng loại và hiệu suất đem lại cũng khác nhau Tiếp thị trực tiếp thông qua gọi điện thoại đem lại hiệu quả cao với mức chi phí rất thấp Tuy nhiên, không phải tiếp thị tới nhiều người nhất có thể sẽ đem lại được kết quả cao Việc này phụ thuộc vào đối tượng và các thức tiếp thị Để làm rõ được những yếu tố nào tác động đến khả năng thành công cuộc các chiến dịch tiếp thị trực tiếp (thông qua gọi điện thoại), nhóm đi đến quyết định lựa chọn đề tài “Ứng dụng Apache Superset để xây dựng dashboard nghiên cứu về tiếp thị ngân hàng”
1.2 Mục đích của đề tài
Ứng dụng Apache Superset để xây dựng dashboard nghiên cứu về tiếp thị ngân hàng với dữ liệu có liên quan đến các chiến dịch tiếp thị trực tiếp (cuộc gọi điện thoại) của một tổ chức ngân hàng Bồ Đào Nha Mục tiêu phân loại là dự đoán xem khách hàng có đăng ký khoản tiền gửi có kỳ hạn
1.3 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Đối tượng nghiên cứu của đồ án là tìm hiểu, phân tích và xây dựng dashboard thông qua superset.
- Phạm vi nghiên cứu: Đồ án chỉ nghiên cứu trong phạm vi mà dịch vụ AWS hỗ trợ cho tài khoản sinh viên Phần mềm sử dụng chủ yếu: Apache Superset
1.4 Kết quả dự kiến đạt được
Trong phạm vi nghiên cứu của đề tài nhóm chúng em dự kiến sẽ hoàn thiện được một dashboard cung cấp đầy đủ thông tin hữu ích về các tệp khách hàng đã và đang sử dụng dịch vụ tiền gửi của ngân hàng Cung cấp thông tin về nhóm đối tượng thành công cao khi thực hiện các biện pháp tiếp thị.
9
Trang 10PHẦN 2: NỘI DUNG 1.5 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Sơ lược về điện toán đám mây (Cloud)
Điện toán đám mây là việc các tài nguyên CNTT được phân phối theo nhu cầu của người sử dụng thông qua môi trường Internet Công nghệ điện toán được đảm bảo và quản lý bởi một công ty hoặc tổ chức như Amazon, Google, Thay vì phải tốn nhiều tiền bạc, thời gian và công sức để xây dựng và quản lý tài nguyên vật lý, việc sử dụng điện toán đám mây là cách thức bạn có thể tiếp cận các dịch vụ công nghệ, điện toán, cơ sở dữ liệu khi cần thiết và các dịch vụ này thường sẽ có chính sách thanh toán theo nhu cầu của khách hàng (pay-as-you-go).
Các tổ chức thuộc mọi loại hình, quy mô và ngành công nghiệp đang sử dụng các dịch vụ đám mây cho nhiều trường hợp sử dụng Chúng bao gồm sao lưu dữ liệu, ảo hoá hệ thống máy tính, phát triển và kiểm tra phần mềm, phân tích dữ liệu và các ứng dụng website của khách hàng.
Đám mây cho phép bạn dễ dàng tiếp cận nhiều công nghệ để bạn có thể đổi mới nhanh hơn và phát triển gần như mọi thứ mà bạn có thể tưởng tượng.
1.2 Sơ lược về AWS
1.2.1 Giới thiệu AWS
Amazon Web Services (AWS) là nền tảng đám mây được cung cấp bởi Amazon Amazon Web Services là nền tảng đám mây toàn diện và được sử dụng rộng rãi nhất, cung cấp trên 200 dịch vụ đầy đủ tính năng từ các trung tâm dữ liệu trên toàn thế giới Là dịch vụ cung cấp cơ sở hạ tầng CNTT cho các doanh nghiệp với chi phí thấp, độ linh hoạt, an toàn cao.
1.2.2 Các dịch vụ đã sử dụng
AWS cung cấp rất nhiều dịch vụ (trên 200 dich vụ) một số dịch vụ còn được sử dụng miễn phí Trong đó, các dịch vụ cơ bản như: Compute, Storage, Database, Networking and content delivery, Developer tools, Management Tools, Analytics, Internet of things, Machine learning Trong đề tài này, nhóm có sử dụng một vài dịch vụ về điện toán và cơ sở dữ liệu như sau:
- EC2 là một cơ sở hạ tầng điện toán đám mây được cung cấp bởi Amazon Web Services (AWS) giúp cung cấp tài nguyên máy tính ảo hoá theo yêu cầu - RDS là viết tắt của Amazon Relational Database Service là một web service cho
phép dễ dàng setup thao tác, scale relational database (cơ sở dữ liệu quan hệ) trên AWS Cloud.
10
Trang 111.3 Sơ lược về Docker và các dịch vụ chính1.3.1 Khái niệm
Docker là nền tảng mở cho phép tạo, kiểm thử và triển khai các ứng dụng containers (trên nền tảng ảo hóa) một cách nhanh chóng Được viết bằng ngôn ngữ Python nhưng sau đó đã chuyển thành Golang.
1.3.2 Docker Image
Docker image là một khuôn mẫu đề tạo một container Nó là nơi chứa source code, các thư viện, các tools cần thiết để chạy một ứng dụng.
1.3.3 Docker Container
Docker container là môi trường mà ở đó người dùng có thể triển khai ứng dụng một cách độc lập Các container này rất gọn, nhẹ, cho phép chạy các ứng dụng trong đó một cách nhanh chóng, dễ dàng
Docker Container có tính chuẩn xác cao trong việc chạy ứng dụng trong container Ngoài ra, nó còn đảm bảo cho ứng dụng hoạt động như nhau trong các môi trường giống nhau, làm đơn giản việc cài đặt và chia sẻ
Container hoạt động độc lập nên nó không làm ảnh hưởng tới các Container khác cũng như server mà Container đó đang chạy Vì vậy, không cần lo lắng việc máy tính bị xung đột do các ứng dụng đang được phát triển chạy trong container.
1.3.4 Docker Compose
Docker compose là công cụ dùng để định nghĩa và sử dụng nhiều container cho ứng dụng chạy bằng Docker Docker compose sử dụng file YAML để cấu hình các services cho các ứng dụng Sau đó dùng command để create và run từ những cấu hình đó Các bước sử dụng:
- Khai báo môi trường trong Dockerfile.
- Khai báo các services cần thiết để chạy ứng dụng trong file docker-compose.yml.
- Chạy câu lệnh docker-compose up để start Compose và chạy chương trình.
1.4 Giới thiệu về Apache Superset1.4.1 Khái niệm
Apache Superset là một công cụ trực quan hóa dữ liệu mã nguồn mở và là một nền tảng khám phá dữ liệu và trực quan hóa dữ liệu hiện đại Superset tích hợp nhiều ngôn ngữ khác nhau.
Superset được phát triển bằng ngôn ngữ Python và tương tác bằng việc sử dụng Flask Framework Superset sử dụng SQLAlchemy để hỗ trợ phần lớn các RDBMS Các ưu điểm Superset cung cấp:
- Một giao diện thuận tiện cho việc xây dựng biểu đồ một cách nhanh chóng 11
Trang 12- Có SQL Lab mạnh mẽ, dựa trên web để truy vấn nâng cao - Hỗ trợ hầu hết mọi cơ sở dữ liệu hoặc công cụ dữ liệu SQL.
- Trực quan hoá đẹp hiển thị dữ liệu, từ biểu đồ đơn giản đến hình ảnh hóa không gian địa lý.
- Có thể định dạng cấu hình để giúp tải cơ sở dữ liệu dễ dàng nhờ bộ nhớ đệm - Có các tùy chọn xác thực và vai trò bảo mật có thể mở rộng cao.
- Cung cấp API dễ dàng tùy chỉnh.
1.4.2 Chart
Biểu đồ thường được sử dụng để dễ dàng trực quan hóa cho dữ liệu Các chart trong Superset được chia thành nhiều loại tùy theo mục đích sử dụng của người dùng Superset hỗ trợ rất nhiều loại biểu đồ khác nhau từ đơn giản 2D, biểu đồ địa lý thế giới, từng quốc gia, đến các biểu đồ 3D địa lý phức tạp cũng như các biểu đồ real time
1.4.3 Dashboard
Dashboard có thể được hiểu là một bảng điều khiển kỹ thuật số (digital control), hay là một giao diện số được dùng để thu thập và tổng hợp dữ liệu của toàn bộ tổ chức Dashboard trong superset là tập hợp của nhiều thành phần như: chart, filter, các tabs, Trong khi thiết kế dashboard, Superset cung cấp nhiều công cụ để thiết kế như tạo các row, col, thêm các markdown để việc thiết kế đơn giản và đẹp hơn.
Công việc backup và tái sử dụng dashboard rất đơn giản, bạn chỉ cần backup lại thông qua file zip, khi cần cho mục đích backup, Superset sẽ khôi phục lại dữ liệu như ban đầu từ: data, chart, các cấu hình đã định sẵn,
1.4.4 Database
Superset có thể dễ dàng kết nối tới cơ sở dữ liệu được hỗ trợ thông qua SQLAlchemy Nếu cần kết nối với một database chưa được cài đặt sẵn driver kết nối, bạn chỉ cần thêm tên của driver để kết nối trong file requirements Chỉ cần thêm đường dẫn kết nối, Superset sẽ đảm bảo việc kết nối tới kho dữ liệu nhanh chóng và bắt đầu xây dựng biểu đồ Một số database mà Superset hỗ trợ
12
Trang 13Để truy vấn cơ sở dữ liệu SQL mới, Superset yêu cầu:
- SQLAlchemy + driver có sẵn trong thư viện Python DB-API 2 để kích hoạt chức năng cơ bản.
- Một số mã kết nối dành riêng cho cơ sở dữ liệu để kích hoạt tất cả các tính năng
- Ngoài ra, trong phần advanced, có thể cài đặt các ràng buộc cho cơ sở dữ liệu có thể truy cập và sử dụng bởi các tính năng trong Superset
1.4.5 Dataset
Dataset hay còn gọi là specific table, là một tập dữ liệu được đưa vào SuperSet và dùng để vẽ các biểu đồ và thực thi các truy vấn trong SuperSet.
Có nhiều cách để thêm một dataset vào một database như: Từ một file csv, từ một columnar file, từ file excel
Cách Thêm một dataset: Chọn database, schema phù hợp, table
13
Trang 14Trong SuperSet, Dataset được chia làm 2 loại : vật lý và virtual (ảo)
+ Dataset vật lý trong Superset đại diện cho một bảng hoặc dạng view trong cơ sở dữ liệu Bởi vì tập dữ liệu vật lý phản ánh một bảng thực (real) nên Superset có thể tự động lấy thông tin có liên quan từ cơ sở dữ liệu (như lược đồ (chema)và cột(column)) Thông tin này được lưu trong cơ sở dữ liệu metadata của Superset.
+ Dataset ảo cho phép nâng cao một truy vấn SQL dạng tự do dựa trên cơ sở dữ liệu gốc thành một thực thể tập dữ liệu trong Superset
1.4.6 Bảo mật
Việc bảo mật trong Superset được xử lý bởi Flask AppBuilder (FAB) Ta có thể hiểu FBA ở đây là một “khung phát triển ứng dụng đơn giản và nhanh chóng được xây dựng trên Flask” FBA cung cấp việc xác thực , quản lý quyền và vai trò của người dùng.
Superset thực hiện các biện pháp bảo mật thích hợp để chuyển dữ liệu cá nhân nhằm bảo vệ chống lại việc truy cập trái phép, thay đổi , tiết lộ hoặc phá hủy dữ liệu cá nhân mà superset thu thập và lưu trữ.
Các biện pháp bảo mật của Superset sẽ khác nhau dựa trên loại và độ nhạy của dữ liệu Tất cả các quyền truy cập vào các ứng dụng superset đều được ghi lại và kiểm tra.
1.4.7 Filter
Dùng để lọc các biểu đồ dữ liệu trong các dashboard theo một điều kiện do người sử dụng nhập vào để phù hợp với mục đích sử dụng
1.4.8 SQL Labs
SQL Labs là một SQL IDE mạnh mẽ trong Superset SQL Labs có thể hoạt động với bất kỳ cơ sở dữ liệu nào chỉ cần có trình kết nối SQLAlchemy Python SQL 14
Trang 1713 - pdays: number of days that passed by after the client was last contacted from a previous campaign (numeric; 999 means client was not previously contacted)
14 - previous: number of contacts performed before this campaign and for this client (numeric)
15 - poutcome: outcome of the previous marketing campaign (categorical: "failure","nonexistent","success")
# Social and economic context attributes
16 - emp.var.rate: employment variation rate - quarterly indicator (numeric) 17 - cons.price.idx: consumer price index - monthly indicator (numeric) 18 - cons.conf.idx: consumer confidence index - monthly indicator (numeric)
19 - euribor3m: euribor 3-month rate - daily indicator (numeric) 20 - nr.employed: number of employees - quarterly indicator (numeric) Output variable (desired target):
21 - y - has the client subscribed a term deposit? (Binary: "yes","no")
2.1.2 Cơ sở dữ liệu
- Cấu hình RDS:
Hình 1: Thông tin cấu hình RDS
- Thông tin kết nối:
17
Trang 182.1.3 Kết nối cơ sở dữ liệu
Sử dụng cơ sở dữ liệu PostgreSQL:
Hình 3: Superset kết nối tới RDS
- Để thêm các dataset (table) từ RDS vào superset, ta cần kích hoạt:
18
Trang 19- Thông tin dữ liệu sau khi thêm vào:
Hình 5: Lấy thông tin dataset của database
2.1.4 Điều chỉnh cơ sở dữ liệu
- Code cập nhật database tự động từ nguồn github bằng python:
19
Trang 202.3 Xây dựng dashboard2.3.1 Bảo mật dashboard
● Phân quyền cho user public
- Tạo user Another User đại diện cho public user
Hình 7: Tạo User
Tạo quyền readonly cho user public truy cập
20
Trang 212.3.2 Xây dựng các chart* Chart về Khách hàng
1) Thông tin về nghề nghiệp của khách hàng và những khách hàng nào là chủ yếu
Hình 9: Công việc của khách hàng
=> Khách hàng chủ yếu là: admin, blue-collar.
2) Thống kê xem tỷ lệ gửi tiền theo từng loại ngành nghề của khách hàng
21
Trang 22=> Ta thấy tỉ lệ của student cao nhất, nhưng do số lượng của student ít, và nếu chia tỉ lệ thì admin vẫn là ngành nghề có tỷ lệ gửi tiết kiệm nhiều nhất
3) Thống kê lại số lượng khách hàng có gửi tiết kiệm theo công việc của họ
Hình 11: Biểu đồ
=> admin, blue-collar là những khách hàng có tỷ lệ đăng ký gửi tiền nhiều nhất 4) Thống kê xem với độ tuổi nào thì khách hàng có xu hướng gửi tiết kiệm nhiều
22
Trang 23=> Khoảng độ tuổi 33-38
5) Thống kê về các phương thức liên hệ với khách hàng và tỉ lệ thành công bằng các phương thức đó
Hình 13: Biểu đồ barchat và table theo phương thức liên hệ
=> Tỷ lệ thành công với cách thức liên hệ bằng telephone sẽ lớn hơn 6) Tỷ lệ khách hàng có gửi tiết kiệm tại ngân hàng
23
Trang 24=> Tỷ lệ khách hàng ký gửi còn khá thấp
* Chart về yếu tố kinh tế
1) Lãi suất trung bình, chỉ số giá tiêu dùng và tỷ lệ thay đổi việc làm tại một thời điểm
Hình 15: Big number về kinh tế
2) Chỉ số kinh tế so với mức bình quân tại một thời điểm
24
Trang 25=> màu đậm: lớn hơn mức bình quân
3) Lãi suất cho vay của xã hội thời điểm đó có ảnh hưởng tới khả năng gửi tiết kiệm không?
Hình 17: Bar chart về lãi suất
=> Có ảnh hưởng, tỷ lệ lãi thấp thì sẽ có xu hướng gửi ngân hàng còn lãi cao thì tỷ lệ gửi ngân hàng là rất thấp
4) Tỷ lệ gửi tiết kiệm so với yếu tố niềm tin của người tiêu dùng tại một thời điểm
25
Trang 262.3.4 Xây dựng filter* Khách hàng
Hình 19: Filter cho tab khách hàng
=> Dùng để filter các chart theo các thuộc tính : age, job, contact* Kinh tế
26
Trang 27=> Dùng để filter các thuộc tính : chỉ số giá tiêu dùng, tỷ lệ thay đổi việc làm
2.3.5 Xây dựng dashboard
a Xây dựng tab thông tin khách hàng
27
Trang 28b Xây dựng thông tin về kinh tế
28