如何使用某些脚本创建多个列族?

时间:2013-09-26 20:14:54

标签: shell cassandra

我必须在我的键空间中创建多列族。一种方法是逐个创建列族。但在我的情况下,我有大约100个列族,所以我不能一个接一个地做...所以有什么办法,我可以通过某种方式创建多个列族脚本可以在一个短的时间内为我创建多个列族?

create column family USER_DATA_SECOND_1
with comparator = 'UTF8Type'
and key_validation_class = 'CompositeType(DateType,UTF8Type)'
and default_validation_class = 'BytesType'
and gc_grace = 86400

create column family USER_DATA_SECOND_2
with comparator = 'UTF8Type'
and key_validation_class = 'CompositeType(DateType,UTF8Type)'
and default_validation_class = 'BytesType'
and gc_grace = 86400

create column family USER_DATA_SECOND_3
with comparator = 'UTF8Type'
and key_validation_class = 'CompositeType(DateType,UTF8Type)'
and default_validation_class = 'BytesType'
and gc_grace = 86400

....
....
....

create column family USER_DATA_SECOND_100
with comparator = 'UTF8Type'
and key_validation_class = 'CompositeType(DateType,UTF8Type)'
and default_validation_class = 'BytesType'
and gc_grace = 86400

并且在创建这些多列系列之后..假设我是否需要再次删除所有这些列系列,那么如何再次使用某些脚本呢?

下面就是这样,我现在正在从我的本地机器到我的staging cassandra服务器创建列系列,这不是我想要的......

C:\Apache Cassandra\apache-cassandra-1.2.3\bin>cassandra-cli -h sc-cdbhost01.vip.slc.qa.host.com
Starting Cassandra Client
Connected to: "Staging Cluster cass01" on sc-cdbhost01.vip.slc.qa.host.com/9160
Welcome to Cassandra CLI version 1.2.3

Type 'help;' or '?' for help.
Type 'quit;' or 'exit;' to quit.

[default@unknown] use profileks;
Authenticated to keyspace: profileks
[default@profileks] create column family USER_DATA_SECOND_1
...     with comparator = 'UTF8Type'
...     and key_validation_class = 'CompositeType(DateType,UTF8Type)'
...     and default_validation_class = 'BytesType'
...     and gc_grace = 86400;
27fe1848-c7de-3994-9289-486a9bbbf344
[default@profileks]

任何人都可以帮助我是否可以通过某种脚本创建多个列族,然后通过某种脚本删除这些列族?

3 个答案:

答案 0 :(得分:1)

以下是示例脚本

Keyspace创建脚本

drop keyspace my_keyspace;
create keyspace my_keyspace with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy' and strategy_options = {replication_factor:1};

执行它:

cassandra-cli -h <hostname> -p <port> -u <user> -pw <password> -f <keyspace_script>


架构制作脚本

create column family USER_DATA_SECOND_1 with comparator = 'UTF8Type' and key_validation_class = 'CompositeType(DateType,UTF8Type)' and default_validation_class = 'BytesType' and gc_grace = 86400;
create column family USER_DATA_SECOND_2 with comparator = 'UTF8Type' and key_validation_class = 'CompositeType(DateType,UTF8Type)' and default_validation_class = 'BytesType' and gc_grace = 86400;
...

执行它:

cassandra-cli -h <hostname> -p <port> -u <user> -pw <password> -k my_keyspace -f <schema_script>

答案 1 :(得分:0)

@TechGeeky

cassandra-cli -f -k将在声明的密钥空间中执行脚本文件中的所有命令

从头开始删除和创建CF,我们曾经有一个2脚本:

Keyspace脚本

1 drop keyspace xxx

2使用...创建密钥空间xxx

结构脚本

1创建列族...

...

<磷>氮。创建列族

一个重要的事情是,创建列系列应保持在1行。删除所有换行符。

答案 2 :(得分:0)

您可以使用SOURCE 'file'命令执行文件中写入的整个语句集。请参阅link

例如:在.txt文件中,您已经编写了一些模式,创建了密钥空间,创建了列familie&amp;很多其他相关的东西。然后使用SOURCE命令执行文件中的所有语句。