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 Bu özelliğin NoSQL API'sine yönelik .NET SDK'sında desteklendiğini gösteren simge. Bu özelliğin Apache Cassandra API'sine yönelik .NET SDK'sında desteklendiğini gösteren simge. Bu özelliğin MongoDB API'sinin .NET SDK'sında desteklendiğini gösteren simge. Bu özelliğin Apache Gremlin API'sinin .NET SDK'sında desteklendiğini gösteren simge. Bu özelliğin Tablo api'sinin .NET SDK'sında desteklenmediğini gösteren simge. Bu özelliğin PostgreSQL API'sinin .NET SDK'sında desteklenmediğini gösteren simge.
Java Bu özelliğin NoSQL API'sine yönelik Java SDK'sında desteklendiğini gösteren simge. Bu özelliğin Apache Cassandra API'sine yönelik Java SDK'sında desteklendiğini gösteren simge. Bu özelliğin MongoDB API'sine yönelik Java SDK'sında desteklendiğini gösteren simge. Bu özelliğin Apache Gremlin API'sine yönelik Java SDK'sında desteklendiğini gösteren simge. Bu özelliğin Tablo api'sine yönelik Java SDK'sında desteklenmediğini gösteren simge. Bu özelliğin PostgreSQL api'sine yönelik Java SDK'sında desteklenmediğini gösteren simge.
Python Bu özelliğin NoSQL API'sine yönelik Python SDK'sında desteklendiğini gösteren simge. Bu özelliğin Apache Cassandra API'sine yönelik Python SDK'sında desteklendiğini gösteren simge. Bu özelliğin MongoDB API'sine yönelik Python SDK'sında desteklendiğini gösteren simge. Bu özelliğin Apache Gremlin API'sine yönelik Python SDK'sında desteklendiğini gösteren simge. Bu özelliğin Tablo api'sinin Python SDK'sında desteklenmediğini gösteren simge. Bu özelliğin PostgreSQL için API için Python SDK'sında desteklenmediğini gösteren simge.
Node/JavaScript Bu özelliğin NoSQL API'sine yönelik JavaScript SDK'sında desteklendiğini gösteren simge. Bu özelliğin Apache Cassandra API'sine yönelik JavaScript SDK'sında desteklendiğini gösteren simge. Bu özelliğin MongoDB API'sine yönelik JavaScript SDK'sında desteklendiğini gösteren simge. Bu özelliğin Apache Gremlin API'sine yönelik JavaScript SDK'sında desteklendiğini gösteren simge. Bu özelliğin Tablo api'sinin JavaScript SDK'sında desteklenmediğini gösteren simge. Bu özelliğin PostgreSQL API'sine yönelik JavaScript SDK'sında desteklenmediğini gösteren simge.

Değişiklik akışıyla çalışma

Aşağıdaki seçenekleri kullanarak değişiklik akışıyla çalışabilirsiniz:

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.

Azure Cosmos DB değişiklik akışının dağıtılmış işlenmesi

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 _tskaydedilir.
  • Çakışma olmamasının onaylandığı veya bu kaydın merkez bölgesinde çakışmanın çözümlendiği dönem zamanı. Bu, olarak crtskaydedilir.

Değişiklik akışı öğeleri tarafından crtskaydedilen 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: