Funciones UUID y Timeuuid en Cassandra

Requisito previo: Cassandra 
En este artículo, vamos a discutir la función uuid(), que es muy importante para insertar valor y generar de forma única un valor UID «único garantizado» Universalmente. 

Una de las razones de usar la función uuid() para generar una ID única que ayuda a evitar colisiones. La función uuid() es adecuada para su uso en declaraciones de inserción o actualización y la función uuid() no toma ningún valor de parámetro para generar un valor UUID de tipo 4 aleatorio único que es un valor único garantizado. Tomemos un ejemplo para entender la función uuid(). 
 

Create table function4(Id uuid primary key, name text); 

Esta consulta CQL NO es correcta para insertar el valor de Id usando la función uuid(). 
 

Insert into function4 (Id, name) 
values (1, ‘Ashish’); // fails  

Producción: 

Esta consulta CQL es correcta para insertar el valor de Id usando la función uuid(). 
 

Insert into function4(Id, name) 
values (now(), ‘Ashish’);  //correct 

Producción: 

Algunas funciones timeuuid() adicionales: 
 

  1. dateof() : 
    esta función devuelve la marca de tiempo extraída como una fecha.
  2. now() : 
    En Cassandra Query Language, la función now() se puede usar para el estándar UTC (Universal Time). El método Now() es útil para insertar un valor que se garantiza que es único. 

    Para insertar la hora actual como un valor, podemos usar las funciones timeuuid now() y dateof(). 
     

CREATE TABLE function_test1(Id uuid primary key,
                                        name text,
                           modified_date timestamp );

INSERT INTO function_test1(Id, name, modified_date) 
       VALUES (now(), 'Rana', '2019-10-29 00:05+0000');
INSERT INTO function_test1(Id, name, modified_date) 
       VALUES (now(), 'Rana', '2019-10-30 00:05+0000');

select * 
from function_test1; 
  1. Producción: 

     

  1. Ahora, veamos cómo funciona la función today(). 
     

select todate(modified_date) 
from function_test1; 
  1. Producción: 

     

  1. Para una versión posterior> 2.2.0 en Cassandra, podemos usar la función Timestamp (now()). 
     

CREATE TABLE function_test2(Id uuid primary key,
                                        name text,
                         modified_date timestamp );

INSERT INTO function_test2 (Id, name, modified_date) 
       VALUES (now(), 'Rana', toTimestamp(now()));

Select * 
from function_test2; 
  1. Producción: 

     

  1.  

  2. minTimeuuid() y maxTimeuuid() : 
    ambas funciones se utilizan para encontrar el timeuuid mínimo y máximo respectivamente. La función minTimeuuid() devuelve el valor mínimo de Timeuuid y la función maxTimeuuid() devuelve el valor máximo de Timeuuid. 
     
  3. unixTimestampOf(): 
    en Cassandra Query Language, unixTimestampOf() funciona con la marca de tiempo en ms (milisegundos) de una columna timeuuid en un conjunto de resultados. Las funciones unixTimestampOf() devuelven una marca de tiempo entera de 64 bits.

En la nueva versión de Cassandra, para manipular la fecha, se admiten algunas funciones adicionales de timeuuid y timestamp. Se puede usar para instrucciones de inserción, actualización y selección. 

Funciones adicionales de timeuuid y timestamp Nombre Convertir
hasta la fecha (hora uuid) Desde el formato timeuuid hasta la fecha [YYYY-MM-DD].
toTimestamp(timeuuid) De timeuuid a formato de marca de tiempo.
toUnixTimestamp(marca de tiempo) De timeuuid a formato de marca de tiempo UNIX.
hasta la fecha (marca de tiempo) Desde la marca de tiempo hasta el formato de fecha [YYYY-MM-DD].
toUnixTimestamp(marca de tiempo) De la marca de tiempo al formato de marca de tiempo UNIX.
a la marca de tiempo (fecha) Desde la fecha hasta el formato de marca de tiempo.
toUnixTimestamp(fecha) Desde la fecha hasta el formato de marca de tiempo UNIX.

Entendamos con un ejemplo, 

CREATE TABLE function3( Col1 int, Col2 timestamp, 
                             Col3 timeuuid, Col4 bigint, 
                  PRIMARY KEY(Col1, Col2, Col3, Col4)); 
Insert into function3(Col1, Col2, Col3, Col4) 
            Values (9, toUnixTimestamp(now()), 
                     49d59e61-961b-11e8-9854-134d5b3f9cf8, 
                       toTimestamp(now()));  
SELECT * 
from function3; 

Producción: 

Figura – Salida de la tabla function3
 

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 *