Azure SQL Database ile ölçek genişletmeScaling out with Azure SQL Database

Out kullanarak Azure SQL veritabanlarını kolayca ölçeklendirebilirsiniz esnek veritabanı araçları.You can easily scale out Azure SQL databases using the Elastic Database tools. Bu araçları ve özelliklerinin veritabanı kaynaklarını kullanmanıza olanak tanır Azure SQL veritabanı hizmet (SaaS) uygulamaları olarak işlem iş yükleri ve özellikle yazılım çözümleri oluşturmak için.These tools and features let you use the database resources of Azure SQL Database to create solutions for transactional workloads, and especially Software as a Service (SaaS) applications. Esnek veritabanı özellikleri oluşur:Elastic Database features are composed of the:

Aşağıdaki grafikte içeren bir mimari gösterilir esnek veritabanı özelliklerini veritabanları koleksiyonunu göre.The following graphic shows an architecture that includes the Elastic Database features in relation to a collection of databases.

Bu grafikte renkleri veritabanı şemaları temsil eder.In this graphic, colors of the database represent schemas. Veritabanları aynı rengi ile aynı şema paylaşır.Databases with the same color share the same schema.

  1. Bir dizi Azure SQL veritabanlarını parçalama mimarisi kullanarak Azure'da barındırılır.A set of Azure SQL databases are hosted on Azure using sharding architecture.
  2. Esnek veritabanı istemci Kitaplığı parça kümeyi yönetmek için kullanılır.The Elastic Database client library is used to manage a shard set.
  3. Bir alt veritabanlarının içine konur bir esnek havuz.A subset of the databases are put into an elastic pool. (Bkz bir havuzu nedir?).(See What is a pool?).
  4. Bir esnek veritabanı iş karşı tüm veritabanları zamanlanan veya geçici T-SQL betikleri çalıştırır.An Elastic Database job runs scheduled or ad hoc T-SQL scripts against all databases.
  5. Bölünmüş Birleştirme aracı verilerini bir parça diğerine taşımak için kullanılır.The split-merge tool is used to move data from one shard to another.
  6. Esnek veritabanı sorgusu parça kümesindeki tüm veritabanları yayılan bir sorgu yazmanızı sağlar.The Elastic Database query allows you to write a query that spans all databases in the shard set.
  7. Esnek işlemleri , çeşitli veritabanları span işlemleri çalıştırmanızı sağlar.Elastic transactions allow you to run transactions that span several databases.

Elastik Veritabanı araçları

Araçlar neden kullanılır?Why use the tools?

Esneklik ve bulut uygulamaları için ölçek elde VM'ler için basit olmuştur ve blob depolama - yalnızca eklemek veya birimleri çıkarmak veya güç artırın.Achieving elasticity and scale for cloud applications has been straightforward for VMs and blob storage - simply add or subtract units, or increase power. Ancak, durum bilgisi olan veri işleme ilişkisel veritabanları için bir sınama kaldığını.But it has remained a challenge for stateful data processing in relational databases. Bu senaryolarda zorluklar ortaya çıktı:Challenges emerged in these scenarios:

  • Büyüyen ve İş yükünüzün ilişkisel veritabanı parçası için kapasite küçültme.Growing and shrinking capacity for the relational database part of your workload.
  • Belirli bir alt - meşgul end-müşteri (Kiracı) gibi veri kümesini etkileyen kaynaklanabilecek etkin yönetme.Managing hotspots that may arise affecting a specific subset of data - such as a busy end-customer (tenant).

Geleneksel olarak, aşağıdaki gibi senaryoları büyük ölçekli veritabanı sunucuları uygulamayı desteklemek için yatırım tarafından giderilmiştir.Traditionally, scenarios like these have been addressed by investing in larger-scale database servers to support the application. Ancak, bu seçenek, tüm işlemler önceden tanımlanmış ticari donanımlarda nerede olacağını bulutta sınırlıdır.However, this option is limited in the cloud where all processing happens on predefined commodity hardware. Bunun yerine, veri dağıtma ve aynı şekilde yapılandırılmış birçok veritabanı arasında işleme ("parçalama" bilinen bir genişleme deseni) alternatif geleneksel büyütme yaklaşımlar hem maliyet ve esneklik sağlar.Instead, distributing data and processing across many identically structured databases (a scale-out pattern known as "sharding") provides an alternative to traditional scale-up approaches both in terms of cost and elasticity.

Yatay ve dikey ölçeklemeHorizontal and vertical scaling

Aşağıdaki şekilde esnek veritabanları Genişletilebilir temel yolu olan ölçeklendirme, yatay ve dikey boyutları gösterir.The following figure shows the horizontal and vertical dimensions of scaling, which are the basic ways the elastic databases can be scaled.

Yatay Dikey Ölçek genişletme karşılaştırması

