1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận cơ sở dữ liệu phân tán (is211 m21) tìm hiểu về hệ quản trị cơ sở dữ liệu nosql rethinkdb

44 6 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 QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA HỆ THỐNG THÔNG TIN BÁO CÁO TIỂU LUẬN CƠ SỞ DỮ LIỆU PHÂN TÁN (IS211.M21) TÌM HIỂU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU NOSQL RETHINKDB GVHD: Th.S Nguyễn Hồ Duy Tri Nguyễn Thị Kim Yến Nguyễn Quang Đại Võ Trần Đại Phạm Đức Thể 19521306 19521308 19522253 TP.HỒ CHÍ MINH – 05/2022 Nguyễn Quang Đại, Võ Trần Đại, Phạm Đức Thể, Nguyễn Hồ Duy Tri, Nguyễn Thi Kim Yến NHẬN XÉT ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… Tìm Hiểu Về Hệ Quản Trị Cơ Sở Dữ Liệu NoSQL RethinkDB Mục lục NHẬN XÉT LỜI CẢM ƠN BẢNG PHÂN CÔNG CÔNG VIỆC CHƯƠNG 1: GIỚI THIỆU .6 1.1 Sơ lược hệ quản trị sở liệu RethinkDB 1.2 Lịch sử hình thành .7 1.3 Tác giả, tổ chức quản lý .8 1.4 Mơ hình lưu trữ 1.5 Ngôn ngữ thao tác với liệu 10 1.6 Cơ chế phân tán 11 1.6.1 Sharding Replication 11 1.6.2 Indexing 11 1.6.3 Thực truy vấn 12 1.7 Ứng dụng 14 1.8 Các câu lệnh thao tác với liệu 14 CHƯƠNG 2: HƯỚNG DẪN CÀI ĐẶT 16 2.1 Cấu hình máy 16 2.2 Cài đặt máy 17 2.3 Cài đặt cụm máy phân tán .29 CHƯƠNG 3: THỰC NGHIỆM MÔ PHỎNG PHÂN TÁN 35 3.1 Mơ tả tốn đặt với liệu 35 3.2 Mô tả cấu trúc liệu sử dụng 35 3.3 Các bước thực nghiệm .35 Tài liệu tham khảo 37 Nguyễn Quang Đại, Võ Trần Đại, Phạm Đức Thể, Nguyễn Hồ Duy Tri, Nguyễn Thi Kim Yến Phụ lụ Hình 1: Direct I/O .9 Hình 2: Query execution 13 Hình 3: Cấu hình máy ảo Ubuntu Oracle VM VirtualBox .16 Hình 4: Các lệnh cài đặt RethinkDB .18 Hình 5: Kiểm tra phiên cài đặt .19 Hình 6: Khởi tạo file config server 19 Hình 7: Đặt tên cho server lưu lại file 20 Hình 8: Cấp quyền đọc, viết thực thi file config cho Owner, Group Others 21 Hình 9: Khởi tạo server RethinkDB với config file 22 Hình 10: Web UI server 22 Hình 11: Cài đặt Python client driver 23 Hình 12: Khởi tạo, kích hoạt mơi trường ảo cài đặt rethinkdb lên 24 Hình 13: Xem xét tạo database driver 26 Hình 14: Ngắt kết nối server 27 Hình 15: Cài đặt cURL (Client URL) .27 Hình 16: Cài đặt ZeroTier .28 Hình 17: Kết nối vào Network VPN tạo sẵn 29 Hình 18: Ping qua lại máy 30 Hình 19: Tùy chỉnh file config cluster 30 Hình 20: Tùy chỉnh file config client 31 Hình 21: Web UI server sau kết nối server 31 Tìm Hiểu Về Hệ Quản Trị Cơ Sở Dữ Liệu NoSQL RethinkDB LỜI CẢM ƠN Chúng em muốn gửi lời cảm ơn đến Thầy, Cô giảng viên Trường Đại Học Công Nghệ Thông Tin, đặc biệt để hồn thành mơn học Cơ Sở Dữ Liệu Phân Tán (IS211.M21) học kỳ năm học 2021-2022, nhóm sinh viên bày tỏ lòng biết ơn sâu sắc đến hai vị giảng viên đáng kính Thạc sĩ Nguyễn Hồ Duy Tri chị Nguyễn Thị Kim Yến tận tình hướng dẫn, bảo chúng em suốt trình học tập mơn học Nhờ vào lịng tâm huyết, kiến thức chuyên môn sâu sắc cống hiến sư phạm tận tâm thầy mà nhóm sinh viên có tự tin, kiến thức để hồn thành đồ án lần Cơ sở liệu thuộc nhóm NoSQL nhóm sở liệu đại, hấp dẫn Xuất phát t‰ mục đích học tập, tìm hiểu kiến thức NoSQL nên nhóm định chọn đề tài “Tìm Hiểu Về Hệ Quản Trị Cơ Sở Dữ Liệu NoSQL RethinkDB”, nhằm có nhìn kiến thức sâu sắc lĩnh vực này, thỏa mãn đam mê tìm kiếm kiến thức bắt kịp xu hướng ngành Công Nghệ Thông Tin Trong trình thực đồ án, dựa kiến thức thầy, cô cung cấp lớp kết hợp với việc tự tìm hiểu cơng cụ kiến thức mới, nhóm cố gắng thực đồ án cách chỉnh chu, tốt Tuy vậy, sai sót chắn xảy Do đó, nhóm mong nhận góp ý, xây dựng sâu sắc t‰ quý vị thầy cơ, khơng nhằm hồn thiện kiến thức mà cịn để hồn thiện kĩ để áp dụng vào công việc tương lai Cuối cùng, xin chúc quý thầy, cô dồi sức khỏe thành công đường nghiệp cao quý Xin chân thành cảm ơn quý Thầy Cô Nguyễn Quang Đại, Võ Trần Đại, Phạm Đức Thể, Nguyễn Hồ Duy Tri, Nguyễn Thi Kim Yến BẢNG PHÂN CÔNG CÔNG VIỆC Thành viên Nguyễn Quang Đại Võ Trần Đại Phạm Đức Thể Công việc Làm video, kết nối phân tán, bảo mật RethinkDB Kết nối phân tán, hướng dẫn cài đặt, làm slide Làm word, slide, viết phần mở đầu chương Tỷ lệ đóng góp 10% 40% 50% Tìm Hiểu Về Hệ Quản Trị Cơ Sở Dữ Liệu NoSQL RethinkDB CHƯƠNG 1: GIỚI THIỆU Sơ lược hệ quản trị sở liệu RethinkDB NoSQL – Not Only SQL (không SQL), hệ sở liệu (CSDL) đời vào năm 2000 Nó khơng sử dụng mơ hình liệu truyền thống, với ngôn ngữ truy vấn quen thuộc SQL để quản lý liệu NoSQL thiết kế cho mô hình lưu trữ liệu phân bố nhiều máy, với kích thước liệu đến hàng petabytes Theo Eric Evans “NoSQL tạo để giải vấn đề mà hệ quản trị CSDL quan hệ (RDBMS) giải được” NoSQL đáp ứng ứng dụng mới, có đặc điểm khác so với ứng dụng truyền thống trước liệu tính chất Những ưu điểm CSDL truyển thống lại trở thành nhân tố cản trở cho ứng dụng sau NoSQL hệ CSDL với đặc điểm bật như: không quan hệ (Non relation – liệu khơng có mối quan hệ khóa ngoại khóa chính), liệu phân tán nhiều máy vật lý (Distribute), mã nguồn mở (open source), có khả mở rộng theo chiều ngang (Horizaontal scalable), lược đồ tự do, API đơn giản CSDL NoSQL lưu trữ, xử lý khối lượng liệu vùng rộng, t‰ kích thước nhỏ hàng petabytes, chịu lỗi cao đáp ứng thời gian thực [ CITATION Ngu19 \l 1033 ] RethinkDB CSDL mã nguồn mở NoSQL viết ngơn ngữ C++ Nó dành cho ứng dụng web thời gian thực yêu cầu kết truy vấn cập nhật liên tục RethinkDB sử dụng ngôn ngữ truy vấn tùy chỉnh gọi ReQL (một ngôn ngữ cụ thể sử dụng riêng cho Ruby, Python, Java JavaScript (bao gồm Node JS)) hỗ trợ ghép nối bảng hàm tổng hợp Nó hỗ trợ trộn truy vấn với biểu thức JavaScript hàm map-reduce[CITATION Dat22 \l 1033 ] RethinkDB có khả mở rộng phạm vi, thiết kế cho tảng ứng dụng thời gian thực Nó đảo ngược kiến CSDL truyền thống cách đưa mơ hình truy cập thú vị – thay thăm dị ý kiến để thay đổi, nhà phát triển Nguyễn Quang Đại, Võ Trần Đại, Phạm Đức Thể, Nguyễn Hồ Duy Tri, Nguyễn Thi Kim Yến yêu cầu RethinkDB liên tục đẩy kết truy vấn cập nhật đến ứng dụng thời gian thực Kiến trúc đẩy thời gian thực RethinkDB giúp giảm đáng kể thời gian công sức để xây dựng ứng dụng thời gian thực[CITATION Fre22 \m ola14 \l 1033 ] Ngoài việc thiết kế t‰ đầu cho ứng dụng thời gian thực, RethinkDB cung cấp ngôn ngữ truy vấn linh hoạt, hoạt động trực quan API giám sát, đồng thời dễ cài đặt học tập[CITATION Fre22 \l 1033 ] Lịch sử hình thành RethinkDB thành lập vào 01/05/2009, Slava Akhmechet Michael Glukhovsky, đến 06/2009, RethinkDB tham gia vào Y Combinator S09 Batch Công ty nhận số tiền tài trợ Seed không xác định thời điểm t‰ Y Combinator [ CITATION Ret221 \l 1033 ] Phiên RethinkDB công cụ lưu trữ tối ưu hóa SSD cho MySQL Sau đó, họ chuyển sang xây dựng Hệ Quản Trị Cơ Sở Dữ Liệu (DataBase Management System - DBMS) tài liệu MongoDB Bản phát hành kiến trúc RethinkBD DBMS vào 11/2012 Phiên hỗ trợ mơ hình liệu JSON, hỗ trợ tính qn tức thì, Hadoop-style map/reduce, sharding, multi-datacenter replication chuyển đổi dự phòng Vào 06/2013, RethinkDB giới thiệu tính cho ReQL, chằng hạn kiểm soát truy cập bản, đối sanh biểu thức quy, hoạt động mảng lấy mẫu ngẫu nhiên Phiên 2.0 RethinkDB vào năm 2012 phiên “production-ready” Vào 8/2015, có hỗ trợ chuyển đổi dự phòng giao thức Raft-based Vào 11/2015, RethinkDB giới thiệu nguồn cấp liệu thay đổi nguyên tử (atomic changefeeds), bao gồm giá trị có t‰ CSDL vào kết nguồn cấp liệu thay đổi sau chuyển đổi nguyên tử sang cập nhật trực tuyến Vào 10/2016, công ty RethinkDB đóng cửa Lý họ khơng thể xây dựng doanh nghiệp bền vững Sau năm, mã nguồn mua Cloud Native Computing Tìm Hiểu Về Hệ Quản Trị Cơ Sở Dữ Liệu NoSQL RethinkDB Foundationn (CNCF), sau phát hành lại mã nguồn mở với nỗ lực cộng đồng vào 7/2017[CITATION Dat22 \l 1033 ] Tác giả, tổ chức quản lý RethinkDB thành lập vào 01/05/2009, Slava Akhmechet Michael Glukhovsky, đến 06/02/2017 công ty mua lại CNCF với giá báo cáo $25,000[ CITATION Ret221 \l 1033 ] Hiện tại, RethinkDB thuộc quyền sở hữu Tố chức CNCF CNCF dự án Linux Foundation thành lập vào năm 2015, họ chuyên giúp đỡ công nghệ lưu trữ tiến điều chỉnh công nghiệp khoa học xung quanh cơng nghệ Nó cơng bố với Kubernetes 1.0, trình quản lý cụm vùng chứa mã nguồn mở, Google đóng góp cho Linux Foundation hạt giống cơng nghệ Các thành viên sáng lập bao gồm Google, CoreOS, Mesosphere, Red Hat, Twitter, Huawei, Intel, Cisco, IBM, Docker, Univa VMware Ngày nay, CNCF hỗ trợ 450 thành viên[ CITATION Clo22 \l 1033 ] Mơ hình lưu trữ Mơ hình Dữ liệu (Data Model): RethinkDB lưu trữ tài liệu JSON với chuỗi nhị phân đĩa Các kiểu liệu RethinkDB hỗ trợ là: number (double precision floating-point), string, boolean, array, object, null [ CITATION Dat22 \l 1033 ] Kiến trúc Lưu trữ (Storage Architecture): Dữ liệu lưu trữ công cụ lưu trữ có cấu trúc nhật ký xây dựng đặc biệt cho RethinkDB lấy cảm hứng t‰ kiến trúc BTRFS (B-Tree File System), hệ thống tệp dựa nguyên tắc copy-onwrite (COW) Công cụ lưu trữ có số lợi ích so với tùy chọn có sẵn khác, bao gồm fully concurrent garbage compactor, low CPU overhead, efficient multicore operation, SSD optimization, Power failure recovery, Data consistency in case of failure support for multiversion concurrency control Công cụ lưu trữ sử dụng với công cụ nhớ đệm B-Tree-aware tùy chỉnh cho phép kích thước tệp lớn nhiều bậc so với Nguyễn Quang Đại, Võ Trần Đại, Phạm Đức Thể, Nguyễn Hồ Duy Tri, Nguyễn Thi Kim Yến dung lượng nhớ khả dụng RethinkDB hoạt động trên TB liệu với khoảng 10 GB RAM trống.[CITATION Arc22 \l 1033 ] Mô hình Lưu trữ (Storage Model): RethinkDB tổ chức liệu dựa hàng, giống sở liệu truyền thống Nó khơng có cơng cụ lưu trữ hướng cột[ CITATION Dat22 \l 1033 ] File lưu trữ đĩa chương trình yêu cầu, hệ điều hành trước tiên đưa tệp vào nhớ để đọc nhanh Hệ điều hành đọc trực tiếp t‰ ổ đĩa, điều làm chậm thời gian phản hồi hoạt động I/O tốn Do đó, hệ điều hành đưa vào nhớ để hoạt động Đây gọi nhớ đệm (cache) CSDL thường quản lý nhớ đệm liệu ứng dụng chúng không cần hệ điều hành lưu vào nhớ đệm cho chúng Trong trường hợp vậy, trình lưu vào đệm hai nơi (bộ nhớ đệm ứng dụng) trở thành yếu tố phụ liệu chuyển lần đến nhớ sau đệm ứng dụng Việc đệm kép liệu dẫn đến việc tiêu thụ nhiều CPU tải nhớ Direct I/O hệ thống tập tin dành cho ứng dụng muốn tránh đệm nhớ đọc trực tiếp file t‰ ổ đĩa Khi sử dụng direct I/O, liệu truyền trực tiếp đến đệm ứng dụng thay đệm nhớ, thể sơ đồ sau[CITATION Sha16 \l 1033 ]: Nguyễn Quang Đại, Võ Trần Đại, Phạm Đức Thể, Nguyễn Hồ Duy Tri, Nguyễn Thi Kim Yến Hình 17: Kết nối vào Network VPN tạo sẵn Sau kết nối thành công vào VPN, ta kiểm tra IP máy VPN cấp lệnh: hostname -I Tiến hành ping thử lẫn máy Network lệnh: ping để kiểm tra kết nối Hình 18: Ping qua lại máy 29 Tìm Hiểu Về Hệ Quản Trị Cơ Sở Dữ Liệu NoSQL RethinkDB Để kết nối phân tán diễn ra, ta phải tùy chỉnh file đường dẫn /etc/rethinkdb/instances.d/.conf máy sau: Máy cluster: Thêm dòng: bind=all Hình 19: Tùy chỉnh file config cluster Máy client: Thêm dịng: bind=all Join=:29015 Hình 20: Tùy chỉnh file config client Tiến hành lưu file lại Sau terminal chạy lại lệnh: rethinkdb –config-file /etc/rethinkdb/instances.d/.conf máy cluster client Sau vào browser Firefox theo link: localhost:8080 để xem kết quả: 30 Nguyễn Quang Đại, Võ Trần Đại, Phạm Đức Thể, Nguyễn Hồ Duy Tri, Nguyễn Thi Kim Yến Hình 21: Web UI server sau kết nối server 31 Tìm Hiểu Về Hệ Quản Trị Cơ Sở Dữ Liệu NoSQL RethinkDB CHƯƠNG 3: THỰC NGHIỆM MƠ PHỎNG PHÂN TÁN Mơ tả toán đặt với liệu Xây dựng sở liệu phân tán quản lí bán hàng văn phịng phẩm với chi nhánh nằm khu vực Thành phố Hồ Chí Minh Sau ta thực tạo hệ quản trị CSDL phân tán với hai chi nhánh RethinkDB Mô tả cấu trúc liệu sử dụng Cơ sở liệu quản lý bán hàng gồm bảng: KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK )  Quan hệ khách hàng lưu trữ thông tin khách hàng thành viên gồm có thuộc tính: mã khách hàng, họ tên, địa chỉ, số điện thoại, ngày sinh, ngày đăng ký doanh số (tổng trị giá hóa đơn khách hàng thành viên này) NHANVIEN (MANV, HOTEN, NGVL, SODT)  Mỗi nhân viên bán hàng cần ghi nhận họ tên, ngày vào làm, điện thọai liên lạc, nhân viên phân biệt với mã nhân viên SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)  Mỗi sản phẩm có mã số, tên gọi, đơn vị tính, nước sản xuất giá bán HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) 32 Nguyễn Quang Đại, Võ Trần Đại, Phạm Đức Thể, Nguyễn Hồ Duy Tri, Nguyễn Thi Kim Yến  Khi mua hàng, khách hàng nhận hóa đơn tính tiền, có số hóa đơn, ngày mua, nhân viên bán hàng, trị giá hóa đơn mã số khách hàng khách hàng thành viên CTHD (SOHD,MASP,SL)  Diễn giải chi tiết hóa đơn gồm có sản phẩm với số lượng Các bước thực nghiệm - Khởi động RethinkDB (máy 1) - Mở RethinkDB client driver (Python) 33 Tìm Hiểu Về Hệ Quản Trị Cơ Sở Dữ Liệu NoSQL RethinkDB Hình 22: Viết Hình 23: Viết - Insert liệu  Tạo sở liệu QuanLyBanHang: 34 Nguyễn Quang Đại, Võ Trần Đại, Phạm Đức Thể, Nguyễn Hồ Duy Tri, Nguyễn Thi Kim Yến Hình 24: Viết  Tạo bảng: Hình 25: Viết  Nhập liệu: 35 Tìm Hiểu Về Hệ Quản Trị Cơ Sở Dữ Liệu NoSQL RethinkDB Hình 26: Viết Hình 27: Viết 36 Nguyễn Quang Đại, Võ Trần Đại, Phạm Đức Thể, Nguyễn Hồ Duy Tri, Nguyễn Thi Kim Yến Hình 28: Viết Hình 29: Viết 37 Tìm Hiểu Về Hệ Quản Trị Cơ Sở Dữ Liệu NoSQL RethinkDB Hình 30: Viết - Kết nối phân tán: Xem phần 2.3 - Thêm dòng liệu vào bảng KhachHang (Máy 2): Hình 31: Viết - Đọc liệu vừa thêm (Máy 1) 38 Nguyễn Quang Đại, Võ Trần Đại, Phạm Đức Thể, Nguyễn Hồ Duy Tri, Nguyễn Thi Kim Yến Hình 32: Viết - Xóa liệu thêm vào (Máy 1) Hình 33: Viết - Thử đọc liệu vừa xóa (Máy 2) 39 Tìm Hiểu Về Hệ Quản Trị Cơ Sở Dữ Liệu NoSQL RethinkDB Hình 34: Viết Kiểm tra liệu (Máy 1) Hình 35: Viết 40 Nguyễn Quang Đại, Võ Trần Đại, Phạm Đức Thể, Nguyễn Hồ Duy Tri, Nguyễn Thi Kim Yến - Cập nhật liệu (Máy 2) Hình 36: Viết - Kiểm tra liệu sửa (Máy 1) Hình 37: Viết 41 Tìm Hiểu Về Hệ Quản Trị Cơ Sở Dữ Liệu NoSQL RethinkDB 42 Nguyễn Quang Đại, Võ Trần Đại, Phạm Đức Thể, Nguyễn Hồ Duy Tri, Nguyễn Thi Kim Yến Tài liệu tham khảo [1] G T A Nguyn, C s d liờ ău nõng cao : Ti liờ ău tham kho (Nosol - Newsol Blockchain) / Nguyễn Gia Tuấn Anh, Mai Văn Cường, Bùi Danh Hường, TP Hồ Chí Minh: Đại học Quốc gia TP Hồ Chí Minh, 2019 [2] "RethinkDB," Database of Databases, 2022 [Online] Available: https://dbdb.io/db/rethinkdb [Accessed 10 05 2022] [3] "Frequently asked questions," RethinkDB, 2022 [Online] Available: https://rethinkdb.com/faq [Accessed 10 05 2022] [4] olaugh, "Giới thiệu hệ quản trị sở liệu RethinkDB," Viblo, 14 05 2014 [Online] Available: https://viblo.asia/p/gioi-thieu-ve-he-quan-tri-co-so-du-lieurethinkdb-jvEla4O6Zkw [Accessed 10 05 2022] [5] "RethinkDB," GOLDEN, 2022 [Online] Available: https://golden.com/wiki/RethinkDB-4KEEZZ [Accessed 10 05 2022] [6] "Cloud Native Computing Foundation," Wikipedia, 2022 [Online] Available: https://en.wikipedia.org/wiki/Cloud_Native_Computing_Foundation [Accessed 2022 05 10] [7] "Architecture FAQ," RethinkDB, 2022 [Online] Available: https://rethinkdb.com/docs/architecture [Accessed 10 05 2022] [8] S Shaikh, Mastering RethinkDB, Birmingham: Packt Publishing Ltd., 2016 [9] "Introduction to ReQL," RethinkDB, 2022 [Online] Available: https://rethinkdb.com/docs/introduction-to-reql/ [Accessed 10 05 2022] [10] "NoSQL," Wikipedia, 2022 [Online] Available: https://vi.wikipedia.org/wiki/NoSQL [Accessed 10 05 2022] 43

Ngày đăng: 17/08/2023, 10:33

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

TÀI LIỆU LIÊN QUAN

w