Lesen Sie Daten aus einer Tabelle mithilfe der CQL SELECT Anweisung in Amazon Keyspaces - Amazon Keyspaces (für Apache Cassandra)

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Lesen Sie Daten aus einer Tabelle mithilfe der CQL SELECT Anweisung in Amazon Keyspaces

In Daten in eine Amazon Keyspaces-Tabelle einfügen und laden diesem Abschnitt haben Sie anhand der SELECT Erklärung überprüft, ob Sie Ihrer Tabelle erfolgreich Daten hinzugefügt haben. In diesem Abschnitt verfeinern Sie Ihre Verwendung von, SELECT um bestimmte Spalten und nur Zeilen anzuzeigen, die bestimmte Kriterien erfüllen.

Die allgemeine Form der SELECT Aussage lautet wie folgt.

SELECT column_list FROM table_name [WHERE condition [ALLOW FILTERING]] ;

Wählen Sie alle Daten in Ihrer Tabelle aus

Die einfachste Form der SELECT Anweisung gibt alle Daten in Ihrer Tabelle zurück.

Wichtig

In einer Produktionsumgebung ist es in der Regel nicht empfehlenswert, diesen Befehl auszuführen, da er alle Daten in Ihrer Tabelle zurückgibt.

Um alle Daten Ihrer Tabelle auszuwählen
  1. Öffnen AWS CloudShell und stellen Sie mit dem folgenden Befehl eine Verbindung zu Amazon Keyspaces her. Stellen Sie sicher, dass Sie aktualisieren us-east-1 mit deiner eigenen Region.

    cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
  2. Führen Sie die folgende Abfrage aus.

    SELECT * FROM catalog.book_awards ;

    Wenn Sie das Platzhalterzeichen (*) für verwenden, werden alle column_list Spalten ausgewählt. Die Ausgabe der Anweisung sieht wie das folgende Beispiel aus.

    year | award | category | rank | author | book_title | publisher ------+------------------+-------------+------+--------------------+-----------------------+--------------- 2020 | Wolf | Non-Fiction | 1 | Wang Xiulan | History of Ideas | AnyPublisher 2020 | Wolf | Non-Fiction | 2 | Ana Carolina Silva | Science Today | SomePublisher 2020 | Wolf | Non-Fiction | 3 | Shirley Rodriguez | The Future of Sea Ice | AnyPublisher 2020 | Kwesi Manu Prize | Fiction | 1 | Akua Mansa | Where did you go? | SomePublisher 2020 | Kwesi Manu Prize | Fiction | 2 | John Stiles | Yesterday | Example Books 2020 | Kwesi Manu Prize | Fiction | 3 | Nikki Wolf | Moving to the Chateau | AnyPublisher 2020 | Richard Roe | Fiction | 1 | Alejandro Rosalez | Long Summer | SomePublisher 2020 | Richard Roe | Fiction | 2 | Arnav Desai | The Key | Example Books 2020 | Richard Roe | Fiction | 3 | Mateo Jackson | Inside the Whale | AnyPublisher

Wählen Sie eine Teilmenge von Spalten aus

Um eine Teilmenge von Spalten abzufragen
  1. Öffnen AWS CloudShell und stellen Sie mit dem folgenden Befehl eine Verbindung zu Amazon Keyspaces her. Stellen Sie sicher, dass Sie aktualisieren us-east-1 mit deiner eigenen Region.

    cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
  2. Führen Sie die folgende Abfrage aus awardcategory, um nur die year Spalten, und abzurufen.

    SELECT award, category, year FROM catalog.book_awards ;

    Die Ausgabe enthält nur die angegebenen Spalten in der Reihenfolge, die in der SELECT Anweisung aufgeführt ist.

    award | category | year ------------------+-------------+------ Wolf | Non-Fiction | 2020 Wolf | Non-Fiction | 2020 Wolf | Non-Fiction | 2020 Kwesi Manu Prize | Fiction | 2020 Kwesi Manu Prize | Fiction | 2020 Kwesi Manu Prize | Fiction | 2020 Richard Roe | Fiction | 2020 Richard Roe | Fiction | 2020 Richard Roe | Fiction | 2020

Wählen Sie eine Teilmenge von Zeilen aus

