Tải bản đầy đủ (.pptx) (66 trang)

Slide NoSQL cassandra

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 (484.91 KB, 66 trang )

Nhóm 12 - INT3114 3
Vũ Ngọc Tùng
Trần Khánh Toàn
Trần Văn Trinh
Tìm hiểu về NoSQL

Mở đầu

Thuật ngữ NoSQL

Làm việc với NoSQL

NoSQL Apache Cassandra
Nội dung trình bày
2

Thời đại Web 2.0 bùng nổ, hàng tỷ nội dung được chia sẻ lên Web. Khối
lượng dữ liệu và xử lý truy vấn trở nên rất lớn.

Ví dụ: Facebook

2,7 tỉ lượt “like” hàng ngày.

300 triệu bức ảnh được tải lên Facebook.

700.000 truy vấn được thực hiện bởi người sử dụng và hệ thống.

500 TB dữ liệu mới được xử lí.


Mở đầu (1)


3
4

Các hệ thống cơ sở dữ liệu quan hệ truyền thống tỏ ra yếu kém trước
khối lượng dữ liệu đồ sộ và lượng truy vấn khổng lồ.

Hệ thống thiên về xử lý tập trung, nhưng dữ liệu hiện được lưu trữ phân
tán

Dễ phá vỡ thiết kế dữ liệu ban đầu do việc phi chuẩn hoá dữ liệu

Dễ xảy ra hiện tượng thắt nút cổ chai


Mở đầu (2)
5

Có nhiều giải pháp được đưa ra, trong đó NoSQL là một giải pháp đem
lại tính hiệu quả cao.

Facebook/Twitter ứng dụng Apache Cassandra

Amazon với DynamoDB

Google với BigTable


Mở đầu (3)
6
Vậy NoSQL là gì?

7

NoSQL là gì?

Thuật ngữ

Lịch sử ra đời

Vì sao lại chọn NoSQL?

Một số thuật ngữ liên quan

NoSQL có những loại nào?
THUẬT NGỮ NOSQL
8

NoSQL được sử dụng như một thuật ngữ chung cho tất cả các cơ sở dữ liệu
không tuân theo quy tắc của các cơ sở dữ liệu quan hệ (RDBMS) phổ biến và
thường liên quan đến việc xử lý và thao tác với một lượng lớn/ dữ liệu.

NoSQL không phải là một sản phẩm hay một công nghệ duy nhất, nó đại diện
cho một lớp các sản phẩm liên quan đến việc lưu trữ và xử lý dữ liệu không
theo quy tắc RDBMS.

Một mệnh đề khá thú vị về NoSQL:

"select fun, profit from real_world where relational=false;"
Thuật ngữ NoSQL
9


Cơ sở dữ liệu NoSQL không hẳn là mới!

NoSQL mới được thừa nhận và giới thiệu gần đây

Khởi đầu từ tập đoàn Inktomi với công cụ tìm kiếm HotBot

Đỉnh điểm là Google nghiên cứu sử dụng NoSQL BigTable vào công cụ tìm kiếm nổi
tiếng của mình (2003)

Thuật ngữ NoSQL được Eric Evans – nhân viên của Rackspace, giới thiệu trong một
hội thảo về cơ sở dữ liệu mã nguồn mở phân tán (2009)

Thuật ngữ NoSQL đánh dấu bước phát triển của thế hệ database mới:
distributed (phân tán) + non-relational (không ràng buộc).
Lịch sử ra đời của NoSQL
10

RDBMS

Dữ liệu lớn, phân tán

Khó mở rộng quy mô dữ liệu

Xử lý giao dịch phân tán kém



NoSQL

Xử lý dữ liệu lớn, phân tán tốt


Dễ dàng mở rộng quy mô


Vì sao lại sử dụng NoSQL?
11

Non-relational: không có ràng buộc dữ liệu

Distributed storage: dữ liệu được lưu trữ phân tán (LAN, Internet…)

Eventual consistency: tính nhất quán cuối, tức là đến cuối cùng vẫn đảm bảo
tính nhất quán dữ liệu

Vertical scalable: khả năng mở rộng về chiều dọc

Horizontal scalable: khả năng mở rộng về chiều ngang

Distributed Data: dữ liệu phân tán

Deployment Flexibility: triển khai linh hoạt
Một số thuật ngữ liên quan
12

