Tabelas interativas e warehouses interativos do Snowflake¶
Visão geral¶
As tabelas e os warehouses interativos do Snowflake são tipos especializados de objetos Snowflake otimizados para cargas de trabalho de baixa latência e alta simultaneidade. Ideal para casos de uso como painéis em tempo real, APIs orientadas por dados e processamento de cargas de trabalho de alta simultaneidade.
- Warehouse interativo
Um warehouse otimizado para cargas de trabalho interativas de baixa latência. O warehouse contém um mecanismo de consulta otimizado para consultas de baixa latência e alta simultaneidade.
- Tabela interativa
Um tipo de tabela do Snowflake otimizado para cargas de trabalho de baixa latência e alta simultaneidade, que funciona bem com warehouses interativos e pode ser usado com warehouses padrão do Snowflake. Você obtém os melhores ganhos de desempenho ao consultar essas tabelas por meio de warehouses interativos.
Casos de uso para tabelas interativas¶
- Painéis em tempo real
Processamento de consultas de painel que permite milhares de solicitações de usuários com baixa latência e alta simultaneidade. Isso é útil principalmente para atender a casos de uso em que algumas agregações e flexibilidade são necessárias.
- APIs orientadas por dados
Processamento de APIs orientadas por dados que exigem latência previsível e consistente, com formas de consulta repetitivas.
- Alertas e cargas de trabalho de AI agêntica
Para cargas de trabalho de observabilidade e de AI agêntica que podem gerar picos imprevisíveis de carga de consulta e requerem baixo custo por consulta.
Introdução às tabelas interativas¶
Para começar a usar tabelas interativas, siga as etapas abaixo:
Crie uma tabela interativa usando um warehouse padrão. Para obter mais informações, consulte Criação de uma tabela interativa.
Crie um warehouse interativo. Para obter mais informações, consulte Criação de um warehouse interativo.
Retome o warehouse interativo. Para obter mais informações, consulte Retomando e suspendendo um warehouse interativo.
Adicione a tabela interativa ao warehouse interativo. Para obter mais informações, consulte Adição de uma tabela interativa a um warehouse interativo.
Inicie a consulta da tabela interativa por meio do warehouse interativo. Para obter mais informações, consulte Consulta a uma tabela interativa.
Trabalhos com tabelas interativas e warehouses interativos¶
Os procedimentos a seguir explicam como criar e gerenciar todos os objetos necessários para executar consultas usando tabelas interativas. Ao usar esse recurso pela primeira vez, execute estes procedimentos na ordem a seguir.
Criação de uma tabela interativa¶
A criação de tabelas segue a sintaxe padrão CTAS (CREATE TABLE AS SELECT), com a palavra-chave adicional INTERACTIVE que define o tipo da tabela.
O comando CREATE INTERACTIVE TABLE também requer uma cláusula CLUSTER BY. Especifique uma ou mais colunas na cláusula CLUSTER BY para corresponder às cláusulas WHERE em suas consultas mais urgentes. As colunas especificadas na cláusula CLUSTER BY podem afetar significativamente o desempenho das consultas na tabela interativa. Portanto, escolha as colunas de clustering com cuidado. Para obter mais informações sobre como escolher as melhores colunas de clustering, consulte Chaves de clustering e tabelas clusterizadas.
Nota
Você executa o comando CREATE INTERACTIVE TABLE com um warehouse padrão. Você usa o warehouse interativo apenas em etapas posteriores, para consultar a tabela interativa.
O comando a seguir cria uma tabela interativa contendo as mesmas colunas e dados que uma tabela padrão. A cláusula CLUSTER BY refere-se a uma coluna chamada id da tabela de origem.
Especificação da atualização automática para uma tabela interativa¶
Para que uma tabela interativa seja atualizada automaticamente usando dados de outra tabela, especifique a cláusula TARGET_LAG com um intervalo. Ao especificar TARGET_LAG, você também deve especificar a cláusula WAREHOUSE e o nome de um warehouse padrão que o Snowflake usará para atualizações de manutenção regulares.
Você também pode especificar INITIALIZATION_WAREHOUSE para executar atualizações iniciais em um warehouse separado. As atualizações iniciais geralmente processam mais dados do que as atualizações de manutenção. Em muitos casos, você pode usar um warehouse maior, como XL, para a atualização inicial, e um warehouse menor, como S, para atualizações de manutenção contínuas.
O intervalo de tempo para a cláusula TARGET_LAG permite especificar o atraso máximo em termos de segundos, minutos, horas ou dias:
Se você não especificar uma unidade, o número representará segundos. O valor mínimo é de 60 segundos (1 minuto).
Por exemplo, a seguinte instrução CREATE INTERACTIVE TABLE define uma tabela interativa que não atrasa mais de 20 minutos em relação a uma tabela de origem especificada, usa um warehouse maior para a atualização inicial e usa um warehouse menor para atualizações de manutenção contínuas:
Para obter mais informações sobre como escolher um tempo de atraso apropriado que equilibre custos e atualização dos dados, consulte Como o Snowflake agenda atualizações. Para obter orientação sobre como usar warehouses separados para atualizações iniciais e de manutenção, consulte Ajuste da configuração do warehouse. Considerações semelhantes se aplicam a tabelas interativas e dinâmicas.
Você também pode acionar manualmente uma atualização para uma tabela interativa dinâmica executando:
Criação de um warehouse interativo¶
Depois de criar uma tabela interativa, consultar essa tabela com desempenho ideal requer um warehouse interativo. Especifique a palavra-chave INTERACTIVE no comando CREATE WAREHOUSE ou CREATE OR REPLACE WAREHOUSE.
Opcionalmente, você pode especificar uma cláusula TABLES com uma lista de nomes de tabelas interativas separados por vírgulas. O uso dessa cláusula associa imediatamente essas tabelas interativas ao warehouse interativo.
O comando a seguir cria um warehouse interativo associado à tabela interativa chamada orders. Neste caso, você pode executar imediatamente um comando USE WAREHOUSE para o warehouse interativo e começar a executar consultas para a tabela interativa:
O comando a seguir cria um warehouse interativo sem tabelas interativas associadas. Neste caso, você executa comandos ALTER WAREHOUSE posteriormente para associar tabelas interativas ao warehouse interativo:
Após criar um warehouse interativo, ele permanece em estado suspenso até que você o retome. Você pode configurar a suspensão e a retomada automáticas para warehouses interativos. O intervalo mínimo de suspensão automática para um warehouse interativo é de 24 horas (86.400 segundos). Para obter mais detalhes, consulte Retomando e suspendendo um warehouse interativo.
Considerações sobre o desempenho das tabelas interativas¶
As seções a seguir explicam como resolver problemas de desempenho que você pode encontrar devido às características especiais das tabelas interativas e às cargas de trabalho para as quais elas são mais adequadas.
Práticas recomendadas de consulta para warehouses interativos¶
Os warehouses interativos são otimizados para consultas com cargas de trabalho seletivas. Isso significa que consultas com boa seletividade apresentam melhorias de desempenho substancialmente maiores do que outros tipos de consulta.
Espere mais benefícios de desempenho com warehouses interativos |
Espere benefícios de desempenho limitados com warehouses interativos |
|---|---|
|
Esta consulta é altamente seletiva porque requer apenas algumas colunas. O Snowflake pode otimizar o carregamento apenas das colunas necessárias para esta consulta. |
Esta consulta processa todas as colunas. Embora a consulta seja simples, o Snowflake precisa processar uma grande quantidade de dados, o que pode exceder o tamanho do cache. Mesmo que o conteúdo da tabela caiba no cache, isso deixa menos espaço para armazenar em cache dados de outras consultas, levando a uma menor simultaneidade. |
|
As condições na cláusula WHERE tornam esta consulta altamente seletiva. A cláusula IN limita os resultados a um número relativamente pequeno de itens, e a comparação de tempo limita ainda mais os dados a um determinado período. |
Solicitar dados de um ano inteiro torna esta consulta menos seletiva. Se o seu conjunto de dados for grande, esta consulta poderá processar todas as linhas da tabela. |
Outras complexidades, como junções grandes (por exemplo, a junção de duas tabelas de fatos) ou expressões que exigem alto poder computacional, como expressões regulares, podem resultar em menor simultaneidade devido ao maior uso de recursos computacionais. Consulte Escolha do tamanho para um warehouse interativo para obter informações sobre como otimizar para essas situações.
Práticas recomendadas de layout de dados para tabelas interativas¶
As tabelas interativas seguem as práticas recomendadas padrão do Snowflake para desempenho. Em particular, as tabelas interativas se beneficiam de uma tabela bem agrupada, uma tabela classificada com base nas mesmas colunas que você está filtrando. Por exemplo, se sua consulta costuma filtrar em uma coluna TIMESTAMP como sale_date, faz sentido usar essa coluna como chave de clustering ao criar a tabela interativa. Por exemplo, você pode criar a tabela interativa da seguinte forma:
Dessa forma, as consultas SELECT que filtram em sale_date podem ignorar rapidamente todos os dados irrelevantes e retornar resultados. Por exemplo, a consulta a seguir filtra um intervalo de datas testando a coluna sale_date:
Para obter mais detalhes sobre como escolher as melhores chaves de clustering, consulte Chaves de clustering e tabelas clusterizadas.
Escolha do tamanho para um warehouse interativo¶
Depois de concluir todas as suas consultas e otimizações de layout, considere dimensionar seu warehouse para atender à demanda. Os warehouses interativos têm tamanhos que variam de XSMALL a 3XLARGE, bem como Warehouses multicluster.
Recomendamos que você comece dimensionando seu warehouse com base no tamanho aproximado do conjunto de dados de trabalho na tabela interativa. O conjunto de dados de trabalho se refere à parte dos dados que é consultada com frequência. Por exemplo, se suas consultas normalmente consultam apenas os dados de vendas dos últimos sete dias, o conjunto de trabalho é a fração da tabela interativa correspondente a esses sete dias.
Isso ocorre porque o warehouse interativo utiliza cache de armazenamento local. Embora os dados de todo o seu conjunto de dados (tabela) estejam sempre acessíveis, o acesso a dados não armazenados em cache acarreta maior latência na primeira leitura.
Escolha um tamanho de warehouse que atenda às necessidades de suas cargas de trabalho. Faça testes com seus dados e carga de trabalho específicos para determinar o tamanho ideal do seu warehouse interativo.
Dica
Para um bom desempenho, você não precisa armazenar todo o conjunto de trabalho de suas consultas no cache. Escolha um tamanho de cache suficiente para armazenar seus dados mais acessados, ou seja, os dados das linhas acessadas com frequência. Na verdade, muitos clientes podem processar a maioria de suas consultas do cache do warehouse interativo, mesmo com apenas uma parte de seus dados em cache.
Recomendamos começar com os seguintes tamanhos de warehouse de acordo com o tamanho do conjunto de dados de trabalho. (Sujeito a alterações e diferenças de hardware dependendo do provedor de nuvem e da região.)
Conjunto de trabalho |
Tamanho do warehouse |
|---|---|
Menos de aprox. 350 GB |
XSMALL |
Aprox. 350 GB a aprox. 600 GB |
SMALL |
Aprox. 600 GB a aprox. 1,2 TB |
MEDIUM |
Aprox. 1,2 TB a aprox. 2,5 TB |
LARGE |
Aprox. 2,5 TB a aprox. 5,5 TB |
XLARGE |
5,5 TB a aprox. 11 TB |
2XLARGE |
Aprox. 11 TB a aprox. 22 TB |
3XLARGE |
Aprox. 22 TB a aprox. 44 TB |
4XLARGE |
Solução de problemas de desempenho para tabelas interativas¶
Problema 1: Minha consulta única está demorando muito¶
Isso provavelmente ocorre porque sua consulta exige mais recursos computacionais para ser concluída. É possível que sua consulta tenha muito processamento complexo, exigindo, portanto, mais CPUs. Por exemplo, consultas com muitos filtros de expressão regular e cláusulas CASE. Também é possível que suas consultas exijam muita memória, como consultas que realizam muito COUNT(DISTINCT ...). Para reduzir o tempo de execução de uma única consulta, considere um tamanho de warehouse maior. Comece com o tamanho recomendado acima e continue aumentando o tamanho do warehouse até considerar satisfatória a latência de uma única consulta.
Problema 2: Minhas consultas estão demorando muito para serem executadas (alta latência de cauda, alta latência de P95)¶
Um aumento repentino no tempo de consulta provavelmente se deve ao cache insuficiente. Cada tamanho de warehouse tem um cache SSD local que o Snowflake usa para armazenar em cache os dados utilizados mais recentemente. O Snowflake gerencia o cache para armazenar apenas as partes da tabela que são acessadas com frequência. Se suas consultas forem seletivas, aumentar o tamanho do warehouse poderá reduzir a latência de cauda.
Observe também que o warehouse recém-criado leva um tempo para aquecer o cache. O Snowflake aquece proativamente os dados recém-adicionados. Para fazer benchmarks, aguarde um pouco antes de iniciá-los para que o cache tenha tempo de aquecer. A velocidade de aquecimento do cache depende dos tamanhos do warehouse e da tabela. Quanto maior for a tabela interativa, mais tempo o Snowflake levará para aquecer o cache. Por outro lado, quanto maior o tamanho especificado para o warehouse interativo, menor será o tempo de aquecimento.
Problema 3: Minha consulta está na fila ou não consigo atingir a simultaneidade esperada¶
Você pode expandir seu warehouse definindo os parâmetros MIN_CLUSTER_COUNT e MAX_CLUSTER_COUNT. Dessa forma, você pode criar um warehouse interativo multicluster. Se MAX_CLUSTER_COUNT for definido como um valor maior que MIN_CLUSTER_COUNT, o warehouse será expandido automaticamente.
Adição de uma tabela interativa a um warehouse interativo¶
Para obter o desempenho ideal de consulta para uma tabela interativa, você deve usar um warehouse interativo.
Antes de consultar a tabela interativa a partir de um warehouse interativo, você deve realizar uma operação única para adicionar a tabela ao warehouse. Caso contrário, você verá um erro object not found ao executar uma consulta em tal tabela a partir do warehouse interativo. Se você não especificou as tabelas interativas a serem associadas aos warehouses interativos usando a cláusula TABLES em seu comando CREATE INTERACTIVE WAREHOUSE, pode fazer isso posteriormente usando um comando ALTER WAREHOUSE.
O comando a seguir associa a tabela orders ao warehouse interactive_demo. Você pode especificar vários nomes de tabela, separados por vírgulas, com a cláusula ADD TABLES.
Se a tabela interativa já estiver associada ao warehouse interativo, o comando será bem-sucedido, mas não terá efeito. Você pode associar uma tabela interativa a vários warehouses interativos.
Essa ação inicia o processo de aquecimento do cache. O tempo de aquecimento do cache é baseado no tamanho dos dados e do warehouse. Um warehouse XS é aquecido em aproximadamente 300 a 350MB por segundo. Quanto maior a tabela, maior será o tempo de aquecimento do cache. Warehouses maiores são aquecidos mais rapidamente.
O processo de aquecimento não impede que o warehouse aceite novas consultas. A prioridade de aquecimento é: 1. Consultas emitidas pelo usuário 2. Micropartições recém-adicionadas por meio da atualização automática ou por outros meios de ingestão de dados 3. Todos os dados existentes
Como o aquecimento do cache depende das suas consultas, a melhor maneira de monitorar se o cache está aquecido é revisar a porcentagem de leitura remota em Perfil de consulta do Snowsight. Para acesso programático às estatísticas do operador de consulta, confira GET_QUERY_OPERATOR_STATS. Em cenários de execução ideais, as consultas de baixa latência devem ter uma porcentagem de leitura remota de 0%.
Remoção de uma tabela interativa de um warehouse interativo¶
Você pode desanexar uma ou mais tabelas interativas de um warehouse interativo executando um comando ALTER WAREHOUSE com a cláusula DROP TABLES.
Nota
As tabelas interativas ainda existirão após essa operação. Essa cláusula ALTER WAREHOUSE não é a mesma que executar o comando SQL DROP TABLE.
Usando otimização de pesquisa para pesquisas pontuais¶
Recomendamos adicionar a otimização de pesquisa quando você realizar consultas de pesquisa pontual em sua tabela interativa. Pesquisas pontuais são consultas que filtram por uma única coluna para recuperar uma ou algumas linhas de dados. Um bom exemplo é WHERE some_id = some_UUID.
Compatibilidade com exibições materializadas para tabelas interativas¶
Você pode criar exibições materializadas em tabelas interativas. Uma exibição materializada interativa pré-calcula e armazena os resultados de uma consulta em uma tabela interativa, o que pode melhorar ainda mais o desempenho da consulta para padrões de agregação comuns.
Para criar uma exibição materializada interativa, use a palavra-chave INTERACTIVE na instrução CREATE MATERIALIZED VIEW:
Após criar a exibição materializada interativa, você deve adicionar tanto a exibição materializada quanto a tabela base subjacente ao seu warehouse interativo:
Práticas recomendadas para exibições materializadas interativas¶
Siga estas diretrizes ao criar exibições materializadas usando tabelas interativas:
A exibição materializada interativa funciona apenas como exibições materializadas comuns. Ela deve ser baseada em uma tabela interativa.
A exibição materializada interativa e a tabela interativa de origem na qual ela se baseia devem ser adicionadas ao mesmo warehouse interativo. Caso contrário, você verá o erro
object not foundao executar uma consulta nessa exibição materializada usando o warehouse interativo.Junções não são compatíveis em exibições materializadas, sejam elas interativas ou padrão. Estruture suas consultas para agregar ou filtrar a partir de uma única tabela base.
Você não pode usar uma tabela interativa ou uma exibição materializada interativa como fonte para uma tabela dinâmica.
Ao considerar candidatos para exibições materializadas interativas, escolha consultas de agregação que sejam executadas com frequência e que tenham alto custo computacional
Retomando e suspendendo um warehouse interativo¶
O comando a seguir retoma um warehouse interativo. Você deve fazer isso após criar o warehouse, pois ele é criado em um estado suspenso:
Você também faz isso para iniciar a execução de consultas por meio do warehouse, caso o tenha suspendido manualmente.
As consultas serão lentas enquanto o cache estiver sendo aquecido após a retomada. Isso pode levar de alguns minutos a uma hora, dependendo da quantidade de dados na tabela.
O comando a seguir suspende um warehouse interativo:
Suspensão e retomada automáticas para warehouses interativos¶
Os warehouses interativos são compatíveis com suspensão e retomada automáticas. Você pode definir as propriedades AUTO_SUSPEND e AUTO_RESUME ao criar ou alterar um warehouse interativo.
O valor mínimo de AUTO_SUSPEND para um warehouse interativo é 86.400 segundos (24 horas). Esse mínimo garante que o cache permaneça ativo por tempo suficiente para fornecer desempenho consistente de baixa latência. Se você especificar um valor menor que 86.400, o Snowflake usará 86.400.
O exemplo a seguir cria um warehouse interativo com suspensão automática após 24 horas de inatividade e retomada automática habilitada:
Você também pode definir essas propriedades em um warehouse interativo existente:
Nota
Em um ambiente de produção, você normalmente usa warehouses interativos para cargas de trabalho que executam muitas consultas simultâneas 24 horas por dia ou onde a baixa latência é crucial para as consultas. Suspender e retomar um warehouse interativo (seja manualmente ou por meio de suspensão automática) gera um tempo significativo de aquecimento do cache; portanto, avalie se a suspensão automática é apropriada para o seu padrão de carga de trabalho.
Disponibilidade de região¶
Tabelas interativas e armazéns interativos estão disponíveis nas seguintes regiões da Amazon Web Services (AWS), do Google Cloud Platform (GCP) e do Microsoft Azure. Para obter mais informações sobre as regiões do Snowflake, consulte Regiões de nuvem compatíveis.
us-east-1- AWS US East (N. Virginia)us-west-2- AWS US West (Oregon)us-east-2- AWS US East (Ohio)ca-central-1- AWS Canada (Central)ap-northeast-1- AWS Asia Pacific (Tokyo)ap-southeast-2- AWS Asia Pacific (Sydney)eu-central-1- AWS EU (Frankfurt)eu-west-1- AWS EU (Ireland)eu-west-2- AWS Europe (London)us-central1- GCP US Central1 (Iowa)us-east4- GCP US East4 (N. Virginia)europe-west2- GCP Europe West2 (London)europe-west3- GCP Europe West3 (Frankfurt)europe-west4- GCP Europe West4 (Netherlands)australia-southeast2- GCP Australia Southeast2 (Melbourne)Azure: todas as regiões Azure.
Dimensionamento multicluster baseado em tarefas¶
Você pode ajustar os parâmetros MIN_CLUSTER_COUNT por meio de tarefas agendadas.
É recomendável definir MAX_CLUSTER_COUNT usando uma política de dimensionamento automático para acomodar o pico de simultaneidade de sua carga de trabalho.
Descarte de um warehouse interativo¶
Você pode executar o comando DROP WAREHOUSE para remover completamente um warehouse interativo. Descartar um warehouse interativo remove as associações entre esse warehouse e quaisquer tabelas interativas. No entanto, você ainda pode usar outros warehouses interativos para consultar essas mesmas tabelas interativas.
Consulta a uma tabela interativa¶
Na sua sessão de consulta, certifique-se de que o warehouse para a sua sessão atual seja um warehouse interativo:
Depois disso, você pode consultar sua tabela interativa normalmente.
Nota
Em um warehouse interativo, você só pode consultar tabelas interativas. Para consultar outros tipos de tabelas do Snowflake, como tabelas padrão ou híbridas, primeiro mude para um warehouse padrão.
Certos tipos de consultas são especialmente adequados para tabelas interativas. Para obter mais informações, consulte Casos de uso para tabelas interativas.
Práticas recomendadas para benchmarking¶
Sempre que avaliar o desempenho das tabelas interativas em um ambiente de teste, siga estas práticas recomendadas para evitar resultados inconsistentes ou errôneos:
Desative o cache de resultados da consulta para tornar os resultados do benchmark consistentes entre várias execuções de benchmark. Você pode desativar o cache de resultados da consulta no nível da conta, do usuário e da sessão definindo o parâmetro de sessão USE_CACHED_RESULT. Dessa forma, as consultas usarão apenas o cache de dados de tabela do warehouse interativo. Ao ativar o cache de resultados em seu ambiente de produção, você pode esperar um desempenho igual ou melhor do que nos testes de benchmark.
Como o warehouse interativo leva um tempo para preparar o cache de dados de tabela, aguarde um pouco depois de criar ou retomar um warehouse interativo antes de testar o desempenho da consulta. Isso simula a configuração de produção típica, em que o warehouse permanece ativo por longos períodos. O Snowflake aplica otimizações ao processo de preparação do cache. Portanto, é mais eficiente deixar o Snowflake completar esse processo do que você mesmo preparar o cache executando consultas de amostra.
Ao comparar o desempenho das tabelas interativas com as tabelas padrão do Snowflake, não intercale as consultas entre as tabelas padrão e interativas. Em vez disso, execute o benchmark completo com as tabelas padrão e depois execute os mesmos testes com as tabelas interativas.
Durante os benchmarks comparativos com outros sistemas de banco de dados, certifique-se de que as colunas de clustering em suas tabelas interativas correspondam aos predicados da cláusula WHERE em suas consultas. Para obter mais informações sobre como escolher as melhores colunas de clustering, consulte Chaves de clustering e tabelas clusterizadas. Em particular, não clusterize usando colunas com alta cardinalidade, como IDs exclusivos ou carimbos de data/hora.
Se as consultas são curtas e simples, você pode obter maior simultaneidade definindo o parâmetro MAX_CONCURRENCY_LEVEL como um valor mais alto para o warehouse interativo.
Tabelas interativas e políticas de ciclo de vida de armazenamento¶
Use as políticas de ciclo de vida de armazenamento para arquivar ou expirar linhas específicas da tabela com base em condições definidas por você, como idade dos dados ou outros critérios.
Atualmente, não é possível usar as políticas de ciclo de vida de armazenamento para tabelas interativas com atualização automática. Você pode usar o parâmetro TARGET_LAG ou uma política de ciclo de vida de armazenamento, mas não ambos.
Recuperação de desastre e replicação¶
Quando adicionados a um grupo de replicação, as tabelas e os warehouses interativos são replicados para a conta de destino.
A replicação de tabela interativa se comporta da mesma forma que a replicação de tabela padrão. A replicação de warehouse interativo se comporta da mesma forma que a replicação de warehouse padrão, com exceção de que ela considera que o warehouse interativo seja compatível com a região de destino. Neste momento, não há validação da replicação de warehouse interativa na região de destino.
O warehouse interativo na conta de destino será retomado automaticamente. Entretanto, devido às exigências de aquecimento do cache, o desempenho do warehouse não é garantido. Para garantir um desempenho consistente, você pode manter o warehouse em execução na região de destino.
Considerações sobre custo e faturamento¶
Os warehouses interativos incorrem em custos de computação quando ativos. O período mínimo faturável para um warehouse interativo é de uma hora e, depois disso, a uma granularidade de um segundo.
Nota
Se você retomar um warehouse interativo que foi suspenso (seja manualmente ou por meio de retomada automática), essa operação resultará em uma nova cobrança mínima por período faturável. Essa cobrança é aplicada mesmo se você já foi sendo cobrado por esse período por causa de outra atividade recente no warehouse. Portanto, evite suspender e retomar um warehouse interativo várias vezes em um curto período. O intervalo de suspensão automática mínimo de 24 horas ajuda a impedir ciclos excessivos de suspensão/retomada.
As tabelas interativas incorrem em custos de armazenamento padrão. O preço do armazenamento de tabelas interativas é o mesmo que o das padrão. As tabelas interativas podem ser maiores do que as padrão equivalentes, devido a diferenças na codificação de dados e índices adicionais. O tamanho maior dos dados e os índices são considerados no volume de armazenamento.
Para obter mais informações sobre custos e faturamento de warehouses interativos e tabelas interativas, consulte a tabela de consumo de serviços do Snowflake.
Limitações dos warehouses interativos e das tabelas interativas¶
As seguintes limitações se aplicam a warehouses e tabelas interativos. Algumas limitações decorrem de diferenças arquitetônicas entre as tabelas interativas e as padrão do Snowflake; essas limitações são permanentes.
Limitações dos warehouses interativos¶
Os warehouses interativos do Snowflake são otimizados para consultas de curta duração. O tempo limite de consulta para comandos SELECT é definido como cinco segundos por padrão. Após cinco segundos, a consulta é cancelada. Você pode reduzir o valor do tempo limite da consulta, mas não pode aumentá-lo. Isso foi desenvolvido no projeto para impedir que consultas de longa duração esgotem os recursos do warehouse interativo e prejudiquem o desempenho das consultas de baixa latência. Alguns tipos de comandos, como SHOW e INSERT OVERWRITE, não estão sujeitos ao intervalo de tempo limite de cinco segundos.
Se uma consulta expira de maneira consistente, isso indica que ela pode não ser adequada para uso com warehouses interativos. Geralmente, a aplicação de algumas técnicas de ajuste de desempenho pode ajudar a reduzir a latência da consulta. Consulte Considerações sobre o desempenho das tabelas interativas para obter mais detalhes.
Os warehouses interativos oferecem suporte à suspensão e retomada automáticas com um intervalo mínimo de suspensão automática de 24 horas (86.400 segundos). Espere uma latência de consulta significativa ao retomar um warehouse interativo, pois o cache de dados precisa ser aquecido novamente. Para obter mais informações, consulte Retomando e suspendendo um warehouse interativo.
Não é possível consultar tabelas padrão do Snowflake a partir de um warehouse interativo. Para consultar as tabelas padrão e interativas na mesma sessão, execute USE WAREHOUSE para alternar para o tipo de warehouse apropriado.
Você pode adicionar no máximo 10 tabelas interativas a um warehouse interativo. Esta é uma limitação temporária para impedir a sobrecarga do sistema. Esse limite será aumentado no futuro. Se você precisa adicionar mais de 10 tabelas interativas, entre em contato com o suporte Snowflake.
Não é possível executar comandos CALL para chamar procedimentos armazenados em um warehouse interativo.
Não é possível usar o :doc:` operador de canal </sql-reference/operators-flow>`
->>. Internamente, esse operador usa procedimentos armazenados.
Limitações das tabelas interativas¶
As tabelas interativas não são compatíveis com os seguintes recursos:
Comandos de linguagem de manipulação de dados (DML), como UPDATE e DELETE. O fluxo de trabalho recomendado é usar tabelas interativas de atualização automática (ou seja, definindo TARGET_LAG) e aplicar DML à tabela de origem. O mecanismo de atualização automática é mais eficiente e econômico do que o uso de DML na tabela interativa. A única DML que você pode executar é INSERT OVERWRITE.
Fail-safe. Esse mecanismo de recuperação de dados não está disponível para tabelas interativas. No entanto, você ainda pode usar o Time Travel com tabelas interativas.
Carimbos de data/hora de linha. Não é possível habilitar carimbos de data/hora de linha em uma tabela interativa. Esta é uma limitação temporária.
Insights de consulta. Atualmente, eles não são coletados ou estão disponíveis para consultas executadas em tabelas interativas para ajudar a reduzir a latência de execução das consultas.
Não é possível executar as seguintes operações:
Use uma tabela interativa como fonte para uma exibição materializada padrão (não interativa). Para criar uma exibição materializada em uma tabela interativa, use a palavra-chave INTERACTIVE. Consulte Compatibilidade com exibições materializadas para tabelas interativas.
Modificar propriedades de uma tabela interativa usando as cláusulas ALTER TABLE, como ADD COLUMN ou REMOVE COLUMN. Veja a seguir algumas das operações ALTER TABLE que você pode executar:
Renomear a tabela.
Modificar colunas para definir ou remover a definição de comentários.
Definir ou remover a definição de políticas de mascaramento em colunas.
Adicionar ou remover a definição de uma política de mascaramento, política de junção, política de agregação ou política de acesso a linhas na tabela.
Adicionar ou descartar uma política de ciclo de vida de armazenamento da tabela.
Usar fluxos com uma tabela interativa.
Criar uma tabela dinâmica com uma tabela interativa como tabela base.
Usar a cláusula RESAMPLE para consultas em uma tabela interativa.
Definir o período de retenção do Time Travel usando CREATE INTERACTIVE TABLE ou ALTER TABLE. As tabelas interativas herdam o valor DATA_RETENTION_TIME_IN_DAYS do respectivo esquema, banco de dados ou conta pai.
Instruções SQL afetadas¶
Este recurso introduz alterações nos seguintes comandos SQL do Snowflake:
ALTER WAREHOUSE: novas cláusulas ADD, TABLES e DROP TABLES.
CREATE INTERACTIVE TABLE: cria tabelas interativas com a cláusula CLUSTER BY obrigatória.
CREATE INTERACTIVE WAREHOUSE: cria warehouses interativos com a cláusula TABLES opcional.
CREATE MATERIALIZED VIEW: nova palavra-chave INTERACTIVE opcional para criar exibições materializadas em tabelas interativas.