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