1. Trang chủ
  2. » Cao đẳng - Đại học

Xây dựng hệ thống quản lý và gợi ý dịch vụ logistic sử dụng data lake

108 36 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 108
Dung lượng 2,39 MB

Nội dung

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM NGƠ THỊ HUYỀN NGUYỄN QUANG NGHĨA KHĨA LUẬN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ GỢI Ý DỊCH VỤ LOGISTIC SỬ DỤNG DATALAKE Building the logistic service management and suggestion system with data lake KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM TP HỒ CHÍ MINH, ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM NGÔ THỊ HUYỀN – 16520543 NGUYỄN QUANG NGHĨA – 16520810 KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ GỢI Ý DỊCH VỤ LOGISTIC SỬ DỤNG DATALAKE Building the logistic service management and suggestion system with data lake KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN Ths.NGUYỄN CƠNG HOAN TP HỒ CHÍ MINH, THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số …………………… ngày ………………… Hiệu trưởng Trường Đại học Công nghệ Thơng tin LỜI CẢM ƠN Sau q trình học tập rèn luyện khoa Công nghệ phần mềm trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM chúng em trang bị kiến thức bản, kỹ thực tế để hồn thành Khóa luận tốt nghiệp Để hồn thành khóa luận này, chúng em xin gửi lời cảm ơn chân thành đến: Ban Giám hiệu trường Đại học Công nghệ Thơng tin – ĐHQG TP.HCM tạo điều kiện sở vật chất với hệ thống thư viện đại, đa dạng loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thơng tin Chúng em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Cơng Hoan tận tình giúp đỡ, định hướng cách tư cách làm việc khoa học Đó góp ý q báu khơng trình thực luận văn mà hành trang tiếp bước cho chúng em trình học tập lập nghiệp sau Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất thầy khoa, bạn bè, tập thể lớp KTPM2016 người sẵn sàng sẻ chia giúp đỡ học tập sống Mong rằng, mãi gắn bó với Trong q trình làm khóa luận chúng em khơng tránh khỏi sai sót, chúng em kính mong nhận dẫn góp ý q thầy để khóa luận hồn thiện Chúng em xin chân thành cảm ơn Xin chúc điều tốt đẹp đồng hành người Thành phố Hồ Chí Minh, 10 tháng 01 năm 2021 Sinh viên NGÔ THỊ HUYỀN NGUYỄN QUANG NGHĨA MỤC LỤC Chương GIỚI THIỆU CHUNG 1.1 Lý chọn đề tài 1.2 Đối tượng nghiên cứu 1.3 Phạm vi nghiên cứu 1.4 Phương pháp nghiên cứu Chương KIẾN THỨC NỀN TẢNG 2.1 Tổng quan mơ hình MVC 2.1.1 Khái niệm 2.1.2 Cấu trúc mơ hình MVC 2.1.3 Luồng mô hình MVC 2.1.4 Tại dùng mơ hình MVC 2.1.5 So sánh MVC Và MVP 2.2 Tổng quan JAVA 11 2.2.1 Khái niệm 11 2.2.2 Lý chọn Java để phát triển server 26 2.3 Hệ quản trị sở liệu MySQL 33 2.4 Tổng quan ReactJS 34 2.4.1 Cơ chế hoạt động Apache Kafka 36 2.4.2 Tính Apache Kafka 36 2.4.3 Các thuật ngữ khái niệm Apache Kafka 37 2.5 Tổng quan Apache Flink 39 2.5.1 Tìm hiểu khái niệm Batch Real-time Processing 40 2.5.2 Hệ sinh thái Apache Flink 41 2.5.3 Tính Flink 42 2.6 Tổng quan Apache Zookeeper 43 2.6.1 Giới thiệu Hệ thống phân tán 43 2.6.2 Ưu điểm hệ thống phân tán 43 2.6.3 Giới thiệu ZooKeeper 43 2.6.4 Khả mở rộng 44 2.6.5 Chế độ độc lập 45 2.6.6 Mơ hình liệu ZooKeeper 45 2.6.7 Znode 46 2.7 Tổng quan Data Lake 46 2.7.1 Giới thiệu tổng quan 46 2.7.2 Mục đích & Lợi ích sử dụng 50 2.7.3 So sánh DataLake Data Warehouse 58 2.7.4 Mơ hình hệ thống Data Lake ứng dụng Mylogis 69 Chương PHÂN TÍCH HỆ THỐNG 72 3.1 Xây dựng kiến trúc hệ thống 72 3.1.1 Xác định yêu cầu hệ thống 72 3.1.2 Phân tích yêu cầu hệ thống 73 3.2 Phân tích thiết kế hệ thống 74 3.2.1 Sơ đồ use case 74 3.2.2 Sơ đồ lớp 76 3.2.3 Phân tích thiết kế CSDL 77 3.2.4 Thiết kế giao diện 85 Chương MƠ TẢ CHỨC NĂNG GỢI Ý GĨI DỊCH VỤ 88 4.1 Cơ sở lý thuyết toán định tuyến 88 4.2 Thực nghiệm 91 Chương KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN 93 5.1 Ưu điểm 93 5.2 Nhược điểm 94 DANH MỤC HÌNH Hình 2.1: Mơ hình MVC Hình 2.2: Mơ hình MVC pattern Hình 2.3: Mơ hình MVP Hình 2.4: Mơ hình hệ thống Complier Java 13 Hình 2.5: Mơ hình tảng JVM 15 Hình 2.6: Các ứng dụng Java 16 Hình 2.7: Các phiên Java 16 Hình 2.8: Các JDK Java 17 Hình 2.9: Sprint Framework Runtime 19 Hình 2.10: Spring MVC 21 Hình 2.11: Spring Boot 23 Hình 2.12: Sự phát triển độ phổ biến MYSQL 33 Hình 2.13: Mơ hình luồng liệu chiều ReactJS 34 Hình 2.14: Mơ hình tổng quan Apache Kafka 35 Hình 2.15: Cơ chế hoạt động Apache Kafka 36 Hình 2.16: Các tính Apache Kafka 36 Hình 2.17: Mơ hình lớp khác hệ sinh thái Apache Flink 41 Hình 2.18: Mơ hình mở rộng Zookeeper Service 44 Hình 2.19: Chế độ độc lập Zookeeper Service 45 Hình 2.20: Mơ hình liệu Znode 46 Hình 2.21: Các đặc trưng Big Data 49 Hình 2.22: Mục đích Data Lake 51 Hình 2.23: Mục tiêu Data Lake 53 Hình 2.24: Các tầng hệ thống Data Lake 55 Hình 2.25: Mô lý khiến cho Data Lake trở thành đầm lầy liệu 57 Hình 2.26: So sánh Data Warehouse với Data Lake 63 Hình 2.27: Các Schema Data Lake Data Warehouse 65 Hình 2.28: Mơ hình hệ thống Data Lake ứng dụng Mylogis 69 Hình 2.29: Mơ hình chi tiết hệ thống Data Lake Mylogis 70 Hình 3.1: Mơ hình nghiệp vụ Logisitc 72 Hình 3.2: Mơ hình UseCase hệ thống 74 Hình 3.3: Sơ đồ lớp ứng dụng Mylogis 76 Hình 3.4: Giao diện đăng nhập 86 Hình 3.5: Giao diện xem danh sách đơn hàng 86 Hình 3.6: Giao diện tạo đơn hàng 87 Hình 3.7: Giao diện hiển thị gói dịch vụ gợi ý 87 Hình 3.8: Giao diện cập nhật trạng thái cho nhà vận chuyển 88 Hình 4.1: Đồ thị ví dụ thuật tốn Dijkstra 91 Hình 4.2: Tạo map theo liệu từ hệ thống 92 DANH MỤC BẢNG Bảng 2-1: Bảng so sánh Data WareHouse Data Lake 68 Bảng 3-1: Bảng danh sách Actors 75 Bảng 3-2: Bảng danh sách UseCase 75 Bảng 3-3: Bảng mô tả lớp 77 Bảng 3-4: Bảng tên bảng CSDL 78 Bảng 3-5: Bảng cmProvince 79 Bảng 3-6: Bảng cmDistrict 79 Bảng 3-7: Bảng cmWard 80 Bảng 3-8: Bảng cmLocation 80 Bảng 3-9: Bảng cmRouting 81 Bảng 3-10: Bảng cmContainer 81 Bảng 3-11: Bảng cmCurrency 81 Bảng 3-12: Bảng cmStatus 82 Bảng 3-13: Bảng Company 82 Bảng 3-14: Bảng Customer 83 Bảng 3-15: Bảng cmSurcharges 83 Bảng 3-16: Bảng RulRate 83 Bảng 3-17: Bảng RulSurcharge 84 Bảng 3-18: Bảng Orders 85 Bảng 3-19: Bảng Users 85 Bảng 4-1: Bảng mô tả bước 91 Bảng 4-2: Bảng thông tin Map 93 Bảng 4-3: Bảng mơ tả bước chạy thuật tốn 93 CusFirstName varchar(100) Họ khách hàng CusAddress varchar(500) Địa khách hàng CusPhone int(11) CusLastName varchar(50) Tên khách hàng CusDescription varchar(500) Mô tả Số điện thoại khách hàng Bảng 3-14: Bảng Customer 3.2.3.11 Bảng cmSurcharges cmSurcharges Tên trường Kiểu liệu Ràng buộc Mơ tả ID int(11) Mã Id SurCode varchar(45) Mã phí SurName varchar(100) Tên phí Bảng 3-15: Bảng cmSurcharges 3.2.3.12 Bảng RulRate RulRate Tên trường Kiểu liệu Ràng buộc ID int(11) Mã giá tuyến RoutID int(11) Mã tuyến đường ContID int(11) Mã container CompanyID int(11) Mã công ty vận chuyển IsActive Int(2) Trạng thái Bảng 3-16: Bảng RulRate 83 Mô tả 3.2.3.13 Bảng RulSurcharge RulSurcharge Tên trường Kiểu liệu Ràng buộc Mô tả ID int(11) Mã biểu giá RulRateID int(11) Mã giá tuyến SurID int(11) Mã phí Amount float Đơn giá CurrencyId int(11) Mã tiền tệ Note varchar(100) Ghi Bảng 3-17: Bảng RulSurcharge 3.2.3.14 Bảng Orders Orders Tên trường Kiểu liệu Ràng buộc Mô tả ID int(11) Mã đơn hàng RulID int(11) Mã giá tuyến CusID int(11) Mã khách hàng CreatedDate datetime Ngày tạo đơn Status int(11) Trạng thái đơn hàng TotalAmount float Tổng giá trị đơn hàng ReceiverName nvarchar(100) Họ tên người nhận ReceiverPhone int(11) ReceiverLocation Nvarchar(1000) Số điện thoại người nhận Địa người nhận 84 VolumeProduction float Khối lượng hàng TypeProduct nvarchar(100) Loại hàng Description nvarchar(1000) Mô tả SenderName varchar(100) Họ tên người gửi SenderPhone int(11) SenderLocation Nvarchar(1000) Số điện thoại người gửi Địa người nhận Bảng 3-18: Bảng Orders 3.2.3.15 Bảng Users Users Tên trường Kiểu liệu Ràng buộc Mô tả ID int(11) Mã người dùng Email varchar(255) Địa email Password varchar(255) Mật tài khoản UserName varchar(255) Tên đăng nhập UserType int(11) Loại người dùng Bảng 3-19: Bảng Users 3.2.4 Thiết kế giao diện Website Mylogis chia làm giao diện cho loại người dùng: Khách hàng nhà vận chuyển 85 3.2.4.1 Giao diện cho khách hàng Hình 3.4: Giao diện đăng nhập Hình 3.5: Giao diện xem danh sách đơn hàng 86 Hình 3.6: Giao diện tạo đơn hàng Hình 3.7: Giao diện hiển thị gói dịch vụ gợi ý 87 3.2.4.2 Giao diện cho nhà vận chuyển Hình 3.8: Giao diện cập nhật trạng thái cho nhà vận chuyển Chương MÔ TẢ CHỨC NĂNG GỢI Ý GĨI DỊCH VỤ Sau q trình nghiên cứu tìm hiểu, nhóm định áp dụng thuật tốn Dijkstra để giải toán định tuyến đường nhằm tìm gói dịch vụ vận chuyển tốt cho khách hàng 4.1 Cơ sở lý thuyết toán định tuyến Thuật toán Dijkstra, mang tên nhà khoa học máy tính người Hà Lan Edsger Dijkstra vào năm 1956 ấn năm 1959, thuật toán giải toán đường ngắn nguồn đơn đồ thị có hướng khơng có cạnh mang trọng số khơng âm Thuật tốn thường sử dụng định tuyến với chương trình thuật tốn đồ thị hay cơng nghệ Hệ thống định vị tồn cầu (GPS) Bài tốn đặt ra: 88 Cho đồ thị có hướng G=(V,E), hàm trọng số w: E → [0, ∞) đỉnh nguồn s Cần tính tốn đường ngắn từ đỉnh nguồn s đến đỉnh đồ thị Áp dụng thuật toán Dijkstra để giải toán Thuật toán Dijkstra cho phép tìm đường ngắn từ đỉnh s đến đỉnh lại đồ thị chiều dài (trọng số ) tương ứng Phương pháp thuật tốn xác định đỉnh có chiều dài đến s theo thứ tự tăng dần Thuật toán xây dựng sở gán cho đỉnh nhãn tạm thời Nhãn tạm thời đỉnh cho biết cận chiều dài đường ngắn từ s đến đỉnh Nhãn đỉnh biến đổi bước lặp, mà bước lặp có nhãn tạm thời trở thành thức Nếu nhãn đỉnh trở thành thức chiều dài ngắn đường từ s đến đỉnh Ký hiệu : * L(v) để nhãn đỉnh v, tức cận chiều dài đường ngắn từ s0 đến v * d(s0 ,v) : chiều dài đường ngắn từ s0 đến v * m(s0 ,v) trọng số cung (cạnh) (s,v) Thuật tốn Dijkstra tìm chiều dài đường ngắn từ đỉnh s đến n-1 đỉnh lại mô tả sau: input: G, s0 Output : d(s0,v), v ≠ s0 ; Mô tả : o Khởi động : L(v) = ∞ , v ≠ s0; //Nhãn tạm thời S = {s0}; //Tập lưu trữ đỉnh có nhãn thức 89 o Bước : d(s0 ,s0 ) = L(s0) = 0; S = {s0}; // s0 có Nhãn thức o Bước 1: - Tính lại nhãn tạm thời L(v), v khơng thuộc S : Nếu v kề với s0 L(v) = Min{L(v), L(s0) + m(s0,v)}; - Tìm s1 thuộc S kề với s0 cho : o Bước 2: - Tính lại nhãn tạm thời L(v), v? S : Nếu v kề với s1 L(v) = Min{L(v), L(s1) + m(s1,v)}; Tính chất tham lam thuật tốn Dijkstra bước, chọn si không thuộc S si đỉnh kề với sj, với j = 0,i-1 cho L(si ) = Min{L(v) : v ? S } Minh hoạ : Xét đồ thị có hướng G : 90 Hình 4.1: Đồ thị ví dụ thuật tốn Dijkstra Đường ngắn từ đỉnh s = đến đỉnh lại : Bảng bước Bảng 4-1: Bảng mô tả bước 4.2 Thực nghiệm Ứng dụng thuật toán Dijkstra để giải toán định tuyến Bài toán đặt ra: Với đồ thị có hướng G có đỉnh điểm liệu bảng tuyến đường, trọng số đỉnh giá vận chuyển nhà vận chuyển 91 u cầu tốn, tìm đường ngắn từ điểm lấy điểm giao hàng cho tổng chi phí vận chuyển nhỏ Từ hệ thống đưa gói dịch vụ vận chuyển tốt cho khách hàng Mô tả cách giải toán Bước 1: Tạp Map, từ liệu tuyến đường giá cả, hệ thống tạo map chứa thông tin tuyến đường giá nhà vận chuyển Hình 4.2: Tạo map theo liệu từ hệ thống Thông tin đỉnh trọng số bảng bên Tuyến Thông tin nhà vận chuyển Thông tin giá vận chuyển 1->2 Công ty vận chuyển Tân Phát 820,000 VNĐ 1->3 Công ty vận chuyển Thuận Phát 400,000 VNĐ 1->5 Loship giao hàng 300,000 VNĐ 3->4 Công ty vận chuyển Tài Anh 100,000 VNĐ 3->2 Công ty vận chuyển Tài Anh 200,000 VNĐ 4->2 Loship giao hàng 200,000 VNĐ 92 5->6 Giao hàng nhanh GOGO 100, 000 VNĐ 5->2 Loship giao hàng 250,000 VNĐ 6->2 Công ty vận chuyển Tài Anh 340, 000 VNĐ Bảng 4-2: Bảng thông tin Map Bước 2: Hiện thực thuật tốn Dijkstra ngơn ngữ JAVA truyền tham số điểm lấy hàng điểm giao hàng Bảng mô tả bước chạy thuật toán: Bước Đường Đến Chiều dài đường ngắn từ đỉnh s (=1) lặp ngắn đỉnh đến đỉnh khác: tsnn[] đường từ đỉnh Bước 1->5 - 820,000 400,000 ∞ 300,000 ∞ 1->5->2 - 550,000 - - - 400,000 1->5->6->2 - 740,000 - - ∞ - Bước Bước Bảng 4-3: Bảng mô tả bước chạy thuật toán Kết sau chạy thuật toán: tìm tuyến đường vận chuyển tốt nhất: 1->5->2: Tổng chi phí vận chuyển :550,000 VNĐ Chương KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN 5.1 Ưu điểm Hoàn thành mục tiêu ban đầu đề ra, thực xây dựng thành cơng mơ hình Data Lake cho ứng dụng Giao diện đơn giản, bố cục hợp lý, người dùng dễ dàng theo tác website 93 Tốc độ phản hồi thao tác nhanh, tối ưu hóa suất người dùng Sinh viên thực nắm cách thức làm website bản,hiểu biết ngơn ngữ Đặc biệt tích lũy kiến thức Data Lake, cách dựng server cho ứng dụng 5.2 Nhược điểm Còn hạn chế số tính năng: - Hệ thống Data Lake chưa thực hoàn chỉnh, chưa khai thác hết ứng dụng Data Lake - Ứng dụng Mylogis cịn chưa hồn thiện chức để quản lý tồn quy trình nghiệp vụ Logistic Hướng phát triển - Xây dựng chứa cịn thiếu, hồn thiện chức có - Tối ưu hóa code để tăng tốc độ tương tác - Tối ưu hóa CSDL hợp lý - Tối ưu hóa việc gợi ý theo tình hình địa hình, thời tiết - Tiếp tục nghiên cứu Data Lake, xây dựng hệ thống hoàn chỉnh hơn, ứng dụng vào lĩnh vực BI tương lai 94 95 TÀI LIỆU THAM KHẢO [1] https://kafka.apache.org/documentation/#design [2] https://kafka.apache.org/23/documentation/streams/architecture [3] https://www.instaclustr.com/apache-kafka-architecture/ [4] https://www.guru99.com/data-lake-architecture.html [5] https://www.qubole.com/data-lake-architecture/ [6] https://www.vogella.com/tutorials/JavaIntroduction/article.html [7] https://www.javatpoint.com/java-architecture [8] https://towardsdatascience.com/an-introduction-to-stream-processing- with-apache-flink-b4acfa58f14d [9] https://ci.apache.org/projects/flink/flink-docs- stable/dev/connectors/kafka.html [10] https://www.baeldung.com/kafka-flink-data-pipeline [11] https://docs.cloudera.com/csa/1.1.0/kafka-connector/topics/csakafka.html [12] https://www.dremio.com/ [13] https://www.mckinsey.com/business-functions/mckinsey-digital/ourinsights/a-smarter-way-to-jump-into-data-lakes [14] https://www.dremio.com/using-kafka-as-a-temporary-data-store-anddata-loss-prevention-tool-in-the-data-lake/ [15] https://medium.com/@durgaswaroop/a-practical-introduction-to-kafkastorage-internals-d5b544f6925f [16] https://www.dremio.com/tutorials/analyzing-historical-azure-streamanalytics-data-using-dremio/ https://www.tutorialkart.com/apache-kafka/kafka-connector-mysql-jdbc/ 96 97 ... CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM NGÔ THỊ HUYỀN – 16520543 NGUYỄN QUANG NGHĨA – 16520810 KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ GỢI Ý DỊCH VỤ LOGISTIC SỬ DỤNG DATALAKE Building... nghệ sử dụng để xây dựng ứng dụng Mylogis, xây dựng mơ hình hệ thống DataLake ứng dụng Mylogis Chương 3: Trình bày chi tiết quy trình xây dựng hệ thống, từ xác định phân tích u cầu tốn xây dựng. .. TĨM TẮT KHĨA LUẬN Khóa luận “XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ GỢI Ý DỊCH VỤ LOGISTIC SỬ DỤNG DATALAKE” gồm 05 chương: Chương 1: Giới thiệu đề tài, đưa điểm bật so với ứng dụng trước Tiếp đến đề xuất

Ngày đăng: 05/09/2021, 20:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w