Esta página descreve e explica como o armazenamento hierárquico funciona no Spanner. Esta funcionalidade é suportada em bases de dados com dialeto GoogleSQL e bases de dados com dialeto PostgreSQL.
O armazenamento hierárquico do Spanner é uma funcionalidade de armazenamento totalmente gerida que lhe permite escolher se quer armazenar os seus dados em unidades de estado sólido (SSD) ou unidades de discos rígidos (HDD). Por predefinição, quando não está a usar o armazenamento hierárquico, os seus dados são armazenados no armazenamento SSD. Consoante a frequência com que usa ou acede aos dados, pode considerar usar o armazenamento hierarquizado e armazenar dados em armazenamento SSD e HDD.
- O armazenamento SSD é a opção com melhor desempenho (mais consultas por segundo) e mais rentável para a maioria dos exemplos de utilização. Deve usá-la para armazenar dados ativos com um elevado débito de leitura e gravação, bem como dados que requerem acesso a dados de baixa latência.
- O armazenamento em HDD é, por vezes, adequado para conjuntos de dados grandes que não são sensíveis à latência, aos quais se acede com pouca frequência ou se o custo do armazenamento for uma consideração importante.
A utilização do armazenamento hierarquizado permite-lhe tirar partido do armazenamento SSD, que suporta o elevado desempenho dos dados ativos, e do armazenamento HDD, que suporta o acesso pouco frequente aos dados a um custo inferior.
Escolha entre o armazenamento SSD e HDD
A tabela seguinte indica as diferenças e as semelhanças entre o armazenamento SSD e HDD. Em caso de dúvida, recomendamos que escolha o armazenamento SSD.
Armazenamento SSD | Armazenamento no HDD | |
---|---|---|
Exemplos de utilização de segmentação | Dados que requerem um elevado débito de leitura e escrita, e acesso a dados de baixa latência | Conjuntos de dados grandes que não são sensíveis à latência ou aos quais se acede com pouca frequência |
Débito esperado por nó Configurações regionais |
Até 22 500 CPS de leitura Até 3500 CPS de escrita |
Até 1500 CPS de leitura Até 3500 CPS de escrita |
Débito esperado por nó Configurações de região dupla e multirregião |
Até 15 000 CPS de leitura por região Até 2700 CPS de escrita |
Até 1000 CPS de leitura por região Até 2700 CPS de escrita |
Operações suportadas | Ler, escrever, atualizar e eliminar | Ler, escrever, atualizar e eliminar |
Use gravações otimizadas de débito para aumentar o débito de gravação além dos números na tabela. Para mais informações, consulte o artigo Vista geral do desempenho.
Vantagens
O armazenamento hierárquico oferece as seguintes vantagens, permitindo-lhe usar armazenamento SSD e HDD:
- Redução significativa do custo total de propriedade: o armazenamento em HDD oferece uma opção de custo inferior para grandes conjuntos de dados que não são sensíveis à latência ou aos quais se acede com pouca frequência.
- Facilidade de gestão: oferece um serviço de organização em camadas totalmente gerido sem a complexidade de pipelines adicionais e lógica de divisão.
- Experiência unificada e consistente: oferece acesso unificado aos dados e um conjunto único de métricas em dados ativos e (mutáveis) inativos
- Desempenho melhorado: melhora o desempenho das consultas organizando os dados em diferentes grupos de localidades, o que oferece localidade e isolamento dos dados em todas as colunas. Os dados no mesmo grupo de localidades são armazenados fisicamente próximos.
Como funciona o armazenamento hierárquico
Por predefinição, quando cria uma nova instância, os dados são armazenados apenas no armazenamento SSD. Da mesma forma, os dados nas instâncias existentes também são armazenados apenas no armazenamento SSD.
Se optar por usar o armazenamento em camadas para armazenar alguns dados no armazenamento HDD, tem de
criar um grupo de localidades,
que é usado para definir a política de armazenamento em camadas para os dados no seu esquema. Quando cria um grupo de localidades, pode definir o tipo de armazenamento como ssd
ou hdd
. Opcionalmente, também pode definir o período durante o qual os dados são armazenados no armazenamento SSD antes de serem movidos para o armazenamento HDD. Após o tempo especificado, o Spanner migra os dados para o armazenamento em HDD durante o respetivo ciclo de compactação normal, que ocorre normalmente ao longo de sete dias a partir do tempo especificado. Isto é conhecido como uma política de armazenamento hierárquico com base na idade. Quando usa uma política de armazenamento hierarquizada baseada na idade, o tempo mínimo durante o qual os dados têm de ser armazenados no SSD antes de serem movidos para o armazenamento HDD é de uma hora.
Com os grupos de localidades definidos, quando cria as tabelas, pode definir a política de armazenamento hierárquico ao nível da base de dados, da tabela, da coluna ou do índice secundário. A política de armazenamento hierarquizado determina como e onde os dados são armazenados. Para ver instruções, consulte o artigo Crie e faça a gestão de grupos de localidades.
Cópia de segurança e restauro
Pode fazer uma cópia de segurança e restaurar os seus dados através das cópias de segurança do Spanner.
A cópia de segurança 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 localidades. Para restaurar uma cópia de segurança que contenha grupos de localidades numa nova instância, a instância de destino tem de estar na edição Enterprise do Spanner ou na edição Enterprise Plus do Spanner.
Aumento de dados
Pode usar o Spanner Data Boost para aceder a 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 sua capacidade de computação.
Índices de pesquisa
A pesquisa de texto completo e os índices vetoriais herdam o grupo de localidades definido no objeto de base de dados.
Observabilidade
As seguintes funcionalidades de observabilidade estão disponíveis para o armazenamento hierárquico.
Métricas do Cloud Monitoring
O Spanner fornece as seguintes métricas para ajudar a monitorizar a utilização do armazenamento em camadas e os dados através do 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 de armazenamento de SSD e HDD combinados, em comparação com o limite de armazenamento combinado.spanner.googleapis.com/instance/disk_load
: mostra a utilização do disco rígido em percentagem. Se a sua instância atingir 100% de carga do disco rígido, vai sentir um aumento significativo da latência.
Se tiver consultas existentes que filtram métricas existentes por
storage_class:ssd
, tem de remover o filtro para ver a utilização do disco rígido.
Para saber mais sobre a monitorização dos seus recursos do Spanner, consulte os artigos Monitorize instâncias com estatísticas do sistema e Monitorize instâncias com o Cloud Monitoring.
Esquema de informações
INFORMATION_SCHEMA.LOCALITY_GROUP_OPTIONS
contém a lista de grupos de localidades e opções na sua base de dados do Spanner. Inclui informações
para o grupo de localidades default
. Para mais informações, consulte locality_group_options
para bases de dados com dialeto GoogleSQL e locality_group_options
para bases de dados com dialeto PostgreSQL.
Tabelas de estatísticas incorporadas
As seguintes tabelas de estatísticas incorporadas estão disponíveis para bases de dados que usam o armazenamento hierárquico:
SPANNER_SYS.TABLE_SIZES_STATS_1HOUR
: mostra a utilização do armazenamento de HDD e SSD para cada tabela na sua base de dados.SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR
: mostra a utilização do armazenamento de HDD e SSD para cada grupo de localidades na sua base de dados.
Para mais informações, consulte o artigo Estatísticas de tamanhos das tabelas.
As tabelas de estatísticas de consultas e estatísticas de leitura têm a seguinte coluna relacionada com o armazenamento hierárquico:
AVG_DISK_IO_COST
: o custo médio desta consulta em termos de carga do disco HDD do Spanner. Use este valor para fazer comparações relativas de custos de E/S de HDD entre leituras que executa na base de dados. Um valor mais elevado indica que está a usar mais carga do disco rígido e que a sua consulta pode ser mais lenta do que se estivesse a ser executada num SSD. Além disso, se a carga do disco rígido estiver no limite, o desempenho das suas consultas pode ser ainda mais afetado.
Para mais informações, consulte Estatísticas de consultas e Estatísticas de leitura.
Preços
Não existe qualquer custo adicional pela utilização do armazenamento hierarquizado. É-lhe cobrado o preço padrão do Spanner pela quantidade de capacidade de computação que a sua instância usa e a quantidade de armazenamento que a sua base de dados usa. Os dados armazenados em SSD e HDD são faturados às respetivas taxas de armazenamento. Não lhe é cobrado qualquer valor pela transferência 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.
O que se segue?
- Saiba mais acerca dos grupos de localidades.
- Saiba como criar e gerir grupos de localidades.
- Saiba mais sobre a otimização de consultas com o pushdown de predicados de data/hora.