Azure Cosmos DB'de değişiklik akışı
ŞUNLAR IÇIN GEÇERLIDIR: NoSQL MongoDB Cassandra Gremlin
Azure Cosmos DB'deki değişiklik akışı, kapsayıcıdaki değişikliklerin gerçekleştiği sırayla kalıcı bir kaydıdır. Azure Cosmos DB'de değişiklik akışı desteği, herhangi bir değişiklik için Azure Cosmos DB kapsayıcısını dinleyerek çalışır. Ardından çıkış olarak, değiştirilen belgelerin değiştirilme zamanına göre sıralandığı bir belge listesi oluşturur. Kalıcı değişiklikler zaman uyumsuz ve artımlı olarak işlenebilir ve çıkış paralel işleme için bir veya daha fazla tüketiciye dağıtılabilir.
Değişiklik akışı tasarım desenleri hakkında daha fazla bilgi edinin.
Desteklenen API'ler ve istemci SDK'ları
Değişiklik akışı özelliği şu anda aşağıdaki Azure Cosmos DB SDK'larında desteklenmektedir.
İstemci sürücüleri | NoSQL | Apache Cassandra | MongoDB | Apache Gremlin | Table | PostgreSQL |
---|---|---|---|---|---|---|
.NET | ||||||
Java | ||||||
Python | ||||||
Node/JavaScript |
Değişiklik akışıyla çalışma
Aşağıdaki seçenekleri kullanarak değişiklik akışıyla çalışabilirsiniz:
- değişiklik akışını Azure İşlevleri ile kullanma
- Değişiklik akışı işlemcisi ile değişiklik akışını kullanma
- Çekme modeliyle değişiklik akışını kullanma
Değişiklik akışı, Azure Cosmos DB kapsayıcısının bölüm anahtarı aralıkları için kullanılabilir. Bu, aşağıdaki görüntüde gösterildiği gibi paralel işleme için bir veya daha fazla tüketiciye dağıtılmasını sağlar.
Not
Bölüm anahtarı aralıkları, değişiklik akışı işlemcisi kullanılırken ve FeedRanges
çekme modeli kullanılırken fiziksel bölümlere eşler.
Değişiklik akışının özellikleri
Değişiklik akışı tüm Azure Cosmos DB hesapları için varsayılan olarak etkindir.
Bazıları etkinleştirmek için ek yapılandırma gerektiren birden çok değişiklik akışı modu vardır.
Azure Cosmos DB hesabınızla ilişkili bölgelerin herhangi birinde, diğer tüm Azure Cosmos DB işlemleri gibi değişiklik akışından okuma yapmak için sağlanan aktarım hızınızı kullanabilirsiniz.
Değişiklik akışı, kapsayıcı içindeki öğelere yapılan ekleme ve güncelleştirme işlemlerini içerir. Tüm sürümleri ve silme modunu (önizleme) kullanıyorsanız, silme işlemlerinden ve TTL süre sonu işlemlerinden de değişiklikler alırsınız.
Her değişiklik, değişiklik akışında tam olarak bir kez görünür ve istemcilerin denetim noktası oluşturma mantığını yönetmesi gerekir. Denetim noktalarını yönetmenin karmaşıklığını önlemek istiyorsanız, değişiklik akışı işlemcisi otomatik denetim noktası oluşturma ve "en az bir kez" semantiği sağlar. Daha fazla bilgi için değişiklik akışı işlemcisi ile değişiklik akışını kullanma makalesine bakın.
Değişiklikler, Azure Cosmos DB kapsayıcısının bölüm anahtarı aralıkları için paralel olarak kullanılabilir. Bu özellik birden çok tüketicinin büyük kapsayıcılardaki değişiklikleri paralel olarak işlemesine olanak tanır.
Uygulamalar aynı kapsayıcıda aynı anda birden çok değişiklik akışı isteyebilir.
Değişiklik akışının başlangıç noktası özelleştirilebilir ve her mod için farklı seçenekler kullanılabilir.
Değişiklik akışındaki öğelerin sıralama düzeni
Değişiklik akışı öğeleri, değişiklik zamanlarının sırasına göre gelir. Bu sıralama düzeni bölüm anahtarı başına garanti edilir ve bölüm anahtarı değerleri arasında garantili bir düzen yoktur.
Not
Çok bölgeli yazma hesapları için iki zaman damgası vardır:
- Kaydın yerel bölgede yazıldığı sunucu dönem zamanı. Bu, olarak
_ts
kaydedilir. - Çakışma olmamasının onaylandığı veya bu kaydın merkez bölgesinde çakışmanın çözümlendiği dönem zamanı. Bu, olarak
crts
kaydedilir.
Değişiklik akışı öğeleri tarafından crts
kaydedilen sırayla gelir.
Çok bölgeli Azure Cosmos DB hesaplarında değişiklik akışı
Çok bölgeli bir Azure Cosmos DB hesabında, bir bölgedeki değişiklikler tüm bölgelerde kullanılabilir. Yazma bölgesi yük devretmesi başarısız olursa, değişiklik akışı el ile yük devretme işlemi boyunca çalışır ve bitişiktir. Birden çok yazma bölgesi olan hesaplar için değişikliklerin ne zaman kullanılabilir olacağı garanti edilmeyecektir. Başka bir bölgede daha yeni bir değişiklik yapıldıysa ve tüm değişiklikler tüm sürümlerde ve silme modunda yakalanırsa, aynı belgede yapılan gelen değişiklikler en son sürüm modunda bırakılabilir.
Akış modlarını değiştirme
İki değişiklik akışı modu vardır: en son sürüm modu ve tüm sürümler ve silmeler modu. Değişiklik akışının okunduğu mod, hangi işlem değişikliklerinin yakalandığını ve her değişiklik için kullanılabilen meta verileri belirler. Aynı Azure Cosmos DB kapsayıcısı için değişiklik akışını birden çok uygulamada farklı modlarda kullanmak mümkündür.
En son sürüm modu
En son sürüm değişiklik akışı modunda, akıştaki tüm öğeler için bir ekleme veya güncelleştirmeden en son değişikliği görürsünüz ve akış kapsayıcının ömrü boyunca kullanılabilir. Belirli bir değişikliğin ekleme işleminden mi yoksa güncelleştirme işleminden mi olduğuna dair bir gösterge yoktur ve silmeler yakalanmaz. Değişiklikler, kapsayıcınızın kaynağı kadar zamanda herhangi bir noktadan okunabilir. Ancak, bir öğe silinirse değişiklik akışından kaldırılır. Daha fazla bilgi edinmek için en son sürüm değişiklik akışı modu makalesine bakın.
Tüm sürümler ve silmeler modu (önizleme)
Tüm sürümler ve silmeler modu, öğelerde yapılan tüm değişiklikleri oluşturma, güncelleştirme ve silme işlemlerinden görmenizi sağlar. Değişiklik akışı okumaları arasında bir öğede yapılan ara değişiklikler de dahil olmak üzere, öğelerde yapılan her değişikliğin gerçekleştiği sırayla bir kaydı alırsınız. Tüm sürümlerde ve silme modunda değişiklik akışından okuma yapmak için Azure Cosmos DB hesabınız için sürekli yedeklemeler yapılandırmış olmanız gerekir. Bu, Azure Cosmos DB'leri tüm sürümleri oluşturur ve değişiklik akışını siler. Bu modda, yalnızca hesap için yapılandırılan sürekli yedekleme süresi içinde gerçekleşen değişiklikleri okuyabilirsiniz. Önizlemeye kaydolma da dahil olmak üzere daha fazla bilgi edinmek için tüm sürümler ve silmeler değişiklik akışı modu makalesine bakın.
Cassandra ve MongoDB API'lerinde değişiklik akışı
Değişiklik akışı işlevi, MongoDB için API'de değişiklik akışı ve Cassandra için API'de koşul içeren Sorgu olarak ortaya çıkar. MongoDB API'sinin uygulama ayrıntıları hakkında daha fazla bilgi edinmek için Bkz . MongoDB için Azure Cosmos DB API'sindeki akışları değiştirme.
Yerel Apache Cassandra, CDC günlüğü için yapılandırılabilir bir disk boyutuna ulaşıldıktan sonra belirli tabloları arşivleme ve yazmaları reddetmeye yönelik bir mekanizma olan değişiklik veri yakalama (CDC) sağlar. Apache Cassandra için Azure Cosmos DB'deki değişiklik akışı özelliği, CQL aracılığıyla koşul ile değişiklikleri sorgulama özelliğini geliştirir. Uygulama ayrıntıları hakkında daha fazla bilgi edinmek için bkz . Apache Cassandra için Azure Cosmos DB'de değişiklik akışı.
Değişiklik akışı isteği birimi tüketimini ölçme
Değişiklik akışı, kullanılıp kullanılmadığına bakılmaksızın her kapsayıcıda kullanılabilir. Değişiklik akışının tek maliyeti, kira kapsayıcısının her istek için sağlanan aktarım hızı ve RU'larıdır. Değişiklik akışının istek birimi (RU) tüketimini ölçmek için Azure İzleyici'yi kullanın. Daha fazla bilgi için bkz . Azure Cosmos DB'de aktarım hızını izleme veya birim kullanımını isteme.
Sonraki adımlar
Şimdi aşağıdaki makalelerde değişiklik akışı hakkında daha fazla bilgi edinebilirsiniz: