Можно ли использовать клиент Python Aerospike для чтения данных BLOB, вставленных с помощью клиента JAVA

Всякий раз, когда я использую query.results() на мой запрос для данных вышеупомянутого блоба я получаю пустой массив, query.foreach(dummy) при фиктивном обратном вызове возникает ошибка сегментации, двоичный объект данных был вставлен с использованием клиента JAVA без настраиваемой сериализации

2 ответа

Когда вы пишете данные BLOB-объектов с использованием Java, если вы используете байтовый массив в качестве типа bin, вы должны иметь возможность читать его на python. Если вы создаете бин с Object datatype, Java-сериализатор будет использоваться для написания BLOB-объекта. Вы не можете достичь такого блоба в python.

Aerospike имеет список поддерживаемых типов данных, который в настоящее время является целым, двойным, строковым, байтов (blob), список, карта, geoJSON. Типы родного языка будут отображаться непосредственно в поддерживаемые типы и из поддерживаемых типов, поэтому в Python клиент преобразует str в as_string, int в as_integer, float в as_double и т. Д.

Клиент Python будет сериализовывать BLOB- объекты и выходить из них в виде байтовой матрицы. Клиент Java должен использовать метод Bin.asBlob() перед записью записи.

Другие вопросы по тегам