Cassandra-테이블 생성

테이블 생성

다음 명령을 사용하여 테이블을 만들 수 있습니다. CREATE TABLE. 다음은 테이블을 생성하는 구문입니다.

통사론

CREATE (TABLE | COLUMNFAMILY) <tablename>
('<column-definition>' , '<column-definition>')
(WITH <option> AND <option>)

열 정의

아래와 같이 열을 정의 할 수 있습니다.

column name1 data type,
column name2 data type,

example:

age int,
name text

기본 키

기본 키는 행을 고유하게 식별하는 데 사용되는 열입니다. 따라서 테이블을 생성하는 동안 기본 키를 정의해야합니다. 기본 키는 테이블의 하나 이상의 열로 구성됩니다. 아래와 같이 테이블의 기본 키를 정의 할 수 있습니다.

CREATE TABLE tablename(
   column1 name datatype PRIMARYKEY,
   column2 name data type,
   column3 name data type.
   )

or

CREATE TABLE tablename(
   column1 name datatype PRIMARYKEY,
   column2 name data type,
   column3 name data type,
   PRIMARY KEY (column1)
   )

다음은 cqlsh를 사용하여 Cassandra에서 테이블을 생성하는 예입니다. 여기 있습니다.

  • 키 스페이스 튜토리얼 포인트 사용

  • 이름이 지정된 테이블 만들기 emp

직원 이름, ID, 도시, 급여 및 전화 번호와 같은 세부 정보가 있습니다. 직원 ID는 기본 키입니다.

cqlsh> USE tutorialspoint;
cqlsh:tutorialspoint>; CREATE TABLE emp(
   emp_id int PRIMARY KEY,
   emp_name text,
   emp_city text,
   emp_sal varint,
   emp_phone varint
   );

확인

select 문은 스키마를 제공합니다. 아래와 같이 select 문을 사용하여 테이블을 확인합니다.

cqlsh:tutorialspoint> select * from emp;

 emp_id | emp_city | emp_name | emp_phone | emp_sal
--------+----------+----------+-----------+---------

(0 rows)

여기에서 주어진 열로 생성 된 테이블을 관찰 할 수 있습니다. keyspace tutorialspoint를 삭제 했으므로 keyspaces 목록에서 찾을 수 없습니다.

Java API를 사용하여 테이블 생성

Session 클래스의 execute () 메소드를 사용하여 테이블을 생성 할 수 있습니다. 아래 단계에 따라 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 ” );

여기서 우리는 tp. 따라서 아래와 같이 세션 개체를 생성합니다.

Session session = cluster.connect(“ tp” );

3 단계 : 쿼리 실행

Session 클래스의 execute () 메서드를 사용하여 CQL 쿼리를 실행할 수 있습니다. 쿼리를 문자열 형식으로 또는 Statement 클래스 객체로 execute () 메서드에 전달합니다. 이 메소드에 문자열 형식으로 전달하는 것은 무엇이든 cqlsh에서 실행됩니다.

다음 예에서는 다음과 같은 테이블을 생성합니다. emp. 쿼리를 문자열 변수에 저장하고 아래와 같이 execute () 메서드에 전달해야합니다.

//Query
String query = "CREATE TABLE emp(emp_id int PRIMARY KEY, "
   + "emp_name text, "
   + "emp_city text, "
   + "emp_sal varint, "
   + "emp_phone varint );";
session.execute(query);

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

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

public class Create_Table {

   public static void main(String args[]){

      //Query
      String query = "CREATE TABLE emp(emp_id int PRIMARY KEY, "
         + "emp_name text, "
         + "emp_city text, "
         + "emp_sal varint, "
         + "emp_phone varint );";
		
      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
   
      //Creating Session object
      Session session = cluster.connect("tp");
 
      //Executing the query
      session.execute(query);
 
      System.out.println("Table created");
   }
}

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

$javac Create_Table.java
$java Create_Table

정상적인 조건에서 다음과 같은 출력을 생성해야합니다.

Table created