Копирование заданий в Azure Cosmos DB (предварительная версия)

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

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

Задания копирования можно создавать и управлять с помощью команд Azure CLI.

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

Чтобы приступить к работе с копией веб-контейнера для учетных записей API NoSQL Для Azure Cosmos DB, зарегистрируйтесь для предварительной версии функции предварительной версии (NoSQL) в предварительной версии компонентов в портал Azure. После завершения регистрации предварительная версия будет действовать для всех учетных записей NoSQL API в подписке.

Необходимые компоненты

  1. Включите непрерывную резервную копию в исходной учетной записи Azure Cosmos DB.
  2. Зарегистрируйтесь для всех версий и удалите предварительную версию режима канала изменений в подписке исходной учетной записи.

Внимание

Для сохранения предыдущих и текущих версий изменений в контейнере в контейнере будут взиматься все операции записи в исходный контейнер. Это увеличение платы за единицу запросов может измениться в будущем.

Копирование данных контейнера

  1. Создайте целевой контейнер Azure Cosmos DB с помощью параметров, которые требуется использовать (ключ секции, степень детализации пропускной способности, единицы запросов, уникальный ключ и т. д.).
  2. Создайте задание копирования контейнера.
  3. Отслеживайте ход выполнения задания копирования.
  4. После копирования всех документов остановите обновления исходного контейнера и вызовите API завершения, чтобы пометить задание как завершенное.
  5. Возобновляйте операции, указывая приложение или клиент на исходный или целевой контейнер в соответствии с указанным образом.

Как работает копирование контейнеров?

  1. Платформа выделяет серверные вычислительные экземпляры для целевой учетной записи Azure Cosmos DB для выполнения заданий копирования контейнеров.
  2. Одно задание выполняется во всех экземплярах в любое время.
  3. Задания онлайн-копирования используют все версии и удаляют режим канала изменений для копирования данных и репликации добавочных изменений из исходного контейнера в целевой контейнер.
  4. После завершения задания платформа отменяет выделение этих экземпляров через 15 минут бездействия.

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

Копирование данных коллекции

  1. Создайте целевую коллекцию Azure Cosmos DB с помощью параметров, которые требуется использовать (ключ секции, степень детализации пропускной способности, единицы запросов, уникальный ключ и т. д.).
  2. Остановите операции с исходной коллекцией путем приостановки экземпляров приложения или всех клиентов, которые подключаются к нему.
  3. Создайте задание копирования.
  4. Отслеживайте ход выполнения задания копирования и дождитесь завершения его выполнения.
  5. Возобновляйте операции, указывая приложение или клиент на исходную или целевую коллекцию должным образом.

Примечание.

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

Как работает копирование коллекции?

  1. Платформа выделяет серверные вычислительные экземпляры для целевой учетной записи Azure Cosmos DB.
  2. Эти экземпляры выделяются при создании одного или нескольких заданий копирования коллекции в учетной записи.
  3. Задания копирования выполняются на этих экземплярах.
  4. Одно задание выполняется во всех экземплярах в любое время.
  5. Экземпляры совместно используются всеми заданиями копирования, выполняющимися в одной учетной записи.
  6. Задания автономного копирования используют потоки изменений для копирования данных и репликации добавочных изменений из исходной коллекции в целевую коллекцию.
  7. Платформа может отменять выделение экземпляров, если они бездействуют дольше 15 минут.

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

Копирование данных таблицы

  1. Создайте целевую таблицу Azure Cosmos DB с помощью параметров, которые требуется использовать (ключ секции, степень детализации пропускной способности, единицы запросов и т. д.).
  2. Остановите операции в исходной таблице путем приостановки экземпляров приложения или всех клиентов, которые подключаются к нему.
  3. Создайте задание копирования.
  4. Отслеживайте ход выполнения задания копирования и дождитесь завершения его выполнения.
  5. Возобновляйте операции, указывая приложение или клиент на исходную или целевую таблицу соответствующим образом.

Примечание.

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

Как работает копирование таблицы?

  1. Платформа выделяет серверные вычислительные экземпляры для целевой учетной записи Azure Cosmos DB.
  2. Эти экземпляры выделяются при создании одного или нескольких заданий копирования в учетной записи.
  3. Задания копирования выполняются на этих экземплярах.
  4. Одно задание выполняется во всех экземплярах в любое время.
  5. Экземпляры совместно используются всеми заданиями копирования, выполняющимися в одной учетной записи.
  6. Задания автономного копирования используют канал изменений для копирования данных и репликации добавочных изменений из исходной таблицы в целевую таблицу.
  7. Платформа может отменять выделение экземпляров, если они бездействуют дольше 15 минут.

Факторы, влияющие на скорость задания копирования

