簡體   English   中英

使用Azure數據工廠從Cosmos DB文檔中提取數組屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM