Извлечение свойств массива из документов Cosmos DB с помощью фабрики данных Azure - PullRequest
0 голосов
/ 11 июля 2019

У меня есть конвейер 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», и использовать строковый тип данных, но значение всегда отображается как ноль.

Ответы [ 2 ]

0 голосов
/ 12 июля 2019

Возможно, есть лучший способ решить эту проблему, но я закончил тем, что создал вторую операцию копирования, которая использует запрос к Космосу, а не захват на основе коллекции.Запрос сгладил массив следующим образом:

SELECT m.id, c.SomeId, c.SomeName
FROM myCollection m join c in m.MyArrayProperty

Затем я взял этот набор данных и поместил его в таблицу в SQL, а затем выполнил свою другую работу в самом SQL Azure.Вы также можете использовать новую задачу «Соединить конвейер», чтобы сделать это в памяти перед тем, как добраться до места назначения.

0 голосов
/ 11 июля 2019

проверьте этот документ о примере отображения схемы между MongoDB и Azure SQL.По сути, вы должны определить вашу collectionReference , которая будет перебирать ваш вложенный массив объектов и выполнять перекрестное применение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...