Recursos e limitações não suportados para tabelas híbridas

A orientação a seguir sobre recursos e limitações incompatíveis se aplica a tabelas híbridas e está sujeita a alterações.

Recursos sem suporte

Tabelas híbridas não oferecem suporte a:

Limitações

Clonagem

Embora a clonagem não seja compatível com tabelas híbridas, você pode clone bancos de dados e esquemas que contenham tabelas híbridas usando o parâmetro IGNORE HYBRID TABLES na instrução CREATE <objeto> … CLONE.

Nuvens e regiões

As tabelas híbridas estão disponíveis apenas na versão preliminar pública em regiões públicas selecionadas do Amazon Web Services (AWS):

Região da nuvem

ID da região da nuvem

US West (Oregon)

us-west-2

US East (Ohio)

us-east-2

US East (N. Virginia)

us-east-1

Canada (Central)

ca-central-1

South America (Sao Paulo)

sa-east-1

Europe (London)

eu-west-2

EU (Irlanda)

eu-west-1

EU (Paris)

eu-west-3

EU (Stockholm)

eu-north-1

EU (Frankfurt)

eu-central-1

Asia Pacific (Tokyo)

ap-northeast-1

Asia Pacific (Seoul)

ap-northeast-2

Asia Pacific (Osaka)

ap-northeast-3

Asia Pacific (Mumbai)

ap-south-1

Asia Pacific (Singapore)

ap-southeast-1

Asia Pacific (Sydney)

ap-southeast-2

  • As tabelas híbridas não estão disponíveis no Azure ou no Google Cloud Platform (GCP).

  • As tabelas híbridas não estão disponíveis em regiões SnowGov.

  • As tabelas híbridas não estão disponíveis para contas de avaliação.

  • Se você for cliente do Virtual Private Snowflake (VPS), entre em contato com o suporte Snowflake para saber como ativar tabelas híbridas para sua conta.

Chaves de clustering

As chaves de clustering não são suportadas em tabelas híbridas. Para obter mais informações, consulte Chaves de clustering e tabelas clusterizadas. Os dados em tabelas híbridas são ordenados pela chave primária.

Consistência

Por padrão, as tabelas híbridas usam um modelo de consistência baseado em sessão onde as operações de leitura na sessão retornam os dados mais recentes das operações de gravação na mesma sessão. Pode haver alguma desatualização (menos de 100ms) para alterações feitas fora da sessão. Para evitar a desatualização, defina READ_LATEST_WRITES = true no nível da instrução ou da sessão. Observe que isso pode gerar alguma sobrecarga de latência de alguns milissegundos.

Restrições

Embora as restrições de chave primária, exclusiva e de chave estrangeira sejam aplicadas em tabelas híbridas, as seguintes limitações se aplicam:

  • As restrições só podem ser definidas na criação da tabela.

  • As restrições são impostas no nível da linha.

  • As restrições não são impostas ao nível da instrução ou da transação (ou seja, restrições diferidas).

  • Você não pode alterar uma coluna para ser exclusiva.

As seguintes limitações adicionais se aplicam a chaves estrangeiras:

  • As restrições de chave estrangeira são aceitas apenas entre tabelas híbridas que pertencem ao mesmo banco de dados.

  • A tabela referenciada de uma restrição de chave estrangeira não pode ser truncada enquanto existir o relacionamento de chave estrangeira.

  • As restrições de chave estrangeira não oferecem suporte à correspondência parcial.

  • As restrições de chave estrangeira não oferecem suporte ao comportamento adiável.

  • As restrições de chave estrangeira oferecem suporte a apenas comportamentos RESTRICT e NO ACTION para operações DELETE e UPDATE.

COPY

Quando você carrega uma tabela híbrida com o comando COPY INTO, ABORT_STATEMENT é a única opção compatível com ON_ERROR. Definir ON_ERROR=SKIP_FILE retorna um erro. Para obter mais informações, consulte Carregamento de dados.

Tamanho dos dados

Você está limitado a armazenar 1 TB de dados em tabelas híbridas por banco de dados Snowflake. Consulte Cotas e limitação para obter mais informações.

Tipos de dados não compatíveis com índices

