MongoDB'den MongoDB için Azure Cosmos DB'ye veri geçişleri için ön geçiş adımları

ŞUNLAR IÇIN GEÇERLIDIR: MongoDB

Önemli

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

Bu MongoDB geçiş öncesi kılavuzu, MongoDB geçişi serisinin bir parçasıdır. Kritik MongoDB geçiş adımları, bu kılavuzda gösterildiği gibi geçiş öncesi, geçiş ve geçiş sonrası adımlarıdır.

Diagram of the migration steps from pre to post migration.

Geçiş öncesi genel bakış

Herhangi bir veriyi taşımadan önce geçişiniz hakkında belirli ön planlama ve karar alma işlemleri gerçekleştirmek kritik önem taşır. Bu ilk karar alma işlemi "geçiş öncesi" işlemidir.

Geçiş öncesi hedefiniz:

  1. Azure Cosmos DB'yi uygulamanızın gereksinimlerini karşılayacak şekilde ayarladığınızdan emin olun ve
  2. Geçişi nasıl yürütürken planlayın.

Kapsamlı bir geçiş öncesi işlemi gerçekleştirmek için bu adımları izleyin

  1. Mevcut MongoDB kaynaklarınızı keşfedin ve mevcut MongoDB kaynaklarınızın veri geçişi için hazır olma durumunu değerlendirme
  2. Mevcut MongoDB kaynaklarınızı yeni Azure Cosmos DB kaynaklarıyla eşleme
  3. Tam ölçekli veri geçişini başlatmadan önce geçiş sürecinin lojistığını uçtan uca planlayın

Ardından geçiş öncesi planınıza uygun olarak geçiş işleminizi yürütebilirsiniz.

Son olarak, geçiş sonrası kritik kesme ve iyileştirme adımlarını gerçekleştirin.

Yukarıdaki adımların tümü geçişin başarılı olmasını sağlamak için kritik öneme sahiptir.

Geçişi planlarken, mümkün olduğunda kaynak başına düzeyinde planlama yapmanızı öneririz.

Geçiş öncesi değerlendirme

Geçiş öncesi ilk adım, mevcut MongoDB kaynaklarınızı bulmak ve kaynaklarınızın geçiş için hazır olup olmadığını değerlendirmektir.

Bulma, MongoDB veri varlığınızdaki mevcut kaynakların (veritabanları veya koleksiyonlar) kapsamlı bir listesini oluşturmayı içerir.

Değerlendirme, desteklenen özellikleri ve söz dizimini kullanıp kullanmadığınızı bulmayı içerir. Ayrıca sınırlara ve kotalara bağlı olduğunuzdan emin olunmasını da içerir. Bu aşamanın amacı, varsa uyumsuzlukların ve uyarıların bir listesini oluşturmaktır. Değerlendirme sonuçlarını aldıktan sonra, geçiş planlamasının geri kalanında bulguları ele almayı deneyebilirsiniz.

Geçiş öncesi değerlendirmeyi tamamlamanın 3 yolu vardır. MongoDB için Azure Cosmos DB Geçişi uzantısını kullanmanızı öneririz.

MongoDB uzantısı için Azure Cosmos DB Geçişi

Azure Data Studio'daki MongoDB için Azure Cosmos DB Geçişi uzantısı , MongoDB için Azure Cosmos DB'ye geçiş için MongoDB iş yükünü değerlendirmenize yardımcı olur. İş yükünüzde uçtan uca bir değerlendirme çalıştırmak ve Azure Cosmos DB'de iş yüklerinizi sorunsuz bir şekilde geçirmek için gerçekleştirmeniz gereken eylemleri bulmak için bu uzantıyı kullanabilirsiniz. MongoDB uç noktasının değerlendirmesi sırasında uzantı, bulunan tüm kaynakları raporlar.

Dekont

Desteklenen özellikleri ve söz dizimini, Azure Cosmos DB sınırlarını ve kotalarını ayrıntılı olarak gözden geçirmenizi ve gerçek geçişten önce kavram kanıtı gerçekleştirmenizi öneririz.

El ile bulma (eski)

