Azure Cosmos DB'de değişiklik akışı

Azure Cosmos DB'deki değişiklik akışı, değişikliklerin gerçekleştiği sırayla kapsayıcıda yapılan değişikliklerin 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.

Daha fazla bilgi edinmek için bkz. Azure Cosmos DB'de akış tasarım desenlerini değiştirme.

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üketici arasında dağıtılmasını sağlar.

Azure Cosmos DB değişiklik akışının dağıtılmış işlenmesini gösteren diyagram.

Note

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ığından kaçınmak istiyorsanız, değişiklik akış işlemcisi otomatik denetim noktası kaydetme ve "en az bir kez" semantiği sağlar. Daha fazla bilgi için bkz. Azure Cosmos DB'de akış işlemcisini değiştirme.

  • 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ıdaki herhangi bir modu aynı anda kullanarak 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. İşlem grubu, saklı yordam veya toplu mod isteği kapsamında yazılan öğeler aynı değişiklik zamanına sahiptir ve bu kapsamdaki değişiklikler herhangi bir sırada teslim edilebilir.

Note

Ç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, crts tarafından kaydettikleri sırada 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ölgesinin yük devretmesi gerçekleşirse, değişiklik akışı yük devretme işlemi sırasında çalışmaya devam eder ve kesintisizdir. 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ılmışsa, aynı belgede yapılan gelen değişiklikler en son sürüm modunda göz ardı edilebilir ve tüm değişiklikler, tüm sürümler ve silinme modunda kaydedilecektir.

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

Değişiklik akışının en son sürümünde, tüm öğeler için bir ekleme veya güncelleme ile yapılan en son değişiklikleri görürsünüz ve akış, kapsayıcının ömrü boyunca kullanılabilir durumda kalır. 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 başlangıcına kadar herhangi bir zamanda 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ışı moduna 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. Azure Cosmos DB hesabınızda tüm sürümler ve silmeler modunda değişiklik akışından okuma yapmak için sürekli yedeklemeleri yapılandırmış olmanız gerekir. Bu, Azure Cosmos DB'nin tüm sürümlerini ve silmelerini içeren değişiklik akışını oluşturur. 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. Daha fazla bilgi edinmek, önizlemeye nasıl kaydolacağınızı da öğrenmek için tüm sürümler ve silmelerin değişiklik akış modu makalesine bakın.

Cassandra ve MongoDB API'lerinde değişiklik akışı

Değişiklik bildirim işlevi, MongoDB için API'de değişiklik akışı olarak sunulmaktadır ve Cassandra için API'de belirli bir koşulla sorgulama yapılır. MongoDB API'sinin uygulama ayrıntıları hakkında daha fazla bilgi edinmek için bkz. MongoDB için Azure Cosmos DB API'sindeki değişim akışları.

Yerel Apache Cassandra, değişiklik veri yakalama (CDC) adı verilen bir mekanizma sağlar; bu mekanizma belirli tabloları arşivleme amacıyla işaretler ve CDC günlüğü için yapılandırılabilir bir disk boyutuna ulaşıldığında bu tablolara yazma işlemlerini engeller. 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 için birim tüketimini ölçme

Değişiklik akışı, kullanılıp kullanılmadığına bakılmaksızın her kapsayıcıda mevcuttur. 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 istek birimleridir (RU). Değişiklik akışının RU tüketimini ölçmek için Azure İzleyici'yi kullanın. Daha fazla bilgi için bkz. İşlem aktarım hızını izleme veya işlemin birim kullanımını isteme.

Sonraki Adımlar

Şimdi aşağıdaki makalelerde değişiklik akışı hakkında daha fazla bilgi edinebilirsiniz: