Learning Apache Cassandra(Second Edition)
上QQ阅读APP看书,第一时间看更新

How to configure keyspaces

In the previous chapter, we learned a little bit about keyspaces. A keyspace is essentially a namespace for various tables in a cluster. It is somewhat analogous to a database in the relational world. All data will reside within some keyspace. The main function of declaring keyspaces over declaring tables directly is not to serve as a mapping layer, but to control the replication of closely related tables.

Let's create the keyspace for our MyStatus application by executing the following command in CQL shell:

    
CREATE KEYSPACE "my_status"
WITH REPLICATION = {
'class': 'SimpleStrategy', 'replication_factor': 1
};

When creating a keyspace, you have to specify certain configuration parameters such as the replication strategy and the replication factor. The replication strategy tells the Cassandra cluster how to distribute various copies of the same data across the different data centers and racks of cluster. The replication factor specifies how many copies of each record to store. There is another configuration parameter called durable writes, which we will learn about later.

For now, we will use SimpleStrategy and a replication factor of 1 since we have a single node cluster running. This keyspace will serve as the namespace for all the tables we create in the rest of the book.

In CQL, you select the keyspace to use via the USE command. To ensure all the future tables reside within the my_status keyspace, we enter the following statement:

    USE "my_status";

Another way to select a keyspace is to prefix a table name with the keyspace name wherever we use it, such as <keyspace_name> and <table_name>.