SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Hbase, cách thức lưu
trữ và tìm kiếm
Tác giả : Bạch Văn Tuân
Website : http://dethoima.com
Giới thiệu

●

●

●

●

là hệ quản trị cơ sở dữ liệu dựa trên Hadoop, đây là mã
nguồn mở nằm trong dự án của Apache, phát triển và mở
rộng từ dự án lưu trữ big-data của Google.
Ai sử dụng Hbase: Facebook, Adobe, Twitter, Yahoo, etc,
xem thêm ở đây
Phiên bản mới nhất : 0.96.1
Có thể xem thêm bảng ánh xạ mức độ hỗ trợ giữa các
phiên bản Hbase và Hadoop ở đây. Hiện tại các phiên
bản Hadoop 2.x đều đã hỗ trợ phiên bản mới nhất
Tính năng

●

●

●

●

●

●

Thời gian lọc dữ liệu nhanh
Lưu trữ dữ liệu big-data, có thể lưu trữ hàng tỷ rows và
columns
Có độ ổn định và giảm thiểu rủi ro(failover) khi l ưu 1 l ượng
lớn dữ liệu.
Truy vấn dữ liệu theo thời gian thực.
Cung cấp giao thức REST, giúp trả về dữ liệu theo các định
dạng khác nhau như plain text,json,xml. Xem thêm ở đây.
Nhờ đó chúng ta có thể khai thác dữ liệu không c ần qua API
từ phần mềm thứ 3.
Tính năng (cont)

●

●

●

Nhât quán cơ chế đọc và ghi dữ liệu dựa trên Hadoop
Nhiều extension hỗ trợ Hbase cho nhiều ngôn ngữ như
java,php,python,etc
Lưu trữ dữ liệu đáng tin cậy, được các hãng lớn sử dụng
trên quy mô lớn
Cách thức lưu trữ

●

●

●

●

●

Hbase lưu trữ các row nằm trong các table
Mỗi table có thể định nghĩa nhiều column families(cf)
khác nhau
Mỗi row phải được quản lý bởi 1 khóa chính duy nhất
Có thể xem lịch sử lưu dữ liệu trên mỗi row, được quản lý
bởi timestamp
Chúng ta có thể giới hạn history lưu tối đa là bao nhiêu
lần( giúp tiết kiệm dung lượng dữ liệu sau 1 thời gian sử
dụng, mỗi lần update dữ liệu thì history cũ hơn sẽ bi xóa )
Cách thức lưu trữ (ví dụ)

●

●

Tôi sẽ tạo 1 table với tên là 'accounts' với column families
là 'info' và 'extra'
column families có thể là bất kỳ từ khóa nào mà bạn
thích.

●

Info: tôi lưu tên, họ, số điện thoại,email

●

Extra: tôi lưu thông tin cha, mẹ, anh, chị, vợ, con

●

Mỗi account sẽ có duy nhất 1 user_name nên tôi sẽ dùng
user_name làm khóa cho row (các bạn có thể dùng email
thể làm khóa)
Cách thức lưu trữ(ví dụ)
Id

Cf

Attribute

Value

Timestamp

nam

info

first_name

Nam

1

last_name

Nguyễn Văn

1

address

17 ABC

1

phone

01234556789

1

father

Tên bố nam

1

mother

Tên mẹ nam

1

phone

09999999999

3

address

18 ABC

3

first_name

John

2

last_name

Mark

2

address

18 BCD

2

extra

info

john

info
Cách thức lưu trữ(giải thích ví dụ)

●

●

●

●

●

Trong ví dụ trên tôi đã lưu 2 rows với id là nam va john
chính là các user_name
nam có 1 lần khởi tạo dữ liệu ở timestamp=1 và 1 lần cập
nhật ở timestamp=3.
join có 1 lần khởi tạo dữ liệu ở timestamp =2.
Lưu ý : timestamp trong thực tế là dãy số như
123456789 lưu timestamp của hệ thống
Như vậy “nam” khởi tạo trước rồi đến khởi tạo “john”, sau
đó “nam” được cập nhật(address,phone) lên version 2.
Tìm kiếm dữ liệu

●

●

●