Yatay ölçekleme ekleme veya kapasite ya da genel performansı ayarlamak için veritabanları kaldırma anlamındadır.Horizontal scaling refers to adding or removing databases in order to adjust capacity or overall performance. Bu aynı zamanda "ölçeklendirme" belirtilmiştir.This is also called “scaling out”. Veri özdeş olarak yapılandırılmış veritabanları koleksiyonunda bölümlenmiş parçalama yatay ölçekleme uygulamak için genel bir yoludur.Sharding, in which data is partitioned across a collection of identically structured databases, is a common way to implement horizontal scaling.

Dikey ölçekleme başvuruyor artırarak veya azaltarak tek bir veritabanının performans düzeyini için — bu "ölçeklendirmeyi." olarak da bilinirVertical scaling refers to increasing or decreasing the performance level of an individual database—this is also known as “scaling up.”

Çoğu bulut ölçekli veritabanı uygulamaları bu iki stratejileri birleşimini kullanın.Most cloud-scale database applications use a combination of these two strategies. Örneğin, bir hizmet uygulaması olarak bir yazılım büyütür veya iş yükü tarafından gerektiği gibi kaynakları küçültür her bitiş müşterinin veritabanına izin vermek için yeni son müşterilere sağlamak için yatay ölçekleme ve dikey ölçeklendirme kullanabilir.For example, a Software as a Service application may use horizontal scaling to provision new end-customers and vertical scaling to allow each end-customer’s database to grow or shrink resources as needed by the workload.

  • Yatay ölçekleme yönetilir kullanarak esnek veritabanı istemci Kitaplığı.Horizontal scaling is managed using the Elastic Database client library.
  • Dikey ölçeklendirme gerçekleştirilir Hizmet katmanını değiştirmek için Azure PowerShell cmdlet'lerini kullanarak veya bir esnek havuz veritabanları koyarak.Vertical scaling is accomplished using Azure PowerShell cmdlets to change the service tier, or by placing databases in an elastic pool.

ParçalamaSharding

Parçalama büyük miktarlarda özdeş olarak yapılandırılmış veri bağımsız veritabanı sayısı dağıtmak için bir tekniktir.Sharding is a technique to distribute large amounts of identically structured data across a number of independent databases. Son müşterilere veya işletmeler için yazılım hizmet (SAAS) tekliflerini oluşturma bulut geliştiriciler ile özellikle yaygın olarak kullanılır.It is especially popular with cloud developers creating Software as a Service (SAAS) offerings for end customers or businesses. Bu son müşterilere "kiracılar" anılır.These end customers are often referred to as “tenants”. Parçalama birkaç nedenden dolayı için gerekli olabilir:Sharding may be required for any number of reasons:

  • Toplam veri miktarını tek bir veritabanının kısıtlamaları içinde sığmayacak kadar büyükThe total amount of data is too large to fit within the constraints of a single database
  • Tek veritabanı özelliklerine genel iş yükü işlem verimliliğini aşıyorThe transaction throughput of the overall workload exceeds the capabilities of a single database
  • Ayrı veritabanlarını her bir kiracı için gerektiği şekilde kiracılar birbirinden, fiziksel yalıtım gerektirebilirTenants may require physical isolation from each other, so separate databases are needed for each tenant
  • Bir veritabanı farklı bölümlerini uyumluluk, performans veya jeopolitik nedeniyle farklı coğrafyalara bulunması gerekebilir.Different sections of a database may need to reside in different geographies for compliance, performance, or geopolitical reasons.

Dağıtılmış aygıtlardan veri alım gibi diğer senaryolarda parçalama geçici olarak düzenlenmiş bir veritabanları kümesi doldurmak için kullanılabilir.In other scenarios, such as ingestion of data from distributed devices, sharding can be used to fill a set of databases that are organized temporally. Örneğin, ayrı bir veritabanı her gün veya hafta ayrılabilir.For example, a separate database can be dedicated to each day or week. Bu durumda, parçalama anahtarı (mevcut parçalı tabloları tüm satırlarda) tarihini temsil eden bir tamsayı olabilir ve söz konusu aralığını kapsayan veritabanlarının alt uygulama tarafından yönlendirilmesi gereken sorgular bir tarih aralığı için bilgileri alınıyor.In that case, the sharding key can be an integer representing the date (present in all rows of the sharded tables) and queries retrieving information for a date range must be routed by the application to the subset of databases covering the range in question.

Bir uygulamadaki her işlem tek bir parçalama anahtarı değerine kısıtlanabilir zaman parçalama en iyi şekilde çalışır.Sharding works best when every transaction in an application can be restricted to a single value of a sharding key. Tüm işlemleri belirli bir veritabanına yerel sağlar.That ensures that all transactions are local to a specific database.

Çok kiracılı ve tek KiracıMulti-tenant and single-tenant

