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

Đồ Án kho dữ liệu Đề tài xây dựng kho dữ liệu kết quả khảo sát developers

87 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Xây Dựng Kho Dữ Liệu Kết Quả Khảo Sát Developers
Tác giả Đặng Ngọc Thư, Nguyễn Minh Diện, Nguyễn Công Lâm
Người hướng dẫn ThS. Trần Thanh Liêm
Trường học Đại học Đà Nẵng
Thể loại đồ án
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 87
Dung lượng 6,77 MB

Nội dung

Nên việc xây dựng kho dữ liệu các nhân sự ngành công nghệ thông tin là thực sự cần thiết.. Vì vậy nhóm em quyết định thực hiện xây dựng kho dữ liệu thông tin các nhân sự ngành công nghệ

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CNTT &TT VIỆT – HÀN

ĐỒ ÁN KHO DỮ LIỆU

ĐỀ TÀI: XÂY DỰNG KHO DỮ

LIỆU KẾT QUẢ KHẢO SÁT

DEVELOPERS

Sinh viên thực hiện: 1 Đặng Ngọc Thư – 20IT542

3 Nguyễn Công Lâm – 20IT010

GVHD: ThS Trần Thanh Liêm

Đà Nẵng, tháng 5 năm 2023

Trang 2

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CNTT &TT VIỆT – HÀN

ĐỒ ÁN KHO DỮ LIỆU

ĐỀ TÀI: XÂY DỰNG KHO DỮ LIỆU KẾT QUẢ KHẢO SÁT CÁC

NHÀ PHÁT TRIỂN

Sinh viên thực hiện: 1 Đặng Ngọc Thư – 20IT542

3 Nguyễn Công Lâm – 20IT010

GVHD: ThS Trần Thanh Liêm

Đà Nẵng, tháng 5 năm 2023

Trang 3

Nhóm chúng em xin chân thành cảm ơn!

Đà Nẵng, tháng 5 năm 2023

Nhóm sinh viên thực hiện

Đặng Ngọc ThưNguyễn Minh DiệnNguyễn Công Lâm

Trang 4

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Đà Nẵng, Ngày……Tháng……Năm 2023

Giảng viên hướng dẫn

(ký và ghi rõ họ tên)

ThS Trần Thanh Liêm

Trang 5

MỤC LỤC

CHƯƠNG 1: LÝ DO CHỌN DATASET VÀ GIỚI THIỆU TỔNG QUAN

DATASET 1

1.1 Lý do hình thành dự án 1

1.1.1 Vấn đề nhận thấy 1

1.1.2 Giải pháp 1

1.1.3 Mục tiêu và ý nghĩa của dự án 1

1.2 Giới thiệu tổng quan Dataset 1

1.2.1 Nguồn dữ liệu sử dụng 1

1.2.2 Mô tả chi tiết dữ liệu 2

1.2.2.1 Thông số dataset 2

1.2.2.2 Dữ liệu sau khi trích xuất 2

1.2.2.3 Mô tả chi tiết các thuộc tính trong dataset 3

1.2.3 Giới thiệu các công cụ được sử dụng trong đồ án 4

CHƯƠNG 2 THIẾT KẾ XÂY DỰNG CƠ SỞ DỮ LIỆU TÁC NGHIỆP(OLAP) 5

2.1 Tiền xử lý dữ liệu 5

2.1.1 Trích chọn những thuộc tính cần thiết cho bảng fact chính 5

2.1.2 Thực hiện xử lý các bảng Fact con(các thuộc tính n-n) 5

2.1.2.1 Tạo bảng Dim 5

2.1.3 Dữ liệu sau khi sử lý và làm sạch 6

2.1.3.1 Tạo bảng Fact con 6

2.2 Lượt đồ hình sao 9

2.3 Lượt đồ hình bông tuyết 10

CHƯƠNG 3 TÍCH HỢP DỮ LIỆU VÀO KHO (SSIS) 11

3.1 Quá trình tạo mới project SSIS 11