Phương pháp phổ biển nhất để tìm kiếm dữ liệu trong
Hbase là dùng thrift, bình thường thrift không được khởi
động khi chay Hbase nên sẽ cần khởi động bằng lệnh
“./bin/hbase thrift start”
Xem thêm về các method thrift hỗ trở ở đây
Lưu ý về comparator: thrift cung cấp 4 comparator để lọc
dữ liệu đó là 'binary','binaryprefix','regexstring','substring'
Tìm kiếm dữ liệu(cont )

comparator

Compare

filter string

return

binary

>

binary:abc

những giá trị binary lớn hơn 'abc'

binaryprefix

=

Binaryprefix:
abc

những giá trị binary mà bắt đầu
với abc

regrexstring

=

regrexstring:
a*bc

Những giá trị mà bắt đầu có
substring nằm trong a và bc

substring

!=

substring:abc Những giá trị không bắt đầu bởi
'abc'
Tìm kiếm dữ liệu (cont)

●

Tôi sẽ hướng dẫn 2 method thường dùng là
SingleColumnValueFilter và DependentColumnFilter
–

SingleColumnValueFilter thường được sử dụng để lọc
1 column family attribute

–

DependentColumnFilter thường được sử dụng để lọc
dựa trên 2, hay nhiều column family attribute
Tìm kiếm dữ liệu(cont)

●

Ví dụ về SingleColumnValueFilter
–

●

"SingleColumnValueFilter (‘info’, ‘phone’, =, 'regrexstring:^092')" : s ẽ
hiển thị toàn bộ row nào mà có info:phone mà bắt đầu với đầu số 092

Ví dụ về DependentColumnFilter
–

"DependentColumnFilter ('info','first_name', false, =, 'nam') AND
DependentColumnFilter ('extra','father', false, =, 'Dung')" : sẽ hiển thị
toàn bộ row mà mà info:first_name ='nam' và extra:father = 'Dung'
Sql cho Hbase
Một cách khác để dễ dàng sử dụng truy vấn dữ liệu trong
Hbase hơn là dùng câu lệnh sql để truy vấn, để làm được
điều này bạn phải cài đặt thêm hive. Sau khi cài đặt xong
thì mọi thao tác xử lý dữ liệu đều có thể dùng thông qua
câu lệnh sql, trong đó hỗ trợ cả join
L ờ i k ết
Hbase là giải pháp lưu trữ dữ liệu lớn, linh hoat và miễn
phí, đều quan trọng là dự án của bạn có thực sự đủ lớn
để dùng Hbase và một khi dùng Hbase thì bạn phải xác
định trước cấu trúc dữ liệu để xác định các colum family
và primary key cho row trong các table thích hơp.

Weitere ähnliche Inhalte

Was ist angesagt?

Nhom 16 big data
Nhom 16 big dataNhom 16 big data
Nhom 16 big dataDuy Phan
 
Báo cáo bài tập Lưu trữ và xử lý dữ liệu lớn.pptx
Báo cáo bài tập Lưu trữ và xử lý dữ liệu lớn.pptxBáo cáo bài tập Lưu trữ và xử lý dữ liệu lớn.pptx
Báo cáo bài tập Lưu trữ và xử lý dữ liệu lớn.pptxBách Nguyễn
 
Big data là gì và người ta khai thác
Big data là gì và người ta khai thácBig data là gì và người ta khai thác
Big data là gì và người ta khai thácletranganh
 
MongoDB Introduction
MongoDB IntroductionMongoDB Introduction
MongoDB Introductionthanh can
 
Giới thiệu cơ bản về Big Data và các ứng dụng thực tiễn
Giới thiệu cơ bản về Big Data và các ứng dụng thực tiễnGiới thiệu cơ bản về Big Data và các ứng dụng thực tiễn
Giới thiệu cơ bản về Big Data và các ứng dụng thực tiễnTrieu Nguyen
 
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêthuhuynhphonegap
 
Hadoop - Hệ thống tính toán và xử lý dữ liệu lớn
Hadoop - Hệ thống tính toán và xử lý dữ liệu lớnHadoop - Hệ thống tính toán và xử lý dữ liệu lớn
Hadoop - Hệ thống tính toán và xử lý dữ liệu lớnThành Thư Thái
 
