
In the previous blog, HBase 2, we introduced CRUD Operation that is a function of Client basic API on HBase. In this blog, we are going to talk about Client Managing API function on HBase.
Schema Definition
- Table
- All data, which are stored on HBase is grouped on ultimately one or more table.
- Naming a table follows the rule of file name as using a part of stored file path.
- Because HBase uses the way of column-oriented storage, it is not often following normalization rule like RDBMS (Existing a quite few tables)
- Table of HBase is unstacked and stored in the region
- Table Property
- Name
- The name of table cannot be started with “.” (period) or “-” (hyphen).
- Column families
- When you make a table, you should arrange a column family.
- Maximum file size
- It means the maximum size of region in the table. (Unit: byte)
- When the Region approaches at the maximum size you set, the system divides it. (Default value: 256MB)
- Column families
- HColumnDesciptor Generator
- Not being able to modify the name of column family
- The maximum number of version is three at the default value and you can decrease it by one if you don’t need to manage the version.
- Block Size
- It is similar concept with a page of RDBMS
- The default value of block size is 64KB
- The block size decides both the size of data that HBase reads in file storage and memory cache size.
- Block Cache
- It is an option to keep data in in-memory cache.
- If you have a data which is scanned only one time, it is better to make it disable not to be saved on the block cache.
- Expiration data (TTL)
- An expired data is deleted during the compaction
- the default value is lnteger.MAX_VALUE.(=Permanently saved)
- It is activated when you input a lower integer than the default value.
- In-Memory
- It guarantees to enable that every block of column family loaded on memory continues to remain.
- It is better to use an In-Memory on the column family that has small value.
- Bloom Filter
- It is used to reduce the search time when you conduct to read data that have a tendentiousness.
- The default value is false because Bloom Filter causes extra loading time on a storage space or memory.
- Replication Range (scope)
- The value of inactivation is 0. (=Default value. Not operation copy of it)
- The value of activation is 1. (It operates a copy of column family on remote cluster)
HBaseAdmin
- Basic functionality
- Functionality related to Table
- Functionality related to Schema
- Functionality related to Cluster
Common questions
Can you rename a column family after creating an HBase table?
No. The column family name is fixed at creation time. To change it, create a new family with the desired name, copy the data across with a tool such as CopyTable or a scan-and-write job, then drop the old family.
What does the TTL setting actually do in HBase?
It marks cells older than the configured number of seconds as expired. Expired cells are filtered out of get and scan results immediately, but the storage isn't reclaimed until the next major compaction removes the data from the underlying HFiles.
What is a bloom filter used for in HBase?
It lets a RegionServer skip reading an HFile during a Get when the filter can prove the requested row, or row and column, isn't present in that file. This reduces disk seeks for random lookups but adds some write overhead and storage, so it mainly pays off on Get-heavy access patterns with frequent misses.
Does HBase support SQL joins or secondary indexes natively?
No. Fast lookups work only through the row key, or a row-key range via scan. For SQL-style querying or secondary indexes, teams typically add a layer such as Apache Phoenix on top of HBase, or design the row key itself to cover the main access patterns.
Sources
About this page
Last reviewed October 30, 2026 by the Nine Bits editors. Read our editorial policy or report an error.