Azure Cosmos DB'deki veritabanları, kapsayıcılar ve öğeler

ŞUNLAR IÇIN GEÇERLIDIR: NoSQL MongoDB Cassandra Gremlin Masa

Azure Cosmos DB, tam olarak yönetilen bir hizmet olarak platformdur (PaaS). Azure Cosmos DB'yi kullanmaya başlamak için aboneliğinizdeki bir Azure kaynak grubunda bir Azure Cosmos DB hesabı oluşturun. Ardından, hesap içinde veritabanları ve kapsayıcılar oluşturun.

Azure Cosmos DB hesabınız benzersiz bir Etki Alanı Adı Sistemi (DNS) adı içerir. DNS adını yönetmek için aşağıdakiler de dahil olmak üzere birçok araç kullanabilirsiniz:

  • Azure portal
  • Azure Resource Manager şablonları
  • Bicep şablonları
  • Azure PowerShell
  • Azure CLI
  • Azure Yönetim SDK'ları
  • Azure REST API

Verilerinizi ve aktarım hızınızı birden çok Azure bölgesinde çoğaltmak için istediğiniz zaman hesabınıza Azure bölgeleri ekleyebilir ve kaldırabilirsiniz. Hesabınızı tek bir bölgeye veya birden çok yazma bölgesine sahip olacak şekilde yapılandırabilirsiniz. Daha fazla bilgi için bkz . Azure portalını kullanarak Azure Cosmos DB hesabını yönetme. Bir hesapta varsayılan tutarlılık düzeyini de yapılandırabilirsiniz.

Azure Cosmos DB hesabındaki öğeler

Şu anda bir Azure aboneliği altında en fazla 50 Azure Cosmos DB hesabı oluşturabilirsiniz. Destek isteğinde bulunarak bu sınırı artırabilirsiniz.

Tek bir Azure Cosmos DB hesabı kullanarak neredeyse sınırsız miktarda veriyi ve sağlanan aktarım hızını yönetebilirsiniz. Verilerinizi ve sağlanan aktarım hızını yönetmek için, hesabınızda bir veya daha fazla veritabanı oluşturur ve ardından verilerinizi depolamak için bir veya daha fazla kapsayıcı oluşturursunuz.

Aşağıdaki görüntüde Bir Azure Cosmos DB hesabındaki öğelerin hiyerarşisi gösterilmektedir.

Hesap, veritabanı ve kapsayıcı da dahil olmak üzere Azure Cosmos DB hesabının hiyerarşisinin diyagramı.

Aşağıdaki görüntüde bir Azure Cosmos DB hesabındaki varlıkların hiyerarşisi gösterilmektedir.

Saklı yordamlar, kullanıcı tanımlı işlevler ve tetikleyiciler gibi eşdüzey varlıklar da dahil olmak üzere kapsayıcı ve öğeler arasındaki ilişkinin diyagramı.

Azure Cosmos DB veritabanları

Azure Cosmos DB'de veritabanı ad alanına benzer. Veritabanı yalnızca bir kapsayıcı grubudur. Aşağıdaki tabloda veritabanının API'ye özgü çeşitli varlıklara nasıl eşlendiği gösterilmektedir:

Azure Cosmos DB varlığı NoSQL için API Apache Cassandra için API MongoDB için API Apache Gremlin için API Tablo için API
Azure Cosmos DB veritabanı Veritabanı Anahtar alanı Veritabanı Veritabanı Uygulanamaz

Not

Tablo hesapları için API ile Azure Cosmos DB'deki tablolar, Azure Tablo Depolama ile uyumluluğu korumak için hesap düzeyinde oluşturulur.

Azure Cosmos DB kapsayıcıları

Azure Cosmos DB kapsayıcısı, verilerin depolandığı yerdir. Azure Cosmos DB, daha büyük boyutlu sanal makinelerin ölçeğini artıran ilişkisel veritabanlarının çoğundan farklı olarak ölçeği genişletmektedir.

