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

aşağıdakiler için geçerlidir: Tablo

Important

99,999% kullanılabilirlik hizmet düzeyi sözleşmesi (SLA), anında otomatik ölçeklendirme ve birden çok bölgede otomatik yük devretme ile yüksek ölçekli senaryolar için bir veritabanı çözümü mü arıyorsunuz? NoSQL için Azure Cosmos DB'yi göz önünde bulundurun.

Azure Cosmos DB ve Azure Tablo Depolama Karşılaştırması

Azure Tablo depolama davranışıyla aynı olmayan Tablo API'leri nerededir?

Tablo için Azure Cosmos DB ile tablo oluşturmak isteyen Azure Tablo depolama alanından gelen kullanıcıların dikkat etmesi gereken bazı davranış farklılıkları vardır:

  • Tablo için Azure Cosmos DB, garantili performans sağlamak amacıyla ayrılmış kapasite modeli kullanır. Bu, kapasite kullanılmasa bile, tablo oluşturulduğu anda kapasite için ödeme yapılması gerektiği anlamına gelir. Azure Table depolama ile sadece kullanılan kapasite için ödeme yapılır. Bu, Tablo için API'nin neden 99. yüzdebirlik dilimde 10 ms okuma ve 15 ms yazma SLA'sı sunabildiğini açıklamaya yardımcı olurken Azure Tablo depolama 10 saniyelik bir SLA sunar. Ancak sonuç olarak, Tablo tabloları api'si, istek içermeyen boş tablolar bile, Kapasitenin Azure Cosmos DB tarafından sunulan SLA'da kendilerine yapılan istekleri işlemek için kullanılabilir olduğundan emin olmak için maliyete mal olur.

  • Tablo için API tarafından döndürülen sorgu sonuçları, Azure Tablo depolama alanında olduğu gibi bölüm anahtarı/satır anahtarı düzeninde sıralanmamıştır.

  • Satır anahtarları en fazla 255 bayt olabilir.

  • Toplu işlemlerde en fazla 2 MB olabilir.

  • CORS şu anda desteklenmemektedir.

  • Azure Tablo depolamadaki tablo adları büyük/küçük harfe duyarlı değildir, ancak Tablo için Azure Cosmos DB'dedir.

  • Azure Cosmos DB'nin ikili alanlar gibi bazı iç kodlama biçimleri, şu anda istenildiği kadar verimli değildir. Bu nedenle bu, veri boyutuyla ilgili beklenmeyen sınırlamalara neden olabilir. Örneğin, kodlama verilerin boyutunu artırdığından, mevcut durumda ikili verileri depolamak için bir Megabaytlık tablo varlığını tam olarak kullanamazsınız.

  • Azure Cosmos DB, ID, rid, etag ve ResourceId varlık özellik adlarını ayırır ve şu anda desteklememektedir.

  • TableQuery TakeCount 1000 ile sınırlı değildir.

  • REST API açısından, Azure Tablo depolama (tablo için Azure Cosmos DB değil) aşağıdaki uç noktaları/sorgu seçeneklerini destekler:

    Rest Yöntemleri Rest Uç Noktası/Sorgu Seçeneği Belge URL'leri Explanation Table Storage'da desteklenir Tablo için API'de desteklenir
    GET, PUT /?Restype=service@comp=properties Tablo Hizmeti Özelliklerini Ayarlama ve Tablo Hizmeti Özelliklerini Alma Bu uç nokta CORS kurallarını, depolama analizi yapılandırmasını ve günlük ayarlarını ayarlamak için kullanılır. CORS şu anda desteklenmiyor ve Azure Cosmos DB'de analiz ve günlüğe kaydetme işlemleri Azure Depolama Tablolarından farklı şekilde işleniyor Yes Hayı
    OPTIONS /<table-resource-name> CORS tablo ön kontrol isteği Bu, Azure Cosmos DB'nin şu anda desteklemediği CORS'nin bir parçasıdır. Yes Hayı
    GET /?Restype=service@comp=stats Tablo Hizmeti İstatistiklerini Alma Verilerin birincil ve ikinciller arasında ne kadar hızlı çoğaltılması hakkında bilgi sağlar. Çoğaltma yazma işlemleri kapsamında olduğundan Azure Cosmos DB'de bu gerekli değildir. Yes Hayı
    GET, PUT /mytable?comp=acl Tablo ACL'lerini Alma ve Tablo ACL'lerini Ayarlama Bu, Paylaşılan Erişim İmzalarını (SAS) yönetmek için kullanılan depolanmış erişim ilkelerini alır ve ayarlar. Yes Hayı
  • Tablo için Azure Cosmos DB, ATOM'ı değil yalnızca JSON biçimini destekler.

  • Özellikle .NET SDK'sı için Azure Cosmos DB'nin şu anda desteklemediği bazı sınıflar ve yöntemler vardır.

    • CloudTableClient sınıfı
      • \ServiceProperties
      • \ServiceStats
    • CloudTable sınıfı
      • SetPermissions
      • GetPermissions

