Cassandra-read-data
Cassandra-データの読み取り
Select句を使用したデータの読み取り
SELECT句は、Cassandraのテーブルからデータを読み取るために使用されます。 この句を使用すると、テーブル全体、単一の列、または特定のセルを読み取ることができます。 SELECT句の構文は次のとおりです。
例
次の詳細を持つ emp という名前のキースペースにテーブルがあると仮定します-
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 |
次の例は、SELECT句を使用してテーブル全体を読み取る方法を示しています。 ここでは、 emp というテーブルを読み込んでいます。
必要な列の読み取り
次の例は、テーブル内の特定の列を読み取る方法を示しています。
Where句
WHERE句を使用して、必要な列に制約を設定できます。 その構文は次のとおりです-
注-WHERE句は、主キーの一部である列、またはそれらにセカンダリインデックスがある列でのみ使用できます。
次の例では、給与が50000の従業員の詳細を読み取ります。 まず、セカンダリインデックスを列emp_salに設定します。
Java APIを使用したデータの読み取り
Sessionクラスのexecute()メソッドを使用して、テーブルからデータを読み取ることができます。 Java APIの助けを借りて、バッチステートメントを使用して複数のステートメントを実行するには、以下の手順に従います。
ステップ1:クラスターオブジェクトを作成する
以下に示すように、 com.datastax.driver.core パッケージの Cluster.builder クラスのインスタンスを作成します。
新しいビルダーオブジェクトを使用して、クラスターオブジェクトを作成します。 そのためには、 Cluster.Builder クラスに* build()*というメソッドがあります。 次のコードを使用して、クラスターオブジェクトを作成します。
以下に示すように、1行のコードを使用してクラスターオブジェクトを構築できます。
ステップ2:セッションオブジェクトを作成する
以下に示すように、Clusterクラスのconnect()メソッドを使用してSessionオブジェクトのインスタンスを作成します。
このメソッドは、新しいセッションを作成して初期化します。 キースペースがすでにある場合は、次に示すように、キースペース名を文字列形式でこのメソッドに渡すことで、既存のキースペースに設定できます。
ここでは、 tp というキースペースを使用しています。 したがって、次のようにセッションオブジェクトを作成します。
ステップ3:クエリを実行する
Sessionクラスのexecute()メソッドを使用してCQLクエリを実行できます。 クエリを文字列形式で、またはStatementクラスオブジェクトとしてexecute()メソッドに渡します。 このメソッドに文字列形式で渡すものはすべて、 cqlsh で実行されます。
この例では、 emp テーブルからデータを取得しています。 以下に示すように、クエリを文字列に保存し、セッションクラスのexecute()メソッドに渡します。
Sessionクラスのexecute()メソッドを使用してクエリを実行します。
ステップ4:ResultSetオブジェクトを取得する
選択クエリは結果を ResultSet オブジェクトの形式で返すため、以下に示すように結果を RESULTSET クラスのオブジェクトに保存します。
以下は、テーブルからデータを読み取るための完全なプログラムです。
クラス名の後に.javaを付けて上記のプログラムを保存し、保存されている場所を参照します。 以下に示すように、プログラムをコンパイルして実行します。
通常の状態では、次の出力を生成する必要があります-