Tải bản đầy đủ (.pdf) (86 trang)

Giải pháp lưu trữ số lượng lớn các thực thể quan hệ trích xuất từ các bài báo mạng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.8 MB, 86 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN VĂN THẠC SĨ
Giải pháp lưu trữ số lượng lớn các thực thể
quan hệ trích xuất từ các bài báo mạng

ĐỖ MẠNH CƯỜNG
Ngành Cơng nghệ thông tin

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

TS. Trịnh Tuấn Đạt

Trường:

Công nghệ thông tin và truyền thông

HÀ NỘI, 2022


TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN VĂN THẠC SĨ
Giải pháp lưu trữ số lượng lớn các thực thể
quan hệ trích xuất từ các bài báo mạng

ĐỖ MẠNH CƯỜNG
Ngành Cơng nghệ thông tin

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


TS. Trịnh Tuấn Đạt
Chữ ký của GVHD

Trường:

Công nghệ thông tin và truyền thông

HÀ NỘI, 2022


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc

BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn : Đỗ Mạnh Cường
Đề tài luận văn: Giải pháp lưu trữ số lượng lớn các thực thể quan hệ trích
xuất từ các bài báo mạng
Chuyên ngành: Công nghệ thông tin
Mã số HV: CB190152
Tác giả, Người hướng dẫn khoa học và Hội đồng chấm luận văn xác nhận tác
giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng ngày 28/04/2022
với các nội dung sau:
-

Về hình thức: sửa lỗi đánh máy và trích dẫn tài liệu tham khảo đầy đủ. Một
số hình chưa được việt hóa cần chỉnh sửa.
Về nội dung: sửa lại mục tiêu và nêu rõ đóng góp. Mơ tả và làm rõ hơn phần
thực nghiệm ở chương 3.
Chương 1 giảm phần trình bày neo4j và thêm phần hạn chế.
Chương 1, 2 thêm so sánh về công nghệ.

Chỉnh sửa công cụ sinh dữ liệu mô phỏng để sát với dữ liệu thực tế.
Ngày

tháng

năm 2022

Giáo viên hướng dẫn

Tác giả luận văn

TS. Trịnh Tuấn Đạt

Đỗ Mạnh Cường

CHỦ TỊCH HỘI ĐỒNG

TS. Vũ Thị Hương Giang


Lời cam đoan

Tôi xin cam đoan: Luận văn “Giải pháp lưu trữ số lượng lớn các thực
thể quan hệ trích xuất từ các bài báo mạng” là cơng trình nghiên cứu khoa học,
độc lập của tơi. Kiến thức trình bày trong luận văn là sự tổng hợp của cá nhân,
thông qua các kiến thức từ thầy hướng dẫn, các tài liệu tham khảo trên mạng
internet và các bài báo khoa học khác.
Đây là đề tài luận văn Thạc sĩ ngành Cơng nghệ Thơng tin. Kết quả nghiên
cứu được trình bày trong luận văn này chưa từng được công bố dưới bất kỳ hình
thức nào.


Hà Nội, ngày tháng năm 2022
Tác giả luận văn

Đỗ Mạnh Cường


Lời cảm ơn
Trước tiên, tôi xin chân thành cảm ơn các thầy, các cô trong trường Công
nghệ thông tin và Truyền thông - Trường Đại học Bách Khoa Hà Nội đã tận tình
giảng dạy trong suốt thời gian tơi học tập ở trường. Để hồn thành Luận văn thạc
sĩ, tơi cũng đã nhận được nhiều sự quan tâm, giúp đỡ từ q thầy cơ, gia đình và
bạn bè.
Đặc biệt tơi bày tỏ lòng biết ơn sâu sắc tới thầy TS. Trịnh Tuấn Đạt đã tận
tình chỉ bảo, hướng dẫn trực tiếp tơi để tìm ra hướng nghiên cứu và có thể hồn
thiện luận văn tốt nghiệp của mình.
Cuối cùng, tơi xin cảm ơn gia đình và bạn bè và tập thể lớp CNTT 2019B đã
luôn ủng hộ, giúp đỡ tôi trong thời gian học tập, nghiên cứu và thực hiện luận văn
tốt nghiệp.
Trong quá trình làm luận văn tốt nghiệp chắc chắn khơng tránh khỏi những
sai sót, tơi rất hoan nghênh và chân thành cảm ơn các ý kiến đóng góp của q
thầy cơ và bạn đọc.
Hà Nội, ngày tháng năm
Học Viên

Đỗ Mạnh Cường


Tóm tắt nội dung luận văn
Các website ngày càng phát triển mạnh mẽ, mang đến rất nhiều nguồn thông

