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

Đề tài tìm hiểu về csdl nosql tìm hiểu và cài đặtcassandra cho ví dụ minh họa thiết kế csdl vàthực hiện các thao tác

50 10 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

Thông tin cơ bản

Tiêu đề Tìm Hiểu Về CSDL NoSQL. Tìm Hiểu Và Cài Đặt Cassandra. Cho Ví Dụ Minh Họa Thiết Kế CSDL Và Thực Hiện Các Thao Tác
Tác giả Ngô Thị Ái Nhi, Trần Ngọc Phương Nhi, Nguyễn Đỗ Hoài My, Nguyễn Thị Mỹ, Hoàng Mỹ Quyên, Đào Thị Thanh Phương, Đặng Đỗ Thái Nguyên, Nguyễn Chí Thanh
Người hướng dẫn GVHD: Lê Quang Thái
Trường học Trường Đại Học Ngân Hàng Thành Phố Hồ Chí Minh
Chuyên ngành Phân Tích Dữ Liệu Lớn
Thể loại Đề Tài
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 50
Dung lượng 14,75 MB

Nội dung

NoSQL cung cấp cơ chế mô hình hoá, lưu trữ và truy xuất dữ liệu theo cáchthức khác so với sử dụng các bảng trong Cơ sở dữ liệu quan hệ.. NoSQL bao gồm rất nhiều công nghệ cơ sở dữ liệu k

Trang 1

NGÂN HÀNG NHÀ NƯỚC VIỆT NAM BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NGÂN HÀNG THÀNH PHỐ HỒ CHÍ MINH

-THUYẾT MINH

ĐỀ TÀI: TÌM HIỂU VỀ CSDL NoSQL TÌM HIỂU VÀ CÀI ĐẶT CASSANDRA CHO VÍ DỤ MINH HỌA THIẾT KẾ CSDL VÀ THỰC HIỆN CÁC THAO TÁC

NHÓM THỰC HIỆN: NHÓM 02

HỌC PHẦN: PHÂN TÍCH DỮ DIỆU LỚN

Trang 3

MỤC LỤC

I Tìm hiểu cơ sở dữ liệu NoSQL 1

1 Khái niệm 1

2 Vì sao nên sử dụng cơ sở dữ liệu NoSQL 2

3 Các loại cơ sở dữ liệu NoSQL 2

4 Ví dụ về hoạt động của NoSQL 4

Xác thực với MongoDB Atlas 4

Tạo một cụm trong MongoDB 4

Truy vấn cơ sở dữ liệu 5

Data Explorer 6

5 Ưu điểm và nhược điểm của NoSQL 6

II Cài đặt CASSANDRA 7

1 CÁCH CÀI ĐẶT MÁY ẢO VMWARE 7

Trang 4

1 Tạo Keyspace: 41

2 Tạo và chỉnh sửa bảng: 42

2.1 Tạo bảng: 42

2.2 Xem cấu trúc bảng: 42

2.3 Chỉnh sửa bảng: 42

3 Truy vấn dữ liệu: 43

4 Chèn và cập nhật dữ liệu trong bảng: 43

4.1 Chèn dữ liệu sử dụng cú pháp sau: 43

4.2 Cập nhật dữ liệu: 44

5 Xóa dữ liệu: 44

Trang 5

I Tìm hiểu cơ sở dữ liệu NoSQL

1 Khái niệm

NoSQL là một khái niệm chỉ về một lớp các hệ cơ sở dữ liệu không sử dụng môhình quan hệ (RDBMS) RDBMS vốn tồn tại khá nhiều nhược điểm như cóhiệu năng không tốt nếu kết nối dữ liệu nhiều bảng lại hay khi dữ liệu trong mộtbảng là rất lớn