Alternatif olarak, bir veri varlığı geçiş elektronik tablosu oluşturabilirsiniz. Bu elektronik tablonun amacı, üretkenliğinizi artırmak ve uçtan uca geçişi planlamanıza yardımcı olmak ve geçiş işlemi boyunca bir izleme belgesi olarak kullanmanıza yardımcı olmaktır.

  • Bu sayfa, MongoDB veri varlığınızdaki mevcut kaynakların (veritabanları veya koleksiyonlar) kapsamlı bir listesini içerir.
  • Elektronik tablo, liste biçiminde veri varlığı kaynaklarınızın kaydı olarak yapılandırılmalıdır.
  • Her satır bir kaynağa (veritabanı veya koleksiyon) karşılık gelir.
  • Her sütun kaynağın bir özelliğine karşılık gelir; sütun olarak en az ad ve veri boyutu (GB) ile başlayın.
  • Bu kılavuzda ilerledikçe, bu elektronik tabloyu uçtan uca geçiş planlamanız için bir izleme belgesi haline getirerek gerektiğinde sütunlar eklersiniz.

Kaynakları bulmak için kullanabileceğiniz bazı araçlar şunlardır:

Elektronik tabloya gidin ve her koleksiyonu desteklenen özelliklerle ve söz dizimleriyle ve Azure Cosmos DB sınırlarıyla kotalarıyla ayrıntılı olarak doğrulayın.

Veritabanı Geçiş Yardımcısı yardımcı programı (eski)

Dekont

Veritabanı Geçiş Yardımcısı, geçiş öncesi adımlarda size yardımcı olacak eski bir yardımcı programdır. Tüm geçiş öncesi adımlar için MongoDB için Azure Cosmos DB Geçişi uzantısını kullanmanızı öneririz.

Geçiş öncesi adımlarda size yardımcı olması için Veritabanı Geçiş Yardımcısı (DMA) yardımcı programını kullanabilirsiniz.

Geçiş öncesi eşleme

Bulma ve değerlendirme adımları tamamlandıktan sonra denklemin MongoDB tarafıyla işiniz biter. Şimdi denklemin Azure Cosmos DB tarafını planlama zamanı. Üretim Azure Cosmos DB kaynaklarınızı nasıl ayarlamayı ve yapılandırmayı planlıyorsunuz? Planlamanızı kaynak başına düzeyinde yapın; bu, planlama elektronik tablonuza aşağıdaki sütunları eklemeniz gerektiği anlamına gelir:

  • Azure Cosmos DB eşlemesi
  • Parça anahtarı
  • Veri modeli
  • Ayrılmış ve paylaşılan aktarım hızı karşılaştırması

Daha fazla ayrıntı aşağıdaki bölümlerde verilmiştir.

Kapasite planlaması

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

MongoDB için Azure Cosmos DB API'sini kullanırken dikkat edilmesi gerekenler

Azure Cosmos DB veri varlığınızı planlamadan önce aşağıdaki Azure Cosmos DB kavramlarını anladığınızdan emin olun:

  • Kapasite modeli: Azure Cosmos DB'deki veritabanı kapasitesi, aktarım hızı tabanlı bir modeli temel alır. Bu model, bir koleksiyonda saniye başına yürütülebilecek veritabanı işlemlerinin sayısını temsil eden bir birim olan saniye başına İstek Birimlerini temel alır. Bu kapasite bir veritabanı veya koleksiyon düzeyinde tahsis edilebilir ve bir ayırma modelinde veya otomatik ölçeklendirme sağlanan aktarım hızı kullanılarak sağlanabilir.
  • İstek Birimleri: Her veritabanı işleminin Azure Cosmos DB'de ilişkili bir İstek Birimleri (RU) maliyeti vardır. Yürütüldüğünde, istek birimleri belirli bir saniyedeki kullanılabilir istek birimleri düzeyinden çıkarılır. bir istek şu anda ayrılmış RU/sn'den daha fazla RU gerektiriyorsa, sorunu çözmek için iki seçenek vardır: RU sayısını artırın veya sonraki saniye başlayana kadar bekleyin ve işlemi yeniden deneyin.
  • Elastik kapasite: Belirli bir koleksiyon veya veritabanının kapasitesi istediğiniz zaman değişebilir. Bu esneklik, veritabanının iş yükünüzün aktarım hızı gereksinimlerine esnek bir şekilde uyum sağlamasına olanak tanır.
  • Otomatik parçalama: Azure Cosmos DB, yalnızca parça (veya bölüm anahtarı) gerektiren bir otomatik bölümleme sistemi sağlar. Otomatik bölümleme mekanizması tüm Azure Cosmos DB API'leri arasında paylaşılır ve sorunsuz veri ve yatay dağıtım aracılığıyla ölçeklendirmeye olanak tanır.

