Поделиться через


Копирование и преобразование данных в Azure Cosmos DB для NoSQL с помощью Фабрика данных Azure

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

В этой статье описывается, как использовать действие копирования в Фабрика данных Azure для копирования данных из Azure Cosmos DB для NoSQL и использования Поток данных для преобразования данных в Azure Cosmos DB для NoSQL. Дополнительные сведения см. в вводных статьях о Фабрике данных Azure и Azure Synapse Analytics.

Примечание.

Этот соединитель поддерживает только Azure Cosmos DB для NoSQL. Для Azure Cosmos DB для MongoDB см . соединитель для Azure Cosmos DB для MongoDB. Другие типы API сейчас не поддерживаются.

Поддерживаемые возможности

Этот соединитель Azure Cosmos DB для NoSQL поддерживается для следующих возможностей:

Поддерживаемые возможности IR Управляемая частная конечная точка
Действие копирования (источник/приемник) (1) (2)
Поток данных для сопоставления (источник/приемник) (1)
Действие поиска (1) (2)

① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции

Для действие Copy этот соединитель Azure Cosmos DB для NoSQL поддерживает:

  • Скопируйте данные из Azure Cosmos DB для NoSQL с помощью ключей, субъекта-службы или управляемых удостоверений для проверки подлинности ресурсов Azure.
  • Запись данных в Azure Cosmos DB с помощью операции INSERT или UPSERT.
  • Импорт и экспорт документов JSON "как есть" либо копирование данных из набора табличных данных или в него. К примерам можно отнести базу данных SQL и CSV-файл. Сведения о копировании документов "как есть" в JSON-файлы или другую коллекцию Azure Cosmos DB либо из них см. в разделе Импорт и экспорт документов JSON.

Конвейеры Фабрики данных и Synapse интегрируются с библиотекой исполнителя массовых операций Azure Cosmos DB, обеспечивая оптимальную производительность при операциях записи в Azure Cosmos DB.

Совет

Видео о переносе данных поможет вам выполнить копирование данных из хранилища BLOB-объектов Azure в Azure Cosmos DB. Кроме того, в видео приведены общие рекомендации по настройке производительности приема данных в Azure Cosmos DB.

Начало работы

Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:

Создание связанной службы для Azure Cosmos DB с помощью пользовательского интерфейса

Выполните приведенные ниже действия, чтобы создать связанную службу для Azure Cosmos DB с помощью пользовательского интерфейса портала Azure.

  1. Перейдите на вкладку "Управление" в рабочей области Фабрики данных Azure или Synapse и выберите "Связанные службы", после чего нажмите "Создать":

  2. Найдите Azure Cosmos DB для NoSQL и выберите соединитель Azure Cosmos DB для NoSQL.

    Выберите соединитель Azure Cosmos DB для NoSQL.

  3. Настройте сведения о службе, проверьте подключение и создайте связанную службу.

    Снимок экрана с конфигурацией связанной службы для Azure Cosmos DB.

Сведения о конфигурации соединителя

В следующих разделах содержатся сведения о свойствах, которые можно использовать для определения сущностей, относящихся к Azure Cosmos DB для NoSQL.

Свойства связанной службы

Соединитель Azure Cosmos DB для NoSQL поддерживает следующие типы проверки подлинности. Дополнительные сведения см. в соответствующих разделах:

Проверка подлинности с использованием ключа

Свойство Описание: Обязательное поле
type Для свойства type необходимо задать значение: CosmosDb. Да
connectionString Укажите сведения, необходимые для подключения к базе данных Azure Cosmos DB.
Примечание. Необходимо указать сведения о базе данных в строке подключения, как показано в приведенных ниже примерах.
Вы можете также поместить ключ учетной записи в Azure Key Vault и извлечь конфигурацию accountKey из строки подключения. Ознакомьтесь с приведенными ниже примерами и подробными сведениями в статье Хранение учетных данных в Azure Key Vault.
Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Вы можете использовать Azure Integration Runtime или локальную среду IR (если хранилище данных расположено в частной сети). Если это свойство не задано, используется Azure Integration Runtime по умолчанию. No

