Tabelas híbridas

Uma tabela híbrida é um tipo de tabela Snowflake otimizada para cargas de trabalho transacionais e operacionais híbridas que exigem baixa latência e alto rendimento em leituras e gravações de pequenos pontos aleatórios. Uma tabela híbrida oferece suporte à aplicação de restrições de integridade referencial e exclusiva, que é crítica para cargas de trabalho transacionais. Você pode usar uma tabela híbrida junto com outras tabelas e recursos do Snowflake para potencializar cargas de trabalho Unistore que reúnem dados transacionais e analíticos em uma única plataforma.

Os casos de uso que podem se beneficiar das tabelas híbridas incluem:

  • Criar um grupo para uma campanha de marketing direcionada por meio de uma interface de usuário interativa.

  • Manter um estado de fluxo de trabalho central para coordenar grandes pipelines paralelos de transformação de dados.

  • Fornecer um tratamento promocional pré-computado para usuários que visitam seu site ou aplicativo móvel.

Arquitetura

As tabelas híbridas são perfeitamente integradas à arquitetura Snowflake existente. Os clientes se conectam ao mesmo serviço de banco de dados Snowflake. As consultas são compiladas e otimizadas na camada de serviços de nuvem e executadas no mesmo mecanismo de consulta em warehouses virtuais. Essa arquitetura tem vários benefícios importantes:

  • Os recursos da plataforma Snowflake, como governança de dados, funcionam com tabelas híbridas prontas para uso.

  • Você pode executar cargas de trabalho híbridas que combinem consultas operacionais e analíticas.

  • Você pode unir tabelas híbridas com outras tabelas Snowflake, e a consulta será executada de forma nativa e eficiente no mesmo mecanismo de consulta. Nenhuma federação é necessária.

  • Você pode executar uma transação atômica em tabelas híbridas e outras tabelas Snowflake. Não há necessidade de orquestrar sua própria confirmação em duas fases.

Arquitetura Unistore

As tabelas híbridas utilizam um armazenamento de linhas como armazenamento de dados primário para fornecer excelente desempenho de consulta operacional. Quando você grava em uma tabela híbrida, os dados são gravados diretamente no armazenamento de linhas. Os dados são copiados de forma assíncrona no armazenamento de objetos para fornecer melhor desempenho e isolamento de carga de trabalho para grandes verificações sem afetar suas cargas de trabalho operacionais contínuas. Alguns dados também podem ser armazenados em cache em formato colunar no seu warehouse para fornecer melhor desempenho em consultas analíticas. Você simplesmente executa instruções SQL na tabela híbrida lógica e o otimizador de consulta do Snowflake decide de onde ler os dados para fornecer o melhor desempenho. Você obtém uma exibição consistente dos seus dados sem precisar se preocupar com a infraestrutura subjacente.

Nota

Como o armazenamento primário para tabelas híbridas é um armazenamento de linhas, as tabelas híbridas normalmente têm uma área de armazenamento maior do que as tabelas padrão. O principal motivo para a diferença é que dados em colunas para tabelas padrão geralmente atingem taxas mais altas de compressão. Para obter detalhes sobre custos de armazenamento, consulte Avaliar custo para tabelas híbridas.

Recursos

As tabelas híbridas fornecem alguns recursos adicionais que não são suportados por outros tipos de tabela Snowflake.

Recurso

Tabelas híbridas

Tabelas padrão

Layout de dados primários

Orientado a linhas, com armazenamento colunar secundário

Micropartições colunares

Bloqueio

Bloqueio ao nível de linha

Bloqueio de partição ou tabela

Restrições PRIMARY KEY

Obrigatório, imposto

Opcional, não obrigatório

Restrições FOREIGN KEY

Opcionais e impostas (integridade referencial)

Opcional, não obrigatório

Restrições UNIQUE

Opcionais e impostas

Opcional, não obrigatório

Restrições NOT NULL

Opcionais e impostas

Opcionais e impostas

Índices

Suporte a desempenho; atualizadas de forma síncrona nas gravações

O serviço de otimização de pesquisa indexa colunas para melhor desempenho de pesquisa de pontos; as atualizações em lote são realizadas e mantidas de forma assíncrona.

Uma restrição é imposta quando protege uma coluna de ser atualizada de determinadas maneiras. Por exemplo, uma coluna declarada NOT NULL não pode conter um valor NULL. Uma tentativa de copiar ou inserir um valor NULL em uma coluna NOT NULL sempre resulta em um erro. Para tabelas híbridas, não é possível definir a propriedade NOT ENFORCED nas restrições PRIMARY KEY, FOREIGN KEY e UNIQUE. Definir esta propriedade resulta em um erro de “propriedade de restrição inválida”.

Uma restrição é obrigatória quando uma ou mais colunas em uma tabela devem ter tal restrição, o que é verdadeiro apenas para restrições PRIMARY KEY em tabelas híbridas.

Determinação sobre quando usar uma tabela híbrida

Embora você deva esperar que as tabelas padrão Snowflake ofereçam melhor desempenho em grandes consultas analíticas, as tabelas híbridas permitem resultados mais rápidos em consultas operacionais de curta duração. Os seguintes tipos de consultas têm maior probabilidade de se beneficiar das tabelas híbridas:

  • Leituras pontuais aleatórias de alta simultaneidade versus leituras de grande intervalo.

  • Gravações aleatórias de alta simultaneidade versus grandes gravações sequenciais (por exemplo, carregamento em massa).

  • Recuperação de um pequeno número de registros inteiros (por exemplo, objeto de cliente) versus projeções restritas com funções analíticas (por exemplo, agregações ou consultas GROUP BY).

Se suas consultas se enquadrarem em um desses modelos, as tabelas híbridas podem ser a escolha preferida para armazenar seus dados.