Apache Cassandra es uno de los líderes en las bases de datos NoSQL de columna amplia. Además, es una solución gratuita y de código abierto para datos sin esquema. Como resultado, Cassandra es una opción popular en entornos que necesitan manejar datos de escala extensa con características de latencia y alta disponibilidad mínima.
Cassandra proporciona al lenguaje de consulta de Cassandra un poderoso lenguaje de consulta para interactuar con Cassandra Keyspaces. CQL es muy similar a SQL y proporciona comandos y sintaxis similares para operaciones similares. Esto hace que Cassandra sea fácilmente accesible por los desarrolladores de bases de datos relacionales.
En este tutorial, aprenderemos cómo usar el comando seleccionar en Cassandra. El comando Select nos permite obtener los registros de una tabla Cassandra.
Vamos a sumergirnos.
Sintaxis de comando
El comando sigue una sintaxis relativamente simple. La sintaxis del comando es como se muestra en el siguiente código de fragmento:
Seleccionar * | select_expression | Partición distinta
De [KeySpace_Name.] nombre de la tabla
[Donde Partition_Value
[Y clustering_filters
[Y static_filters]]]
[Orden de PK_COLUMN_NAME ASC | Desc]
[Límite N]
[Permitir filtrado]
El comando devuelve las filas especificadas de la tabla de destino:
Nota: Dado que Cassandra está diseñado para manejar los datos a gran escala, no se recomienda obtener todas las filas de una tabla como lo haría en una base de datos relacional.
Data de muestra
Antes de aprender a seleccionar los datos de una tabla utilizando la instrucción SELECT, configuremos los datos de muestra para la ilustración.
Comience creando un espacio de tecla de muestra:
Crea KeySpace LinuxHint con replication = 'class': 'SimpleStrategy', 'replication_factor': 3,;
Cambie el espacio de tecla actual usando el siguiente comando:
Usa Linuxhint;
Cree una tabla de muestra utilizando el siguiente comando:
CQLSH: LinuxHint> Crear usuarios de tabla (ID int, texto de nombre de usuario, texto de correo electrónico, activo int, clave primaria (id));
Agregue los datos de muestra como se muestra:
CQLSH: LinuxHint> Insertar en usuarios (ID, nombre de usuario, correo electrónico, Valores activos) (0, 'User1', '[email protected] 1);
CQLSH: Linuxhint> Insertar en usuarios (ID, nombre de usuario, correo electrónico, Valores activos) (1, 'User2', '[email protected] 1);
CQLSH: LinuxHint> Insertar en usuarios (ID, nombre de usuario, correo electrónico, Valores activos) (2, 'user3', '[email protected] ', 0);
CQLSH: LinuxHint> Insertar en usuarios (ID, nombre de usuario, correo electrónico, Valores activos) (3, 'User4', '[email protected] ', 0);
CQLSH: LinuxHint> Insertar en usuarios (ID, nombre de usuario, correo electrónico, Valores activos) (4, 'User5', '[email protected] 1);
Ejemplos
La siguiente sección proporciona los ejemplos de realizar las declaraciones selectas comunes en un clúster de Cassandra.
Ejemplo 1: seleccione todo el registro
En Cassandra, podemos seleccionar todos los registros de una tabla utilizando la consulta como se muestra:
cqlsh: linuxhint> select * de usuarios;
Usamos la instrucción Seleccionar en esta consulta para seleccionar todas las columnas de la tabla de usuario.
La consulta anterior debe devolver la salida como se muestra:
ID | activo | correo electrónico | nombre de usuario
----+--------+---------------+----------
1 | 1 | [email protected] | usuario2
0 | 1 | [email protected] | usuario1
2 | 0 | [email protected] | Usuario3
4 | 1 | [email protected] | Usuario5
3 | 0 | [email protected] | Usuario4
NOTA: Como se mencionó, esto no se recomienda para un gran conjunto de datos.
Ejemplo 2: Seleccione columnas específicas
Podemos seleccionar columnas específicas de una tabla especificando las columnas como valores separados por comas.
Por ejemplo, para seleccionar las columnas de ID, nombre de usuario y correo electrónico, podemos ejecutar el siguiente comando:
CQLSH: LinuxHint> Seleccionar ID, correo electrónico, nombre de usuario de los usuarios;
En este caso, el comando debe devolver una salida de la siguiente manera:
ID | correo electrónico | nombre de usuario
----+---------------+----------
1 | [email protected] | usuario2
0 | [email protected] | usuario1
2 | [email protected] | Usuario3
4 | [email protected] | Usuario5
3 | [email protected] | Usuario4
(5 filas)
Ejemplo 3: Uso de alias de columna
Para que la salida sea más legible, podemos usar los alias de columna que dan nombres personalizados al resultado de la salida.
Por ejemplo:
CQLSH: LinuxHint> Seleccione ID como user_index, correo electrónico como correo electrónico_address, nombre de usuario como identificador de usuarios;
La palabra clave AS en la consulta le permite cambiar el nombre de la columna a un nombre de alias sin hacer cambios permanentes en la tabla.
Por ejemplo, la consulta anterior devuelve el resultado como:
user_index | email_address | identificador
------------+---------------+------------
1 | [email protected] | usuario2
0 | [email protected] | usuario1
2 | [email protected] | Usuario3
4 | [email protected] | Usuario5
3 | [email protected] | Usuario4
(5 filas)
Tenga en cuenta que las columnas de ID, correo electrónico y nombre de usuario se renombran a user_index, correo electrónico_address e identificador, respectivamente.
Ejemplo 4: limitar el número de filas
Usando la opción Límite, también podemos limitar el número de registros devueltos por la consulta de selección. La cláusula límite toma un entero que representa el número de filas para recuperar.
Por ejemplo, para obtener las primeras tres filas, podemos ejecutar el siguiente comando:
CQLSH: LinuxHint> Seleccionar * Desde el límite de los usuarios 3;
La salida resultante es la siguiente:
ID | activo | correo electrónico | nombre de usuario
----+--------+---------------+----------
1 | 1 | [email protected] | usuario2
0 | 1 | [email protected] | usuario1
2 | 0 | [email protected] | Usuario3
(3 filas)
Ejemplo 5: Filtrado de datos
También podemos obtener los datos que coincidan con una condición específica utilizando la cláusula WHERE. Esto nos permite especificar una condición que devuelve verdadero/falso y devuelve los valores coincidentes.
Por ejemplo, para obtener todas las filas donde el valor de la columna activa es igual a 1, podemos hacer lo siguiente:
CQLSH: LinuxHint> Seleccionar * de usuarios donde activo = 1 Permitir filtrado;
La consulta anterior debe devolver solo las filas donde la columna activa = 1.
ID | activo | correo electrónico | nombre de usuario
----+--------+---------------+----------
1 | 1 | [email protected] | usuario2
0 | 1 | [email protected] | usuario1
4 | 1 | [email protected] | Usuario5
(3 filas)
NOTA: El comando Permitir filtrado permite a Cassandra usar las características de filtrado de datos.
RECOMENDACIÓN: Solo use el filtrado de Permitir solo para fines de desarrollo.
Conclusión
En este artículo, aprendió los fundamentos de seleccionar los datos de una tabla de Cassandra utilizando la instrucción SELECT CQL.
Gracias por leer!