Diğer sık sorulan sorular

Tablo api'sini kullanmak için yeni bir SDK'ya ihtiyacım var mı?

Hayır, mevcut depolama SDK'ları çalışmaya devam etmelidir. Ancak, en iyi destek ve çoğu durumda üstün performans için her zaman en son SDK'ları alması önerilir. Tablo için Azure Cosmos DB'ye Giriş bölümünde kullanılabilir dillerin listesine bakın.

Tablo api'sine bağlanmak için hangi bağlantı dizesi ihtiyacım var?

bağlantı dizesi:

DefaultEndpointsProtocol=https;AccountName=<AccountNamefromCosmosDB;AccountKey=<FromKeysPaneofCosmosDB>;TableEndpoint=https://<AccountName>.table.cosmosdb.azure.com

bağlantı dizesi Azure portalındaki Bağlantı Dizesi sayfasından alabilirsiniz.

Table API'sinin .NET SDK'sında istek ayarları için yapılandırma ayarlarını nasıl geçersiz kılarım?

Bazı ayarlar CreateCloudTableClient yönteminde, bazıları ise istemci uygulamasının appSettings bölümündeki app.config aracılığıyla işlenir. Yapılandırma ayarları hakkında bilgi için bkz . Azure Cosmos DB özellikleri.

Mevcut Azure Tablo depolama SDK'larını kullanan müşteriler için herhangi bir değişiklik var mı?

Yok. Mevcut Azure Tablo depolama SDK'larını kullanan mevcut veya yeni müşteriler için herhangi bir değişiklik yoktur.

Azure Cosmos DB'de depolanan tablo verilerini Tablo API'si ile kullanmak üzere nasıl görüntüleyebilirim?

Verilere göz atmak için Azure portalını kullanabilirsiniz. Tablo kodu için API'yi veya sonraki yanıtta bahsedilen araçları da kullanabilirsiniz.

Tablo için API ile hangi araçlar çalışır?

Azure Depolama Gezgini kullanabilirsiniz.

Daha önce belirtilen biçimde bir bağlantı dizesi alma esnekliğine sahip araçlar, Tablo için yeni API'yi destekleyebilir. Tablo araçlarının listesi Azure Depolama İstemci Araçları sayfasında sağlanır.

İşlemlerde eşzamanlılık denetlendi mi?

Evet, iyimser eşzamanlılık ETag mekanizmasının kullanımıyla sağlanır.

OData sorgu modeli varlıklar için destekleniyor mu?

Evet, Tablo API'si OData sorgusunu ve LINQ sorgusunu destekler.

Aynı uygulamada Azure Tablo Depolama ve Azure Cosmos DB'ye Tablo için yan yana bağlanabilir miyim?

Evet, her biri bağlantı dizesi aracılığıyla kendi URI'sine işaret eden iki ayrı CloudTableClient örneği oluşturarak bağlanabilirsiniz.

Nasıl mevcut bir Azure Tablo depolama uygulamasını bu hizmete geçirebilirim?

AzCopy desteklenir.

Örneğin , 'n' GB verilerle başlarsam ve verilerim zaman içinde 1 TB'a büyürse, bu hizmet için depolama boyutunu genişletme işlemi nasıl yapılır?

Azure Cosmos DB, yatay ölçeklendirme kullanarak sınırsız depolama alanı sağlayacak şekilde tasarlanmıştır. Hizmet, depolama alanınızı izleyebilir ve etkili bir şekilde artırabilir.