NoSQL ra đời năm 1998 bởi Carlo Strozzi khi ông lập mới một hệ cơ sở dữ liệuquan hệ mã nguồn mở nhanh và nhẹ không liên quan đến SQL Vào năm 2009,Eric Evans, nhân viên của Rackspace giới thiệu lại thuật ngữ NoSQL khi JohanOskarsson của Last.fm muốn tổ chức một hội thảo về cơ sở dữ liệu nguồn mởphân tán Thuật ngữ NoSQL đánh dấu bước phát triển của thế hệ CSDL mới:phân tán (distributed) + không ràng buộc (non-relational)

NoSQL cung cấp cơ chế mô hình hoá, lưu trữ và truy xuất dữ liệu theo cáchthức khác so với sử dụng các bảng trong Cơ sở dữ liệu quan hệ

NoSQL bao gồm rất nhiều công nghệ cơ sở dữ liệu khác nhau được phát triển

để đáp ứng các yêu cầu được đưa ra trong việc xây dựng các ứng dụng hiện đại:

- Các nhà phát triển đang làm việc với các ứng dụng tạo ra khối lượng lớn cácloại dữ liệu mới, thay đổi nhanh chóng - dữ liệu có cấu trúc, bán cấu trúc,không cấu trúc và đa hình

- Lâu rồi là chu kỳ phát triển thác nước mười hai đến mười tám tháng Bâygiờ các nhóm nhỏ làm việc trong các lần chạy nước rút nhanh, lặp lại nhanhchóng và đẩy mã mỗi tuần hoặc hai, một số thậm chí nhiều lần mỗi ngày

Trang 6

Cơ sở dữ liệu quan hệ không được thiết kế để đối phó với các thách thức thayđổi quy mô rất nhanh trong các ứng dụng hiện đại, chúng cũng không được xâydựng để tận dụng khả năng lưu trữ và xử lý dữ liệu hiện có.

2 Vì sao nên sử dụng cơ sở dữ liệu NoSQL

Cơ sở dữ liệu NoSQL là lựa chọn cực kỳ thích hợp cho nhiều ứng dụng hiệnđại, ví dụ như di động, web và trò chơi đòi hỏi phải sử dụng cơ sở dữ liệu cực

kỳ thiết thực, linh hoạt, có khả năng thay đổi quy mô và hiệu năng cao để đemđến cho người dùng trải nghiệm tuyệt vời

- Linh hoạt: Cơ sở dữ liệu NoSQL thường cung cấp các sơ đồ linh hoạt giúpcông đoạn phát triển nhanh hơn và có khả năng lặp lại cao hơn Mô hình dữliệu linh hoạt biến cơ sở dữ liệu NoSQL thành lựa chọn lý tưởng cho dữ liệukhông được tổ chức thành cấu trúc hoặc có cấu trúc chưa hoàn chỉnh

- Khả năng thay đổi quy mô: Cơ sở dữ liệu NoSQL thường được thiết kế đểtăng quy mô bằng cách sử dụng các cụm phần cứng được phân phối thay vìtăng quy mô bằng cách bổ sung máy chủ mạnh và tốn kém Một số nhà cungcấp dịch vụ đám mây xử lý các hoạt động này một cách không công khaidưới dạng dịch vụ được quản lý đầy đủ

- Hiệu năng cao: Cơ sở dữ liệu NoSQL được tối ưu hóa theo các mô hình dữliệu cụ thể và các mẫu truy cập giúp tăng hiệu năng cao hơn so với việc cốgắng đạt được mức độ chức năng tương tự bằng cơ sở dữ liệu quan hệ

- Cực kỳ thiết thực: Cơ sở dữ liệu NoSQL cung cấp các API và kiểu dữ liệucực kỳ thiết thực được xây dựng riêng cho từng mô hình dữ liệu tương ứng

3 Các loại cơ sở dữ liệu NoSQL

- Khóa–giá trị: Cơ sở dữ liệu khóa–giá trị có khả năng phân mảnh cao và chophép thay đổi quy mô theo chiều ngang ở các quy mô lớn mà các loại hình

