Вставка жестко запрограммированного UUID через CQLsh (Cassandra)

Хотелось бы заполнить некоторые статические тестовые данные через скрипт CQLsh.

Это не работает: (device_id - UUID)

insert into devices (device_id, geohash,name, external_identifier, measures, tags) 
values ('c37d661d-7e61-49ea-96a5-68c34e83db3a','9q9p3yyrn1', 'Acme1', '936', {'aparPower','actPower','actEnergy'},{'make':'Acme'});

Неверный запрос: неверная константа STRING (c37d661d-7e61-49ea-96a5-68c34e83db3a) для device_id типа uuid

Я не могу найти какую-либо функцию CQL для преобразования в правильный тип. Нужно ли делать это из скрипта Python?

Спасибо Крис

2 ответа

Решение

Вы не должны помещать кавычки вокруг UUID, чтобы остановить его интерпретацию как строку, т.е.

insert into devices (device_id, geohash,name, external_identifier, measures, tags) 
 values 
(c37d661d-7e61-49ea-96a5-68c34e83db3a,'9q9p3yyrn1', 'Acme1', '936', {'aparPower','actPower','actEnergy'},{'make':'Acme'});

Альтернатива: используйте функцию uuid(). Я проверил это в DevCenter 1.6.0.

вставить в значения CHANGE_LOG (cjpid, updateddatetime, seatnumber, gatenumber, source) значения ( uuid(), '2000-12-12 08:00:00', '21A', '', 'MARS');

Другие вопросы по тегам