Tablo teklifi için API'yi nasıl izleyebilirim?

API'yi, Tablo Ölçümleri bölmesindeki istekleri ve depolama kullanımını izlemek için kullanabilirsiniz.

İhtiyacım olan aktarım hızını nasıl hesaplarım?

İşlemler için gereken TableThroughput değerini hesaplamak için kapasite tahmin aracını kullanabilirsiniz. Daha fazla bilgi için bkz . Tahmin İstek Birimleri ve Veri Depolama. Genel olarak varlığınızı JSON olarak gösterebilir ve işlemlerinizin numaralarını sağlayabilirsiniz.

Table SDK'si API'sini öykünücü ile yerel olarak kullanabilir miyim?

Şu anda hayır.

Mevcut uygulamam Tablo için API ile çalışabilir mi?

Evet, aynı API desteklenir.

Tablo özellikleri için API'yi kullanmak istemiyorsam mevcut Azure Tablo depolama uygulamalarımı SDK'ya geçirmem gerekiyor mu?

Hayır, mevcut Azure Tablo depolama varlıklarını herhangi bir kesinti olmadan oluşturabilir ve kullanabilirsiniz. Ancak, Tablo için API'yi kullanmıyorsanız otomatik dizinden, ek tutarlılık seçeneğinden veya genel dağıtımdan yararlanamazsınız.

Azure'daki birden fazla bölgeye Tablo API'sindeki verilerin çoğaltmasını nasıl ekleyebilirim?

Uygulamanız için uygun bölgeler eklemek için Azure Cosmos DB portalının genel çoğaltma ayarlarını kullanabilirsiniz. Genel olarak dağıtılmış bir uygulama geliştirmek için, düşük okuma gecikmesi sağlamak için PreferredLocation bilgileri ayarlanmış uygulamanızı yerel bölgeye de eklemeniz gerekir.

Tablo API'sindeki hesabın birincil yazma bölgesini nasıl değiştirebilirim?

Azure Cosmos DB genel çoğaltma portalı bölmesini kullanarak bir bölge ekleyebilir ve ardından gerekli bölgeye yük devredebilirsiniz. Yönergeler için bkz . Çok bölgeli Azure Cosmos DB hesaplarıyla geliştirme.

Verilerimi dağıtırken, düşük gecikme süresi için tercih ettiğim okuma bölgelerini nasıl yapılandırırım?

Yerel konumdan okumaya yardımcı olmak için app.config dosyasındaki PreferredLocation anahtarını kullanın. Mevcut uygulamalar için, LocationMode ayarlanırsa Tablo API'si bir hata oluşturur. Tablo API'sinin app.config dosyasından bu bilgileri alması nedeniyle bu kodu kaldırın.

Tablo için API'deki tutarlılık düzeylerini nasıl düşünmeliyim?

Azure Cosmos DB tutarlılık, kullanılabilirlik ve gecikme süresi arasında iyi nedenli dengeler sağlar. Azure Cosmos DB, Tablo geliştiricileri için API'ye beş tutarlılık düzeyi sunar; böylece tablo düzeyinde doğru tutarlılık modelini seçebilir ve verileri sorgularken tek tek isteklerde bulunabilirsiniz. bir istemci bağlandığında, bir tutarlılık düzeyi belirtebilir. Düzeyi, CreateCloudTableClient'ın consistencyLevel bağımsız değişkeni aracılığıyla değiştirebilirsiniz.

Tablo için API, "kendi yazmalarınızı okuma" özelliğiyle düşük gecikmeli okuma sağlar ve varsayılan olarak Sınırlı Eskime Tutarlılığı kullanır. Daha fazla bilgi için bkz . Tutarlılık düzeyleri.

Varsayılan olarak, Azure Tablo depolaması bir bölge içinde Güçlü tutarlılık ve ikincil konumlarda Nihai tutarlılık sağlar.

Tablo için Azure Cosmos DB, Azure Tablo depolamadan daha fazla tutarlılık düzeyi sunuyor mu?

Evet, Azure Cosmos DB'nin dağıtılmış doğasından nasıl yararlanıldığı hakkında bilgi için bkz . Tutarlılık düzeyleri. Tutarlılık düzeyleri için garantiler sağlandığından, bunları güvenle kullanabilirsiniz.

