Öğ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
cqlshCOPY - 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
cqlshve şemayı cassandra 'dan dışarı aktarın:cqlsh [IP] "-e DESC SCHEMA" > orig_schema.cqlmevcut 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.
CSV dosyanızın doğru dosya yapısını içerdiğinden emin olmak için
COPY TOkomutunu 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;Ş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.
cqlshPortalda bağlantı bilgilerini kullanarak oturum açın.Öğesini
CQLCOPY FROMkopyalamak için komutunu kullanındata.csv(hala yüklü olduğu Kullanıcı kök dizininde bulunurcqlsh):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:
Azure Databricks kümesi veya Azure HDInsight kümesisağlayın.
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: