Cassandra Select

Cassandra Select

Apache Cassandra er en av lederne i NoSQL-databaser med bred kolonne. I tillegg er det en gratis og open source-løsning for skjemløse data. Som et resultat er Cassandra et populært valg i miljøer som trenger å håndtere omfattende skala-data med minimal latens og høye tilgjengelighetsfunksjoner.

Cassandra gir Cassandra Query Language et kraftig spørringsspråk for å samhandle med Cassandra KeySpaces. CQL er tett lik SQL og gir lignende kommandoer og syntaks for lignende operasjoner. Dette gjør Cassandra lett tilgjengelig av utviklere fra relasjonsdatabaser.

I denne opplæringen lærer vi hvordan du bruker Select -kommandoen i Cassandra. Den utvalgte kommandoen lar oss hente postene fra en Cassandra -tabell.

La oss dykke inn.

Kommandosyntaks

Kommandoen følger en relativt enkel syntaks. Kommandosyntaks er som vist i følgende utdragekode:

Velg * | SELECT_EXPRESSION | Distinkt partisjon
Fra [KeySpace_name.] tabell_navn
[Hvor Partition_Value
[Og clustering_filters
[Og static_filters]]]
[Bestill av PK_COLUMN_NAME ASC | DESC]
[Grense n]
[Tillat filtrering]

Kommandoen returnerer deretter de spesifiserte radene fra måltabellen:

Merk: Siden Cassandra er designet for å håndtere store data, anbefales det ikke å hente alle radene fra en tabell som du ville gjort i en relasjonsdatabase.

Eksempeldata

Før vi lærer å velge dataene fra en tabell ved hjelp av Select -setningen, la oss sette opp en eksempeldata for illustrasjon.

Begynn med å lage et eksempel på KeySpace:

Lag KeySpace LinuxHint med replikering = 'klasse': 'enklestRategy', 'replication_factor': 3,;

Bytt gjeldende tastatur ved hjelp av følgende kommando:

Bruk Linuxhint;

Opprett en eksempeltabell ved hjelp av følgende kommando:

CQLSH: LinuxHint> Opprett tabellbrukere (ID Int, brukernavn -tekst, e -posttekst, aktiv int, primærnøkkel (ID));

Legg til en eksempeldata som vist:

CQLSH: LinuxHint> Sett inn i brukere (ID, brukernavn, e -post, aktive) verdier (0, 'user1', '[email protected] ', 1);
CQLSH: LinuxHint> Sett inn i brukere (ID, brukernavn, e -post, aktive) verdier (1, 'user2', '[email protected] ', 1);
CQLSH: LinuxHint> Sett inn i brukere (ID, brukernavn, e -post, aktive) verdier (2, 'user3', '[email protected] ', 0);
CQLSH: LinuxHint> Sett inn i brukere (ID, brukernavn, e -post, aktive) verdier (3, 'user4', '[email protected] ', 0);
CQLSH: LinuxHint> Sett inn i brukere (ID, brukernavn, e -post, aktive) verdier (4, 'user5', '[email protected] ', 1);

Eksempler

Følgende avsnitt gir eksemplene på å utføre de vanlige utvalgte utsagnene i en Cassandra -klynge.

Eksempel 1: Velg all post

I Cassandra kan vi velge alle postene fra en tabell ved hjelp av spørringen som vist:

CQLSH: LinuxHint> Velg * fra brukere;

Vi bruker SELECT -setningen i denne spørringen for å velge alle brukertabellkolonnene.

Den forrige spørringen skal returnere utdataene som vist:

id | aktiv | E -post | Brukernavn
----+--------+---------------+----------
1 | 1 | [email protected] | Bruker2
0 | 1 | [email protected] | Bruker1
2 | 0 | [email protected] | Bruker3
4 | 1 | [email protected] | Bruker5
3 | 0 | [email protected] | Bruker4

MERK: Som nevnt anbefales ikke dette for et stort datasett.

Eksempel 2: Velg spesifikke kolonner

Vi kan velge spesifikke kolonner fra en tabell ved å spesifisere kolonnene som komma-separerte verdier.

For å velge ID, brukernavn og e -postkolonner, kan vi for eksempel kjøre følgende kommando:

CQLSH: LinuxHint> Velg ID, E -post, brukernavn fra brukere;

I dette tilfellet bør kommandoen returnere en utdata som følger:

id | E -post | Brukernavn
----+---------------+----------
1 | [email protected] | Bruker2
0 | [email protected] | Bruker1
2 | [email protected] | Bruker3
4 | [email protected] | Bruker5
3 | [email protected] | Bruker4
(5 rader)

Eksempel 3: Bruke kolonnealiaser

For å gjøre utgangen mer lesbar, kan vi bruke kolonnealiasene som gir tilpassede navn til utgangsresultatet.

For eksempel:

CQLSH: LinuxHint> Velg ID som User_Index, e -post som e -post_adresse, brukernavn som identifikator fra brukere;

AS -nøkkelordet i spørringen lar deg gi nytt navn til kolonnen til et aliasnavn uten å gjøre permanente endringer i tabellen.

For eksempel returnerer den forrige spørringen resultatet som:

user_index | e -post_adresse | identifikator
------------+---------------+------------
1 | [email protected] | Bruker2
0 | [email protected] | Bruker1
2 | [email protected] | Bruker3
4 | [email protected] | Bruker5
3 | [email protected] | Bruker4
(5 rader)

Merk at ID-, e -post- og brukernavn -kolonnene blir omdøpt til henholdsvis user_index, e -post_adresse og identifikator.

Eksempel 4: Begrensning av antall rader

Ved å bruke grensealternativet kan vi også begrense antall poster som er returnert av SELECT -spørringen. Grense -leddet tar et heltall som representerer antall rader som skal hentes.

For å hente de tre første radene, kan vi for eksempel kjøre følgende kommando:

CQLSH: LinuxHint> Velg * fra brukere grense 3;

Den resulterende utgangen er som følger:

id | aktiv | E -post | Brukernavn
----+--------+---------------+----------
1 | 1 | [email protected] | Bruker2
0 | 1 | [email protected] | Bruker1
2 | 0 | [email protected] | Bruker3
(3 rader)

Eksempel 5: Filtreringsdata

Vi kan også hente dataene som samsvarer med en spesifikk tilstand ved å bruke WHERE -leddet. Dette lar oss spesifisere en tilstand som returnerer sann/usant og returnerer samsvarende verdier.

For å hente alle radene der verdien av den aktive kolonnen er lik 1, kan vi for eksempel gjøre følgende:

CQLSH: LinuxHint> Velg * fra brukere der aktiv = 1 tillater filtrering;

Den forrige spørringen skal bare returnere radene der den aktive kolonnen = 1.

id | aktiv | E -post | Brukernavn
----+--------+---------------+----------
1 | 1 | [email protected] | Bruker2
0 | 1 | [email protected] | Bruker1
4 | 1 | [email protected] | Bruker5
(3 rader)

MERK: Tillat filtreringskommandoen lar Cassandra bruke datafiltreringsfunksjonene.

ANBEFALING: Bruk bare tillatet filtrering for utviklingsformål.

Konklusjon

I denne artikkelen lærte du grunnleggende om å velge dataene fra en Cassandra -tabell ved hjelp av CQL Select -setningen.

Takk for at du leste!