Colunas com tipos de dados geoespaciais (GEOGRAPHY e GEOMETRY), tipos de dados semiestruturados (ARRAY, OBJECT, VARIANT) e tipos de dados vetoriais (VECTOR) não são aceitas como colunas PRIMARY KEY (que são indexadas automaticamente) ou colunas indexadas explicitamente. (As colunas da tabela híbrida aceitam esses tipos de dados, desde que as colunas não sejam indexadas.)

O tipo de dados TIMESTAMP_TZ (ou um tipo de dados TIMESTAMP que é resolvido para TIMESTAMP_TZ) não é aceito para colunas indexadas usando restrições UNIQUE, PRIMARY KEY e FOREIGN KEY. No entanto, TIMESTAMP_TZ é aceito para índices secundários.

Consulte também Índices secundários.

Comandos DML

Ao usar comandos DML para alterar um pequeno número de linhas, otimize o desempenho usando instruções INSERT, UPDATE ou DELETE em vez de MERGE.

Carregamento de dados

O comando CREATE TABLE … AS SELECT é recomendado para carregamento em massa de dados em uma tabela híbrida. Este comando é otimizado para desempenho e é aproximadamente 10 vezes mais rápido que outros comandos, como COPY ou INSERT INTO … SELECT, quando você está carregando milhões de registros.

Consulte Carregamento de dados para obter mais informações.

Aplicativos nativos

Você pode incluir tabelas híbridas em um Snowflake Native App. No entanto, as tabelas híbridas não podem ser compartilhadas do provedor para o consumidor. Os Native Apps podem criar tabelas híbridas na conta do consumidor e podem ler e gravar nessas tabelas híbridas. Você também pode expor tabelas híbridas a funções de aplicativo para que elas possam ser consultadas diretamente por usuários consumidores.

Você não pode criar uma tabela híbrida em uma conta de provedor nem incluir essa tabela híbrida em uma exibição compartilhada por meio do aplicativo nativo.

Periodic Rekeying

Você não poderá usar tabelas híbridas se sua conta Snowflake estiver habilitada para usar rechaveamento periódico. Se o rechaveamento periódico estiver ativado em sua conta e você quiser usar tabelas híbridas, deverá usar um comando ALTER ACCOUNT para definir o parâmetro PERIODIC_DATA_REKEYING como FALSE.

Resultados da consulta persistente

Consultas em tabelas híbridas não usam o cache de resultados, conforme definido com o USE_CACHED_RESULT parâmetro. Consulte Uso de resultados de consultas persistentes.

Cotas e limitação

O uso de tabelas híbridas é restrito por cotas para garantir a disponibilidade equitativa de recursos compartilhados, garantir qualidade de serviço consistente e reduzir picos de uso.

Cota

Padrão

Notas

Armazenamento híbrido

1 TB por banco de dados Snowflake

Esta cota controla a quantidade de dados que você pode armazenar em tabelas híbridas. Esse limite se aplica somente aos dados da tabela híbrida ativa no armazenamento de linhas; não se aplica ao armazenamento de objetos. Se você exceder a cota de armazenamento, as operações de gravação que adicionam dados a quaisquer tabelas híbridas serão temporariamente bloqueadas até que seu consumo de armazenamento híbrido volte a ficar abaixo da cota por meio da exclusão de dados.

Solicitações de tabela híbrida

Aproximadamente 2.000 operações por segundo, por banco de dados Snowflake

Esta cota controla a taxa na qual você pode ler e gravar em tabelas híbridas. Você deve conseguir até 2.000 operações por segundo em tabelas híbridas para uma carga de trabalho balanceada que consiste em 80% de leituras de pontos e 20% de gravações de pontos. Para monitorar a limitação, consulte o exemplo em Exibição AGGREGATE_QUERY_HISTORY.

Bancos de dados que contêm tabelas híbridas

100 no total por conta Snowflake, e não mais do que 10 bancos de dados adicionados em uma janela de uma hora

Essa cota controla quantos bancos de dados na sua conta Snowflake podem conter tabelas híbridas. Se você exceder essa cota, não poderá criar uma tabela híbrida em um novo banco de dados sem remover todas as tabelas híbridas de um banco de dados existente ou aumentar sua cota.

