HBase - Tổng quan
Kể từ năm 1970, RDBMS là giải pháp cho các vấn đề liên quan đến lưu trữ và bảo trì dữ liệu. Sau khi dữ liệu lớn ra đời, các công ty nhận ra lợi ích của việc xử lý dữ liệu lớn và bắt đầu lựa chọn các giải pháp như Hadoop.
Hadoop sử dụng hệ thống tệp phân tán để lưu trữ dữ liệu lớn và MapReduce để xử lý nó. Hadoop vượt trội trong việc lưu trữ và xử lý dữ liệu khổng lồ ở nhiều định dạng khác nhau như tùy ý, bán hoặc thậm chí không có cấu trúc.
Hạn chế của Hadoop
Hadoop chỉ có thể thực hiện xử lý hàng loạt và dữ liệu sẽ chỉ được truy cập theo cách tuần tự. Điều đó có nghĩa là người ta phải tìm kiếm toàn bộ tập dữ liệu ngay cả đối với những công việc đơn giản nhất.
Một tập dữ liệu khổng lồ khi được xử lý dẫn đến một tập dữ liệu khổng lồ khác, tập dữ liệu này cũng cần được xử lý tuần tự. Tại thời điểm này, một giải pháp mới là cần thiết để truy cập bất kỳ điểm dữ liệu nào trong một đơn vị thời gian (truy cập ngẫu nhiên).
Cơ sở dữ liệu truy cập ngẫu nhiên Hadoop
Các ứng dụng như HBase, Cassandra, couchDB, Dynamo và MongoDB là một số cơ sở dữ liệu lưu trữ lượng lớn dữ liệu và truy cập dữ liệu theo cách ngẫu nhiên.
HBase là gì?
HBase là một cơ sở dữ liệu hướng cột phân tán được xây dựng trên hệ thống tệp Hadoop. Nó là một dự án mã nguồn mở và có thể mở rộng theo chiều ngang.
HBase là một mô hình dữ liệu tương tự như bảng lớn của Google được thiết kế để cung cấp khả năng truy cập ngẫu nhiên nhanh chóng vào lượng dữ liệu có cấu trúc khổng lồ. Nó tận dụng khả năng chịu lỗi được cung cấp bởi Hệ thống tệp Hadoop (HDFS).
Nó là một phần của hệ sinh thái Hadoop cung cấp quyền truy cập đọc / ghi ngẫu nhiên theo thời gian thực vào dữ liệu trong Hệ thống tệp Hadoop.
Người ta có thể lưu trữ dữ liệu trong HDFS trực tiếp hoặc thông qua HBase. Người tiêu dùng dữ liệu đọc / truy cập dữ liệu trong HDFS một cách ngẫu nhiên bằng HBase. HBase nằm trên Hệ thống Tệp Hadoop và cung cấp quyền truy cập đọc và ghi.
HBase và HDFS
HDFS | HBase |
---|---|
HDFS là một hệ thống tệp phân tán thích hợp để lưu trữ các tệp lớn. | HBase là cơ sở dữ liệu được xây dựng trên HDFS. |
HDFS không hỗ trợ tra cứu hồ sơ cá nhân nhanh chóng. | HBase cung cấp tra cứu nhanh cho các bảng lớn hơn. |
Nó cung cấp xử lý hàng loạt có độ trễ cao; không có khái niệm về xử lý hàng loạt. | Nó cung cấp khả năng truy cập độ trễ thấp vào các hàng đơn từ hàng tỷ bản ghi (Truy cập ngẫu nhiên). |
Nó chỉ cung cấp quyền truy cập tuần tự dữ liệu. | HBase sử dụng nội bộ bảng Hash và cung cấp quyền truy cập ngẫu nhiên, đồng thời nó lưu trữ dữ liệu trong các tệp HDFS được lập chỉ mục để tra cứu nhanh hơn. |
Cơ chế lưu trữ trong HBase
HBase là một column-oriented databasevà các bảng trong đó được sắp xếp theo hàng. Lược đồ bảng chỉ xác định các họ cột, là các cặp giá trị khóa. Một bảng có nhiều họ cột và mỗi họ cột có thể có bất kỳ số lượng cột nào. Các giá trị cột tiếp theo được lưu trữ liền kề trên đĩa. Mỗi giá trị ô của bảng có một dấu thời gian. Tóm lại, trong một HBase:
- Bảng là một tập hợp các hàng.
- Hàng là một tập hợp các họ cột.
- Họ cột là một tập hợp các cột.
- Cột là một tập hợp các cặp giá trị khóa.
Dưới đây là một lược đồ ví dụ về bảng trong HBase.
Rowid | Họ cột | Họ cột | Họ cột | Họ cột | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
col1 | col2 | col3 | col1 | col2 | col3 | col1 | col2 | col3 | col1 | col2 | col3 | |
1 | ||||||||||||
2 | ||||||||||||
3 |
Định hướng cột và hướng hàng
Cơ sở dữ liệu hướng theo cột là những cơ sở dữ liệu lưu trữ bảng dữ liệu dưới dạng các phần của cột dữ liệu, chứ không phải dưới dạng hàng dữ liệu. Trong thời gian ngắn, họ sẽ có họ cột.
Cơ sở dữ liệu hướng hàng | Cơ sở dữ liệu hướng theo cột |
---|---|
Nó phù hợp với Quy trình giao dịch trực tuyến (OLTP). | Nó phù hợp cho Xử lý Phân tích Trực tuyến (OLAP). |
Cơ sở dữ liệu như vậy được thiết kế cho số lượng hàng và cột nhỏ. | Cơ sở dữ liệu hướng cột được thiết kế cho các bảng lớn. |
Hình ảnh sau đây cho thấy các họ cột trong cơ sở dữ liệu hướng cột:
HBase và RDBMS
HBase | RDBMS |
---|---|
HBase không có giản đồ, nó không có khái niệm về lược đồ cột cố định; chỉ xác định họ cột. | Một RDBMS được điều chỉnh bởi lược đồ của nó, lược đồ này mô tả toàn bộ cấu trúc của các bảng. |
Nó được xây dựng cho các bảng rộng. HBase có thể mở rộng theo chiều ngang. | Nó mỏng và được xây dựng cho các bàn nhỏ. Khó mở rộng quy mô. |
Không có giao dịch nào trong HBase. | RDBMS là giao dịch. |
Nó đã khử chuẩn hóa dữ liệu. | Nó sẽ có dữ liệu chuẩn hóa. |
Nó tốt cho dữ liệu bán cấu trúc cũng như có cấu trúc. | Nó tốt cho dữ liệu có cấu trúc. |
Đặc điểm của HBase
- HBase có thể mở rộng tuyến tính.
- Nó có hỗ trợ lỗi tự động.
- Nó cung cấp khả năng đọc và ghi nhất quán.
- Nó tích hợp với Hadoop, vừa là nguồn vừa là đích.
- Nó có API java dễ dàng cho khách hàng.
- Nó cung cấp sao chép dữ liệu giữa các cụm.
Sử dụng HBase ở đâu
Apache HBase được sử dụng để có quyền truy cập đọc / ghi ngẫu nhiên, theo thời gian thực vào Dữ liệu lớn.
Nó lưu trữ các bảng rất lớn trên đầu các cụm phần cứng hàng hóa.
Apache HBase là một cơ sở dữ liệu phi quan hệ được mô phỏng theo Bigtable của Google. Bigtable hoạt động trên Hệ thống tệp của Google, tương tự như vậy, Apache HBase hoạt động trên Hadoop và HDFS.
Các ứng dụng của HBase
- Nó được sử dụng bất cứ khi nào có nhu cầu viết các ứng dụng nặng.
- HBase được sử dụng bất cứ khi nào chúng ta cần cung cấp quyền truy cập ngẫu nhiên nhanh chóng vào dữ liệu có sẵn.
- Các công ty như Facebook, Twitter, Yahoo và Adobe sử dụng HBase trong nội bộ.
Lịch sử HBase
Năm | Biến cố |
---|---|
Tháng 11 năm 2006 | Google đã phát hành bài báo trên BigTable. |
Tháng 2 năm 2007 | Nguyên mẫu HBase ban đầu được tạo ra như một đóng góp Hadoop. |
Tháng 10 năm 2007 | HBase có thể sử dụng đầu tiên cùng với Hadoop 0.15.0 đã được phát hành. |
Tháng 1 năm 2008 | HBase trở thành dự án con của Hadoop. |
Tháng 10 năm 2008 | HBase 0.18.1 đã được phát hành. |
Tháng 1 năm 2009 | HBase 0.19.0 đã được phát hành. |
Tháng 9 năm 2009 | HBase 0.20.0 đã được phát hành. |
Tháng 5 năm 2010 | HBase trở thành dự án cấp cao nhất của Apache. |