Veriler bölüm adı verilen bir veya daha fazla sunucuda depolanır. Bölümleri artırmak için aktarım hızını artırırsınız veya depolama arttıkça bunlar otomatik olarak büyür. Bu ilişki, kapsayıcı için neredeyse sınırsız miktarda aktarım hızı ve depolama sağlar.

Kapsayıcı oluştururken bölüm anahtarı sağlamanız gerekir. Bölüm anahtarı, Azure Cosmos DB'nin verileri bölümler arasında verimli bir şekilde dağıtmasına yardımcı olmak için öğelerinizden seçtiğiniz bir özelliktir. Azure Cosmos DB, verileri yazılacak, güncelleştirilecek veya silinecek uygun bölüme yönlendirmek için bu özelliğin değerini kullanır. Verimli veri alımı için sorgularda yan tümcesindeki WHERE bölüm anahtarını da kullanabilirsiniz.

Azure Cosmos DB'deki veriler için temel alınan depolama mekanizmasına fiziksel bölüm adı verilir. Fiziksel bölümlerin aktarım hızı saniyede 10.000 İstek Birimine kadar olabilir ve en fazla 50 GB veri depolayabilir. Azure Cosmos DB, bu bölümleme kavramını 20 GB'a kadar veri depolayabilen mantıksal bir bölümle soyutlar.

Mantıksal bölümler, siz daha fazla bölüm ekledikçe hizmetin temel alınan fiziksel bölümlerde daha fazla esneklik ve daha iyi veri yönetimi sağlamasına olanak sağlar. Bölümleme ve bölüm anahtarları hakkında daha fazla bilgi edinmek için bkz . Azure Cosmos DB'de bölümleme ve yatay ölçeklendirme.

Kapsayıcı oluşturduğunuzda, aktarım hızını aşağıdaki modlardan birinde yapılandırırsınız:

  • Ayrılmış aktarım hızı: Kapsayıcıdaki aktarım hızı yalnızca bu kapsayıcı için ayrılmıştır. İki tür ayrılmış aktarım hızı vardır: standart ve otomatik ölçeklendirme. Daha fazla bilgi edinmek için bkz . Azure Cosmos DB kapsayıcısı üzerinde standart (el ile) aktarım hızı sağlama.

  • Paylaşılan aktarım hızı: Aktarım hızı veritabanı düzeyinde belirtilir ve ardından veritabanı içinde en fazla 25 kapsayıcıyla paylaşılır. Aktarım hızının paylaşımı, kendi ayrılmış aktarım hızıyla yapılandırılmış kapsayıcıları dışlar.

    Veritabanındaki tüm kapsayıcılar benzer isteklere ve depolama gereksinimlerine sahip olduğunda veya verilerde tahmin edilebilir performansa ihtiyacınız olmadığında paylaşılan aktarım hızı iyi bir seçenek olabilir. Daha fazla bilgi edinmek için bkz . Azure Cosmos DB'de bir veritabanında standart (el ile) aktarım hızı sağlama.

Not

Ayrılmış ve paylaşılan aktarım hızı arasında geçiş yapamazsınız. Paylaşılan aktarım hızı veritabanında oluşturduğunuz kapsayıcılar ayrılmış aktarım hızına sahip olacak şekilde güncelleştirilemez. Bir kapsayıcıyı paylaşılan aktarım hızı yerine ayrılmış aktarım hızına dönüştürmek için yeni bir kapsayıcı oluşturmanız ve verileri bu kapsayıcıya kopyalamanız gerekir. Azure Cosmos DB'deki kapsayıcı kopyalama özelliği bu işlemi kolaylaştırabilir.

Kapsayıcılar şemadan bağımsızdır. Kapsayıcı içindeki öğeler, aynı bölüm anahtarını paylaştığı sürece rastgele şemalara veya farklı varlıklara sahip olabilir. Örneğin, kapsayıcıda müşteri profili bilgilerini içeren bir öğe veya belgenin yanı sıra müşterinin tüm satış siparişlerini temsil eden bir veya daha fazla öğe veya belge bulunabilir. Tüm müşteriler için benzer bilgileri aynı kapsayıcıya yerleştirebilirsiniz.

