在单个Postgresql实例

时间:2017-10-16 15:26:28

标签: mongodb postgresql nosql azure-cosmosdb citus

我有一个现有的关系Postgresql数据库。一些表包含非常胖的blob,它们作为NoSQL文档会更好。这将大大减轻我们的关系数据库。

因此,我们考虑将这些blob-table转移到像CosmosDB或MongoDB这样的NoSQL解决方案中。但是,纯关系表存在外键依赖关系,这使得将这些表移出到自己的数据库中变得复杂。

我发现PSQL本身支持存储文档并且可以分发。我到目前为止看到的解决方案是CitusData和Postgres XL。对于那些使用它们的人,他们如何比较?

之前有没有遇到类似的情况?你有没有分成NoSQL数据库?或者有没有人将他们的PSQL分区为关系和NoSQL部分?那是怎么回事?你会在事后看来建议什么?

2 个答案:

答案 0 :(得分:5)

(Citus Engineer Here)

Postgres具有JSONB列类型,功能强大且灵活。您可以做的是保持结构表不变,并为blob数据放置一个jsonb列。使用单节点Postgres进行测试,如果这对您有用,那就太棒了!

如果您的数据规模存在问题,即单个计算机的内存或存储或CPU不足以满足您的工作负载而且您无法扩大规模,那么您可以尝试使用Citus或Postgres-XL进行扩展。

我对Postgres-XL没有经验,但Citus很容易尝试。你可以使用docker图像,或者你可以在Citus Cloud创建一个帐户来尝试一周的免费开发计划(它不适合用于基准测试)。

答案 1 :(得分:0)

每个RDBMS-> NoSQL迁移都需要以下两种方法之一: 1.将这些依赖文档中的一些嵌入到用户实际查询的文档中 2.通过id引用依赖文档并在读取时推断这些关系。

非常典型,每个人每天都这样做,不要害怕。顺便说一句,您不必在Cosmos DB和MongoDB之间做出选择 - 只需将Cosmos DB与MongoDB API一起使用即可。