Azure cosmosdb SQLAzure表类似于Azure宇宙数据库容器吗?

Azure cosmosdb SQLAzure表类似于Azure宇宙数据库容器吗?,azure-cosmosdb,azure-cosmosdb-sqlapi,Azure Cosmosdb,Azure Cosmosdb Sqlapi,我正在使用COSMOSDBSQLAPI。但我不知道如何将现有的SQL DB迁移到Azure Cosmos DB 是一个类似于Cosmos DB容器的SQL表。或者我们需要使用不同的分区键将所有SQL表数据存储到一个容器中吗?Cosmos DB数据迁移工具可用于将数据从SQL Server导入Cosmos DB。参考此 Cosmos DB容器与SQL Server表不同。您可以将数据库中多个表中的数据导入到单个Cosmos DB容器中。不要被名称所蒙蔽。Cosmos DB SQL API不允许您像

我正在使用COSMOSDBSQLAPI。但我不知道如何将现有的SQL DB迁移到Azure Cosmos DB


是一个类似于Cosmos DB容器的SQL表。或者我们需要使用不同的分区键将所有SQL表数据存储到一个容器中吗?

Cosmos DB数据迁移工具可用于将数据从SQL Server导入Cosmos DB。参考此


Cosmos DB容器与SQL Server表不同。您可以将数据库中多个表中的数据导入到单个Cosmos DB容器中。

不要被名称所蒙蔽。Cosmos DB SQL API不允许您像处理关系数据库一样处理Cosmos DB

它基本上是一个JSON文档数据库,用于在容器中存储项目。它是无模式的。虽然您可以以某种方式导入数据(如@Bob链接),但最终不会得到关系表——它们都是JSON文档

SQL API允许您使用类似SQL的语法来查询JSON结构——但是,语义都基于这些层次结构文档,允许您返回JSON文档的数组或它们的投影

查询始终在特定容器的上下文中运行

例如,您不能跨文档联接—您需要在单个文档内进行自联接。有,还有


语义与sqlazure非常不同;你需要换一种方式思考。

看看这对你来说是怎么回事。不,它们不一样。谢谢James的评论,你能帮助理解Azure SQL到Cosmos DB的迁移吗。我所理解的是,SQL表中的一行就像Cosmos DB中的一个文档(项目),我们应该将Cosmos DB中的所有SQL表行迁移为一个项目(1个SQL表行=Cosmos DB中的文档或项目),如何将Cosmos DB中的表数据分组,我们是否也需要在COSMOS中创建的文档中添加表名,或者分区键用于隔离?感谢BOB的评论,您能否帮助理解将Azure SQL迁移到COSMOS DB。我所理解的是,SQL表中的一行就像Cosmos DB中的一个文档(项目),我们应该将Cosmos DB中的所有SQL表行迁移为一个项目(1个SQL表行=Cosmos DB中的文档或项目),如何将Cosmos DB中的表数据分组,我们是否也需要在COSMOS中创建的文档中添加表名,或者分区键用于隔离?@AkhilTyagi对于没有关系的简单表,sql表行可以直接转换为COSMOS db json文档。您可以添加一个名为type的附加属性来标识对象类型(例如,type=Customer,如果它来自Customer表)。对于在多个表中包含关系数据的复杂类型,如客户地址,您需要嵌入/引用地址对象。您可以参考此microsoft链接以获得详细的理解。感谢一百万@BOB,您的评论帮助您理解了很多内容。我想说,从逻辑上讲,容器类似于表,项类似于行。我的意思是,您当然可以将多个关系(不同表中的相关行)放入容器中的一个项中,但也可以将数据迁移到其他基于sql的数据库中,从源数据库中的多个表中生成单个表。因此,技术上,您可以将作为表和项目的行迁移到行中,只是在它们之间有多个关系会使查询变得更加困难,因此重要的是考虑将一些紧密相关的表加入一个容器中。