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

ŞUNLAR IÇIN GEÇERLIDIR: Tablo

Tablo için Azure Cosmos DB ile Azure Tablo Depolama karşılaştırma

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 için ayrılmış kapasite modeli kullanır, ancak bu, kapasite kullanılmasa bile tablo oluşturulur oluşturulmaz kapasite için ödeme yapmak anlamına gelir. Azure Tablo depolama ile yalnızca kullanılan kapasite için ödeme kullanılmaktadı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.

  • İkili alanlar gibi Azure Cosmos DB'nin kodlama bilgilerine yönelik iç biçimlerinden bazıları şu anda olabildiğince verimli değildir. Bu nedenle bu, veri boyutuyla ilgili beklenmeyen sınırlamalara neden olabilir. Örneğin, kodlama verilerin boyutunu artırdığından, şu anda ikili verileri depolamak için tablo varlığının tam meg'ini kullanamıyor.

  • Azure Cosmos DB , , etagridve varlık özellik adlarını IDayırır ve ResourceId şu anda desteklenmemektedir.

  • 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 Açıklama Tablo Depolama'de 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 desteklenmemektedir ve Azure Cosmos DB'de analiz ve günlük kaydı Azure Depolama Tablolarından farklı şekilde işlenmektedir Yes Hayır
    OPTIONS /<table-resource-name> CorS tablo isteğinin ön kontrolleri Bu, Azure Cosmos DB'nin şu anda desteklemediği CORS'nin bir parçasıdır. Yes Hayır
    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ır
    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ır
  • 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ğlan Dize sayfasından alabilirsiniz.

tablo api'sinin .NET SDK'sında istek seçenekleri için yapılandırma ayarlarını geçersiz Nasıl yaparım??

Bazı ayarlar CreateCloudTableClient yönteminde ve diğerleri istemci uygulamasının app Ayarlar 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.

Tablo api'siyle kullanılmak üzere Azure Cosmos DB'de depolanan tablo verilerini Nasıl yaparım? görüntüleyemiyor musunuz?

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. Azure Depolama İstemci Araçları sayfasında tablo araçlarının listesi 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 Tablo için Azure Tablo Depolama ve Azure Cosmos DB'ye 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.

Mevcut bir Azure Tablo depolama uygulamasını bu teklife Nasıl yaparım? geçirebilirsiniz?

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 izlemek Nasıl yaparım??

İstekleri ve depolama kullanımını izlemek için Tablo Ölçümleri için API'yi kullanabilirsiniz.

Nasıl yaparım? gereken aktarım hızını hesaplayamıyorum?

İş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.

Tablo SDK'sı 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.

Tablo api'sindeki verilerin çoğaltmasını Azure'ın birden fazla bölgesine Nasıl yaparım? ekleyin?

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 değiştirmek Nasıl yaparım??

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 tercih ettiğim okuma bölgelerini düşük gecikme süresi için Nasıl yaparım? yapılandırdı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, varsayılan olarak Sınırlanmış eskime tutarlılığı ile "Kendi yazmalarınızı okuma" ile düşük gecikme süreli okumalar sağlar. 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 sağlayarak yük devretmenin nereye devredebileceğini denetleyebilirsiniz. Veritabanını kullanmak için orada da bir uygulama sağlamanız gerekir. Bunu yaptığınızda müşterileriniz kapalı kalma süresi yaşamaz. En son .NET istemci SDK'sı otomatik giriştir, ancak diğer SDK'lar değildir. Başka bir ifadeyle, devre dışı olan bölgeyi algılayabilir ve yeni bölgeye otomatik olarak yük devredebilir.

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 Veri Gezgini portalda ayarlanabilir, değiştirmek istediğiniz tabloya gidin ve ardından Ölçek & Ayarlar-Dizin> oluşturma İlkesi'ne gidin, istediğiniz değişikliği yapın ve ardından Kaydet'e gidin.

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.
  • Kapsayıcıdan veya arka uçta bir dizi kapsayıcıdan daha fazla aktarım hızına ihtiyacınız vardır. Örneğin, kullanılan aktarım hızının sağlanan aktarım hızının üzerinde olduğunu ve azaltıldığınızı görürsünüz. Daha fazla bilgi için bkz . Azure Cosmos DB kapsayıcıları için aktarım hızını ayarlama.

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 teklifi için API'deki tablolarda hız sınırlamasını Nasıl yaparım? işleyeceksiniz?

İ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. Altyapı kiracının işlemlerinde idareyi zorlayabildiğinde bu garanti mümkündür. TableThroughput ayarı, platform bu kapasiteyi ayırdığından ve operasyonel başarıyı garanti ettiğinden garantili aktarım hızı ve gecikme süresi elde edersiniz.

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 alamıyorum" bildirimi (bir bölümün dolu olduğunu belirtir). 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. Azure Depolama için bile uygulamanızın 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.

Tablo api'sinde art küçümser çok tablo oluşturmaya çalıştığımda neden kısıtlanmış durumdayım?

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: