HBase

HBase là một cơ sở dữ liệu phân tán không quan hệ mã nguồn mở được mô phỏng theo Bigtable của Google và được viết bằng Java. Nó được phát triển như một phần của dự án Apache Hadoop của Apache Software Foundation và chạy trên HDFS hoặc Alluxio, cung cấp các khả năng giống như Bigtable cho Hadoop.

Giới thiệu về HBase

HBase là một cơ sở dữ liệu phân tán mã nguồn mở xây dựng dựa trên kiến trúc Hadoop. Nó được thiết kế để xử lý dữ liệu lớn và có khả năng mở rộng cao, giúp các tổ chức và doanh nghiệp lưu trữ, quản lý và truy xuất dữ liệu một cách hiệu quả. Trong bài viết này, chúng ta sẽ khám phá chi tiết về HBase, từ đặc điểm, cấu trúc đến tính năng và ứng dụng của nó.

hbase.png

1. Đặc điểm của HBase:

2. Cấu trúc của HBase:

HBase sử dụng một cấu trúc bảng dữ liệu dựa trên hàng và cột. Bảng được chia thành các hàng (rows) và mỗi hàng chứa nhiều cột (columns). Các hàng được xác định bằng một khóa chính (primary key), trong khi các cột được xác định bằng tên cột (column name). Mỗi cột chứa một giá trị (value) và một nhãn thời gian (timestamp) cho phép lưu trữ nhiều phiên bản của cùng một giá trị.

3. Tính năng của HBase:

4. Ứng dụng của HBase:

Tóm lại, HBase là một cơ sở dữ liệu phân tán và mở rộng được thiết kế để xử lý dữ liệu lớn. Với khả năng mở rộng, tính nhất quán và hiệu suất cao, HBase đã trở thành một công cụ quan trọng cho việc lưu trữ và truy xuất dữ liệu trong các hệ thống xử lý dữ liệu lớn và ứng dụng có yêu cầu cao về hiệu suất.

So sánh HBase và RDBMS

HBase và RDBMS (Relational Database Management System) là hai loại cơ sở dữ liệu có những đặc điểm và ứng dụng khác nhau. Dưới đây là một so sánh chi tiết giữa HBase và RDBMS từ nhiều khía cạnh khác nhau:

hbase.png

1. Cấu trúc dữ liệu
2. Khả năng mở rộng
3. Hiệu suất
4. Tính nhất quán dữ liệu
5. Ứng dụng
6. Tính linh hoạt

Tóm lại, RDBMS và HBase có những đặc điểm và ứng dụng riêng biệt. RDBMS thích hợp cho các ứng dụng yêu cầu tính toán phức tạp và truy vấn đa dạng, trong khi HBase là lựa chọn tốt cho việc xử lý dữ liệu lớn và việc truy xuất nhanh chóng trên quy mô lớn.

HBase được thiết kế để xử lý các tập dữ liệu lớn và có khả năng mở rộng tuyến tính, trong khi RDBMS không được thiết kế để xử lý các tập dữ liệu lớn và không có khả năng mở rộng tuyến tính. RDBMS có tính nhất quán cao hơn so với HBase, trong khi HBase có tính linh hoạt cao hơn so với RDBMS.

Kiến trúc của HBase

HBase là một hệ thống cơ sở dữ liệu phân tán và có khả năng mở rộng tuyến tính. HBase được thiết kế để lưu trữ và xử lý các tập dữ liệu lớn.

HBase Architecture.PNG

Các thành phần chính của HBase bao gồm:

1. HMaster

HMaster là thành phần quản lý cụm HBase. HMaster quản lý các bảng (table), các cụm máy tính (region server), các định vị (location) của các cột và các hàng trong bảng, và các thay đổi trong cấu trúc của bảng. HMaster cũng quản lý các yêu cầu của khách hàng (client request) và phân phối chúng đến các region server tương ứng.

2. Region Server

Region Server chịu trách nhiệm lưu trữ và xử lý các dữ liệu của một hoặc nhiều bảng trong HBase. Region Server thường được triển khai trên các cụm máy tính riêng biệt trong mạng. Mỗi Region Server quản lý một hoặc nhiều phân vùng (region) của các bảng trong HBase. Các phân vùng được phân phối đồng đều trên các Region Server để đảm bảo tính cân bằng tải trong hệ thống.

