Дмитрий Беляев: да в том то и дело, 600к доков, таблица весит около 2 гб, до финального ее состояния в нее много записывалось и удалялось, но думаю ускориться не смогу в этой ситуации никак.
Дмитрий Беляев: тогда есть смысл обсудить сабж. я думаю, что ретфинк больше нацелен на стримы и событийность, чем на обработку бигдата (хотя рука не сильно подымается называть 600к бигдатой), по этому моя затея вынимать массивы данных видимо мало хорошая затея, не для того базу создавали. Если по конкретике, есть ли какой другой вариант запроса , я пробовал получить данные на курсор через r.table и r.table.getAll('filtername', {index: 'indexname'}) в обоих случаях отдает через курсор долго, как получить данные сразу массивом я не понимаю, на сколько я вижу, оно всегда селекты отдает как курсор, а далее селект.тоаррей до 100к документов, или через некст, получай свой массив сам. Короче если есть идеи , я был бы признателен услышать. Думаю еще попробовать eachAsinc или как там оно пишется, но в моейм воображении этот процесс просто завалится по нехватке скорости диска....
HackOwnB: watir, phantome.js, nightmare.js . Выбираете, что вам ближе и действуете. Хотя мне ближе идея изучить апи гмайл или яндекс почты и забирать без заморочек.
Дмитрий, вы как бы в теме той бд, о которой я спрашиваю? Там в принципе после запроса всей бд возвращается курсор.... t.table('table').run(...).then(cursor=>{...})
student_it: как ваш оппонент могу вас расстроить, тот , кому будут нужны ваши данные, заберет их. Сейчас спарсить динамический дом стоит только времени и нагрузки на озу и процессор. Хотя можно пожертвовать удобством пользователей и выдавать емайлы в виде картинки, маленькое, но западло устроите.
napa3um: отсюда и мой вопрос, возможно я не понял архитектуру сие решения и делаю что-то не так, или в моейм случае это просто совсем не тот инструмент, которым надо пользоваться.
Меня подкупил стрим изменений бд..
napa3um: вопрос адекватный, читать 600 тыс записей два часа на мой взгляд крайне не производительно. Я уже молчу про попытки получить distincct по индексу на этот объем.
такое ощущение, что вы пытаетесь спарсить емайлы, а сайт динамически меняет дом и это вас бесит ) Во твы все это описали, а вас не смущает, что есть кнопки, на которых вообще хреф пользователю не показывается, но они его ведут дальше?
function A() return new Promise( (resolve, reject)=>{ if ... делаете свои действия, что сейчас засунуты в then , по их завершению отдаете resolve() ... then catch в этом промисе останутся в качестве мониторинга, если особо хотите заиграться в промисы, можно один промис обернуть другим и тп и тд, я честно говоря сейчас филосовствую, так как не вижу вашу реальную задачу
Александр Диунов вы это потом не забудьте рассказать проверяющим органам. И еще будьте добры погрейте мое любопытство, можно нормативно обосновать вашу позицию?