Azure Cosmos DB veri varlığını planlama

Hangi Azure Cosmos DB kaynaklarını oluşturduğunuzu öğrenin. Bu işlem, veri varlığı geçiş elektronik tablonuzda adım adım ilerleyip mevcut mongoDB kaynaklarını yeni bir Azure Cosmos DB kaynağıyla eşlemeyi gerektirir.

  • Her MongoDB veritabanının bir Azure Cosmos DB veritabanı haline geldiğini tahmin edin.
  • Her MongoDB koleksiyonunun bir Azure Cosmos DB koleksiyonuna dönüşdüğünü tahmin edin.
  • Azure Cosmos DB kaynaklarınız için bir adlandırma kuralı seçin. Veritabanlarının ve koleksiyonların yapısında herhangi bir değişiklik olmadığı sürece, aynı kaynak adlarının tutulması genellikle iyi bir seçimdir.
  • Azure Cosmos DB'de parçalı veya parçasız koleksiyonlar kullanıp kullanmadığınızı belirleyin. Parçalanmamış koleksiyon sınırı 20 GB'tır. Öte yandan parçalama, birçok iş yükünün performansı için kritik öneme sahip yatay ölçek elde etmeye yardımcı olur.
  • Parçalı koleksiyonlar kullanıyorsanız MongoDB koleksiyon parça anahtarınızın Azure Cosmos DB kapsayıcı bölüm anahtarınız olduğunu varsaymayın. Mevcut MongoDB veri modeli belge yapınızın Azure Cosmos DB'de kullandığınız modelle aynı olması gerektiğini varsaymayın.
    • Parça anahtarı, Azure Cosmos DB'nin ölçeklenebilirliğini ve performansını iyileştirmeye yönelik en önemli tek ayardır ve veri modelleme en önemli ikinci ayardır. Bu ayarların her ikisi de sabittir ve ayarlandıktan sonra değiştirilemez; bu nedenle, bunları planlama aşamasında iyileştirmek son derece önemlidir. Daha fazla bilgi için Sabit kararlar bölümündeki yönergeleri izleyin.
  • Azure Cosmos DB, eşlenmiş koleksiyonlar gibi bazı MongoDB koleksiyon türlerini tanımaz. Bu kaynaklar için normal Azure Cosmos DB koleksiyonları oluşturmanız gerekir.
  • Azure Cosmos DB kendi iki koleksiyon türüne sahiptir: paylaşılan ve ayrılmış aktarım hızı. Paylaşılan ve ayrılmış aktarım hızı, planlama aşamasında alınması çok önemli olan bir diğer kritik ve sabit karardır. Daha fazla bilgi için Sabit kararlar bölümündeki yönergeleri izleyin.

Sabit kararlar

Azure Cosmos DB kaynağı oluşturduktan sonra aşağıdaki Azure Cosmos DB yapılandırma seçenekleri değiştirilemez veya geri alınamaz; Bu nedenle, geçiş öncesi planlama sırasında geçişleri başlatmadan önce bu yapılandırma seçimlerini almak önemlidir:

  • En iyi parça anahtarını seçmek için Azure Cosmos DB'de Bölümleme ve yatay ölçeklendirme bölümüne bakın. Parçalama olarak da bilinen bölümleme, verileri geçirmeden önce dikkat edilmesi gereken önemli noktalardandır. Azure Cosmos DB, depolama ve aktarım hızı gereksinimlerini karşılamak üzere bir veritabanındaki kapasiteyi artırmak için tam olarak yönetilen bölümleme kullanır. Bu özelliğin, yönlendirme sunucularını barındırması veya yapılandırması gerekmez.
    • Benzer şekilde, bölümleme özelliği otomatik olarak kapasite ekler ve verileri buna göre yeniden dengeler. Verileriniz için doğru bölüm anahtarını seçme hakkında daha fazla bilgi için bkz . Bölüm anahtarı seçme.
  • Veri modeli seçmek için Azure Cosmos DB'de Veri modelleme kılavuzunu izleyin.
  • Geçiş yaptığınız her kaynak için ayrılmış ve paylaşılan aktarım hızı arasında seçim yapmak için Azure Cosmos DB'de sağlanan aktarım hızı maliyetini iyileştirme bölümünü izleyin
  • Gerçek dünya örneği kullanarak Azure Cosmos DB'de verileri modelleme ve bölümleme, karar verme sürecinizde size yardımcı olacak gerçek dünya parçalama ve veri modelleme örneğidir

