Как хранить небольшие файлы в Кассандре?
У меня есть несколько тысяч отдельных html-файлов, хранящихся локально в каталоге, они составляют не более нескольких Кбайт каждый.
Я хочу хранить их в одном узле Кассандры, как я буду делать это программно с Гектором? Какие API я использую для настройки columnFamily для обработки статических файлов и как я должен настроить схему? Спасибо!
2 ответа:
Я хочу хранить их в одном узле Кассандры, как бы я пошел о том, чтобы сделать это программно с Гектором?
Вам нужно создать пространство ключей в cassandra. Вы можете либо создать его в узле кластера с помощью cassandra-cli с командой create keyspace, либо с помощью метода Hector addKeyspace().
Какие API я использую для настройки columnFamily для обработки статических файлов и как я должен настроить схему?
Вы можете использовать BasicColumnDefinition для создания семейства столбцов в cassandra. Посмотрите пример кода здесь о том, как добавить семейство столбцов в пространство ключей. Вероятно, у вас будет семейство столбцов под названием html_doc с именем столбца вашего html-файла и значением типа AsciiType или UTF8Type (или bytestype по умолчанию). Html-документ должен быть прочитан стандартным java-способом, и вы можете увидеть, как вставить значение для столбца здесь .
Если ваши файлы имеют только пару K каждый, то можно легко просто перейти в один столбец.
Смотрите руководство по началу работы: Начало работы с Гектором
- настройте семейство keyspace / column один раз.
- считывание файла в строковый или байтовый массив.
- Используйте ColumnFamilyUpdater для записи файла в столбец (может быть, "FileBody" в качестве имени столбца? ) используя имя файла в качестве ключа.
- повторите для каждого файла.