Varsayılan olarak, kapsayıcıya eklediğiniz tüm veriler, açık dizin oluşturma gerektirmeden otomatik olarak dizine eklenir. Dizin oluşturma ilkesini yapılandırarak kapsayıcı için dizin oluşturmayı özelleştirebilirsiniz.

Performansı etkilememek için, bir kapsayıcıdaki seçili öğelerde veya kapsayıcının tamamında yaşam süresi (TTL) ayarlayarak bu öğeleri kullanılmayan aktarım hızıyla arka planda otomatik olarak silebilirsiniz. Ancak, süresi dolan veriler silinmese bile, hiçbir okuma işleminde görünmez. Daha fazla bilgi edinmek için bkz . Azure Cosmos DB'de yaşam süresini yapılandırma.

Azure Cosmos DB, değişiklik akışı adı verilen değişiklik verilerini yakalamaya yönelik yerleşik bir özellik sağlar. Kapsayıcınızdaki verilerde yapılan tüm değişikliklere abone olmak için bunu kullanabilirsiniz.

Kapsayıcınız için saklı yordamları, tetikleyicileri, kullanıcı tanımlı işlevleri (UDF) ve birleştirme yordamlarını kaydedebilirsiniz.

Kapsayıcı içindeki her belge, bir id mantıksal anahtarın bu kapsayıcı için özellik değeri içinde benzersiz bir özelliğe sahip olmalıdır. Açıkça tanımlamak zorunda kalmadan kapsayıcı içinde benzersiz bir kısıtlama sağlamak için bu özellik birleşimini kullanabilirsiniz.

Azure Cosmos DB kapsayıcınızda bir veya daha fazla özellik kullanan benzersiz bir anahtar kısıtlaması da belirtebilirsiniz. Benzersiz anahtar kısıtlaması, mantıksal bölüm anahtarı başına bir veya daha fazla değerin benzersiz olmasını sağlar. Benzersiz bir anahtar ilkesi kullanarak kapsayıcı oluşturursanız, benzersiz anahtar kısıtlamasının belirttiği değerleri çoğaltan değerlerle yeni veya güncelleştirilmiş öğe oluşturamazsınız.

Kapsayıcı, aşağıdaki tabloda gösterildiği gibi API'ye özgü varlıklarda özelleştirilir:

Azure Cosmos DB varlığı NoSQL için API Cassandra için API MongoDB için API Gremlin için API Tablo için API
Azure Cosmos DB kapsayıcısı Kapsayıcı Tablo Koleksiyon Graf Tablo

Not

Aynı ada ancak farklı büyük/küçük harfe sahip iki kapsayıcı oluşturmadığınızdan emin olun. Azure platformunun bazı bölümleri büyük/küçük harfe duyarlı değildir ve bu tür adlandırmalar kapsayıcılardaki tanılama verilerinin ve eylemlerin karışıklığına veya çakışmasına neden olabilir.

Azure Cosmos DB kapsayıcısının özellikleri

Azure Cosmos DB kapsayıcısının bir dizi sistem tanımlı özelliği vardır. Hangi API'yi kullandığınıza bağlı olarak, bazı özellikler doğrudan kullanıma sunulmayabilir. Aşağıdaki tabloda sistem tanımlı özellikler açıklanmaktadır:

