Couchbase (ex. Membase) решение для выгрузки всех ключей в ведро - PullRequest
2 голосов
/ 24 февраля 2012

Я гуглил и нашел различные решения для python + tap, которые позволили бы мне выбросить все ключи из корзины, но ни одно из них не помогло мне. У меня есть ведро в порту 11230, и мне нужно получить дамп всех ключей, чтобы заполнить их поисковой системой sphinx.

Если я выполню:

# python /opt/couchbase/lib/python/tap_example.py 127.0.0.1:11230

Я получаю следующий вывод:

info: New bin connection from None
error: uncaptured python exception, closing channel <tap.TapConnection connected at 0x7f5d287184d0> (<type 'exceptions.AssertionError'>: [/usr/lib/python2.6/asyncore.py|read|78] [/usr/lib/python2.6/asyncore.py|handle_read_event|428] [/opt/couchbase/lib/python/mc_bin_server.py|handle_read|325])

эта ошибка такая же, даже если я пробую другой хост или порт. Я также пробовал много других скриптов на Python, которые я нашел на форумах и в группах, но все они выдавали одну и ту же ошибку.

Моя основная среда разработки включает в себя PHP & Perl на Debian Linux, но я приму любое решение, которое просто сбросит все ключи в простой текстовый файл.

Спасибо за любую помощь!

1 Ответ

1 голос
/ 20 октября 2013

Поздний ответ, но вы могли бы использовать для этого представление в базе данных.

function (doc, meta) {
  if(meta.type == 'json') {
   emit(doc.key, null);    
  }
}

Это будет генерировать каждый ключ в корзине, который является json.

...