tin hữu ích cho các chính phủ, tổ chức, xã hội, doanh nghiệp và cá nhân, đóng vai
trị quan trọng, ảnh hưởng tới mọi lĩnh vực của đời sống xã hội. Thu thập các nguồn
tin tức này và trích xuất ra các thực thể quan hệ giữa chúng giúp chúng ta hiểu
được xu hướng vận động, phát triển của các sự vật, hiện tượng. Cách làm này hỗ
trợ đắc lực cho các hoạt động kinh doanh cũng như hoạt động trong lĩnh vực an
ninh quốc phòng, quản lý điều hành các dịch vụ cơng, quản lý giám sát báo chí
truyền thơng, hỗ trợ q trình ra quyết định, phịng ngừa bệnh tật, chống khủng bố,
phòng chống tội phạm, bảo vệ thương hiệu, dự báo xu hướng thị trường, phát triển
kinh doanh, đánh giá dư luận,…
Đã có nhiều nghiên cứu phân tích các bài viết trích xuất tự động các thực thể
quan hệ giữa chúng. Để sử dụng các kết quả nghiên cứu này, đồng thời làm tiền đề
cho các nghiên cứu mới hướng tới phân tích, thống kê dữ liệu thu thập được, cần
phát triển hệ thống lưu trữ và quản lý thơng tin trích xuất thu được. Do số lượng
các bài viết rất lớn, tổng số lượng thực thể quan hệ lưu trữ có thể lên tới hàng tỷ.
Thách thức đặt ra là cần phải đảm bảo hiệu năng lưu trữ và truy vấn trên số lượng
lớn các thực thể quan hệ này để phục vụ cho các hoạt động thống kê, giúp theo
dõi, giám sát, tổng hợp các thông tin trên mạng.
Vì các giải pháp lưu trữ dữ liệu truyền thống không thể đáp ứng yêu cầu trên.
Nên tôi đã chọn đề tài “Giải pháp lưu trữ số lượng lớn các thực thể quan hệ
trích xuất từ các bài báo mạng” – tập trung giải quyết lưu trữ các bài mạng ở
dạng báo tin tức, hướng tới xây dựng hệ thống lưu trữ, truy vấn các thực thể quan
hệ với kích thước lớn bằng cách sử dụng đồ thị tri thức.

Hà Nội, ngày tháng
Học viên

năm 2022

Đỗ Mạnh Cường



MỤC LỤC

MỞ ĐẦU ............................................................................................................... 1
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT .................................................................... 4
1.1

Đồ thị tri thức .............................................................................................. 4

1.2

Neo4j - Nơi lưu trữ dữ liệu ....................................................................... 11

1.3

Cypher (query language) ........................................................................... 21

1.4

NodeJs – Express ...................................................................................... 22

1.5

ReactJs....................................................................................................... 22

CHƯƠNG 2. GIẢI PHÁP VÀ ĐÓNG GÓP NỔI BẬT .................................. 23
2.1

Thiết kế mơ hình lưu trữ dữ liệu ............................................................... 23
2.1.1


Đặc tả thông tin dữ liệu ............................................................. 23

2.1.2

Thiết kế mơ hình dữ liệu ........................................................... 24

2.2

Cơng cụ sinh dữ liệu mơ phỏng ................................................................ 29

2.3

Lựa chọn mơ hình dữ liệu tối ưu ............................................................... 36

2.4

Hệ thống lưu trữ thực thể quan hệ ............................................................ 41

2.5

2.6

2.4.1

Kiến trúc hệ thống ..................................................................... 41

2.4.2

Hệ thống REST API Service ..................................................... 43


Công cụ hướng dẫn sử dụng hệ thống ...................................................... 44
2.5.1

Service API ............................................................................... 44

2.5.2

Xây dựng giao diện API Service............................................... 52

Xây dựng bộ hướng dẫn sử dụng để vận hành, bảo trì và triển khai cluster
cho hệ thống CSDL ................................................................................... 54
2.6.1

Triển khai cluster ...................................................................... 54

2.6.2

Quản trị, vận hành và bảo trì hệ thống ...................................... 60

CHƯƠNG 3. THỰC NGHIỆM ........................................................................ 66
3.1

Môi trường thực nghiệm ........................................................................... 66

3.2

Dữ liệu thực nghiệm.................................................................................. 66

3.3


Đánh giá hiệu năng truy vấn thực nghiệm ................................................ 67
3.3.1

Đánh giá mơ hình dữ liệu .......................................................... 67

3.3.2

Đánh giá truy vấn hiệu năng hệ thống ...................................... 69

CHƯƠNG 4. KẾT LUẬN .................................................................................. 71
TÀI LIỆU THAM KHẢO ................................................................................. 73


DANH MỤC HÌNH VẼ
Hình 1.1 Ví dụ về đồ thị tri thức neo4j ..................................................... 17
Hình 1.2 Ví dụ về nút duy nhất trong neo4j ............................................. 17
Hình 1.3 Ví dụ nhiều nhãn của nút trong neo4j ........................................ 18
Hình 1.4 Ví dụ relationship type trong neo4j ........................................... 19
Hình 1.5 Ví dụ traversals trong neo4j ....................................................... 20
Hình 1.6 Ví dụ truy vấn Cypher traversals trong neo4j ............................ 22
Hình 2.1 Đồ thị sử dụng fact-node ........................................................... 26
Hình 2.2 Mơ hình lưu trữ dữ liệu thứ nhất ............................................... 27
Hình 2.3 Mơ hình lưu trữ dữ liệu thứ hai ................................................. 27
Hình 2.4 Mơ hình lưu trữ dữ liệu thứ ba................................................... 28
Hình 2.5 Mơ hình lưu trữ dữ liệu thứ tư ................................................... 28
Hình 2.6 File cấu hình cho việc sinh dữ liệu mơ phỏng ........................... 29
Hình 2.7 Giải thuật sinh dữ liệu ................................................................ 30
Hình 2.8 Đồ thị được áp dụng giải thuật sinh dữ liệu .............................. 31
Hình 2.9 Sinh node từ file cấu hình yêu cầu............................................. 32

Hình 2.10 Sinh hai node Fact (f), node News (n) ..................................... 32
Hình 2.11 Lựa chọn mode thỏa mãn quan hệ cần sinh ............................. 33
Hình 2.12 Tạo liên kết giữa các node ....................................................... 33
Hình 2.13 Thơng tin file header biểu diễn node ....................................... 34
Hình 2.14 Thơng tin file biểu diễn node ................................................... 34
Hình 2.15 Thơng tin file header biểu diễn relationship ............................ 34
Hình 2.16 Thơng tin file biểu diễn relationship ........................................ 35
Hình 2.17 Thơng tin file script import ...................................................... 35
Hình 2.18 Thực hiện truy vấn về số lượng dbhits trên đồ thị tri thức ...... 36
Hình 2.19 Mã lệnh truy vấn Cypher trong neo4j ...................................... 36
Hình 2.20 Execution plan trong neo4j ...................................................... 37
Hình 2.21 Đồ thị tri thức gồm ba bài viết với các thực thể quan hệ ......... 40
Hình 2.22 Kiến trúc hệ thống ................................................................... 42


