Apache Cassandra için Azure Cosmos DB hakkında sık sorulan sorular

ŞUNLAR IÇIN GEÇERLIDIR: Cassandra

Cassandra için Azure Cosmos DB ile Apache Cassandra arasındaki temel farklar nelerdir?

Cassandra hizmeti için API ile Apache Cassandra arasındaki bazı önemli farklar şunlardır:

  • Apache Cassandra, bölüm anahtarı boyutu üzerinde 100 MB sınırı önerir. Azure Cosmos DB için Cassandra API'si bölüm başına 20 GB'a kadar izin verir.
  • Apache Cassandra, dayanıklı işlemeleri devre dışı bırakmanıza olanak tanır. İşleme günlüğüne yazmayı atlayabilir ve doğrudan bellek içi veri yapısına gidebilirsiniz. Bu, bellek içi veri yapıları diskteki SSTable'lara boşaltilmeden önce düğüm kesintiye uğraması durumunda veri kaybına neden olabilir. Azure Cosmos DB, veri kaybını önlemeye yardımcı olmak için her zaman dayanıklı işlemeler yapar.
  • İş yükünde birçok değişiklik veya silme işlemi varsa Apache Cassandra performansın azaldığını görebilir. Bunun nedeni, okuma iş yükünün en son verileri getirmek için atlanması gereken kaldırıldı taşlarıdır. İş yükünde çok fazla değişiklik veya silme işlemi olduğunda Cassandra API'sinde okuma performansı azalmaz.
  • Yüksek değişimli iş yüklerinin senaryoları sırasında, disk üzerindeki SSTable'ları birleştirmek için sıkıştırmanın çalıştırılması gerekir. (Apache Cassandra'nın yazma işlemleri yalnızca eklendiğinden birleştirme gerekir. Birden çok güncelleştirme, düzenli aralıklarla birleştirilmesi gereken tek tek SSTable girdileri olarak depolanır). Bu durum sıkıştırma sırasında okuma performansının düşmesine de neden olabilir. Bu performans etkisi Cassandra API'sinde gerçekleşmez çünkü API sıkıştırma uygulamaz.
  • Apache Cassandra ile çoğaltma faktörü olarak 1 ayarlamak mümkündür. Ancak, veri içeren tek düğüm kapanırsa düşük kullanılabilirliğe yol açar. Azure Cosmos DB için Cassandra API'sinde her zaman 4 çoğaltma faktörü (çekirdek 3) olduğundan bu sorun değildir.
  • Apache Cassandra'da düğümlerin eklenmesi veya kaldırılması, yeni düğümde yüksek CPU kullanımıyla birlikte el ile müdahale gerektirirken, mevcut düğümler belirteç aralıklarından bazılarını yeni düğüme taşır. Bu durum, mevcut bir düğümün yetkisini alırken aynıdır. Ancak Cassandra API'sinin ölçeği hizmette veya uygulamada gözlemlenen herhangi bir sorun olmadan genişletildi.
  • Apache Cassandra'da olduğu gibi kümedeki her düğümde num_tokens ayarlamanız gerekmez. Azure Cosmos DB düğümleri ve belirteç aralıklarını tam olarak yönetir.
  • Cassandra API'si tam olarak yönetilir. Apache Cassandra'da kullanılan onarım ve yetkisini alma gibi komutlara ihtiyacınız yoktur.

Cassandra için API hangi protokol sürümünü destekler?

Azure Cosmos DB için Cassandra API'si Cassandra Sorgu Dili (CQL) m sürüm 3.x'i destekler. CQL uyumluluğu genel Apache Cassandra GitHub deposunu temel alır. Diğer protokolleri destekleme hakkında geri bildiriminiz varsa adresine askcosmosdbcassandra@microsoft.come-posta gönderin.

Tablo için aktarım hızı seçmek neden bir gereksinimdir?