Пример

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "connectionString": "AccountEndpoint=<EndpointUrl>;AccountKey=<AccessKey>;Database=<Database>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Пример: ключ учетной записи хранения в Azure Key Vault

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "connectionString": "AccountEndpoint=<EndpointUrl>;Database=<Database>",
            "accountKey": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Аутентификация субъекта-службы

Примечание.

В настоящее время проверка подлинности на основе субъекта-службы в потоке данных не поддерживается.

Чтобы использовать аутентификацию на основе субъекта-службы, выполните следующие действия.

  1. Регистрация приложения с помощью платформы удостоверений Майкрософт. Дополнительные сведения см. в кратком руководстве. Регистрация приложения с помощью платформа удостоверений Майкрософт. Запишите эти значения, которые используются для определения связанной службы:

    • Application ID
    • ключ приложения.
    • Идентификатор клиента
  2. Предоставьте правильное разрешение субъекту-службе. См. примеры работы разрешений в Azure Cosmos DB из списков управления доступом в файлах и каталогах. В частности, создайте определение роли и назначьте роль субъекту-службе с помощью идентификатора объекта субъекта-службы.

Приведенные ниже свойства поддерживаются в связанной службе.

Свойство Описание: Обязательное поле
type Свойство type должно иметь значение CosmosDb. Да
accountEndpoint Укажите URL-адрес конечной точки учетной записи для экземпляра Azure Cosmos DB. Да
database Укажите имя базы данных. Да
servicePrincipalId Укажите идентификатора клиента приложения. Да
servicePrincipalCredentialType Тип учетных данных для использования при проверке подлинности субъекта-службы. Допустимые значения: ServicePrincipalKey и ServicePrincipalCert. Да
servicePrincipalCredential Учетные данные субъекта-службы.
При использовании в качестве типа учетных данных ServicePrincipalKey нужно указывать ключ приложения. Присвойте этому полю метку SecureString, чтобы безопасно хранить его, или добавьте ссылку на секрет, хранящийся в Azure Key Vault.
При использовании ServicePrincipalCert в качестве учетных данных ссылайтесь на сертификат в Azure Key Vault и убедитесь, что тип контента сертификата — PKCS #12.
Да
tenant Укажите сведения о клиенте (доменное имя или идентификатор клиента), в котором находится приложение. Эти сведения можно получить, наведя указатель мыши на правый верхний угол страницы портала Azure. Да
azureCloudType Для проверки подлинности субъекта-службы укажите тип облачной среды Azure, в которой зарегистрировано приложение Microsoft Entra.
Допустимые значения: AzurePublic, AzureChina, AzureUsGovernment и AzureGermany. По умолчанию используется облачная среда службы.
No
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Вы можете использовать среду выполнения интеграции Azure или локальную среду IR (если хранилище данных расположено в частной сети). Если не указано другое, используется среда выполнения интеграции Azure по умолчанию. No

Пример: использование проверки подлинности с помощью ключа субъекта-службы

Вы также можете хранить ключ субъекта-службы в Azure Key Vault.

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "accountEndpoint": "<account endpoint>",
            "database": "<database name>",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredentialType": "ServicePrincipalKey",
            "servicePrincipalCredential": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Пример: использование проверки подлинности с помощью сертификата субъекта-службы

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "accountEndpoint": "<account endpoint>",
            "database": "<database name>", 
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredentialType": "ServicePrincipalCert",
            "servicePrincipalCredential": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<AKV reference>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<certificate name in AKV>" 
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Проверка подлинности с помощью назначенного системой управляемого удостоверения

Примечание.

В настоящее время проверка подлинности управляемого удостоверения, назначаемого системой, поддерживается в потоках данных с использованием расширенных свойств в формате JSON.

