Visualizações materializadas contínuas
Neste documento, você encontra 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 incrementalmente a visualização materializada contínua. A consulta SQL pode incluir agregações e transformações na tabela do Bigtable. O uso de visualizações materializadas contínuas pode aumentar o desempenho e a eficiência.
Os dados em uma visualização 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
Com as visualizações materializadas contínuas, é possível pré-agregar os dados à medida que eles são ingeridos. 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 mudanças de dados na tabela de origem, incluindo atualizações e exclusões, são propagadas automaticamente em segundo plano para a visualização materializada contínua, sem necessidade de ação do usuário.
- Padrões de desenvolvimento em SQL: as visualizações materializadas contínuas são baseadas no GoogleSQL para consultas do Bigtable, incluindo funções, filtros e agregações do SQL.
- Sincronização com coleta de lixo: uma visualização materializada contínua permanece sincronizada com as políticas de coleta de lixo da tabela de origem, atualizando automaticamente à medida que 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 dela são sempre consistentes ao longo do tempo.
A chave de linha, o qualificador de coluna e os valores de coluna usados para definir uma visualização materializada contínua são tratados como dados de serviço. Por isso, não crie uma visualização materializada contínua usando chave de linha, qualificador de coluna ou valores de coluna que contenham informações sensíveis. Para informações sobre como os dados de serviço são tratados, consulte o Aviso de privacidade doGoogle Cloud .
É possível criar uma visualização materializada contínua usando a Google Cloud CLI, o editor de consultas do Bigtable Studio no console 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 aceitam consultas SQL
- Chamada de API
ReadRows
usando as bibliotecas de cliente do Bigtable para Java e Go
Para mais informações, consulte Ler de uma visualização materializada contínua.
Quando usar visualizações materializadas contínuas
Com as visualizações materializadas contínuas, é possível definir uma nova representação dos dados do Bigtable usando SQL. Depois de criada, uma visualização materializada contínua reestrutura continuamente e de forma 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, você pode consultar a visualização materializada contínua.
As visualizações materializadas contínuas podem melhorar o desempenho das consultas nos seguintes casos de uso:
- Pré-agregação de dados: é possível usar uma visualização materializada contínua para agregar dados recebidos em várias linhas. Isso permite recuperar dados resumidos e agregados, como métricas para painéis, rapidamente.
- Automaçã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, use visualizações materializadas contínuas. Essas visualizações fornecem uma visão de todas as fontes de dados que é atualizada ao longo do tempo para refletir as mudanças nos dados subjacentes, sem a necessidade de ferramentas adicionais de processamento de fluxo ou jobs personalizados de ETL.
- Padrões de acesso secundário: as visualizações materializadas contínuas criam uma representação alternativa dos seus dados. Essa representação pode ser otimizada para consultas com padrões de pesquisa diferentes daqueles usados em consultas na tabela de origem. Para mais informações sobre esses padrões, consulte Criar um índice secundário global.
Para comparar visualizações materializadas contínuas com outros tipos de visualizações do Bigtable, consulte Tabelas e visualizações.
Quando usar contadores
Outra maneira de pré-agregar seus dados é criar contadores distribuídos usando células agregadas.
As gravações em células agregadas podem ser lidas imediatamente no cluster em que foram gravadas. As visualizações materializadas contínuas são processadas depois que os dados são gravados e acabam ficando consistentes com a tabela de origem.
Use contadores em vez de visualizações materializadas contínuas para o seguinte:
- Agregações que não exigem filtros e não precisam estar em várias linhas
- Se você precisar ler imediatamente as gravações do cluster em que elas foram feitas
Use visualizações materializadas contínuas quando quiser fazer o seguinte:
- Gerar uma chave diferente para consultas nas suas agregações
- Ver as mudanças na tabela de base refletidas nas suas 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:
- Capturar métricas atualizadas em uma célula agregada, mas manter os resumos históricos dessas métricas
- Combinar métricas em uma visualização materializada contínua
Provisionamento e desempenho de recursos
O processamento contínuo de visualizações materializadas contínuas ocorre como um job em segundo plano de baixa prioridade. Como resultado, ele tem um impacto mínimo no desempenho do aplicativo e na latência de leitura e gravação na tabela de origem, desde que os clusters sejam dimensionados adequadamente.
Como prática recomendada para garantir que os dados na visualização materializada contínua permaneçam atualizados, ative o escalonamento automático para os clusters na instância que contém sua visualização materializada contínua. O escalonamento automático adiciona automaticamente nós suficientes para lidar com a sobrecarga de processamento e os remove quando não são mais necessários. Isso ajuda a garantir que haja capacidade de computação suficiente durante a execução da consulta SQL contínua. O escalonamento automático também garante que você tenha nós suficientes para atender às necessidades de armazenamento das visualizações materializadas contínuas.
As visualizações materializadas contínuas 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 todas as visualizações materializadas contínuas com base na tabela. Com o escalonamento automático, os clusters podem escalonar verticalmente ou diminuir de tamanho 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 de visualização materializada contínua
Uma visualização materializada contínua contém dados resultantes da consulta SQL em que ela se baseia. Isso significa que ele 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 o armazenamento intermediário para armazenar cópias dos dados necessários para atualizar incrementalmente a visualização materializada contínua.
A quantidade de dados no armazenamento intermediário é aproximadamente equivalente à quantidade de dados verificados 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 a 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íficas mantém apenas essas linhas ou colunas no armazenamento intermediário.
O armazenamento intermediário persiste durante toda a vida útil da visualização materializada contínua para oferecer suporte eficiente a atualizações incrementais da visualização 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 do armazenamento intermediário, consulte Métricas de visualização materializada contínua.
Replicação
Em instâncias que usam 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 para a tabela no cluster B e, em seguida, para a 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ê recebe cobranças nas taxas padrão. Ao criar uma visualização materializada contínua, você pode esperar aumentos nos seguintes itens:
- Armazenamento: você recebe cobranças pelo armazenamento dos dados na visualização materializada contínua e pelo armazenamento intermediário. Para mais informações, consulte Armazenamento.
- Computação: a sincronização contínua da tabela de origem e a visualização materializada exigem processamento da CPU, e seus clusters podem precisar de mais nós para lidar com o trabalho em segundo plano adicional.
Ao mesmo tempo, você pode notar uma diminuição no processamento da tabela de origem, como quando não estiver mais realizando verificações de intervalo dos dados para executar cálculos repetidos e outras consultas menos eficientes. Você também pode eliminar a necessidade de executar jobs de pipeline, como Dataflow ou Spark, para agregar dados de origem e gravar de volta no Bigtable.
Para mais informações sobre preços, consulte Preços do Bigtable. Para métricas que podem ajudar você a monitorar o uso contínuo de visualizações materializadas, 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 suas visualizações materializadas contínuas.
Métrica | Descrição |
---|---|
materialized_view/max_delay |
Limite superior do 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 nos dados do usuário para a visualização materializada contínua. Erros do usuário impedem que os dados sejam propagados 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 em vez
do ID da tabela. Em especial, as visualizações materializadas contínuas estão incluídas no detalhamento das métricas de CPU, o que ajuda a entender o impacto delas. As métricas do Bigtable para solicitações por segundo, latência e capacidade são geradas quando você lê uma visualização materializada contínua usando o método ReadRows
da API de dados. 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
- Só é possível criar uma visualização materializada contínua por tabela.
- Ao criar uma visualização sem um
_key
especificado, as colunas selecionadas na tabela de origem não podem serNULL
. Para mais informações, consulte Chaves de linha definidas pela cláusulaGROUP BY
. - Não é possível modificar a consulta SQL que define uma visualização materializada contínua. Você precisa excluir a visualização materializada contínua e criar uma nova com suas mudanças.
- 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 retenção de dados é regida 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 contínua de visualização materializada
- Criar e gerenciar visualizações materializadas contínuas
- Criar um índice secundário global
- Práticas recomendadas de criação de esquema
- Contagem distribuída no Bigtable