Sahip olma maliyeti

Aktarım hızını tahmin etme

  • Azure Cosmos DB'de aktarım hızı önceden sağlanır ve saniye başına İstek Birimleri (RU) cinsinden ölçülür. VM'lerin veya şirket içi sunucuların aksine, RU'ların ölçeğini istediğiniz zaman büyütmek ve küçültmek kolaydır. Sağlanan RU sayısını anında değiştirebilirsiniz. Daha fazla bilgi için bkz . Azure Cosmos DB'de birim isteme.

  • Kullanmanız gereken İstek Birimi sayısını belirlemek için Azure Cosmos DB kapasite hesaplayıcısını kullanabilirsiniz. Bu sayı veritabanı hesabı yapılandırmanıza, veri miktarınıza, belge boyutuna ve saniye başına gerekli okuma ve yazma işlemlerine dayanır.

  • Gerekli RU sayısını etkileyen önemli faktörler şunlardır:

    • Belge boyutu: Bir öğenin/belgenin boyutu arttıkça, öğeyi/belgeyi okumak veya yazmak için kullanılan RU sayısı da artar.

    • Belge özellik sayısı:Belgeyi oluşturmak veya güncelleştirmek için kullanılan RU sayısı, özelliklerinin sayısı, karmaşıklığı ve uzunluğuyla ilgilidir. Dizine alınan özelliklerin sayısını sınırlayarak yazma işlemleri için istek birimi tüketimini azaltabilirsiniz.

    • Sorgu desenleri: Sorgunun karmaşıklığı, sorgunun kaç istek birimi tükettiğine etki eder.

  • Sorguların maliyetini anlamanın en iyi yolu Azure Cosmos DB'deki örnek verileri kullanmak ve kullanılan RU sayısını veren istek ücretini almak için komutunu kullanarak getLastRequestStastistics MongoDB Kabuğu'ndan örnek sorgular çalıştırmaktır:

    db.runCommand({getLastRequestStatistics: 1})
    

    *Bu komut aşağıdaki örneğe benzer bir JSON belgesi oluşturur:

    {
      "_t": "GetRequestStatisticsResponse",
      "ok": 1,
      "CommandName": "find",
      "RequestCharge": 10.1,
      "RequestDurationInMilliSeconds": 7.2
    }
    
  • Tanılama ayarlarını kullanarak Azure Cosmos DB'de yürütülen sorguların sıklığını ve desenlerini de anlayabilirsiniz. Tanılama günlüklerinden elde edilecek sonuçlar depolama hesabına, Event Hubs örneğine veya Azure Log Analytics'e gönderilebilir.

Geçiş öncesi lojistik planlaması

Son olarak, mevcut veri varlığınızı ve yeni Azure Cosmos DB veri varlığınızın tasarımını gördüğünüze göre, geçiş işleminizi uçtan uca yürütmeyi planlamaya hazırsınız. Bu bölümde yer alan lojistik boyutları yakalamak için elektronik tablonuza sütunlar ekleyerek planlamanızı bir kez daha kaynak düzeyinde yapın.

