Удаление строк в хранилище данных по временному диапазону

У меня есть хранилище данных CKAN со столбцом с именем «recvTime» типа timestamp (т. е. с использованием «timestamp» в качестве типа во время datastore_create, как показано по этой ссылке). Пример значения для этого столбца: «2014-06-12T16:08:39.542000».

У меня есть большое количество записей в хранилище данных (тысячи), и я хотел бы удалить строки до указанной даты в «recvTime». Моя первая мысль заключалась в том, чтобы сделать это с помощью REST API с операцией datastore_delete с использованием фильтра диапазона, но это невозможно, как описано в следующих вопросах и ответах.

Подскажите, пожалуйста, есть ли другой способ решения проблемы?

Учитывая, что у меня есть доступ к хосту, на котором работает сервер CKAN, мне интересно, можно ли этого добиться, выполнив обычное предложение SQL в движке Postgresql, где хранится хранилище данных. Однако я не нашел информации об управлении базовой моделью данных CKAN в документации CKAN, поэтому не знаю, хорошая ли это идея или рискованная...

Приветствуются любые обходные пути или информационные указатели. Спасибо!


person fgalan    schedule 18.06.2014    source источник


Ответы (1)


Вы определенно можете сделать это непосредственно в базовой базе данных, если захотите покопаться в ней (структура довольно проста с таблицами, названными в честь соответствующего идентификатора ресурса). Вы даже можете превратить это в собственный API, используя расширение (хотя вы должны быть осторожны с разрешениями).

Вас также может заинтересовать новая поддержка (только основной банкомат) для расширения DataStore API с помощью подключаемого модуля в расширении — см. https://github.com/ckan/ckan/pull/1725

person Rufus Pollock    schedule 05.07.2014
comment
Есть ли какая-нибудь документация на сайте CKAN о том, как копаться в базовой базе данных, пожалуйста? Например. какие параметры установлены для -U и -d (пользователь и база данных) в команде psql. - person fgalan; 08.07.2014
comment
Отвечаю сам себе :)... sudo -i -u postgres psql -d datastore_default помогает - person fgalan; 08.07.2014