Конвейер Фабрики данных или Synapse может быть связан с управляемым удостоверением для ресурсов Azure, назначаемым системой, которое представляет этот экземпляр службы. Вы можете напрямую использовать это управляемое удостоверение для проверки подлинности Azure Cosmos DB, аналогично использованию собственного субъекта-службы. Он позволяет этому назначенному ресурсу получать доступ к данным и копировать их в экземпляр Azure Cosmos DB или из него.

Чтобы использовать управляемые удостоверения, назначаемые системой, для аутентификации ресурсов Azure, выполните следующие действия:

  1. Получите сведения об управляемом удостоверении, назначаемом системой, скопировав значение идентификатора объекта управляемого удостоверения, созданного вместе со службой.

  2. Предоставьте соответствующее разрешение управляемому удостоверению, назначаемому системой. См. примеры работы разрешений в Azure Cosmos DB из списков управления доступом в файлах и каталогах. В частности, вы можете создать определение роли и назначить ее управляемому удостоверению, назначаемому системой.

Приведенные ниже свойства поддерживаются в связанной службе.

Свойство Описание: Обязательное поле
type Свойство type должно иметь значение CosmosDb. Да
accountEndpoint Укажите URL-адрес конечной точки учетной записи для экземпляра Azure Cosmos DB. Да
database Укажите имя базы данных. Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Вы можете использовать среду выполнения интеграции Azure или локальную среду IR (если хранилище данных расположено в частной сети). Если не указано другое, используется среда выполнения интеграции Azure по умолчанию. No
subscriptionId Укажите идентификатор подписки для экземпляра Azure Cosmos DB Нет для действия копирования, да для сопоставления Поток данных
tenantId Укажите идентификатор клиента для экземпляра Azure Cosmos DB Нет для действия копирования, да для сопоставления Поток данных
resourceGroup Укажите имя группы ресурсов для экземпляра Azure Cosmos DB Нет для действия копирования, да для сопоставления Поток данных

Пример:

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "accountEndpoint": "<account endpoint>",
            "database": "<database name>",
            "subscriptionId": "<subscription id>",
            "tenantId": "<tenant id>",
            "resourceGroup": "<resource group>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Проверка подлинности с помощью назначаемого пользователем управляемого удостоверения

Примечание.

В настоящее время проверка подлинности управляемого удостоверения, назначаемого пользователем, поддерживается в потоках данных с использованием расширенных свойств в формате JSON.

Конвейер Фабрики данных или Synapse может быть связан с управляемым удостоверением, назначаемым системой, которое представляет этот экземпляр службы. Вы можете напрямую использовать это управляемое удостоверение для проверки подлинности Azure Cosmos DB, аналогично использованию собственного субъекта-службы. Он позволяет этому назначенному ресурсу получать доступ к данным и копировать их в экземпляр Azure Cosmos DB или из него.

Чтобы использовать управляемые удостоверения, назначаемые пользователем, для аутентификации ресурсов Azure, выполните следующие действия:

  1. Создайте одно или несколько управляемых удостоверений, назначаемых пользователем, и предоставьте соответствующее разрешение. См. примеры работы разрешений в Azure Cosmos DB из списков управления доступом в файлах и каталогах. В частности, вы можете создать определение роли и назначить ее управляемому удостоверению, назначаемому пользователем.

  2. Присвойте одно или несколько управляемых удостоверений, назначаемых пользователем, фабрике данных и создайте учетные данные для каждого подобного удостоверения.

Приведенные ниже свойства поддерживаются в связанной службе.