Genel dağıtım etkinleştirildiğinde, verilerin çoğaltılması ne kadar sürer?

Azure Cosmos DB, verileri yerel bölgede durabilir bir şekilde işler ve milisaniyelik bir süre içinde verileri hemen diğer bölgelere yönlendirir. Bu çoğaltma yalnızca veri merkezinin gidiş dönüş süresine (RTT) bağlıdır. Azure Cosmos DB'nin genel dağıtım özelliği hakkında daha fazla bilgi edinmek için bkz . Azure Cosmos DB: Azure'da genel olarak dağıtılmış veritabanı hizmeti.

Okuma isteği tutarlılık düzeyi değiştirilebilir mi?

Azure Cosmos DB ile tutarlılık düzeyini kapsayıcı düzeyinde (tabloda) ayarlayabilirsiniz. .NET SDK'sını kullanarak app.config dosyasında TableConsistencyLevel anahtarının değerini sağlayarak düzeyi değiştirebilirsiniz. Olası değerler şunlardır: Güçlü, Sınırlanmış Eskime Durumu, Oturum, Tutarlı Ön Ek ve Son. Daha fazla bilgi için bkz . Azure Cosmos DB'de ayarlanabilir veri tutarlılığı düzeyleri. Temel fikir, istek tutarlılığı düzeyini tablonun ayarından daha fazla ayarlayamamanızdır. Örneğin, Tablo için tutarlılık düzeyini Nihai ve istek tutarlılığı düzeyini Güçlü olarak ayarlayamazsınız.

Bir bölge çökerse Tablo API'si yük devretmeyi nasıl işler?

Tablo için API, Azure Cosmos DB'nin genel olarak dağıtılmış platformunu kullanır. Uygulamanızın veri merkezi kapalı kalma süresini tolere edebilmesini sağlamak için Azure Cosmos DB portalında çok bölgeli Azure Cosmos DB hesaplarıyla geliştirme bölümünde hesap için en az bir bölge daha etkinleştirin. Çok bölgeli Azure Cosmos DB hesaplarıyla geliştirme portalını kullanarak bölgenin önceliğini ayarlayabilirsiniz.

Hesap için istediğiniz kadar bölge ekleyebilir ve yük devretme önceliği belirleyerek hangi bölgede devreye alınabileceğini denetleyebilirsiniz. Veritabanını kullanmak için orada da bir uygulama sağlamanız gerekir. Bunu yaptığınızda müşterileriniz kesinti süresi yaşamayacaktır. En yeni .NET istemci SDK'sı otomatik konumlandırma özelliğine sahiptir, ancak diğer SDK'lar bu özelliğe sahip değildir. Yani, devre dışı olan bölgeyi algılayabilir ve otomatik olarak yeni tanımlanan bölgeye yönlendirme yapabilir.

Tablo API'si yedeklemeler için etkinleştirildi mi?

Evet, Tablo API'sinde yedeklemeler için Azure Cosmos DB platformu kullanılır. Yedeklemeler otomatik olarak yapılır. Daha fazla bilgi için bkz . Azure Cosmos DB ile çevrimiçi yedekleme ve geri yükleme.

Tablo API'si varsayılan olarak bir varlığın tüm özniteliklerini dizine alır mı?

Evet, bir varlığın tüm öznitelikleri varsayılan olarak dizine eklenir. Daha fazla bilgi için bkz . Azure Cosmos DB: Dizin oluşturma ilkeleri.

Bu, sorguları karşılamak için birden fazla dizin oluşturmam gerekmeyecek anlamına mı geliyor?

Evet, Tablo için Azure Cosmos DB, herhangi bir şema tanımı olmadan tüm özniteliklerin otomatik dizinlemesini sağlar. Bu otomasyon, geliştiricilerin dizin oluşturma ve yönetim yerine uygulamaya odaklanmasını sağlar. Daha fazla bilgi için bkz . Azure Cosmos DB: Dizin oluşturma ilkeleri.

Dizin oluşturma ilkesini değiştirebilir miyim?

Evet, dizin tanımını sağlayarak dizin oluşturma ilkesini değiştirebilirsiniz. Ayarları düzgün bir şekilde kodlamanız ve kaçış yapmanız gerekir.

