Aracılığıyla paylaş


Masaüstü veri geçiş aracını kullanarak verileri Azure Cosmos DB'ye geçirme

ŞUNLAR IÇIN GEÇERLIDIR: NoSQL MongoDB Masa

Azure Cosmos DB masaüstü veri geçiş aracı, Azure Cosmos DB'den verileri içeri veya dışarı aktarmaya yönelik bir açık kaynak komut satırı uygulamasıdır. Araç, aşağıdakiler dahil ancak bunlarla sınırlı olmamak üzere birçok kaynak ve havuza veri geçirebilir:

  • NoSQL için Azure Cosmos DB
  • MongoDB için Azure Cosmos DB
  • Tablo için Azure Cosmos DB
  • Azure Tablo depolama
  • JSON
  • MongoDB
  • SQL Server

Önemli

Bu kılavuz için JSON'dan NoSQL için Azure Cosmos DB'ye veri geçişi gerçekleştiracaksınız.

Önkoşullar

Masaüstü veri geçiş aracını yükleme

İlk olarak, GitHub deposundan masaüstü veri geçiş aracının en son sürümünü yükleyin.

Not

Masaüstü veri geçiş aracı, yerel makinenizde .NET 6.0 veya üzerini gerektirir.

  1. Tarayıcınızda, deponun Sürümler bölümüne gidin: azurecosmosdb/data-migration-desktop-tool/releases.

  2. Platformunuz için en son sıkıştırılmış klasörü indirin. Win-x64, mac-x64 ve linux-x64 platformları için sıkıştırılmış klasörler vardır.

  3. Dosyaları yerel makinenizdeki bir yükleme konumuna ayıklayın.

  4. (İsteğe bağlı) Masaüstü veri geçiş aracını PATH yerel makinenizin ortam değişkenine ekleyin.

Geçiş hedefinizi hazırlama

Ardından, NoSQL için Azure Cosmos DB hesabında bir hedef veritabanı ve kapsayıcı oluşturun.

  1. Yeni bir terminal açın. Henüz yapmadıysanız Azure CLI'da oturum açın.

  2. Azure Cosmos DB hesabının adı ve kaynak grubu için yeni kabuk değişkenleri oluşturun.

    # Variable for Azure Cosmos DB account name
    accountName="<name-of-existing-account>"
    
    # Variable for resource group name
    resourceGroupName="<name-of-existing-resource-group>"
    
  3. kullanarak az cosmosdb sql database createyeni bir veritabanı oluşturun. Yeni veritabanını cosmicworks adlandırın ve veritabanını 400 RU/sn paylaşılan aktarım hızıyla yapılandırın.

    az cosmosdb sql database create \
        --resource-group $resourceGroupName \
        --account-name $accountName \
        --name cosmicworks \
        --throughput 400
    
  4. Veritabanında adlı products cosmicworks yeni bir kapsayıcı oluşturmak için kullanınaz cosmosdb sql container create. Yeni kapsayıcının bölüm anahtarı yolunu olarak /categoryayarlayın.

    az cosmosdb sql container create \
        --resource-group $resourceGroupName \
        --account-name $accountName \
        --database-name cosmicworks \
        --name products \
        --partition-key-path "/category"
    
  5. ile az cosmosdb keys listhesabın anahtar listesinden birincil bağlantı dizesi bulun.

    az cosmosdb keys list \
        --resource-group $resourceGroupName \
        --name $accountName \
        --type connection-strings
    
  6. Birincil bağlantı dizesi değerini kaydedin. Bu kimlik bilgilerini daha sonra araçla veri geçirirken kullanırsınız.

Geçiş işlemi gerçekleştirme

Şimdi bir JSON dizisinden yeni oluşturulan NoSQL için Azure Cosmos DB kapsayıcısına veri geçirin.

  1. Yerel makinenizde boş bir dizine gidin. Bu dizinde migrationsettings.json adlı yeni bir dosya oluşturun.

  2. JSON dosyasında yeni bir boş JSON nesnesi oluşturun:

    {}
    
  3. değeriyle jsonadlı Source yeni bir özellik oluşturun. Değeri boş olan adlı SourceSettings başka bir yeni özellik oluşturun.

    {
      "Source": "json",
      "SourceSettings": {}
    }
    
  4. nesnesinin içinde SourceSettings , değeri şu URI'ye ayarlanmış olan adlı FilePath yeni bir özellik oluşturun: 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. değeriyle cosmos-nosqladlı Sink başka bir yeni özellik oluşturun. Ayrıca, boş bir nesneyle adlı SinkSettings bir özellik oluşturun.

    {
      "Source": "json",
      "SourceSettings": {
        "FilePath": "https://raw.githubusercontent.com/azure-samples/cosmos-db-migration-sample-data/main/nosql-data.json"
      },
      "Sink": "cosmos-nosql",
      "SinkSettings": {
      }
    }
    
  6. içindeSinkSettings, bu kılavuzun önceki bölümlerinde değeri olarak kaydettiğiniz birincil bağlantı dizesi adlı bir özellik ConnectionString oluşturun.

    {
      "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. , Containerve PartitionKeyPath özelliklerini değerleri olarak sırasıyla , productsve /category ile cosmicworksekleyinDatabase.

    {
      "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 dosyasını kaydedin.

  9. Yeni bir terminal açın ve migrationsettings.json dosyanızı içeren dizine gidin.

  10. komutunu kullanarak dmt masaüstü veri geçiş aracını çalıştırın.

    dmt
    

    Not

    Yükleme yolunu ortam değişkeninize PATH eklemediyseniz yürütülebilir dosyanın tam yolunu dmt belirtmeniz gerekebilir.

  11. Araç artık geçiş tarafından kullanılan kaynakları ve havuzları çıkış olarak alır.

    Using JSON Source
    Using Cosmos-nosql Sink