Öğretici: MongoDB yerel araçlarını kullanarak MongoDB'yi Çevrimdışı MongoDB için Azure Cosmos DB API'sine geçirme

ŞUNLAR IÇIN GEÇERLIDIR: MongoDB

Önemli

Geçiş adımlarınızı gerçekleştirmeden önce lütfen bu kılavuzun tamamını okuyun.

Bu MongoDB geçiş kılavuzu, MongoDB geçişi serisinin bir parçasıdır. Aşağıda gösterildiği gibi kritik MongoDB geçiş adımları geçiş öncesi, geçiş ve geçiş sonrası adımlarıdır.

Geçiş adımlarının diyagramı.

MongoDB yerel araçlarını kullanarak veri geçişlerine genel bakış

MongoDB yerel araçlarını kullanarak veritabanlarının şirket içi veya bulut örneğinden MongoDB için Azure Cosmos DB API'sine çevrimdışı (tek seferlik) geçişini gerçekleştirebilirsiniz.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:

  • Kullanım örneğiniz için uygun MongoDB yerel aracını seçin
  • Geçişi çalıştırma.
  • Geçişi izleme.
  • Geçişin başarılı olduğunu doğrulayın.

Bu öğreticide, MongoDB yerel araçlarını kullanarak Bir Azure Sanal Makinesinde barındırılan MongoDB'deki bir veri kümesini MongoDB için Azure Cosmos DB API'sine geçirirsiniz. MongoDB yerel araçları, mevcut bir MongoDB örneğinde veri işlemeyi kolaylaştıran ikili dosyalar kümesidir. Azure Cosmos DB, MongoDB için bir API kullanıma sunarken MongoDB yerel araçları Azure Cosmos DB'ye veri ekleyebilir. Bu belgenin odak noktası mongoexport/mongoimport veya mongodump/mongorestore kullanarak mongoDB örneğinden verileri geçirmektir. Yerel araçlar bağlantı dizelerini kullanarak MongoDB'ye bağlandığından, araçları her yerde çalıştırabilirsiniz, ancak güvenlik duvarı sorunlarını önlemek için bu araçları MongoDB örneğiyle aynı ağ içinde çalıştırmanızı öneririz.

MongoDB yerel araçları, verileri yalnızca konak donanımının izin verdiği kadar hızlı taşıyabilir; yerel araçlar, toplam geçiş süresinin sorun oluşturmadığı küçük veri kümeleri için en basit çözüm olabilir. MongoDB Spark bağlayıcısı, Azure Veri Geçiş Hizmeti (DMS) veya Azure Data Factory (ADF), ölçeklenebilir bir geçiş işlem hattına ihtiyacınız varsa daha iyi alternatifler olabilir.

Önceden ayarlanmış bir MongoDB kaynağınız yoksa Azure'da Windows VM'sinde MongoDB'yi yükleme ve yapılandırma makalesine bakın.

Önkoşullar

Bu öğreticiyi tamamlamak için aşağıdakileri yapmanız gerekir:

  • Aktarım hızını tahmin etme, bölüm anahtarı seçme ve dizin oluşturma ilkesi gibi geçiş öncesi adımları tamamlayın.
  • MongoDB için Azure Cosmos DB hesabı oluşturun.
  • MongoDB örneğinizde oturum açın
    • Bu bağlantıdan MongoDB yerel araçlarını indirin ve yükleyin.
      • MongoDB yerel araçları sürümünüzün mevcut MongoDB örneğinle eşleştiğinden emin olun.
      • MongoDB örneğiniz MongoDB için Azure Cosmos DB'den farklı bir sürüme sahipse , hem MongoDB yerel araç sürümlerini yükleyin hem de mongoDB ve MongoDB için Azure Cosmos DB için uygun araç sürümünü kullanın.
    • Zaten bir kullanıcı yoksa, izinleri olan readWrite bir kullanıcı ekleyin. Bu öğreticinin ilerleyen bölümlerinde mongoexport ve mongodump araçlarına bu kullanıcı adını/parolayı sağlayın.

Azure Cosmos DB Sunucu Tarafı Yeniden Denemelerini Yapılandırma

MongoDB'den Azure Cosmos DB'ye geçiş yapan müşteriler, sağlanan aktarım hızınızı tam olarak kullanabilmeyi garanti eden kaynak idare özelliklerinden yararlanır. Azure Cosmos DB, kapsayıcı tarafından sağlanan RU/sn'yi aşarsa geçiş işlemi boyunca belirli bir isteği kısıtlar; ardından bu isteğin yeniden denenmesi gerekir. Geçiş aracı ile Azure Cosmos DB arasındaki ağ atlamasında yer alan gidiş dönüş süresi, bu isteğin genel yanıt süresini etkiler; ayrıca MongoDB yerel araçları yeniden denemeleri işlemeyebilir. Azure Cosmos DB'nin Sunucu Tarafı Yeniden Deneme özelliği, hizmetin hata kodlarını engellemesine ve çok daha düşük gidiş dönüş süresiyle yeniden denemesine olanak sağlayarak istek yanıt sürelerini önemli ölçüde iyileştirir. MongoDB yerel araçları açısından, yeniden denemeleri işleme gereksinimi en aza indirilir ve bu da geçiş sırasındaki deneyiminizi olumlu yönde etkiler.

