Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra宽行/动态列_Cassandra_Cql_Cql3_Dynamic Columns_Cassandra 3.0 - Fatal编程技术网

Cassandra宽行/动态列

Cassandra宽行/动态列,cassandra,cql,cql3,dynamic-columns,cassandra-3.0,Cassandra,Cql,Cql3,Dynamic Columns,Cassandra 3.0,我是NoSQL的新手;所以,我试图理解一些卡桑德拉的概念,我无法从我所研究的几十个资料中真正得到这些概念 我应该考虑宽行和动态列作为同义词;或者它们是两个不同的概念 将集合类型的列视为宽行是否正确 在我看来,宽行是来自Cassandra早期版本的一个概念,只能通过Thrift API创建;而集合类型是宽行的现代版本 集合类型是否仍限于64k元素?或者在CQL 3之后,该限制已被取消 一个常见的误解是CQL不支持动态列或宽行。相反,CQL旨在支持节俭模式的所有功能,但使其更容易实现 让我们看看下面

我是NoSQL的新手;所以,我试图理解一些卡桑德拉的概念,我无法从我所研究的几十个资料中真正得到这些概念

我应该考虑宽行和动态列作为同义词;或者它们是两个不同的概念
  • 将集合类型的列视为宽行是否正确
  • 在我看来,宽行是来自Cassandra早期版本的一个概念,只能通过Thrift API创建;而集合类型是宽行的现代版本
  • 集合类型是否仍限于64k元素?或者在CQL 3之后,该限制已被取消
  • 一个常见的误解是CQL不支持动态列或宽行。相反,CQL旨在支持节俭模式的所有功能,但使其更容易实现

    让我们看看下面的cql表

    CREATE TABLE data (
      sensor_id int,
      collected_at timestamp,
      volts float,
      PRIMARY KEY (sensor_id, collected_at)
    );
    
    并插入一些数据

    sensor_id | collected_at             | volts
    ----------+--------------------------+-------
       1      | 2013-06-05 15:11:00-0500 |   3.1
       1      | 2013-06-05 15:11:10-0500 |   4.3
       1      | 2013-06-05 15:11:20-0500 |   5.7
       2      | 2013-06-05 15:11:00-0500 |   3.2
       3      | 2013-06-05 15:11:00-0500 |   3.3
       3      | 2013-06-05 15:11:10-0500 |   4.3
    
    这里的集群列
    处收集的内容类似于节俭动态列。(Q.1)

    如果我们看一下这个表的内部结构

    RowKey: 1
    => (cell=2013-06-05 15:11:00-0500, value=3.1, timestamp=1370463146717000)
    => (cell=2013-06-05 15:11:10-0500, value=4.3, timestamp=1370463282090000)
    => (cell=2013-06-05 15:11:20-0500, value=5.7, timestamp=1370463282093000)
    -------------------
    RowKey: 2
    => (cell=2013-06-05 15:11:00-0500, value=3.2, timestamp=1370463332361000)
    -------------------
    RowKey: 3
    => (cell=2013-06-05 15:11:00-0500, value=3.3, timestamp=1370463332365000)
    => (cell=2013-06-05 15:11:10-0500, value=4.3, timestamp=1370463332368000)
    
    您可以看到,在
    处收集的聚类列
    使该表的行(Q.1)

    所以我们可以说,如果一个表有一个或多个集群键,我们可以称之为表范围的行

    让我们再举一个例子:

    CREATE TABLE example (
        key1 text PRIMARY KEY,
        map1 map<text,text>,
        list1 list<text>,
        set1 set<text>
    );
    
    现在看一下内部结构:

    RowKey: john
    => (column=, value=, timestamp=1374683971220000)
    => (column=map1:doug, value='555-1579', timestamp=1374683971220000)
    => (column=map1:patricia, value='555-4326', timestamp=1374683971220000)
    => (column=list1:26017c10f48711e2801fdf9895e5d0f8, value='doug', timestamp=1374683971220000)
    => (column=list1:26017c12f48711e2801fdf9895e5d0f8, value='scott', timestamp=1374683971220000)
    => (column=set1:'patricia', value=, timestamp=1374683971220000)
    => (column=set1:'scott', value=, timestamp=1374683971220000)
    
    您可以看到映射键和设置值存储为动态列,映射值和列表值存储为该列的值。它类似于宽行(Q.2)

    最后一个:集合类型映射键和集合大小限制为64k。

    • 收款(清单):收款限额:约20亿(2^31);数值大小:65535(216-1)
    • 收款(设定):收款限额:约20亿(2^31);数值大小:65535(216-1)
    • 收款(Map):收款限额:约20亿(2^31);钥匙数量:65535(216-1);数值大小:65535(216-1)
    来源:

    RowKey: john
    => (column=, value=, timestamp=1374683971220000)
    => (column=map1:doug, value='555-1579', timestamp=1374683971220000)
    => (column=map1:patricia, value='555-4326', timestamp=1374683971220000)
    => (column=list1:26017c10f48711e2801fdf9895e5d0f8, value='doug', timestamp=1374683971220000)
    => (column=list1:26017c12f48711e2801fdf9895e5d0f8, value='scott', timestamp=1374683971220000)
    => (column=set1:'patricia', value=, timestamp=1374683971220000)
    => (column=set1:'scott', value=, timestamp=1374683971220000)