Öğ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.
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.
- Bu bağlantıdan MongoDB yerel araçlarını indirin ve yükleyin.
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
Devre Dışı ise aşağıda gösterildiği gibi etkinleştirmenizi öneririz
Uygun MongoDB yerel aracını seçin
- 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:
Azure portalını açın
MongoDB için Azure Cosmos DB hesabınıza gidin
Sol gezinti bölmesinde Bağlantı Dizesi dikey penceresini seçtiğinizde aşağıdakine benzer bir ekran görmeniz gerekir:
- 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
- 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
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:Azure Cosmos DB'ye içeri aktarmak
edx.json
için aynı terminali kullanabilirsiniz. Linux makinesinde çalıştırıyorsanızmongoimport
,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.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:
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"}
:
mongodump/mongorestore
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ınedx-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:içeriğini
edx-dump
Azure Cosmos DB'ye geri yüklemek için aynı terminali kullanabilirsiniz. Linux makinesinde çalıştırıyorsanızmongorestore
,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.mongorestore'dan terminal çıkışını izleyin. Geçiş durumunda terminal güncelleştirmesine satır yazdırdığını görmeniz gerekir:
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:
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
- Azure Cosmos DB hizmet bilgileri
- MongoDB veritabanı araçları belgeleri
- Azure Cosmos DB'ye geçiş için kapasite planlaması yapmaya mı çalışıyorsunuz?
- Tek bildiğiniz mevcut veritabanı kümenizdeki sanal çekirdek ve sunucu sayısıysa, sanal çekirdekleri veya vCPU'ları kullanarak istek birimlerini tahmin etme hakkında bilgi edinin
- Geçerli veritabanı iş yükünüz için tipik istek oranlarını biliyorsanız Azure Cosmos DB kapasite planlayıcısı kullanarak istek birimlerini tahmin etme hakkında bilgi edinin
Sonraki adımlar
- Microsoft Veritabanı Geçiş Kılavuzu'ndaki ek senaryolar için geçiş kılavuzunu gözden geçirin.