3. ZooKeeper

ZooKeeper là một dịch vụ phân tán chịu trách nhiệm quản lý thông tin cấu hình và trạng thái của các thành phần trong HBase. ZooKeeper cung cấp các tính năng như cơ chế khóa (locking), đồng bộ hoá (synchronization), và phân phối (distribution) để đảm bảo tính nhất quán và độ tin cậy của hệ thống.

4. HDFS

HDFS (Hadoop Distributed File System) là hệ thống lưu trữ phân tán được sử dụng để lưu trữ dữ liệu của HBase. HDFS cung cấp tính năng lưu trữ dữ liệu trên nhiều nút máy tính trong mạng, giúp đảm bảo tính bền vững và khả năng mở rộng của hệ thống.

5. HBase Client

HBase Client là thành phần cung cấp API để khách hàng có thể truy xuất và thay đổi dữ liệu trong HBase. HBase Client cung cấp các phương thức để thực hiện các thao tác như tìm kiếm dữ liệu, chèn dữ liệu, cập nhật dữ liệu, xóa dữ liệu, và quản lý cấu trúc của bảng.

6. Tổng kết

Trên đây là một số thành phần chính của kiến trúc của HBase. HBase được thiết kế để lưu trữ và xử lý các tập dữ liệu lớn, và có khả năng mở rộng tuyến tính. HBase cũng hỗ trợ các tính năng như tính nhất quán cao, tính sẵn sàng cao, tính linh hoạt cao, và tính bảo mật cao.

Hướng dẫn cài đặt HBase trên Centos

Để cài đặt HBase trên CentOS, bạn cần làm theo các bước sau:

hbase.png

- Cài đặt Java:

sudo yum install java-1.8.0-openjdk

- Tải HBase từ trang web chính thức:

wget <https://www.apache.org/dist/hbase/2.4.7/hbase-2.4.7-bin.tar.gz>

- Giải nén tệp tin HBase:

tar -xvzf hbase-2.4.7-bin.tar.gz

- Di chuyển thư mục HBase:

cd hbase-2.4.7/

- Cấu hình tệp tin hbase-env.sh:

vi conf/hbase-env.sh

Thêm đoạn mã sau vào cuối tệp tin:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HBASE_MANAGES_ZK=false

- Chỉnh sửa tệp tin hbase-site.xml:

vi conf/hbase-site.xml

Thêm đoạn mã sau vào cuối tệp tin:

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///home/hbase-2.4.7/data</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/hbase-2.4.7/zookeeper</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
    <description>
      Controls whether HBase will check for stream capabilities (hflush/hsync).
      Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
      with the 'file://' scheme, but be mindful of the NOTE below.
    </description>
  </property>
</configuration>

- Tạo thư mục để lưu trữ dữ liệu và khởi động HBase:

mkdir data
./bin/start-hbase.sh

- Kiểm tra xem HBase đã hoạt động chưa:

jps

Nếu bạn nhìn thấy HMasterHRegionServer trong kết quả, có nghĩa là HBase đã được cài đặt thành công.

HBase Shell

HBase cung cấp một giao diện dòng lệnh (HBase shell) cho phép bạn truy cập và thao tác với dữ liệu trong HBase. HBase shell là một công cụ mạnh mẽ cho phép bạn thực hiện các thao tác như tạo bảng, thêm dữ liệu vào bảng, xóa dữ liệu khỏi bảng, và truy vấn dữ liệu từ bảng.

hbase.png

Để bắt đầu sử dụng HBase shell, bạn cần mở cửa sổ dòng lệnh và nhập lệnh sau:

hbase shell

Sau đó, bạn có thể sử dụng các lệnh HBase shell để thao tác với dữ liệu trong HBase. Các lệnh này bao gồm:

Ví dụ, để tạo một bảng mới với tên là mytable và hai cột là col1col2, bạn có thể nhập lệnh sau:

create 'mytable', 'col1', 'col2'

Sau đó, bạn có thể sử dụng lệnh put để thêm dữ liệu vào bảng mytable:

put 'mytable', 'row1', 'col1', 'value1'
put 'mytable', 'row1', 'col2', 'value2'

