максимальный размер атрибутов на AWS SimpleDB

Вместо функции createBuilder используйте:

$builder = $app['form.factory']->createNamedBuilder(null, 'form', $data, array('validation_constraint' => $constraint));

Первым параметром является имя формы.

Пример самого Бернхарда Шуссека на https://stackoverflow.com/a/13474522/520114

10
задан WoodenKitty 22 March 2012 в 05:01
поделиться

4 ответа

Есть способы сохранить ваши текстовые данные размером 10 КБ, но будет ли это приемлемо, будет зависеть от того, что еще вам нужно сохранить и как вы планируете их использовать.

Если вам нужно хранить произвольно большие данные (особенно двоичные), тогда указатель файла S3 может быть привлекательным. Ценность, которую SimpleDB добавляет в этот сценарий, - это возможность запускать запросы к метаданным файла, которые вы храните в SimpleDB.

Для текстовых данных, ограниченных 10 КБ, я бы рекомендовал хранить их непосредственно в SimpleDB. Он легко поместится в одном элементе, но вам придется распределить его по нескольким атрибутам. В основном есть два способа сделать это, каждый с некоторыми недостатками.

Один способ более гибкий и удобный для поиска, но требует, чтобы вы коснулись своих данных. Вы разделяете свои данные на фрагменты размером около 1000 байт и сохраняете каждый фрагмент как значение атрибута в многозначном атрибуте. Для многозначных атрибутов не применяется упорядочение, поэтому вы должны добавлять к каждому фрагменту номер для упорядочивания (например, 01)

Тот факт, что весь текст хранится в одном атрибуте, упрощает выполнение запросов с одним атрибутом. имя в предикате. Вы можете добавить текст разного размера к каждому элементу от 1k до 200 + k, и он будет обработан соответствующим образом. Но вы должны знать, что номера ваших добавленных строк могут оказаться положительными для ваших запросов (например, если вы ищете 01 , каждый элемент будет соответствовать этому запросу).

Второй способ хранения текста в SimpleDB не требует от вас размещения произвольных данных упорядочения в ваших текстовых фрагментах. Вы делаете заказ, помещая каждый фрагмент текста в другой именованный атрибут. Например, вы можете использовать имена атрибутов: desc01 desc02 ... desc10 . Затем вы помещаете каждый кусок в соответствующий атрибут. Вы по-прежнему можете выполнять полнотекстовый поиск с помощью обоих методов, но поиск будет медленнее с этим методом, потому что вам нужно будет указать много предикатов, и SimpleDB в конечном итоге будет искать по отдельному индексу для каждого атрибута.

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

Если бы вы узнали, что реляционная база данных разбивает ваш текст на блоки размером 1 КБ для хранения на диске в качестве детали реализации, это не походило бы на взлом. Проблема в том, что текущее состояние клиентов SimpleDB таково, что вам придется реализовать большую часть этого типа форматирования данных самостоятельно. Это то, чем в идеале будет заниматься умный клиент. Просто пока нет бесплатных доступных смарт-клиентов.

14
ответ дан 3 December 2019 в 22:01
поделиться

Если вас беспокоит стоимость, вы можете обнаружить, что дешевле поместить текст в S3, а метаданные с указателями в SimpleDB.

1
ответ дан 3 December 2019 в 22:01
поделиться

Из Часто задаваемые вопросы по стилю и технике Бьярне Строуструпа :

Почему «это» не является ссылкой?

Потому что «это» было введено в C++ (действительно в C с классами) до добавления ссылок. Кроме того, я выбрал «это», чтобы следовать использованию Simula, а не (позднее) использование Smalltalk «я».

-121--3107650-

Я бы преобразовал текущие окна в кадры и поместил эти кадры с align = alClient либо в дочерние окна mdi, либо в обычные окна, как настроено.

Но остерегайтесь: я никогда этого не делал, поэтому могут возникнуть проблемы, о которых я не знаю.

-121--2481907-

Предстоящий выпуск Simple Savant (созданная мною библиотека сохраняемости C # для SimpleDB) будет поддерживать как охват атрибутов, как описано в Mocky, так и полнотекстовый поиск данных SimpleDB с помощью Lucene.NET.

Я понимаю, что вы, вероятно, не создаете свое приложение на C #, но, поскольку ваш вопрос является главным результатом при поиске SimpleDB и полнотекстового индексирования, его, казалось, стоит упомянуть.

ОБНОВЛЕНИЕ: Выпуск Simple Savant, о котором я упоминал выше, теперь доступен.

0
ответ дан 3 December 2019 в 22:01
поделиться

Вы можете поместить 10k текста на S3, а затем создать атрибут, который имеет все уникальные слова из 10k текста в качестве нескольких значений. Тогда поиск будет быстрым. Однако поиск по фразам невозможен.

Сколько значений вы можете хранить в одном атрибуте в одной "строке" (имени)? Я искал в документации, но ответа не нашел.

--Tom

1
ответ дан 3 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: