拓展:
NoSQL数据库是一类非关系型数据库,设计上为了处理大规模数据存储需求,特别是对于结构化、半结构化和非结构化数据。与传统的关系型数据库(如MySQL、PostgreSQL)相比,NoSQL数据库具有以下几个主要特征:
- 灵活的模式:NoSQL数据库不需要预定义的表结构,可以存储不同结构的数据,这使得数据模型更加灵活和易于扩展。
- 水平扩展性:NoSQL数据库通常支持水平扩展,通过添加更多的服务器来增加存储和处理能力,这对大规模数据处理非常重要。
- 高性能:在处理大量读写操作时,NoSQL数据库通常具有更高的性能,适合于高并发访问场景。
- 高可用性和分布式架构:NoSQL数据库通常设计为分布式系统,可以在多个节点上复制数据,确保系统的高可用性和容错能力。
根据数据模型的不同,NoSQL数据库可以分为以下几类:
- 文档型数据库:以JSON、BSON或XML等格式存储文档。每个文档都是一个自包含的数据单元,适合存储复杂和嵌套的数据结构。例如:MongoDB、CouchDB。
- 键值型数据库:通过键值对的方式存储数据,通常具有非常快速的读写性能,适合缓存和会话管理等场景。例如:Redis、DynamoDB。
- 列族型数据库:数据以列的方式存储,适合大数据分析和实时数据处理。例如:Cassandra、HBase。
- 图数据库:专门用于存储和查询图结构数据,适合社交网络、推荐系统等需要复杂关系查询的应用。例如:Neo4j、JanusGraph。
NoSQL数据库的选择通常基于具体应用场景和需求,例如数据模型的复杂性、读写性能要求、扩展性需求等。
HBase Shell命令行操作
常见DDL(Data Definition Language,数据定义语言)命令概览
创建表:create '表名','列族名1','列族名2','列族名3'
如:create 'student', 'info', {NAME => 'info', VERSIONS => 1000}
{NAME => 'info', VERSIONS => 1000}
是用于指定列族属性的选项
列出当前HBase中存在的所有表:list
显示指定表的相关信息,包括表结构和属性:describe '表名'
修改已经存在的表结构,包括添加新的列族,修改列族属性等:
修改表结构:alter '表名',{NAME => 'info', VERSIONS => 1001}
新增列族:alter '表名','新增列族名称'
删除列族:alter '表名',{NAME => '列族名称', METHOD => 'delete'}
禁用表(要删除表,必须先把要删除的表禁用了先):disable '表名'
启用表:enable '表名'
删除表:drop '表名'
查看表是否存在:exists '表名'