3.2 Quá trình đỗ dữ liệu từ excel vào database 12

3.2.1 Quá trình tạo Excel Connection Manager 12

3.2.2 Quá trình tạo OLE DB Connection 13

Trang 6

3.3 Quá trình đổ dữ liệu từ database vào kho dữ liệu 29

3.3.1 Quá trình tạo Connection Manager 29

3.3.2 Quá trình tạo Control Flow 31

3.3.2.1 Data Flow Fact 32

3.3.2.2 Data Flow source_database_vao_WH_servey 35

3.3.2.3 Data Flow source_res_vao_WH-servey 36

3.3.3 Quá trình tạo Execute SQL Task 37

3.3.4 Kết quả chạy project 52

CHƯƠNG 4 PHÂN TÍCH DỮ LIỆU (SSAS) 53

4.1 Danh sách câu truy vấn 53

4.1.1 Sử dụng SSAS 53

4.1.2 Sử dụng ngôn ngữ truy vấn MDX 53

4.2 Kết quả xây dựng mô hình 54

4.3 Quá trình xây dựng khối – Cube 54

CHƯƠNG 5 REPORT 69

5.1 Báo cáo 1 69

5.2 Báo cáo 2 75

CHƯƠNG 6 KẾT LUẬN 77

6.1 Kết quả đạt được 77

6.2 Những hạn chế 77

TÀI LIỆU THAM KHẢO 78

Trang 7

MỤC LỤC ẢNH

Trang 8

Hình 45 Quá trình tạo Control Flow 7 37

Trang 9

Chương 1: LÝ DO CHỌN DATASET VÀ GIỚI THIỆU

TỔNG QUAN DATASET 1.1 Lý do hình thành dự án

1.1.1 Vấn đề nhận thấy

Ngành công nghệ thông tin, đặt biệt là ngành công nghiệp phần cứng điển tư, công nghiệp phần mềm và nội dung số đã duy trì tốc độ tăng trưởng cao, bình quân 30% năm

Thiếu hụt nhân lực công nghệ thông tin không phải vấn đề mới, nhưng với tốc độ pháttriển chóng mặt như hiện nay, chúng ta vẫn chưa giải quyết được thực trạng này Theoước tính, từ nay tới năm 2022, Việt Nam sẽ thiếu khoảng 400.000 nhân lực cho ngành công nghệ thông tin Hơn thế, đào tạo nguồn nhân lực chất lượng cao là không hề dễ Hiện tại, các doanh nghiệp công nghệ thông tin và truyền thông liên tục săn đón sinh viên ngay từ năm 3,4 đại học; sẵn sàng trả lương cao đồng thời cử họ sang nước ngoài

du học

Các thông tin trên cho thấy rằng nhân sự cho các công ty công nghệ hiên đang rất được quan tâm Dẫn đến nhu cầu thu thập thông tin, phân tích đánh giá các nhân lực rất quan trọng Cũng thông qua các nhân sự ngành công nghệ thông tin để biết được các ngôn ngữ, công nghệ đang được ưa chuộng, mức lương trong ngành

Để tạo ra báo cáo chính xác các thông tin về ngành nhân lực ngành công nghệ thông tin Nên việc xây dựng kho dữ liệu các nhân sự ngành công nghệ thông tin là thực sự cần thiết

Vì vậy nhóm em quyết định thực hiện xây dựng kho dữ liệu thông tin các nhân sự ngành công nghệ thông tin

1.1.2 Giải pháp

Dựa trên nhu cầu thống kê, phân tích và khai thác dữ liệu các nhân sự trongngành công nghệ thông tin Giải pháp là xây dựng kho dữ liệu phục vụ mục đích phân tích, khai thác, và tạo báo cáo tổng Đưa ra các dự đoán có thể xuất hiện trong năm sau

1.1.3 Mục tiêu và ý nghĩa của dự án

Thứ nhất là nghiên cứu học xây dựng một kho dữ liệu và OLAP

