使用Cassandra cqlengine创建并更改为新的键空间?

时间:2015-07-22 13:41:07

标签: cassandra schema cqlengine

假设我们连接到一些Cassandra集群:

cqlengine.connection.setup('hostname', 'some_keyspace')

该方法要求我们至少知道一个现有密钥空间。 如果我们不怎么办?

如果我们只是希望检查密钥空间是否存在并以其他方式创建它,该怎么办?

我们可以像这样创建一个键空间:

cqlengine.management.create_keyspace('keyspace_name', some_other_args)

所以这里有三个问题:

  1. 如何在不提供密钥空间的情况下进行连接?
  2. 创建新密钥空间的正确方法是什么(除了密钥空间名称之外还有哪些其他参数)?
  3. 如何使用cqlengine切换键空间?

1 个答案:

答案 0 :(得分:0)

  1. 您只需要一个'默认'密钥空间。它可以是已经存在的任何东西。我认为Cassandra确实有一些默认的键空间。

  2. 创建密钥空间的正确方法是使用create_keyspace_simple命令:

    from cassandra.cqlengine.management import create_keyspace_simple
    
    create_keyspace_simple(keyspace_name, replication_factor)
    
  3. 要更改键空间:

    from cassandra.cqlengine import models
    
    models.DEFAULT_KEYSPACE = keyspace_name
    

    假设已导入连接且您已定义keyspace_name