Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunun için geçerlidir:
Databricks SQL
Databricks Runtime 18.1 ve üzeri
Geçici tablolar, Azure Databricks oturumu süresi boyunca verileri depolar. Geçici tabloları kullanarak kataloğunuzda kalıcı tablolar oluşturmadan keşif analizi veya SQL veri işlem hatları için ara sonuçları elde edin.
Geçici tablolar ne zaman kullanılır?
Aşağıdaki durumlarda geçici tabloları kullanın:
- Keşif analizi veya iş akışı geliştirme sırasında kısa süreli ara verileri depolayın.
- Sorgu sonuçlarını aynı oturumdaki birden çok işlemde yeniden kullanma.
- Katalog ad alanınıza nesne eklemeden tablo benzeri bir arabirim kullanın.
Verilerinizin geçerli oturumun ötesinde kalıcı olması veya diğer kullanıcılar veya işlerle paylaşılması gerekiyorsa, bunun yerine kalıcı bir Unity Kataloğu tablosu kullanın. Bkz. Delta Lake ve Apache Iceberg için Unity Catalog tarafından yönetilen tablolar.
Geçici tablo oluşturma veya değiştirme
Geçici bir tablo oluşturun, CREATE TEMPORARY TABLE veya CREATE TEMP TABLE söz dizimini kullanarak. Tanımlı şemayla boş bir tablo oluşturabilir veya sorgu sonuçlarından bir tablo oluşturabilirsiniz.
Geçici bir tabloyu [CREATE OR] REPLACE TEMPORARY TABLE veya [CREATE OR] REPLACE TEMP TABLE kullanarak değiştirin.
CREATE OR isteğe bağlıdır. Belirtildiğinde, aynı ada sahip geçici bir tablo yoksa komut yeni bir geçici tablo oluşturur.
-- 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);
Uyarı
- Geçici tablolar oluştururken yan tümcesini
USINGbelirtmeyin. Geçici tablolar varsayılan olarak Delta Lake biçimini kullanır ve açıkça biçim belirtilmesi hataya neden olur. - Geçici
REPLACEbir tabloyaTEMPORARYveyaTEMPanahtar sözcük belirtilmelidir.TEMPORARYanahtar sözcüğü olmadan yalnızcaREPLACEkalıcı bir tablonun yerini alır.
Geçici tabloları sorgulama
Yalnızca tablo adını kullanarak geçici tablolara başvurun. Katalog veya şema belirtmeyin.
-- 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;
Bir tabloya yalnızca tablo adını kullanarak başvurduğunda, Azure Databricks aşağıdaki sırayla arama yapar:
- Geçerli oturumdaki geçici tablolar
- Geçerli şemadaki kalıcı tablolar
Mevcut bir kalıcı tabloyla aynı ada sahip geçici bir tablo oluşturursanız, geçici tablo oturumunuzda önceliklidir. Geçici bir tabloyla aynı ada sahip kalıcı bir tabloya açıkça başvurmak için, üç düzeyli ad alanı içinde tam nitelikli adı kullanın:
-- References temporary table (if it exists)
SELECT * FROM customers;
-- Explicitly references permanent table
SELECT * FROM prod.sales.customers;
Azure Databricks ad çözümlemesi hakkında daha fazla bilgi için bkz. Name resolution.
Geçici tabloları değiştirme
Standart DML işlemlerini kullanarak verileri geçici tablolara ekleyebilir, güncelleştirebilir ve birleştirebilirsiniz.
-- 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 *;
Uyarı
DELETE FROM işlemler geçici tablolar için desteklenmez. Bunun yerine filtre koşullarıyla kullanın MERGE INTO veya tabloyu filtrelenmiş verilerle yeniden oluşturun.
Geçici tabloları bırakma
Azure Databricks oturumunuz sona erdiğinde geçici tabloları otomatik olarak bırakır. Geçici tablolarınıza artık ihtiyacınız yoksa, bunları açıkça bırakabilirsiniz.
-- Drop a temporary table
DROP TEMP TABLE temp_customers;
-- Drop only if it exists
DROP TEMP TABLE IF EXISTS temp_recent_orders;
Yaşam döngüsü ve zaman sınırları
Geçici tablolar yalnızca oluşturduğunuz Azure Databricks oturumunda bulunur. Maksimum yaşam süresi, oturum oluşturulmasından itibaren yedi gündür. Oturum sona erdiğinde veya yedi gün sonra (hangisi önce gerçekleşirse) geçici tablolara erişilemez hale gelir. Bu sınırlar not defterleri, SQL Düzenleyicisi, işler ve JDBC/ODBC oturumları için geçerlidir.
Depolama ve temizleme
Azure Databricks geçici tablo depolamayı otomatik olarak yönetir. Veriler, çalışma alanınızın türüne bağlı olarak belirli bir depolama konumuyla bulut depolamada kalır:
- Sunucusuz çalışma alanları: Geçici tablo verileri varsayılan depolama alanında depolanır. Yönetilen hizmetler için müşteri tarafından yönetilen bir anahtar yapılandırdıysanız, geçici tablo verileri bu anahtarı kullanır. Daha fazla bilgi için bkz . Şifreleme için müşteri tarafından yönetilen anahtarlar.
- Klasik çalışma alanları: Geçici tablo verileri, çalışma alanı oluşturma zamanında yapılandırılan çalışma alanı depolama demetinde depolanır. Şifrelemeyi depolama demeti düzeyinde yapılandırabilirsiniz.
Geçici bir tabloya erişilemez duruma geldiğinde (oturum sona erdiğinde veya yedi günlük sınıra ulaşıldığında), verileri artık sorgulayamayabilirsiniz. Azure Databricks arka planda depolamayı otomatik olarak geri alır. Bu, bağlantı kesilmesi veya beklenmeyen küme kapatma nedeniyle oturumun sona erdiği durumları içerir. Temizleme işlemi genellikle birkaç gün içinde tamamlar.
Yalıtım ve ayrıcalıklar
Herhangi bir kullanıcı geçici tablolar oluşturabilir. Unity Kataloğu'ndaki bir katalog veya şemada ayrıcalıklara ihtiyacınız CREATE TABLE yoktur.
Geçici tablolar oturum düzeyinde yalıtım sağlar. Her geçici tablo yalnızca tabloyu oluşturan oturum içinde bulunur. Diğer kullanıcılar geçici tablolarınızı okuyamaz, değiştiremez veya varlığını algılayamaz.
Çakışma olmadan mevcut bir kalıcı tabloyla aynı ada sahip geçici bir tablo oluşturabilirsiniz. Azure Databricks tablo adlarını nasıl çözümlediğinin ayrıntıları için bkz. Query geçici tabloları.
Geçici tablolar, geçici görünümlere sahip bir ad alanını paylaşır. Aynı oturumda hem geçici bir tablo hem de aynı ada sahip geçici bir görünüm oluşturamazsınız.
Sınırlamalar
Geçici tablolarda aşağıdaki sınırlamalar vardır:
-
Şema değişiklikleri:
ALTER TABLEişlemler desteklenmez. Geçici bir tablonun şemasını değiştirmek için tabloyu değiştirin. -
Tablo özellikleri: Geçici tablolarda (sunucusuz işlem, Databricks Runtime 18.2 ve üzeri ve Databricks SQL 2026.15 ve üzeri) yalnızca
SET TBLPROPERTIESveUNSET TBLPROPERTIESyan tümceleri desteklenir. - Kopyalama: Sığ ve derin kopyalama desteklenmez.
- Zaman yolculuğu: Zaman yolculuğu sorguları desteklenmez.
-
Akış: Akış sorgularında (örneğin, işlemlerde
foreachBatch) geçici tablolar kullanamazsınız. - API desteği: Yalnızca SQL API'leri desteklenir. DataFrame API'leri desteklenmez.
- Not defteri çok kullanıcılı erişimi: Bir not defteri oturumunda yalnızca bir kullanıcı geçici tablolarla etkileşimde bulunabilir. İkinci bir kullanıcı aynı oturumda geçici tablolar okuyamaz, yazamaz veya oluşturamaz.
- Ayrılmış kümeler: Geçici tablolar Ayrılmış (tek kullanıcı) kümelerde desteklenmez.
- Azure Kamu bölgeleri: Geçici tablolar Azure Kamu bölgelerinde desteklenmemektedir.