Hình 2.23 Truy vấn Cypher mối liên hệ trong bài viết ............................. 45
Hình 2.24 Dữ liệu thơng tin thực thể trả về .............................................. 45
Hình 2.25 Truy vấn Cypher mối liên hệ trong bài viết ............................. 46
Hình 2.26 Dữ liệu mối liên hệ trong bài viết ............................................ 47
Hình 2.27 Truy vấn Cypher thống kê các bài viết theo điều kiện ............ 48
Hình 2.28 Dữ liệu trả về thống kê các bài viết theo điều kiện .................. 48
Hình 2.29 Truy vấn Cypher về thực thể khi thống kê các bài viết ........... 49
Hình 2.30 Dữ liệu trả về của thực thể khi thống kê các bài viết ............... 49
Hình 2.31 File thơng tin thực thể quan hệ trong một bài viết cần lưu ...... 51
Hình 2.32 Câu lệnh Cypher lưu trữ bài viết .............................................. 51
Hình 2.33 Giao diện Service API lấy thơng tin thực thể .......................... 52
Hình 2.34 Giao diện Service API truy vấn bài viết .................................. 53
Hình 2.35 Giao diện Service API thống kê bài viết .................................. 53
Hình 2.36 Kiến trúc Causal Clustering ..................................................... 55
Hình 2.37 Cluster của máy chủ SINGLE.................................................. 57

Hình 2.38 Cluster của máy chủ read_replica01 ........................................ 57
Hình 2.39 Cluster của máy chủ read_replica02 ........................................ 57
Hình 2.40 Cluster của máy chủ read_replica03 ........................................ 57
Hình 2.41 Cấu hình core01.example.com ................................................. 59
Hình 2.42 Cấu hình core02.example.com ................................................. 60
Hình 2.43 Cấu hình core03.example.com ................................................. 60
Hình 2.44 Cú pháp câu lệnh thực hiện backup online .............................. 61
Hình 2.45 Cài đặt và câu lệnh thực hiện backup ...................................... 62
Hình 2.46 Nội dung file backup script ...................................................... 63
Hình 2.47 Cú pháp câu lệnh restore dữ liệu trong neo4j .......................... 64
Hình 2.48 Mơ tả các thao tác trong lệnh thực hiện restore ....................... 64
Hình 2.49 Cú pháp câu lệnh unbind trong neo4j ...................................... 65
Hình 2.50 Ví dụ cú pháp câu lệnh unbind trong neo4j ............................. 65


DANH MỤC BẢNG

Bảng 1. 1. Bảng so sánh giữa các loại cơ sở dữ liệu .................................. 5
Bảng 1. 2. Bảng so sánh các cơ sở dữ liệu đồ thị ..................................... 12
Bảng 2. 1. Bảng loại thực thể quan hệ ...................................................... 23
Bảng 2. 2. Bảng lưu trữ relationship type ................................................. 24
Bảng 2. 3. Danh sách và ý nghĩa các operator .......................................... 38
Bảng 2. 4. Thuộc tính của node được đánh index .................................... 40
Bảng 2. 5. Service truy vấn thông tin thực thể ......................................... 45
Bảng 2. 6. Service truy vấn mối liên hệ .................................................... 46
Bảng 2. 7. Truy vấn các thực thể có nhãn cho trước ................................ 47
Bảng 2. 8. Truy vấn thực thể với nhãn đã cho .......................................... 48
Bảng 2. 9. Cài đặt quan trọng cho Cluster có phiên bản SINGLE ........... 56
Bảng 2. 10. Cài đặt quan trọng cho Cluster có phiên bản CORE ............. 58
Bảng 2. 11. Tham số sao lưu dữ liệu ........................................................ 61

Bảng 2. 12. Một vài tham số điển hình trong câu lệnh backup ................ 62
Bảng 2. 13. Mô tả tham số trong câu lệnh restore .................................... 64
Bảng 3. 1. Bộ dữ liệu thực nghiệm ........................................................... 67
Bảng 3. 2. Đánh giá bốn mơ hình ............................................................. 67
Bảng 3. 3. Bảng hiệu năng truy vấn trên máy chủ.................................... 70


Danh mục các từ viết tắt

DBMS

Database Management System
Hệ quản trị cơ sở dữ liệu.

RDBMS

Hệ quản trị cơ sở dữ liệu quan hệ.

DBMS Graph

Hệ quản trị cơ sở dữ liệu đồ thị.

API

Application Programming Interface.
Giao diện lập trình ứng dụng.

CSDL

Cơ sở dữ liệu.


CNTT

Công nghệ thông tin.

REST

Representational State Transfer.
Kiểu kiến trúc sử dụng trong giao tiếp giữa các máy tính
trong việc quản lý tài nguyên trên web.

ACID

Là từ viết tắt các chữ cái đầu của bốn từ tiếng Anh
atomicity (Tính nguyên tố) , consistency (Tính nhất
quán), isolation (Tính độc lập), và durability (Tính bền
vững)

SQL

Ngơn ngữ truy vấn tiêu chuẩn cho mơ hình cơ sở dữ liệu
quan hệ.

RDF