Azure Cosmos DB, tabloyu oluşturduğunuz yere göre kapsayıcınız için varsayılan aktarım hızını ayarlar: Azure portalı veya CQL.

Azure Cosmos DB, işlemlerde üst sınırlarla birlikte performans ve gecikme süresi garantileri sağlar. Altyapı kiracının işlemlerinde idareyi zorlayabildiğinde bu garantiler mümkündür. Platform bu kapasiteyi ayırdığından ve işlem başarısını garanti ettiğinden aktarım hızının ayarlanması garanti edilen aktarım hızını ve gecikme süresini elde edersiniz. Uygulamanızın mevsimselliğinden yararlanmak ve maliyet tasarrufu sağlamak için aktarım hızını esnek bir şekilde değiştirebilirsiniz.

Aktarım hızı kavramı, Azure Cosmos DB'de İstek Birimleri makalesinde açıklanmıştır. Bir tablonun aktarım hızı, temel alınan fiziksel bölümler arasında eşit olarak dağıtılır.

CQL aracılığıyla oluşturulan bir tablonun aktarım hızı nedir?

Azure Cosmos DB, aktarım hızı sağlamak için para birimi olarak saniye başına İstek Birimleri (RU/sn) kullanır. CQL aracılığıyla oluşturulan tablolarda varsayılan olarak 400 RU bulunur. RU'ları Azure portalından değiştirebilirsiniz.

CQL

CREATE TABLE keyspaceName.tablename (user_id int PRIMARY KEY, lastname text) WITH cosmosdb_provisioned_throughput=1200

.NET

int provisionedThroughput = 400;
var simpleStatement = new SimpleStatement($"CREATE TABLE {keyspaceName}.{tableName} (user_id int PRIMARY KEY, lastname text)");
var outgoingPayload = new Dictionary<string, byte[]>();
outgoingPayload["cosmosdb_provisioned_throughput"] = Encoding.UTF8.GetBytes(provisionedThroughput.ToString());
simpleStatement.SetOutgoingPayload(outgoingPayload);

Aktarım hızı kullanıldığında ne olur?

Azure Cosmos DB, işlemlerde üst sınırlarla birlikte performans ve gecikme süresi garantileri sağlar. Altyapı kiracının işlemlerinde idareyi zorlayabildiğinde bu garantiler mümkündür. Platform bu kapasiteyi ayırdığından ve işlem başarısını garanti ettiğinden aktarım hızının ayarlanması garanti edilen aktarım hızını ve gecikme süresini elde edersiniz.

Bu kapasitenin üzerinden geçtiğinizde, kapasitenizin kullanıldığını gösteren aşağıdaki hata iletisini alırsınız:

0x1001 Aşırı Yüklendi: "İstek Oranı büyük" olduğundan istek işlenemiyor

Bu soruna hangi işlemlerin (ve birimlerinin) neden olduğunu görmek önemlidir. Azure portalında ölçümlerle sağlanan kapasitenin üzerinden giden tüketilen kapasite hakkında bir fikir edinebilirsiniz. Ardından kapasitenin temel alınan tüm bölümlerde neredeyse eşit şekilde tüketildiğinden emin olmanız gerekir. Bir bölümün aktarım hızının çoğunu tükettiği görürseniz iş yükünde dengesizlik olur.

Aktarım hızının bölümler arasında veya toplam olarak saatler içinde, günler içinde ve yedi günde bir nasıl kullanıldığını gösteren ölçümler kullanılabilir. Daha fazla bilgi için bkz . Azure Cosmos DB'de ölçümlerle izleme ve hata ayıklama.

Tanılama günlükleri Azure Cosmos DB tanılama günlüğü makalesinde açıklanmıştır.

Birincil anahtar, Azure Cosmos DB'nin bölüm anahtarı kavramıyla eşlenmiş mi?