cơ sở dữ liệu khác không thể làm được Mô hình dữ liệu khóa–giá trị đượcdùng cho trò chơi, công nghệ quảng cáo và đặc biệt thích hợp cho IoT.Amazon DynamoDB được thiết kế để có độ trễ ổn định chỉ vài mili giây chokhối lượng công việc thuộc quy mô bất kỳ Hiệu năng ổn định này là lý do

Trang 7

Cơ sở dữ

20

Trang 8

chính để di chuyển tính năng Stories của Snapchat (kể cả khối lượng côngviệc ghi lưu trữ lớn nhất của Snapchat) sang DynamoDB.

- Tài liệu: Trong mã ứng dụng, dữ liệu thường được biểu diễn dưới dạng mộtđối tượng hoặc văn bản dạng JSON vì đây là mô hình dữ liệu hiệu quả vàtrực quan cho các nhà phát triển Cơ sở dữ liệu văn bản giúp nhà phát triển

dễ dàng lưu trữ và truy vấn dữ liệu trong một cơ sở dữ liệu bằng cách sửdụng cùng một định dạng mô hình văn bản họ sử dụng trong mã ứng dụngcủa mình Tính chất linh hoạt, bán cấu trúc và phân cấp của các văn bản và

cơ sở dữ liệu văn bản cho phép chúng phát triển phù hợp với yêu cầu củaứng dụng Mô hình văn bản phát huy hiệu quả với danh mục, hồ sơ ngườidùng và hệ thống quản lý nội dung, nơi từng văn bản là duy nhất và pháttriển theo thời gian và MongoDB là các cơ sở dữ liệu văn bản phổ biếncung cấp các API mạnh mẽ và trực quan để phát triển linh hoạt và lặplại.Amazon DocumentDB (với khả năng tương thích MongoDB)

- Đồ thị: Mục đích của cơ sở dữ liệu đồ thị là giúp việc dựng và chạy ứngdụng hoạt động với các bộ dữ liệu có khả năng kết nối cao trở nên dễ dàng

Cơ sở dữ liệu đồ thị thường được sử dụng cho các đồ thị tri thức, mạng xãhội, công cụ đề xuất và phát hiện lừa đảo Amazon Neptune là dịch vụ cơ sở

dữ liệu đồ thị được quản lý đầy đủ Neptune hỗ trợ cả mô hình Đồ thị thuô ‰ctính lẫn Framework mô tả tài nguyên (RDF), cung cấp cho người dùng lựachọn hai API đồ thị: TinkerPop và RDF/SPARQL Các cơ sở dữ liệu đồ thịphổ biến gồm có Neo4j và Giraph

- Trong bộ nhớ: Ứng dụng trò chơi và công nghệ quảng cáo đã sử dụng loại

Cơ sở dữ liệu này trong nhiều trường hợp như bảng xếp hạng, kho lưu trữphiên và phân tích thời gian thực yêu cầu thời gian phản hồi đạt mức microgiây và lưu lượng có thể đạt mức đỉnh điểm vào bất kỳ thời điểm nào.Amazon MemoryDB for Redis là một dịch vụ cơ sở dữ liệu trong bộ nhớ,bền, tương thích với Redis có chức năng đảm bảo độ trễ của thao tác đọctính bằng micro giây, độ trễ của thao tác ghi chưa đến mười mili giây và độbền trên nhiều vùng sẵn sàng MemoryDB được xây dựng với mục đích đem

Preparing Vocabulary FOR UNIT 6

10

Trang 9

lại độ bền và hiệu suất cực nhanh để bạn có thể sử dụng làm cơ sở dữ liệuchính cho các ứng dụng vi dịch vụ, hiện đại Amazon ElastiCache là dịch vụ

bộ nhớ đệm trong bộ nhớ được quản lý hoàn toàn, tương thích với cả Redis

và Memcached để phục vụ khối lượng công việc có độ trễ thấp, thông lượngcao Các khách hàng yêu cầu khả năng phản hồi theo thời gian thực cho ứngdụng của mình như Tinder phụ thuộc vào những kho lưu trữ dữ liệu trong bộnhớ hơn là lưu trữ dữ liệu trên đĩa Amazon DynamoDB Accelerator (DAX)

