Каков наиболее эффективный способ проверки данных файла на соответствие документам Couchbase с помощью Spring Batch — диJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Каков наиболее эффективный способ проверки данных файла на соответствие документам Couchbase с помощью Spring Batch — ди

Сообщение Anonymous »

У меня есть вариант использования проверки, когда входной файл содержит список записей, которые были обновлены в определенную временную метку. Мне нужно убедиться, что данные в файле совпадают с данными, хранящимися в Couchbase.
Каждая запись в файле включает идентификатор документа и несколько полей. Заголовок файла также содержит метку времени, указывающую, когда все записи в файле были обновлены.
Я оцениваю три возможных подхода в весеннем пакете для получения соответствующих документов из Couchbase в процессоре элементов

1. Запрос N1QL с диапазоном временных меток
Запросить Couchbase с использованием GSI в поле временной метки, что-то вроде:

Код: Выделить всё

SELECT META().id, *
FROM bucket
WHERE updateTs BETWEEN $start AND $end;
Это возвращает все документы, обновленные в течение периода временной метки.

2. Поиск KV для каждой записи
Прочитайте файл построчно, извлеките идентификаторы документов и выполните:

Код: Выделить всё

collection.get(docId);
Это может привести к поиску 100–700 тысяч KV в зависимости от размера файла.

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»