Mục lục:
- Hbase là thưa thớt
- .
- ) là một bộ sưu tập trừu tượng các cặp khóa-giá trị, chìa khóa là duy nhất. Định nghĩa này rất quan trọng đối với sự hiểu biết của bạn về HBase bởi vì mô hình dữ liệu HBase thường được mô tả theo những cách khác nhau - thường không hoàn toàn như là một cửa hàng theo định hướng cột.
Video: [Học CSS - 17] Thuộc tính position 2025
HBase (Hadoop Database) là một ứng dụng Java của Google BigTable. Google định nghĩa BigTable là một bản đồ được sắp xếp theo nhiều chiều, thưa thớt, phân tán, liên tục. "Đó là một định nghĩa khá súc tích, nhưng bạn cũng đồng ý rằng đó là một chút về mặt phức tạp. Để phá vỡ sự phức tạp của BigTable một chút, sau đây là một cuộc thảo luận về từng thuộc tính.
Hbase là thưa thớt
Như bạn có thể đoán, hệ thống lưu trữ dữ liệu phân tán của BigTable được thiết kế để đáp ứng nhu cầu của dữ liệu lớn. Bây giờ, các ứng dụng dữ liệu lớn lưu trữ nhiều dữ liệu nhưng nội dung dữ liệu lớn cũng thường biến đổi. Hãy tưởng tượng một bảng truyền thống trong cơ sở dữ liệu công ty lưu trữ thông tin liên lạc của khách hàng, như được hiển thị:
Tên lótthưa thớt
có nghĩa là các trường trong các hàng có thể để trống hoặc NULL nhưng điều này không làm cho HBase bị hắt hiu. HBase có thể xử lý sự thật là bạn không biết tên đệm và địa chỉ e-mail của Jane Doe.
Đây là một ví dụ khác: một cơ sở dữ liệu để lưu trữ hình ảnh vệ tinh. Hóa ra Google sử dụng công nghệ BigTable để lưu trữ hình ảnh vệ tinh của trái đất. Trong hầu hết mọi trường hợp, bất cứ khi nào hình ảnh được lưu trữ, siêu dữ liệu cũng được lưu trữ cùng với nó. Siêu dữ liệu có thể bao gồm địa chỉ đường phố của hình ảnh hoặc chỉ vĩ độ và kinh tuyến nếu hình ảnh được chụp từ vùng hoang dã. Siêu dữ liệu biến đổi trong nội dung vì vậy một số trường sẽ là NULL - và điều đó là OK. Trong cả hai ví dụ, bộ dữ liệu được thu thập có thể rất lớn - đặc biệt là trong ví dụ thứ hai.Các cơ sở dữ liệu ảnh hầu như luôn được đo bằng terabytes hoặc đôi khi trong petabytes. HBase được thiết kế để lưu trữ dữ liệu lớn, nhưng nó cũng được thiết kế để lưu trữ các bản ghi dữ liệu thưa thớt miễn phí. Mối quan tâm này là rất quan trọng khi bạn đang sử dụng các ứng dụng dữ liệu lớn! Lưu trữ một vài bản ghi NULL trên một triệu hàng là lãng phí, nhưng hãy thử tưởng tượng những rác thải trên một quadrillion hàng!
Rất may, đây là một sự cân nhắc quan trọng cho các nhà thiết kế của Google và cộng đồng HBase. Dữ liệu thưa thớt được hỗ trợ mà không lãng phí không gian lưu trữ tốn kém.Và nó không dừng lại ở đó. Xem xét sức mạnh của một kho dữ liệu không có giản đồ. Bảng này hiển thị cho bạn bảng liên hệ khách hàng cổ điển. Khi các công ty thiết kế các bảng này, họ biết trước những gì họ muốn lưu trữ. Nói cách khác lược đồ
cố định
; nó được định nghĩa ngay cả trước khi byte đầu tiên của thông tin được lưu trữ trong bảng.
Bây giờ nếu như, theo thời gian, một lĩnh vực mới là cần thiết cho một khách hàng? Làm thế nào về một Twitter xử lý hoặc một số điện thoại di động mới? Bạn dường như bị mắc kẹt với một giản đồ không còn hiệu quả cho bạn.
Vâng, HBase cũng giải quyết được thách thức này - bạn không chỉ bỏ qua các trường miễn phí khi bạn không có dữ liệu, mà còn tự động thêm các trường (hoặc
cột trong ngôn ngữ HBase) hơn thời gian mà không cần phải thiết kế lại lược đồ hoặc làm gián đoạn hoạt động. Vì vậy, bạn có thể nghĩ về HBase như là một kho lưu trữ dữ liệu ít giản đồ; có nghĩa là, nó là chất lỏng - bạn có thể thêm vào, trừ đi, hoặc sửa đổi các giản đồ như bạn đi cùng.
HBase được phân phối và liên tục
BigTable là một kho dữ liệu phân tán và liên tục. Thường xuyên chỉ đơn giản có nghĩa là dữ liệu bạn lưu trữ trong BigTable (và HBase, cho vấn đề đó) sẽ vẫn tồn tại hoặc tiếp tục sau khi chương trình hoặc phiên kết thúc. Điều đó khá đơn giản - liên tục có nghĩa là nó vẫn tồn tại - nhưng bạn nên dành nhiều thời gian hơn suy nghĩ về
dữ liệu được lưu giữ như thế nào
.
Trong bài báo BigTable, Google đã mô tả hệ thống tệp tin phân phối được biết đến như Google File System hoặc GFS. Nó chỉ ra rằng, giống như HBase là một thực hiện mã nguồn mở của BigTable, HDFS là một thực hiện mã nguồn mở của GFS. Theo mặc định, HBase thúc đẩy HDFS để duy trì dữ liệu của mình vào bộ nhớ. Mặc dù các kho lưu trữ dữ liệu phân tán khác có thể được sử dụng với HBase, phần lớn các thiết bị HBase tận dụng HDFS. Điều này làm cho ý nghĩa hoàn hảo cho rằng HBase là "cơ sở dữ liệu Hadoop" - hey, nó được xây dựng vào tên, vì lợi ích. HDFS là công nghệ kích hoạt chính không chỉ cho Hadoop mà còn cho HBase. Bằng cách lưu trữ dữ liệu trong HDFS, HBase cung cấp độ tin cậy, tính khả dụng, khả năng mở rộng liên tục, hiệu năng cao và nhiều hơn nữa - tất cả trên các máy chủ phân phối hiệu quả về chi phí! HBase có một bản đồ sắp xếp đa chiều Bắt đầu từ những điều cơ bản, một
bản đồ
(còn được gọi là
mảng kết hợp
) là một bộ sưu tập trừu tượng các cặp khóa-giá trị, chìa khóa là duy nhất. Định nghĩa này rất quan trọng đối với sự hiểu biết của bạn về HBase bởi vì mô hình dữ liệu HBase thường được mô tả theo những cách khác nhau - thường không hoàn toàn như là một cửa hàng theo định hướng cột.
HBase ở dưới cùng là kho dữ liệu giá trị khóa mà mỗi khóa là duy nhất - có nghĩa là nó xuất hiện nhiều nhất trong kho dữ liệu HBase. Ngoài ra, bản đồ được sắp xếp và nhiều chiều. Các phím được lưu trữ trong HBase và được sắp xếp theo thứ tự byte-lexicography. Mỗi giá trị có thể có nhiều phiên bản, làm cho mô hình dữ liệu đa chiều. Theo mặc định, các phiên bản dữ liệu được thực hiện với một dấu thời gian.