Je veux définir TTL 30 jours à partir du champ de temps de l'enregistrement de table (ID, nom, heure) lors de l'insertion. Pour cela, je suis création d'une fonction définie par l'utilisateur (UDF) bigint fun(rTime,cTime)
commeréglage TTL en utilisant timestamp champ d'enregistrement lors de l'insertion dans cassandra
CREATE FUNCTION fun(rtime timestamp,ctime timestamp) CALLED ON NULL INPUT
RETURNS bigint LANGUAGE java as 'return 2592000-((ctime.toTime() -rtime.toTime())/1000);';
ici, fonction fun calcule le temps en secondes ces données doivent vivre. 2592000 est le temps en secondes pendant 30 jours.
Maintenant, je suis en train d'utiliser la fonction ci-dessus pour le réglage TTL comme
INSERT INTO record(id,name,time) VALUES (123,'data123','2016-08-08 06:06:00')
USING TTL fun('2016-08-08 06:06:00',totimestamp(now()));
obtenir erreur
Syntaxe Exception: code ErrorMessage = 2000 ........
Existe-t-il un autre moyen de définir ttl en fonction du champ d'heure d'enregistrement. Quel est le problème avec l'approche ci-dessus?