Lệnh này sẽ thêm hai giá trị value1value2 vào hàng row1 của bảng mytable, trong hai cột col1col2.

HBase Shell là một công cụ mạnh mẽ để quản lý và tương tác với dữ liệu trong HBase. Nó cung cấp các chức năng cơ bản để tạo, đọc, ghi và xóa dữ liệu trong HBase từ giao diện dòng lệnh dễ sử dụng.

HBase - Create table

Trong HBase, để tạo một bảng mới, bạn sử dụng lệnh create. Bảng trong HBase được định nghĩa bởi tên bảng và danh sách các cột. Các cột trong HBase được xác định bởi tên cột và các thuộc tính của cột đó.

hbase.png

Ví dụ, để tạo bảng mới với tên là mytable và hai cột là col1col2, bạn có thể sử dụng lệnh sau:

create 'mytable', 'col1', 'col2'

Khi bạn tạo một bảng mới, HBase sẽ tự động tạo một số cột thông tin, bao gồm rowkey, column family, và column qualifier. Dữ liệu trong HBase được tổ chức thành các hàng, mỗi hàng có một rowkey duy nhất để xác định hàng đó. Mỗi hàng có thể chứa nhiều cột, được phân loại thành các column family. Mỗi column family có thể chứa nhiều column qualifier, là các cột còn lại.

Sau khi bạn đã tạo bảng trong HBase, bạn có thể sử dụng lệnh put để thêm dữ liệu vào bảng. Ví dụ, để thêm một giá trị vào hàng row1 của bảng mytable, trong cột col1, bạn có thể sử dụng lệnh sau:

put 'mytable', 'row1', 'col1', 'value1'

Lệnh này sẽ thêm giá trị value1 vào hàng row1 của bảng mytable, trong cột col1. Bạn có thể thêm nhiều giá trị vào cùng một hàng bằng cách sử dụng nhiều lệnh put khác nhau.

Ngoài ra, bạn cũng có thể sử dụng lệnh scan để truy vấn và lấy dữ liệu từ bảng. Lệnh này cho phép bạn duyệt qua tất cả các hàng trong bảng và lấy dữ liệu từ mỗi cột. Ví dụ, để lấy tất cả dữ liệu từ bảng mytable, bạn có thể sử dụng lệnh sau:

scan 'mytable'

Lệnh này sẽ trả về tất cả dữ liệu trong bảng mytable. Bạn có thể sử dụng các tham số khác của lệnh scan để lọc và sắp xếp dữ liệu theo các tiêu chí khác nhau.

Đó là một số khái niệm cơ bản về cách tạo bảng và thêm dữ liệu vào bảng trong HBase. HBase cung cấp nhiều lệnh và tính năng khác để quản lý và truy vấn dữ liệu, tùy thuộc vào nhu cầu của bạn.

HBase - Listing tables

Để liệt kê các bảng hiện có trong HBase, bạn có thể sử dụng HBase Shell và thực hiện các bước sau:

hbase.png

-  Khởi động HBase Shell: Mở terminal và chạy lệnh sau:

hbase shell

- Liệt kê các bảng: Sử dụng lệnh list để hiển thị danh sách các bảng có sẵn trong HBase:

list

HBase Shell sẽ hiển thị danh sách các bảng, cùng với các thông tin khác như tên bảng, số lượng gia đình cột (column family) và các thông số khác.

- Ví dụ:

TABLE
my_table
another_table
2 row(s)

Lưu ý: Khi sử dụng HBase Shell, hãy đảm bảo đã khởi động HBase và đang chạy trong môi trường Shell để có thể thực hiện các lệnh tương tác với HBase.

HBase - Disabling table

Để tạm dừng một bảng trong HBase, bạn có thể sử dụng lệnh disable trong HBase shell. Lệnh này cho phép bạn tạm dừng bảng và ngăn chặn các hoạt động ghi mới vào bảng. Tuy nhiên, dữ liệu trong bảng vẫn được lưu trữ và có thể được truy cập.

hbase.png

Để sử dụng lệnh disable, bạn chỉ cần nhập lệnh sau trong HBase shell:

disable 'ten_bang'

Trong đó, ten_bang là tên của bảng mà bạn muốn tạm dừng. Lệnh này sẽ ngay lập tức tạm dừng bảng và ngăn chặn các hoạt động ghi mới vào bảng.

