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


Перенос данных в Azure Cosmos DB с помощью средства миграции классических данных

Область применения: Nosql Mongodb Таблица

Средство миграции классических данных Azure Cosmos DB — это приложение командной строки с открытым кодом для импорта или экспорта данных из Azure Cosmos DB. Средство может перенести данные в множество источников и приемников, включая, но не ограничено:

  • Azure Cosmos DB for NoSQL
  • Azure Cosmos DB for MongoDB
  • Azure Cosmos DB for Table
  • Хранилище таблиц Azure
  • JSON
  • MongoDB
  • SQL Server

Внимание

В этом руководстве вы выполните миграцию данных из JSON в Azure Cosmos DB для NoSQL.

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

Установка средства миграции классических данных

Сначала установите последнюю версию средства миграции классических данных из репозитория GitHub.

Примечание.

Средство миграции классических данных требует .NET 6.0 или более поздней версии на локальном компьютере.

  1. В браузере перейдите в раздел "Выпуски " репозитория: azurecosmosdb/data-migration-desktop-tool/releases.

  2. Скачайте последнюю сжатые папки для платформы. Существуют сжатые папки для платформ win-x64, mac-x64 и linux-x64.

  3. Извлеките файлы в расположение установки на локальном компьютере.

  4. (Необязательно) Добавьте средство миграции классических данных в PATH переменную среды локального компьютера.

Подготовка целевого объекта миграции

Затем создайте целевую базу данных и контейнер в учетной записи Azure Cosmos DB для NoSQL.

  1. Откройте новый терминал. Если вы еще не сделали этого, войдите в Azure CLI.

  2. Создайте переменные оболочки для имени и группы ресурсов учетной записи Azure Cosmos DB.

    # Variable for Azure Cosmos DB account name
    accountName="<name-of-existing-account>"
    
    # Variable for resource group name
    resourceGroupName="<name-of-existing-resource-group>"
    
  3. Создание базы данных с помощью az cosmosdb sql database create. Назовите новую базу данных и настройте базу данных cosmicworks с 400 ЕЗ/с общей пропускной способности.

    az cosmosdb sql database create \
        --resource-group $resourceGroupName \
        --account-name $accountName \
        --name cosmicworks \
        --throughput 400
    
  4. Используется az cosmosdb sql container create для создания контейнера с именем products в cosmicworks базе данных. Задайте для нового контейнера /categoryпуть ключа секции.

    az cosmosdb sql container create \
        --resource-group $resourceGroupName \
        --account-name $accountName \
        --database-name cosmicworks \
        --name products \
        --partition-key-path "/category"
    
  5. Найдите основной строка подключения из списка ключей для учетной записиaz cosmosdb keys list.

    az cosmosdb keys list \
        --resource-group $resourceGroupName \
        --name $accountName \
        --type connection-strings
    
  6. Запишите основное значение строка подключения. Эти учетные данные будут использоваться позже при переносе данных с помощью средства.

Выполнение операции миграции

Теперь перенесите данные из массива JSON в только что созданный контейнер Azure Cosmos DB для NoSQL.

  1. Перейдите к пустому каталогу на локальном компьютере. В этом каталоге создайте файл с именем migrationsettings.json.

  2. В JSON-файле создайте пустой объект JSON:

    {}
    
  3. Создайте новое свойство с именем Source со значением json. Создайте другое свойство с именем SourceSettings пустого объекта в качестве значения.

    {
      "Source": "json",
      "SourceSettings": {}
    }
    
  4. В объекте SourceSettings создайте новое свойство FilePath с именем со значением, заданным для этого URI: https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json

    {
      "Source": "json",
      "SourceSettings": {
        "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json"
      }
    }
    
  5. Создайте другое новое свойство с именем Sink значения cosmos-nosql. Кроме того, создайте свойство с именем SinkSettings пустого объекта.

    {
      "Source": "json",
      "SourceSettings": {
        "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json"
      },
      "Sink": "cosmos-nosql",
      "SinkSettings": {
      }
    }
    
  6. В SinkSettingsэтом руководстве создайте свойство с именем ConnectionString с основным строка подключения, записанным ранее в этом руководстве в качестве его значения.

    {
      "Source": "json",
      "SourceSettings": {
        "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json"
      },
      "Sink": "cosmos-nosql",
      "SinkSettings": {
        "ConnectionString": "<connection-string-for-existing-account>"
      }
    }
    
  7. Добавьте Database, Containerа PartitionKeyPath также свойства с productscosmicworks, а /category также их значения соответственно.

    {
      "Source": "json",
      "SourceSettings": {
        "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json"
      },
      "Sink": "cosmos-nosql",
      "SinkSettings": {
        "ConnectionString": "<connection-string-for-existing-account>",
        "Database": "cosmicworks",
        "Container": "products",
        "PartitionKeyPath": "/category"
      }
    }
    
  8. Сохраните файл migrationsettings.json .

  9. Откройте новый терминал и перейдите в каталог, содержащий файл migrationsettings.json .

  10. Запустите средство миграции классических данных с помощью dmt команды.

    dmt
    

    Примечание.

    Если вы не добавили путь установки в PATH переменную среды, может потребоваться указать полный путь к исполняемому файлу dmt .

  11. Теперь средство выводит источники и приемники, используемые миграцией.

    Using JSON Source
    Using Cosmos-nosql Sink