Dizin oluşturma ilkesi yalnızca portalda Veri Gezgini altında ayarlanabilir. Değiştirmek istediğiniz tabloya gidin ve ardından Ölçek & Ayarlar-> seçeneğine gidin, istediğiniz değişikliği yapın ve ardından Kaydet butonuna basın.

Platform olarak Azure Cosmos DB sıralama, toplamalar, hiyerarşi ve diğer işlevler gibi birçok özelliğe sahip gibi görünüyor. Bu özellikleri Tablo için API'ye ekleyecek misiniz?

Tablo için API, Azure Tablo depolama ile aynı sorgu işlevini sağlar. Azure Cosmos DB ayrıca sıralama, toplamalar, jeo-uzamsal sorgu, hiyerarşi ve çok çeşitli yerleşik işlevleri de destekler. Daha fazla bilgi için bkz . SQL sorguları.

Tablo API'sinin TableThroughput'unu ne zaman değiştirmeliyim?

Aşağıdaki koşullardan biri geçerli olduğunda TableThroughput'u değiştirmeniz gerekir:

  • Verilerin ayıklanmasını, dönüştürülmesini ve yüklenmesini (ETL) gerçekleştiriyor veya kısa sürede çok sayıda veriyi karşıya yüklemek istiyorsunuz.
  • Daha fazla aktarım hızına, kapsayıcıdan veya arka uçta bulunan bir dizi kapsayıcıdan ihtiyacınız vardır. Örneğin, kullanılan aktarım hızının sağlanan aktarım hızını aştığını ve kısıtlandığınızı görürsünüz. Daha fazla bilgi için Azure Cosmos DB kapsayıcıları için aktarım hızını ayarlama bölümüne bakın.

Tablo tablosu için API'min aktarım hızını artırabilir veya küçültebilir miyim?

Evet, aktarım hızını ölçeklendirmek için Azure Cosmos DB portalının ölçek bölmesini kullanabilirsiniz. Daha fazla bilgi için bkz . Aktarım hızını ayarlama.

Yeni sağlanan tablolar için varsayılan tableThroughput ayarlı mı?

Evet, app.config aracılığıyla TableThroughput'u geçersiz kılmazsanız ve Azure Cosmos DB'de önceden oluşturulmuş bir kapsayıcı kullanmıyorsanız, hizmet 400 aktarım hızına sahip bir tablo oluşturur.

Azure Tablo depolama hizmetinin mevcut müşterileri için fiyatlandırmada herhangi bir değişiklik var mı?

Yok. Mevcut Azure Tablo depolama müşterileri için fiyatta bir değişiklik yoktur.

Tablo api'sinin fiyatı nasıl hesaplanır?

Fiyat, ayrılan TableThroughput'a bağlıdır.

Tablo hizmeti için API'deki tablolarda oran sınırlamasını nasıl işlerim?

İstek hızı, temel kapsayıcı veya kapsayıcı kümesi için sağlanan aktarım hızının kapasitesinden fazlaysa bir hata alırsınız ve SDK yeniden deneme ilkesini uygulayarak çağrıyı yeniden dener.

Azure Cosmos DB'nin Tablo teklifi api'sinden yararlanmak için neden PartitionKey ve RowKey dışında bir aktarım hızı seçmem gerekiyor?

App.config dosyasında veya portal aracılığıyla sağlamazsanız Azure Cosmos DB kapsayıcınız için varsayılan aktarım hızını ayarlar.

Azure Cosmos DB, çalışma üst sınırlarıyla birlikte performans ve gecikme süresi garantileri sağlar. Motor kiracının işlemlerinde yönetimi zorlayabildiğinde bu garanti mümkündür. TableThroughput ayarını yapmak, platform bu kapasiteyi ayırdığı ve operasyonel başarıyı garanti ettiği için garantili aktarım hızı ve gecikme süresini elde etmenizi sağlar.

Aktarım hızı belirtimini kullanarak uygulamanızın mevsimselliğinden yararlanacak, aktarım hızı gereksinimlerini karşılayacak ve maliyet tasarrufu sağlayacak şekilde esnek bir şekilde değiştirebilirsiniz.

