Cassandra将int迁移到bigint
在Cassandra中将int迁移到bigint最简单的方法是什么?我考虑创建一个bigint类型的新列,然后运行一个脚本,基本上设置该列的值=所有行的int列的值,然后删除原始列并重命名新列。但是,我想知道是否有人有更好的选择,因为这种方法并不适合我。您可以Cassandra将int迁移到bigint,cassandra,cql,Cassandra,Cql,在Cassandra中将int迁移到bigint最简单的方法是什么?我考虑创建一个bigint类型的新列,然后运行一个脚本,基本上设置该列的值=所有行的int列的值,然后删除原始列并重命名新列。但是,我想知道是否有人有更好的选择,因为这种方法并不适合我。您可以更改您的表,并将int列更改为varint类型。检查更改表和矩阵 唯一的另一种选择是您所说的:添加一个新列并逐行填充它。删除第一列完全是可选的:如果在执行insert时不赋值,所有内容都将保持原样,新记录不会占用空间。您可以更改表,使用变量
更改您的表,并将int
列更改为varint
类型。检查更改表
和矩阵
唯一的另一种选择是您所说的:添加一个新列并逐行填充它。删除第一列完全是可选的:如果在执行insert时不赋值,所有内容都将保持原样,新记录不会占用空间。您可以更改表,使用变量将bigint存储在cassandra中。参见示例-
cassandra@cqlsh:demo> CREATE TABLE int_test (id int, name text, primary key(id));
cassandra@cqlsh:demo> SELECT * FROM int_test;
id | name
----+------
(0 rows)
cassandra@cqlsh:demo> INSERT INTO int_test (id, name) VALUES ( 215478936541111, 'abc');
cassandra@cqlsh:demo> SELECT * FROM int_test ;
id | name
---------------------+---------
215478936541111 | abc
(1 rows)
cassandra@cqlsh:demo> ALTER TABLE demo.int_test ALTER id TYPE varint;
cassandra@cqlsh:demo> INSERT INTO int_test (id, name) VALUES ( 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999, 'abcd');
cassandra@cqlsh:demo> SELECT * FROM int_test ;
id | name
------------------------------------------------------------------------------------------------------------------------------+---------
215478936541111 | abc
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 | abcd
(2 rows)
cassandra@cqlsh:demo>
我在看varint类型,但我不能确切地找出它和bigint之间的区别。我想既然varint映射到java BigInteger,那就足够了,因为我真正关心的是它足够大,而且我认为BigInteger技术上没有上界。就卡桑德拉而言,在空间等方面是否还有其他差异。?