VENDAS: 1-800-867-1389

Considerações para migrar dados particionados para o Banco de dados SQL do Azure

Atualizado: abril de 2014

O particionamento de dados é uma técnica bem-estabelecida e comum em soluções locais para gerenciar sistemas de banco de dados muito grandes. Nessa técnica, os dados em um banco de dados grande são divididos e distribuídas em partições, principalmente para melhorar a capacidade de gerenciamento, o desempenho e a disponibilidade do banco de dados. Os administradores e desenvolvedores de banco de dados que tradicionalmente trabalhavam com o SQL Server empregavam o particionamento por uma série de motivos, como os seguintes:

  • Aumentar a eficiência do gerenciamento de dados

  • Melhorar a resposta de consultas

  • Aumentar a simultaneidade de consultas

  • Adicionar mais potência de computação aproveitando vários servidores físicos

  • Manter um nível de disponibilidade

  • Superar limitações de armazenamento físico

  • Reduzir a largura de uma tabela

Ao considerar uma migração para a plataforma do Banco de dados SQL do Azure do SQL Server local, pode haver razões adicionais para particionar dados, como, por exemplo:

  • Multilocação

  • Acessar mais potência de computação

  • Evitar limitação

  • Indisponibilidade de dados

  • Custos de armazenamento mais eficazes

  • Restrições de tamanho dos dados

Os recursos do SQL Server que são usados normalmente para particionar dados em soluções locais incluem: Replicação, Particionamento de tabela, Exibições particionadas, Exibições particionadas distribuídas, Estratégias do grupo de arquivo e Consultas de bancos de dados (consultas distribuídas). O Banco de dados SQL do Azure não oferece suporte a todos esses recursos exceto exibições particionadas. O banco de dados SQL oferece uma solução de expansão, que não está disponível na versão local.

Se a solução que você estiver migrando for simples, que depende de um único banco de dados que não exige recursos significativos, haverá uma alta probabilidade de ela não usar nenhum recurso que tente particionar dados. Se a solução usar os recursos mencionados acima ou tiver demandas significativas de computação, transpor os recursos para o banco de dados SQL provavelmente exigirá um novo design do modelo de banco de dados.

Autores: Shaun Tinline-Jones
Colaboradores: Sreedhar Pelluru
Revisores: Rama Ramani, Valery Mizonov, Kun Cheng, Steve Howard

Em termos de particionamento, a replicação pode ser usada nos seguintes cenários:

  • Mover subconjuntos de dados de várias origens para um único local

  • Um único banco de dados serve como banco de dados de leitura/gravação, e vários assinantes desse banco de dados servem como bancos de dados somente leitura de balanceamento de carga.

  • Os subconjuntos de dados atendem aos usuários diferentes com base em parâmetros como a localização geográfica e, em seguida, os dados são replicados para uma solução que combina todos esses subconjuntos (publicadores).

As razões mais comuns para implementar a replicação são:

  • Criar uma réplica somente leitura de um banco de dados OLTP de leitura/gravação.

  • Manter uma cópia de espera passiva de um banco de dados.

  • Popular uma área de preparação de dados.

  • Executar apenas dados relevantes disponíveis para o subconjunto de usuários.

  • Aprimorar as eficiências de computação e gerenciamento baseadas em subconjuntos de dados.

O banco de dados SQL não oferece suporte a replicação. O recurso de banco de dados SQL que é o mais semelhante ao recurso de replicação é o recurso Sincronização de dados SQL do Azure. Esse recurso depende de gatilhos e tabelas de Change Data Capture e trabalhos agendados para obter a replicação de dados. É possível replicar determinadas tabelas; no entanto, não é possível selecionar um subconjunto dos dados de uma tabela.

Primeiro, considere as razões por trás do design de replicação local. Se o objetivo for recuperação de desastres (DR), o banco de dados SQL será ideal. Se o objetivo for DR geográfico, o banco de dados SQL ainda não será capaz de realizar. Se for descarregar os recursos de computação, onde assinantes estejam usando o design idêntico, o banco de dados SQL tem a opção de expandir.

