我可以在Amazon SimpleDB中仅创建域架构(没有任何数据)吗?

时间:2009-12-14 11:30:34

标签: schema dns nosql amazon-simpledb lightspeed

我目前正在评估Amazon SimpleDB。 SimpleDB非常灵活,因为它不必具有表(或域)模式。模式随着创建/更新命令的流入而演变。这一切都很好但是当我使用建模工具(评估MindScape LightSpeed)时,我需要预先设置模式,以便工具根据模式生成模型。我可以在SimpleDB中手工创建域,这确实有帮助,但为此我必须在域上执行至少一个创建操作。我正在寻找仅创建域架构的能力。有线索吗?

2 个答案:

答案 0 :(得分:1)

SimpleDB中没有架构。

这就是NoSQL人员在将范例转移到这些非关系数据存储之前建议“忘掉”关系数据库的原因。

所以,你不能做你所描述的。没有数据,就什么都没有。

答案 1 :(得分:1)

虽然SimpleDB没有架构支持,但如果对数字数据或日期*运行查询,保留某些类型信息将变得至关重要。大多数NoSQL产品都有查询和类型,或者没有查询和无类型,但SimpleDB选择了查询和非类型。

因此,与主应用程序之外的任何工具集成都需要您:

  1. 在不同的地方存储重复的类型信息
  2. 创建您自己的简单架构系统来存储类型信息
  3. 选项2看起来好多了,选择它,尽管有些人认为,并不意味着你“没有正确的思想。”

    S3可以是此数据的一个很好的选择,您可以将其保存在与您的域名相同的文件中,并且可以从与SimpleDB帐户具有相同AWS凭据的任何位置访问它。

    将数据存储为attributename = formatname列表是我需要做的事情的范围。实际上,您可以将所有这些内容存储在域中的项目中。唯一的问题是,此特殊项可能会无意中从您希望实时数据而非类型信息的域查询中返回。

    我不熟悉MindScape LightSpeed,但这是我在使用SimpleDB时发现的一般策略,如果产品能够在S3中加载/存储文件,那就更好了。

    *注意:为了清楚起见,我不是在谈论重新发明轮子或尝试将SimpleDB用作关系数据库。我说的是数字数据必须与零填充(到您选择的长度)和偏移值(取决于它是有符号还是无符号)一起存储,以便使用SimpleDB的基于字符串的查询语言。一旦确定了要在应用程序中使用的格式或一组格式,在源代码工具,查询工具需要该信息的情况下,将这些信息隐藏在源文件中并分散在源文件中将是愚蠢的。 ,报告工具或任何其他代码。