Để 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Í MINH
KHOA 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ỰNG DASHBOARD NGHIÊN CỨU VỀ TIẾP THỊ NGÂN HÀNG
GVHD: Ths Huỳnh Xuân Phụng Lớp: Thứ 5 (tiết 12-15) Sinh viên thực hiện: (Nhóm 7)
Vũ Văn Phước (MSSV: 19133045)Nguyễn Hoài Nam (MSSV: 19133037)Nguyễn Vũ Lực (MSSV: 19133034)
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
Ngành: Kỹ thuật dữ liệu
Tê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
Họ và tên Giáo viên hướng dẫn: Huỳnh Xuân Phụng
NHẬN XÉT
Về nội dung đề tài khối lượng thực hiện:
1 Ưu điểm:
2 Khuyết điểm
3 Đề nghị cho bảo vệ hay không?
4 Đánh giá loại:
5 Điểm:
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ẬT
TP.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
Ngành: Kỹ thuật dữ liệu
Tê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
Họ và tên Giáo viên phản biện:
NHẬN XÉT
Về nội dung đề tài khối lượng thực hiện:
1 Ưu điểm:
2 Khuyết điểm
3 Đề nghị cho bảo vệ hay không?
4 Đánh giá loại:
5 Điểm:
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 4Vì 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ỏisai sót, kính mong nhận được những ý kiến đóng góp từ thầy để nhóm có thể cảithiệ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
Studio
Environment
8
Trang 9PHẦN 1: MỞ ĐẦU1.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áchhà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 racuộ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 Tuynhiê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 quagọ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ânhà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áchhà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 đượcmộ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ànhcông cao khi thực hiện các biện pháp tiếp thị
9
Trang 10PHẦN 2: NỘI DUNG1.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ầucủ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ốnnhiề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ệntoá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ántheo 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ụngcá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ớinhanh 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 WebServices (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 chophé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ính
1.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ụngcontainers (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
Container hoạt động độc lập nên nó không làm ảnh hưởng tới các Container kháccũ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ácservices 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 compose.yml
docker Chạy câu lệnh dockerdocker compose up để start Compose và chạy chương trình
1.4 Giới thiệu về Apache Superset
1.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ộtnề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ềungô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ụngFlask 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ônggian đị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 charttrong 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 đồ realtime
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ạithô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 quaSQLAlchemy 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 đườngdẫ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 đầuxâ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íchhoạ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áctí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ủaSuperset
+ 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âydự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ườidù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ânnhằ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ểmtra
Trang 1713 - pdays: number of days that passed by after the client was last contactedfrom a previous campaign (numeric; 999 means client was not previously contacted)
14 - previous: number of contacts performed before this campaign and for thisclient (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 dashboard
2.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ất4) 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ằngcá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ếtkiệ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
Trang 292.3.6 Sử dụng SQL template (Jinja)
* URL Parameters
Hình 23: Sử dụng param jinja
29
Trang 312.4 Các tiện ích mở rộng
2.4.1 Tích hợp vào website
- Cần thêm các tính năng trong file superset_config.py để sử dụng quyền chophép truy cập chart bỏ qua login
Hình 27: Cấu hình public cho superset
- Sử dụng tag iframe để thêm vào website bất kỳ:
31
Trang 33- Để sử dụng các APIs khác, cần dùng API login để lấy token login:
- Lấy thông tin các chart:
r2 = requests.get base_url + ( '/api/v1/chart/?q=(page:0,page_size:30)' ,
headers = headersAuth )
- Xem thông tin dashboard:
dash=requests.get base_url+ ( '/api/v1/dashboard/?
q=(page:0,page_size:30)’ , headers = headersAuth )
- Xem các chart trong một dashboard bằng id
33