Criando bancos de dados de nuvem escalonáveisBuilding scalable cloud databases

A escala horizontal dos bancos de dados pode ser feita facilmente usando recursos e ferramentas escalonáveis do Banco de Dados SQL do Azure.Scaling out databases can be easily accomplished using scalable tools and features for Azure SQL Database. Em particular, você pode usar a Biblioteca de cliente do banco de dados elástico para criar e gerenciar bancos de dados escalonados.In particular, you can use the Elastic Database client library to create and manage scaled-out databases. Esse recurso permite que você desenvolva facilmente aplicativos fragmentados usando centenas — ou até mesmo milhares - de bancos de dados SQL do Azure.This feature lets you easily develop sharded applications using hundreds—or even thousands—of Azure SQL databases.

Para baixar:To download:

DocumentaçãoDocumentation

  1. Introdução às ferramentas do Banco de Dados ElásticoGet started with Elastic Database tools
  2. Recursos do Banco de Dados ElásticoElastic Database features
  3. Gerenciamento de mapa de fragmentosShard map management
  4. Migrar bancos de dados existentes para expansãoMigrate existing databases to scale out
  5. Roteamento dependente de dadosData dependent routing
  6. Consultas com vários fragmentosMulti-shard queries
  7. Adicionando um fragmento usando ferramentas do Banco de Dados ElásticoAdding a shard using Elastic Database tools
  8. Aplicativos multilocatários com ferramentas de banco de dados elástico e segurança em nível de linhaMulti-tenant applications with elastic database tools and row-level security
  9. Atualizar aplicativos de biblioteca de clienteUpgrade client library apps
  10. Visão geral de consultas elásticasElastic queries overview
  11. Glossário de ferramentas de banco de dados elásticoElastic database tools glossary
  12. Biblioteca cliente do Banco de Dados Elástico com Entity FrameworkElastic Database client library with Entity Framework
  13. Biblioteca de cliente de banco de dados elástico com DapperElastic database client library with Dapper
  14. Ferramenta de mesclagem/divisãoSplit-merge tool
  15. Contadores de desempenho do gerenciador de mapa de fragmentosPerformance counters for shard map manager
  16. Perguntas frequentes sobre ferramentas de banco de dados elásticoFAQ for Elastic database tools

Recursos do clienteClient capabilities

Escalar horizontalmente aplicativos usando a fragmentação apresenta desafios para o desenvolvedor e para o administrador.Scaling out applications using sharding presents challenges for both the developer as well as the administrator. A biblioteca de cliente simplifica as tarefas de gerenciamento, fornecendo ferramentas que permitem que desenvolvedores e administradores gerenciam bancos de dados escalados.The client library simplifies the management tasks by providing tools that let both developers and administrators manage scaled-out databases. Em um exemplo típico, há muitos bancos de dados, conhecidos como "fragmentos", para gerenciar.In a typical example, there are many databases, known as "shards," to manage. Os clientes são localizados no mesmo banco de dados e há um banco de dados por cliente (um esquema de locatário único).Customers are co-located in the same database, and there is one database per customer (a single-tenant scheme). A biblioteca de cliente inclui estes recursos:The client library includes these features:

  • Gerenciamento de mapa de fragmentos: um banco de dados especial chamado de “gerenciador de mapa de fragmentos” é criado.Shard Map Management: A special database called the "shard map manager" is created. O gerenciamento de mapa de fragmentos é a capacidade de um aplicativo de gerenciar metadados sobre seus fragmentos.Shard map management is the ability for an application to manage metadata about its shards. Os desenvolvedores podem usar essa funcionalidade para registrar bancos de dados como fragmentos, descrever os mapeamentos de chaves de fragmentação individuais ou intervalos de chaves para os bancos de dados e manter esses metadados como o número e a composição de bancos de dados que evolui para refletir as alterações de capacidade.Developers can use this functionality to register databases as shards, describe mappings of individual sharding keys or key ranges to those databases, and maintain this metadata as the number and composition of databases evolves to reflect capacity changes. Sem a biblioteca de cliente do banco de dados elástico, você precisaria gastar muito tempo escrevendo o código de gerenciamento ao implementar a fragmentação.Without the elastic database client library, you would need to spend a lot of time writing the management code when implementing sharding. Para obter mais detalhes, consulte Gerenciamento de mapa do fragmento.For details, see Shard map management.

  • Roteamento dependente de dados: imagine uma solicitação chegando ao aplicativo.Data dependent routing: Imagine a request coming into the application. Com base no valor da chave de fragmentação da solicitação, o aplicativo precisa determinar o banco de dados correto com base no valor da chave.Based on the sharding key value of the request, the application needs to determine the correct database based on the key value. Em seguida, ele abre uma conexão com o banco de dados para processar a solicitação.It then opens a connection to the database to process the request. Roteamento dependente de dados fornece a capacidade de abrir conexões com uma única chamada simples para o mapa do fragmento do aplicativo.Data dependent routing provides the ability to open connections with a single easy call into the shard map of the application. O roteamento dependente de dados era outra área do código de infraestrutura que agora é coberta por uma funcionalidade na biblioteca de cliente de banco de dados elástico.Data dependent routing was another area of infrastructure code that is now covered by functionality in the elastic database client library. Para obter mais detalhes, consulte o Roteamento dependente de dados.For details, see Data dependent routing.

  • Consultas de vários fragmentos (MSQ) : funciona quando uma solicitação envolver vários (ou todos os) fragmentos.Multi-shard queries (MSQ): Multi-shard querying works when a request involves several (or all) shards. Uma consulta de vários fragmento executa o mesmo código T-SQL em todos os fragmentos ou um conjunto de fragmentos.A multi-shard query executes the same T-SQL code on all shards or a set of shards. Os resultados de fragmentos de participantes são mesclados em um resultado geral definido usando a semântica UNION ALL.The results from the participating shards are merged into an overall result set using UNION ALL semantics. A funcionalidade é exposta por meio da biblioteca cliente que trata muitas tarefas, incluindo: gerenciamento de conexões, gerenciamento de threads, tratamento de falhas e os processamentos de resultados intermediários.The functionality as exposed through the client library handles many tasks, including: connection management, thread management, fault handling, and intermediate results processing. MSQ pode consultar até centenas de fragmentos.MSQ can query up to hundreds of shards. Para obter detalhes, veja Consulta de vários fragmentos.For details, see Multi-shard querying.

Em geral, os clientes que usam as ferramentas de banco de dados elástico podem esperar obter a funcionalidade completa do T-SQL durante o envio de operações de fragmento local em vez de operações entre fragmentos que têm suas próprias semânticas.In general, customers using elastic database tools can expect to get full T-SQL functionality when submitting shard-local operations as opposed to cross-shard operations that have their own semantics.

Próximas etapasNext steps

Recursos adicionaisAdditional resources

Ainda não está usando ferramentas de banco de dados elástico?Not using elastic database tools yet? Confira nosso Guia de Introdução.Check out our Getting Started Guide. Em caso de dúvidas, entre em contato conosco pelo fórum do Banco de Dados SQL e, para solicitações de recursos, adicione-as ao fórum de comentários sobre o Banco de Dados SQL.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.