Resource Description Framework, được sử dụng như là
một phương thức chung nhất cho các mô tả khái niệm
hoặc mơ hình hóa của thơng tin được diễn dịch trong các
tài nguyên web, sử dụng trong các định dạng cú pháp
khác nhau.


RAM

Random Access Memory, bộ nhớ truy cập ngẫu nhiên
của máy tính được sử dụng làm nơi lưu trữ tạm dữ liệu và
lệnh thực thi của hệ điều hành và các ứng dụng trước khi
ghi chúng lên ổ cứng, khi kết thúc phiên làm việc.


Danh mục thuật ngữ

Cluster

Cụm hay phân cụm

Model

Mơ hình

Backup

Sao lưu

Restore

Phục hồi

Demo

Viết tắt của từ demonstration: thử nghiệm


Server local

Máy chủ cục bộ được chạy trên máy tính người dùng.

Server cloud

Máy chủ “đám mây”; cơ sở hạ tầng ảo được xây dựng để
thực hiện việc lưu trữ xử lý thông tin và ứng dụng.


MỞ ĐẦU
1. Đặt vấn đề
Sự phát triển mạnh mẽ của các website ngày càng đóng vai trị quan trọng, ảnh
hưởng tới mọi lĩnh vực của đời sống xã hội. Hầu hết các hoạt động của chúng ta đều được
ghi lại dưới dạng tin tức, chia sẻ ý kiến bình luận, tương tác, trong giao dịch và giao tiếp
thông qua các trang mạng xã hội, báo điện tử, blog. Mỗi bài báo mạng đề cập về vấn đề
cụ thể với nhiều loại thơng tin hữu ích. Khi tiếp nhận nhiều nguồn thơng tin hữu ích này
người đọc sẽ trang bị thêm nhiều kiến thức phục vụ đời sống và công việc của mình.
Trước thực tế này, cơ quan, tổ chức, doanh nghiệp và chính phủ ở nhiều quốc gia
đã đầu tư nghiên cứu xây dựng nhiều mơ hình, giải pháp chun nghiệp kết hợp giữa con
người và các giải pháp tự động nhằm thu thập, phân tích tin tức từ các nguồn trên Internet
để thu thập, tổng hợp thông tin và phân tích các số liệu thống kê. Từ đó, họ có thể phát
hiện dấu hiệu, động thái mới và dự báo xu hướng vận động, phát triển của sự vật, hiện
tượng. Với cách tiếp cận này, hỗ trợ đắc lực cho các hoạt động hằng ngày cũng như trong
hoạt động trong lĩnh vực an ninh quốc phòng, quản lý điều hành các dịch vụ công; hoạt
động kinh doanh, bảo vệ thương hiệu, dự báo xu hướng thị trường; quản lý giám sát
truyền thơng báo chí, trợ giúp q trình đưa ra quyết định; chiến dịch phòng ngừa bệnh
tật, chống khủng bố, phòng chống tội phạm; đánh giá dư luận,…
Từ trước tới này đã có nhiều nghiên cứu, phân tích trích xuất tự động giữa thực

thể quan hệ của chúng từ các bài báo. Để sử dụng các kết quả nghiên cứu này, đồng thời
làm tiền đề cho các nghiên cứu mới hướng tới phân tích, thống kê dữ liệu thu thập được,
cần phát triển hệ thống lưu trữ và quản lý thơng tin trích xuất đã thu được [1]. Do số
lượng các bài viết rất lớn nên tổng số lượng thực thể quan hệ lưu trữ có thể lên tới hàng
tỷ. Điều này đặt ra thách thức phải có nơi đủ khả năng lưu trữ số lượng lớn dữ liệu này
và quá trình truy vấn dữ liệu lớn này phải đảm bảo hiệu năng, chính xác nhằm phục vụ
cho hoạt động theo dõi, giám sát, thống kê, tổng hợp thông tin trên mạng.
Do trước đây dữ liệu sau khi được phân tích, trích rút từ các cơng trình nghiên cứu,
các công cụ chuyển dữ liệu từ dạng phi cấu trúc sang dạng có cấu trúc và lưu trữ trên cơ
sở dữ liệu quan hệ truyền thống; cộng với thách thức đặt ra ở trên nên việc sử dụng cơ sở
dữ liệu quan hệ là một giải pháp không tốt. Bởi vì khi thể hiện quan hệ này ở dạng bảng
khơng thể hiện được cái nhìn trực quan và tổng thể, chi phí cho truy vấn kết nối giữa các
bảng cao. Ngoài ra việc sử dụng cơ sở dữ liệu quan hệ để lưu dữ liệu cho nhiều thực thể
như: quốc gia, tổ chức, con người, sự kiện, địa điểm và mối liên kết giữa chúng gặp phải

1


vấn đề về tốc độ truy vấn bị chậm, từ đó khả năng xử lý thơng tin khơng được đáp ứng
tốt.
Hiểu được tầm quan trọng đó, tơi đã chọn đề tài “Giải pháp lưu trữ số lượng lớn
các thực thể quan hệ trích xuất từ các bài báo mạng” - tập trung giải quyết lưu trữ các
bài báo mạng ở dạng báo tin tức, bằng những kiến thức tìm hiểu được và với tinh thần
hăng say, nghiêm túc.
2. Mục tiêu nghiên cứu của luận văn
Với những bài toán cần lưu trữ số lượng lớn các thực thể quan hệ ở dạng có cấu
trúc thì việc sử dụng đồ thị tri thức là lựa chọn tối ưu. Bởi vì đồ thị tri thức thường được
sử dụng để lưu trữ các mô tả liên kết với nhau về thực thể, đối tượng, sự kiện, tình huống
trong thế giới thực hoặc khái niệm trừu tượng dưới dạng đồ thị. Và đặc biệt phù hợp cho
dạng bài toán lưu trữ số lượng lớn các thực thể quan hệ trích xuất từ bài báo mạng.

