
# HBase应用开发简介
#### HBase简介
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。HBase设计目标是用来解决关系型数据库在处理海量数据时的局限性。
HBase使用场景有如下几个特点：
- 处理海量数据（TB或PB级别以上）。
- 具有高吞吐量。
- 在海量数据中实现高效的随机读取。
- 具有很好的伸缩能力。
- 能够同时处理结构化和非结构化的数据。
- 不需要完全拥有传统关系型数据库所具备的ACID特性。ACID特性指原子性（Atomicity）、一致性（Consistency）、隔离性（Isolation，又称独立性）、持久性（Durability）。
- HBase中的表具有如下特点：
  - 大：一个表可以有上亿行，上百万列。
  
  - 面向列：面向列（族）的存储和权限控制，列（族）独立检索。
  
  - 稀疏：对于为空（null）的列，并不占用存储空间，因此，表可以设计的非常稀疏。
   
 
#### 接口类型简介
由于HBase本身是由java语言开发出来的，且java语言具有简洁通用易懂的特性，推荐用户使用java语言进行HBase应用程序开发。
HBase采用的接口与Apache HBase保持一致，请参见：<https://hbase.apache.org/apidocs/index.html>。
HBase通过接口调用，可提供的功能如[表1]所示。
 表1HBase接口提供的功能 
| 功能         | 说明       |
|:---|:---|
| CRUD数据读写功能 | 增查改删     |
| 高级特性       | 过滤器、协处理器 |
| 管理功能       | 表管理、集群管理 |
   
