zoukankan      html  css  js  c++  java
  • Cassandra标准列和超级列

    列(column)是Cassandra数据模型中的最基本的数据结构单元。列是一个由列名(key)、值(value)、时间戳(timestamp)构成的三元组。在关系型数据库中,你需要先定义列的名称和和列类型来组成表结构,在插入数据的时候,客户端只需要往预先定义好的表结构插入数值就行了,数据库提供表名称和列名,客户端负责插入数据;而在Cassandra中,数据库只负责提供表名称,列名和数值是由客户端提供的。在关系型数据库中,每行都有相同的列,但在Cassandra中,每行可以有相同的列,也可以有不同的列

    标准列(Standard Columm)

    标准列的数据结构

    标准列
    名称【】 【】时间戳【】

    ['CF']['Row Key']['Column']

    列的实际存放例子

    (name=age, value=18, timestamp=1527692421898000)

    在上面的例子中,列名是年龄age,值是18。

    [default@mytest] get users['zhangpeng'];
    => (name=age, value=18, timestamp=1527692421898000)
    => (name=birthday, value=19890507, timestamp=1529333838055000)
    => (name=first, value=zhang, timestamp=1527692409752000)
    => (name=last, value=peng, timestamp=1527692416150000)

    在该例子中,标准列users中的用户“zhangpeng”作为该行数据区分其他行数据的唯一的row key(主键)。

    超级列(Super Column)

    超级列是一种特殊的列。两种列都是键/值对。但标准列的值是字节组,而超级列的值是一个子列的映射,超级列不能存储其他超级列的映射,也就是说,超级列仅允许使用一层,但是会它不并不限制列的数量。

    超级列的数据结构包含它的名字和它存储的列,它的名字和标准列一样,但是存储的值是一个列的映射。

    超级列
    名称【】 col1:key1,col2:key2,col3:key3,col4:key4 【】时间戳【】

    ['CF']['Row Key']['SuperColumn']['SubColumn']

    [default@mytest] create column family hg18
    ...    with column_type = Super
    ...    and comparator = UTF8Type
    ...    and key_validation_class=UTF8Type
    ...    and default_validation_class=UTF8Type
    ...    and subcomparator = UTF8Type
    ...    and column_metadata = [
    ...      {column_name:isExon, validation_class:UTF8Type}
    ...      {column_name:cons, validation_class:IntegerType}
    ...    ];
    278c4430-bcea-3ae9-a845-079687db907d
    
    [default@mytest] set hg18['chr1:000000004']['geneFeatures']['isExon'] = 'T';
    Value inserted.
    Elapsed time: 2.76 msec(s).
    [default@mytest] set hg18['chr1:000000004']['conservation']['cons'] = '13';
    Value inserted.
    Elapsed time: 1.74 msec(s).
    [default@mytest] list hg18;
    Using default limit of 100
    Using default cell limit of 100
    -------------------
    RowKey: chr1:000000004
    => (super_column=conservation,
         (name=cons, value=13, timestamp=1529817745740000))
    => (super_column=geneFeatures,
         (name=isExon, value=T, timestamp=1529817725916000))
    
    1 Row Returned.
    Elapsed time: 97 msec(s).
  • 相关阅读:
    06.章节页面接口开发
    05.课程主页面三个接口开发
    python高级(六)——用一等函数实现设计模式
    python高级(五)—— python函数(一等对象)
    python高级(四)—— 文本和字节序列(编码问题)
    python高级(三)—— 字典和集合(泛映射类型)
    python高级——目录
    python高级(二)—— python内置序列类型
    python高级(一)—— python数据模型(特殊方法)
    python实现百度地图API获取某地址的经纬度
  • 原文地址:https://www.cnblogs.com/ilifeilong/p/9219729.html
Copyright © 2011-2022 走看看