là ví dụ khác về kho dữ liệu được xây dựng chuyên dụng DAX giúpDynamoDB đọc nhanh hơn rất nhiều

- Tìm kiếm: Nhiều ứng dụng xuất nhật ký để giúp nhà phát triển khắc phục sự

cố Dịch vụ OpenSearch của Amazon được xây dựng nhằm mục đích cungcấp hình ảnh trực quan và phân tích gần như trong thời gian thực về các dữliệu do máy tạo bằng cách lập chỉ mục, tập hợp và tìm kiếm trong các nhật

ký và chỉ số bán cấu trúc Dịch vụ OpenSearch của Amazon cũng là công cụtìm kiếm mạnh mẽ, có hiệu suất cao cho các trường hợp sử dụng tìm kiếmtoàn bộ văn bản Expedia đang sử dụng trên 150 miền Dịch vụ OpenSearchcủa Amazon, 30 TB dữ liệu và 30 tỷ văn bản cho nhiều chức năng đóng vaitrò quan trọng, từ theo dõi và khắc phục sự cố trong khâu vận hành đến tối

ưu hóa quá trình theo dấu và định giá chồng ứng dụng được phân phối

4 Ví dụ về hoạt động của NoSQL

NoSQL có nhiều loại, tuy nhiên DB – Engines đánh giá là phổ biến nhất thếgiới

Trang 10

Cụm là một vị trí để lưu trữ dữ liệu ở MongoDB Cách tạo khá đơn giản, cóthể sử dụng cách thủ công hoặc dùng ngôn ngữ lập trình để tạo một cụm Khi

đã tạo thành công, dữ liệu sẽ bắt đầu được lưu trữ

Truy vấn cơ sở dữ liệu

Truy vấn bằng Atlas Data Explorer:

Bước 1: Điều hướng đến Data Explorer xuất hiện bảng điều khiển.

Bước 2: Click vào sample – mflix ở bên trái trong bảng điều khiển sẽ hiển thị

các bộ sưu tập của cơ sở dữ liệu

Bước 3: Chọn bộ sưu tập movies, lúc này ở bên phải bảng sẽ hiển thị 20 kết

quả tìm thấy đầu tiên

Bước 4: Truy vấn bộ phim “Pride and Prejudice” bằng cách nhập {title:

“Pride and Prejudice”} vào thanh Filter và nhấn Apply Kết quả là bạn đãtruy vấn thành công cơ sở dữ liệu NoSQL

Trang 11

Data Explorer

Có thể thực hiện nhiều tác vụ trong MongoDB và Atlas bằng Data Explorernhư thêm, chỉnh sửa và xóa tài liệu Ngoài ra còn có thể mở chế độMongoDB Charts để trực quan hóa dữ liệu của mình

5 Ưu điểm và nhược điểm của NoSQL

Trang 12

- Sử dụng kiến trúc quy mô phân tán theo vị trí địa lý thay vì kiến trúcnguyên khối tốn kém.

- Không cần máy chỉ hiệu năng cao chuyên dụng

- Không giới hạn lưu trữ dữ liệu và người dùng hệ thống (High Scalability)

- NoSQL chấp nhận lưu trữ dữ liệu trùng lặp nên khi một node (commoditymachine) nào đó bị chết cũng sẽ không ảnh hưởng tới toàn bộ hệ thống(High Availability - HA), khả năng tái tạo dễ dàng

- Mô hình hóa, truy vấn và deploy linh hoạt, việc bổ sung thêm/loại bỏ cácnode, hệ thống sẽ tự động nhận biết để lưu trữ mà không cần phải can thiệpthủ công

- Thiết kế phân tán nên NoSQL giảm thiểu tối đa được các phép tính toán,I/O liên quan kết hợp với batch processing đảm bảo đủ xử lý các yêu cầu dữliệu