Xây dựng và phát triển ứng dụng nhằm phục vụ việc phân tích, khai thác, tạo cáo nhằm nắm rỏ xu hướng công nghệ đang được ưa chuộng, sự phân câp giữa các lâp trình viên, mức lương của họ theo từng quốc gia Việc này giúp dễ dàng nhận biết xu hướng công nghệ, so sánh mức lương giữa các quốc gia

Hướng tới đối tượng sử dụng là: các nhà phát triển muốn cập nhật xu hướng, các danhnghiệp có nhu cầu tuyển dụng nhân sự công nghệ thông tin, …

1.2 Giới thiệu tổng quan Dataset

Trang 10

Nguồn dữ liệu được thu thập từ stackoverflow.com, dataset stackoverflow.com Developer Survey Result 2018.

1.2.2 Mô tả chi tiết dữ liệu

Với hơn 100.000 người tham gia thực hiện khảo sát đến từ 183 quốc gia và vùng lảnh thổ Cây là cuộc khảo sát toàn diện nhất về các nhà pháy triển phần mềm từng được thực hiện Khảo sát kiểm tra tất cả các khía cạnh của nhà phát triển từ sự hài lòng nghềnghiệp cho đến giáo dục và những vấn đề liên quan đến lập trình

1.2.2.2 Dữ liệu sau khi trích xuất

Thực hiện trích dữ liệu từ bảng survey_results_public:

Lấy ra 98.855 (dòng) * 23(cột) phục vụ cho mục đích xây dựng kho dữ liệu và OLAP:

Dữ liệu sau khi trích xuất từ dữ liệu gốc:

Hình 1 Dữ liệu sau khi trích xuất 1

Trang 11

Hình 2 Dữ liệu sau khi trích xuất 2

1.2.2.3 Mô tả chi tiết các thuộc tính trong dataset

Respondent ID nhà phát triển tham gia khảo sát, tạo tự động

Hobby Code có phải là sở thích của bạn

Country Bạn đang sống ở quốc gia nào?

Student Bạn có phải là sinh viên?

CompanySize Công ty bạn hiện nay có khoảng bao nhiêu nhân viên

YearsCoding Bao gồm cả thời gian học, Thời gian bạn code là bao lâu?

YearsCodingProf Bạn đã code chuyên gia trong bao lâu?

JobSatisfaction Bạn có hài lòng với công việc hiện tại? Nếu bạn có nhiều

công việc hãy trả lời công việc mà bạn dành nhiều thờigian nhất

CareerSatisfaction Nhìn chung, cả có hài lòng với tất cả công việc bạn đang

làm?

Trang 12

giá ngày 18/01/2018.(Giả định một năm có 12 tháng làmviệc hoặc 50 tuần làm việc)

DevType Vị trí công việc hiện tại của bạn?

CommunicationTools Bạn sử công cụ giao tiếp nào để giao tiếp với đồng

nghiệp? Chọn những đáp án đúng với bạn

LanguageWorkedWith Chọn các ngôn ngữ mà bạn đang làm việc với nó?

LanguageDesireNextYear Chọn các ngôn ngữ mà bạn muốn làm việc hoặc tìm hiểu

trong năm tới?

DatabaseWorkedWith Chọn các cơ sở dữ liệu mà bạn đang làm việc?

DatabaseDesireNextYear Chọn các cơ sở dữ liệu mà bạn muốn làm việc hoặc tìm

hiểu trong năm tới?

OperatingSystem Hệ điều hành chính mà bạn làm việc hiện tại?

EthicsChoice Nếu được yêu cầu viêt code cho mục đích xấu, bạn có viết

hay không? (Yes or No)

HoursComputer Thời gian trung bình bạn dành cho máy tính là bao nhiêu?

Exercise Trong một tuần bạn tập thể dục bao nhiêu lần?

Gender Giới tính của bạn là?

1.2.3 Giới thiệu các công cụ được sử dụng trong đồ án

● Visual Studio 2022: Tích hợp các công nghệ