Evet, bölüm anahtarı varlığı doğru konuma yerleştirmek için kullanılır. Azure Cosmos DB'de, fiziksel bir bölümde depolanan doğru mantıksal bölümü bulmak için kullanılır. Bölümleme kavramı, Azure Cosmos DB'de bölümleme ve ölçeklendirme makalesinde açıklanmıştır. Burada önemli olan mantıksal bölümün 20 GB sınırını aşmaması gerektiğidir.

Bir bölümün dolu olduğunu belirten bir bildirim alırsam ne olur?

Azure Cosmos DB, hizmet düzeyi sözleşmesine (SLA) dayalı bir sistemdir. Gecikme süresi, aktarım hızı, kullanılabilirlik ve tutarlılık garantileriyle sınırsız ölçek sağlar. Bu sınırsız depolama alanı, temel kavram olarak bölümleme kullanılarak verilerin yatay ölçeğini genişletmeyi temel alır. Bölümleme kavramı, Azure Cosmos DB'de bölümleme ve ölçeklendirme makalesinde açıklanmıştır.

Mantıksal bölüm başına varlık veya öğe sayısıyla ilgili 20 GB sınırına bağlı kalmalısınız. Uygulamanızın iyi ölçeklendirildiğinden emin olmak için, tüm bilgileri tek bir bölümde depolayıp sorgulayarak sık erişimli bölüm oluşturmamanızı öneririz. Bu hata yalnızca verileriniz çarpıtıldığında ortaya çıkabilir: başka bir ifadeyle, bir bölüm anahtarı için çok fazla veriniz (20 GB'tan fazla) vardır. Depolama portalını kullanarak veri dağıtımını bulabilirsiniz. Bu hatayı düzeltmenin yolu, tabloyu yeniden oluşturmak ve verilerin daha iyi dağıtılmasını sağlayan ayrıntılı bir birincil (bölüm anahtarı) seçmektir.

Cassandra için API'yi milyonlarca veya milyarlarca bölüm anahtarına sahip bir anahtar değer deposu olarak kullanabilir miyim?

Azure Cosmos DB, depolama alanının ölçeğini genişleterek sınırsız veri depolayabilir. Bu depolama, aktarım hızına göre bağımsızdır. Evet, doğru birincil/bölüm anahtarını belirterek anahtarları ve değerleri depolamak ve almak için Cassandra API'sini her zaman kullanabilirsiniz. Bu tek tek anahtarlar kendi mantıksal bölümlerine sahip olur ve sorunsuz bir fiziksel bölümün üzerinde durur.

Cassandra için API ile birden fazla tablo oluşturabilir miyim?

Evet, Cassandra api'siyle birden fazla tablo oluşturmak mümkündür. Bu tabloların her biri aktarım hızı ve depolama birimi olarak değerlendirilir.

Ardı ardına birden fazla tablo oluşturabilir miyim?

Azure Cosmos DB hem veri hem de denetim düzlemi etkinlikleri için kaynak tarafından yönetilen bir sistemdir. Koleksiyonlar ve tablolar gibi kapsayıcılar, belirli bir aktarım hızı kapasitesi için sağlanan çalışma zamanı varlıklarıdır. Bu kapsayıcıların hızla oluşturulması beklenen bir etkinlik değildir ve kısıtlanabilir. Tabloları hemen bırakan veya oluşturan testleriniz varsa, bunları boşluk bırakmayı deneyin.

Oluşturabildiğim en fazla tablo sayısı nedir?

Tablo sayısında fiziksel bir sınır yoktur. Her zamanki onlarca veya yüzlerce değil, oluşturulması gereken çok sayıda tablonuz varsa (toplam sabit boyutun 10 TB verinin üzerine çıktığı) adresine askcosmosdbcassandra@microsoft.come-posta gönderin.

Oluşturabildiğim en fazla anahtar alanı sayısı nedir?

Anahtar alanı sayısı meta veri kapsayıcıları olduğundan fiziksel bir sınır yoktur. Çok sayıda anahtar alanınız varsa adresine e-posta askcosmosdbcassandra@microsoft.comgönderin.

Normal bir tablodan başladıktan sonra birçok veri getirebilir miyim?

Evet. Tekdüzen dağıtılmış bölümler varsayarsak, depolama kapasitesi otomatik olarak yönetilir ve siz daha fazla veri gönderdiğinizde artar. Böylece, düğümleri yönetmeden ve sağlamadan ve daha fazlasını yapmadan ihtiyacınız olan kadar veriyi güvenle içeri aktarabilirsiniz. Ancak çok sayıda anlık veri büyümesi bekliyorsanız, daha düşük başlayıp hemen artırmak yerine beklenen aktarım hızını doğrudan sağlamak daha mantıklıdır.

API davranışını yapılandırmak için YAML dosya ayarlarını kullanabilir miyim?

Azure Cosmos DB için Cassandra API'si, işlemleri yürütmek için protokol düzeyinde uyumluluk sağlar. Yönetim, izleme ve yapılandırmanın karmaşıklığını gizler. Geliştirici/kullanıcı olarak kullanılabilirlik, silinmiş öğe işaretleri, anahtar önbelleği, satır önbelleği, çiçek filtresi ve çok sayıda diğer ayar konusunda endişelenmeniz gerekmez. Cassandra IÇIN API, yapılandırma ve yönetim ek yükü olmadan ihtiyacınız olan okuma ve yazma performansını sağlamaya odaklanır.

Cassandra API'si düğüm ekleme, küme durumu ve düğüm durumu komutlarını destekleyecek mi?

Cassandra API'si kapasite planlamasını basitleştirir ve aktarım hızı ve depolama için esneklik taleplerine yanıt verir. Azure Cosmos DB ile ihtiyacınız olan aktarım hızını sağlarsınız. Ardından, düğümleri ekleme, silme veya yönetme konusunda endişelenmeden gün boyunca ölçeği dilediğiniz zaman artırıp azaltabilirsiniz. Düğüm ve küme yönetimi için araçları kullanmanız gerekmez.

Basit/ağ gibi anahtar alanı oluşturma için çeşitli yapılandırma ayarlarıyla ne olur?

Azure Cosmos DB, kullanılabilirlik ve düşük gecikme süresi nedeniyle kullanıma hazır genel dağıtım sağlar. Çoğaltmalar veya başka şeyler ayarlamanız gerekmez. Yazma işlemleri, performans garantileri sağlarken, yazdığınız herhangi bir bölgede her zaman sabit bir şekilde çekirdek işlenir.

Tablo meta verileri için çeşitli ayarlarla ne olur?

Azure Cosmos DB okuma, yazma ve aktarım hızı için performans garantileri sağlar. Bu nedenle yapılandırma ayarlarından herhangi birine dokunma ve bunları yanlışlıkla düzenleme konusunda endişelenmenize gerek yoktur. Bu ayarlar arasında çiçek filtresi, önbelleğe alma, onarım şansı okuma, gc_grace ve sıkıştırma memtable_flush_period bulunur.

Cassandra tabloları için yaşam süresi destekleniyor mu?

Evet, TTL desteklenir.

Altyapıyı ve aktarım hızını nasıl izleyebilirim?

Azure Cosmos DB, üretkenliği artırmanıza ve altyapıyı yönetme ve izleme konusunda endişelenmenize yardımcı olan bir platform hizmetidir. Örneğin, daha önce çeşitli araçlarla düğüm durumunu, çoğaltma durumunu, gc ve işletim sistemi parametrelerini izlemeniz gerekmez. Azaltılıp azaltılmadığınızı görmek ve ardından bu aktarım hızını artırmak veya azaltmak için portal ölçümlerinde sağlanan aktarım hızıyla ilgilenmeniz yeterlidir. Şunları yapabilirsiniz:

  • SLA'ları izleme
  • Ölçümleri kullanma
  • Tanılama günlüklerini kullanma

Cassandra için API ile hangi istemci SDK'ları çalışabilir?

İstemci programları için CQLv3 kullanan Apache Cassandra SDK'sının istemci sürücüleri kullanıldı. Kullandığınız başka sürücüleriniz varsa veya sorunlarla karşılaşıyorsanız adresine posta askcosmosdbcassandra@microsoft.comgönderin.

Bileşik bölüm anahtarları destekleniyor mu?

Evet, bileşik bölüm anahtarları oluşturmak için normal söz dizimlerini kullanabilirsiniz.

Veri yükleme için sstableloader kullanabilir miyim?

Hayır, sstableloader desteklenmez.

Bir şirket içi Apache Cassandra kümesini Cassandra api'siyle eşleştirebilir miyim?

Artık Azure Cosmos DB, işlem yükü olmadan bulut ortamı için iyileştirilmiş bir deneyime sahiptir. Eşleştirmeye ihtiyacınız varsa, senaryonuzun açıklamasını içeren adresine posta askcosmosdbcassandra@microsoft.com gönderin. Şirket içi veya bulut Cassandra kümesini Azure Cosmos DB için Cassandra API'siyle eşleştirmeye yardımcı olan bir teklif üzerinde çalışıyoruz.

Cassandra IÇIN API tam yedekleme sağlıyor mu?

Azure Cosmos DB, tüm API'lerde dört saatlik aralıklarla alınan iki ücretsiz tam yedekleme sağlar. Bu nedenle bir yedekleme zamanlaması ayarlamanız gerekmez.

Yedekleme saklamayı ve sıklığı kendiniz yönetebilirsiniz.

Yedeklemeden geri yüklemek istiyorsanız adresine e-posta askcosmosdbcassandra@microsoft.com gönderin veya bir destek olayı oluşturun. Yedekleme özelliği hakkındaki bilgiler Azure Cosmos DB ile otomatik çevrimiçi yedekleme ve geri yükleme makalesinde sağlanır.

Bir bölge çökerse Cassandra hesabı için API yük devretmeyi nasıl işler?

Cassandra IÇIN API, Azure Cosmos DB'nin genel olarak dağıtılmış platformundan ödünç alınır. Uygulamanızın veri merkezi kapalı kalma süresini tolere edebilmesi için Azure portalında hesap için en az bir bölge daha etkinleştirin. Daha fazla bilgi için bkz . Azure Cosmos DB ile yüksek kullanılabilirlik.

Hesap için istediğiniz kadar bölge ekleyebilir ve yük devretme önceliği sağlayarak yük devretmenin nereye devredebileceğini denetleyebilirsiniz. Veritabanını kullanmak için orada da bir uygulama sağlamanız gerekir. Bunu yaptığınızda müşterileriniz kapalı kalma süresi yaşamaz.

Cassandra API'si varsayılan olarak bir varlığın tüm özniteliklerini dizine ekliyor mu?

Hayır Cassandra IÇIN API, Apache Cassandra'ya benzer şekilde davranan ikincil dizinleri destekler. API varsayılan olarak her özniteliği dizine almaz.

Cassandra SDK için yeni API'yi öykünücü ile yerel olarak kullanabilir miyim?

Evet, bu desteklenir. Bunun nasıl etkinleştirileceğiyle ilgili ayrıntıları Yerel geliştirme ve test için Azure Cosmos DB Öykünücüsü'ni kullanma makalesinde bulabilirsiniz.

Apache Cassandra kümelerindeki verileri Azure Cosmos DB'ye nasıl geçirebilirim?

Azure Cosmos DB'de Cassandra hesabı için verilerinizi API'ye geçirme öğreticisindeki geçiş seçenekleri hakkında bilgi edinebilirsiniz.

  • Apache Cassandra hesabı için Azure Cosmos DB'yi esnek bir şekilde ölçeklendirmeye başlama

Sonraki adım