The HBase Data Model is made up of the following logical components:
- Tables: HBase tables are collections of rows and columns. Basic CRUD operations, i.e., Create, Read, Update and Delete, can be performed on tables using HBase shell commands or the API.
- Rows: Rows are a collection of column families. Rows are sorted on the basis of the RowKey of a table. A RowKey is used to uniquely identify a record. The design of the row key optimises the scan, as related rows are stored together, or rows that are read together are stored together.
- Column families: These are collections of columns. The column qualifiers integrated with the column family name are used to identify a single column. Each row in an HBase table can have multiple column families, and one or more columns can be associated with each column family.
- Version: The data in an HBase table is stored in a cell. A cell is a combination of a RowKey, a column family and a column qualifier. It contains a value and a timestamp. The data stored in a cell can have multiple versions. Each version is identified using its own timestamp.
Data Model of HBase