Скорость выполнения задания копирования контейнера определяется следующими факторами:

  • Исходный контейнер или параметр пропускной способности базы данных.

  • Целевой контейнер или параметр пропускной способности базы данных.

    Совет

    Задайте для целевой пропускной способности контейнера по крайней мере два раза пропускную способность исходного контейнера.

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

    Внимание

    Номер SKU по умолчанию предлагает два экземпляра на стороне сервера с объемом памяти 16 ГБ и 4 виртуальными ЦП на каждую учетную запись.

Ограничения

Условия соответствия для получения предварительной версии

Задания копирования контейнеров не работают с учетными записями, имеющими следующие возможности. Отключите эти функции перед выполнением заданий копирования контейнеров:

Конфигурации учетных записей

Параметр времени жизни (TTL) не настраивается в целевом контейнере. В результате, если в исходном контейнере не истек срок действия документа, он начинает отсчет отсчета в целевом контейнере.

Вопросы и ответы

Существует ли соглашение об уровне обслуживания для заданий копирования контейнеров?

Задания копирования контейнеров в настоящее время поддерживаются на основе лучших усилий. Мы не предоставляем никаких гарантий соглашения об уровне обслуживания (SLA) на время завершения заданий.

Можно ли создать несколько заданий копирования контейнеров в учетной записи?

Да, можно создать несколько заданий в одной учетной записи. Задания выполняются последовательно. Вы можете перечислить все задания , созданные в учетной записи, и отслеживать их ход выполнения.

Можно ли скопировать всю базу данных в учетной записи Azure Cosmos DB?

Необходимо создать задание для каждого контейнера в базе данных.

У меня есть учетная запись Azure c с несколькими регионами. В каком регионе будет выполняться задание копирования контейнера?

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

Что происходит с заданиями копирования контейнеров при изменении региона записи для учетной записи?

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

Поддерживаемые регионы

Сейчас копирование контейнера поддерживается только в следующих регионах:

Северная и Южная Америки Европа и Африка Азиатско-Тихоокеанский регион
Brazil South Центральная Франция Центральная Австралия
Центральная Канада Южная Франция Центральная Австралия 2
Восточная Канада Северная Германия Восточная Австралия
Центральная часть США Центрально-Западная Германия Центральная Индия
Центральная часть США (EUAP) Северная Европа Восточная Япония
Восточная часть США Восточная Норвегия; Республика Корея, центральный регион
Восточная часть США 2 Западная Норвегия Юго-Восточная Азия
Восточная часть США 2 (EUAP) Северная Швейцария Центральная часть ОАЭ
Центрально-северная часть США Западная Швейцария Индия (запад)
Центрально-южная часть США южная часть Соединенного Королевства Восточная Азия
центрально-западная часть США западная часть Соединенного Королевства Южная Малайзия
западная часть США Западная Европа Западная Япония
западная часть США 2 Израиль, центральный регион Юго-Восточная часть Австралии
Не поддерживается Северная часть ЮАР Не поддерживается

Известные и распространенные проблемы

  • Ошибка — ресурс владельца не существует.

    Если создание задания завершается ошибкой и отображает ресурс владельца ошибки не существует (код ошибки 404), целевой контейнер еще не создан или имя контейнера, используемое для создания задания, не соответствует фактическому имени контейнера.

    Убедитесь, что целевой контейнер создается перед запуском задания и убедитесь, что имя контейнера в задании соответствует фактическому имени контейнера.

    "code": "404",
    "message": "Response status code does not indicate success: NotFound (404); Substatus: 1003; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: (Message: {\"Errors\":[\"Owner resource does not exist\"]
    
  • Ошибка — запрос неавторизован.

    Если запрос завершается ошибкой и отображает ошибку Несанкционированный (код ошибки 401), локальная авторизация может быть отключена.

    Задания копирования контейнеров используют первичные ключи для проверки подлинности. Если локальная авторизация отключена, создание задания завершается сбоем. Для работы заданий копирования контейнеров необходимо включить локальную авторизацию.

    "code": "401",
    "message": " Response status code does not indicate success: Unauthorized (401); Substatus: 5202; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: Local Authorization is disabled. Use an AAD token to authorize all requests."
    
  • Ошибка — ошибка при получении ресурсов для задания.

    Эта ошибка может возникать из-за внутренних проблем с сервером. Чтобы устранить эту проблему, обратитесь к служба поддержки Майкрософт, открыв новый запрос на поддержку в портал Azure. Для типа проблемы выберите "Миграция данных". Для подтипа проблемы выберите копию контейнера внутри учетной записи.

    "code": "500"
    "message": "Error while getting resources for job, StatusCode: 500, SubStatusCode: 0, OperationId:  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    

Следующие шаги