Yalnızca verileri depolamak için ödeme yaptığım ve nadiren sorguladığım için Azure Tablo depolaması benim için ucuza geldi. Tablo için Azure Cosmos DB teklifi, tek bir işlem gerçekleştirmememe veya herhangi bir şey depolamamama rağmen benden ücretlendiriliyor gibi görünüyor. Açıklayabilir misin?

Azure Cosmos DB, kullanılabilirlik, gecikme süresi ve aktarım hızı garantilerine sahip genel olarak dağıtılmış, SLA tabanlı bir sistem olarak tasarlanmıştır. Azure Cosmos DB'de aktarım hızı ayırdığınızda, diğer sistemlerin aktarım hızının aksine bu garanti edilir. Azure Cosmos DB, müşterilerin istediği ikincil dizinler ve genel dağıtım gibi daha fazla özellik sağlar.

Azure Tablo depolama alanına veri alırken hiçbir zaman "kota dolu" bildirimi (bir depolama bölümünün dolu olduğunu belirtir) almıyorum. Tablo API'siyle bu iletiyi alıyorum. Bu teklif beni sınırlayıp var olan başvurumu değiştirmeye mi zorluyor?

Azure Cosmos DB, gecikme süresi, aktarım hızı, kullanılabilirlik ve tutarlılık garantileriyle sınırsız ölçek sağlayan SLA tabanlı bir sistemdir. Garantili premium performans sağlamak için veri boyutunuzun ve dizininizin yönetilebilir ve ölçeklenebilir olduğundan emin olun. Bölüm anahtarı başına varlık veya öğe sayısıyla ilgili 20 GB sınırı, mükemmel arama ve sorgu performansı sağladığımızı güvence altına almaktır. Uygulamanızın Azure Depolama için bile 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.

Yani Table api'sinde PartitionKey ve RowKey hala gerekli mi?

Evet. Tablo için API'nin yüzey alanı Azure Tablo depolama SDK'sına benzer olduğundan bölüm anahtarı verileri dağıtmak için verimli bir yol sağlar. Satır anahtarı bu bölümde benzersizdir. Satır anahtarının mevcut olması gerekir ve standart SDK'daki gibi null olamaz. RowKey uzunluğu 255 bayt ve PartitionKey uzunluğu 1 KB'tır.

Tablo api'sinin hata iletileri nelerdir?

Azure Tablo depolama ve Tablo için Azure Cosmos DB aynı SDK'ları kullandığından hataların çoğu aynı olur.

API for Table'da çok sayıda tablo oluşturmayı denediğimde neden kısıtlanıyorum?

Azure Cosmos DB, gecikme süresi, aktarım hızı, kullanılabilirlik ve tutarlılık garantileri sağlayan SLA tabanlı bir sistemdir. Sağlanan bir sistem olduğundan, bu gereksinimleri garanti etmek için kaynakları ayırır. Hızlı tablo oluşturma hızı algılanır ve kısıtlanır. Tablo oluşturma hızına bakmanızı ve dakikada 5'in altına indirmenizi öneririz. Tablo için API'nin sağlanan bir sistem olduğunu unutmayın. Sağladığınız anda, ödemeye başlarsınız.

SDK veya hatalar hakkında geri bildirim Nasıl yaparım??

Geri bildiriminizi aşağıdaki yollardan herhangi biriyle paylaşabilirsiniz:

Security

Rol tabanlı erişim denetimi (RBAC) nedir?

Rol tabanlı erişim denetimi (RBAC), bir kuruluştaki tek tek kullanıcıların rollerine göre bilgisayar veya ağ kaynaklarına erişimi düzenleme yöntemidir. Azure Cosmos DB'de RBAC, kullanıcılara ve uygulamalara veri düzlemi erişimi vermek için kullanılır. Rol tabanlı erişim denetimindeki çeşitli terimler hakkında daha fazla bilgi için güvenlik sözlüğüne bakın.

Azure Cosmos DB Tablo için veri düzlemi seviyesinde rol tabanlı erişim denetimini nasıl etkinleştiririm?

Kullanıcılara ve uygulamalara veri düzlemi erişimi vermek için Azure Cosmos DB yerel rol tabanlı erişim denetimi (RBAC) özelliğini kullanın. Daha fazla bilgi için Veri düzlemi rol tabanlı erişim verme sayfasına bakın.