2015-07-13 2 views
1

У меня есть имен: теста и набор: пользователь в базе данных Aerospike. Я добавляю четыре записи в пользователях через следующую команду на консоли:Получение пустых записей при чтении нескольких записей в Aerospike

ascli put test users barberakey '{"username":"Barbera","password":"barbera","gender":"f","region":"west","company":"Audi"}' 

Через акль команды, я могу просмотреть эти четыре записи. aql> выберите * из test.users.

Я знаю метод получения записей один за другим, и он отлично работает на моей стороне, но это очень дорогостоящая операция для моей задачи. Я хочу прочитать несколько записей (пакетное чтение) и выполнить на них несколько алгоритмов. Я взял руководство от https://www.aerospike.com/docs/client/java/usage/kvs/batch.html и написал следующий код:

Ключ [] keys = new Key [4];

   for (int i = 0; i < 4; i++) { 
        keys[i] = new Key("test", "users", (i + 1)); 
        System.out.println("Keys: "+keys[i]); 
       } 

       Record[] records = client.get(batchPolicy, keys); 
       System.out.println("Length of Records : "+records.length); 
       for(int a=0;a<records.length;a++){ 
        System.out.println("RECORDS IN ARRAY: "+records[a]); 

       } 

Но проблема в том, что он читает ключи, но дает записи Array null.

Output: 
Reading records from Aerospike DB 
Keys: test:users:1:3921e84015258aed3b93d7ef5770cd27b9bb4167 
Keys: test:users:2:1effb3ce25b23f92c5371dee0ac8e6b34f5703c6 
Keys: test:users:3:d17519d72e22beab2c3fa1552910ea3380c262bd 
Keys: test:users:4:3f09a505c913db8ad1118e20b78c5bb8495fb0f9 
Length of Records : 4 
RECORDS IN ARRAY: null 
RECORDS IN ARRAY: null 
RECORDS IN ARRAY: null 
RECORDS IN ARRAY: null 

Прошу вас, руководствоваться случаем.

......

+0

Были ли какие-либо миграции при запуске? Не могли бы вы предоставить вывод 'asadm -e info'? – kporter

+1

Во время миграции пакетный запрос может не возвращать все значения; текущая пакетная реализация не запрашивает прокси в пакете. Предстоящая версия 3.6.x будет включать новую пакетную операцию, которая выполняется с более высоким приоритетом и будет прокси-сервером, если записи могут существовать на другом узле. – kporter

+0

Есть ли у вас идеи, как я могу достичь своей цели? На самом деле я получаю записи, а затем сохраняю их в arrayList, а затем применяю к ним операции. Я хочу избежать записи в arrayList и делать операции непосредственно с записями. –

ответ

2

Появляется Вы писали записи с помощью ключа "barberakey". Затем читайте записи целым ключом «i + 1». Таким образом, записи не найдены.

+0

Да, я уже решил проблему. В любом случае, спасибо за сообщение. –

 Смежные вопросы

  • Нет связанных вопросов^_^