Yürütme lojistik

  • Mevcut her kaynağı MongoDB'den Azure Cosmos DB'ye geçirme sorumluluğunu atayın. Geçişinizin tamamlanmasına yol açmak için ekip kaynaklarınızı nasıl uygulayacağınız size bağlı. Küçük geçişler için tek bir ekibin geçişin tamamını başlatmasını ve ilerleme durumunu izlemesini sağlayabilirsiniz. Daha büyük geçişler için, bu kaynağın geçirilmesi ve izlenmesi için kaynak başına ekip üyelerine sorumluluk atayabilirsiniz.

  • Kaynaklarınızı geçirme sorumluluğunu atadıktan sonra, şimdi geçiş için doğru geçiş araçlarını seçmeniz gerekir. Küçük geçişler için mongoDB yerel aracı veya Azure DMS gibi tek bir geçiş aracını kullanarak tüm kaynaklarınızı tek seferde geçirebilirsiniz. Daha büyük geçişler veya özel gereksinimleri olan geçişler için, kaynak başına ayrıntı düzeyinde geçiş araçlarını seçmek isteyebilirsiniz.

    • Hangi geçiş araçlarını kullanacağınızı planlamadan önce, kullanılabilir seçenekler hakkında bilgi sahibi olmanız önerilir. Azure Cosmos DB'nin MongoDB API'sine yönelik Azure Veritabanı Geçiş Hizmeti, tam olarak yönetilen bir barındırma platformu, geçiş izleme seçenekleri ve otomatik azaltma işlemesi sağlayarak veri geçişini basitleştiren bir mekanizma sağlar. Seçeneklerin tam listesi aşağıdadır:

      Geçiş türü Çözüm Dikkat edilmesi gerekenler
      Çevrimiçi Azure Veritabanı Geçiş Hizmeti • Azure Cosmos DB için toplu yürütücü kitaplığını kullanır
      • Büyük veri kümeleri için uygundur ve canlı değişikliklerin çoğaltılmasıyla ilgilenir
      • Yalnızca diğer MongoDB kaynaklarıyla çalışır
      Çevrimdışı Azure Veritabanı Geçiş Hizmeti • Azure Cosmos DB için toplu yürütücü kitaplığını kullanır
      • Büyük veri kümeleri için uygundur ve canlı değişikliklerin çoğaltılmasıyla ilgilenir
      • Yalnızca diğer MongoDB kaynaklarıyla çalışır
      Çevrimdışı Azure Data Factory • Azure Cosmos DB için toplu yürütücü kitaplığını kullanır
      • Büyük veri kümeleri için uygundur
      • Kurulumu kolay ve birden çok kaynağı destekler
      • Denetim noktası olmaması, geçiş sırasındaki herhangi bir sorunun tüm geçiş işleminin yeniden başlatılmasını gerektireceği anlamına gelir
      • Teslim edilemeyen bir kuyruk olmaması, birkaç hatalı dosya tüm geçiş işlemini durdurabileceği anlamına gelir
      • Belirli veri kaynakları için okuma aktarım hızını artırmak için özel kod gerekir
      Çevrimdışı Mevcut Mongo Araçları (mongodump, mongorestore, Studio3T) • Kurulumu ve tümleştirmesi kolay
      • Azaltmalar için özel işlemeye ihtiyaç duyar
      Çevrimdışı/çevrimiçi Azure Databricks ve Spark • Geçiş hızı ve veri dönüşümü için tam denetim
      • Özel kodlama gerektirir
    • Kaynağınız çevrimdışı geçişi tolere edebilirse, uygun geçiş aracını seçmek için bu diyagramı kullanın:

      Diagram of using offline migration tools based on the size of the tool.

    • Kaynağınız çevrimiçi geçiş gerektiriyorsa, uygun geçiş aracını seçmek için bu diyagramı kullanın:

      Diagram of using online migration tools based on preference for turnkey or custom solutions.

    • Geçiş çözümlerine genel bakış ve tanıtım videosunu izleyin.

  • Her kaynak için geçiş araçlarını seçtikten sonra, bir sonraki adım geçirdiğiniz kaynakların önceliğini belirlemedir. İyi öncelik belirleme, geçişinizin zamanlamaya uygun kalmasına yardımcı olabilir. Taşınacak en fazla zamanı gereken kaynakları geçirmeyi önceliklendirmek iyi bir uygulamadır; önce bu kaynakları geçirmek en büyük ilerlemeyi tamamlamaya getirir. Ayrıca, bu zaman alan geçişler genellikle daha fazla veri içerdiğinden, geçiş aracı için daha yoğun kaynak kullanır ve bu nedenle geçiş işlem hattınızla ilgili sorunları daha erken kullanıma sunma olasılığı daha yüksektir. Bu uygulama, geçiş işlem hattınızdaki herhangi bir sorun nedeniyle zamanlamanızın kayma olasılığını en aza indirir.

  • Geçiş başladıktan sonra ilerleme durumunu nasıl izlediğinizi planlayın. Veri geçişi çalışmanızı bir ekip arasında koordine ediyorsanız, yüksek öncelikli geçişlerin nasıl gittiğine ilişkin kapsamlı bir görünüm elde etmek için düzenli bir ekip eşitlemesi temposu da planlayın.

