• 从Hbase shell理解列式存储


    列存储和行存储在理解上的差别挺大,特别是在非常数据行存储之后。

    在行存储中,每张表的结构是固定的,某一列可以没有值但是这一列是必须在的。那么可以理解行存储的数据是结构化的。
    但是列存储确有每行的数据却是可以不一致的。

    那么,以Hbase来理解列存储。

    知识点一

    在Hbase中也有表的概念,在定义表时需要指定列族名,每个表可以有多个列族。
    而每个列族中在写数据时,可以动态的指定列名,每个列族中可以包含多列。
    从这两个操作可以看出Hbase对于数据的组合形式的管理是非常的松散的。可以说完全的交给用户了。所以,Hbase适合存储半结构化数据或者非结构化数据。

    知识点二

    在向Hbase中写入数据时,需要指定RowKey。我认为RowKey和行存储结构中的Row的概念不一样。在行存储结构中每一次数据的写入都是一行数据。但是Hbase中多次写入可以表示写一行数据。
    而RowKey其实是一种逻辑行,用来表示多次写入的数据,其实一行的数据。

    知识点三

    存储数据是为了查询。所以,只要能按照用户的需要查询到相应的数据即可,而不是非得要是一张二维表。

    其他

    建议按照Hbase官方文档,运行Hbase shell中的命令操作一下,有助于加深理解。附带官方文档链接:http://hbase.apache.org/book.html#quickstart

  • 相关阅读:
    Python中使用MongoEngine
    Python中MongoDB使用
    JAVA 日期相关API (JDK 8 新增)
    JAVA 日期相关API(JDK 8 之前)
    StringBuffer 和StringBuilder
    String 类型转换
    String类常用方法
    JAVA String类
    关于线程锁的释放和保留
    java线程同步--使用线程池
  • 原文地址:https://www.cnblogs.com/hnrainll/p/12936448.html
Copyright © 2020-2023  润新知