Phục vụ cho mục tiêu tìm hiểu nghiên cứu, phân tích và lựa chọn mơ hình cho đồ
thị tri thức tối ưu cần xây dựng công cụ sinh dữ liệu mô phỏng tự động, lựa chọn nền tảng
công nghệ neo4j cho việc thực thi đồ thị tri thức, xây dựng các service API và hướng dẫn
sử dụng service cũng như hệ thống.
Xây dựng công cụ sinh dữ liệu mô phỏng đáp ứng của yêu cầu nghiên cứu và có
khả năng tùy biến để áp dụng cho các nghiên cứu khác.
3. Phạm vi đề tài
Như đã được nêu ở phần mục tiêu, phạm vi đề tài tập trung những cơng việc sau:
• Thiết kế mơ hình lưu trữ dữ liệu.
• Xây dựng cơng cụ dữ liệu mơ phỏng.
• Lựa chọn mơ hình lưu trữ tối ưu.
• Xây dựng hệ thống lưu trữ thực thể quan hệ.
• Xây dựng cơng cụ hướng dẫn sử dụng hệ thống.
• Tổng hợp hướng dẫn sử dụng để vận hành, bảo trì và triển khai cluster cho hệ
thống.
• Thực nghiệm đánh giá giải pháp.
4. Cấu trúc luận văn
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT: Chương này trình bày cơ sở lý thuyết đồ
thị tri thức và các công nghệ cần có để sử dụng triển khai hệ thống cho yêu cầu ở trên.
Công nghệ được sử dụng cho hệ thống: neo4j – một nền tảng công nghệ cho phép lưu trữ
2


dữ liệu dưới dạng đồ thị tri thức, dữ liệu lưu trữ được không giới hạn mà chỉ phụ thuộc
vào phần cứng; NodeJs-Express và ReactJs – môi trường phát triển ứng dụng, cung cấp
thư viện hỗ trợ xây dựng nhanh API service, chạy ứng dụng trên nền web.
CHƯƠNG 2: GIẢI PHÁP VÀ ĐĨNG GĨP NỔI BẬT: Chương này trình bày
về nội dung giải pháp và đóng góp nổi bật bao gồm: thiết kế mơ hình dữ liệu; xây dựng
cơng cụ sinh dữ liệu mô phỏng tự động cho CSDL; lựa chọn mơ hình dữ liệu tối ưu; xây
dựng hệ thống lưu trữ thực thể quan hệ theo mơ hình đã chọn; xây dựng công cụ hướng

dẫn sử dụng để vận hành, bảo trì và triển khai cluster hệ thống.
CHƯƠNG 3: THỰC NGHIỆM: Chương này trình bày cách thức thực nghiệm,
đánh giá bốn mơ hình và đánh giá truy vấn hiệu năng của hệ thống.
CHƯƠNG 4: KẾT LUẬN: Chương này đưa ra những kết luận của quá trình
nghiên cứu cũng như đánh giá kết quả đạt được và định hướng nghiên cứu tiếp theo.
TÀI LIỆU THAM KHẢO: Liệt kê các tài liệu mà luận văn tham khảo trên các
nguồn khác nhau.

3


CHƯƠNG 1. CƠ SỞ LÝ THUYẾT
Trước vấn đề đặt ra cần lưu trữ số lượng lớn các quan hệ thực thể được trích xuất
từ các bài báo mạng và được xử lý từ dạng dữ liệu chưa có cấu trúc sang dạng dữ liệu có
cấu trúc, lúc này yêu cầu lựa chọn cơ sở dữ liệu lưu trữ phù hợp. Tơi đã tìm hiểu, khảo
sát, đánh giá các loại cơ sở dữ liệu đang được sử dụng phổ biến hiện nay và quyết định
sử dụng đồ thị tri thức và loại cơ sở dữ liệu là DBMS Graph để giải quyết vấn đề lưu trữ
dữ liệu.
1.1 Đồ thị tri thức
Sau khi trích xuất dữ liệu từ các bài báo mạng và được xử lý từ dạng dữ liệu chưa
có cấu trúc sang dạng dữ liệu có cấu trúc. Lúc này cần lựa chọn cơ sở dữ liệu lưu trữ phù
hợp để khai thác nguồn dữ liệu này. Hiện nay có rất loại cơ sở dữ liệu như: (1) cơ sở dữ
liệu quan hệ - RDBMS gồm: Oracle, MySQL, SQL Server, PostgreSQL,…; (2) cơ sở dữ
liệu Key-value Store gồm: Redis, Amazon DynamoDB, Microsoft Azure Cosmos DB,…;
(3) cơ sở dữ liệu Document Store gồm: MongoDB, Amazon DynamoDB, Databricks,…;
(4) cơ sở dữ liệu đồ thị - DBMS Graph gồm: GraphDB, OrientDB, Cayley, MarkLogic,
Titan, Oracle, Neo4J,… trong số chúng loại CSDL quan hệ được sử dụng rộng rãi và phổ
biến nhất. Bởi vì đây là loại CSDL có lịch sử ra đời khá sớm bắt đầu từ những năm 60
của thế kỷ trước cho tới nay và vẫn đang tiếp tục; được nhiều tập đồn cơng ty lớn cùng
phát triển và sử dụng như: IBM, Microsoft, Oracle, SyBase,… và có cộng đồng sử dụng

