我正在探索使用SQL API将数据从SQL Server 2016迁移到CosmosDB的选项。源数据是关系型的。我需要加入它们并以这样的方式迁移到CosmosDB数据库,即每行都作为文档迁移。这是一个例子。
我想迁移这些单独的Product表行,并将它的相关ProductSubCatalog表行与下面的文档类似。
{
"ProductID": 970,
"Name": "Touring-2000 Blue, 46",
"ProductNumber": "BK-T44U-46",
"MakeFlag": true,
"FinishedGoodsFlag": true,
"Color": "Blue",
"ModifiedDate": "2014-02-08T10:01:36.827",
"ProductSubCatalog": {
"ProductSubcategoryID": 3,
"Name": "Touring Bikes"
}
}
我尝试DocumentDB Data Migration Tool使用Source作为“SQL”并使用以下查询。
SELECT
[ProductID],P.[Name], [ProductNumber], [MakeFlag],
[FinishedGoodsFlag], [Color], [SafetyStockLevel], [ReorderPoint],
[StandardCost], [ListPrice],
Ps.ProductSubcategoryID AS 'ProductSubCatalog.ProductSubcategoryID',
Ps.Name AS 'ProductSubCatalog.Name'
FROM
[Production].[Product] P
LEFT JOIN
Production.ProductSubcategory PS ON P.ProductSubcategoryID = ps.ProductSubcategoryID
FOR JSON PATH, ROOT('Product')
由于上述查询为Product表中的所有行生成单个JSON数据,因此DocumentDB数据迁移工具将其作为单个文档导入。有没有人知道其他选项来实现这一点,而无需编写自定义应用程序来查询SQL Server数据,形成JSON文档并导入它?任何建议和指示将不胜感激。
答案 0 :(得分:0)
根据您的说明,我只是按照Import from SQL Server并根据您的表格来检查此问题。
注意:您无需在查询中添加FOR JSON PATH, ROOT('Product')
。
<强>结果:强>