Desteklenen geçiş senaryoları

MongoDB geçiş aracının en iyi seçimi, geçiş senaryonuza bağlıdır.

Geçiş türleri

Her geçiş senaryosu için uyumlu araçların listesi aşağıdadır:

Kaynak Hedef İşlem önerisi
• MongoDB şirket içi kümesi
• IaaS VM kümesinde MongoDB
• MongoDB Atlas kümesi - Çevrimdışı
Azure Cosmos DB Mongo API'si • <10 GB veri: MongoDB yerel araçları
• <1 TB veri: Azure DMS
• >1 TB veri: Spark
• MongoDB şirket içi kümesi
• IaaS VM kümesinde MongoDB
• MongoDB Atlas kümesi - Çevrimiçi
Azure Cosmos DB Mongo API'si • <1 TB veri: Azure DMS
• >1 TB veri: Spark + Mongo Değişim Akışı
• Geçiş sırasında şemayı değiştirmeniz gerekiyor
Yukarıda belirtilen araçlardan daha fazla esneklik gerekiyor
Azure Cosmos DB Mongo API'si • ADF, DMS'den daha esnektir, geçiş sırasında şema değişikliklerini destekler ve en fazla kaynak/hedef birleşimini destekler
• DMS ölçek açısından daha iyidir (örn. daha hızlı geçiş)
• JSON dosyası Azure Cosmos DB Mongo API'si • MongoDB yerel araçları özellikle mongoimport
• CSV dosyası Azure Cosmos DB Mongo API'si • MongoDB yerel araçları özellikle mongoimport
• BSON dosyası Azure Cosmos DB Mongo API'si • MongoDB yerel araçları özellikle mongorestore

MongoDB sürümleri için araç desteği

Belirli bir MongoDB sürümünden geçiş yaptığınız göz önünde bulundurulduğunda, her sürüm için desteklenen araçlar buraya dahildir:

MongoDB kaynak sürümü MongoDB için Azure Cosmos DB hedef sürümü Desteklenen araçlar Desteklenmeyen araçlar
<2.x, >4.0 3.2, 3.6, 4.0 MongoDB yerel araçları, Spark DMS, ADF
3.2, 3.6, 4.0 3.2, 3.6, 4.0 MongoDB yerel araçları, DMS, ADF, Spark None

Geçiş sonrası

Geçiş öncesi aşamasında, uygulama geçişi ve geçiş sonrası iyileştirme adımlarını planlamak için biraz zaman ayırın.

  • Geçiş sonrası aşamasında, mevcut MongoDB veri varlığınız yerine Azure Cosmos DB kullanmak için uygulamanızın tam geçişini yürütürsiniz.
  • Dizin oluşturma, genel dağıtım, tutarlılık ve diğer değiştirilebilir Azure Cosmos DB özelliklerini kaynak düzeyinde planlamak için elimizden geleni yapın. Ancak, bu Azure Cosmos DB yapılandırma ayarları daha sonra değiştirilebilir, bu nedenle bu ayarlarda daha sonra ayarlamalar yapmayı bekleyebilirsiniz. Geçiş sonrasında bu değiştirilebilir yapılandırmaları uygularsınız.
  • Geçiş sonrası kılavuzu için bkz . MongoDB için Azure Cosmos DB API'sini kullanırken geçiş sonrası iyileştirme adımları.

Sonraki adımlar