Cassandra - Tạo bảng

Tạo bảng

Bạn có thể tạo bảng bằng lệnh CREATE TABLE. Dưới đây là cú pháp để tạo một bảng.

Cú pháp

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

Xác định một cột

Bạn có thể xác định một cột như hình dưới đây.

column name1 data type,
column name2 data type,

example:

age int,
name text

Khóa chính

Khóa chính là một cột được sử dụng để xác định duy nhất một hàng. Do đó, việc xác định khóa chính là bắt buộc trong khi tạo bảng. Khóa chính được tạo bởi một hoặc nhiều cột của bảng. Bạn có thể xác định khóa chính của bảng như hình dưới đây.

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)
   )

Thí dụ

Dưới đây là một ví dụ để tạo một bảng trong Cassandra bằng cách sử dụng cqlsh. Chúng tôi đây -

  • Sử dụng điểm hướng dẫn keyspace

  • Tạo một bảng có tên emp

Nó sẽ có các chi tiết như tên nhân viên, id, thành phố, lương và số điện thoại. Id nhân viên là khóa chính.

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
   );

xác minh

Câu lệnh select sẽ cung cấp cho bạn lược đồ. Xác minh bảng bằng câu lệnh select như hình dưới đây.

cqlsh:tutorialspoint> select * from emp;

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

(0 rows)

Tại đây bạn có thể quan sát bảng được tạo với các cột đã cho. Vì chúng tôi đã xóa điểm hướng dẫn keyspace, bạn sẽ không tìm thấy nó trong danh sách keyspaces.

Tạo bảng bằng Java API

Bạn có thể tạo một bảng bằng phương thức execute () của lớp Session. Làm theo các bước dưới đây để tạo bảng bằng Java API.

Bước 1: Tạo một đối tượng cụm

Trước hết, hãy tạo một phiên bản của Cluster.builder lớp com.datastax.driver.core gói như hình dưới đây.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Thêm điểm liên hệ (địa chỉ IP của nút) bằng cách sử dụng addContactPoint() phương pháp của Cluster.Buildervật. Phương thức này trả vềCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Sử dụng đối tượng trình tạo mới, tạo một đối tượng cụm. Để làm như vậy, bạn có một phương thức được gọi làbuild() bên trong Cluster.Builderlớp học. Đoạn mã sau đây cho thấy cách tạo một đối tượng cụm.

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

Bạn có thể xây dựng một đối tượng cụm bằng cách sử dụng một dòng mã như hình dưới đây.

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

Bước 2: Tạo một đối tượng phiên

Tạo một phiên bản của đối tượng Session bằng cách sử dụng connect() phương pháp của Cluster lớp như hình bên dưới.

Session session = cluster.connect( );

Phương thức này tạo một phiên mới và khởi tạo nó. Nếu bạn đã có một keyspace, bạn có thể đặt nó thành keyspace hiện có bằng cách chuyển tên keyspace ở định dạng chuỗi vào phương thức này như hình dưới đây.

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

Ở đây chúng tôi đang sử dụng keyspace có tên tp. Do đó, hãy tạo đối tượng phiên như hình dưới đây.

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

Bước 3: Thực thi truy vấn

Bạn có thể thực hiện các truy vấn CQL bằng cách sử dụng phương thức execute () của lớp Session. Truyền truy vấn ở định dạng chuỗi hoặc dưới dạng đối tượng lớp Statement đến phương thức execute (). Bất cứ điều gì bạn chuyển đến phương thức này ở định dạng chuỗi sẽ được thực thi trên cqlsh.

Trong ví dụ sau, chúng tôi đang tạo một bảng có tên emp. Bạn phải lưu trữ truy vấn trong một biến chuỗi và chuyển nó vào phương thức execute () như hình dưới đây.

//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);

Dưới đây là chương trình hoàn chỉnh để tạo và sử dụng keyspace trong Cassandra bằng cách sử dụng Java API.

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");
   }
}

Lưu chương trình trên với tên lớp theo sau là .java, duyệt đến vị trí lưu nó. Biên dịch và thực thi chương trình như hình dưới đây.

$javac Create_Table.java
$java Create_Table

Trong điều kiện bình thường, nó sẽ tạo ra sản lượng sau:

Table created