Vistas materializadas contínuas

Este documento oferece uma vista geral das vistas materializadas contínuas e dos exemplos de utilização comuns das mesmas. Antes de ler esta página, deve conhecer a vista geral do Bigtable.

No Bigtable, uma vista materializada contínua é um resultado totalmente gerido e pré-calculado de uma consulta SQL em execução contínua que atualiza incrementalmente a vista materializada contínua. A consulta SQL pode incluir agregações e transformações na tabela do Bigtable subjacente. A utilização de vistas materializadas contínuas pode aumentar o desempenho e a eficiência.

Os dados numa vista materializada contínua incluem o seguinte:

  • Valores agregados ou transformados derivados de dados na tabela de origem
  • Valores não agregados que definem a chave de agrupamento

As vistas materializadas contínuas permitem pré-agregar os dados à medida que os carrega. Além disso, uma vista materializada contínua tem um esquema diferente da respetiva tabela de origem, apresentando os dados da tabela de origem numa estrutura otimizada para consultas com padrões de pesquisa diferentes dos usados na tabela de origem.

Seguem-se as principais características das vistas materializadas contínuas no Bigtable:

  • Manutenção zero: uma vista materializada contínua é pré-calculada em segundo plano. As alterações de dados à tabela de origem, incluindo atualizações e eliminações, são propagadas automaticamente em segundo plano para a vista materializada contínua, sem necessidade de ação do utilizador.
  • Padrões de desenvolvimento de SQL: as vistas materializadas contínuas baseiam-se em consultas GoogleSQL para Bigtable, incluindo funções, filtros e agregações de SQL.
  • Sincronização com a recolha de lixo: uma vista materializada contínua mantém-se sincronizada com as políticas de recolha de lixo da respetiva tabela de origem, sendo atualizada automaticamente à medida que os dados da tabela expiram ou são eliminados.
  • A latência de leitura e escrita não é afetada: uma vista materializada contínua tem um impacto mínimo no desempenho da tabela de origem quando os clusters da instância são aprovisionados adequadamente ou usam o dimensionamento automático.
  • Eventualmente consistente: as vistas materializadas contínuas são calculadas em segundo plano. As atualizações de uma vista materializada contínua podem sofrer atrasos, mas os resultados materializados contínuos são sempre consistentes ao longo do tempo.

A chave da linha, o qualificador da coluna e os valores da coluna que usa para definir uma vista materializada contínua são tratados como dados de serviço. Por este motivo, não crie uma vista materializada contínua com a chave da linha, o qualificador da coluna ou os valores das colunas que contenham informações confidenciais. Para obter informações sobre como os dados de serviço são processados, consulte o Google Cloud Aviso de Privacidade.

Pode criar uma vista materializada contínua através da Google Cloud CLI, do editor de consultas do Bigtable Studio na consola Google Cloud ou das bibliotecas de cliente do Bigtable para Java e Go.

Pode ler a partir de uma vista materializada contínua através do seguinte:

Para mais informações, consulte o artigo Ler a partir de uma vista materializada contínua.

Quando usar vistas materializadas contínuas

As vistas materializadas contínuas permitem-lhe definir uma nova representação dos seus dados do Bigtable através de SQL. Depois de criada, uma vista materializada contínua reestrutura os dados da tabela de origem de forma contínua e automática no formato definido pela consulta SQL. Em seguida, em vez de consultar a tabela e transformar ou agregar os dados depois de os ler, pode consultar a vista materializada contínua.

As vistas materializadas contínuas podem melhorar o desempenho das consultas para os seguintes exemplos de utilização:

  • Pré-agregação de dados: pode usar uma vista materializada contínua para agregar dados recebidos em várias linhas. Isto permite-lhe obter rapidamente dados resumidos e agregados, como métricas para painéis de controlo.
  • Automatização das arquiteturas lambda e kappa: se a sua aplicação exigir uma combinação de dados de pipeline de streaming em tempo real e dados de pipeline em lote que contenham dados do histórico, use vistas materializadas contínuas. Estas vistas oferecem uma vista de todas as origens de dados que é atualizada ao longo do tempo para refletir as alterações nos dados subjacentes, sem necessidade de ferramentas de processamento de streams adicionais ou tarefas ETL personalizadas.
  • Padrões de acesso secundários: as vistas materializadas contínuas criam uma representação alternativa dos seus dados. Esta representação pode ser otimizada para consultas com padrões de pesquisa diferentes dos que usa em consultas na tabela de origem. Para mais informações sobre estes padrões, consulte o artigo Crie um índice secundário assíncrono.

