Cassandra-키 스페이스 생성

Cqlsh를 사용하여 키 스페이스 생성

Cassandra의 키 스페이스는 노드에서 데이터 복제를 정의하는 네임 스페이스입니다. 클러스터는 노드 당 하나의 키 스페이스를 포함합니다. 다음은 문을 사용하여 키 스페이스를 만드는 구문입니다.CREATE KEYSPACE.

통사론

CREATE KEYSPACE <identifier> WITH <properties>

CREATE KEYSPACE “KeySpace Name”
WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of   replicas’};

CREATE KEYSPACE “KeySpace Name”
WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of  replicas’}

AND durable_writes = ‘Boolean value’;

CREATE KEYSPACE 문에는 두 가지 속성이 있습니다. replication durable_writes.

복제

복제 옵션은 다음을 지정하는 것입니다. Replica Placement strategy그리고 원하는 복제본의 수. 다음 표에는 모든 복제본 배치 전략이 나열되어 있습니다.

전략 이름 기술
Simple Strategy' 클러스터에 대한 단순 복제 요소를 지정합니다.
Network Topology Strategy 이 옵션을 사용하면 각 데이터 센터의 복제 요소를 독립적으로 설정할 수 있습니다.
Old Network Topology Strategy 이것은 레거시 복제 전략입니다.

이 옵션을 사용하면 Cassandra에게 commitlog현재 KeySpace에 대한 업데이트. 이 옵션은 필수가 아니며 기본적으로 true로 설정됩니다.

다음은 KeySpace를 생성하는 예입니다.

  • 여기서 우리는 TutorialsPoint.

  • 우리는 첫 번째 복제 배치 전략을 사용하고 있습니다. Simple Strategy.

  • 그리고 우리는 복제 요소를 선택하여 1 replica.

cqlsh.> CREATE KEYSPACE tutorialspoint
WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3};

확인

명령을 사용하여 테이블이 생성되었는지 여부를 확인할 수 있습니다. Describe. 키 스페이스에이 명령을 사용하면 아래와 같이 생성 된 모든 키 스페이스가 표시됩니다.

cqlsh> DESCRIBE keyspaces;

tutorialspoint system system_traces

여기에서 새로 생성 된 KeySpace를 관찰 할 수 있습니다. tutorialspoint.

Durable_writes

기본적으로 테이블의 duration_writes 속성은 다음과 같이 설정됩니다. true,그러나 false로 설정할 수 있습니다. 이 속성을 다음으로 설정할 수 없습니다.simplex strategy.

다음은 지속성 쓰기 속성의 사용을 보여주는 예입니다.

cqlsh> CREATE KEYSPACE test
... WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3 }
... AND DURABLE_WRITES = false;

확인

System Keyspace를 쿼리하여 test KeySpace의 Durable_writes 속성이 false로 설정되었는지 확인할 수 있습니다. 이 쿼리는 속성과 함께 모든 KeySpaces를 제공합니다.

cqlsh> SELECT * FROM system_schema.keyspaces;

  keyspace_name | durable_writes |                                       strategy_class | strategy_options
----------------+----------------+------------------------------------------------------+----------------------------

           test |          False | org.apache.cassandra.locator.NetworkTopologyStrategy | {"datacenter1" : "3"}

 tutorialspoint |           True |          org.apache.cassandra.locator.SimpleStrategy | {"replication_factor" : "4"}

         system |           True |           org.apache.cassandra.locator.LocalStrategy | { }

  system_traces |           True |          org.apache.cassandra.locator.SimpleStrategy | {"replication_factor" : "2"}

(4 rows)

여기서 Test KeySpace의 Durable_writes 속성이 false로 설정된 것을 확인할 수 있습니다.

키 스페이스 사용

키워드를 사용하여 생성 된 KeySpace를 사용할 수 있습니다. USE. 구문은 다음과 같습니다.

Syntax:USE <identifier>

다음 예에서는 KeySpace를 사용합니다. tutorialspoint.

cqlsh> USE tutorialspoint;
cqlsh:tutorialspoint>

Java API를 사용하여 키 스페이스 생성

다음을 사용하여 키 스페이스를 생성 할 수 있습니다. execute() 의 방법 Session수업. Java API를 사용하여 키 스페이스를 생성하려면 아래 단계를 따르십시오.

1 단계 : 클러스터 개체 생성

우선, 인스턴스를 만듭니다. Cluster.builder 클래스 com.datastax.driver.core 아래와 같이 패키지.

//Creating Cluster.Builder object

Cluster.Builder builder1 = Cluster.builder();

다음을 사용하여 연락처 (노드의 IP 주소)를 추가합니다. addContactPoint() 의 방법 Cluster.Builder목적. 이 메서드는Cluster.Builder.

//Adding contact point to the Cluster.Builder object

Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

새 빌더 개체를 사용하여 클러스터 개체를 만듭니다. 이를 위해 다음과 같은 메서드가 있습니다.build()Cluster.Builder수업. 다음 코드는 클러스터 객체를 만드는 방법을 보여줍니다.

//Building a cluster
Cluster cluster = builder.build();

아래와 같이 한 줄의 코드로 클러스터 객체를 빌드 할 수 있습니다.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

2 단계 : 세션 개체 생성

인스턴스 만들기 Session 개체를 사용하여 connect() 의 방법 Cluster 아래와 같이 클래스.

Session session = cluster.connect( );

이 메서드는 새 세션을 만들고 초기화합니다. 이미 키 스페이스가있는 경우 아래와 같이 문자열 형식의 키 스페이스 이름을이 메서드에 전달하여 기존 키 스페이스로 설정할 수 있습니다.

Session session = cluster.connect(“ Your keyspace name ” );

3 단계 : 쿼리 실행

실행할 수 있습니다 CQL 사용하는 쿼리 execute() 의 방법 Session수업. 쿼리를 문자열 형식으로 전달하거나Statement 클래스 개체에 execute()방법. 이 메서드에 문자열 형식으로 전달하는 것은 무엇이든cqlsh.

이 예에서는 다음과 같은 KeySpace를 생성합니다. tp. 첫 번째 복제본 배치 전략 (예 : 단순 전략)을 사용하고 있으며 복제본 1 개에 대한 복제 요소를 선택합니다.

쿼리를 문자열 변수에 저장하고 아래와 같이 execute () 메서드에 전달해야합니다.

String query = "CREATE KEYSPACE tp WITH replication "
   + "= {'class':'SimpleStrategy', 'replication_factor':1}; ";
session.execute(query);

4 단계 : KeySpace 사용

아래와 같이 execute () 메서드를 사용하여 생성 된 KeySpace를 사용할 수 있습니다.

execute(“ USE tp ” );

다음은 Java API를 사용하여 Cassandra에서 키 스페이스를 만들고 사용하는 완전한 프로그램입니다.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Create_KeySpace {

   public static void main(String args[]){

      //Query
      String query = "CREATE KEYSPACE tp WITH replication "
         + "= {'class':'SimpleStrategy', 'replication_factor':1};";
                    
      //creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
    
      //Creating Session object
      Session session = cluster.connect();
     
      //Executing the query
      session.execute(query);
     
      //using the KeySpace
      session.execute("USE tp");
      System.out.println("Keyspace created"); 
   }
}

위의 프로그램을 클래스 이름 뒤에 .java로 저장하고 저장된 위치를 찾습니다. 아래와 같이 프로그램을 컴파일하고 실행합니다.

$javac Create_KeySpace.java
$java Create_KeySpace

정상적인 조건에서는 다음과 같은 출력이 생성됩니다.

Keyspace created