Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
8,17 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN NGUYỄN HỮU LỘC NGHIÊN CỨU CƠ SỞ DỮ LIỆU NOSQL VÀ CHUYỂN ĐỔI LƯỢC ĐỒ CƠ SỞ DỮ LIỆU QUAN HỆ SANG NOSQL LUẬN VĂN THẠC SĨ NGÀNH KHOA HỌC MÁY TÍNH Mã số: 60 48 01.01 NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN ĐÌNH THN THÀNH PHỐ HỒ CHÍ MINH - 2015 LỜI CAM ĐOAN Tôi xin cam đoan: Những nội dung luận văn thực hướng dẫn trực tiếp Thầy Nguyễn Đình Thuân Mọi tham khảo luận văn trích dẫn rõ ràng tên tác giả, tên cơng trình, thời gian công bố Mọi chép không hợp lệ, vi phạm quy chế đào tạo tơi xin chịu hồn tồn trách nhiệm Tp Hồ Chí Minh, ngày 15 tháng 10 năm 2015 Học viên Nguyễn Hữu Lộc LỜI CẢM ƠN Em chân thành cảm ơn Thầy Nguyễn Đình Thuân – Đại học Công nghệ Thông tin – Đại Học Quốc gia Thành Phố Hồ Chí Minh khuyến khích, động viên, hướng dẫn hỗ trợ em hoàn thành luận văn Em gửi lời cám ơn đến quý Thầy Cô trường Đại học Công nghệ Thông tin - Đại Học Quốc gia Thành Phố Hồ Chí Minh cung cấp kiến thức tạo điều kiện tốt để em hoàn thành luận văn Con cảm ơn Cha Mẹ gia đình tạo điều kiện tốt cho học tập hoàn thành luận văn Hữu Lộc MỤC LỤC MỤC LỤC DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT DANH MỤC CÁC THUẬT NGỮ .6 DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ .8 MỞ ĐẦU 10 Chương TỔNG QUAN 12 1.1 Tình hình chuyển đổi từ sở liệu quan hệ vào NoSQL .12 1.2 Mục tiêu, nội dung, phương pháp nghiên cứu 13 Chương GIỚI THIỆU CƠ SỞ DỮ LIỆU NOSQL, MONGODB VÀ DỮ LIỆU MẪU TPC-H .14 2.1 Giới thiệu NoSQL 14 2.1.1 Đặc điểm bật NoSQL .15 2.1.2 Phân loại sở liệu NoSQL 15 2.1.2.1 Cơ sở liệu cặp khóa/giá trị 15 2.1.2.2 Cơ sở liệu cột 16 2.1.2.3 Cơ sở liệu tài liệu 18 2.1.2.4 Cơ sở liệu đồ thị 20 2.2 Giới thiệu MongoDB 23 2.2.1 Các khái niệm bản: 23 2.2.1.1 Khóa-giá trị 23 2.2.1.2 Trường 23 2.2.1.3 Tài liệu 23 2.2.1.4 Bộ sưu tập 25 2.2.2 Các thao tác MongoDB .25 2.2.2.1 Tạo sở liệu: .25 2.2.2.2 Xóa sở liệu 26 2.2.2.3 Tạo sưu tập 26 2.2.2.4 Xóa sưu tập 26 2.2.2.5 Thao tác thêm tài liệu 27 2.2.2.6 Thao tác xóa tài liệu 27 2.2.2.7 Thao tác cập nhật tài liệu 27 2.2.2.8 Thao tác truy vấn 28 2.2.3 Đánh giá ưu điểm, nhược điểm chuyển sang MongoDB 29 2.2.3.1 Những ưu điểm chuyển đổi sang MongoDB 29 2.2.3.2 Những nhược điểm chuyển đổi sang MongoDB 29 2.3 Giới thiệu liệu mẫu TPC-H 30 2.3.1 Giới thiệu 30 2.3.2 Lược đồ quan hệ: 33 2.3.3 Đặc tả bảng 33 2.3.4 Tạo liệu mẫu TPC-H SQL Server 2008 39 Chương CHUYỂN ĐỔI LƯỢC ĐỒ CƠ SỞ DỮ LIỆU SQL SERVER SANG MONGODB 40 3.1 Một số tảng ánh xạ lược đồ 40 3.2 Các bước chuyển đổi 41 3.2.1 Xác định mục tiêu, lên kế hoạch 41 3.2.2 Thiết kế lược đồ 41 3.2.2.1 Định nghĩa mơ hình liệu 42 3.2.2.2 Xây dựng mơ hình quan hệ .43 3.2.3 Chuyển đổi liệu 46 3.2.4 Vận hành, bảo mật liệu 47 Chương MẢNH LƯU TRỮ TRONG MONGODB .48 4.1 Mơ hình phân tán 48 4.2 Giới thiệu Mảnh lưu trữ .48 4.2.1 Mảnh lưu trữ gì? 48 4.2.2 Mục đích mảnh lưu trữ? 48 4.3 Tổng quan mảnh lưu trữ MongoDB 50 4.3.1 Giới thiệu: .50 4.3.1.1 Shards (mảnh): .51 4.3.1.2 Query routers: .52 4.3.1.3 Máy chủ cấu hình: 52 4.3.2 Các yêu cầu dùng mảnh lưu trữ: 53 4.3.2.1 Yêu cầu sharded cluster: 53 4.3.2.2 Yêu cầu số lượng liệu: 53 4.3.3 Kiến trúc sharded cluster thử nghiệm (Sharded cluster Test Architecture): 53 4.3.4 Khóa mảnh: 54 4.4 Triển khai mảnh lưu trữ MongoDB 55 4.4.1 Chuẩn bị: 55 4.4.2 Cài đặt: 56 4.4.3 Một số lưu ý: 60 Chương CÀI ĐẶT 62 5.1 Chuyển đổi lược đồ SQL Server sang MongoDB .62 5.1.1 Xác định mục tiêu, lên kế hoạch 62 5.1.2 Thiết kế lược đồ 63 5.1.3 Chuyển đổi liệu 64 5.1.4 Vận hành, bảo mật liệu 66 5.2 Đánh giá .66 5.2.1 Môi trường thử nghiệm: 67 5.2.2 Công cụ so sánh tốc độ: 67 5.2.3 Câu truy vấn mẫu 68 5.2.4 Kết (tính theo đơn vị: mili-giây (ms)): 69 Chương KẾT LUẬN VÀ KHUYẾN NGHỊ 70 6.1 Nội dung làm 71 6.2 Hướng phát triển 71 TÀI LIỆU THAM KHẢO 72 PHỤ LỤC CÁC CƠNG TRÌNH NGHIÊN CỨU LIÊN QUAN NỘI DUNG LUẬN VĂN 72 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT ACID Atomicity, Consistency, Isolation, and Durability BSON Binary JavaScript Object Notation ETL Extract Transform Load JDBC Java Database Connectivity JSON JavaScript Object Notation NoSQL ‘Not Only’ SQL TPC Transaction Processing Performance Council TPC-H TPC Benchmark™H DANH MỤC CÁC THUẬT NGỮ API Giao diện lập trình ứng dụng Chunk Đoạn liệu Collection Bộ sưu tập Column Cột Column Family Cơ sở liệu cột Config Server Máy chủ cấu hình Cursor Con trỏ Cluster Cụm Database Cơ sở liệu Document Tài liệu Field Trường Grap Database Cơ sở liệu đồ thị Key – Value Store Cơ sở liệu cặp khóa/giá trị Node Nút Record Mẫu tin Replicate Nhân Router Bộ định tuyến Super column Siêu cột Sharding Mảnh lưu trữ Schema – free Lược đồ tự Shard Mảnh liệu DANH MỤC CÁC BẢNG Bảng 2.1 Ví dụ cấu trúc tài liệu .19 Bảng 2.2 So sánh số loại sở liệu NoSQL .23 Bảng 2.3 Part layout 33 Bảng 2.4 Supplier table layout 34 Bảng 2.5 Partsupp table layout 34 Bảng 2.6 Customer table layout 35 Bảng 2.7 Orders table layout 35 Bảng 2.8 Lineitem table layout .36 Bảng 2.9 Nation table layout 38 Bảng 2.10 Region table layout 38 Bảng 3.1 Ánh xạ khái niệm SQL Server MongoDB 42 Bảng 4.1 Thơng tin cấu hình mảnh lưu trữ .56 Bảng 5.1 Dữ liệu SQL .66 Bảng 5.2 Dữ liệu MongoDB 66 Bảng 5.3 Câu truy vấn mẫu .68 Bảng 5.4 Thời gian truy vấn liệu Server Server MongoDB (có mảnh lưu trữ) 69 Bảng 6.1 Tổng hợp đối tượng chuyển đổi 70 Chương Mảnh lưu trữ MongoDB Hình 4.7 Ứng dụng tạo liệu cho sưu tập LINEITEM Bước 7: Kiểm tra tình trạng thêm liệu liệu phân tán a Trên Mongos D:\huuloc\mongodb\bin\mongo.exe localhost:27021 >use TPCHnew >db LINEITEM.count() 6001215 // kết Hình 4.8 Kết Mongos 59 Chương Mảnh lưu trữ MongoDB b Trên mảnh D:\huuloc\mongodb\bin\mongo.exe localhost:27023 >use TPCHnew >db LINEITEM.count() 3003351 Hình 4.9 Kết mảnh c Trên mảnh D:\huuloc\mongodb\bin\mongo.exe localhost:27024 >use TPCHnew >db LINEITEM.count() 2997864 Hình 4.10 Kết mảnh 4.4.3 Một số lưu ý: Cài đặt mảnh lưu trữ lần đầu tiên: thực bước Để sử dụng mảnh lưu trữ: thực bước 1, 2, 60 Chương Mảnh lưu trữ MongoDB Việc phân tán liệu dựa chế cân mảnh liệu random Chưa biết cách tùy biến khóa mảnh theo ý mình, tức tơi muốn đặt mảnh tài liệu từ -100 mảnh tài liệu từ 100 đến hết chẳng hạn Triển khai thực local host với cách phân tán liệu phân vùng khác Nếu muốn triển khai mảnh lưu trữ mạng máy tính thay vị từ locahost bước cấu hình địa IP máy (Chú ý test connect máy trước cấu hình lệnh ping ) 61 Chương Cài đặt Chương CÀI ĐẶT 5.1 Chuyển đổi lược đồ SQL Server sang MongoDB Hình 5.1 Lược đồ TPC-H SQL Server Xác định mục tiêu, lên kế hoạch Thiết kế lược đồ Chuyển đổi liệu Vận hành, bảo mật liệu Hình 5.2 Mơ hình chuyển đổi 5.1.1 Xác định mục tiêu, lên kế hoạch TPC-H tập liệu truy vấn chuẩn liên quan đến hoạt động kinh doanh: quản lý bán hàng, phân phối sản phẩm, thống kê doanh thu… Việc chuyển đổi phục vụ chức truy vấn Các truy vấn liên quan đến: - Giá cả, chương trình khuyến - Lợi nhuận, doanh thu - Nghiên cứu thị phần - Quản lý vận chuyển,… 62 Chương Cài đặt 5.1.2 Thiết kế lược đồ Xác định thực thể: PART, SUPPLIER, PARTSUPP, LINEITEM, ORDERS, CUSTOMER, NATION, REGION Xác định thực thể Dựa vào ý nghĩa thực thể mục đích ứng dụng, ta xác định thực thể là: PARTSUPP, LINEITEM Mối quan hệ phụ thuộc thực thể sau: Thực thể PARTSUPP o Thực thể PART (n:1) o Thực thể SUPPLIER (n:1) Thực thể NATION (n:1) - Thực thể REGION (n:1) Thực thể LINEITEM o Thực thể ORDERS (n:1) Thực thể CUSTOMER (n:1) - Thực thể NATION (n:1) o Thực thể REGION (n:1) Phân tích chuyển đổi lược đồ Ta có quan hệ thực thể sau: PARTSUPP – PART n – PARTSUPP – SUPPLIER n – SUPPLIER – NATION n – NATION – REGION n – LINEITEM – ORDERS n - ORDERS – CUSTOMER n – CUSTOMER – NATION n – NATION – REGION n – Với quan hệ n-1, ta thực tham chiếu Như vậy, ta có lược đồ sau chuyển đổi sau: 63 Chương Cài đặt Hình 5.3 Lược đồ TPC-H MongoDB 5.1.3 Chuyển đổi liệu Để chuyển đổi liệu từ SQL Server sang MongoDB, viết ứng dụng sau: Hình 5.4 Giao diện ứng dụng chuyển liệu SQL sang MongoDB 64 Chương Cài đặt Các bước thực hiện: Nhấn vào nút để nhập chuỗi kết nối sỡ liệu SQL Server MongoDB tương ứng Kiểm tra kết nối tới SQL Server cách nhận nút Kiểm tra kết nối tới MongoDB Server cách nhận nút Nhấn nút để hiển thị tên table Chọn table muốn chuyển đổi nhấn nút để chuyển đổi liệu sang MongoDB Lưu ý: Đảm bảo MongoDB Server chạy máy Hướng dẫn thiết lập MongoDB server: Trường hợp không mảnh lưu trữ (connection string: mongodb://localhost/TPCH) Trong teminal gõ để mở server: D:\huuloc\mongodb\bin\mongod.exe dbpath d:\huuloc\mongodb\data Trong teminal gõ để mở client: D:\huuloc\mongodb\bin\mongo.exe Trường hợp có mảnh lưu trữ (connection string: mongodb://localhost:27021/TPCHnew) Lưu ý: Cứ bước sau phải mở terminal không tắt services Bước 1: Cấu hình máy chủ Trong teminal gõ: D:\huuloc\mongodb\bin\mongod.exe port 27022 dbpath D:/huuloc/mongodb/bin/db/config/data configsvr Bước 2: Cài đặt điều khiển mảnh (Mongos) Trong teminal gõ: D:\huuloc\mongodb\bin\mongos.exe configdb localhost:27022 port 27021 chunkSize 65 Chương Cài đặt Bước 3: Khởi tạo mảnh liệu Tạo thêm thư mục db/shard1/data Mở terminal thứ 1: gõ D:\huuloc\mongodb\bin\mongod.exe port 27023 dbpath 27024 dbpath D:/huuloc/mongodb/bin/db/shard1/data shardsvr Tạo thêm thư mục db/shard2/data Mở termianl thứ : gõ D:\huuloc\mongodb\bin\mongod.exe port D:/huuloc/mongodb/bin/db/shard2/data shardsvr 5.1.4 Vận hành, bảo mật liệu Bước tạm thời thực hiên sau 5.2 Đánh giá Dữ liệu mẫu TPC-H tham khảo từ nguồn: http://www.tpc.org/tpch/default.asp Bảng 5.1 Dữ liệu SQL Bảng liệu Số lượng dòng Dung lượng (MB) PART 200,000 29 SUPPLIER 10,000 PARTSUPP 800,000 124 LINEITEM 6,001,215 904 ORDERS 1,500,000 181 CUSTOMER 150,000 26 NATION 25