Para comparar as vistas materializadas contínuas com outros tipos de vistas do Bigtable, consulte o artigo Tabelas e vistas.

Quando usar contadores

Outra forma de pré-agregar os seus dados é criar contadores distribuídos usando células agregadas.

As escritas em células agregadas são imediatamente legíveis a partir do cluster no qual foram escritas. As vistas materializadas contínuas são processadas depois de os dados serem escritos e, eventualmente, tornam-se consistentes com a tabela de origem.

Use contadores em vez de visualizações materializadas contínuas para o seguinte:

  • Agregações que não requerem filtros e não precisam de abranger várias linhas
  • Se precisar de ler imediatamente as suas gravações a partir do cluster no qual foram gravadas

Use vistas materializadas contínuas quando quiser fazer o seguinte:

  • Gere uma chave diferente para consultas em relação às suas agregações
  • Veja as alterações à tabela base refletidas nas suas agregações
  • Combine automaticamente dados em várias linhas

Use uma combinação de contadores e vistas materializadas contínuas para exemplos de utilização, como quando quer fazer o seguinte:

  • Capture métricas atualizadas numa célula agregada, mas mantenha os resumos do histórico dessas métricas
  • Combine métricas numa vista materializada contínua

Aprovisionamento e desempenho de recursos

O processamento contínuo de vistas materializadas ocorre como uma tarefa em segundo plano de baixa prioridade. Consequentemente, tem um impacto mínimo no desempenho da aplicação e na latência de leitura e escrita na tabela de origem, desde que os seus clusters tenham um tamanho adequado.

Como prática recomendada para garantir que os dados na vista materializada contínua permanecem atualizados, ative o dimensionamento automático para os clusters na instância que contém a vista materializada contínua. A escala automática adiciona automaticamente nós suficientes para processar a sobrecarga e, em seguida, remove-os quando já não são necessários. Isto ajuda a garantir que existe capacidade de computação suficiente durante a execução da consulta SQL em execução contínua. O dimensionamento automático também pode garantir que tem nós suficientes para processar as necessidades de armazenamento das vistas materializadas contínuas.

As vistas materializadas contínuas são contabilizadas para o limite de 1000 tabelas por instância.

Armazenamento

Para cada vista materializada contínua, o Bigtable armazena o seguinte:

  • Os dados na vista materializada contínua
  • Armazenamento intermédio

Tal como qualquer tabela do Bigtable, uma vista materializada contínua existe em todos os clusters na instância que a contém. Os clusters na sua instância têm de ter nós suficientes para armazenar a tabela de origem e quaisquer vistas materializadas contínuas baseadas na tabela. A escalabilidade automática permite que os seus clusters aumentem ou diminuam de tamanho à medida que os requisitos de armazenamento mudam.

Tem de criar uma vista materializada contínua na mesma instância que a tabela de origem, mesmo que o armazenamento da vista materializada contínua seja distinto da tabela de origem.

Armazenamento de vistas materializadas contínuas

Uma vista materializada contínua contém dados resultantes da consulta SQL na qual a vista materializada contínua se baseia. Isto significa que contém valores agregados definidos por cláusulas de agregação na consulta SQL e valores não agregados que definem a chave de agrupamento.

Armazenamento intermédio

Para suportar a sincronização de uma vista materializada contínua com a respetiva tabela de origem, o Bigtable usa o armazenamento intermédio para armazenar cópias dos dados de que precisa para atualizar incrementalmente a vista materializada contínua.

A quantidade de dados no armazenamento intermédio é aproximadamente equivalente à quantidade de dados analisados na tabela de origem para gerar o resultado da consulta SQL que define a vista materializada contínua. Por exemplo, se a sua consulta agregar dados em toda a tabela, o Bigtable retém o equivalente a toda a tabela no armazenamento intermédio. Uma vista materializada contínua baseada numa consulta de intervalos de chaves de linhas ou colunas específicos mantém apenas essas linhas ou colunas no armazenamento intermédio.

