Каждая запись в файле включает идентификатор документа и несколько полей. Заголовок файла также содержит метку времени, указывающую, когда все записи в файле были обновлены.
Я оцениваю три возможных подхода в весеннем пакете для получения соответствующих документов из Couchbase в процессоре элементов
1. Запрос N1QL с диапазоном временных меток
Запросить Couchbase с использованием GSI в поле временной метки, что-то вроде:
Код: Выделить всё
SELECT META().id, *
FROM bucket
WHERE updateTs BETWEEN $start AND $end;
2. Поиск KV для каждой записи
Прочитайте файл построчно, извлеките идентификаторы документов и выполните:
Код: Выделить всё
collection.get(docId);
3. N1QL с USE KEYS
Соберите ключи пакетами (например, по 500–1000 за раз) и запустите:
Код: Выделить всё
SELECT META().id, *
FROM bucket USE KEYS ["key1", "key2", ...];
Мои вопросы:
- Какой подход является самым быстрым и масштабируемым для проверки до ~700 тысяч записей?
- Является ли запрос диапазона меток времени более эффективным, чем массовый Операции KV?
- Рекомендуется ли USE KEYS для подобных шаблонов пакетной выборки?
Подробнее здесь: https://stackoverflow.com/questions/798 ... -documents
Мобильная версия