Могу ли я создать схему домена только (без каких-либо данных) в Amazon SimpleDB?

Сейчас я оцениваю Amazon SimpleDB. SimpleDB очень гибок в том смысле, что ему не нужно иметь схемы таблиц (или доменов). Схема развивается по мере поступления команд создания / обновления. Все это хорошо, но пока я использую инструмент моделирования (оценивающий MindScape LightSpeed), мне требуется предварительная схема, чтобы инструмент генерировал модели на основе схемы. Я могу создавать домены в SimpleDB, и это помогает, но для этого мне нужно выполнить хотя бы одну операцию создания домена. Я ищу возможность создавать только схему домена. Есть какие-нибудь подсказки?

2 ответа

Решение

В SimpleDB нет схемы.

Это причина, почему люди из NoSQL предлагают "разучить" реляционные базы данных, прежде чем переходить от парадигмы к этим нереляционным хранилищам данных.

Таким образом, вы не можете делать то, что вы описываете. Без данных ничего не будет.

Несмотря на то, что SimpleDB не поддерживает схемы, сохранение некоторой информации о типе оказывается критическим, если вы выполняете запросы к числовым данным или датам *. У большинства продуктов NoSQL есть как запросы, так и типы, или же нет запросов и нет типов, но SimpleDB выбрал запросы и нет типов.

В результате интеграция с любым инструментом за пределами основного приложения потребует от вас:

  1. хранить дубликаты информации о типах в разных местах
  2. создайте свою собственную простую систему схем для хранения информации о типе

Вариант 2 выглядит намного лучше, и выбор его, несмотря на то, что некоторые предполагают, не означает, что вы "не правы".

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

Хранение данных в виде списка attributetename=formatname - это то, что мне нужно было сделать. Фактически вы можете хранить все это в элементе вашего домена. Единственная проблема заключается в том, что этот специальный элемент может непреднамеренно вернуться из запроса домена, где вы ожидаете, что оперативные данные не будут содержать информацию о типе.

Я не знаком с MindScape LightSpeed, но это общая стратегия, которая показалась мне полезной при использовании SimpleDB, и если продукт способен загружать / хранить файл в S3, тогда все в порядке.

* Примечание: просто для ясности, я не говорю об изобретении колеса или попытке использовать SimpleDB в качестве реляционной базы данных. Я говорю о том факте, что числовые данные должны храниться как с нулевым заполнением (до длины по вашему выбору), так и со смещением (в зависимости от того, подписано оно или нет) для работы с языком строковых запросов SimpleDB., Как только вы определились с форматом или набором форматов, которые будут использоваться в вашем приложении, было бы безрассудно оставлять эту информацию скрытой и разбросанной по вашим исходным файлам в случае, когда эта информация необходима инструментам исходного кода, инструментам запросов, инструменты отчетности или любой другой код.

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