Есть ли способ чтения / записи нескольких структур или строк, используя Flatbuffers? - PullRequest
0 голосов
/ 14 октября 2019

Я использую Flatbuffers как способ хранения данных и мета-тегов с данными. Я использую Python и для моделирования словарей, у меня есть две структуры таблиц: одна для словарных статей и одна для хранения вектора записей. Вот пример схемы:

// Define dictionary structure

table tokenEntry{
  key:string;
  value:int;
}

table TokenDict{
  Entries:[tokenEntry];
}

root_type TokenDict;

Я хочу записать два словаря в один файл, используя Flatbuffers. Я хочу также читать словари по одному из файла и не загружать оба в память одновременно. Я могу записать оба файла, по одному. Однако, когда я читаю из файла, я получаю обе структуры одновременно. В буфере хранятся все данные из файла. Это не то, что я хочу, потому что позже у меня будет намного больший объем данных в файлах. Есть ли способ читать только по одному за раз?

Например, если бы я использовал структуры маринованных огурцов, я мог бы записать несколько маринованных огурцов в файл и прочитать их обратно по одному за раз. Я хочу сделать то же самое с Flatbuffers.

Спасибо.

1 Ответ

1 голос
/ 17 октября 2019

Лучше всего записать файл в виде последовательности отдельных FlatBuffers, каждый с префиксом размера. Вы можете сделать это в Python, используя FinishSizePrefixed (см. builder.py).

...