Öğretici: verilerinizi bir Cassandra API hesabına geçirin

Uygulama hedefı: Cassandra API

Bir geliştirici olarak, şirket içinde veya bulutta çalışan mevcut Cassandra iş yüklerine sahip olabilirsiniz ve bunları Azure 'a geçirmek isteyebilirsiniz. bu tür iş yüklerini Azure Cosmos DB bir Cassandra API hesabına geçirebilirsiniz. bu öğretici, Apache cassandra verilerinin Azure Cosmos DB Cassandra API hesaba geçirilmesi için kullanılabilecek farklı seçeneklere ilişkin yönergeler sağlar.

Bu öğretici aşağıdaki görevleri kapsar:

  • Geçiş planlaması
  • Geçiş önkoşulları
  • Komutunu kullanarak verileri geçirme cqlsh COPY
  • Spark'ı kullanarak veri geçirme

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Geçiş önkoşulları

  • Verimlilik Ihtiyaçlarınızı tahmin edin: Azure Cosmos DB Cassandra API hesabına veri geçirmeden önce, iş yükünüzün işleme ihtiyaçlarını tahmin etmeniz gerekir. Genel olarak, CRUD işlemleri için gereken ortalama aktarım hızı ile başlayın ve ardından, ayıklamayı Ayıkla Load veya çıkmanız gerekirse işlemleri için gereken ek aktarım hızını ekleyin. Geçişi planlamak için şu ayrıntılara ihtiyacınız vardır:

    • Mevcut veri boyutu veya tahmini veri boyutu: Minimum veritabanı boyutunu ve aktarım hızı gereksinimini tanımlar. Yeni bir uygulama için veri boyutu tahmin ediyorsanız, verilerin satırlar arasında eşit bir şekilde dağıtıldığını varsayabilir ve değeri veri boyutuyla çarparak tahmin edebilirsiniz.

    • Gerekli aktarım hızı: Okuma (sorgu/Get) ve yazma (güncelleştirme/silme/ekleme) işlemlerinin yaklaşık aktarım hızı. Bu değer, sabit durum veri boyutuyla birlikte gerekli istek birimlerini hesaplamak için gereklidir.

    • şema: aracılığıyla mevcut cassandra kümenize Bağlan cqlsh ve şemayı cassandra 'dan dışarı aktarın:

      cqlsh [IP] "-e DESC SCHEMA" > orig_schema.cql
      

      mevcut iş yükünüzün gereksinimlerini tanımladıktan sonra, toplanan verimlilik gereksinimlerine göre Azure Cosmos DB bir hesap, veritabanı ve kapsayıcılar oluşturun.

    • Bir işlem IÇIN ru ücreti belirleme: Cassandra API tarafından desteklenen SDK 'Lardan birini kullanarak RUs 'yi belirleyebilirsiniz. Bu örnekte .NET sürümünün RU ücretleri gösterilmektedir.

      var tableInsertStatement = table.Insert(sampleEntity);
      var insertResult = await tableInsertStatement.ExecuteAsync();
      
      foreach (string key in insertResult.Info.IncomingPayload)
        {
           byte[] valueInBytes = customPayload[key];
           double value = Encoding.UTF8.GetString(valueInBytes);
           Console.WriteLine($"CustomPayload:  {key}: {value}");
        }
      
  • Gerekli aktarım hızını ayırma Gereksinimleriniz arttıkça Azure Cosmos DB depolamayı ve aktarım hızını otomatik olarak ölçeklendirilebilir. Aktarım hızı gereksinimlerinizi tahmin etmek için Azure Cosmos DB istek birimi hesaplayıcısını kullanabilirsiniz.

  • Cassandra API hesapta tablo oluşturun: Veri geçirmeye başlamadan önce, tüm tablolarınızın Azure portal veya ' den önceden oluşturulmasını önyükleyebilirsiniz cqlsh . veritabanı düzeyinde aktarım hızı olan bir Azure Cosmos DB hesabına geçiş yapıyorsanız, kapsayıcıları oluştururken bir bölüm anahtarı sağladığınızdan emin olun.

  • Aktarım hızını artırma: Veri geçişinizin süresi, Azure Cosmos DB'deki tablolar için sağladığınız aktarım hızı miktarına bağlıdır. Geçiş süresince aktarım hızını artırın. Daha yüksek aktarım hızı ile, hız sınırlamayı önleyebilir ve daha kısa sürede geçişi tamamlayabilirsiniz. Geçişi tamamladıktan sonra maliyet tasarrufu sağlamak için aktarım hızını azaltın. ayrıca, kaynak veritabanınız ile aynı bölgede Azure Cosmos DB hesabınızın olması önerilir.

  • TLS 'Yi etkinleştir: Azure Cosmos DB katı güvenlik gereksinimleri ve standartları vardır. Hesabınızla etkileşim kurarken TLS ' i etkinleştirdiğinizden emin olun. CQL 'i SSH ile birlikte kullandığınızda TLS bilgilerini sağlama seçeneğiniz vardır.