rộng lớn. Cơ sở dữ liệu quan hệ khơng chỉ có độ bao phủ khổng lồ mà hầu hết các bài
toán lưu trữ đều thực hiện được; nhưng không phải lúc nào cũng tốt nhất. So sách các loại
cơ sở dữ liệu ở Bảng 1 bên dưới.

4


Bảng 1. 1. Bảng so sánh giữa các loại cơ sở dữ liệu
Loại cơ sở dữ liệu
Quan hệ
(RDBMS)

Key-Value Store

Document Store

Đồ thị
(DBMS Graph)

DBMS đại Oracle, MySQL, SQL Server, Redis, Amazon DynamoDB, MongoDB,
Amazon GraphDB, OrientDB, Cayley,
diện
PostgreSQL, …
Microsoft Azure Cosmos DynamoDB, Databricks,…
MarkLogic, Titan, Oracle,
DB,…
Neo4J,…
Đặc điểm

Lưu trữ dữ liệu dưới dạng - Key-value là kiểu lưu trữ - Document store được gọi là - Mơ hình được thiết kế cho

bảng quan hệ và được quản lý đơn giản nhất trong các loại
thông qua giao thức SQL – CSDL đồng thời cũng là kiểu
ngôn ngữ truy vấn cấu trúc
lưu trữ cho toàn bộ các hệ
NoSQL. Q trình thực hiện
tìm kiếm dữ liệu đều thực hiện
thơng qua key nên dẫn đến
hạn chế về độ chính xác.

các cơ sở dữ liệu hướng tài
liệu, một thiết kế riêng biệt
cho việc lưu trữ tài liệu dạng
văn kiện JSON, BSON hoặc
XML.

dữ liệu có quan hệ được biểu
diễn tốt dưới dạng biểu đồ và
có các yếu tố được liên kết với
nhau, với số lượng quan hệ
không xác định giữa chúng.

- CSDL dạng này có các cặp - Graph Store lưu trữ mối

khố – giá trị nhưng cũng có
- Sử dụng cho dữ liệu được đính kèm các trị số siêu dữ
truy xuất thường xuyên nhưng liệu (*metadata) giúp việc
không thường xuyên được cập truy vấn (*query) dễ dàng
nhật.
hơn.


quan hệ trên từng record riêng
biệt.
- Tương đối giống với
RDBMS ở điểm dữ liệu có
cấu trúc nhưng giữa các bản
5


ghi của DBMS Graph không

- Memcached chỉ được sử
dụng cho bộ nhớ đệm, trong

cố định và tên cột có thể biến
động.

khi Redis làm được nhiều điều
hơn nữa. Memcached chỉ hỗ
trợ strings, integers trong cấu
trúc lưu trữ data, trong khi
Redis hỗ trợ nhiều loại dữ liệu
phức tạp như strings, hashes,
lists, sets, sorted sets ….
Ngồi ra, Redis có thể lưu dữ
liệu vào đĩa để đảm bảo độ
bền, cịn Memcached thì
khơng.
Điểm
mạnh


Có kiến trúc dữ liệu chặt chẽ - Linh hoạt, xử lý nhiều loại - Xử lý tốt dữ liệu semi- - Mô hình Graph Store vừa
và đảm bảo tính nhất qn cao dữ liệu một cách nhanh constricted
hoặc mang đặc điểm của NoSQL
unconstristed, người dùng với đặc tính đơn giản, flexible
- Tính nguyên tố (Atomicity): chóng.
Đảm bảo một giao dịch có - Các chìa khóa được dùng để khơng cần quan tâm đến của nó, kèm theo high
performance và highly scalenhiều thao tác thì hoặc là tồn truy xuất thẳng tới các giá trị dạng dữ liệu khi lưu trữ.
bộ thao tác được thực hiện tìm kiếm mà khơng cần thơng - Người dùng có thể thiết kế out và vừa mang đặc điểm của
hoặc là không thao tác nào qua quá trình index giúp quá cấu trúc cho một dữ liệu mà cơ sở dữ liệu có cấu trúc như
được hồn thành.
trình tìm kiếm nhanh chóng. khơng ảnh hưởng đến loại dữ RDBMS.
liệu khác.

6


Tính
nhất
quán - Hỗ trợ chuyển từ hệ thống Thời gian ghi dữ liệu cũng rất - Không phụ thuộc vào tổng
(Consistency): Một giao dịch này sang hệ thống khác mà nhanh.
kích thước của tập dữ liệu.
hoặc là có trạng thái mới hoặc không cần code lại.
- Mở rộng linh hoạt theo - Trong khi các cơ sở dữ liệu
nếu có lỗi sẽ chuyển toàn bộ - Mở rộng theo chiều ngang chiều ngang. Q trình khác tính tốn các mối quan
trạng thái về trước đó.
dễ dàng và chi phí vận hành sharding cũng dễ hiểu và dễ hệ tại thời điểm truy vấn
- Tính độc lập (Isolation): Một thấp.
giao dịch đang thực thi và
chưa được xác nhận phải đảm


thao tác hơn hệ CSDL quan thông qua các hoạt động JOIN
hệ.
tốn kém, thì cơ sở dữ liệu đồ
thị lưu trữ các kết nối cùng

báo tách biệt khỏi các giao
dịch khác.

với dữ liệu trong mơ hình.
- Biểu diễn quan hệ giữa các
node trực quan.

- Tính bền vững (Durability):
Dữ liệu sẽ được hệ thống lưu
lại ngay cả trong trường hợp
hỏng hóc hoặc có lỗi hệ thống,
đảm bảo dữ liệu vẫn trong
trạng thái chuẩn xác.
Điểm yếu

- Truy vấn thời gian thực
nhanh chóng.