Cách sử dụng tên miền thật khi chạy website ở localhost
Cách sử dụng tên miền thật khi chạy website ở localhostCách sử dụng tên miền thật khi chạy website ở localhost
Cách sử dụng tên miền thật khi chạy website ở localhostLel Đặng Văn
 
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)Trieu Nguyen
 
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)Hoa Le
 
Bài giảng thiết kế website - truongkinhtethucpham.com
Bài giảng thiết kế website - truongkinhtethucpham.comBài giảng thiết kế website - truongkinhtethucpham.com
Bài giảng thiết kế website - truongkinhtethucpham.commai_non
 
Tóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinderTóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinderhoamonkhach
 
đồ áN khảo sát, thiết kế và xây dựng mạng lan trường thpt văn lâm hưng yên ...
đồ áN khảo sát, thiết kế và xây dựng mạng lan trường thpt văn lâm   hưng yên ...đồ áN khảo sát, thiết kế và xây dựng mạng lan trường thpt văn lâm   hưng yên ...
đồ áN khảo sát, thiết kế và xây dựng mạng lan trường thpt văn lâm hưng yên ...Hate To Love
 
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...The Boss
 
Tài liệu hướng dẫn quản lý user, phân quyền trong Ubuntu (linux) - 10B4 Fithou
Tài liệu hướng dẫn quản lý user, phân quyền trong Ubuntu (linux) - 10B4 FithouTài liệu hướng dẫn quản lý user, phân quyền trong Ubuntu (linux) - 10B4 Fithou
Tài liệu hướng dẫn quản lý user, phân quyền trong Ubuntu (linux) - 10B4 FithouTú Cao
 
Presentation điện toán đám mây
Presentation   điện toán đám mâyPresentation   điện toán đám mây
Presentation điện toán đám mâyxKinAnx
 

Was ist angesagt? (20)

Nhom 16 big data
Nhom 16 big dataNhom 16 big data
Nhom 16 big data
 
Báo cáo bài tập Lưu trữ và xử lý dữ liệu lớn.pptx
Báo cáo bài tập Lưu trữ và xử lý dữ liệu lớn.pptxBáo cáo bài tập Lưu trữ và xử lý dữ liệu lớn.pptx
Báo cáo bài tập Lưu trữ và xử lý dữ liệu lớn.pptx
 
Big data là gì và người ta khai thác
Big data là gì và người ta khai thácBig data là gì và người ta khai thác
Big data là gì và người ta khai thác
 
MongoDB Introduction
MongoDB IntroductionMongoDB Introduction
MongoDB Introduction
 
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
 
Giới thiệu cơ bản về Big Data và các ứng dụng thực tiễn
Giới thiệu cơ bản về Big Data và các ứng dụng thực tiễnGiới thiệu cơ bản về Big Data và các ứng dụng thực tiễn
Giới thiệu cơ bản về Big Data và các ứng dụng thực tiễn
 
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
 
Xếp hạng và tính toán song song trên nền tảng Apache Spark, HAY
Xếp hạng và tính toán song song trên nền tảng Apache Spark, HAYXếp hạng và tính toán song song trên nền tảng Apache Spark, HAY
Xếp hạng và tính toán song song trên nền tảng Apache Spark, HAY
 
Hadoop - Hệ thống tính toán và xử lý dữ liệu lớn
Hadoop - Hệ thống tính toán và xử lý dữ liệu lớnHadoop - Hệ thống tính toán và xử lý dữ liệu lớn
Hadoop - Hệ thống tính toán và xử lý dữ liệu lớn
 
Đề tài: Tìm hiểu và sử dụng Facebook API, HAY, 9đ
Đề tài: Tìm hiểu và sử dụng Facebook API, HAY, 9đĐề tài: Tìm hiểu và sử dụng Facebook API, HAY, 9đ
Đề tài: Tìm hiểu và sử dụng Facebook API, HAY, 9đ
 
Cách sử dụng tên miền thật khi chạy website ở localhost
Cách sử dụng tên miền thật khi chạy website ở localhostCách sử dụng tên miền thật khi chạy website ở localhost
Cách sử dụng tên miền thật khi chạy website ở localhost
 
