Перенос данных в 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.
Необходимые компоненты
- Существующая учетная запись Azure Cosmos DB для NoSQL.
- Если у вас есть подписка Azure, создайте новую учетную запись.
- Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
- Кроме того, перед фиксацией можно воспользоваться бесплатной службой Azure Cosmos DB.
- Последняя версия Azure CLI.
- .NET 6.0 или более поздней версии.
Установка средства миграции классических данных
Сначала установите последнюю версию средства миграции классических данных из репозитория GitHub.
Примечание.
Средство миграции классических данных требует .NET 6.0 или более поздней версии на локальном компьютере.
В браузере перейдите в раздел "Выпуски " репозитория: azurecosmosdb/data-migration-desktop-tool/releases.
Скачайте последнюю сжатые папки для платформы. Существуют сжатые папки для платформ win-x64, mac-x64 и linux-x64.
Извлеките файлы в расположение установки на локальном компьютере.
(Необязательно) Добавьте средство миграции классических данных в
PATH
переменную среды локального компьютера.
Подготовка целевого объекта миграции
Затем создайте целевую базу данных и контейнер в учетной записи Azure Cosmos DB для NoSQL.
Откройте новый терминал. Если вы еще не сделали этого, войдите в Azure CLI.
Создайте переменные оболочки для имени и группы ресурсов учетной записи 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>"
Создание базы данных с помощью
az cosmosdb sql database create
. Назовите новую базу данных и настройте базу данныхcosmicworks
с 400 ЕЗ/с общей пропускной способности.az cosmosdb sql database create \ --resource-group $resourceGroupName \ --account-name $accountName \ --name cosmicworks \ --throughput 400
Используется
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"
Найдите основной строка подключения из списка ключей для учетной записи
az cosmosdb keys list
.az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type connection-strings
Запишите основное значение строка подключения. Эти учетные данные будут использоваться позже при переносе данных с помощью средства.
Выполнение операции миграции
Теперь перенесите данные из массива JSON в только что созданный контейнер Azure Cosmos DB для NoSQL.
Перейдите к пустому каталогу на локальном компьютере. В этом каталоге создайте файл с именем migrationsettings.json.
В JSON-файле создайте пустой объект JSON:
{}
Создайте новое свойство с именем
Source
со значениемjson
. Создайте другое свойство с именемSourceSettings
пустого объекта в качестве значения.{ "Source": "json", "SourceSettings": {} }
В объекте
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" } }
Создайте другое новое свойство с именем
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": { } }
В
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>" } }
Добавьте
Database
,Container
аPartitionKeyPath
также свойства сproducts
cosmicworks
, а/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" } }
Сохраните файл migrationsettings.json .
Откройте новый терминал и перейдите в каталог, содержащий файл migrationsettings.json .
Запустите средство миграции классических данных с помощью
dmt
команды.dmt
Примечание.
Если вы не добавили путь установки в
PATH
переменную среды, может потребоваться указать полный путь к исполняемому файлуdmt
.Теперь средство выводит источники и приемники, используемые миграцией.
Using JSON Source Using Cosmos-nosql Sink