Свойство Описание: Обязательное поле
type Свойство type должно иметь значение CosmosDb. Да
accountEndpoint Укажите URL-адрес конечной точки учетной записи для экземпляра Azure Cosmos DB. Да
database Укажите имя базы данных. Да
учетные данные Укажите назначаемое пользователем управляемое удостоверение в качестве объекта учетных данных. Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Вы можете использовать среду выполнения интеграции Azure или локальную среду IR (если хранилище данных расположено в частной сети). Если не указано другое, используется среда выполнения интеграции Azure по умолчанию. No
subscriptionId Укажите идентификатор подписки для экземпляра Azure Cosmos DB Нет для действия копирования, да для сопоставления Поток данных
tenantId Укажите идентификатор клиента для экземпляра Azure Cosmos DB Нет для действия копирования, да для сопоставления Поток данных
resourceGroup Укажите имя группы ресурсов для экземпляра Azure Cosmos DB Нет для действия копирования, да для сопоставления Поток данных

Пример:

{
    "name": "CosmosDbSQLAPILinkedService",
    "properties": {
        "type": "CosmosDb",
        "typeProperties": {
            "accountEndpoint": "<account endpoint>",
            "database": "<database name>",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            },
            "subscriptionId": "<subscription id>",
            "tenantId": "<tenant id>",
            "resourceGroup": "<resource group>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Свойства набора данных

Полный список разделов и свойств, используемых для определения наборов данных, приведен в статье Наборы данных и связанные службы в фабрике данных Azure.

Следующие свойства поддерживаются для набора данных Azure Cosmos DB для NoSQL:

Свойство Описание: Обязательное поле
type Свойство type набора данных должно иметь значение CosmosDbSqlApiCollection. Да
collectionName Имя коллекции документов Azure Cosmos DB. Да

Если вы используете тип данных "DocumentDbCollection", он поддерживается в режиме "как есть" для обратной совместимости операций копирования и поиска, но не поддерживается для потока данных. В дальнейшем предлагается использовать новую модель.

Пример

{
    "name": "CosmosDbSQLAPIDataset",
    "properties": {
        "type": "CosmosDbSqlApiCollection",
        "linkedServiceName":{
            "referenceName": "<Azure Cosmos DB linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [],
        "typeProperties": {
            "collectionName": "<collection name>"
        }
    }
}

Свойства действия копирования

В этом разделе представлен список свойств, поддерживаемых источником и приемником Azure Cosmos DB для NoSQL. Полный список разделов и свойств, доступных для определения действий, см. в статье, посвященной конвейерам и действиям в Фабрике данных Azure.

Azure Cosmos DB для NoSQL в качестве источника

Чтобы скопировать данные из Azure Cosmos DB для NoSQL, задайте тип источника в действии копирования в DocumentDbCollectionSource.

В разделе source действия копирования поддерживаются следующие свойства:

Свойство Описание: Обязательное поле
type Свойство type действия копирования должно иметь значение CosmosDbSqlApiSource. Да
query Укажите запрос Azure Cosmos DB для чтения данных.

Пример:
SELECT c.BusinessEntityID, c.Name.First AS FirstName, c.Name.Middle AS MiddleName, c.Name.Last AS LastName, c.Suffix, c.EmailPromotion FROM c WHERE c.ModifiedDate > \"2009-01-01T00:00:00\"
Без

Если не указано, то выполняется инструкция SQL select <columns defined in structure> from mycollection.
preferredRegions Предпочтительный список регионов для подключения при получении данных из Azure Cosmos DB. No
pageSize Число документов на страницу результата запроса. Значение по умолчанию — "-1", что означает динамическое определение размера страницы на стороне службы (до 1000). No
detectDatetime Указывает, следует ли определять значение datetime по строковым значениям в документах. Допустимые значения: true (по умолчанию), false. No

Если вы используете источник типа "DocumentDbCollectionSource", он поддерживается в режиме "как есть" для обратной совместимости. Вам предлагается использовать новую модель, которая обеспечивает более широкие возможности для копирования данных из Azure Cosmos DB.

Пример

"activities":[
    {
        "name": "CopyFromCosmosDBSQLAPI",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Cosmos DB for NoSQL input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "CosmosDbSqlApiSource",
                "query": "SELECT c.BusinessEntityID, c.Name.First AS FirstName, c.Name.Middle AS MiddleName, c.Name.Last AS LastName, c.Suffix, c.EmailPromotion FROM c WHERE c.ModifiedDate > \"2009-01-01T00:00:00\"",
                "preferredRegions": [
                    "East US"
                ]
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

При копировании данных из Azure Cosmos DB, если только вы не хотите экспортировать документы JSON как есть, рекомендуется указать сопоставление в действии копирования. Служба учитывает сопоставление, указанное в действии. Если строка не содержит значения для столбца, для него передается значение null. Если сопоставление не указано, служба определяет схему, используя первую строку данных. Если первая строка не содержит полную схему, после операции копирования некоторые столбцы будут отсутствовать.

Azure Cosmos DB для NoSQL в качестве приемника

Чтобы скопировать данные в Azure Cosmos DB для NoSQL, задайте тип приемника в действии копирования в DocumentDbCollectionSink.

В разделе sink действия копирования поддерживаются следующие свойства:

Свойство Описание: Обязательное поле
type Свойство type приемника действия копирования должно иметь значение CosmosDbSqlApiSink. Да
writeBehavior Описывает способ записи данных в Azure Cosmos DB. Допустимые значения: insert и upsert.

Поведение upsert — замена документа, если документ с таким идентификатором уже существует. В противном выполняется вставка документа.

Примечание. Служба автоматически создает идентификатор для документа, если он не указан в исходном документе или при сопоставлении столбцов. Это означает, что для правильной работы upsert у документа должен быть идентификатор.
No
(По умолчанию используется insert.)
writeBatchSize Служба использует библиотеку исполнителя массовых операций Azure Cosmos DB для записи данных в Azure Cosmos DB. Свойство writeBatchSize определяет размер документов, которые служба передает в библиотеку. Вы можете увеличить значение writeBatchSize для повышения производительности или уменьшить значение, если документ большого размера. См. рекомендации ниже. No
(Значение по умолчанию — 10 000.)
disableMetricsCollection Служба собирает такие метрики, как ЕЗ Azure Cosmos DB для оптимизации производительности копирования и рекомендаций. Если вас не устраивает такое поведение, укажите true, чтобы отключить его. Нет (значение по умолчанию — false)
 maxConcurrentConnections Верхний предел одновременных подключений, установленных для хранилища данных при выполнении действия. Указывайте значение только при необходимости ограничить количество одновременных подключений.  Без

Совет

Чтобы импортировать документы JSON как есть, см . раздел "Импорт или экспорт документов JSON", чтобы скопировать данные из табличных фигур, см. статью "Миграция из реляционной базы данных в Azure Cosmos DB".

Совет

Azure Cosmos DB ограничивает размер одного запроса на 2 МБ. Формула выглядит так: размер запроса = размера одного документа * размер пакета для записи. Если появится ошибка Запрос слишком большой, уменьшите значение writeBatchSize в конфигурации приемника действия копирования.

Если вы используете источник типа "DocumentDbCollectionSink", он поддерживается в режиме "как есть" для обратной совместимости. Вам предлагается использовать новую модель, которая обеспечивает более широкие возможности для копирования данных из Azure Cosmos DB.

Пример

"activities":[
    {
        "name": "CopyToCosmosDBSQLAPI",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Document DB output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "CosmosDbSqlApiSink",
                "writeBehavior": "upsert"
            }
        }
    }
]

Сопоставление схемы

Чтобы скопировать данные из Azure Cosmos DB в табличный приемник или наоборот, обратитесь к разделу Сопоставление схем.

Свойства потока данных для сопоставления

При преобразовании данных в потоке данных сопоставления можно читать и записывать в коллекции в Azure Cosmos DB. Дополнительные сведения см. в описаниях преобразования источника и преобразования приемника в разделе, посвященном потокам данных для сопоставления.

Примечание.

Бессерверная Azure Cosmos DB не поддерживается в потоке данных для сопоставления.

Преобразование источника

Параметры, относящиеся к Azure Cosmos DB, находятся на вкладке Параметры источника преобразования источника.

Включите системные столбцы: если значение true, id_tsи другие системные столбцы будут включены в метаданные потока данных из Azure Cosmos DB. Этот параметр важно включить при обновлении коллекций, чтобы можно было использовать существующий идентификатор строки.

Размер страницы: число документов на страницу результата запроса. Значение по умолчанию — "-1"; в этом случае используется динамический размер страницы на стороне службы (до 1000).

Пропускная способность. Задайте необязательное значение для количества единиц запросов, которые вы хотите применить к коллекции Azure Cosmos DB для каждого выполнения этого потока данных во время операции чтения. Минимальное значение — 400.

Предпочтительные регионы: выберите предпочтительные регионы чтения для этого процесса.

Веб-канал изменений: если значение — true, вы получите данные из веб-канала изменений Azure Cosmos DB, который является постоянной записью изменений в контейнер в том порядке, в котором они происходят с момента последнего запуска. Если вы задали значение true, то не следует задавать значение true и для Выведение типов смещенных столбцов, и для Разрешение смещения схемы одновременно. Дополнительные сведения см. в статье Канал изменений Azure Cosmos DB.

Начать с начала: если этот флажок установлен, при первом выполнении вы получите начальную загрузку полных данных моментального снимка, за которым последует запись измененных данных в следующих выполнениях. Если значение равно false, начальная нагрузка будет пропущена при первом выполнении, а затем будут внесены измененные данные в следующих выполнениях. Параметр выравнивается с тем же именем параметра в справочнике по Azure Cosmos DB. Дополнительные сведения см. в разделе Канал изменений Azure Cosmos DB.

Преобразование приемника

Параметры, относящиеся к Azure Cosmos DB, находятся на вкладке Параметры преобразования приемника.

Метод обновления. Определяет, какие операции разрешены в назначении базы данных. По умолчанию разрешены только операции вставки. Для выполнения обновления (update), обновления или вставки (upsert) или удаления (delete) строк требуется преобразование alter-row строк, отмеченных для этих действий. Для выполнения обновления (update), обновления или вставки (upsert) или удаления (delete) должен быть установлен ключевой столбец (или столбцы), позволяющий определить строки для изменения.

Действие коллекции: определяет, следует ли повторно создавать целевую коллекцию перед записью.

  • Нет: с коллекцией не выполняются никакие действия.
  • Создать повторно: коллекция будет удалена и создана повторно.

Размер пакета: целое число, представляющее количество объектов, записываемых в коллекцию Azure Cosmos DB в каждом пакете. Обычно для того, чтобы приступить к работе, достаточно размера пакета по умолчанию. При дальнейшей корректировке этого значения учитывайте указанные ниже моменты.

  • Azure Cosmos DB ограничивает размер одного запроса на 2 МБ. Формула выглядит так: размер запроса = размер одного документа × размер пакета. Если возникла ошибка с сообщением о том, что размер запроса слишком велик, уменьшите пакет.
  • Чем больше размер пакета, тем большей пропускной способности может добиться служба. Однако при этом для рабочей нагрузки необходимо выделить достаточно единиц запросов.

Ключ секции: введите строку, представляющую ключ секции для коллекции. Пример: /movies/title

Пропускная способность. Задайте необязательное значение для количества единиц запросов, которые вы хотите применить к коллекции Azure Cosmos DB для каждого выполнения этого потока данных. Минимальное значение — 400.

Бюджет пропускной способности записи: целое число — число ЕЗ, которые требуется выделить для этой операции записи потока данных из общей пропускной способности, выделенной для коллекции.

Примечание.

Чтобы ограничить использование единиц запросов, задайте для пропускной способности Cosmos DB (автомасштабирование) значение Вручную.

Свойства действия поиска

Подробные сведения об этих свойствах см. в разделе Действие поиска.

Импорт и экспорт документов JSON

Этот соединитель Azure Cosmos DB для NoSQL можно использовать с легкостью:

  • копировать документы между двумя коллекциями Azure Cosmos DB "как есть".
  • импортировать документы JSON из различных источников в Azure Cosmos DB, включая хранилище BLOB-объектов Azure, Azure Data Lake Store и другие файловые хранилища, поддерживаемые службой;
  • экспортировать документы JSON из коллекции Azure Cosmos DB в различные файловые хранилища;

Чтоб обеспечить копирование без использования схем, сделайте следующее.

  • При использовании средства копирования данных выберите "Экспорт как есть" в JSON-файлы или коллекцию Azure Cosmos DB.
  • При разработке действий выберите формат JSON с соответствующим хранилищем файлов для источника или приемника.

Миграция из реляционной базы данных в Azure Cosmos DB

При миграции из реляционной базы данных e.g. SQL Server в Azure Cosmos DB действие копирования может легко сопоставить табличные данные из источника в неструктурированные документы JSON в Azure Cosmos DB. В некоторых ситуациях может потребоваться реконструировать модель данных, чтобы оптимизировать ее для сценариев NoSQL, как объясняется в статье Моделирование данных в Azure Cosmos DB (например, для денормализации данных путем встраивания всех связанных вложенных элементов в один документ JSON). В таком случае обратитесь к этой статье с пошаговым руководством по реализации соответствующей схемы с помощью действия копирования.

Канал изменений Azure Cosmos DB

Фабрика данных Azure может получать данные из веб-канала изменений Azure Cosmos DB, включив его в преобразовании источников в потоке данных для сопоставления. Этот параметр соединителя позволяет считывать каналы изменений и применять преобразования перед загрузкой преобразованных данных в нужные целевые наборы. Функции Azure для чтения веб-канала изменений и последующей записи пользовательских преобразований использовать необязательно. Этот параметр можно использовать для перемещения данных из одного контейнера в другой, подготовки представлений на основе веб-канала изменений для подбора или автоматизации резервного копирования или восстановления контейнеров на основе веб-канала изменений, а также для многих других вариантов использования с помощью возможности перетаскивания элементов в интерфейсе Фабрики данных Azure.

Убедитесь, что название конвейера и имя действия не изменились, чтобы контрольная точка могла быть записана ADF и вы могли получать измененные данные из последнего выполнения автоматически. Если изменить имя конвейера или имя действия, контрольная точка будет сброшена, из-за чего придется начинать работу с начала или получить изменения с текущего момента до следующего выполнения.

При отладке конвейера эта функция работает таким же образом. Имейте в виду, что при обновлении страницы в браузере во время отладки контрольная точка будет сброшена. Когда вы будете довольны результатами отладки конвейера, его можно опубликовать и запустить. В момент первого запуска опубликованного конвейера он автоматически перезапускается с самого начала или получает изменения с этого момента.

При необходимости вы можете повторно запустить конвейер из раздела мониторинга. При этом измененные данные всегда фиксируются из предыдущей контрольной точки выбранного выполнения конвейера.

Кроме того, аналитическое хранилище Azure Cosmos DB теперь поддерживает сбор измененных данных (CDC) для API Azure Cosmos DB для NoSQL и API Azure Cosmos DB для Mongo DB (общедоступная предварительная версия). Аналитическое хранилище Azure Cosmos DB позволяет эффективно использовать непрерывный и добавочный веб-канал измененных (вставленных, обновленных и удаленных) данных из аналитического хранилища.

Список хранилищ данных, поддерживаемых действием копирования в качестве источников и приемников, приведен в разделе Поддерживаемые хранилища данных.