Khi bảng đã bị tạm dừng, bạn có thể thực hiện một số thao tác khác như sửa đổi cấu trúc của bảng hoặc sao chép dữ liệu từ bảng này sang bảng khác.

HBase - Enabling table

Để kích hoạt lại một bảng trong HBase, bạn có thể sử dụng lệnh enable trong HBase shell. Lệnh này cho phép bạn kích hoạt lại bảng và cho phép các hoạt động ghi mới vào bảng.

hbase.png

Để sử dụng lệnh enable, bạn chỉ cần nhập lệnh sau trong HBase shell:

enable 'ten_bang'

Trong đó, ten_bang là tên của bảng mà bạn muốn kích hoạt lại. Lệnh này sẽ kích hoạt lại bảng và cho phép các hoạt động ghi mới vào bảng.

HBase - Describe table

Để mô tả các thuộc tính của một bảng trong HBase, bạn có thể sử dụng lệnh describe trong HBase shell. Lệnh này sẽ hiển thị thông tin về các cột trong bảng, cũng như các thuộc tính khác của bảng.

hbase.png

Để sử dụng lệnh describe, bạn chỉ cần nhập lệnh sau trong HBase shell:

describe 'tên_bảng'

Trong đó, 'tên_bảng' là tên của bảng mà bạn muốn mô tả. Lệnh này sẽ hiển thị thông tin chi tiết về bảng, bao gồm các cột và các thuộc tính khác của bảng.

Đó là cách sử dụng lệnh describe để mô tả các thuộc tính của một bảng trong HBase.

HBase - Alter table

Để sửa đổi cấu trúc của một bảng trong HBase, bạn có thể sử dụng lệnh alter trong HBase shell. Lệnh này cho phép bạn thêm hoặc xóa các cột, thay đổi tên bảng, thêm hoặc xóa các thuộc tính của bảng, và nhiều hơn nữa.

hbase.png

Để sử dụng lệnh alter, bạn chỉ cần nhập lệnh sau trong HBase shell:

alter 'ten_bang', {OPTIONS}

Trong đó, ten_bang là tên của bảng mà bạn muốn sửa đổi, và {OPTIONS} là một danh sách các tuỳ chọn để thực hiện các thay đổi cần thiết trên bảng.

Bạn có thể sử dụng các tuỳ chọn sau để sửa đổi bảng trong HBase:

Ví dụ, để thêm một cột mới vào bảng mytable với tên là new_column, bạn có thể nhập lệnh sau:

alter 'mytable', {NAME => 'new_column', VERSIONS => 1}

Lệnh này sẽ thêm một cột mới với tên là new_column vào bảng mytable, với một phiên bản.

Đó là cách sử dụng lệnh alter để sửa đổi cấu trúc của một bảng trong HBase.

HBase - Drop table

Để xóa một bảng trong HBase, bạn có thể sử dụng lệnh disable để tạm dừng bảng trước khi xóa. Sau đó, bạn có thể sử dụng lệnh drop để xóa bảng.

hbase.png

Để tạm dừng một bảng trong HBase, bạn có thể sử dụng lệnh disable trong HBase shell. Lệnh này cho phép bạn tạm dừng bảng và ngăn chặn các hoạt động ghi mới vào bảng. Tuy nhiên, dữ liệu trong bảng vẫn được lưu trữ và có thể được truy cập.

Để sử dụng lệnh disable, bạn chỉ cần nhập lệnh sau trong HBase shell:

disable 'ten_bang'

Trong đó, ten_bang là tên của bảng mà bạn muốn tạm dừng. Lệnh này sẽ ngay lập tức tạm dừng bảng và ngăn chặn các hoạt động ghi mới vào bảng.

Sau khi bảng đã bị tạm dừng, bạn có thể sử dụng lệnh drop để xóa bảng. Để sử dụng lệnh drop, bạn chỉ cần nhập lệnh sau trong HBase shell:

drop 'ten_bang'

Trong đó, ten_bang là tên của bảng mà bạn muốn xóa. Lệnh này sẽ xóa bảng và các dữ liệu liên quan khỏi HBase.