Trang 13

Chương 2 THIẾT KẾ XÂY DỰNG CƠ SỞ DỮ LIỆU TÁC

NGHIỆP(OLAP)

2.1 Tiền xử lý dữ liệu

2.1.1 Trích chọn những thuộc tính cần thiết cho bảng fact chính

Respondent ID nhà phát triển tham gia khảo sát, tạo tự động

Hobby Code có phải là sở thích của bạn

Country Bạn đang sống ở quốc gia nào?

Student Bạn có phải là sinh viên?

CompanySize Công ty bạn hiện nay có khoảng bao nhiêu nhân viên

YearsCoding Bao gồm cả thời gian học, Thời gian bạn code là bao

lâu?

YearsCodingProf Bạn đã code chuyên gia trong bao lâu?

JobSatisfaction Bạn có hài lòng với công việc hiện tại? Nếu bạn có nhiều

công việc hãy trả lời công việc mà bạn dành nhiều thời gian nhất

CareerSatisfaction Nhìn chung, cả có hài lòng với tất cả công việc bạn đang

làm?

ConvertedSalary Mức lương hàng năm của bạn khi chuyển qua USD với

tỷ giá ngày 18/01/2018.(Giả định một năm có 12 tháng làm việc hoặc 50 tuần làm việc)

OperatingSystem Hệ điều hành chính mà bạn làm việc hiện tại?

EthicsChoice Nếu được yêu cầu viêt code cho mục đích xấu, bạn có

viết hay không? (Yes or No)

HoursComputer Thời gian trung bình bạn dành cho máy tính là bao

nhiêu?

Exercise Trong một tuần bạn tập thể dục bao nhiêu lần?

Gender Giới tính của bạn là?

2.1.2 Thực hiện xử lý các bảng Fact con(các thuộc tính n-n)

Sử dụng code Python thực hiện tách dữ liệu 1 thuộc tính trong dữ liệu gốc thành bảng FACT con và một bảng DIM Bảng FACT con chứa 2 thuộc tính, một là là khóa ngoạitới bảng FACT cha, thuộc tính còn lại là khóa ngoại tới bảng DIM vừa được tạo ra

Xử lý như trên với tất cả thuộc tính được chọn có cấu trúc nhiều – nhiều

2.1.2.1 Tạo bảng Dim

Bước 1: Sao chép dữ liệu thuộc tính ra cột mới trong Excel

Bước 2: Thực hiện lấy các giá trị trùng lặp(Chọn tag Data->Remov Duplicates)

Bước 3: Thêm mới một cột phía trước với tiêu đề là ID

Trang 14

Các bảng Dim thu được được thể hiện ở mục

2.1.3 Dữ liệu sau khi sử lý và làm sạch

2.1.3.1 Tạo bảng Fact con

Sử dụng đoạn code Python3 để thực hiện tạo dữ liệu bảng fact con

# file IDE chứa dữ liệu thuộc tính cần tách

# Không lấy tên cột từ excel cho file IDE

file = open(r"file_phantach_data/IDE/IDE.txt")

# file data3.txt chứa dữ liệu sau khi chuyển đổi dữ liệu thành ID của nó theo bảng DIM

file2 = open("file_phantach_data/IDE/ID_DimIDE.txt", "w")

for line in file:

for key, value in sorted(IDE.items(), key=lambda x: len(x[1]), reverse=True):

line = line.replace(value, str(key))

file2.writelines(line)

file.close()

file2.close()

mo_file2()

# Thực hiện tách mỗi dòng thành nhiều dòng

# với cấu trúc "mã người khảo sát" - "mã thuộc tính trong bảng DIM"

def mo_file3():

# file ID_DimDevType.txt chứa dữ liệu sau khi chuyển đổi dữ liệu thành ID của nó theo bảng DIM

file = open(r"file_phantach_data/IDE/ID_DimIDE.txt")

# file PK_fact_res.txt chưa dữ liệu khóa chính từ bảng fact chính