Sunucu Tarafı Yeniden Deneme özelliğini Azure Cosmos DB portalının Özellikler dikey penceresinde bulabilirsiniz

MongoDB SSR özelliğinin ekran görüntüsü.

Devre Dışı ise aşağıda gösterildiği gibi etkinleştirmenizi öneririz

MongoDB SSR etkinleştirme ekran görüntüsü.

Uygun MongoDB yerel aracını seçin

En iyi MongoDB yerel aracını seçme diyagramı.

  • mongoexport/mongoimport, MongoDB veritabanınızın bir alt kümesini geçirmek için en iyi geçiş araçları çiftidir.
    • mongoexport , mevcut verilerinizi insan tarafından okunabilir bir JSON veya CSV dosyasına aktarır. mongoexport , dışarı aktarılacak mevcut verilerinizin alt kümesini belirten bir bağımsız değişken alır.
    • mongoimport bir JSON veya CSV dosyası açar ve içeriği hedef veritabanı örneğine (bu örnekte Azure Cosmos DB) ekler.
    • JSON ve CSV'nin sıkıştırılmış biçimler olmadığını unutmayın; Mongoimport Azure Cosmos DB'ye veri gönderdiğinden fazla ağ ücretlerine tabi olabilirsiniz.
  • mongodump/mongorestore , MongoDB veritabanınızın tamamını geçirmek için en iyi geçiş araçları çiftidir. Kompakt BSON biçimi, veriler Azure Cosmos DB'ye eklendikçe ağ kaynaklarının daha verimli bir şekilde kullanılmasını sağlar.
    • mongodump , mevcut verilerinizi BSON dosyası olarak dışarı aktarır.
    • mongorestore , BSON dosya dökümünüzü Azure Cosmos DB'ye aktarır.
  • Bir yana: MongoDB için Azure Cosmos DB'ye aktarmak istediğiniz küçük bir JSON dosyanız varsa mongoimport aracı, verileri almak için hızlı bir çözümdür.

MongoDB için Azure Cosmos DB kimlik bilgilerini toplama

MongoDB için Azure Cosmos DB, MongoDB yerel araçlarının kullanabileceği uyumlu erişim kimlik bilgileri sağlar. MongoDB için Azure Cosmos DB'ye veri geçirmek için bu erişim kimlik bilgilerine sahip olmanız gerekir. Bu kimlik bilgilerini bulmak için:

  1. Azure portalını açın

  2. MongoDB için Azure Cosmos DB hesabınıza gidin

  3. Sol gezinti bölmesinde Bağlantı Dizesi dikey penceresini seçtiğinizde aşağıdakine benzer bir ekran görmeniz gerekir:

    Azure Cosmos DB kimlik bilgilerinin ekran görüntüsü.

    • HOST - Azure Cosmos DB uç noktası MongoDB ana bilgisayar adı olarak işlev görür
    • PORT - MongoDB yerel araçları Azure Cosmos DB'ye bağlandığında, bu bağlantı noktasını açıkça belirtmeniz gerekir
    • USERNAME - Azure Cosmos DB uç nokta etki alanı adının ön eki MongoDB kullanıcı adı olarak işlev görür
    • PASSWORD - MongoDB parolası olarak Azure Cosmos DB ana anahtarı işlevleri
    • Ayrıca, Azure Cosmos DB'ye veri yazarken MongoDB yerel aracının SSL'yi etkinleştirmesi gerekenSSL alanını true da unutmayın

Geçişi gerçekleştirme

  1. Hangi veritabanlarını ve koleksiyonları geçirmek istediğinizi seçin. Bu örnekte, edx veritabanındaki sorgu koleksiyonunu MongoDB'den Azure Cosmos DB'ye geçiriyoruz.

Bu bölümün geri kalanı, önceki bölümde seçtiğiniz araç çiftini kullanma konusunda size yol gösterir.

