我们目前正在使用基于 mssql 服务器的解决方案在资源边缘运行。
我们现在有许多关于下一步处理负载的传统选择:
在许可和硬件或时间方面,所有这些都是昂贵的。因此,我想通过将整个系统移动到 nosql 引擎 cassandra 承诺的可扩展解决方案来添加另一个选项。
然而,我不确定也没有使用 noSQL 数据库的经验,所以我需要了解“非结构化”数据的结构。
在我们的应用程序中,我们基本上将用户以各种方式输入的数据存储为“键值”列表。有一个父表,其中包含头元素(如 Order),还有一个子表,其中包含包含订单内容的键值对(如 Order_Lines)。
在业务方面,Order 和 OrderLines 是一个单元。但是由于 RDBMS,它们存储在表中并且必须一直连接。
在操作过程中,我们有时会选择只加载顶部,但大多数时候,我们加载头部行+一些KVP来显示一些有用的信息。
例如,在概览列表中,我们在每行的列中显示头部标识符 + 一些值。
更新:我们存储任何形式的表格。所以,基本上我们存储“文件”。然而,我们必须准备并通过任何值、排序等来搜索这些表单。数据访问控制为数据库增加了另一层复杂性。
您可能会猜到,某些 KVP 的数量和可用性因对象而异。没有为每种对象创建单个表的有效可能性,因为我们必须为不同的数据组合创建数千个表。
这种“字典”之类的数据集会更好地存储在 noSQL 数据库中吗?我们会从中获得性能优势吗?cassandra 会将这些 head+KVP 建模为一个数据集吗?查看 cassandra 网页和一些教程,我的印象是,我们的 RDBMS 和 cassandra 在数据组织方面没有太大区别——如果您想选择 5 个 KVP,那么我们的连接数量也相同对于每一行的列表。
欢迎启蒙,也可以提供解释问题的论文的指针。