![](/img/trans.png)
[英]Display data from single array JSON(azure Cosmos db) using C# ASP.NET MVC
[英]Extracting array properties from Cosmos DB documents using Azure Data Factory
我有一個Azure Data Factory v2管道,該管道從Cosmos DB集合中提取數據。 這個集合的屬性是一個數組。
我至少希望能夠將整個屬性的值轉儲到SQL Azure中的列中。 我不需要解析它(盡管那也很棒),但是ADF在數據集定義中將此列列為“不受支持的類型”,並在“排除的列”部分列出了它。
這是我正在使用的JSON的示例。 我想要的屬性是“ MyArrayProperty”:
{
"id": "c4e2012e-af82-4c48-8960-11e0436e6d3f",
"Created": "2019-06-14T16:04:13.9572567Z",
"Updated": "2019-06-14T16:04:14.1920988Z",
"IsActive": true,
"MyArrayProperty": [
{
"SomeId": "a4427015-ca69-4958-90d3-0918fd5dcac1",
"SomeName": "BlahBlah"
}
]
}
}
我嘗試手動在ADF數據源(例如“ MyArrayProperty”)中指定一列,並使用字符串數據類型,但該值始終為null。
請檢查此文檔,以了解MongoDB和Azure SQL之間的架構映射示例。 基本上,您應該定義將遍歷嵌套對象數組並交叉應用的collectionReference 。
解決這個問題可能有更好的方法,但是我最終創建了第二個復制活動,該活動使用針對Cosmos的查詢而不是基於集合的捕獲。 查詢將數組展平,如下所示:
SELECT m.id, c.SomeId, c.SomeName
FROM myCollection m join c in m.MyArrayProperty
然后,我獲取了此數據集並將其轉儲到SQL中的表中,然后在SQL Azure本身中完成了其他工作。 您還可以使用新的Join管道任務在到達目的地之前在內存中執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.