Đề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đ
Đề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đĐề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đ
Đề tài: Quản lý hệ thống bán vé máy bay của Vietnam Airline, 9đ
 
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
 
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
 
Bài giảng thiết kế website - truongkinhtethucpham.com
Bài giảng thiết kế website - truongkinhtethucpham.comBài giảng thiết kế website - truongkinhtethucpham.com
Bài giảng thiết kế website - truongkinhtethucpham.com
 
Tóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinderTóm tắt về track, sector, cluster, cylinder
Tóm tắt về track, sector, cluster, cylinder
 
đồ áN khảo sát, thiết kế và xây dựng mạng lan trường thpt văn lâm hưng yên ...
đồ áN khảo sát, thiết kế và xây dựng mạng lan trường thpt văn lâm   hưng yên ...đồ áN khảo sát, thiết kế và xây dựng mạng lan trường thpt văn lâm   hưng yên ...
đồ áN khảo sát, thiết kế và xây dựng mạng lan trường thpt văn lâm hưng yên ...
 
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
Báo cáo đồ án tốt nghiệp "Ứng dụng trí tuệ nhân tạo nhận dạng chữ viết tay xâ...
 
Tài liệu hướng dẫn quản lý user, phân quyền trong Ubuntu (linux) - 10B4 Fithou
Tài liệu hướng dẫn quản lý user, phân quyền trong Ubuntu (linux) - 10B4 FithouTài liệu hướng dẫn quản lý user, phân quyền trong Ubuntu (linux) - 10B4 Fithou
Tài liệu hướng dẫn quản lý user, phân quyền trong Ubuntu (linux) - 10B4 Fithou
 
Presentation điện toán đám mây
Presentation   điện toán đám mâyPresentation   điện toán đám mây
Presentation điện toán đám mây
 

Ähnlich wie Hbase, Cách thức lưu trữ và tìm kiếm

Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512lekytho
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHPNIIT - ICT Hà Nội
 
Bài 11 tạo bảng và sử dụng các kiểu dữ liệu
Bài 11 tạo bảng và sử dụng các kiểu dữ liệuBài 11 tạo bảng và sử dụng các kiểu dữ liệu
Bài 11 tạo bảng và sử dụng các kiểu dữ liệuzzsunzz
 
Giao trinh thiet ke web bai 4 - php
Giao trinh thiet ke web   bai 4 - phpGiao trinh thiet ke web   bai 4 - php
Giao trinh thiet ke web bai 4 - phpcashdeptrai
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2pisu412
 
Bài tập CTDL và GT 3
Bài tập CTDL và GT 3Bài tập CTDL và GT 3
Bài tập CTDL và GT 3Hồ Lợi
 
Lập trình C cho VĐK 8051
Lập trình C cho VĐK 8051Lập trình C cho VĐK 8051
Lập trình C cho VĐK 8051Mr Giap
 
MongoDB.pptx
MongoDB.pptxMongoDB.pptx
MongoDB.pptxDuyThnh28
 
b2-ddl-create-190213084659.pdf
b2-ddl-create-190213084659.pdfb2-ddl-create-190213084659.pdf
b2-ddl-create-190213084659.pdfQuyVo27
 
csdl bai-thuchanh_01
csdl bai-thuchanh_01csdl bai-thuchanh_01
csdl bai-thuchanh_01kikihoho
 
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTBài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTMasterCode.vn
 

Ähnlich wie Hbase, Cách thức lưu trữ và tìm kiếm (18)

Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512Tai lieu huong_dan_ve_lap_trinh_php_7512
Tai lieu huong_dan_ve_lap_trinh_php_7512
 
Stata bai1
Stata bai1Stata bai1
Stata bai1
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
 
Bài 11 tạo bảng và sử dụng các kiểu dữ liệu
Bài 11 tạo bảng và sử dụng các kiểu dữ liệuBài 11 tạo bảng và sử dụng các kiểu dữ liệu
Bài 11 tạo bảng và sử dụng các kiểu dữ liệu
 
temp.pdf
temp.pdftemp.pdf
temp.pdf
 
