Descripción general del tipo definido por el usuario (UDT) en Cassandra

Tipo de datos definido por el usuario:
una de las ventajas de los datos definidos por el usuario (UDT) es adjuntar varios campos de datos a una columna. En Cassandra, los UDT juegan un papel vital que permite que los campos relacionados con el grupo (como el campo 1, el campo 2, etc.) puedan ser de datos juntos y se nombren y escriban.

En Cassandra, una de las ventajas de los UDT que ayuda a agregar flexibilidad a su tabla y modelo de datos. podemos construir UDT proporcionado por Cassandra: UDT, que significa Tipo definido por el usuario. Como podemos mostrar en el ejemplo, los tipos definidos por el usuario (UDT) pueden adjuntar varios campos de datos en los que cada nombre y tipo se puede asignar a una sola columna.

Para construir el tipo definido por el usuario (UDT), se puede usar cualquier tipo de datos válido para el tipo de campos en Cassandra, incluida la colección (SET, LIST, MAP) o cualquier otro UDT. Una vez que se crea un UDT en Cassandra, se puede usar para definir una columna en la tabla principal.

Syntax to define UDT:
CREATE TYPE UDT_name 
(
  field_name 1 Data_Type 1,
  field_name 2 Data_Type 2,
  field_name 3 Data_Type 3,
  field_name 4 Data_Type 4,
  field_name 5 Data Type 5,
);

Pasos sencillos para crear UDT:

Paso 1: Cree un KEYSPACE, si no existiera. Sintaxis:

create_keyspace_statement ::=  
      CREATE KEYSPACE [ IF NOT EXISTS ] keyspace_name 
       WITH options 

Paso 2: para crear un espacio de claves, utilizó la siguiente consulta CQL.

CREATE KEYSPACE Emp
    WITH replication = {'class': 'SimpleStrategy', 
                        'replication_factor' : 1};  

Para verificar el esquema de espacio de claves, se utilizó la siguiente consulta CQl.

DESCRIBE KEYSPACE Emp;

Paso 3: para crear el tipo de datos de usuario del empleado para la dirección actual, se utilizó la siguiente consulta CQL. Por ejemplo, Tipo de datos de usuario para la dirección actual

CREATE TYPE Emp.Current_add
(
Emp_id int,
h_no text,
city text,
state text,
pin_code int,
country text 
); 

Aquí Current_add es un tipo de datos definido por el usuario de Cassandra.


Figura: tipos definidos por el usuario (UDT)

Paso 4: Cree un registro de tabla que tenga UDT dirección_actual como una de las columnas, por ejemplo:

CREATE TABLE Registration
( 
Emp_id int PRIMARY KEY, 
Emp_Name text, 
current_address FROZEN<Current_add>
); 

Paso 5: Para insertar datos usando UDT en Cassandra, usó la siguiente consulta CQL.

Formato-1: utilizando el formato JSON (Notación de objetos de JavaScript).
En Cassandra también podemos insertar datos en formato JSON (JavaScript Object Notation). Por ejemplo: consulta CQL utilizando el formato JSON.

INSERT INTO Registration JSON'
{
"Emp_id"            : 2000, 
"current_address"   :  { "h_no" : "A 210", "city" : 
                        "delhi", "state" : "DL",
                        "pin_code" :"201307", 
                        "country" :"india"},
"Emp_Name"          : "Ashish Rana"}' ;
 

Formato-2: inserción simple

INSERT INTO Registration (Emp_id, Emp_Name, current_address ) 
            values (1000, 'Ashish', { h_no :'A 210', city : 'delhi', state : 'DL', pin_code 
                                    :12345, country :'IN'});

INSERT INTO Registration(Emp_id, Emp_Name, current_address ) 
            values (1001, 'kartikey Rana', { h_no : 'B 210 ',  city 
                                    : 'mumbai', state : 'MH', pin_code 
                                    :12345, country :'IN'});

INSERT INTO Registration(Emp_id, Emp_Name, current_address ) 
            values (1002, 'Dhruv Gupta', { h_no : 'C 210', city 
                                    : 'delhi', state : 'DL', pin_code 
                                    :12345, country :'IN'}); 

Producción:


Figura: inserción de tabla UDT

En este caso, veremos cómo insertar comando sin insertar el valor de uno o más campos.
Por ejemplo, no estamos pasando el valor del campo aquí. ¿Cómo manejará esto Cassandra?
Bueno, insertará este valor como un valor normal pero tomará el valor del campo como nulo. Cada valor de campo, excepto la clave principal que no pasamos en el momento de la inserción, Cassandra lo tomará como nulo.

Consulta CQL sin insertar un campo o más valores de campo del UDT:

INSERT INTO Registration(Emp_id, Emp_Name, current_address ) 
                 values (1003, 'Amit Gupta', { h_no : 'D 210',  city 
                               : 'Bangalore', state : 'MH', pin_code :12345}
                               );

INSERT INTO Registration(Emp_id, Emp_Name, current_address ) 
                 values (1004, 'Shivang Rana', { h_no : 'E 210', city 
                               : 'Hyderabad', state : 'HYD'});
                               

Producción:


Figura: tabla UDT sin insertar uno o más valores de campo

Publicación traducida automáticamente

Artículo escrito por Ashish_rana y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *