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