A limitação pode ser causada por uma combinação de fatores que resultam em muitas solicitações de leitura e gravação enviadas ao provedor de armazenamento de tabela híbrida:

  • Muitas solicitações de leitura podem ocorrer devido a consultas mal otimizadas ou devido a uma carga de trabalho grande e agressiva com simultaneidade de consulta muito alta.

  • Muitas solicitações de gravação podem ocorrer porque o caminho de carregamento em massa não foi escolhido quando uma tabela foi carregada ou porque a carga de trabalho consiste em muitas operações de gravação simultâneas.

Se você receber um erro ou ocorrer uma limitação devido a um limite de cota, entre em contato com o administrador do sistema ou DBA para verificar a carga de trabalho geral do Unistore; possivelmente ela pode ser modificada para evitar exceder a cota. DBAs podem entrar em contato com o Suporte Snowflake para avaliar o desempenho da consulta e o uso da cota. Para algumas cargas de trabalho, pode ser necessário aumentar a cota.

Replicação

A replicação de tabelas híbridas não é suportada atualmente.

Índices secundários

Os seguintes recursos de índice secundário não são aceitos:

  • Adicionar uma coluna a um índice.

  • Modificar um índice em uma tabela híbrida existente.

Para usar um índice secundário em uma tabela híbrida, você deve usar uma função que receba o privilégio SELECT na tabela. Se você tiver acesso a outros objetos além da própria tabela híbrida, não poderá usar índices secundários.

As colunas TIMESTAMP são suportadas. No entanto, comparações (por exemplo, predicados WHERE) com colunas TIMESTAMP que fazem parte de uma chave composta em uma tabela ou índice base não são compatíveis atualmente e causam um erro.

Para obter mais informações sobre índices secundários, consulte Como adicionar índices a uma tabela híbrida.

Taxa de transferência

Você pode executar até aproximadamente 2.000 operações por segundo em tabelas híbridas na sua conta para uma carga de trabalho de leitura/gravação balanceada de 80%/20%. Se você exceder esse limite, o Snowflake poderá reduzir sua produtividade. Consulte Cotas e limitação para obter mais informações.

Time Travel

Consultas de Time Travel são aceitas em tabelas híbridas com as seguintes limitações:

  • Somente o parâmetro TIMESTAMP é compatível com a cláusula AT. Os parâmetros OFFSET, STATEMENT e STREAM não são compatíveis.

    • O valor do parâmetro TIMESTAMP deve ser o mesmo para todas as tabelas que pertencem ao mesmo banco de dados. Se as tabelas pertencerem a bancos de dados diferentes, valores TIMESTAMP diferentes poderão ser usados.

    • A clonagem não é aceita em geral para tabelas híbridas, portanto você não pode especificar a cláusula AT em CREATE TABLE … CLONE.

  • A cláusula BEFORE não é compatível.

  • O comando UNDROP TABLE, que depende do Time Travel, não é aceito.

Transações

Para tabelas híbridas, o escopo da transação é o banco de dados no qual reside a tabela híbrida. Todas as tabelas híbridas referenciadas em uma transação devem residir no mesmo banco de dados; tabelas padrão Snowflake referenciadas na mesma transação podem residir em diferentes bancos de dados.

Esquemas e bancos de dados transitórios

Você não pode criar tabelas híbridas que sejam temporárias ou transitórias. Por sua vez, você não pode criar tabelas híbridas dentro de esquemas ou bancos de dados transitórios.

Tri-Secret Secure

Você não poderá usar tabelas híbridas se sua conta Snowflake estiver habilitada para usar Tri-Secret Secure. Antes de usar tabelas híbridas, verifique se sua conta Snowflake está habilitada para Tri-Secret Secure entrando em contato com o suporte Snowflake.

UNDROP

UNDROP não é compatível com tabelas híbridas. Adicionalmente:

  • Os comandos UNDROP SCHEMA e UNDROP DATABASE são bem-sucedidos para entidades com tabelas híbridas, mas essas tabelas híbridas e suas restrições e índices associados não podem ser restaurados.

  • A coluna DELETED em Exibição TABLES exibe o horário da exclusão como o horário UNDROP da entidade pai.

  • Exibição ACCESS_HISTORY contém uma entrada para DROP/UNDROP da entidade pai, mas nenhuma entrada para tabelas híbridas.