Đó là cách sử dụng lệnh disabledrop để tạm dừng và xóa bảng trong HBase.

HBase - Put data

Để thêm dữ liệu vào bảng trong HBase, bạn có thể sử dụng lệnh put. Lệnh put cho phép bạn thêm một giá trị mới vào một hàng cụ thể trong bảng của bạn. Để sử dụng lệnh put, bạn cần chỉ định tên bảng, tên hàng, tên cột và giá trị bạn muốn thêm vào.

hbase.png

Cú pháp của lệnh put như sau:

put 'table_name', 'row_key', 'column_family:column_name', 'value'

Trong đó:

Ví dụ, để thêm một giá trị John vào hàng 1 của bảng user_table trong cột info:name, bạn có thể sử dụng lệnh sau:

put 'user_table', '1', 'info:name', 'John'

Lệnh này sẽ thêm giá trị John vào hàng 1 của bảng user_table trong cột info:name.

Bạn cũng có thể thêm nhiều giá trị cho cùng một hàng bằng cách sử dụng nhiều lệnh put khác nhau. Ví dụ, để thêm giá trị 30 vào cột info:age của hàng 1 trong bảng user_table, bạn có thể sử dụng lệnh sau:

put 'user_table', '1', 'info:age', '30'

Lệnh này sẽ thêm giá trị 30 vào cột info:age của hàng 1 trong bảng user_table.

Với lệnh put, bạn có thể thêm bất kỳ giá trị nào cho bất kỳ hàng hoặc cột nào trong bảng của bạn. Điều này giúp bạn tạo ra một bảng linh hoạt và phù hợp với nhu cầu của bạn.

HBase - Update data

Để cập nhật dữ liệu trong bảng HBase, bạn có thể sử dụng lệnh put. Lệnh put cho phép bạn cập nhật một giá trị mới vào một hàng cụ thể trong bảng của bạn.

hbase.png

Để sử dụng lệnh put, bạn cần chỉ định tên bảng, tên hàng, tên cột và giá trị bạn muốn cập nhật.

Cú pháp của lệnh put như sau:

put 'ten_bang', 'hang_key', 'ten_cot', 'gia_tri'

Trong đó:

Ví dụ, để cập nhật giá trị của cột age thành 35 cho hàng 1 trong bảng user_table, bạn có thể sử dụng lệnh sau:

put 'user_table', '1', 'info:age', '35'

Lệnh này sẽ cập nhật giá trị của cột age thành 35 cho hàng 1 trong bảng user_table.

Nếu bạn muốn cập nhật nhiều giá trị cho cùng một hàng, bạn có thể sử dụng nhiều lệnh put khác nhau. Ví dụ, để cập nhật giá trị của cột age thành 35 và giá trị của cột name thành John cho hàng 1 trong bảng user_table, bạn có thể sử dụng lệnh sau:

put 'user_table', '1', 'info:age', '35'
put 'user_table', '1', 'info:name', 'John'

Lệnh này sẽ cập nhật giá trị của cột age thành 35 và giá trị của cột name thành John cho hàng 1 trong bảng user_table.

Với lệnh put, bạn có thể cập nhật bất kỳ giá trị nào cho bất kỳ hàng hoặc cột nào trong bảng của bạn. Điều này giúp bạn tạo ra một bảng linh hoạt và phù hợp với nhu cầu của bạn.

HBase - Read data

Để đọc dữ liệu trong HBase, bạn có thể sử dụng lệnh get. Lệnh get cho phép bạn lấy giá trị của một cột cụ thể trong hàng của bảng của bạn. Để sử dụng lệnh get, bạn cần chỉ định tên bảng, tên hàng và tên cột.

hbase.png

Cú pháp của lệnh get như sau:

get 'ten_bang', 'hang_key', 'ten_cot'

Trong đó:

Ví dụ, để lấy giá trị của cột age cho hàng 1 trong bảng user_table, bạn có thể sử dụng lệnh sau:

get 'user_table', '1', 'info:age'

Lệnh này sẽ trả về giá trị của cột age cho hàng 1 trong bảng user_table.

Nếu bạn muốn lấy nhiều giá trị cho cùng một hàng, bạn có thể sử dụng nhiều lệnh get khác nhau. Ví dụ, để lấy giá trị của cột age và giá trị của cột name cho hàng 1 trong bảng user_table, bạn có thể sử dụng lệnh sau:

