Как получить нулевые значения записей в aerospike

введите описание изображения здесь

Я работаю с Aerospike. Используя AQL, я вставил некоторые данные. Я хочу получить нулевые значения записей с определенными полями в aerospike. Я помечаю картинку на этой картинке, у одной записи нет имени, ее пустое место


person Ashu    schedule 05.07.2017    source источник


Ответы (2)


В Aeropsike нет схемы - каждая запись самоописываема. Любая ячейка, которая не равна нулю, является частью записи. Любая корзина, которая обновлена ​​до нуля, фактически удаляется из записи. Итак, думайте о единицах записи, а не о таблице со столбцами. Вы можете запросить конкретную корзину из записи, и, если она не найдена, Aeropsike вернет ноль. Вот Java API:

public final Record get(Policy policy,
         Key key,
         String... binNames)
                 throws AerospikeException
Read record header and bins for specified key. The policy can be used to specify timeouts.
Specified by:
get in interface IAerospikeClient
Parameters:
policy - generic configuration parameters, pass in null for defaults
key - unique record identifier
binNames - bins to retrieve
Returns:
if found, return record instance. If not found, return null.
Throws:
AerospikeException - if read fails
person pgupta    schedule 05.07.2017
comment
не могли бы вы подробнее рассказать о том, что происходит с корзиной, когда я ставлю на нее null? это процесс, который удаляет корзину? что происходит? LUT записи обновляется при вставке нуля в корзину? доставляется ли он через XDR? - person Zvi Mints; 03.08.2021
comment
null - ›удаляет корзину, да. что творится? - ›обновленная версия записи перезаписывается в системе с обновленным LUT. Если вы используете XDR, эта запись будет отправлена ​​через xdr. - person pgupta; 04.08.2021

Выполните тестовый код - ключ записи действителен с некоторыми другими ячейками:

userRecord = client.get(null, userKey, "notThereBin");
    if (userRecord != null) {
        console.printf("\nINFO: User record with notThereBin read successfully! Here are the details:\n");
        console.printf("notThereBin:  " + userRecord.getValue("notThereBin") + "\n");
    } else {
        console.printf("ERROR: User record not found!\n");
    }

и вывод:

    INFO: User record with notThereBin read successfully! Here are the details:

notThereBin:  null
person pgupta    schedule 07.07.2017