- Điểm yếu lớn nhất của - Tính linh hoạt của CSDL CSDL dạng lưu trữ tài liệu hy - Thiếu tính đồng thời hiệu
RDBMS là không xử lý được dạng key – value bị đánh đổi
tốt các dữ liệu phi cấu trúc.
bởi tính chính xác. Hầu như
- Tốc độ truy vấn chậm do hỗ rất khó để truy xuất giá trị
chính xác từ CSDL dạng này
trợ các đặc điểm ACID.

vì dữ liệu được lưu trữ theo

sinh các yếu tố ACID để đổi
lấy sự linh hoạt. Ngồi ra,
việc truy vấn chỉ có thể được
thực hiện trong từng tài liệu,

suất cao (high performance
concurrency): Trong nhiều
trường hợp, graph database
cung cấp các kiểu đọc và kiểu
ghi đơn, điều này cản trở sự

7


- Việc thay đổi cơ sở dữ liệu blob, nên kết quả trả về hầu không thể truy vấn dữ liệu đồng thời và hiệu suất, do đó
trên nhiều tài liệu khác nhau. phần nào hạn chế tính song
khá khó do tính chặt chẽ của như đều theo blob.
song phân luồng (threaded
nó.
- Khó khăn khi báo cáo số liệu
parallelism).
- Cấu trúc RDBMS làm phức hoặc cần chỉnh sửa một phần
- Thiếu ngơn ngữ chuẩn: Việc
tạp hóa việc nâng cao mở rộng của các giá trị.
thiếu sự thiết lập và một ngôn
máy chủ theo chiều ngang
ngữ khai báo chuẩn là một
hoặc chiều dọc.

vấn của NoSQL graph
database.
- Thiếu tính song song
(parallelism): việc phân vùng
một biểu đồ là một vấn đề.
Hầu hết các graph database
không cung cấp các truy vấn
song song trên các biểu đồ
lớn.
Ứng dụng

Các ứng dụng web với lượng - Caching

- Dữ liệu phi cấu trúc hoặc - Các hệ thống yêu cầu dữ liệu

giao dịch lớn và truy vấn phức - Quản lý HTTP session
khơng có cấu trúc (video,
tạp.
media, photo, document…)
- Dữ liệu phi cấu trúc như
Dữ liệu tài chính, thơng tin review sản phẩm, bình luận - Quản lý danh mục sản phẩm
người dùng, thông tin nhân của blog
- Phân tích dữ liệu hành vi
khẩu …
khách hàng

với số lượng lớn các mối quan
hệ linh hoạt, yêu cầu cấu trúc
có thể mở rộng để thêm dữ
liệu mới, yêu cầu truy vấn các

mối quan hệ in real-time.

8


- Khuyến nghị các sản phẩm /
thông tin tương tự

- Các hệ thống liên quan đến
trao đổi dữ liệu cần sự linh

- Thông tin và thiết lập người
dùng

hoạt về truy xuất dữ liệu.
- Ứng dụng vào công cụ gợi ý,
phát hiện gian lận, phân tích

- Bộ đếm số lượt truy cập

và duyệt các mối quan hệ giữa
các dữ liệu được kết nối.

trang
- Kiểu lưu trữ hàng đợi cần
hiệu suất cao

- Cơ sở dữ liệu đồ thị chủ yếu
được sử dụng cho mạng xã
hội, hậu cần, dữ liệu không

gian

- Biên soạn số liệu thống kê

Độ
phổ Dẫn đầu với những cơ sở dữ Xếp thứ 3
biến 1
liệu như Oracle (1262 điểm),
MySQL (1202 điểm), SQL
Server (941 điểm), Postgre

Xếp thứ 2

Xếp thứ 6

SQL (615 điểm),…

sắp xếp theo tiêu chi: số lượng đề cập đến, mức độ
quan tâm của cộng đồng phát triển, tần suất thảo luận về kỹ thuật, số lượng về lời mời việc làm, số lượng cấu hình trong các mạng chuyên
nghiệp,..
1

9


Từ bảng trên cho thấy việc dụng cơ sở dữ liệu truyền thống để lưu trữ dữ liệu cho
các bài báo mạng là rất phổ biến. Tuy nhiên, với bài toán này cần lưu trữ và biểu diễn số
lượng lớn các thực thể quan hệ cần xem xét ở đặc điểm, điểm mạnh, điểm yếu và ứng
dụng trên từng loại cơ sở dữ liệu. Lúc này loại CSDL truyền thống có mức độ phổ biến
cao khơng mang lại một giải pháp tốt. Bởi vì các quan hệ thể hiện ở dạng bảng khơng đưa