get 'user_table', '1', 'info:age'
get 'user_table', '1', 'info:name'

Lệnh này sẽ trả về giá trị của cột age và giá trị của cột name cho hàng 1 trong bảng user_table.

Với lệnh get, bạn có thể lấy bất kỳ giá trị nào cho bất kỳ hàng hoặc cột nào trong bảng của bạn. Điều này giúp bạn tạo ra một bảng linh hoạt và phù hợp với nhu cầu của bạn.

HBase - Delete data

Để xóa dữ liệu trong HBase, bạn có thể sử dụng lệnh delete. Lệnh delete cho phép bạn xóa giá trị của một cột cụ thể trong hàng của bảng của bạn. Để sử dụng lệnh delete, bạn cần chỉ định tên bảng, tên hàng và tên cột.

hbase.png

Cú pháp của lệnh delete như sau:

delete 'ten_bang', 'hang_key', 'ten_cot'

Trong đó:

Ví dụ, để xóa giá trị của cột age cho hàng 1 trong bảng user_table, bạn có thể sử dụng lệnh sau:

delete 'user_table', '1', 'info:age'

Lệnh này sẽ xóa giá trị của cột age cho hàng 1 trong bảng user_table.

Nếu bạn muốn xóa nhiều giá trị cho cùng một hàng, bạn có thể sử dụng nhiều lệnh delete khác nhau. Ví dụ, để xóa giá trị của cột age và giá trị của cột name cho hàng 1 trong bảng user_table, bạn có thể sử dụng lệnh sau:

delete 'user_table', '1', 'info:age'delete 'user_table', '1', 'info:name'

Lệnh này sẽ xóa giá trị của cột age và giá trị của cột name cho hàng 1 trong bảng user_table.

Với lệnh delete, bạn có thể xóa bất kỳ giá trị nào cho bất kỳ hàng hoặc cột nào trong bảng của bạn. Điều này giúp bạn tạo ra một bảng linh hoạt và phù hợp với nhu cầu của bạn.

HBase - Scan table

Để quét dữ liệu trong HBase, bạn có thể sử dụng lệnh scan.

hbase.png

Lệnh scan cho phép bạn lấy danh sách các hàng và cột trong bảng của bạn. Để sử dụng lệnh scan, bạn chỉ cần nhập lệnh sau trong HBase shell:

scan 'ten_bang'

Trong đó, ten_bang là tên của bảng bạn muốn quét. Lệnh này sẽ liệt kê tất cả các hàng và cột trong bảng của bạn.

Bạn cũng có thể sử dụng các tùy chọn bổ sung để hạn chế kết quả của lệnh scan. Ví dụ, để chỉ lấy các hàng từ hàng 1 đến hàng 10 trong bảng user_table, bạn có thể sử dụng lệnh sau:

scan 'user_table', {STARTROW => '1', ENDROW => '10'}

Lệnh này sẽ chỉ liệt kê các hàng từ hàng 1 đến hàng 10 trong bảng user_table.

Bạn cũng có thể sử dụng các tùy chọn khác để hạn chế kết quả của lệnh scan, bao gồm các tùy chọn cho số cột trả về, số hàng trả về, v.v.

Với lệnh scan, bạn có thể lấy danh sách các hàng và cột trong bảng của bạn để có cái nhìn tổng quan về dữ liệu của bạn. Điều này giúp bạn đưa ra các quyết định về cách tổ chức và truy xuất dữ liệu của mình trong HBase.

HBase - Count table

Để đếm số hàng trong bảng HBase, bạn có thể sử dụng lệnh count.

hbase.png

Lệnh count sẽ trả về số hàng trong bảng của bạn. Để sử dụng lệnh count, bạn cần chỉ định tên bảng của bạn như sau:

count 'ten_bang'

Trong đó, ten_bang là tên của bảng bạn muốn đếm số hàng.

Ví dụ, để đếm số hàng trong bảng user_table, bạn có thể sử dụng lệnh sau:

count 'user_table'

Lệnh này sẽ trả về số hàng trong bảng user_table.

