As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
TABELA DE CACHE
O comando CACHE TABLE armazena em cache os dados de uma tabela existente ou cria e armazena em cache uma nova tabela contendo os resultados da consulta.
nota
Os dados em cache persistem durante toda a consulta.
A sintaxe, os argumentos e alguns exemplos vêm da Referência SQL do Apache Spark
Sintaxe
O comando CACHE TABLE suporta três padrões de sintaxe:
Colunas de saída não permitidas, restrição de consulta e CACHE TABLE
A restrição de colunas de saída não permitidas na regra de análise personalizada é aplicada em tabelas em cache. Uma tabela em cache não pode referenciar uma coluna de saída não permitida em sua cláusula SELECT. Para usar uma coluna com uma restrição de coluna de saída não permitida em uma parte subsequente da consulta, converta a tabela em cache em uma expressão de tabela comum (CTE).
Com AS (sem parênteses): cria e armazena em cache uma nova tabela com base nos resultados da consulta.
CACHE TABLEcache_table_identifierASquery;
Com AS e parênteses: funciona de forma semelhante à primeira sintaxe, mas usa parênteses para agrupar explicitamente a consulta.
CACHE TABLEcache_table_identifierAS (query);
Sem AS: armazena em cache uma tabela existente, usando a instrução SELECT para filtrar quais linhas devem ser armazenadas em cache.
CACHE TABLEcache_table_identifierquery;
Em que:
-
Todas as declarações devem terminar com ponto e vírgula (;)
-
querynormalmente é uma instrução SELECT -
Os parênteses ao redor da consulta são opcionais com AS
-
A palavra-chave AS é opcional
Parâmetros
- identificador_tabela_cache
-
O nome da tabela em cache. Pode incluir um qualificador de nome de banco de dados opcional.
- AS
-
Uma palavra-chave usada ao criar e armazenar em cache uma nova tabela a partir dos resultados da consulta.
- query
-
Uma instrução SELECT ou outra consulta que define os dados a serem armazenados em cache.
Exemplos
Nos exemplos a seguir, a tabela em cache persiste durante toda a consulta. Após o armazenamento em cache, as consultas subsequentes que fazem referência cache_table_identifier serão lidas da versão em cache em vez de serem recalculadas ou lidas. sourceTable Isso pode melhorar o desempenho da consulta para dados acessados com frequência.
Crie e armazene em cache uma tabela filtrada a partir dos resultados da consulta
O primeiro exemplo demonstra como criar e armazenar em cache uma nova tabela a partir dos resultados da consulta. Esse comando usa a AS palavra-chave sem parênteses ao redor da declaração. SELECT Ele cria uma nova tabela chamada 'cache_table_identifier' contendo somente as linhas de 'sourceTable' onde o status é 'active'. Ele executa a consulta, armazena os resultados na nova tabela e armazena em cache o conteúdo da nova tabela. O 'sourceTable' original permanece inalterado e as consultas subsequentes devem fazer referência a 'cache_table_identifier' para usar os dados em cache.
CACHE TABLEcache_table_identifierAS SELECT * FROMsourceTableWHERE status = 'active';
Resultados da consulta em cache com instruções SELECT entre parênteses
O segundo exemplo demonstra como armazenar em cache os resultados de uma consulta como uma nova tabela com um nome especificado (cache_table_identifier), usando parênteses ao redor da instrução. SELECT Esse comando cria uma nova tabela chamada 'cache_table_identifier' contendo somente as linhas de 'sourceTable' em que o status é 'active'. Ele executa a consulta, armazena os resultados na nova tabela e armazena em cache o conteúdo da nova tabela. O 'sourceTable' original permanece inalterado. As consultas subsequentes devem fazer referência a 'cache_table_identifier' para usar os dados em cache.
CACHE TABLEcache_table_identifierAS ( SELECT * FROMsourceTableWHERE status = 'active' );
Armazene em cache uma tabela existente com condições de filtro
O terceiro exemplo demonstra como armazenar em cache uma tabela existente usando uma sintaxe diferente. Essa sintaxe, que omite a palavra-chave 'AS' e os parênteses, normalmente armazena em cache as linhas especificadas de uma tabela existente chamada 'cache_table_identifier' em vez de criar uma nova tabela. A SELECT instrução atua como um filtro para determinar quais linhas devem ser armazenadas em cache.
nota
O comportamento exato dessa sintaxe varia entre os sistemas de banco de dados. Sempre verifique a sintaxe correta para seu AWS serviço específico.
CACHE TABLEcache_table_identifierSELECT * FROMsourceTableWHERE status = 'active';