Wenn Sie einen großen Datensatz abfragen, möchten Sie möglicherweise nur Datensätze, die bestimmte Kriterien erfüllen. Dazu können Sie am Ende unserer SELECT Aussage eine WHERE Klausel anhängen.

Um eine Teilmenge von Zeilen abzufragen
  1. Öffnen AWS CloudShell und stellen Sie mit dem folgenden Befehl eine Verbindung zu Amazon Keyspaces her. Stellen Sie sicher, dass Sie aktualisieren us-east-1 mit deiner eigenen Region.

    cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
  2. Führen Sie die folgende Abfrage aus, um nur die Datensätze für die Auszeichnungen eines bestimmten Jahres abzurufen.

    SELECT * FROM catalog.book_awards WHERE year=2020 AND award='Wolf' ;

    Die vorherige SELECT Anweisung gibt die folgende Ausgabe zurück.

    year | award | category | rank | author | book_title | publisher ------+-------+-------------+------+--------------------+-----------------------+--------------- 2020 | Wolf | Non-Fiction | 1 | Wang Xiulan | History of Ideas | AnyPublisher 2020 | Wolf | Non-Fiction | 2 | Ana Carolina Silva | Science Today | SomePublisher 2020 | Wolf | Non-Fiction | 3 | Shirley Rodriguez | The Future of Sea Ice | AnyPublisher

Die WHERE Klausel verstehen

Die WHERE Klausel wird verwendet, um die Daten zu filtern und nur die Daten zurückzugeben, die die angegebenen Kriterien erfüllen. Bei den angegebenen Kriterien kann es sich um eine einfache oder eine zusammengesetzte Bedingung handeln.

Wie verwendet man Bedingungen in einer WHERE Klausel
  • Eine einfache Bedingung — Eine einzelne Spalte.

    WHERE column_name=value

    Sie können eine einfache Bedingung in einer WHERE Klausel verwenden, wenn eine der folgenden Bedingungen erfüllt ist:

    • Die Spalte ist die einzige Partitionsschlüsselspalte der Tabelle.

    • Sie fügen ALLOW FILTERING nach der Bedingung in der WHERE Klausel hinzu.

      Beachten Sie, dass die Verwendung zu einer inkonsistenten Leistung führen ALLOW FILTERING kann, insbesondere bei großen und mehrfach partitionierten Tabellen.

  • Eine zusammengesetzte Bedingung — Mehrere einfache Bedingungen, die miteinander verbunden sind. AND

    WHERE column_name1=value1 AND column_name2=value2 AND column_name3=value3...

    Sie können zusammengesetzte Bedingungen in einer WHERE Klausel verwenden, wenn eine der folgenden Bedingungen erfüllt ist:

    • Die Spalten, die Sie in der WHERE Klausel verwenden können, müssen entweder alle oder eine Teilmenge der Spalten im Partitionsschlüssel der Tabelle enthalten. Wenn Sie nur eine Teilmenge der Spalten in der WHERE Klausel verwenden möchten, müssen Sie einen zusammenhängenden Satz von Partitionsschlüsselspalten von links nach rechts einbeziehen, beginnend mit der ersten Spalte des Partitionsschlüssels. Wenn die Partitionsschlüsselspalten beispielsweise yearmonth, und award dann können Sie die folgenden Spalten in der Klausel verwenden: WHERE

      • year

      • year AND month

      • year AND month AND award

    • Sie fügen ALLOW FILTERING nach der zusammengesetzten Bedingung in der WHERE Klausel hinzu, wie im folgenden Beispiel.

      SELECT * FROM my_table WHERE col1=5 AND col2='Bob' ALLOW FILTERING ;

      Beachten Sie, dass die Verwendung zu einer inkonsistenten Leistung führen ALLOW FILTERING kann, insbesondere bei großen und mehrfach partitionierten Tabellen.

Probieren Sie es aus

Erstellen Sie Ihre eigenen CQL Abfragen, um Folgendes aus Ihrer book_awards Tabelle zu ermitteln:

  • Finden Sie die Gewinner der Wolf Awards 2020 und zeigen Sie die Buchtitel und Autoren nach Rang geordnet an.

  • Zeigen Sie die Gewinner des ersten Preises für alle Auszeichnungen im Jahr 2020 an und zeigen Sie die Buchtitel und die Namen der Auszeichnungen an.