mongoexport/mongoimport

  1. Kaynak MongoDB örneğindeki verileri dışarı aktarmak için MongoDB örnek makinesinde bir terminal açın. Bu bir Linux makinesiyse,

    mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json
    

    Windows'ta yürütülebilir dosya olacaktır mongoexport.exe. HOST, PORT, USERNAME ve PASSWORD , mevcut MongoDB veritabanı örneğinizin özelliklerine göre doldurulmalıdır.

    MongoDB veri kümesinin yalnızca bir alt kümesini dışarı aktarmayı da seçebilirsiniz. Bunu yapmak için ek bir filtre bağımsız değişkeni eklemektir:

    mongoexport --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --out edx.json --query '{"field1":"value1"}'
    

    Yalnızca filtreyle {"field1":"value1"} eşleşen belgeler dışarı aktarılır.

    Çağrıyı yürütürken bir edx.json dosyanın üretildiğini görmeniz gerekir:

    Mongoexport çağrısının ekran görüntüsü.

  2. Azure Cosmos DB'ye içeri aktarmak edx.json için aynı terminali kullanabilirsiniz. Linux makinesinde çalıştırıyorsanız mongoimport ,

    mongoimport --host HOST:PORT -u USERNAME -p PASSWORD --db edx --collection importedQuery --ssl --type json --writeConcern="{w:0}" --file edx.json
    

    Windows'da yürütülebilir dosya olacaktır mongoimport.exe. HOST, PORT, USERNAME ve PASSWORD , daha önce topladığınız Azure Cosmos DB kimlik bilgilerine göre doldurulmalıdır.

  3. Mongoimport'tan terminal çıkışını izleyin. Geçiş durumuyla ilgili güncelleştirmeleri içeren terminale metin satırları yazdırdığını görmeniz gerekir:

    Mongoimport çağrısının ekran görüntüsü.

  4. Son olarak, geçişin başarılı olduğunu doğrulamak için Azure Cosmos DB'yi inceleyin. Azure Cosmos DB portalını açın ve Veri Gezgini gidin. importedQuery koleksiyonuna sahip bir edx veritabanının oluşturulduğunu (1) ve (2) yalnızca bir veri alt kümesini dışarı aktardıysanız importedQuery yalnızca istenen veri alt kümesiyle eşleşen belgeleri içermelidir. Aşağıdaki örnekte filtreyle yalnızca bir belge eşleşti {"field1":"value1"}:

    Azure Cosmos DB veri doğrulama ekran görüntüsü.

mongodump/mongorestore

  1. MongoDB örneğinizin BSON veri dökümünü oluşturmak için MongoDB örnek makinesinde bir terminal açın. Bu bir Linux makinesiyse,

    mongodump --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection query --ssl --out edx-dump
    

    HOST, PORT, USERNAME ve PASSWORD , mevcut MongoDB veritabanı örneğinizin özelliklerine göre doldurulmalıdır. Bir edx-dump dizinin üretildiğini ve dizin yapısının edx-dump kaynak MongoDB örneğinizin kaynak hiyerarşisini (veritabanı ve koleksiyon yapısı) yeniden oluşturduğunu görmeniz gerekir. Her koleksiyon bir BSON dosyasıyla temsil edilir:

    Mongodump çağrısının ekran görüntüsü.

  2. içeriğini edx-dump Azure Cosmos DB'ye geri yüklemek için aynı terminali kullanabilirsiniz. Linux makinesinde çalıştırıyorsanız mongorestore ,

    mongorestore --host HOST:PORT --authenticationDatabase admin -u USERNAME -p PASSWORD --db edx --collection importedQuery --writeConcern="{w:0}" --ssl edx-dump/edx/query.bson
    

    Windows'da yürütülebilir dosya olacaktır mongorestore.exe. HOST, PORT, USERNAME ve PASSWORD , daha önce topladığınız Azure Cosmos DB kimlik bilgilerine göre doldurulmalıdır.

  3. mongorestore'dan terminal çıkışını izleyin. Geçiş durumunda terminal güncelleştirmesine satır yazdırdığını görmeniz gerekir:

    mongorestore çağrısının ekran görüntüsü.

  4. Son olarak, geçişin başarılı olduğunu doğrulamak için Azure Cosmos DB'yi inceleyin. Azure Cosmos DB portalını açın ve Veri Gezgini gidin. importedQuery koleksiyonuna sahip bir edx veritabanının oluşturulduğunu ve (2) içeri aktarılanQuery'nin kaynak koleksiyondaki veri kümesinin tamamını içermesi gerektiğini görmeniz gerekir:

    Azure Cosmos DB mongorestore verilerini doğrulama işleminin ekran görüntüsü.

Geçiş sonrası iyileştirme

MongoDB veritabanında depolanan verileri MongoDB için Azure Cosmos DB API'sine geçirdikten sonra Azure Cosmos DB'ye bağlanabilir ve verileri yönetebilirsiniz. Ayrıca, dizin oluşturma ilkesini iyileştirme, varsayılan tutarlılık düzeyini güncelleştirme veya Azure Cosmos DB hesabınız için genel dağıtımı yapılandırma gibi diğer geçiş sonrası iyileştirme adımlarını da gerçekleştirebilirsiniz. Daha fazla bilgi için Geçiş sonrası iyileştirme makalesine bakın.

Ek kaynaklar

Sonraki adımlar