On thi kpdl
On thi kpdlOn thi kpdl
On thi kpdl
 
Lesson 2 lý thuyết
Lesson 2 lý thuyếtLesson 2 lý thuyết
Lesson 2 lý thuyết
 
Giao trinh thiet ke web bai 4 - php
Giao trinh thiet ke web   bai 4 - phpGiao trinh thiet ke web   bai 4 - php
Giao trinh thiet ke web bai 4 - php
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
 
Bài tập CTDL và GT 3
Bài tập CTDL và GT 3Bài tập CTDL và GT 3
Bài tập CTDL và GT 3
 
Lập trình C cho VĐK 8051
Lập trình C cho VĐK 8051Lập trình C cho VĐK 8051
Lập trình C cho VĐK 8051
 
MongoDB.pptx
MongoDB.pptxMongoDB.pptx
MongoDB.pptx
 
Asp
AspAsp
Asp
 
b2-ddl-create-190213084659.pdf
b2-ddl-create-190213084659.pdfb2-ddl-create-190213084659.pdf
b2-ddl-create-190213084659.pdf
 
Vb6 16 (14)
Vb6 16 (14)Vb6 16 (14)
Vb6 16 (14)
 
BG trung tam
BG trung tamBG trung tam
BG trung tam
 
csdl bai-thuchanh_01
csdl bai-thuchanh_01csdl bai-thuchanh_01
csdl bai-thuchanh_01
 
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPTBài 4 Lập trình PHP (phần 2) - Giáo trình FPT
Bài 4 Lập trình PHP (phần 2) - Giáo trình FPT
 