- Có thể đảm nhận vai trò như một nguồn dữ liệu chính cho các ứng dụngtrực tuyến

 Nhược điểm:

- NoSQL chấp nhận tính nhất quán yếu do vậy cập nhật mới không đảm bảorằng các truy xuất sau đó sẽ thấy ngay được sự thay đổi Sau một khoảngthời gian lan truyền (không xác định) thì tính nhất quán cuối cùng của dữliệu mới sẽ được đảm bảo

- Không có quy tắc chuẩn hóa và lược đồ cụ thể nên trách nhiệm sẽ đượcchuyển từ CSDL sang các nhà phát triển ứng dụng

- Khả năng truy vấn hạn chế, không hoạt động tốt với dữ liệu quan hệ

- Khi khối lượng dữ liệu tăng lên, rất khó để duy trì các giá trị duy nhất

- Hạn chế kỹ năng chuyên môn mở một mức nào đó đối với người sử dụng,các nhà phát triển mới

- Khó khăn khi thay đổi hệ thống trong quá trình làm việc

II Cài đặt CASSANDRA

1 CÁCH CÀI ĐẶT MÁY ẢO VMWARE

Trang 13

Đầu tiên truy cập vào đường link để tải phần mềm cài đặt máy ảo VMware:https://rg.link/mKIZBVn

Giải nén file ra với pass là: #ainhi205

Trang 14

Hình 1 Chạy file được giải nén ra

Hình 2 Bấm Next

Bấm next

Trang 15

Hình 3.Đồng ý các điều khoản của VMware

Trang 16

Hai cái này dành cho chuyên gia, chúng ta là những người dùng cơ bản nên là khôngcần tích.

Trang 18

Chọn Finish đẻ hoàn tất việc cài đặt VMware.

Khởi động phầm mềm bằng cách double chuột vào icon ngoài desktop hoặc gõ từ khóaVMware trên thanh tìm kiếm để khởi động phầm mềm

Trang 19

Cần nhập key để bắt đầu sử dụng phầm mềm.

KEY: ZF3R0-FHED2-M80TY-8QYGC-NPKYF

Trang 20

Sau khi tải xong ta bắt đầu cài vào máy ảo

Click vào “ Create a new Virtual Machine” để khởi tạo 1 máy ảo mới.

Chọn “custom” để có thể set up cấu hình

Trang 21

Next

Trang 22

Chọn Browse sau đó chọn đường dẫn thư mục lúc nảy đã tải hệ điều hành ubuntu20.04 về.

Click file mới tải về

Next

Trang 23

Đặt tên

Trang 24

Chọn số nhân và số luồng CPU cho máy ảo

Chỉnh theo nhu cầu

Mình hay để 2-2

Chọn số ram cấp phát cho máy ảo

Mình hay để 4096mb

Trang 25

Next

Trang 26

Next

Trang 27

Cấp phát bộ nhớ cho máy ảo

Chọn size theo nhu cầu nhưng tốt nhất là > 10GB

Trang 28

Next

Trang 29

Finish

Trang 30

Máy ảo bắt đầu khởi tạo

Enter để thiết lập hệ điều hành

Trang 31

Chờ đợi là hạnh phúc, chờ nó hiện màn hình như vầy và nổi nhạc là được

Trang 32

Install

Chọn ngôn ngữ bạn muốn sữ dụng ở đây mình dùng Enghlis ( US ) cho dễ dùng Vì nókhông có tiếng Việt

Trang 35

Chọn khu vực quốc gia để thiết lập thời gian

Trang 37

Đợi cho nó cài đặt xong

Sau khi hoàn tất quá trình cài đặt hệ thống sẽ yêu cầu khởi động lại máy ảo

Trang 38

Đăng nhập vào máy của bạn

Sau khi khởi động lại ta sẽ vào được máy ảoTiếp theo chúng ta sẽ cài đặt cassandra vào máy ảo

Trang 39

2 CÀI ĐẶT CASSANDRA TRÊN MÁY ẢO VMWARE

