Cassandra - Verileri Oku

Select Clause kullanarak Veri Okuma

SELECT yan tümcesi, Cassandra'daki bir tablodan verileri okumak için kullanılır. Bu cümleyi kullanarak tüm tabloyu, tek bir sütunu veya belirli bir hücreyi okuyabilirsiniz. Aşağıda, SELECT yan tümcesinin sözdizimi verilmiştir.

SELECT FROM <tablename>

Misal

Anahtar alanında adlı bir tablo olduğunu varsayalım. emp aşağıdaki ayrıntılarla -

emp_id emp_name emp_city emp_phone emp_sal
1 Veri deposu Haydarabad 9848022338 50000
2 Robin boş 9848022339 50000
3 rahman Chennai 9848022330 50000
4 Rajeev Pune 9848022331 30000

Aşağıdaki örnek, SELECT yan tümcesi kullanılarak tüm tablonun nasıl okunacağını gösterir. Burada adlı bir tablo okuyoruzemp.

cqlsh:tutorialspoint> select * from emp;

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad |   ram    | 9848022338 | 50000
      2 | null      |   robin  | 9848022339 | 50000
      3 | Chennai   |   rahman | 9848022330 | 50000
      4 | Pune      |   rajeev | 9848022331 | 30000
		
(4 rows)

Gerekli Sütunları Okuma

Aşağıdaki örnek, bir tablodaki belirli bir sütunun nasıl okunacağını gösterir.

cqlsh:tutorialspoint> SELECT emp_name, emp_sal from emp;

 emp_name | emp_sal
----------+---------
      ram | 50000
    robin | 50000
   rajeev | 30000
   rahman | 50000 
	
(4 rows)

Madde nerede

WHERE cümlesini kullanarak, gerekli sütunlara bir kısıtlama koyabilirsiniz. Söz dizimi aşağıdaki gibidir -

SELECT FROM <table name> WHERE <condition>;

Note - WHERE yan tümcesi yalnızca birincil anahtarın bir parçası olan veya üzerlerinde ikincil bir dizin bulunan sütunlarda kullanılabilir.

Aşağıdaki örnekte, maaşı 50000 olan bir çalışanın ayrıntılarını okuyoruz. Her şeyden önce, ikincil endeksi emp_sal sütununa ayarlayın.

cqlsh:tutorialspoint> CREATE INDEX ON emp(emp_sal);
cqlsh:tutorialspoint> SELECT * FROM emp WHERE emp_sal=50000;

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad |      ram | 9848022338 | 50000
      2 |      null |    robin | 9848022339 | 50000
      3 |   Chennai |   rahman | 9848022330 | 50000

Java API kullanarak Veri Okuma

Session sınıfının execute () yöntemini kullanarak bir tablodaki verileri okuyabilirsiniz. Java API yardımı ile toplu ifadeyi kullanarak birden çok ifadeyi yürütmek için aşağıdaki adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

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

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin. addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

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

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Küme nesnesini oluşturmak için aşağıdaki kodu kullanın.

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

Aşağıda gösterildiği gibi tek bir kod satırı kullanarak küme nesnesini oluşturabilirsiniz.

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

Adım 2: Bir Oturum Nesnesi Oluşturun

Aşağıda gösterildiği gibi Cluster sınıfının connect () yöntemini kullanarak bir Session nesnesi örneği oluşturun.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde KeySpace adını ileterek var olana ayarlayabilirsiniz.

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

Burada adı verilen KeySpace'i kullanıyoruz tp. Bu nedenle, aşağıda gösterildiği gibi oturum nesnesini oluşturun.

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

3. Adım: Sorguyu Çalıştırın

Session sınıfının execute () yöntemini kullanarak CQL sorgularını yürütebilirsiniz. Sorguyu dize biçiminde veya bir Statement sınıfı nesnesi olarak execute () yöntemine iletin. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Bu örnekte, verileri şuradan alıyoruz: emptablo. Sorguyu bir dizede saklayın ve aşağıda gösterildiği gibi oturum sınıfının execute () yöntemine iletin.

String query = ”SELECT 8 FROM emp”;
session.execute(query);

Session sınıfının execute () yöntemini kullanarak sorguyu yürütün.

Adım 4: ResultSet Nesnesini Alın

Seçili sorgular sonucu şu şekilde döndürür: ResultSet nesne, bu nedenle sonucu nesnede saklayın RESULTSET aşağıda gösterildiği gibi sınıf.

ResultSet result = session.execute( );

Aşağıda, bir tablodan veri okumak için eksiksiz bir program verilmiştir.

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

public class Read_Data {

   public static void main(String args[])throws Exception{
    
      //queries
      String query = "SELECT * FROM emp";

      //Creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
    
      //Creating Session object
      Session session = cluster.connect("tutorialspoint");
    
      //Getting the ResultSet
      ResultSet result = session.execute(query);
    
      System.out.println(result.all());
   }
}

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Read_Data.java
$java Read_Data

Normal koşullar altında, aşağıdaki çıktıyı üretmelidir -

[Row[1, Hyderabad, ram, 9848022338, 50000], Row[2, Delhi, robin,
9848022339, 50000], Row[4, Pune, rajeev, 9848022331, 30000], Row[3,
Chennai, rahman, 9848022330, 50000]]