Verileri geçirme seçenekleri

mevcut cassandra iş yüklerinden verileri cqlsh COPY , komutunu kullanarak veya Spark kullanarak Azure Cosmos DB taşıyabilirsiniz.

Csqlsh COPY komutunu kullanarak verileri geçirme

yerel verileri Azure Cosmos DB Cassandra API hesabına kopyalamak için cql COPY komutunu kullanın.

  1. CSV dosyanızın doğru dosya yapısını içerdiğinden emin olmak için COPY TO komutunu kullanarak doğrudan kaynak Cassandra tabloınızdan bir CSV dosyasına veri aktarın (Cush 'in uygun kimlik bilgilerini kullanarak kaynak tabloya bağlı olduğundan emin olun):

    COPY exampleks.tablename TO 'data.csv' WITH HEADER = TRUE;   
    
  2. Şimdi Cassandra API hesabınızın bağlantı dizesi bilgilerini alın:

    • Azure portaloturum açın ve Azure Cosmos DB hesabınıza gidin.

    • Bağlantı dizesi bölmesini açın. Buradan Cassandra API hesabınıza bağlanmak için ihtiyacınız olan tüm bilgileri görürsünüz cqlsh .

  3. cqlshPortalda bağlantı bilgilerini kullanarak oturum açın.

  4. Öğesini CQL COPY FROM kopyalamak için komutunu kullanın data.csv (hala yüklü olduğu Kullanıcı kök dizininde bulunur cqlsh ):

    COPY exampleks.tablename FROM 'data.csv' WITH HEADER = TRUE;
    

Önemli

CSQLSH KOPYASıNıN yalnızca açık kaynaklı Apache Cassandra sürümü destekleniyor. cönsh 'in datastax Enterprise (do) sürümleri hatalarla karşılaşıyor olabilir.

Spark'ı kullanarak veri geçirme

Spark ile Cassandra API hesabına veri geçirmek için aşağıdaki adımları kullanın:

  1. Azure Databricks kümesi veya Azure HDInsight kümesisağlayın.

  2. Verileri hedef Cassandra API uç noktaya taşıyın. Azure Databricks ile geçiş için bu nasıl yapılır kılavuzuna bakın.

Azure sanal makinelerinde veya başka bir bulutta mevcut bir kümede bulunan verileriniz varsa Spark işleri kullanılarak verilerin geçirilmesi önerilen bir seçenektir. Bunu yapmak için Spark 'ı tek seferlik veya düzenli alma için bir aracı olarak ayarlamanız gerekir. Bu geçişi, şirket içi ortamınız ile Azure arasında Azure ExpressRoute bağlantısı kullanarak hızlandırabilirsiniz.

Canlı geçiş

Yerel Apache Cassandra kümesinden sıfır kesinti süresi gerekli olduğunda, geçmiş verileri geçirmek için çift yazmaları ve ayrı bir toplu veri yükünü yapılandırmanızı öneririz. Bu düzenin, en az sayıda uygulama kodu değişikliğine izin vermek üzere açık kaynaklı bir Çift yazma proxy 'si sunarak daha basit bir şekilde uygulanması yaptık. Çift yazma ara sunucusunu kullanarak dinamik geçiş hakkındaki nasıl yapılır makalemize göz atın ve bu düzenin uygulanması hakkında daha fazla ayrıntı için Apache Spark.

Kaynakları temizleme

artık gerekli olmadığında, kaynak grubunu, Azure Cosmos DB hesabını ve tüm ilgili kaynakları silebilirsiniz. Bunu yapmak için, sanal makine için kaynak grubunu seçin, Sil' i seçin ve ardından silinecek kaynak grubunun adını onaylayın.

Sonraki adımlar

bu öğreticide, Azure Cosmos DB bir Cassandra API hesabına verilerinizi nasıl geçirebileceğiniz öğrendiniz. artık Azure Cosmos DB diğer kavramlar hakkında bilgi edinebilirsiniz: