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!