1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỒ án tốt NGHIỆP xây DỰNG hệ THỐNG CẢNH báo TRÊN LUỒNG TIN TUYỂN DỤNG THU THẬP từ INTERNET

87 4 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

Nội dung

ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐỒ ÁN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG CẢNH BÁO TRÊN LUỒNG TIN TUYỂN DỤNG THU THẬP TỪ INTERNET: KHỐI CÔNG VIỆC SỐ NGUYỄN VĂN TIẾN tien.nv173401@sis.hust.edu.vn Ngành Công nghệ thông tin Chuyên ngành Khoa học máy tính Giảng viên hướng dẫn: Trường: HÀ NỘI, 12/2021 TIEU LUAN MOI download : skknchat123@gmail.com ĐỀ TÀI TỐT NGHIỆP 1.Thông tin sinh viên Họ Tên: NGUYỄN VĂN TIẾN Điện thoại liên lạc: 0966288130 Email: tien.nv173401@sis.hust.edu.vn Lớp: KHMT.03 – K62 Hệ đào tạo: Kỹ sư quy Đồ án tốt nghiệp thực tại: Trường Công nghệ Thông tin Truyền thông - Đại học Bách khoa Hà Nội Thời gian thực đồ án: Học kỳ 20211 2.Mục đích nội dung ĐATN Thiết kế, xây dựng triển khai hệ thống cảnh báo dựa luồng tin tuyển dụng thu thập từ internet 3.Các nhiệm vụ cụ thể ĐATN • Xây dựng mô-đun xử lý, quản lý liệu hỗ trợ truy vấn liệu việc làm • Thiết kế xây dựng giao diện website hỗ trợ người dùng tương tác với hệ thống 4.Lời cam đoan sinh viên Em tên Nguyễn Văn Tiến xin cam đoan đề tài ĐATN: “xây dựng hệ thống cảnh báo dựa luồng tin tuyển dụng thu thập từ internet: Khối công việc số 1” cơng trình nghiên cứu độc lập hướng dẫn giáo viên hướng dẫn: TS Trần Việt Trung Ngồi khơng có chép người khác Đề tài, nội dung báo cáo thực tập sản phẩm mà em nỗ lực nghiên cứu trình học tập trường Các số liệu, kết trình bày báo cáo hoàn toàn trung thực, em xin chịu hoàn tồn trách nhiệm, kỷ luật mơn nhà trường đề có vấn đề xảy ra.” Giáo viên hướng dẫn Ký ghi rõ họ tên TIEU LUAN MOI download : skknchat123@gmail.com Lời cảm ơn Chặng đường năm học Bách khoa chuẩn bị tới hồi kết, cảm xúc lúc thật lẫn lộn Vừa vui chinh phục ngơi trường tiếng “tạch mơn chuyện thường”, vừa tự hào chưa bị “tạch” mơn nơi Để hồn thành đồ án này, động viên, đóng góp ý kiến từ gia đình, thầy bạn bè khơng thể thiếu sinh viên cịn non trẻ Lời em xin dành lời cảm ơn chân thành đến TS Trần Việt Trung anh Nguyễn Hồng Long tận tình bảo, hướng dẫn định hướng suốt quãng thời gian em thực đồ án để đồ án hoàn thành cách tốt Con cảm ơn mẹ tần tảo gánh vác trọng trách bố để nuôi ăn học 16 năm Cảm ơn mẹ đặt niềm tin nơi con, quan tâm động viên suốt tháng ngày học tập xa nhà Cảm ơn anh em chí cốt (Bách, Trang, Lim…) mái nhà Hội Sinh viên, người bạn quãng thời gian sinh viên ngắn ngủi Tiếp theo tập thể lớp CNTT11, đồng chí siêu lầy tình cảm, đồn kết làm đánh tan suy nghĩ lên đại học không thân với lớp, danh nghĩa khơng cịn chung lớp chắn mãi anh em Cảm ơn người anh em LamTran Company bên cạnh tơi kì cuối đại học, nhóm tồn người giỏi làm tơi áp lực tơi quý anh em năm học không dài đủ em trải nghiệm quý giá, mối quan hệ mà suốt quãng đời lại khơng tìm Suốt hành trình, phần tốt có, phần dở có, quan trọng hết học mang lại Xin cảm ơn Bách khoa, cảm ơn người nơi tạo nên Bách khoa “chất” đến Hy vọng lần bảo vệ đồ án tốt nghiệp diễn thuận lợi, để sau gặp khó khăn, tơi tự tin "Đến Bách Khoa cịn tốt nghiệp ngán việc cả" Xin cảm ơn tất cả! Tạm biệt hẹn gặp lại Hà Nội, ngày 23 tháng 01 năm 2022 Nguyễn Văn Tiến TIEU LUAN MOI download : skknchat123@gmail.com Tóm tắt nội dung đồ án Thị trường việc làm Việt Nam ngày phát triển cách nhanh chóng đa dạng với thời kỳ đổi mới, hội nhập sâu rộng, mở nhiều hội cho người lao động Cùng với, thời đại công nghệ 4.0 có nhiều ứng dụng thực tiễn, người dùng tìm kiếm internet cơng việc ứng với thân Tuy nhiên, thực tế, phận lớn người tìm việc chưa tìm công việc phù hợp với nhu cầu, với việc nhiều thời gian, cơng sức để tìm kiếm Để giải vấn đề này, đồ án hướng tới việc xây dựng hệ thống cảnh báo dựa luồng tin tuyển dụng thu thập từ internet Với mục tiêu giảm bớt cơng sức, thời gian cho người tìm việc, đồ án đóng vai trị tảng cho phép người dùng tùy biến, tìm kiếm cách tự động thông tin tuyển dụng Để thực điều này, đồ án sử dụng kiến thức liên quan đến liệu lớn Apache Spark, Apache Kafka công cụ xây dựng website FastAPI, Angular Tuy triển khai quy mô nhỏ kết đạt đồ án phần chứng minh khả giải vấn đề vừa đặt phía Sinh viên thực Ký ghi rõ họ tên TIEU LUAN MOI download : skknchat123@gmail.com MỤC LỤC MỤC LỤC DANH MỤC HÌNH VẼ DANH MỤC BẢNG CHƯƠNG GIỚI THIỆU ĐỀ TÀI 1.1 Đặt vấn đề 1.2 Mục tiêu phạm vi đề tài 1.3 Định hướng giải pháp 1.4 Bố cục đồ án CHƯƠNG CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 2.1 Hệ thống phân tán 2.2 Nền tảng Spark: tính toán cụm liệu lớn 2.3 Nền tảng Kafka: truyền tải thông điệp phân tán 2.4 Framework FastAPI: xây dựng hệ thống API 2.5 Angular: xây dựng giao diện website CHƯƠNG XÂY DỰNG ỨNG DỤNG WEB TƯƠNG TÁC NGƯỜI DÙNG 3.1 Phân tích thiết kế 3.2 Triển khai hệ thống website 3.3 Giao diện ứng dụng TIEU LUAN MOI download : skknchat123@gmail.com CHƯƠNG THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG QUẢN LÝ, XỬ LÝ DỮ LIỆU 4.1 Kiến trúc tổng quan hệ thống 4.2 Phát triển hệ thống quản lý xử lý liệu 4.3 Triển khai hệ thống quản lý, xử lý liệu 4.4 Kết đánh giá CHƯƠNG KẾT LUẬN 5.1 Kết luận 5.2 Hướng phát triển tương lai TÀI LIỆU THAM KHẢO TIEU LUAN MOI download : skknchat123@gmail.com DANH MỤC HÌNH VẼ Hình 1.1: Lực lượng lao động Việt Nam theo quý, năm 2020 2021 Hình 2.1: Minh họa stream processing Hình 2.2: Thành phần Spark Hình 2.3: Mơ hình liệu Structured Streaming 10 Hình 2.4: Mơ hình hoạt động chương trình Strucuted streaming 11 Hình 2.5: Vai trò Apache Kafka hệ thống 13 Hình 2.6: Mơ hình cấu trúc kafka đơn giản 14 Hình 2.7: Mơ hình cấu trúc kafka chi tiết 14 Hình 2.8: Giao diện quản lý api ứng dụng viết FastAPI .15 Hình 2.9: Kiến trúc angular 17 Hình 3.1: Biểu đồ use case tổng quan hệ thống web (Màu xanh use case sinh viên thực hiện, màu tím use case thực sinh viên Vũ Minh Hiếu) 18 Hình 3.2: Biểu đồ use case thêm luồng liệu .20 Hình 3.3: Biểu đồ use case quản lý cơng việc liên tục 23 Hình 3.4: Biểu đồ use case quản lý luồng liệu 24 Hình 3.5: Biểu đồ use case “Thêm luồng liệu” 26 Hình 3.6: Biểu đồ use case “Thêm luồng liệu” 27 Hình 3.7: Biểu đồ use case “Quản lý luồng liệu” 27 Hình 3.8: Sơ đồ lớp ca sử dụng “Thêm luồng liệu” 28 Hình 3.9: Sơ đồ lớp ca sử dụng “Quản lý công việc liên tục” 28 Hình 3.10: Sơ đồ lớp ca sử dụng “Quản lý luồng liệu” 29 Hình 3.11: Mơ giao diện kết nối sở liệu 29 Hình 3.12: Mơ giao diện thêm luồng liệu 30 Hình 3.13: Mơ giao diện quản lý luồng liệu 30 Hình 3.14: Mô giao diện quản lý công việc liên tục 30 Hình 3.15: Kiến trúc client – server 31 Hình 3.16: Mơ hình MVC (Model – View – Controller) 31 Hình 3.17: Giao diện thêm luồng liệu 33 Hình 3.18: Giao diện quản lý luồng liệu 34 Hình 3.19: Giao diện xem ghi luồng liệu 34 Hình 3.20: Giao diện quản lý công việc liên tục 35 Hình 3.21: Giao diện cấu hình hệ thống 36 Hình 3.22: Giao diện thêm câu truy vấn 36 Hình 3.23: Giao diện quản lý câu truy vấn 37 Hình 4.1: Kiến trúc tổng quan hệ thống quản lý, xử lý liệu (Màu hồng đậm phần chức sinh viên thực hiện, màu vàng phần chức thực sinh viên Vũ Minh Hiếu) 38 Hình 4.2: Kiến trúc mơ-đun Cơng cụ xử lý liệu phân tán 40 Hình 4.3: Vai trị Job Spark hệ thống 40 Hình 4.4: Cách hoạt động Mô-đun Công cụ xử lý liệu phân tán .41 Hình 4.5: Vai trò Kafka hệ thống 42 Hình 4.6: Đoạn mã đọc liệu đầu vào từ Kafka 44 Hình 4.7: Đoạn mã tạo lược đồ liệu công việc Spark .45 TIEU LUAN MOI download : skknchat123@gmail.com Hình 4.8: Đoạn mã tạo tự động lược đồ từ bảng liệu .46 Hình 4.9: Đoạn mã đọc liệu SQL job Spark .48 Hình 4.10: Chuẩn bị liệu kết 48 Hình 4.11: Đoạn mã cấu hình gửi liệu đầu 49 Hình 4.12: Gửi trả liệu đầu 49 Hình 4.13: Thêm luồng liệu cơng việc .51 Hình 4.14: Kết luồng liệu thêm 52 Hình 4.15: Thêm truy vấn 52 Hình 4.16: Kết thêm truy vấn 52 Hình 4.17: Quản lý cơng việc Spark .53 Hình 4.18: Khởi động cơng việc thành cơng 53 Hình 4.19: Kết gửi đến người dùng qua email 54 TIEU LUAN MOI download : skknchat123@gmail.com DANH MỤC BẢNG Bảng 2.1: So sánh FastAPI, Django Flask 16 Bảng 3.1: Đặc tả use case “Thêm luồng liệu” 21 Bảng 3.2: Mô tả trường lược đồ liệu 22 Bảng 3.3: Đặc tả use case “Quản lý công việc liên tục” .24 Bảng 3.4: Đặc tả use case “Quản lý luồng liệu” 25 Bảng 3.5: Chi tiết gói, thư viện cài đặt cho hệ thống 32 Bảng 4.1: Các gói, thư viện cần cho cài đặt hệ thống quản lý, xử lý liệu 50 TIEU LUAN MOI download : skknchat123@gmail.com Hình 4.8: Đoạn mã tạo tự động lược đồ từ bảng liệu • Đầu tiên dựa vào phương thức Inspector.get_columns - thư viện sqlalchemy (python3), lấy thơng tin cột bảng định Có nhiều thông tin tương ứng với trường hệ thống cần lấy kiểu liệu trường Ví dụ thơng tin cột company_name: Trên thông tin với trường liệu kiểu VARCHAR o “name”: tên trường o “type”: kiểu liệu sqlalchemy o “default”: liệu mặc định Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 TIEU LUAN MOI download : skknchat123@gmail.com o “comment”: ghi o “nullable”: có cho phép trống hay không Từ thông tin này, với cột hệ thống sử dụng từ điển có • trước (MAP_SQLALCHEMY_TYPE_TO_SPARK_SQL_TYPE) để ánh xạ kiểu liệu trường phù hợp với pyspark 4.2.3 Xử lý truy vấn luồng liệu công việc Spark Để thao tác với liệu cách mượt mà, dễ dàng nhất, người ta sử dụng ngôn ngữ đặc thù SQL Cũng mà để Spark công cụ mạnh thao tác với liệu khơng thể thiếu mơ-đun Spark SQL Và Structured Streaming thừa kế từ Spark SQL nên tất nhiên có tính thao tác với SQL Dựa vào tính này, hệ thống cung cấp chức tương ứng, cho phép người dùng tạo câu truy vấn có dạng SQL để truy vấn lên “bảng” liệu lấy phần trước Và cách xử lý liệu đơn giản đưa phương thức truy vấn nhiều bảng có sẵn SQL Như trình bày phần trước, Spark khởi động lại theo lịch cố định Khi khởi động lại Spark tải lại truy vấn xóa truy vấn người dùng xóa khởi động lại Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 TIEU LUAN MOI download : skknchat123@gmail.com Hình 4.9: Đoạn mã đọc liệu bằng SQL job Spark Như hình, ta thấy bước để truy vấn liệu job Spark: • Bước 1: Thực thi câu truy vấn người dùng qua phương thức sql – tính Spark SQL Từ biến “data” lưu kết mong muốn người dùng • Bước 2: Để gửi lại đến Kafka, cần phải chuyển lại liệu theo định dạng key – value Ta có hàm ngược lại to_json thực công việc nén cột lại thành chuỗi json làm giá trị cho cột value Tương tự với cột key hệ thống lấy mặc định giá trị cột query_x với x định danh câu truy vấn CSDL 4.2.4 Chuẩn bị liệu kết để gửi đến người dùng Ở phần đề cập đến việc xử lý liệu SQL, việc lại chuyển liệu đầu đến topic Kafka định nghĩa Hình 4.10: Chuẩn bị liệu kết Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 TIEU LUAN MOI download : skknchat123@gmail.com Mỗi câu truy vấn công việc, Spark gửi trả topic độc lập chọn trước Trên đây, hai topic output_query_1 output_query_2 topic chứa kết câu query_1, query_2 trình bày phía Hình 4.11: Đoạn mã cấu hình gửi liệu đầu Trên Hình 4.11, đoạn mã trình bày việc Spark sử dụng phương thức writeStream, với format Kafka truyền liệu topic tương ứng Dữ liệu gửi mơ-đun “Tiến trình nhận, gửi kết truy vấn” sinh viên Hiếu thực xử lý tiếp Cụ thể trình bày Hình 4.12 Hình 4.12: Gửi trả liệu đầu Mỗi câu truy vấn tương ứng với “lịch” hệ thống Ngay sau thêm câu truy vấn, tiến trình lập để đợi đến thời điểm thực thi cơng việc lấy liệu từ topic Kafka Sau trả cho người dùng qua phương tiện tùy theo lựa chọn ban đầu tạo câu truy vấn người dùng Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 TIEU LUAN MOI download : skknchat123@gmail.com 4.3 Triển khai hệ thống quản lý, xử lý liệu Sau phân tích thiết kế hệ thống quản lý, xử lý liệu hoàn tất, sinh viên thực cài đặt thử nghiệm hệ thống máy tính cục với cấu hình: • 01 CPU intel Core i5 10400, lõi • 02 RAM, tổng dung lượng 16GB • Hệ điều hành MacOS phiên Bigsur 11.1 Ngoài ứng dụng liệu lớn cài đặt: • Apache Spark: phiên 3.1.2 với lệnh cài đặt: brew install spark • Apache Kafka: phiên 2.8.0 với lệnh cài đặt: brew install kafka Để tương tác với ứng dụng liệu lớn, hệ thống sử dụng python3.7 làm công cụ triển khai hệ thống Các gói, thư viện cần cài đặt là: STT Tên gói, thư viện Pyspark Confluent-kafka sqlparse Bảng 4.1: Các gói, thư viện cần cho cài đặt hệ thống quản lý, xử lý liệu Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 TIEU LUAN MOI download : skknchat123@gmail.com 4.4 Kết đánh giá Một luồng hoàn chỉnh để người dùng sử dụng hệ thống nhận kết thực theo bước sau: • Bước 1: Kết nối sở liệu: • Bước 2: Thêm luồng liệu, cụ thể luồng liệu công việc Hình 4.13: Thêm luồng liệu công việc Sau thêm, kết hiển thị sau: Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 TIEU LUAN MOI download : skknchat123@gmail.com Hình 4.14: Kết luồng liệu thêm • Bước 2: Thêm câu truy vấn lọc cơng việc có địa khu vực Hai Bà Trưng mức lương 18 triệu Hình 4.15: Thêm truy vấn Kết thêm truy vấn Hình 4.16: Kết thêm truy vấn Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 TIEU LUAN MOI download : skknchat123@gmail.com • Bước 3: Sau có luồng truy vấn câu truy vấn luồng, thực khởi động công việc Spark: Hình 4.17: Quản lý cơng việc Spark • Bước 4: Kiểm tra cơng việc khởi động thành cơng khơng có lỗi Hình 4.18: Khởi động cơng việc thành cơng • Bước 5: Sau thực luồng liệu hệ thống hoàn chỉnh, kết câu truy vấn ghi liệu, thông tin mong muốn gửi đến người dùng qua phương thức người dùng chọn (mail, telegram, ) Hình biểu thị kết gửi dạng email cho người dùng Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 TIEU LUAN MOI download : skknchat123@gmail.com Hình 4.19: Kết gửi đến người dùng qua email • Do hạn chế tài chính, hệ thống triển khai dạng standalone máy tính sinh viên Hệ thống chịu tải xấp xỉ 1000 câu truy vấn 20 luồng liệu liên tục, không bị ngắt chừng Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 TIEU LUAN MOI download : skknchat123@gmail.com CHƯƠNG KẾT LUẬN 5.1 Kết luận Như vậy, theo mục tiêu đặt ban đầu đồ án, sinh viên nghiên cứu phát triển thành công hệ thống cảnh báo dựa luồng liệu việc làm Mặc dù sản phẩm chưa triển khai nhiều cụm máy chủ để phát huy rõ lực công cụ phân tán Spark chưa thực nghiệm nhiều thực tế Tuy nhiên kết tồn cơng sức hiểu, nghiên cứu học hỏi sinh viên suốt trình thực đồ án tốt nghiệp Kết từ đồ án tiền đề, móng cho sinh viên phát triển cải tiến hệ thống tương lai Qua trình làm đồ án sinh viên tự học gặt hái số thành Về kiến thức • Tìm hiểu áp dụng thư viện công nghệ xử lý phân tán Spark, công nghệ xử lý liệu liên tục kafka, cho mô-đun xử lý liệu phân tán • Kỹ xây dựng triển khai tác vụ xử lý mơi trường phân tán • Kỹ thiết kế hệ thống cho sở liệu hỗ trợ phân tích • Kỹ lập trình web, UI/UX Về sản phẩm • Mơ-đun phân tích liệu có khả xử lý tập liệu lớn • Xử lý liệu liên tục trả kết cho người dùng dạng email • Giao diện website thân thiện, dễ hiểu, đáp ứng tính cho hệ thống 5.2 Hướng phát triển tương lai Từ mô-đun triển khai, thời gian tương lai, sinh viên mong muốn cải tiến mở rộng thêm số lượng máy chủ thực tác vụ, chức phân tích giúp mơ hệ thống phục vụ tốt cho việc đưa số liệu tốt thị trường tuyển dụng lao động Việt Nam, nhằm đưa đến nhiều thông tin giá trị cho người lao động nhà tuyển dụng Một số công việc định hướng để phát triển mơ-đun tương lai là: • Đưa hệ thống lên môi trường tảng đám mây (như AWS, Google cloud, Azure …) Xây dựng cụm máy chủ kiểm thử hiệu hệ thống • Phục vụ thêm nhiều dạng câu truy vấn select để người dùng tùy biến nhiều với liệu có Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 TIEU LUAN MOI download : skknchat123@gmail.com TÀI LIỆU THAM KHẢO [1] N Naem, “Tổng quan hệ phân tán - Distributed Systems,” Available: https://viblo.asia/p/serie-he-phan-tan-1-tong-quan-ve-he-phan-tandistributed-systems-924lJxAXKPM [Đã truy cập 01 2022] [2] T C T KÊ, “Thơng cáo báo chí tình hình lao động việc làm quý III tháng năm 2021,” [Trực tuyến] Available: https://www.gso.gov.vn/du-lieu-va-solieu-thong-ke/2021/10/thong-cao-bao-chi-tinh-hinh-lao-dong-viec-lam-quy-iii-va-9thang-nam-2021/ [Đã truy cập 01 2022] [3] Gavin, "Khái niệm Stream Processing," Available: https://viblo.asia/p/khai-niem-ve-stream-processing-GrLZDexelk0 [Đã truy cập 2022] [4] Đ H Long, "Vì chọn FastAPI," Available: https://viblo.asia/p/visao-chon-fastapi-gGJ59M6D5X2 [Đã truy cập 2022] [5] N C S B, “Giới thiệu tổng quan Angular,” Available: https://viblo.asia/p/gioi-thieu-tong-quan-ve-angular-07LKX9j2ZV4 [Đã truy cập 2022] [6] T D , J T , B Y , S Z , R X A G , I S , M Z Michael Armbrust, "Structured Streaming: A Declarative API for Real-Time Applications in Apache Spark," 2018 [7] Loki, "Giới thiệu Apache Kafka," 10 2018 Available: https://123host.vn/tailieu/kb/vps/gioi-thieu-ve-kafka.html [Đã truy cập 2022] [8] M M I MateiZaharia, “Spark: Cluster Computing with Working Sets,” USENIXHotCloud, 2010 [9] "Structured Streaming Programming Guide," Available: https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html Sinh viên: Nguyễn Văn Tiến – 20173401 – Khóa 62 TIEU LUAN MOI download : skknchat123@gmail.com ... giải vấn đề này, đồ án hướng tới việc xây dựng hệ thống cảnh báo dựa luồng tin tuyển dụng thu thập từ internet Với mục tiêu giảm bớt công sức, thời gian cho người tìm việc, đồ án đóng vai trị... nghệ Thông tin Truyền thông - Đại học Bách khoa Hà Nội Thời gian thực đồ án: Học kỳ 20211 2.Mục đích nội dung ĐATN Thiết kế, xây dựng triển khai hệ thống cảnh báo dựa luồng tin tuyển dụng thu thập. .. người dùng, tùy biến truy vấn tốt hơn, lưu trữ hiệu Từ vấn đề nêu phần 1.1, mục tiêu đặt cho đồ án xây dựng hệ thống cảnh báo liệu cách liên tục luồng liệu tuyển dụng Hệ thống có khả giải vấn đề sau:

Ngày đăng: 04/08/2022, 08:54

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

TÀI LIỆU LIÊN QUAN

w