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

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


2

Nội dung trình bày
• Mở đầu
• Thuật ngữ NoSQL
• Làm việc với NoSQL
• NoSQL Apache Cassandra


3

Mở đầu (1)
• 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í.



4

Mở đầu (2)
• 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
▫…


5

Mở đầu (3)
• 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
▫ ...


6

Vậy NoSQL là gì?



7

THUẬT NGỮ NOSQL
• 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?


8

Thuật ngữ NoSQL
• 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;"


9

Lịch sử ra đời của NoSQL

• 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).


10

Vì sao lại sử dụng NoSQL?
• 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ô
▫…


11

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

• 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 qn 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


12

NoSQL có những loại nào?
• Tính cho đến hiện tại có 150 cơ sở dữ liệu NoSQL (số liệu tại trang
/>• 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


13

NoSQL: Column Families Stores (1)
• 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à khố chính, và có xu hướng được gọi là row-key.



14

NoSQL: Column Families Stores (2)
Ví dụ về row-key
For row-key: 1

For row-key: 2

first_name: John

first_name: Jane

last_name: Doe
zip_code: 10001
gender: male

zip_code: 94303

• 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.


15

NoSQL: Column Families Stores (3)
• 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,…


16

NoSQL: Key-Values Stores (1)
• 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 khố – giá trị (key-values).
• Độ phức tạp trung bình O(1) cho các thuật tốn truy cập dữ liệu.
• Khố 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.


17

NoSQL: Key-Values Stores (2)
• 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,…


18

NoSQL: Document Stores (1)
• Đâ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ữ).


19

NoSQL: Document Stores (2)
• Document Stores xử lý tồ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 khố 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,…



20

NoSQL: Graph Databases/Stores
• Đ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.



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

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