Esta página descreve e explica como o armazenamento em camadas funciona no Spanner. Esse recurso é compatível com bancos de dados com dialetos do GoogleSQL e do PostgreSQL.
O armazenamento em camadas do Spanner é um recurso totalmente gerenciado que permite escolher se os dados serão armazenados em unidades de estado sólido (SSD) ou unidades de disco rígido (HDD). Por padrão, quando você não está usando o armazenamento em camadas, os dados são armazenados em SSD. Dependendo da frequência com que você usa ou acessa os dados, considere usar o armazenamento em camadas e armazenar dados em SSD e HDD.
- O armazenamento SSD é a opção mais eficiente (mais consultas por segundo) e econômica para a maioria dos casos de uso. Use-o para armazenar dados ativos com alta capacidade de processamento de gravação e leitura e dados que exigem acesso de baixa latência.
- O armazenamento HDD é adequado para grandes conjuntos de dados que não são sensíveis à latência, são acessados com pouca frequência ou quando o custo do armazenamento é uma consideração importante.
O uso do armazenamento em camadas permite aproveitar o armazenamento SSD, que oferece alto desempenho de dados ativos, e o armazenamento HDD, que oferece acesso aos dados pouco frequentes a um custo menor.
Escolher entre armazenamento SSD e HDD
A tabela a seguir lista as diferenças e semelhanças entre o armazenamento SSD e HDD. Os números de capacidade de processamento na tabela são por nó e escalonam linearmente com o número de nós na instância do Spanner. Em caso de dúvida, recomendamos que você escolha o armazenamento SSD.
| Armazenamento SSD | Armazenamento HDD | |
|---|---|---|
| Casos de uso de destino | Dados que exigem alta capacidade de processamento de gravação e leitura e acesso aos dados de baixa latência | Grandes conjuntos de dados que não são sensíveis à latência ou são acessados com pouca frequência |
| Capacidade de processamento esperada por nó Configurações regionais |
Até 22.500 QPS de leitura Até 3.500 QPS de gravação |
Até 1.500 QPS de leitura Até 3.500 QPS de gravação |
| Capacidade de processamento esperada por nó Configurações birregionais e multirregionais |
Até 15.000 QPS de leitura por região Até 2.700 QPS de gravação |
Até 1.000 QPS de leitura por região Até 2.700 QPS de gravação |
| Operações compatíveis | Leitura, gravação, atualização e exclusão | Leitura, gravação, atualização e exclusão |
Use gravações otimizadas para aumentar a capacidade de processamento de gravação para além dos números na tabela. Para mais informações, consulte Visão geral de desempenho.
Benefícios
O armazenamento em camadas oferece os seguintes benefícios ao permitir que você use o armazenamento SSD e HDD:
- Redução significativa do custo total de propriedade: o armazenamento HDD oferece uma opção de custo menor para grandes conjuntos de dados que não são sensíveis à latência ou são acessados com pouca frequência.
- Facilidade de gerenciamento: oferece um serviço de camadas totalmente gerenciado sem a complexidade de pipelines adicionais e lógica dividida.
- Experiência unificada e consistente: oferece acesso aos dados unificado e um único conjunto de métricas em dados quentes e frios (mutáveis)
- Desempenho aprimorado: melhora o desempenho da consulta organizando os dados em um grupo de localidade diferente, o que fornece localidade e isolamento de dados em colunas. Os dados no mesmo grupo de localidade são armazenados fisicamente próximos.
Como o armazenamento em camadas funciona
Por padrão, ao criar uma nova instância, os dados são armazenados apenas no armazenamento SSD. Da mesma forma, os dados em instâncias atuais também são armazenados apenas no armazenamento SSD.
Se você optar por usar o armazenamento em camadas para armazenar alguns dados no armazenamento HDD, você deve
criar um grupo de localidade,
que é usado para definir a política de armazenamento em camadas para dados no seu esquema. Ao criar um grupo de localidade, você pode definir o tipo de armazenamento, ssd ou hdd. Opcionalmente, também é possível definir o período de tempo em que os dados são armazenados no armazenamento SSD antes de serem movidos para o armazenamento HDD. Esse tempo é relativo ao carimbo de data/hora de confirmação dos dados. Depois que o tempo especificado passar, o Spanner migrará os dados para o armazenamento HDD durante o ciclo de compactação normal, que normalmente ocorre ao longo de sete dias a partir do horário especificado. Para
migrar dados entre SSD e HDD mais rápido do que o ciclo de compactação normal, você
pode acionar manualmente uma compactação principal.
Isso é conhecido como uma política de armazenamento em camadas baseada em idade. Ao usar uma política de armazenamento em camadas baseada em idade, o período mínimo de tempo em que os dados precisam ser armazenados em SSD antes de serem movidos para o armazenamento HDD é de uma hora.
Com os grupos de localidade definidos, ao criar as tabelas, é possível definir a política de armazenamento em camadas no banco de dados, na tabela, na coluna ou no índice secundário. A política de armazenamento em camadas determina como e onde os dados são armazenados. Para instruções, consulte Criar e gerenciar grupos de localidade.
Detalhes importantes do comportamento
Os seguintes comportamentos se aplicam ao usar o armazenamento em camadas:
- As camadas de armazenamento são aplicadas no nível da célula: as políticas de armazenamento em camadas baseadas em idade são aplicadas a células individuais em uma linha, com base no carimbo de data/hora de confirmação da célula. Os dados são movidos para o armazenamento HDD se o carimbo de data/hora de confirmação for mais antigo que a duração especificada. Portanto, uma única linha pode ter alguns dados no SSD e outros no HDD, dependendo de quando cada célula foi atualizada pela última vez.
- As tabelas intercaladas são independentes: as configurações do grupo de localidade e as políticas de armazenamento em camadas não são herdadas por tabelas filhas intercaladas. É necessário aplicar essas configurações a cada tabela individualmente.
- As operações de leitura não afetam o envelhecimento dos dados: a leitura de dados de uma tabela não redefine a idade nem impede que ela seja movida para o HDD. Somente uma operação de gravação que atualiza os dados redefine o carimbo de data/hora de confirmação e os mantém no armazenamento SSD.
- Como mover dados do HDD de volta para o SSD: ao atualizar dados armazenados no HDD, o Spanner grava a nova versão dos dados diretamente no armazenamento SSD A versão anterior dos dados no HDD é marcada como obsoleta e limpa posteriormente por um processo de compactação em segundo plano. É possível acionar manualmente uma compactação principal para limpar mais rápido. Isso garante que as atualizações de dados frios se beneficiem imediatamente do desempenho do SSD para leituras subsequentes dos novos dados.
Backup e restauração
É possível fazer backup e restaurar os dados usando backups do Spanner.
O backup contém todas as informações do esquema de armazenamento, incluindo
INFORMATION_SCHEMA.LOCALITY_GROUP_OPTIONS, que
especifica o tipo de armazenamento de cada grupo de localidade. Para restaurar um backup que contém grupos de localidade em uma nova instância, a instância de destino precisa estar na edição Enterprise ou Enterprise Plus do Spanner.
Data Boost
É possível usar o Spanner Data Boost para acessar dados no armazenamento SSD ou HDD. A consulta de dados no HDD usa a capacidade de carga do disco HDD da instância , que faz parte da capacidade de computação.
Índices de pesquisa
A pesquisa de texto completo e os índices de vetores herdam o grupo de localidade definido no objeto do banco de dados.
Observabilidade
Os seguintes recursos de observabilidade estão disponíveis para armazenamento em camadas.
Métricas do Cloud Monitoring
O Spanner fornece as seguintes métricas para ajudar a monitorar o uso e os dados do armazenamento em camadas usando o Cloud Monitoring:
spanner.googleapis.com/instance/storage/used_bytes(armazenamento total): mostra o total de bytes de dados armazenados no armazenamento SSD e HDD.spanner.googleapis.com/instance/storage/combined/limit_bytes: mostra o limite de armazenamento combinado de SSD e HDD.spanner.googleapis.com/instance/storage/combined/limit_bytes_per_processing_unit: mostra o limite de armazenamento combinado de SSD e HDD para cada unidade de processamento.spanner.googleapis.com/instance/storage/combined/utilization: mostra a utilização combinada de armazenamento SSD e HDD, em comparação com o limite de armazenamento combinado.spanner.googleapis.com/instance/disk_load: mostra o uso do HDD em porcentagem. Se a instância atingir 100% de carga do disco HDD, você terá um aumento significativo na latência.
Se você tiver consultas que filtram métricas atuais por storage_class:ssd, remova o filtro para conferir o uso do HDD.
Para saber mais sobre como monitorar os recursos do Spanner, consulte Monitorar instâncias com insights do sistema e Monitorar instâncias com o Cloud Monitoring.
Esquema de informações
INFORMATION_SCHEMA.LOCALITY_GROUP_OPTIONS contém a lista de grupos de localidade e opções no banco de dados do Spanner. Ele inclui informações para o grupo de localidade default. Para mais informações, consulte
locality_group_options para bancos de dados com dialeto do GoogleSQL
e locality_group_options para bancos de dados com dialeto do PostgreSQL.
Tabelas de estatísticas integradas
As seguintes tabelas de estatísticas integradas estão disponíveis para bancos de dados que usam armazenamento em camadas:
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR: mostra o uso do armazenamento HDD e SSD para cada tabela no banco de dados.SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR: mostra o uso do armazenamento HDD e SSD para cada grupo de localidade no banco de dados.
Para mais informações, consulte Estatísticas de tamanhos de tabelas.
As tabelas de estatísticas de consulta e de leitura têm a seguinte coluna relacionada ao armazenamento em camadas:
AVG_DISK_IO_COST: o custo médio dessa consulta em termos de carga do disco HDD do Spanner. Use esse valor para fazer comparações relativas de custo de E/S do HDD entre as leituras executadas no banco de dados. Um valor mais alto indica que você está usando mais carga do disco HDD e que a consulta pode ser mais lenta do que se estivesse sendo executada no SSD. Além disso, se a carga do disco HDD estiver na capacidade máxima, o desempenho das consultas poderá ser ainda mais afetado.
Para mais informações, consulte Estatísticas de consulta e Estatísticas de leitura.
Preços
Não há cobrança adicional pelo uso do armazenamento em camadas. Você paga o preço padrão do Spanner pela quantidade de capacidade de computação usada pela instância e pela quantidade de armazenamento usada pelo banco de dados. Os dados armazenados em SSD e HDD são faturados nas respectivas taxas de armazenamento. Não há cobrança pela movimentação de dados entre o armazenamento SSD e HDD. A consulta de dados no HDD usa a capacidade de carga do disco HDD da instância, que faz parte do preço da capacidade de computação. Para mais informações, consulte os preços do Spanner.
A seguir
- Saiba mais sobre grupos de localidade.
- Saiba como criar e gerenciar grupos de localidade.
- Saiba mais sobre como otimizar consultas com pushdown de predicado de carimbo de data/hora.