ra lại cái nhìn trực quan và phép nối giữa các bảng phức tạp, tiêu tốn chi phí cao thực
hiện như ở Bảng so sánh bên trên. Ngồi ra, khi dữ liệu có nhiều thực thể quốc gia, tổ
chức, sự kiện, địa điểm, con người cùng với mối quan hệ giữa chúng thì tốc truy vấn trên
cơ sở dữ liệu quan hệ truyền thống sẽ bị chậm đi đáng kể, dẫn tới nhiều khó khăn trong
việc xử lý và tổng hợp thơng tin.
Trước khó khăn này giải pháp để biểu diễn thực thể quan hệ đã được trích xuất từ
các bài báo mạng là sử dụng đồ thị tri thức – Knowledge Graph [2]. Đồ thị tri thức là cơ
sở tri thức sử dụng mơ hình dữ liệu có cấu trúc đồ thị hoặc cấu trúc liên kết để tích hợp
dữ liệu. Sơ đồ tri thức thường được sử dụng để lưu trữ các mô tả được liên kết với nhau
về các thực thể (entity) - đối tượng, sự kiện, tình huống hoặc khái niệm trừu tượng - đồng
thời mã hóa ngữ nghĩa bên dưới thuật ngữ được sử dụng. Biểu diễn đồ thị tri thức với
mệnh đề thơng qua các bộ ba; mỗi bộ ba có thể ở dạng subject (chủ ngữ) – predicate (vị
từ) – object (vị ngữ) (s, p, o) [3].
Google đã công bố đồ thị tri thức (Knowledge Graph-KGs [4]) của mình vào ngày
16 tháng 5 năm 2012 và đang được sử dụng rộng rãi đến hiện nay. KGs cung cấp khả
năng lưu trữ lượng dữ liệu khổng lồ với hàng tỷ các sự kiện cũng như hàng tỷ đối tượng.
Tính từ lúc cơng bố và xun suốt q trình phát triển cho đến nay, Google ln cho thấy
sự tiến bộ nhanh chóng và đáng kinh ngạc của mình. Kết quả tìm kiếm ngày này được
Google sử dụng bằng đồ thị tri thức giúp lọc dữ liệu chính xác và nhanh chóng. Từ đó
mang lại cho người dùng nhiều thơng tin hữu ích.
Có thể dùng hai cơ chế chính lưu trữ và quản lý KGs. Với cơ chế thứ nhất – sử
dụng cơ sở dữ liệu bộ ba (triple store 2) như AllegroGraph hay Virtuoso với ngôn ngữ mô
tả tài nguyên RDF (Resource Description Framework) và ngơn ngữ truy vấn SPARQL.
Cịn cơ chế thứ hai [5] – sử dụng cơ sở dữ liệu đồ thị như GraphDB, OrientDB, Cayley,
MarkLogic, Titan và Neo4J; còn ngôn ngữ truy vấn được hỗ trợ như GraphQL, Gremlin
và Cypher.
Với bài toán cần lưu trữ dữ liệu dưới dạng đồ thị thì cả hai cơ chế trên đều đáp
ứng. Bới chúng đều mang khả năng truy vấn dễ dàng và linh hoạt trong việc thực hiện.

2


/>10


Ngồi ra, ngày này rất nhiều nền tảng cơng nghệ có hiệu năng cao, lưu trữ được lượng
lớn các thực thể thì cơ chế thứ hai được ưu tiên sử dụng rộng rãi hơn.
1.2 Neo4j - Nơi lưu trữ dữ liệu
Từ dữ liệu trích xuất trong các bài báo mạng và được xử lý từ dữ liệu dạng chưa
có cấu trúc sang dạng dữ liệu có cấu trúc, tơi đã phân tích được loại cơ sở dữ liệu phù
hợp là CSDL đồ thị ở chương 1 mục 1.1 làm nơi lưu trữ và khai thác. Lúc này cần lựa
chọn công nghệ sử dụng cơ sở dữ liệu đồ thị lưu trữ tốt nhất. Trên một số trang website
nổi tiếng chuyên thống kê, đánh giá về các loại cơ sở dữ liệu hiện có như: DB-Engines
( Gartner ( … và trên các trang
thảo luận đánh giá khác.

11


Bảng 1. 2. Bảng so sánh các cơ sở dữ liệu đồ thị
DBMS Graph
Neo4j

GraphDB 3

TigerGraph 4

Cơ sở dữ liệu đồ thị có thể mở
rộng, tuân thủ ACID được thiết
kế với kiến trúc cụm phân tán
hiệu suất cao, có sẵn trong các

dịch vụ tự lưu trữ và đám mây.

Cơ sở dữ liệu đồ thị và RDF sẵn sàng
cho doanh nghiệp với khả năng lập
luận hiệu quả, hỗ trợ đồng bộ hóa chỉ
mục cụm và bên ngồi. Nó cũng hỗ
trợ truy cập SQL JDBC vào Sơ đồ tri
thức và Đồ thị qua SPARQL.

Một cơ sở dữ liệu đồ thị gốc, với quá
trình xử lý song song hàng loạt và các
giao dịch ACID hồn tồn khiến nó
trở thành nền tảng đồ thị nhanh nhất
và có khả năng mở rộng cao nhất.

Phát hành lần đầu 2007

2000

2017

Giấy phép

Mã nguồn mở

Cộng đồng

Cộng đồng

Website








Tài liệu

/>
/>


Mô tả

-documentation
Phát triển bởi

Neo4j, Inc.

Ontotext

Dr. Yu Xu (dưới tên là GraphSQL)

3

/>
4

/>12



Hệ điều
máy chủ

SQL

hành Linux info

All OS with a Java VM

Linux

OS X

Linux

Solaris

OS X

Windows

Windows

Không

SPARQL được lưu trữ được truy cập Ngôn ngữ truy vấn giống SQL
dưới dạng SQL bằng Apache Calcite (GSQL)
thông qua JDBC / ODBC


API và phương Bolt protocol, Cypher query GeoSPARQL, GraphQL, GraphQL GSQL
(TigerGraph
thức truy cập language, Java API, Neo4j- Federation, Java API, JDBC, RDF4J Language),
Kafka,
khác
OGM info, RESTful HTTP API, API, RDFS, RIO, Sail API, Sesame HTTP/JSON API

Query
RESTful

Spring Data Neo4j, TinkerPop 3 REST HTTP Protocol, SPARQL 1.1
Các ngôn ngữ lập .Net
trình được hỗ trợ Clojure

.Net

C++

C#

Java

Elixir

Clojure

Go

Java


Groovy

JavaScript (Node.js)

Haskell

PHP

Java

Python

JavaScript (Node.js)

Ruby
13


×