Bazı uygulamalar her bir kiracı için ayrı bir veritabanı oluşturmanın en kolay yaklaşım kullanın.Some applications use the simplest approach of creating a separate database for each tenant. Bu tek bir kiracı parçalama düzeni yalıtımı, yedekleme/geri yükleme yeteneği ve Kiracı bazda ölçeklendirme kaynak sağlar.This is the single tenant sharding pattern that provides isolation, backup/restore ability, and resource scaling at the granularity of the tenant. Tek bir kiracı parçalama ile her veritabanı bir belirli Kiracı kimliği değeri (veya müşteri anahtar değeri ile) ilgili değildir ancak bu anahtarı her zaman verilerde bulunması gerekmez.With single tenant sharding, each database is associated with a specific tenant ID value (or customer key value), but that key need not always be present in the data itself. Bu her istek için uygun veritabanı - yönlendirmek için uygulamanın sorumluluğundadır ve istemci kitaplığının bu kolaylaştırabilir.It is the application’s responsibility to route each request to the appropriate database - and the client library can simplify this.

Tek bir kiracı çok kiracılı karşılaştırması

Diğer senaryolar paketi birden çok kiracıya birlikte ayrı veritabanlarına yalıtma yerine veritabanları içine.Others scenarios pack multiple tenants together into databases, rather than isolating them into separate databases. Tipik bir budur çok kiracılı parçalama düzeni - ve uygulamanın çok sayıda küçük kiracılar yönetir gerçeğiyle güdümlü.This is a typical multi-tenant sharding pattern - and it may be driven by the fact that an application manages large numbers of small tenants. Çok kiracılı parçalama içinde satır veritabanı tablolarındaki tüm Kiracı kimliği tanımlayan anahtar veya parçalama anahtar taşımak için tasarlanmıştır.In multi-tenant sharding, the rows in the database tables are all designed to carry a key identifying the tenant ID or sharding key. Yeniden, uygulama katmanı uygun veritabanına bir kiracının isteği yönlendirme için sorumludur ve bu esnek veritabanı istemci kitaplığı tarafından desteklenebilir.Again, the application tier is responsible for routing a tenant’s request to the appropriate database, and this can be supported by the elastic database client library. Satır düzeyi güvenlik filtresine hangi satırların her Kiracı erişebilir - Ayrıntılar için bkz. Ayrıca, kullanılabilir çok kiracılı uygulamalarla esnek veritabanı araçlarını ve satır düzeyi güvenlik.In addition, row-level security can be used to filter which rows each tenant can access - for details, see Multi-tenant applications with elastic database tools and row-level security. Verileri veritabanları arasında yeniden dağıtma çok kiracılı parçalama deseni gerekli olabilir ve bu esnek veritabanı bölünmüş Birleştirme aracı tarafından sayesinde kolaylaşır.Redistributing data among databases may be needed with the multi-tenant sharding pattern, and this is facilitated by the elastic database split-merge tool. Esnek havuzları kullanan SaaS uygulamalarının tasarım desenleri hakkında daha fazla bilgi edinmek için bkz. Azure SQL Database kullanan Çok Kiracılı SaaS Uygulamaları için Tasarım Desenleri.To learn more about design patterns for SaaS applications using elastic pools, see Design Patterns for Multi-tenant SaaS Applications with Azure SQL Database.

Birden çok from verileri taşımak için tek Kiracı veritabanlarıMove data from multiple to single-tenancy databases

Bir SaaS uygulaması oluştururken, müşteri adayları yazılım deneme sürümünü sunmak için normaldir.When creating a SaaS application, it is typical to offer prospective customers a trial version of the software. Bu durumda, verileri birden çok Kiracı veritabanı kullanmak için uygun maliyetli.In this case, it is cost-effective to use a multi-tenant database for the data. Bir müşteri adaylarını olur, çünkü daha iyi performans sağlar ancak, tek Kiracı veritabanı daha iyidir.However, when a prospect becomes a customer, a single-tenant database is better since it provides better performance. Müşteri verileri deneme süresi boyunca yarattıysanız kullanmak bölünmüş Birleştirme aracı verileri birden çok kiracıdan yeni tek Kiracı veritabanına taşımak için.If the customer had created data during the trial period, use the split-merge tool to move the data from the multi-tenant to the new single-tenant database.

Sonraki adımlarNext steps

İstemci Kitaplığı gösteren bir örnek uygulama için bkz: esnek veritabanı araçlarını kullanmaya başlama.For a sample app that demonstrates the client library, see Get started with Elastic Database tools.

Araçları kullanmak için var olan veritabanlarını dönüştürmek için bkz: genişletilecek varolan veritabanlarını geçirme.To convert existing databases to use the tools, see Migrate existing databases to scale out.

Esnek havuz ayrıntılarını görmek için bkz: esnek havuzlar için fiyat ve performans konuları, veya ile yeni bir havuz oluşturma esnek havuzlar.To see the specifics of the elastic pool, see Price and performance considerations for an elastic pool, or create a new pool with elastic pools.

Ek kaynaklarAdditional resources

Esnek veritabanı araçlarını henüz kullanmıyor musunuz?Not using elastic database tools yet? Kullanıma bizim Başlarken Kılavuzu.Check out our Getting Started Guide. Sorular için lütfen bize üzerinde ulaşmak SQL veritabanı Forumu ve özellik istekler için lütfen bunları Ekle SQL veritabanı geri bildirim Forumunda.For questions, please reach out to us on the SQL Database forum and for feature requests, please add them to the SQL Database feedback forum.