Visualizações materializadas contínuas
Este documento apresenta uma visão geral das visualizações materializadas contínuas e casos de uso comuns. Antes de ler esta página, familiarize-se com a visão geral do Bigtable.
No Bigtable, uma visualização materializada contínua é um resultado totalmente gerenciado e pré-computado de uma consulta SQL em execução contínua que atualiza gradualmente a visualização materializada contínua. A consulta SQL pode incluir agregações e transformações na tabela Bigtable. O uso de visualizações materializadas contínuas pode aumentar a performance e a eficiência.
Os dados em uma visualização materializada contínua incluem:
- Valores agregados ou transformados que são derivados dos dados na tabela de origem
- Valores não agregados que definem a chave de agrupamento
Com as visualizações materializadas contínuas, você pode pré-agregar seus dados à medida que os ingere. Além disso, uma visualização materializada contínua tem um esquema diferente da tabela de origem, apresentando os dados da tabela de origem em uma estrutura otimizada para consultas com padrões de pesquisa diferentes das consultas usadas na tabela de origem.
Confira a seguir as principais características das visualizações materializadas contínuas no Bigtable:
- Manutenção zero: uma visualização materializada contínua é pré-computada em segundo plano. As alterações de dados na tabela base, incluindo atualizações e exclusões, são propagadas automaticamente em segundo plano para a visualização materializada contínua, sem a necessidade de uma ação do usuário.
- Padrões de desenvolvimento SQL: as visualizações materializadas contínuas são baseadas em consultas do GoogleSQL para Bigtable, incluindo funções, filtros e agregações SQL.
- Sincronização com a coleta de lixo: uma visualização materializada contínua fica sincronizada com as políticas de coleta de lixo da tabela de origem, sendo atualizada automaticamente quando os dados da tabela expiram ou são excluídos.
- A latência de leitura e gravação não é afetada: uma visualização materializada contínua tem um impacto mínimo no desempenho da tabela de origem quando os clusters da instância são provisionados adequadamente ou usam o escalonamento automático.
- Consistência eventual:as visualizações materializadas contínuas são computadas em segundo plano. As atualizações de uma visualização materializada contínua podem ser atrasadas, mas os resultados materializados contínuos são sempre consistentes ao longo do tempo.
É possível criar uma visualização materializada contínua usando a CLI do Google Cloud, o editor de consulta do Bigtable Studio no console do Google Cloud ou as bibliotecas de cliente do Bigtable para Java e Go.
É possível ler de uma visualização materializada contínua usando o seguinte:
- Editor de consultas do Bigtable Studio
- As bibliotecas de cliente do Bigtable que oferecem suporte a consultas SQL
- Chamada de API
ReadRows
usando as bibliotecas de cliente do Bigtable para Java e Go
Para mais informações, consulte Como ler de uma visualização materializada contínua.
Quando usar visualizações materializadas contínuas
As visualizações materializadas contínuas permitem definir uma nova representação dos seus dados do Bigtable usando SQL. Depois de ser criada, uma visualização materializada contínua reestrutura de forma contínua e automática os dados da tabela de origem no formato definido pela consulta SQL. Em vez de consultar a tabela e transformar ou agregar os dados depois de lê-los, consulte a visualização materializada contínua.
As visualizações materiais podem melhorar a performance da consulta para os seguintes casos de uso:
- Dados pré-agregados: é possível usar uma visualização materializada contínua para agregar os dados recebidos em linhas. Isso é útil quando você quer recuperar rapidamente dados resumidos e agregados, como métricas de painéis.
- Automatização de arquiteturas lambda e kappa: se o aplicativo exigir uma combinação de dados de pipeline de streaming em tempo real e dados de pipeline em lote que contenham dados históricos, as visualizações materializadas contínuas vão fornecer uma visualização consistente de todas as fontes de dados, sem a necessidade de ferramentas de processamento de fluxo ou jobs de ETL personalizados.
Para comparar visualizações materializadas contínuas com outros tipos de visualizações da Bigtable, consulte Tabelas e visualizações.
Quando usar contadores
Outra forma de pré-agregar seus dados é criando contadores distribuídos usando células de agregação.
As gravações em células agregadas podem ser lidas imediatamente no cluster em que são gravadas. As visualizações materializadas contínuas são processadas depois que os dados são gravados e, eventualmente, tornam-se consistentes com a tabela de origem.
Use contadores em vez de visualizações materializadas contínuas para:
- Agregações que não exigem filtros e não precisam estar em linhas
- Se você precisar ler imediatamente as gravações do cluster em que elas foram gravadas
Use visualizações materializadas contínuas quando quiser fazer o seguinte:
- Gerar uma chave diferente para consultas em suas agregações
- Conferir as mudanças na tabela de base refletidas nas agregações
- Combinar dados automaticamente em várias linhas
Use uma combinação de contadores e visualizações materializadas contínuas para casos de uso, como quando você quer fazer o seguinte:
- Capture métricas novas em uma célula agregada, mas mantenha os resumos históricos dessas métricas
- Combinar métricas em uma visualização materializada contínua
Provisionamento e desempenho de recursos
O processamento em andamento para visualizações materializadas contínuas ocorre como um job em segundo plano de baixa prioridade. Como resultado, o impacto no desempenho do aplicativo e a latência de leitura e gravação na tabela de origem são mínimos, desde que os clusters tenham tamanho adequado.
Como prática recomendada para garantir que os dados na visualização materializada contínua continuem atualizados, ative o escalonamento automático para os clusters na instância que contém a visualização materializada contínua. O escalonamento automático adiciona automaticamente nós suficientes para lidar com a sobrecarga de processamento e, em seguida, os remove quando eles não são mais necessários. Isso ajuda a garantir que capacidade de computação suficiente esteja disponível durante a execução da consulta SQL em execução contínua. O escalonamento automático também pode garantir que você tenha nós suficientes para lidar com as necessidades de armazenamento das suas visualizações materializadas contínuas.
As visualizações materializadas são contabilizadas no limite de 1.000 tabelas por instância.
Armazenamento
Para cada visualização materializada contínua, o Bigtable armazena o seguinte:
- Os dados na visualização materializada contínua
- Armazenamento intermediário
Como qualquer tabela do Bigtable, uma visualização materializada contínua existe em todos os clusters na instância que a contém. Os clusters na sua instância precisam ter nós suficientes para armazenar a tabela de origem e qualquer visualização materializada contínua com base nela. O escalonamento automático garante que os clusters sejam aumentados ou reduzidos conforme os requisitos de armazenamento mudam.
Uma visualização materializada contínua precisa ser criada na mesma instância da tabela de origem, mesmo que o armazenamento da visualização materializada contínua seja diferente da tabela de origem.
Armazenamento contínuo de visualizações materializadas
Uma visualização materializada contínua contém dados resultantes da consulta SQL na qual a visualização materializada contínua é baseada. Isso significa que ela 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 intermediário
Para oferecer suporte à sincronização de uma visualização materializada contínua com a tabela de origem, o Bigtable usa armazenamento intermediário para armazenar cópias dos dados necessários para atualizar a visualização materializada contínua de forma incremental.
A quantidade de dados no armazenamento intermediário é aproximadamente equivalente à quantidade de dados que é verificada na tabela de origem para gerar o resultado da consulta SQL que define a visualização materializada contínua. Por exemplo, se a consulta agregar dados em toda a tabela, o Bigtable vai manter o equivalente de toda a tabela no armazenamento intermediário. Uma visualização materializada contínua baseada em uma consulta de intervalos ou colunas de chave de linha específicos mantém apenas essas linhas ou colunas no armazenamento intermediário.
O armazenamento intermediário persiste durante a vida útil da visualização materializada contínua para oferecer suporte eficiente a atualizações incrementais na visualização materializada e propagar exclusões da tabela de origem para a visualização materializada contínua. Não é possível ler os dados no armazenamento intermediário. Para insights sobre o uso intermediário do armazenamento, consulte Métricas de visualização materializada contínua.
Replicação
Nas instâncias que usam a replicação, as visualizações materializadas contínuas não são replicadas da mesma forma que as tabelas. Em vez disso, cada cluster em uma instância processa a visualização materializada contínua de forma independente, usando a própria cópia da tabela de origem. Isso significa, por exemplo, que os dados gravados em uma tabela de origem no cluster A são replicados na tabela do cluster B e, em seguida, na visualização materializada contínua no cluster B.
Custos
Não há custo por recurso para usar visualizações materializadas contínuas. No entanto, a criação e a sincronização de visualizações materializadas contínuas exigem processamento e armazenamento, e você será cobrado nas taxas padrão. Ao criar uma visualização materializada contínua, é possível notar aumentos nos seguintes itens:
- Armazenamento: você é cobrado para armazenar os dados na visualização materializada contínua e para armazenamento intermediário. Para mais informações, consulte Armazenamento.
- Computação: a sincronização contínua da tabela de origem e da visualização materializada contínua requer processamento de CPU, e seus clusters podem precisar de mais nós para processar o trabalho em segundo plano adicional.
Ao mesmo tempo, é possível que ocorra uma redução no processamento da tabela de origem, como quando você não realiza mais verificações de intervalo dos dados para realizar cálculos repetidos e outras consultas menos eficientes. Você também pode eliminar a necessidade de executar jobs de pipeline, como o Dataflow ou o Spark, para agregar dados de origem e gravá-los no Bigtable.
Para mais informações sobre preços, consulte Preços do Bigtable. Para métricas que podem ajudar a monitorar o uso de visualizações materializadas contínuas, consulte Métricas.
Métricas
Uma visualização materializada contínua informa várias métricas importantes ao Cloud Logging, que podem ser usadas para monitorar as visualizações materializadas contínuas.
Métrica | Descrição |
---|---|
materialized_view/max_delay |
Limite máximo de atraso de processamento para a visualização materializada contínua |
materialized_view/storage |
Quantidade de dados usados para o armazenamento contínuo de visualização materializada em bytes |
materialized_view/intermediate_storage |
Quantidade de dados usados pelo processamento intermediário para a visualização materializada contínua em bytes |
table/materialized_view_intermediate_storage |
Quantidade de dados usados pelo processamento intermediário para visualizações materializadas contínuas definidas nesta tabela |
materialized_view/user_errors |
Número de erros de dados do usuário na visualização materializada contínua. Erros do usuário impedem a propagação de dados para a visualização. |
materialized_view/system_errors |
Número de erros do sistema para a visualização materializada contínua |
Também é possível usar muitas métricas de tabela do Bigtable para monitorar uma visualização materializada contínua, usando o ID da visualização materializada contínua no lugar do ID da tabela. Especificamente, as visualizações materializadas contínuas são incluídas no
detalhe das métricas de CPU, que
podem ajudar a entender o impacto delas. As métricas do Bigtable para
solicitações por segundo, latência e taxa de transferência são geradas quando você lê uma
visualização materializada contínua usando o método ReadRows
da API Data. Para mais
informações, consulte Métricas.
Para começar a usar o Cloud Logging, consulte Visão geral de consultas e registros de registros.
Limitações
- Não é possível modificar a consulta SQL que define uma visualização materializada contínua. É necessário excluir a visualização materializada contínua e criar uma nova com as alterações.
- Não é possível criar uma visualização materializada contínua de outra visualização materializada contínua ou de uma visualização lógica.
- Não é possível configurar políticas de coleta de lixo para uma visualização materializada contínua. Toda a retenção de dados é governada pelas políticas de coleta de lixo da tabela de origem, e a coleta de lixo da origem é refletida automaticamente na visualização materializada contínua.
A seguir
- Consulta de visualização materializada contínua
- Criar e gerenciar visualizações materializadas contínuas
- Práticas recomendadas de criação de esquema
- Contagem distribuída no Bigtable