avatar
Cassandra 里的 partition# Programming - 葵花宝典
B*r
1
最近弄cassandra,发现里面有个limit:
The maximum number of cells (rows x columns) in a single partition is 2
billion
链接: http://wiki.apache.org/cassandra/CassandraLimitations
其中让我疑惑的是partition这个概念,是说每个node里面可以有好几个partition么?
它是可以configure on the fly, 还是一开是设置就定死了的? 也就是说,如果我一开
是只有 1 partition per node, 当我的cells 超过2 billion就放不下了么?
avatar
p*2
2
一个partition应该就是一个node吧

【在 B********r 的大作中提到】
: 最近弄cassandra,发现里面有个limit:
: The maximum number of cells (rows x columns) in a single partition is 2
: billion
: 链接: http://wiki.apache.org/cassandra/CassandraLimitations
: 其中让我疑惑的是partition这个概念,是说每个node里面可以有好几个partition么?
: 它是可以configure on the fly, 还是一开是设置就定死了的? 也就是说,如果我一开
: 是只有 1 partition per node, 当我的cells 超过2 billion就放不下了么?

avatar
B*r
3

那一个column family 里面的 partition 的数目是跟整个cluster node 数目相同么,
还是自己设置? apache kafka 里面是可以自己设置partition number, cassandra 也
是一样么?
多谢!

【在 p*****2 的大作中提到】
: 一个partition应该就是一个node吧
avatar
p*2
4

,
我感觉现在都不叫CF了,叫table了。
我的理解多少个node就多少个partition。
All data for a single partition must fit (on disk) on a single machine in
the cluster. Because partition keys alone are used to determine the nodes
responsible for replicating their data, the amount of data associated with a
single key has this upper bound.

【在 B********r 的大作中提到】
:
: 那一个column family 里面的 partition 的数目是跟整个cluster node 数目相同么,
: 还是自己设置? apache kafka 里面是可以自己设置partition number, cassandra 也
: 是一样么?
: 多谢!

avatar
B*r
5

是说一个physical machine 有好几个nodes , 一个table也是分布在好几个physical
machine里面,所以如果数据超过node * limit 就加一个node就可以了 ?

【在 p*****2 的大作中提到】
:
: ,
: 我感觉现在都不叫CF了,叫table了。
: 我的理解多少个node就多少个partition。
: All data for a single partition must fit (on disk) on a single machine in
: the cluster. Because partition keys alone are used to determine the nodes
: responsible for replicating their data, the amount of data associated with a
: single key has this upper bound.

avatar
p*2
6

我觉得不考虑vnode的话,一个physical machine就是一个node。数据要是超过了,加
一台machine(node)就可以了。

【在 B********r 的大作中提到】
:
: 是说一个physical machine 有好几个nodes , 一个table也是分布在好几个physical
: machine里面,所以如果数据超过node * limit 就加一个node就可以了 ?

avatar
g*g
7
partition = nodes / replication factor. Every row can have 2 billion entries
. Storage will never run out, you can always add new nodes.
avatar
w*z
8
就是一个row 最多有2b column.

【在 B********r 的大作中提到】
: 最近弄cassandra,发现里面有个limit:
: The maximum number of cells (rows x columns) in a single partition is 2
: billion
: 链接: http://wiki.apache.org/cassandra/CassandraLimitations
: 其中让我疑惑的是partition这个概念,是说每个node里面可以有好几个partition么?
: 它是可以configure on the fly, 还是一开是设置就定死了的? 也就是说,如果我一开
: 是只有 1 partition per node, 当我的cells 超过2 billion就放不下了么?

avatar
w*z
9
in Cassandra, one row has to be in one node. you can replicate the whole row
, but each row has to fit in one physical node.

a

【在 p*****2 的大作中提到】
:
: 我觉得不考虑vnode的话,一个physical machine就是一个node。数据要是超过了,加
: 一台machine(node)就可以了。

avatar
w*z
10
one physical node can hold multiple partitions data. one partition is
calculated by the partitioner, the others are the replicates. if RF =1, one
node, one partition.

【在 B********r 的大作中提到】
: 最近弄cassandra,发现里面有个limit:
: The maximum number of cells (rows x columns) in a single partition is 2
: billion
: 链接: http://wiki.apache.org/cassandra/CassandraLimitations
: 其中让我疑惑的是partition这个概念,是说每个node里面可以有好几个partition么?
: 它是可以configure on the fly, 还是一开是设置就定死了的? 也就是说,如果我一开
: 是只有 1 partition per node, 当我的cells 超过2 billion就放不下了么?

avatar
B*r
11
谢了各位大神, 还有个问题想讨论下,关于cassandra 2.0 之后thrift与CQL3 的区别
,是说只是client里面有差别还是server side也变了? protocol应该是不变的吧?
之前我想动态的加一个column很方便,用cli的话就是: set table[key][columnName]
= columnValue
现在必须alter table, 还是也可以用那种方法?
avatar
p*2
12
protocol变了 现在是最流行的异步

columnName]