Tính cho đến hiện tại có 150 cơ sở dữ liệu NoSQL (số liệu tại trang http
://nosql-database.org/).

Dựa theo đặc điểm và thuộc tính của một số loại cơ sở dữ liệu NoSQL,
có thể chia chúng ra làm 4 loại:


Column-Families Stores

Document Stores

Key-Values Stores

Graph Stores/Databases
NoSQL có những loại nào?
13

Mô hình mà dữ liệu được lưu trữ định hướng cột được khởi xướng bởi
Google (BigTable).

Mỗi đơn vị dữ liệu có thể được coi như một tập hợp các cặp khoá – giá
trị, trong đó mỗi đơn vị được xác định bằng một định danh chính, giống
như là khoá chính, và có xu hướng được gọi là row-key.
NoSQL: Column Families Stores (1)
14
For row-key: 1 For row-key: 2
first_name: John first_name: Jane
last_name: Doe
zip_code: 10001 zip_code: 94303
gender: male

Chỉ có cặp khoá – giá trị hợp lệ được lưu trữ

Một column-family ‘name’ với hàng
first_name và last_name.

Một column-family khác ‘location’ với

zip_code.

Column-family ‘profile’ với hàng gender.

Column-family được định nghĩa khi cấu hình
hoặc lúc bắt đầu chạy.

Các cột có khả năng lưu trữ bất kỳ loại dữ liệu
nào.
NoSQL: Column Families Stores (2)
Ví dụ về row-key
15

Dữ liệu được lưu trữ theo trình tự liên tiếp.

Dữ liệu tồn tại được chịu lỗi bằng cách tạo ra 3 bản sao của mỗi bộ dữ
liệu được duy trì.

Hệ thống cho phép dữ liệu được lưu trữ trong 1 cụm máy (lưu trữ phân
tán).

Một số cơ sở dữ liệu NoSQL tiêu biểu cho dạng này: Hadoop/Hbase,
Cassandra, Hypertable, Cloudata,…
NoSQL: Column Families Stores (3)
16

Một bảng băm hay một danh sách liên kết là cấu trúc dữ liệu đơn giản
nhất có thể chứa tập hợp các cặp khoá – giá trị (key-values).

Độ phức tạp trung bình O(1) cho các thuật toán truy cập dữ liệu.


Khoá của 1 cặp key-values là giá trị duy nhất trong các bộ và dễ dàng tìm
kiếm để truy cập dữ liệu.
NoSQL: Key-Values Stores (1)
17

Cặp key-values có nhiều kiểu:

Lưu trữ dữ liệu trong bộ nhớ RAM.

Lưu trữ dữ liệu trực tiếp trong ổ cứng.

Lưu trữ dữ liệu trong bộ nhớ cache. (phổ biến hơn cả)

Một số cơ sở dữ liệu NoSQL tiêu biểu cho dạng này: DynamoDB, Redis,
FoundationDB, BerkeleyDB, Voldermort,…
NoSQL: Key-Values Stores (2)
18

Đây không phải là một hệ thống quản lý văn bản.

Các document trong Document Stores bao gồm cấu trúc key-values khá
lỏng lẻo.

Định dạng JSON (JavaScript Object Notatin).

Không có tài liệu hay bảng tính (mặc dù chúng có thể được lưu trữ).
NoSQL: Document Stores (1)
19


Document Stores xử lý toàn bộ một document một lúc và tránh việc cắt nhỏ
bản ghi thành các giá trị key-values cấu thành nên nó.

Ở mức độ cao hơn, nó cho phép đặt các bản ghi có chung đặc điểm vào một bộ
dữ liệu duy nhất (gọi là Collections).

Document Stores cho phép lập chỉ mục cho các bản ghi trên cơ sở không chỉ
đích danh khoá chính mà là tất cả các chỉ mục bên trong của nó.

Một số cơ sở dữ liệu NoSQL tiêu biểu cho dạng này: MongoDB, CouchDB,
Couchbase,…
NoSQL: Document Stores (2)
20

Đa số cơ sở dữ liệu NoSQL thuộc 3 dạng trên.

Số ít còn lại là cơ sở liệu dạng biểu đồ (điểm, cạnh, đường) và cơ sở dữ
liệu lưu trữ dưới dạng XML. Chúng cũng được coi là cơ sở dữ liệu
NoSQL.

Một số ít cơ sở dữ liệu NoSQL thuộc dạng này tiêu biểu như: Neo4j và
FlockDB.
NoSQL: Graph Databases/Stores
21

Sơ lược

Kiến trúc lưu trữ

Các đặc điểm chung


NoSQL với các ngôn ngữ lập trình bậc cao

Ưu, nhược điểm của NoSQL
KIẾN TRÚC NOSQL
22

Thiết kế trên nguyên tắc Distributed NoSQL giảm thiểu tối đa các phép
tính toán không cần thiết.

Tối thiểu hoá thao tác đọc-ghi dữ liệu trực tiếp kết hợp với batch
processing.

Mô hình lưu trữ tập dữ liệu theo cặp giá trị key-values.

Quản lý dữ liệu phân tán dưới dạng note (nút), chấp nhận việc trùng lặp
dữ liệu.
Sơ lược
23

NoSQL Column Families

NoSQL Document Stores
Kiến trúc lưu trữ NoSQL
24

Trong một NoSQL Column Families, các column-family giống như các cột ở
hệ thống RDBMS.

Chúng cùng được định nghĩa trước khi dữ liệu được lưu trữ và thường ít

thay đổi trong quá trình cập nhật.

Điểm khác biệt giữa chúng là khi khai báo cột bên hệ thống RDBMS thì phải
khai báo loại dữ liệu có thể lưu trữ (INT, VARCHAR, TEXT,…), còn NoSQL
Column Families không có giới hạn như vậy. Hơn nữa, ở NoSQL Column
Families không lưu trữ giá trị null, còn bên hệ thống RDBMS thì có.
NoSQL Column Families (1)
25

Thường áp đặt một lược đồ (schema) đơn giản trước và có thể dễ dàng
tạo thêm các cột mới.

Một column-family là một tập hợp của các cột nhỏ hơn, thường thì các
cột nhỏ này có quan hệ logic với nhau. Chúng cũng được lưu trữ vật lý
cùng nhau.
NoSQL Column Families (2)

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×