Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
SQL do Databricks
Databricks Runtime 18.1 e superior
Tabelas temporárias armazenam dados durante uma sessão de Azure Databricks. Use tabelas temporárias para materializar resultados intermediários para análise exploratória ou pipelines de dados SQL sem criar tabelas permanentes em seu catálogo.
Quando usar tabelas temporárias
Use tabelas temporárias quando precisar:
- Armazene dados intermediários de curta duração durante a análise exploratória ou o desenvolvimento de fluxo de trabalho.
- Reutilize os resultados da consulta em várias operações na mesma sessão.
- Use uma interface semelhante a uma tabela sem adicionar objetos ao namespace do catálogo.
Se os dados precisarem persistir além da sessão atual ou precisarem ser compartilhados com outros usuários ou trabalhos, use uma tabela permanente do Catálogo do Unity. Consulte as tabelas gerenciadas do Unity Catalog para Delta Lake e Apache Iceberg.
Criar ou substituir uma tabela temporária
Crie uma tabela temporária usando CREATE TEMPORARY TABLE ou CREATE TEMP TABLE sintaxe. Você pode criar uma tabela vazia com um esquema definido ou criar uma tabela com base nos resultados da consulta.
Substitua uma tabela temporária usando [CREATE OR] REPLACE TEMPORARY TABLE ou [CREATE OR] REPLACE TEMP TABLE.
CREATE OR é opcional. Quando especificado, o comando cria uma nova tabela temporária se uma tabela temporária com o mesmo nome não existir.
-- Create an empty temporary table with a defined schema
CREATE TEMPORARY TABLE temp_customers (
id INT,
name STRING
);
-- Replace the temporary table with a new defined schema
REPLACE TEMP TABLE temp_customers (
id INT,
name STRING,
email STRING
);
-- Create or replace a temporary table from query results
CREATE OR REPLACE TEMP TABLE temp_recent_orders AS
SELECT order_id, customer_id, order_date, amount
FROM prod.sales.orders
WHERE order_date >= current_date() - INTERVAL 30 DAYS;
-- Create a temporary table using VALUES clause
CREATE TEMP TABLE temp_test_data AS
VALUES
(9001, 101, 50.00),
(9002, 204, 75.00),
(9003, 101, 25.00)
AS t(order_id, customer_id, amount);
Observação
- Não especifique a
USINGcláusula ao criar tabelas temporárias. Tabelas temporárias usam o formato Delta Lake por padrão e especificar explicitamente um formato causa um erro. - Para
REPLACEuma tabela temporária, a palavra-chaveTEMPORARYouTEMPdeve ser especificada. Sem aTEMPORARYpalavra-chave,REPLACEsubstitui apenas uma tabela permanente.
Consultar tabelas temporárias
Referencie tabelas temporárias usando apenas o nome da tabela. Não especifique um catálogo ou esquema.
-- Query a temporary table
SELECT * FROM temp_customers;
-- Join temporary tables with permanent tables
SELECT
c.name,
o.order_id,
o.amount
FROM temp_customers c
INNER JOIN temp_recent_orders o
ON c.id = o.customer_id;
Quando você faz referência a uma tabela usando apenas o nome da tabela, Azure Databricks pesquisa na seguinte ordem:
- Tabelas temporárias na sessão atual
- Tabelas permanentes no esquema atual
Se você criar uma tabela temporária com o mesmo nome de uma tabela permanente existente, a tabela temporária terá precedência dentro de sua sessão. Para referenciar explicitamente uma tabela permanente com o mesmo nome de uma tabela temporária, use um nome totalmente qualificado no namespace de três níveis:
-- References temporary table (if it exists)
SELECT * FROM customers;
-- Explicitly references permanent table
SELECT * FROM prod.sales.customers;
Para obter mais informações sobre a resolução de nomes no Azure Databricks, consulte A resolução de nome.
Modificar tabelas temporárias
Você pode inserir, atualizar e mesclar dados em tabelas temporárias usando operações DML padrão.
-- Insert data into a temporary table
INSERT INTO temp_customers VALUES (101, 'Jane Doe', 'jane@example.com');
-- Insert from a query
INSERT INTO temp_customers
SELECT id, name, email
FROM prod.customer.active_customers
WHERE region = 'US-WEST';
-- Update rows in a temporary table
UPDATE temp_recent_orders
SET amount = amount * 0.90
WHERE customer_id = 101;
-- Merge data into a temporary table
MERGE INTO temp_customers target
USING prod.customer.new_signups source
ON target.id = source.id
WHEN MATCHED THEN UPDATE SET *
WHEN NOT MATCHED THEN INSERT *;
Observação
DELETE FROM não há suporte para operações para tabelas temporárias. Use MERGE INTO com condições de filtragem ou recrie a tabela com dados filtrados.
Remover tabelas temporárias
Azure Databricks descarta automaticamente tabelas temporárias quando sua sessão termina. Se você não precisar mais de suas tabelas temporárias, poderá soltá-las explicitamente.
-- Drop a temporary table
DROP TEMP TABLE temp_customers;
-- Drop only if it exists
DROP TEMP TABLE IF EXISTS temp_recent_orders;
Ciclo de vida e limites de tempo
As tabelas temporárias existem somente na sessão Azure Databricks em que você as cria. O tempo de vida máximo é de sete dias a partir da criação da sessão. As tabelas temporárias ficam inacessíveis quando a sessão termina ou após sete dias, o que ocorrer primeiro. Esses limites se aplicam a notebooks, Editor de SQL, trabalhos e sessões JDBC/ODBC.
Armazenamento e limpeza
Azure Databricks gerencia automaticamente o armazenamento temporário de tabelas. Os dados persistem no armazenamento em nuvem, com o local de armazenamento específico dependendo do tipo de workspace:
- Workspaces sem servidor: dados temporários de tabelas são armazenados no armazenamento padrão. Se você tiver configurado uma chave gerenciada pelo cliente para serviços gerenciados, os dados temporários da tabela usarão essa chave. Para obter mais informações, confira Chaves gerenciadas pelo cliente para criptografia.
- Workspaces clássicos: os dados temporários da tabela são armazenados no bucket de armazenamento do workspace configurado quando o workspace é criado. Você pode configurar a criptografia no nível do bucket de armazenamento.
Quando uma tabela temporária se torna inacessível (quando a sessão termina ou o limite de sete dias é atingido), você não pode mais consultar os dados. Azure Databricks recupera automaticamente o armazenamento em segundo plano. Isso inclui casos em que a sessão termina devido à desconexão ou ao desligamento inesperado do cluster. A limpeza normalmente é concluída em poucos dias.
Isolamento e privilégios
Qualquer usuário pode criar tabelas temporárias. Você não precisa de privilégios CREATE TABLE em um catálogo ou esquema no Catálogo do Unity.
As tabelas temporárias fornecem isolamento no nível da sessão. Cada tabela temporária existe somente dentro da sessão que a criou. Nenhum outro usuário pode ler, modificar ou detectar a existência de suas tabelas temporárias.
Você pode criar uma tabela temporária com o mesmo nome de uma tabela permanente existente sem colisão. Para obter detalhes sobre como o Azure Databricks resolve nomes de tabela, consulte Consultar tabelas temporárias.
Tabelas temporárias compartilham um namespace com exibições temporárias. Você não pode criar uma tabela temporária e uma exibição temporária com o mesmo nome na mesma sessão.
Limitações
As tabelas temporárias têm as seguintes limitações:
-
Modificações de esquema:
ALTER TABLEnão há suporte para operações. Para modificar o esquema de uma tabela temporária, substitua a tabela. -
Propriedades da tabela: somente há suporte para as cláusulas
SET TBLPROPERTIESeUNSET TBLPROPERTIESem tabelas temporárias (na computação sem servidor, no Databricks Runtime 18.2 e versões superiores e no Databricks SQL 2026.15 e versões superiores). - Clonagem: não há suporte para clonagem superficial e profunda.
- Viagem no tempo: não há suporte para consultas de viagem no tempo.
-
Streaming: você não pode usar tabelas temporárias em consultas de streaming (por exemplo, em
foreachBatchoperações). - Suporte à API: há suporte apenas para APIs DO SQL. Não há suporte para APIs de DataFrame.
- Acesso a vários usuários do notebook: somente um usuário pode interagir com tabelas temporárias em uma sessão de notebook. Um segundo usuário não pode ler, gravar ou criar tabelas temporárias na mesma sessão.
- Clusters dedicados: não há suporte para tabelas temporárias em clusters dedicados (usuário único).
- Regiões do Azure Governamental: não há suporte para tabelas temporárias nas regiões do Azure Governamental.