ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRƯƠNG LÊ QUÂN ỨNG DỤNG ĐỘ TƯƠNG ĐỒNG CHUỖI TRONG CHỐNG TRÙNG LẶP CHO CÁC TẬP DỮ LIỆU VĂN BẢN CÓ CẤU TRÚC DẠNG BẢNG Ngành: Công nghệ T
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRƯƠNG LÊ QUÂN
ỨNG DỤNG ĐỘ TƯƠNG ĐỒNG CHUỖI TRONG CHỐNG TRÙNG LẶP CHO CÁC TẬP DỮ LIỆU VĂN BẢN CÓ CẤU TRÚC DẠNG BẢNG
Ngành: Công nghệ Thông tin Chuyên ngành: Kỹ thuật phần mềm
Mã số: 60.48.01.03
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: Tiến sĩ Hoàng Xuân Tùng
Trang 2Lời cảm ơn
Tôi xin chân thành cảm ơn TS Hoàng Xuân Tùng, người đã tận tình hướng dẫn tôi trong suốt quá trình làm luận văn Những ý kiến đóng góp và sự chỉ bảo của thầy trong
quá trình này là kim chỉ nam giúp tôi hoàn thành mục tiêu nghiên cứu của mình
Tôi xin cảm ơn tập thể thầy cô giáo trường Đại học Công nghệ - Đại học Quốc gia
Hà Nội đã giảng dạy và tạo điều kiện tốt nhất cho tôi trong thời gian tôi học tập tại
trường cũng như khi nghiên cứu và làm luận văn
Tôi cũng xin được gửi lời cảm ơn tới những người đàn anh cùng thầy hướng dẫn những người đã cho tôi những lời khuyên cần thiết và sự động viên của mọi người trong
quá trình làm luận văn của mình
Cuối cùng tôi xin gửi lời cảm ơn tới gia đình và bạn bè những người luôn đứng sau cổ vũ cho tôi trong suốt quãng thời gian học tập và làm luận văn
Trang 3Lời cam đoan
Tôi xin cam đoan những gì viết trong luận văn này là sản phẩm của cá nhân tôi, không sao chép từ người khác Trong toàn bộ luận văn những điều được trình bày hoặc
là của cá nhân tôi hoặc là được trích dẫn từ nhiều nguồn tài liệu Tất cả tài liệu tham
khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp Tôi xin hoàn toàn chịu trách
nhiệm và mọi hình thức kỷ luật theo quy định cho lời cam đoan của mình
Trang 4Mở đầu
Trong luận văn này tôi trình bày các phương pháp giải quyết khó khăn khi thực hiện các phương pháp chống trùng lặp thông thường trên các tập dữ liệu văn bản có cấu
trúc dạng bảng Khó khăn đó xuất hiện khi có lỗi nhập liệu, sự sai sót khi gõ máy dẫn
tới việc những phương pháp thông thường không thể tìm được những dữ liệu bị trùng
lặp Để giải quyết khó khăn trên tôi đề xuất một phương pháp chống trùng lặp dựa vào
cách tính độ tương đồng chuỗi nhằm đạt được kết quả cao nhất khi tìm ra các dữ liệu
trùng lặp trên các tập dữ liệu văn bản khi xảy ra lỗi nhập liệu Bằng phương pháp tính
độ tương đồng này những dữ liệu khi được nhập vào trong tập văn bản cho dù có xảy ra
lỗi nhập liệu vẫn có thể bị phát hiện và xử lý
Mặc dù môi trường thử nghiệm còn thiếu thốn, các tập dữ liệu đầu vào còn ít và
cả phương pháp thực nghiệm độ tương đồng nhưng kết quả thực nghiệm đã chỉ ra rằng:
phương pháp chống trùng lặp ứng dụng độ tương đồng đã giải quyết được vấn đề nhập
liệu Tỉ lệ sai khi nhập liệu càng lớn thì hiệu suất của phương pháp này càng cao Ngay
cả khi không xảy ra lỗi nhập liệu thì hiệu suất của phương pháp mới cũng ngang bằng
với phương pháp cũ Điểm yếu là thời gian chạy, tôi chưa thể thực nghiệm những
phương pháp có thể giải quyết được vấn đề thời gian đã nêu trong lý thuyết
Để có thể đánh giá được một cách công bằng nhất cần những thử nghiệm lớn hơn với những phương pháp tối ưu hơn Tuy nhiên tôi vẫn có thể kết luận được trong luận
văn này chính là: Phương pháp chống trùng lặp ứng dụng độ tương đồng chuỗi đã phần
nào giải quyết được những khó khăn khi xử lý dữ liệu trên các tập văn bản có cấu trúc
Trang 5Mục Lục
DANH MỤC CÁC TỪ VIẾT TẮT 7
DANH SÁCH HÌNH VẼ 8
DANH SÁCH BẢNG 9
Chương 1: Trùng lặp dữ liệu và các phương pháp chống trùng lặp 10
1.1 Các vấn đề trùng lặp dữ liệu 10
1.2 Chống trùng lặp dữ liệu 11
1.2.1 Khái niệm 11
1.2.2 Lợi ích của chống trùng lặp dữ liệu 12
1.3 Ứng dụng của chống trùng lặp dữ liệu 13
1.3.1 Backup dữ liệu 13
1.3.2 Nhân bản dữ liệu 14
1.3.3 Lưu trữ dữ liệu 14
Chương 2: Phân loại các phương pháp chống trùng lặp dữ liệu 17
2.1 Các phương pháp chống trùng lặp phân chia theo dữ liệu 17
2.1.1 File Base Compare 17
2.1.2 File Level Hashing 17
2.1.3 Block Level Hashing 18
2.1.4 Sub Block Level Hashing 19
2.1.5 Delta Versioning 20
2.1.6 So sánh các phương pháp chống trùng lặp 21
2.2 Các phương pháp chống trùng lặp theo cách thức thực hiện 23
2.2.1 Inline 23
2.2.2 Post-process 24
2.2.3 Client Base 25
2.2.4 Target-base 25
2.2.5 NAS-based 26
2.2.6 SAN-based 26
2.2.7 Global 27
2.3 Các đoạn có chiều dài cố định và các đoạn có chiều dài linh hoạt 28
Chương 3 Ứng dụng độ tương đồng chuỗi trong chống trùng lặp dữ liệu 31
Trang 63.1 Vấn đề của các phương pháp chống trùng lặp cho các tập dữ liệu văn bản
có cấu trúc dạng bảng 31
3.2 Ứng dụng của độ tương đồng chuỗi vào chống trùng lặp 32
3.2.1 Sử dụng khoảng cách chuỗi 32
3.2.2 Phương pháp sử dụng phân cụm k-means 36
3.2.3 Phương pháp sử dụng thuật toán LSH (locality sensitive hashing) 39
Chương 4 Thực nghiệm và đánh giá kết quả 42
4.1 Tổng quan về thử nghiệm 42
4.2 Thử nghiệm 1 43
4.3 Thử nghiệm 2 46
4.4 Đánh giá kết quả 48
4.5 Các thử nghiệm khác 49
4.5.1 Thử nghiệm chọn cận dưới bằng cách thống kê 49
4.5.2 Thử nghiệm đánh giá tác động của cận dưới 50
4.6 Thực nghiệm thực tế 52
4.7 Kết luận và hướng phát triển tương lai 53
4.7.1 Kết luận 53
4.7.2 Hướng phát triển tương lai 54
TÀI LIỆU THAM KHẢO 55
Tiếng Anh 55
Phụ lục 57
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT
Trang 8DANH SÁCH HÌNH VẼ
Hình 1.1 Chống trùng lặp dữ liệu [3] 12
Hình 1.2 Lưu trữ dữ liệu khi không sử dụng chống trùng lặp [3] 15
Hình 1.3 Lưu trữ dữ liệu khi sử dụng chống trùng lặp [3] 15
Hình 2.1 File Base Compare 17
Hình 2.2 Quy trình hoạt động của File Level Hashing 18
Hình 2.3 Quy trình làm việc của Block Level Hashing 19
Hình 2.4 Chia nhỏ File 19
Hình 2.5 Dữ liệu sau khi xóa block/sub-block 20
Hình 2.6 Inline 24
Hình 2.7 Post-process 25
Hình 2.8 Client Base 25
Hình 2.9 Target-base 26
Hình 2.10 NAS-Based 26
Hình 2.11 SAN-based 27
Hình 2.12 Global 28
Hình 2 13 Chia các đoạn có chiều dài cố định [1] 29
Hình 2 14 Chia các đoạn có độ dài linh hoạt [1] 29
Hình 3.1 Sử dụng phương pháp chống trùng lặp bình thường 31
Hình 3.2 Quy trình chống trùng lặp sử dụng độ tương đồng chuỗi 33
Hình 3.3 Quy trình đánh giá độ tương đồng chuỗi 33
Hình 3 4 Lưu đồ của phương pháp tương đồng chuỗi 35
Hình 3.5 Thuật toán K-means 36
Hình 3.6 Lưu đồ của thuật toán K-means 37
Hình 3.7 Lưu đồ mới của phương pháp sử dụng K-means 38
Hình 3 8 Mô hình thuật toán LSH [10] 40
Hình 3 9 Lưu đồ của phương pháp ứng dụng LSH 41
Hình 4.1 Kết quả thu được sau thực nghiệm 1 44
Hình 4.2 Kết quả thu được sau thực nghiệm 2 47
Hình 4.3 Biểu đồ két quả thực nghiệm 51
Trang 9DANH SÁCH BẢNG
Bảng 2.1 So sánh các phương pháp 23
Bảng 4.1 Sự thay đổi trong file đầu vào thử nghiệm 1 44
Bảng 4.2 Kết quả của thực nghiệm 1 45
Bảng 4.3 Sự thay đổi trong file gốc thử nghiệm 2 46
Bảng 4.4 Kết quả của thực nghiệm 2 48
Bảng 4.5 File đầu vào thực nghiệm và sự thay đổi của cận dưới 50
Bảng 4.6 Bảng kết quả của thực nghiệm tác động của cận dưới 52
Trang 10Chương 1: Trùng lặp dữ liệu và các phương pháp chống trùng lặp
1.1 Các vấn đề trùng lặp dữ liệu
Thông tin là một phần quan trọng trong công nghệ thông tin, bất cứ công ty hay tổ chức nào muốn hoạt động tốt nhất thì cần phải có cách sử dụng thông tin một cách hợp
lý Chính vì thế mà dữ liệu – thứ tạo nên những thông tin cần phải được quản lý một
cách tốt nhất và được bảo vệ một cách hiệu quả, tuy nhiên khi lượng dữ liệu càng lớn
thì yêu cầu của nó về không gian lưu trữ và việc quản lý nó cũng ngày một gia tăng Sự
gia tăng của dữ liệu dẫn tới một vấn đề hết sức nghiêm trọng khác, đó chính là sự trùng
lặp dữ liệu
Trùng lặp dữ liệu là việc những dữ liệu có nội dung giống nhau nhưng vì nhiều nguyên nhân khác nhau mà bị lưu lại nhiều lần Một trong những hậu quả mà trùng lặp
dữ liệu gây ra chính là hao phí cho không gian lưu trữ Dữ liệu trùng lặp càng lớn thì
hao phí càng nhiều Ví dụ như một người bán hàng gửi 1 bản giới thiệu sản phẩm khoảng
10mb cho khoảng 500 người mỗi bản báo cáo phải chứa trong 1 file khác nhau cho dù
nội dung của chúng phần lớn là giống nhau, lúc này dung lượng phải lưu trữ chỉ khoảng
5gb, đương nhiên đó không phải một con số lớn thế nhưng nếu phải gửi 10 bản giới
thiệu, 100 bản giới thiệu thì sao, đó chắc chắn không phải là con số nhỏ nữa Hơn nữa
phần lớn dữ liệu là giống nhau khiến cho việc lưu trữ dữ liệu trở nên hoang phí, những
block giống nhau lại được lưu trữ nhiều lần không những khiến chi phí cho không gian
lưu trữ tăng lên nhanh chóng mà còn khiến cho chi phí khi backup dữ liệu tăng lên tới
mức chóng mặt (Chi tiết có thể xem trong [1])
Theo [2] thì không chỉ trong những công ty lớn xảy ra việc trùng lặp dữ liệu mà trên cả những đám mây Đám mây là những hồ dữ liệu lớn nơi các dữ liệu được lưu trữ
Thay vì việc phải sử dụng một hay nhiều máy chủ thì tất cả dữ liệu trong đám mây đều
được ảo hóa thông qua internet Điểm mạnh của việc lưu trữ đám mây chính là ở tính
mềm dẻo, khả năng tính toán, tính đàn hồi và co giãn tài nguyên, người sử dụng không
cần phải tính toán dung lượng lưu trữ mà chỉ cần trả tiền là sẽ có dung lượng cần thiết
Chính vì thế mà việc trùng lặp dữ liệu xảy ra trong đám mây lại càng nhiều Lấy ví dụ
đơn giản một ông A yêu thích nhạc cổ điển, ông ta đưa một file X lên đám mây, ta lại
có thêm một ông B cũng rất yêu thích nhạc cổ điển trùng hợp là ông ta cũng yêu thích
bài X và cũng đưa nó lên đám mây Hiện giờ trong đám mây sẽ có 2 bài X và cùng phải
lưu trữ hai bài này Như vậy chi phí cho cùng một file, cùng một dữ liệu sẽ tốn gấp đôi,
Trang 11TÀI LIỆU THAM KHẢO
Tiếng Anh
[1] S W Mark R.Coppock, Data Deduplication For Dummies, 2011
[2] D S S Deepak Mishra, Comprehensive study of data de-duplication, 2013
[3] A N Christopher Poelker, Storage Area Network for Dummies, 2011
[4] W J B Dutch T Meyer, A Study of Practical Deduplication, 2011
[5] C Poelker, "computerworld.com," [Online] Available:
http://www.computerworld.com/article/2475300/cloud-security/data- deduplication-in-the-cloud-explained part-three implementation-methods.html
[6] D Lin, An Information-Theoretic Definition of Similarity
[7] G Navarro, A guided tour to approximate string matching, 2001
[8] N S N D M M C D P R S A Y W Tapas Kanungo, "An Efficientk-Means Cụming Algorithm:Analysis and Implementation"
[9] M Bilenko, "Learnable Similarity Functions and Their Applications to Record Linkage and Cụming," 2003
[10] J Leskovec [Online] Available:
http://web.stanford.edu/class/cs246/slides/03-lsh.pdf
[11] J Z J Z Xinran Jiang, Enhance Data De-Duplication Performance With Multi-Thread Chunking, 2014
[12] J M S J G L C Y Y W K Ider Lkhagvasuren, Byte-index Chunking Algorithm for Data Deduplication System, 2013
[13] S Y P J G L Y W K Ho Min Jung, Efficient Data Deduplication System Considering File, 2012
[14] A B A N P G Vandana Dixit Kaushik, An Efficient Algorithm for De-duplication of, 2012
[15] R K A K A O J L S S Ahmed El-Shimi, Primary Data Deduplication – Large Scale Study and System Design, 2012
Trang 12[16] K E D B Mark Lillibridge, Improving Restore Speed for Backup Systems that Use Inline, 2013
[17] Y J D H D Guanlin Lu, Frequency Based Chunking for Data De-Duplication, 2010
[18] L Whitehouse, HP StoreOnce Deduplication Software, 2010
[19] S S J L Biplob Debnath, ChunkStash: Speeding up Inline Storage Deduplication using Flash Memory, 2010
[20] L D R Amatruda, Back up and recovery: accelerating efficiency and driving down IT cost using data deduplication, 2010
[21] P Bille, Asurvey on tree edit distance and related problems, 2004