Cassandra - Baca Data

Membaca Data menggunakan Select Clause

Klausa SELECT digunakan untuk membaca data dari tabel di Cassandra. Menggunakan klausa ini, Anda dapat membaca seluruh tabel, satu kolom, atau sel tertentu. Diberikan di bawah ini adalah sintaks klausa SELECT.

SELECT FROM <tablename>

Contoh

Asumsikan ada tabel di ruang kunci bernama emp dengan detail sebagai berikut -

emp_id emp_name emp_city emp_phone emp_sal
1 ram Hyderabad 9848022338 50000
2 robin batal 9848022339 50000
3 rahman Chennai 9848022330 50000
4 rajeev Pune 9848022331 30000

Contoh berikut menunjukkan cara membaca seluruh tabel menggunakan klausa SELECT. Di sini kita membaca tabel yang disebutemp.

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)

Membaca Kolom yang Diperlukan

Contoh berikut memperlihatkan cara membaca kolom tertentu dalam tabel.

cqlsh:tutorialspoint> SELECT emp_name, emp_sal from emp;

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

Dimana Klausul

Menggunakan klausa WHERE, Anda dapat memberi batasan pada kolom yang diperlukan. Sintaksnya adalah sebagai berikut -

SELECT FROM <table name> WHERE <condition>;

Note - Klausa WHERE hanya dapat digunakan pada kolom yang merupakan bagian dari kunci utama atau memiliki indeks sekunder.

Pada contoh berikut, kita membaca detail seorang karyawan yang gajinya 50000. Pertama-tama, atur indeks sekunder ke kolom emp_sal.

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

Membaca Data menggunakan Java API

Anda bisa membaca data dari tabel menggunakan metode execute () kelas Sesi. Ikuti langkah-langkah yang diberikan di bawah ini untuk menjalankan beberapa pernyataan menggunakan pernyataan batch dengan bantuan Java API.

Langkah 1: Buat Objek Cluster

Buat sebuah instance dari Cluster.builder kelas dari com.datastax.driver.core paket seperti yang ditunjukkan di bawah ini.

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

Tambahkan titik kontak (alamat IP node) menggunakan addContactPoint() metode dari Cluster.Builderobyek. Metode ini kembaliCluster.Builder.

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

Menggunakan objek builder baru, buat objek cluster. Untuk melakukannya, Anda memiliki metode yang disebutbuild() dalam Cluster.Builderkelas. Gunakan kode berikut untuk membuat objek cluster.

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

Anda dapat membangun objek cluster menggunakan satu baris kode seperti yang ditunjukkan di bawah ini.

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

Langkah 2: Buat Objek Sesi

Buat instance objek Sesi menggunakan metode connect () dari kelas Cluster seperti yang ditunjukkan di bawah ini.

Session session = cluster.connect( );

Metode ini membuat sesi baru dan menginisialisasinya. Jika Anda sudah memiliki ruang kunci, Anda dapat menyetelnya ke yang sudah ada dengan meneruskan nama KeySpace dalam format string ke metode ini seperti yang ditunjukkan di bawah ini.

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

Di sini kita menggunakan KeySpace yang disebut tp. Oleh karena itu, buat objek sesi seperti yang ditunjukkan di bawah ini.

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

Langkah 3: Jalankan Kueri

Anda dapat mengeksekusi kueri CQL menggunakan metode execute () dari kelas Sesi. Teruskan kueri baik dalam format string atau sebagai objek kelas Pernyataan ke metode execute (). Apa pun yang Anda berikan ke metode ini dalam format string akan dieksekusi dicqlsh.

Dalam contoh ini, kami mengambil data dari empmeja. Simpan kueri dalam string dan teruskan ke metode execute () kelas sesi seperti yang ditunjukkan di bawah ini.

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

Jalankan kueri menggunakan metode execute () kelas Sesi.

Langkah 4: Dapatkan Objek ResultSet

Query pemilihan akan mengembalikan hasil dalam bentuk a ResultSet objek, oleh karena itu simpan hasil di objek RESULTSET kelas seperti yang ditunjukkan di bawah ini.

ResultSet result = session.execute( );

Diberikan di bawah ini adalah program lengkap untuk membaca data dari tabel.

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

Simpan program di atas dengan nama kelas diikuti dengan .java, telusuri ke lokasi penyimpanannya. Kompilasi dan jalankan program seperti yang ditunjukkan di bawah ini.

$javac Read_Data.java
$java Read_Data

Dalam kondisi normal, itu harus menghasilkan keluaran berikut -

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