Cassandra - Criar Tabela
Criação de uma mesa
Você pode criar uma tabela usando o comando CREATE TABLE. A seguir está a sintaxe para a criação de uma tabela.
Sintaxe
CREATE (TABLE | COLUMNFAMILY) <tablename>
('<column-definition>' , '<column-definition>')
(WITH <option> AND <option>)
Definindo uma coluna
Você pode definir uma coluna conforme mostrado abaixo.
column name1 data type,
column name2 data type,
example:
age int,
name text
Chave primária
A chave primária é uma coluna usada para identificar exclusivamente uma linha. Portanto, definir uma chave primária é obrigatório ao criar uma tabela. Uma chave primária é composta por uma ou mais colunas de uma tabela. Você pode definir uma chave primária de uma tabela conforme mostrado abaixo.
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)
)
Exemplo
Dada a seguir é um exemplo para criar uma tabela no Cassandra usando cqlsh. Aqui estamos nós -
Usando o keyspace tutorialspoint
Criação de uma mesa chamada emp
Ele terá detalhes como nome do funcionário, id, cidade, salário e número de telefone. O ID do funcionário é a chave primária.
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
);
Verificação
A instrução select fornecerá o esquema. Verifique a tabela usando a instrução select conforme mostrado abaixo.
cqlsh:tutorialspoint> select * from emp;
emp_id | emp_city | emp_name | emp_phone | emp_sal
--------+----------+----------+-----------+---------
(0 rows)
Aqui você pode observar a tabela criada com as colunas fornecidas. Como excluímos o ponto de tutorial do keyspace, você não o encontrará na lista de keyspaces.
Criação de uma tabela usando a API Java
Você pode criar uma tabela usando o método execute () da classe Session. Siga as etapas fornecidas abaixo para criar uma tabela usando a API Java.
Etapa 1: Criar um objeto de cluster
Primeiro de tudo, crie uma instância do Cluster.builder classe de com.datastax.driver.core pacote conforme mostrado abaixo.
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
Adicione um ponto de contato (endereço IP do nó) usando o addContactPoint() método de Cluster.Builderobjeto. Este método retornaCluster.Builder.
//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
Usando o novo objeto construtor, crie um objeto de cluster. Para fazer isso, você tem um método chamadobuild() no Cluster.Builderclasse. O código a seguir mostra como criar um objeto de cluster.
//Building a cluster
Cluster cluster = builder.build();
Você pode construir um objeto de cluster usando uma única linha de código, conforme mostrado abaixo.
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
Etapa 2: Criar um objeto de sessão
Crie uma instância do objeto de Sessão usando o connect() método de Cluster classe como mostrado abaixo.
Session session = cluster.connect( );
Este método cria uma nova sessão e a inicializa. Se você já tiver um keyspace, poderá defini-lo como o existente passando o nome do keyspace no formato de string para este método, conforme mostrado abaixo.
Session session = cluster.connect(“ Your keyspace name ” );
Aqui estamos usando o keyspace chamado tp. Portanto, crie o objeto de sessão conforme mostrado abaixo.
Session session = cluster.connect(“ tp” );
Etapa 3: Executar consulta
Você pode executar consultas CQL usando o método execute () da classe Session. Passe a consulta no formato de string ou como um objeto da classe Statement para o método execute (). Tudo o que você passar para este método em formato de string será executado no cqlsh.
No exemplo a seguir, estamos criando uma tabela chamada emp. Você deve armazenar a consulta em uma variável de string e passá-la para o método execute () como mostrado abaixo.
//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);
A seguir está o programa completo para criar e usar um keyspace no Cassandra usando a API Java.
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");
}
}
Salve o programa acima com o nome da classe seguido por .java, navegue até o local onde ele foi salvo. Compile e execute o programa conforme mostrado abaixo.
$javac Create_Table.java
$java Create_Table
Em condições normais, ele deve produzir a seguinte saída -
Table created