Sistem tanımlı özellik Sistem tarafından oluşturulan veya kullanıcı tarafından yapılandırılabilir Purpose NoSQL için API Cassandra için API MongoDB için API Gremlin için API Tablo için API
_rid Sistem tarafından oluşturulan Kapsayıcının benzersiz tanımlayıcısı. Yes Hayır Hayır Hayır Hayır
_etag Sistem tarafından oluşturulan İyimser eşzamanlılık denetimi için kullanılan varlık etiketi. Yes Hayır Hayır Hayır Hayır
_ts Sistem tarafından oluşturulan Kapsayıcının son güncelleştirilen zaman damgası. Yes Hayır Hayır Hayır Hayır
_self Sistem tarafından oluşturulan Kapsayıcının adreslenebilir URI'si. Yes Hayır Hayır Hayır Hayır
id Kullanıcı tarafından yapılandırılabilir Kapsayıcının adı. Yes Evet Evet Evet Yes
indexingPolicy Kullanıcı tarafından yapılandırılabilir Kapsayıcı için dizin oluşturmaya yönelik ilke. Yes Hayı Evet Evet Yes
TimeToLive Kullanıcı tarafından yapılandırılabilir Belirli bir zaman aralığından sonra kapsayıcıdan bir öğenin otomatik olarak silinmesi. Ayrıntılar için bkz . Yaşam süresi. Yes Hayır Hayır Hayır Evet
changeFeedPolicy Kullanıcı tarafından yapılandırılabilir Kapsayıcıdaki öğelerde yapılan değişiklikleri okuma ilkesi. Ayrıntılar için bkz . Akışı değiştirme. Yes Hayır Hayır Hayır Evet
uniqueKeyPolicy Kullanıcı tarafından yapılandırılabilir Mantıksal bölümdeki bir veya daha fazla değerin benzersizliğini sağlamaya yönelik ilke. Daha fazla bilgi için bkz . Benzersiz anahtar kısıtlamaları. Yes Hayır Hayır Hayır Evet
AnalyticalTimeToLive Kullanıcı tarafından yapılandırılabilir Belirli bir zaman aralığından sonra bir öğenin analiz deposu bağlamında kapsayıcıdan otomatik olarak silinmesi. Ayrıntılar için bkz . Analiz deposu. Yes Hayı Evet Hayır Hayır

Azure Cosmos DB öğeleri

Hangi API'yi kullandığınıza bağlı olarak, tek tek veri varlıkları çeşitli yollarla temsil edilebilir:

Azure Cosmos DB varlığı NoSQL için API Cassandra için API MongoDB için API Gremlin için API Tablo için API
Azure Cosmos DB öğesi Kalem Satır Belge Düğüm veya kenar Kalem

Öğenin özellikleri

Her Azure Cosmos DB öğesi aşağıdaki sistem tanımlı özelliklere sahiptir. Hangi API'yi kullandığınıza bağlı olarak, bazıları doğrudan kullanıma sunulmayabilir.

Sistem tanımlı özellik Sistem tarafından oluşturulan veya kullanıcı tanımlı Purpose NoSQL için API Cassandra için API MongoDB için DB API'si Gremlin için API Tablo için API
_rid Sistem tarafından oluşturulan Öğenin benzersiz tanımlayıcısı Yes Hayır Hayır Hayır Hayır
_etag Sistem tarafından oluşturulan İyimser eşzamanlılık denetimi için kullanılan varlık etiketi Yes Hayır Hayır Hayır Hayır
_ts Sistem tarafından oluşturulan Öğenin son güncelleştirmesinin zaman damgası Yes Hayır Hayır Hayır Hayır
_self Sistem tarafından oluşturulan Öğenin adreslenebilir URI'si Yes Hayır Hayır Hayır Hayır
id Herhangi biri Mantıksal bölümde kullanıcı tanımlı benzersiz ad Yes Evet Evet Evet Yes
Rastgele kullanıcı tanımlı özellikler Kullanıcı tanımlı API yerel gösteriminde kullanıcı tanımlı özellikler (JSON, BSON ve CQL dahil) Yes Evet Evet Evet Evet

Not

Özelliğin id benzersizliği her mantıksal bölüm içinde zorlanır. Birden çok belge, farklı bölüm anahtarı değerleriyle aynı id özellik değerine sahip olabilir.

Öğelerdeki işlemler

Azure Cosmos DB öğeleri aşağıdaki işlemleri destekler. İşlemleri gerçekleştirmek için Azure Cosmos DB API'lerinden herhangi birini kullanabilirsiniz.

İşlem NoSQL için API Cassandra için API MongoDB için API Gremlin için API Tablo için API
Ekleme, değiştirme, silme, yukarı ekleme, okuma Yes Evet Evet Evet Yes