# tức là ID người tham gia khảo sát được lấy từ dữ liêu gốc

file2 = open(r"file_phantach_data/PK_fact_res.txt")

Trang 15

# file fact_res_DevType.txt là file nhận kết quả cuối cùng của bảng fact con

# (đây là dữ liệu của bảng fact con)

Dữ liệu trong file IDE.txt:

Hình 3 Dữ liệu trong file IDE.txt

Dữ liệu trong file Dim_IDE.txt:

Trang 16

Hình 4 Dữ liệu trong file Dim_IDE.txt

Dữ liệu trong file fact_res_IDE.txt:

Hình 5 Dữ liệu trong file fact_res_IDE.txt

Dữ liệu trong file PK_fact res.txt:

Trang 17

Hình 6 Dữ liệu trong file PK_fact res.txt

2.2 Lược đồ hình sao

Hình 7 Lược đồ hình sao

Trang 18

2.3 Lược đồ hình bông tuyết

Hình 8 Lược đồ hình bông tuyết

Trang 19

Chương 3 TÍCH HỢP DỮ LIỆU VÀO KHO (SSIS)

Ở chương này, Sử dụng công cụ SSIS xây dựng các gói tích hợp dữ liệu, cài đặt các gói chạy tự động Viết truy vấn đưa dữ liệu từ OLTP đến kho dữ liệu.

3.1 Quá trình tạo project SSIS mới

Chọn tag File -> New -> Project…

Hình 9 Quá trình tạo project SSIS mới 1

Một dialog xuất hiện Chọn Nhập SSIS trên hộp thoại tìm kiếm rồi chọn Integration

Services Project

Trang 20

Hình 10 Quá trình tạo project SSIS mới 2

3.2 Quá trình đỗ dữ liệu từ excel vào database

3.2.1 Quá trình tạo Excel Connection Manager

Nhấn chuột phải chọn New Connection:

Trang 21

Hình 11 Quá trình tạo Excel Connection Manager 1

Dialog config hiện ra chọn Excel -> Add:

Hình 12 Quá trình tạo Excel Connection Manager 2

Chọn đường dẫn tới file excel và phiên bản file excel đó -> OK:

Trang 22

Hình 13 Quá trình tạo Excel Connection Manager 3

3.2.2 Quá trình tạo OLE DB Connection

Nhấn chuột phải -> chọn new OLE DB Connection

Hình 14 Quá trình tạo OLE DB Connection 1

Trang 23

Cử sổ mới hiện nha như sau:

Hình 15 Quá trình tạo OLE DB Connection 2

Từ dialog mới hiện ra, chọn New để tạo connection mới Cửa sổ mới hiện ra như sau:

Trang 24

Hình 16 Quá trình tạo OLE DB Connection 3

Điền thông tin server name lấy từ server đang sử dụng như hình:

Hình 17 Quá trình tạo OLE DB Connection 4

Trang 25

Sau khi điền tên server đang sử dụng, chọn tên database nguồn -> nhấn Test

Connection:

Hình 18 Quá trình tạo OLE DB Connection 5

Trang 26

Hình 19 Quá trình tạo OLE DB Connection 6

Hiện thông báo như trên là đãn kết nối thành công -> nhấn OK Làm tương tự tạo

thêm OLE DB Connecttion

3.2.3 Quá trình tạo Control Flow

Kéo 1 Data Flow Task mới:

Trang 27

Hình 20 Quá trình tạo Control Flow 1

Định nghĩa Data Flow cho Data Flow Fact:

Kéo một Excel source và OLE DB destination:

Hình 21 Quá trình tạo Control Flow 2

Trang 28

Hình 22 Quá trình tạo Control Flow 3

Nhân đúp chuột vào Source Respondent -> Chọn Excel Connection đã tạo -> Chọn Excel Sheet fact:

Trang 29

Hình 23 Quá trình tạo Control Flow 4

Preview:

Trang 30

Hình 24 Quá trình tạo Control Flow 5

Columns:

Trang 31