O armazenamento intermédio persiste durante a duração da vista materializada contínua para suportar eficientemente as atualizações incrementais da vista e propagar as eliminações da tabela de origem para a vista materializada contínua. Não pode ler os dados no armazenamento intermédio. Para ver estatísticas sobre a utilização de armazenamento intermédio, consulte Métricas de visualização materializada contínua.

Replicação

Nos casos que usam a replicação, as vistas materializadas contínuas não são replicadas da mesma forma que as tabelas. Em alternativa, cada cluster numa instância processa a vista materializada contínua de forma independente, usando a sua própria cópia da tabela de origem. Isto significa, por exemplo, que os dados escritos numa tabela de origem no cluster A são replicados para a tabela no cluster B e, em seguida, para a vista materializada contínua no cluster B.

Custos

Não existe um custo por recurso para usar as vistas materializadas contínuas. No entanto, a criação e a sincronização de vistas materializadas contínuas requerem processamento e armazenamento, e são-lhe cobradas as taxas padrão. Pode esperar ver aumentos nos seguintes aspetos quando cria uma vista materializada contínua:

  • Armazenamento: é-lhe cobrado o armazenamento dos dados na vista materializada contínua e o armazenamento intermédio. Para mais informações, consulte o artigo Armazenamento.
  • Cálculo: a sincronização contínua da tabela de origem e da vista materializada requer o processamento da CPU, e os seus clusters podem precisar de mais nós para processar o trabalho em segundo plano adicional.

Ao mesmo tempo, pode ver uma diminuição no processamento da tabela de origem, como quando deixa de realizar análises de intervalos dos dados para fazer cálculos repetidos e outras consultas menos eficientes. Também pode eliminar a necessidade de executar tarefas de pipeline, como Dataflow ou Spark, para agregar dados de origem e escrevê-los novamente no Bigtable.

Para mais informações sobre preços, consulte os preços do Bigtable. Para ver métricas que podem ajudar a monitorizar a utilização da vista materializada contínua, consulte Métricas.

Métrica

Uma vista materializada contínua comunica várias métricas principais ao Cloud Logging que pode usar para monitorizar as suas vistas materializadas contínuas.

Métrica Descrição
materialized_view/max_delay Limite superior do atraso de processamento para a vista materializada contínua
materialized_view/storage Quantidade de dados usados para o armazenamento da vista materializada contínua em bytes
materialized_view/intermediate_storage Quantidade de dados usados pelo processamento intermédio para a vista materializada contínua em bytes
table/materialized_view_intermediate_storage Quantidade de dados usados pelo processamento intermédio para vistas materializadas contínuas definidas nesta tabela
materialized_view/user_errors Número de erros dos dados do utilizador para a vista materializada contínua. Os erros do utilizador impedem a propagação de dados para a vista.
materialized_view/system_errors Número de erros do sistema para a vista materializada contínua

Também pode usar muitas métricas de tabelas do Bigtable para monitorizar uma vista materializada contínua, usando o ID da vista materializada contínua em vez do ID da tabela. Em particular, as vistas materializadas contínuas estão incluídas na discriminação das métricas da CPU, o que pode ajudar a compreender o respetivo impacto. As métricas do Bigtable para pedidos por segundo, latência e débito são geradas quando lê uma vista materializada contínua através do método ReadRows da API Data. Para mais informações, consulte Métricas.

Para começar a usar o Cloud Logging, consulte o artigo Descrição geral da consulta e visualização de registos.

Limitações

  • Só pode criar uma vista materializada contínua por tabela.
  • Quando cria uma vista sem um _key especificado, as colunas selecionadas na tabela de origem não podem ser NULL. Para mais informações, consulte Chaves de linhas definidas pela cláusula GROUP BY.
  • Não pode modificar a consulta SQL que define uma vista materializada contínua. Tem de eliminar a vista materializada contínua e criar uma nova com as alterações.
  • Não pode criar uma vista materializada contínua de outra vista materializada contínua ou de uma vista lógica.
  • Não pode configurar políticas de recolha de lixo para uma vista materializada contínua. Toda a retenção de dados é regida pelas políticas de recolha de lixo da tabela de origem, e a recolha de lixo da origem reflete-se automaticamente na vista materializada contínua.

O que se segue?