【在 B********r 的大作中提到】
: 谢了各位大神, 还有个问题想讨论下,关于cassandra 2.0 之后thrift与CQL3 的区别
: ,是说只是client里面有差别还是server side也变了? protocol应该是不变的吧?
: 之前我想动态的加一个column很方便,用cli的话就是: set table[key][columnName]
: = columnValue
: 现在必须alter table, 还是也可以用那种方法?

avatar
w*z
13
thrift也还支持。如果用cql要enable native protocol。但server 怎样存data是一样
的。我还倾向用CLI, 明了。cql 有点不自然,明明是 column family, 非搞成table,
用起来要小心。schema 要想清楚了。

columnName]

【在 B********r 的大作中提到】
: 谢了各位大神, 还有个问题想讨论下,关于cassandra 2.0 之后thrift与CQL3 的区别
: ,是说只是client里面有差别还是server side也变了? protocol应该是不变的吧?
: 之前我想动态的加一个column很方便,用cli的话就是: set table[key][columnName]
: = columnValue
: 现在必须alter table, 还是也可以用那种方法?

avatar
B*r
14

table,
是啊,还有一个大问题,就是用CQL3怎么动态的加column, 比如我定义了一个table只有
两个colum,那就不能直接
set keySpace[colFamily][colName] = value
而必须先add column 然后再 insert? 这样不是多了一个round trip么.
还有如果我要 select top 10 * from table order by id
貌似只能把所有的都返回,我在client side自己sort?

【在 w**z 的大作中提到】
: thrift也还支持。如果用cql要enable native protocol。但server 怎样存data是一样
: 的。我还倾向用CLI, 明了。cql 有点不自然,明明是 column family, 非搞成table,
: 用起来要小心。schema 要想清楚了。
:
: columnName]

avatar
p*2
15

你有学cassandra吗?

【在 B********r 的大作中提到】
:
: table,
: 是啊,还有一个大问题,就是用CQL3怎么动态的加column, 比如我定义了一个table只有
: 两个colum,那就不能直接
: set keySpace[colFamily][colName] = value
: 而必须先add column 然后再 insert? 这样不是多了一个round trip么.
: 还有如果我要 select top 10 * from table order by id
: 貌似只能把所有的都返回,我在client side自己sort?

avatar
d*r
16
二爷能否简要说下,datastax 上面课的怎么快速过一遍?
http://www.datastax.com/
看着有不少付费的课程?

【在 p*****2 的大作中提到】
:
: 你有学cassandra吗?

avatar
p*2
17

学免费的那个,最多一个周末就可以了,可以拿certificate。
不用做作业。

【在 d*******r 的大作中提到】
: 二爷能否简要说下,datastax 上面课的怎么快速过一遍?
: http://www.datastax.com/
: 看着有不少付费的课程?

avatar
w*z
18
你这个加column是指改table的schema?不是很明白你的意思。你不能用RDMS的column
来想Cassandra,Cassandra加column只是加value,不涉及到schema的change
至于order, 如果你用 RandomPartitioner, it hashes the key and stores the
hashvalue. So you can't (natural) order by key . You can use Ordered
Partitioners, but it's not recommended and it has a lot of problem. If you
really need to sort, build your own index using other CF.

【在 B********r 的大作中提到】
:
: table,
: 是啊,还有一个大问题,就是用CQL3怎么动态的加column, 比如我定义了一个table只有
: 两个colum,那就不能直接
: set keySpace[colFamily][colName] = value
: 而必须先add column 然后再 insert? 这样不是多了一个round trip么.
: 还有如果我要 select top 10 * from table order by id
: 貌似只能把所有的都返回,我在client side自己sort?

avatar
B*r
19

column
之前可能没说明白,我说的加column意思是本来schema里面没有的column给加上. 比如
我想用time stamp 作为column name, 在CQL3 里面除了改变schema的话还有什么办法
么?

【在 w**z 的大作中提到】
: 你这个加column是指改table的schema?不是很明白你的意思。你不能用RDMS的column
: 来想Cassandra,Cassandra加column只是加value,不涉及到schema的change
: 至于order, 如果你用 RandomPartitioner, it hashes the key and stores the
: hashvalue. So you can't (natural) order by key . You can use Ordered
: Partitioners, but it's not recommended and it has a lot of problem. If you
: really need to sort, build your own index using other CF.

avatar
B*r
20

没有,只是自己直接跑了几个vm瞎弄. 你是指那个课程么? 有啥推荐的么

【在 p*****2 的大作中提到】
:
: 学免费的那个,最多一个周末就可以了,可以拿certificate。
: 不用做作业。

avatar
p*2
21
有collection

【在 B********r 的大作中提到】
:
: 没有,只是自己直接跑了几个vm瞎弄. 你是指那个课程么? 有啥推荐的么

avatar
w*z
22
Cassandra 的data 是sequential 存在disk上的,你改schema,影响比较大。

【在 B********r 的大作中提到】
:
: 没有,只是自己直接跑了几个vm瞎弄. 你是指那个课程么? 有啥推荐的么

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。