Hình 25 Quá trình tạo Control Flow 6

Nhấn OK Và kéo liên kết xanh đến source_respondent:

Trang 32

Nhấn đúp chuột vào source_respondent -> chọn OLE DB Connecttion :

Hình 27 Quá trình tạo Control Flow 8

Nhấn new để tạo bảng mới trong Cơ sở dữ liệu:

Trang 33

Hình 28 Quá trình tạo Control Flow 9

Chỉnh sửa code tạo bảng -> nhân OK để tạo bảng:

Mappings:

Trang 34

Hình 29 Quá trình tạo Control Flow 10

Nhấn Ok để hoàn thành

Kéo 2 Data Flow Task mới và định nghĩa là Data Flow DoDuLieuVaoDatabase và

Data Flow DoResVaoDatabase:

Trang 35

Hình 30 Quá trình tạo Control Flow 11

Data Flow DoDuLieuVaoDatabase:

Hình 31 Quá trình tạo Control Flow 12

Data Flow DoResVaoDatabase:

Trang 36

Hình 32 Quá trình tạo Control Flow 13

3.2.4 Kết quả chạy project

Hình 33 Kết quả chạy project 1

Data Flow Fact

Trang 37

Hình 34 Kết quả chạy project 2

Data Flow DoDuLieuVaoDatabase

Hình 35 Kết quả chạy project 3

Data Flow DoResVaoDatabase

Trang 38

Hình 36 Kết quả chạy project 4

3.3 Quá trình đổ dữ liệu từ database vào kho dữ liệu

3.3.1 Quá trình tạo Connection Manager

Connection manager OLE DB db đã được nhận dữ liệu từ database nguồn:

Trang 39

Hình 37 Quá trình tạo Connection Manager 1

Connection Manager db WH_servey dùng để phân tích và khai thác:

Trang 40

Hình 38 Quá trình tạo Connection Manager 2

3.3.2 Quá trình tạo Control Flow

Trang 41

Hình 39 Quá trình tạo Control Flow 1

3.3.2.1 Data Flow Fact

Hình 40 Quá trình tạo Control Flow 2

source_Respondent:

Trang 42

Hình 41Quá trình tạo Control Flow 3

Trang 43

Hình 42 Quá trình tạo Control Flow 4

Trang 44

Hình 43 Quá trình tạo Control Flow 5

3.3.2.2 Data Flow source_database_vao_WH_servey

Trang 45

Hình 44 Quá trình tạo Control Flow 6

3.3.2.3 Data Flow source_res_vao_WH-servey

Trang 46

Hình 45 Quá trình tạo Control Flow 7

3.3.3 Quá trình tạo Execute SQL Task

Kéo một control Execute SQL Task vào và trỏ đường dẫn xanh tới Data Flow Task:

Hình 46 Quá trình tạo Execute SQL Task 1

Trang 47

Nhấn đúp chuột vào Execute SQL Task và chọn ConnectionType và Connection nhưsau:

Hình 47 Quá trình tạo Execute SQL Task 2

Nhấn chọn SQL Statement:

Trang 48

Hình 48 Quá trình tạo Execute SQL Task 3

Trang 49

Đã tồn tại -> xóa bảng

alter table fact drop constraint fk_dimHobby

drop table DimHobby

END

lấy các giá trị không trùng từ fact -> đưa vào bảng Dim mới

select distinct(fact.Hobby) into DimHobby

from fact

Chỉnh sửa thông tin trường từ bảng dim mới

ALTER TABLE DimHobby ALTER COLUMN Hobby nvarchar(255) NOT NULL Tạo khoa chính cho bảng dim

alter table DimHobby add primary key(Hobby)

Tạo khóa ngoại từ bảng fact tới bảng dim mới

alter table fact add CONSTRAINT fk_dimHobby FOREIGN KEY (Hobby)REFERENCES DimHobby(Hobby)

Ngày đăng: 06/12/2024, 12:55

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

TÀI LIỆU LIÊN QUAN

w