Cassandra - Daten lesen
Lesen von Daten mit der Select-Klausel
Die SELECT-Klausel wird verwendet, um Daten aus einer Tabelle in Cassandra zu lesen. Mit dieser Klausel können Sie eine ganze Tabelle, eine einzelne Spalte oder eine bestimmte Zelle lesen. Im Folgenden ist die Syntax der SELECT-Klausel angegeben.
SELECT FROM <tablename>
Beispiel
Angenommen, im Schlüsselbereich befindet sich eine Tabelle mit dem Namen emp mit folgenden Angaben -
emp_id | emp_name | emp_city | emp_phone | emp_sal |
---|---|---|---|---|
1 | RAM | Hyderabad | 9848022338 | 50000 |
2 | Robin | Null | 9848022339 | 50000 |
3 | rahman | Chennai | 9848022330 | 50000 |
4 | Rajeev | Pune | 9848022331 | 30000 |
Das folgende Beispiel zeigt, wie eine ganze Tabelle mit der SELECT-Klausel gelesen wird. Hier lesen wir eine Tabelle namensemp.
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)
Erforderliche Spalten lesen
Das folgende Beispiel zeigt, wie eine bestimmte Spalte in einer Tabelle gelesen wird.
cqlsh:tutorialspoint> SELECT emp_name, emp_sal from emp;
emp_name | emp_sal
----------+---------
ram | 50000
robin | 50000
rajeev | 30000
rahman | 50000
(4 rows)
Wo Klausel
Mit der WHERE-Klausel können Sie die erforderlichen Spalten einschränken. Die Syntax lautet wie folgt:
SELECT FROM <table name> WHERE <condition>;
Note - Eine WHERE-Klausel kann nur für Spalten verwendet werden, die Teil des Primärschlüssels sind oder über einen Sekundärindex verfügen.
Im folgenden Beispiel lesen wir die Details eines Mitarbeiters mit einem Gehalt von 50000. Setzen Sie zunächst den Sekundärindex auf die Spalte 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
Lesen von Daten mit der Java-API
Sie können Daten aus einer Tabelle mit der Methode execute () der Session-Klasse lesen. Führen Sie die folgenden Schritte aus, um mehrere Anweisungen mithilfe der Batch-Anweisung mithilfe der Java-API auszuführen.
Schritt 1: Erstellen Sie ein Clusterobjekt
Erstellen Sie eine Instanz von Cluster.builder Klasse von com.datastax.driver.core Paket wie unten gezeigt.
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
Fügen Sie einen Kontaktpunkt (IP-Adresse des Knotens) hinzu addContactPoint() Methode von Cluster.BuilderObjekt. Diese Methode gibt zurückCluster.Builder.
//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
Erstellen Sie mit dem neuen Builder-Objekt ein Cluster-Objekt. Dazu haben Sie eine Methode namensbuild() in dem Cluster.BuilderKlasse. Verwenden Sie den folgenden Code, um das Clusterobjekt zu erstellen.
//Building a cluster
Cluster cluster = builder.build();
Sie können das Clusterobjekt mit einer einzelnen Codezeile erstellen, wie unten gezeigt.
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
Schritt 2: Erstellen Sie ein Sitzungsobjekt
Erstellen Sie eine Instanz des Sitzungsobjekts mit der Methode connect () der Cluster-Klasse (siehe unten).
Session session = cluster.connect( );
Diese Methode erstellt eine neue Sitzung und initialisiert sie. Wenn Sie bereits über einen Schlüsselbereich verfügen, können Sie ihn auf den vorhandenen festlegen, indem Sie den KeySpace-Namen im Zeichenfolgenformat wie unten gezeigt an diese Methode übergeben.
Session session = cluster.connect(“Your keyspace name”);
Hier verwenden wir den aufgerufenen KeySpace tp. Erstellen Sie daher das Sitzungsobjekt wie unten gezeigt.
Session session = cluster.connect(“tp”);
Schritt 3: Abfrage ausführen
Sie können CQL-Abfragen mit der Methode execute () der Session-Klasse ausführen. Übergeben Sie die Abfrage entweder im Zeichenfolgenformat oder als Anweisungsklassenobjekt an die Methode execute (). Was auch immer Sie im String-Format an diese Methode übergeben, wird auf dem ausgeführtcqlsh.
In diesem Beispiel rufen wir die Daten von ab empTabelle. Speichern Sie die Abfrage in einer Zeichenfolge und übergeben Sie sie wie unten gezeigt an die Methode execute () der Sitzungsklasse.
String query = ”SELECT 8 FROM emp”;
session.execute(query);
Führen Sie die Abfrage mit der Methode execute () der Sitzungsklasse aus.
Schritt 4: Holen Sie sich das ResultSet-Objekt
Die ausgewählten Abfragen geben das Ergebnis in Form von a zurück ResultSet Objekt, speichern Sie daher das Ergebnis im Objekt von RESULTSET Klasse wie unten gezeigt.
ResultSet result = session.execute( );
Im Folgenden finden Sie das vollständige Programm zum Lesen von Daten aus einer Tabelle.
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());
}
}
Speichern Sie das obige Programm mit dem Klassennamen gefolgt von .java und navigieren Sie zu dem Speicherort, an dem es gespeichert ist. Kompilieren Sie das Programm und führen Sie es wie unten gezeigt aus.
$javac Read_Data.java
$java Read_Data
Unter normalen Bedingungen sollte die folgende Ausgabe erzeugt werden:
[Row[1, Hyderabad, ram, 9848022338, 50000], Row[2, Delhi, robin,
9848022339, 50000], Row[4, Pune, rajeev, 9848022331, 30000], Row[3,
Chennai, rahman, 9848022330, 50000]]