A expansão no Banco de Dados SQL é uma forma de obter uma melhor escalabilidade e desempenho da camada de banco de dados do seu aplicativo por meio do particionamento horizontal. Uma ou mais tabelas em um banco de dados são divididas por linha e distribuídas entre os vários bancos de dados. Em geral, esse tipo de particionamento horizontal é chamado de ‘fragmentação’.

Os dados de tabelas particionadas são divididos em unidades que podem ser distribuídas por mais de um grupo de arquivos em um banco de dados. Os dados são particionados horizontalmente, de forma que os grupos de linhas são mapeados em partições individuais. Geralmente, uma grande tabela é particionada se a tabela contiver, ou for esperado que contenha, muitos dados usados de diferentes maneiras e consultas e atualizações feitas na tabela que não estejam sendo executadas como pretendido, ou tarefas de manutenção como backup muito demorado. O particionamento de tabela é geralmente implementado para armazenar dados em diferentes volumes, melhorar eficiências de backup/restauração, melhorar o desempenho das consultas e aumentar a simultaneidade de consultas.

O banco de dados SQL não dá suporte a particionamento de tabela dessa vez. O banco de dados SQL evitará a necessidade de particionamento de tabela se o objetivo for superar considerações sobre a capacidade de disco. Considere usar a solução de expansão na migração para o Banco de Dados SQL.

As exibições particionadas permitem dividir uma tabela grande em um banco de dados em uma série de tabelas menores que contêm subconjuntos específicos de dados e, em seguida, cria uma exibição UNION ALL sobre as tabelas pequenas para que a exibição seja exibida como uma única tabela que contém todos os dados. As exibições particionadas são geralmente usadas pela mesma razão que as tabelas particionadas.

O banco de dados SQL dá suporte a exibições particionadas; consequentemente, migrar exibições particionadas para o banco de dados SQL deve ser simples.

As exibições particionadas distribuídas unem dados particionados horizontalmente de um conjunto de tabelas membro distribuídas por instâncias diferentes do banco de dados em servidores de banco de dados diferentes. Você pode usar exibições particionadas distribuídas para aproveitar a capacidade de processamento de servidores de bancos de dados diferentes, melhorar o desempenho das consultas recentes dividindo a tabela grande em tabelas menores e compartilhar a carga entre uma configuração de expansão de servidores de banco de dados.

O banco de dados SQL ainda não dá suporte a exibições particionadas distribuídas no momento. Considere usar a solução de expansão.

Os grupos de arquivos são conhecidos como coleções de arquivos e são usados para simplificar o posicionamento dos dados e as tarefas administrativas, como funções de backup e restauração. Eles são geralmente usados para aprimorar o desempenho do banco de dados armazenando dados em vários discos, vários controladores de discos ou sistemas de disco RAID (Redundant Array of Independent Disks). Quando vários grupos de arquivos são utilizados, os arquivos de banco de dados podem ser armazenados em backup e restaurados individualmente.

Não há suporte para grupos de arquivos no banco de dados SQL. Se você estiver usando grupos de arquivos para fins administrativos, não precisará se preocupar mais com isso porque o banco de dados SQL cuida deles. Se for por motivo de desempenho, considere usar uma solução de expansão.

As consultas de bancos de dados (consultas distribuídas) são geralmente usadas para acessar dados distribuídos entre várias instâncias do SQL Server.

O modelo de acesso a dados do banco de dados SQL não oferece suporte a consultas de bancos de dados neste momento e o comando USE não tem suporte. É possível codificar junções ou comparações de banco de dados no aplicativo depois que os dados tiverem sido retornados dos bancos de dados apropriados. Considere usar uma solução de expansão uma vez que é a solução de particionamento que é suportada pelo Banco de Ddados SQL.

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
Mostrar:
© 2014 Microsoft