Bước 1: Cài đặt Java trên Ubuntu

Quá trình cài đặt Apache Cassandra bắt đầu bằng việc kiểm tra xem Java đã được càiđặt chưa Cụ thể hơn, OpenJDK là thứ cần thiết để hoạt động liền mạch với ApacheCassandra Việc cài đặt một phiên bản khác có nhiều khả năng gây ra lỗi trong quátrình cấu hình

Để kiểm tra xem Java đã được cài đặt hay chưa, hãy chạy lệnh:

Trang 40

Để cài đặt OpenJDK, hãy thực hiện lệnh apt sau.

$ sudo apt-get update

Trang 41

Tiếp theo là câu lệnh:

$ sudo apt install openjdk-8-jdk

Trang 42

Nhập “ Y “ đề đồng ý cài đặt.

Một lần nữa, xác nhận rằng Java đã được cài đặt bằng cách chạy lệnh

Sau khi cài xong ta sẽ kiểm tra lại

Kiểm tra phiên bản Java trong Ubuntu

Bước 2: Cài đặt Apache Cassandra trong Ubuntu

Trang 43

Với Java đã được cài đặt, chúng ta sẽ tiến hành cài đặt Apache Cassandra Đầu tiên,hãy cài đặt gói apt-transport-https để cho phép truy cập các kho thông qua giao thứchttps.

$ sudo apt install apt-transport-https

Tiếp theo, nhập khóa GPG bằng lệnh wget sau như được hiển thị

$ wget q O https://www.apache.org/dist/cassandra/KEYS | sudo aptkey add

-Sau đó, thêm kho lưu trữ của Apache Cassandra vào tệp danh sách nguồn của hệ thốngnhư được hiển thị

$ sudo sh -c 'echo "deb http://www.apache.org/dist/cassandra/debian 311x main">/etc/apt/sources.list.d/cassandra.list'

Trước khi cài đặt Apache Cassandra, bạn cần cập nhật danh sách gói trước

$ sudo apt update

Sau đó cài đặt cơ sở dữ liệu NoSQL bằng lệnh:

$ sudo apt install cassandra

Trang 44

$ sudo systemctl status cassandra

Kết quả bên dưới xác nhận rằng Cassandra đang hoạt động như mong đợi

Kiểm tra Trạng thái Apache Cassandra

Ngoài ra, bạn có thể xác minh số liệu thống kê của nút bằng cách chạy lệnh

$ sudo nodetool status

Kiểm tra trạng thái nodetool

Để đăng nhập vào Cassandra trên thiết bị đầu cuối, sử dụng lệnh:

$ cqlsh

Trang 45

III Thao tác với cơ sở dữ liệu và các ví dụ minh họa:

1 Tạo Keyspace:

Trước khi tạo Keyspace bạn phải đăng nhập vào Cassandra, cách đăng nhập các bạn có

thể xem bài viết tạo user và cấp quyền nhé.

pháp:

cassandra@cqlsh> CREATE KEYSPACE keyspace_name WITH replication ={'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true;hoặc

cassandra@cqlsh> CREATE KEYSPACE keyspace_name WITH replication = { 'class': 'NetworkTopologyStrategy'[, '<data center>' : <integer>, '<data center>' : <integer>] }; AND durable_writes = true;

Trong đó keyspace_name là tên Keyspace muốn tạo

Trang 46

2.3 Chỉnh sửa bảng:

Ví dụ thêm class vào bảng manager đã tạo sử dụng cú pháp:

root@cqlsh:keyspace_test> ALTER TABLE manager ADD address text;

3 Truy vấn dữ liệu:

Để truy vấn dữ liệu sử dụng lệnh SELECT

SELECT * FROM manager;

Trang 48

5 Xóa dữ liệu:

cqlsh:keyspace1> DELETE FROM manager WHERE en=001;

Trang 50

10

Ngày đăng: 02/03/2024, 17:27

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

TÀI LIỆU LIÊN QUAN

w