Hbase, Cách thức lưu trữ và tìm kiếm

  • 1. Hbase, cách thức lưu trữ và tìm kiếm Tác giả : Bạch Văn Tuân Website : http://dethoima.com
  • 2. Giới thiệu ● ● ● ● là hệ quản trị cơ sở dữ liệu dựa trên Hadoop, đây là mã nguồn mở nằm trong dự án của Apache, phát triển và mở rộng từ dự án lưu trữ big-data của Google. Ai sử dụng Hbase: Facebook, Adobe, Twitter, Yahoo, etc, xem thêm ở đây Phiên bản mới nhất : 0.96.1 Có thể xem thêm bảng ánh xạ mức độ hỗ trợ giữa các phiên bản Hbase và Hadoop ở đây. Hiện tại các phiên bản Hadoop 2.x đều đã hỗ trợ phiên bản mới nhất
  • 3. Tính năng ● ● ● ● ● ● Thời gian lọc dữ liệu nhanh Lưu trữ dữ liệu big-data, có thể lưu trữ hàng tỷ rows và columns Có độ ổn định và giảm thiểu rủi ro(failover) khi l ưu 1 l ượng lớn dữ liệu. Truy vấn dữ liệu theo thời gian thực. Cung cấp giao thức REST, giúp trả về dữ liệu theo các định dạng khác nhau như plain text,json,xml. Xem thêm ở đây. Nhờ đó chúng ta có thể khai thác dữ liệu không c ần qua API từ phần mềm thứ 3.
  • 4. Tính năng (cont) ● ● ● Nhât quán cơ chế đọc và ghi dữ liệu dựa trên Hadoop Nhiều extension hỗ trợ Hbase cho nhiều ngôn ngữ như java,php,python,etc Lưu trữ dữ liệu đáng tin cậy, được các hãng lớn sử dụng trên quy mô lớn
  • 5. Cách thức lưu trữ ● ● ● ● ● Hbase lưu trữ các row nằm trong các table Mỗi table có thể định nghĩa nhiều column families(cf) khác nhau Mỗi row phải được quản lý bởi 1 khóa chính duy nhất Có thể xem lịch sử lưu dữ liệu trên mỗi row, được quản lý bởi timestamp Chúng ta có thể giới hạn history lưu tối đa là bao nhiêu lần( giúp tiết kiệm dung lượng dữ liệu sau 1 thời gian sử dụng, mỗi lần update dữ liệu thì history cũ hơn sẽ bi xóa )
  • 6. Cách thức lưu trữ (ví dụ) ● ● Tôi sẽ tạo 1 table với tên là 'accounts' với column families là 'info' và 'extra' column families có thể là bất kỳ từ khóa nào mà bạn thích. ● Info: tôi lưu tên, họ, số điện thoại,email ● Extra: tôi lưu thông tin cha, mẹ, anh, chị, vợ, con ● Mỗi account sẽ có duy nhất 1 user_name nên tôi sẽ dùng user_name làm khóa cho row (các bạn có thể dùng email thể làm khóa)
  • 7. Cách thức lưu trữ(ví dụ) Id Cf Attribute Value Timestamp nam info first_name Nam 1 last_name Nguyễn Văn 1 address 17 ABC 1 phone 01234556789 1 father Tên bố nam 1 mother Tên mẹ nam 1 phone 09999999999 3 address 18 ABC 3 first_name John 2 last_name Mark 2 address 18 BCD 2 extra info john info
  • 8. Cách thức lưu trữ(giải thích ví dụ) ● ● ● ● ● Trong ví dụ trên tôi đã lưu 2 rows với id là nam va john chính là các user_name nam có 1 lần khởi tạo dữ liệu ở timestamp=1 và 1 lần cập nhật ở timestamp=3. join có 1 lần khởi tạo dữ liệu ở timestamp =2. Lưu ý : timestamp trong thực tế là dãy số như 123456789 lưu timestamp của hệ thống Như vậy “nam” khởi tạo trước rồi đến khởi tạo “john”, sau đó “nam” được cập nhật(address,phone) lên version 2.
  • 9. Tìm kiếm dữ liệu ● ● ● Phương pháp phổ biển nhất để tìm kiếm dữ liệu trong Hbase là dùng thrift, bình thường thrift không được khởi động khi chay Hbase nên sẽ cần khởi động bằng lệnh “./bin/hbase thrift start” Xem thêm về các method thrift hỗ trở ở đây Lưu ý về comparator: thrift cung cấp 4 comparator để lọc dữ liệu đó là 'binary','binaryprefix','regexstring','substring'
  • 10. Tìm kiếm dữ liệu(cont ) comparator Compare filter string return binary > binary:abc những giá trị binary lớn hơn 'abc' binaryprefix = Binaryprefix: abc những giá trị binary mà bắt đầu với abc regrexstring = regrexstring: a*bc Những giá trị mà bắt đầu có substring nằm trong a và bc substring != substring:abc Những giá trị không bắt đầu bởi 'abc'
  • 11. Tìm kiếm dữ liệu (cont) ● Tôi sẽ hướng dẫn 2 method thường dùng là SingleColumnValueFilter và DependentColumnFilter – SingleColumnValueFilter thường được sử dụng để lọc 1 column family attribute – DependentColumnFilter thường được sử dụng để lọc dựa trên 2, hay nhiều column family attribute
  • 12. Tìm kiếm dữ liệu(cont) ● Ví dụ về SingleColumnValueFilter – ● "SingleColumnValueFilter (‘info’, ‘phone’, =, 'regrexstring:^092')" : s ẽ hiển thị toàn bộ row nào mà có info:phone mà bắt đầu với đầu số 092 Ví dụ về DependentColumnFilter – "DependentColumnFilter ('info','first_name', false, =, 'nam') AND DependentColumnFilter ('extra','father', false, =, 'Dung')" : sẽ hiển thị toàn bộ row mà mà info:first_name ='nam' và extra:father = 'Dung'
  • 13. Sql cho Hbase Một cách khác để dễ dàng sử dụng truy vấn dữ liệu trong Hbase hơn là dùng câu lệnh sql để truy vấn, để làm được điều này bạn phải cài đặt thêm hive. Sau khi cài đặt xong thì mọi thao tác xử lý dữ liệu đều có thể dùng thông qua câu lệnh sql, trong đó hỗ trợ cả join
  • 14. L ờ i k ết Hbase là giải pháp lưu trữ dữ liệu lớn, linh hoat và miễn phí, đều quan trọng là dự án của bạn có thực sự đủ lớn để dùng Hbase và một khi dùng Hbase thì bạn phải xác định trước cấu trúc dữ liệu để xác định các colum family và primary key cho row trong các table thích hơp.