Ngoài ra, bạn có thể sử dụng các tùy chọn bổ sung để hạn chế kết quả của lệnh count. Ví dụ, để chỉ đếm số hàng từ hàng 1 đến hàng 10 trong bảng user_table, bạn có thể sử dụng lệnh sau:

count 'user_table', {STARTROW => '1', ENDROW => '10'}

Lệnh này sẽ chỉ đếm số hàng từ hàng 1 đến hàng 10 trong bảng user_table.

Với lệnh count, bạn có thể đếm số hàng trong bảng của bạn để có cái nhìn tổng quan về dữ liệu của bạn. Điều này giúp bạn đưa ra các quyết định về cách tổ chức và truy xuất dữ liệu của mình trong HBase.

HBase - Truncate table

Trong HBase, khi bạn muốn xóa toàn bộ dữ liệu trong một bảng, không có lệnh truncate để làm điều này. Tuy nhiên, bạn có thể sử dụng lệnh disable để tạm ngừng bảng và sau đó sử dụng lệnh deleteall để xóa toàn bộ dữ liệu trong bảng đó. Sau khi đã xóa toàn bộ dữ liệu, bạn có thể kích hoạt lại bảng.

hbase.png

Để tạm ngừng bảng, bạn có thể sử dụng lệnh disable như sau:

disable 'ten_bang'

Ở đây, ten_bang là tên của bảng bạn muốn tạm ngừng.

Sau khi tạm ngừng bảng, bạn có thể sử dụng lệnh deleteall để xóa toàn bộ dữ liệu trong bảng. Lệnh deleteall sẽ xóa tất cả các cột và hàng trong bảng của bạn. Ví dụ:

deleteall 'ten_bang'

Lệnh này sẽ xóa toàn bộ dữ liệu trong bảng ten_bang.

Cuối cùng, để kích hoạt lại bảng, bạn có thể sử dụng lệnh enable như sau:

enable 'ten_bang'

Lệnh này sẽ kích hoạt lại bảng ten_bang.

Lưu ý rằng khi sử dụng lệnh deleteall, toàn bộ dữ liệu trong bảng sẽ bị xóa mà không thể khôi phục lại. Do đó, bạn cần chắc chắn rằng bạn đã sao lưu toàn bộ dữ liệu trước khi sử dụng lệnh này.

HBase - Security Grant, Revoke, User_Permission

Trong HBase, bạn có thể sử dụng tính năng phân quyền để kiểm soát quyền truy cập vào dữ liệu. Tính năng này cho phép bạn xác định các quyền truy cập cho người dùng hoặc nhóm người dùng và giới hạn truy cập của họ vào bảng hoặc nhóm cột cụ thể.

hbase.png

Để sử dụng tính năng phân quyền trong HBase, bạn cần kích hoạt tính năng này trên máy chủ HBase của mình. Sau đó, bạn có thể sử dụng lệnh grant để cấp quyền truy cập cho người dùng hoặc nhóm người dùng. Ví dụ, để cấp quyền truy cập cho người dùng có tên là user1 vào bảng user_table, bạn có thể sử dụng lệnh sau:

grant 'user1', 'RWC', 'user_table'

Trong đó, RWC là quyền truy cập được cấp cho người dùng. Bạn có thể sử dụng các ký tự sau để xác định quyền truy cập của người dùng:

Bạn cũng có thể sử dụng các ký tự sau để xác định quyền truy cập của người dùng cho tất cả các bảng:

Ngoài ra, bạn cũng có thể sử dụng lệnh revoke để thu hồi quyền truy cập của người dùng hoặc nhóm người dùng. Ví dụ, để thu hồi quyền truy cập của người dùng có tên là user1 vào bảng user_table, bạn có thể sử dụng lệnh sau:

revoke 'user1', 'user_table'

Để xem danh sách quyền truy cập hiện có cho người dùng hoặc nhóm người dùng, bạn có thể sử dụng lệnh user_permission. Ví dụ, để xem danh sách quyền truy cập hiện có cho người dùng có tên là user1, bạn có thể sử dụng lệnh sau:

user_permission 'user1'

Tính năng phân quyền trong HBase giúp bạn kiểm soát quyền truy cập vào dữ liệu của mình và đảm bảo rằng chỉ những người dùng được cấp quyền mới có thể truy cập vào dữ liệu.