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.
Bu öğreticide örnek verileri kullanan yaygın Delta tablosu işlemleri gösterilmektedir. Delta Lake , Databricks'te tabloların temelini sağlayan iyileştirilmiş depolama katmanıdır. Aksi belirtilmedikçe Databricks'te bulunan tüm tablolar Delta tablolarıdır.
Başlamadan önce
Bu eğitimi tamamlamak için şunlara ihtiyacınız olacak:
- Mevcut bir işlem kaynağını kullanma veya yeni bir işlem kaynağı oluşturma izni. Bkz. İşlem.
- Unity Kataloğu izinleri:
USE CATALOG,USE SCHEMAveCREATE TABLEkatalogdaworkspace. Bu izinleri ayarlamak için Databricks yöneticinize veya Unity Kataloğu ayrıcalıklarına ve güvenli hale getirilebilir nesnelere bakın.
Bu örnekler Yapay Kişi Kayıtları adlı bir veri kümesini temel alır : 10.000 ile 10.000 Arası Kayıtlar. Bu veri kümesi kişilerin ad ve soyadları, cinsiyetleri ve yaşları gibi kurgusal kayıtlarını içerir.
İlk olarak bu öğretici için veri kümesini indirin.
- Kaggle'da Yapay Kişi Kayıtları: 10K - 10M Kayıtlar sayfasını ziyaret edin.
-
İndir'e ve ardından Veri kümesini zip olarak indir'e tıklayın. Bu, adlı
archive.zipbir dosyayı yerel makinenize indirir. - Dosyadan
archivearchive.zipklasörü ayıklayın.
Ardından veri kümesini Azure Databricks çalışma alanınızdaki bir Unity Kataloğu person_10000.csv yükleyin. Birimler dosyalara erişme, dosyaları depolama, yönetme ve düzenleme özellikleri sağladığından Azure Databricks verilerinizi bir Unity Kataloğu birimine yüklemenizi önerir.
-
tıklayarak Katalog Gezgini'ne gidin.Kenar çubuğunda katalog.
- Katalog Gezgini'nde
Veri ekle ve Birim oluştur'a tıklayın. - Birimi adlandırın ve birim
my-volumetürü olarak Yönetilen birim'i seçin. -
workspaceKataloğu ve şemayıdefaultseçin ve oluştur'a tıklayın. - Aç
my-volumeve Bu birime yükle tıklayın. - Yerel makinenizdeki
archiveklasöründenperson_10000.csvdosyasını sürükleyip bırakın veya göz atarak seçin. - Karşıya Yükle'ye tıklayın.
Son olarak, örnek kodu çalıştırmak için bir not defteri oluşturun.
- Kenar çubuğunda
Yeni'ye tıklayın. -
Yeni bir not defteri oluşturmak için not defteri.
- Not defteri için bir dil seçin.
Tablo oluşturma
person_10000.csv'den workspace.default.people_10k adlı yeni bir Unity Kataloğu yönetilen tablosu oluşturun. Delta Lake, Azure Databricks'teki tüm tablo oluşturma, okuma ve yazma komutları için varsayılandır.
Piton
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
schema = StructType([
StructField("id", IntegerType(), True),
StructField("firstName", StringType(), True),
StructField("lastName", StringType(), True),
StructField("gender", StringType(), True),
StructField("age", IntegerType(), True)
])
df = spark.read.format("csv").option("header", True).schema(schema).load("/Volumes/workspace/default/my-volume/person_10000.csv")
# Create the table if it does not exist. Otherwise, replace the existing table.
df.writeTo("workspace.default.people_10k").createOrReplace()
# If you know the table does not already exist, you can use this command instead.
# df.write.saveAsTable("workspace.default.people_10k")
# View the new table.
df = spark.read.table("workspace.default.people_10k")
display(df)
Scala programlama dili
import org.apache.spark.sql.types._
val schema = StructType(Array(
StructField("id", IntegerType, true),
StructField("firstName", StringType, true),
StructField("lastName", StringType, true),
StructField("gender", StringType, true),
StructField("age", IntegerType, true)
))
val df = spark.read
.format("csv")
.option("header", true)
.schema(schema)
.load("/Volumes/workspace/default/my-volume/person_10000.csv")
// Create the table if it does not exist. Otherwise, replace the existing table.
df.writeTo("workspace.default.people_10k").createOrReplace()
// If you know the table does not already exist, you can use this command instead.
// df.saveAsTable("workspace.default.people_10k")
// View the new table.
val df2 = spark.read.table("workspace.default.people_10k")
display(df2)
SQL
-- Create the table with only the required columns and rename person_id to id.
CREATE OR REPLACE TABLE workspace.default.people_10k AS
SELECT
person_id AS id,
firstname,
lastname,
gender,
age
FROM read_files(
'/Volumes/workspace/default/my-volume/person_10000.csv',
format => 'csv',
header => true
);
-- View the new table.
SELECT * FROM workspace.default.people_10k;
Tablo oluşturmanın veya kopyalamanın birkaç farklı yolu vardır. Daha fazla bilgi için bkz. CREATE TABLE.
Databricks Runtime 13.3 LTS ve üzeri sürümlerde, kaynak Delta tablosunun şema ve tablo özelliklerini çoğaltan yeni bir boş Delta tablosu oluşturmak için CREATE TABLE LIKE kullanabilirsiniz. Bu, tabloları geliştirme ortamından üretim ortamına yükseltme sırasında yararlı olabilir.
CREATE TABLE workspace.default.people_10k_prod LIKE workspace.default.people_10k
Önemli
Bu özellik Genel Önizlemededir. Önizlemeler sayfasında önizleme kaydını onaylayabilirsiniz. Bkz. Azure Databricks önizlemelerini yönetme.
DeltaTableBuilder Boş bir tablo oluşturmak için Python ve Scala API'sini kullanın. ve DataFrameWriterDataFrameWriterV2 ile DeltaTableBuilder karşılaştırıldığında, API sütun açıklamaları, tablo özellikleri ve oluşturulan sütunlar gibi ek bilgileri belirtmeyi kolaylaştırır.
Piton
from delta.tables import DeltaTable
(
DeltaTable.createIfNotExists(spark)
.tableName("workspace.default.people_10k_2")
.addColumn("id", "INT")
.addColumn("firstName", "STRING")
.addColumn("lastName", "STRING", comment="surname")
.addColumn("gender", "STRING")
.addColumn("age", "INT")
.execute()
)
display(spark.read.table("workspace.default.people_10k_2"))
Scala programlama dili
import io.delta.tables.DeltaTable
DeltaTable.createOrReplace(spark)
.tableName("workspace.default.people_10k")
.addColumn("id", "INT")
.addColumn("firstName", "STRING")
.addColumn(
DeltaTable.columnBuilder("lastName")
.dataType("STRING")
.comment("surname")
.build()
)
.addColumn("gender", "STRING")
.addColumn("age", "INT")
.execute()
display(spark.read.table("workspace.default.people_10k"))
Tabloya upsert
Bir tablodaki mevcut kayıtları değiştirin veya upsert adlı bir işlemi kullanarak yenilerini ekleyin. Mevcut bir Delta tablosu ile bir dizi güncelleme ve eklemeyi birleştirmek için DeltaTable.merge yöntemini Python ve Scala'da ve MERGE INTO deyimini SQL'de kullanın.
Örneğin, kaynak tablodaki verileri hedef Delta tablosuyla people_10k_updates birleştirin workspace.default.people_10k. Her iki tabloda da eşleşen bir satır olduğunda Delta Lake veri sütununu verilen ifadeyi kullanarak güncelleştirir. Eşleşen satır olmadığında Delta Lake yeni bir satır ekler.
Piton
from pyspark.sql.types import StructType, StructField, StringType, IntegerType
from delta.tables import DeltaTable
schema = StructType([
StructField("id", IntegerType(), True),
StructField("firstName", StringType(), True),
StructField("lastName", StringType(), True),
StructField("gender", StringType(), True),
StructField("age", IntegerType(), True)
])
data = [
(10001, 'Billy', 'Luppitt', 'M', 55),
(10002, 'Mary', 'Smith', 'F', 98),
(10003, 'Elias', 'Leadbetter', 'M', 48),
(10004, 'Jane', 'Doe', 'F', 30),
(10005, 'Joshua', '', 'M', 90),
(10006, 'Ginger', '', 'F', 16),
]
# Create the source table if it does not exist. Otherwise, replace the existing source table.
people_10k_updates = spark.createDataFrame(data, schema)
people_10k_updates.createOrReplaceTempView("people_10k_updates")
# Merge the source and target tables.
deltaTable = DeltaTable.forName(spark, 'workspace.default.people_10k')
(deltaTable.alias("people_10k")
.merge(
people_10k_updates.alias("people_10k_updates"),
"people_10k.id = people_10k_updates.id")
.whenMatchedUpdateAll()
.whenNotMatchedInsertAll()
.execute()
)
# View the additions to the table.
df = spark.read.table("workspace.default.people_10k")
df_filtered = df.filter(df["id"] >= 10001)
display(df_filtered)
Scala programlama dili
import org.apache.spark.sql.types._
import io.delta.tables._
// Define schema
val schema = StructType(Array(
StructField("id", IntegerType, true),
StructField("firstName", StringType, true),
StructField("lastName", StringType, true),
StructField("gender", StringType, true),
StructField("age", IntegerType, true)
))
// Create data as Seq of Tuples
val data = Seq(
(10001, "Billy", "Luppitt", "M", 55),
(10002, "Mary", "Smith", "F", 98),
(10003, "Elias", "Leadbetter", "M", 48),
(10004, "Jane", "Doe", "F", 30),
(10005, "Joshua", "", "M", 90),
(10006, "Ginger", "", "F", 16)
)
// Create DataFrame directly from Seq of Tuples
val people_10k_updates = spark.createDataFrame(data).toDF(
"id", "firstName", "lastName", "gender", "age"
)
people_10k_updates.createOrReplaceTempView("people_10k_updates")
// Merge the source and target tables
val deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
deltaTable.as("people_10k")
.merge(
people_10k_updates.as("people_10k_updates"),
"people_10k.id = people_10k_updates.id"
)
.whenMatched()
.updateAll()
.whenNotMatched()
.insertAll()
.execute()
// View the additions to the table.
val df = spark.read.table("workspace.default.people_10k")
val df_filtered = df.filter($"id" >= 10001)
display(df_filtered)
SQL
-- Create the source table if it does not exist. Otherwise, replace the existing source table.
CREATE OR REPLACE TABLE workspace.default.people_10k_updates(
id INT,
firstName STRING,
lastName STRING,
gender STRING,
age INT
);
-- Insert new data into the source table.
INSERT INTO workspace.default.people_10k_updates VALUES
(10001, "Billy", "Luppitt", "M", 55),
(10002, "Mary", "Smith", "F", 98),
(10003, "Elias", "Leadbetter", "M", 48),
(10004, "Jane", "Doe", "F", 30),
(10005, "Joshua", "", "M", 90),
(10006, "Ginger", "", "F", 16);
-- Merge the source and target tables.
MERGE INTO workspace.default.people_10k AS people_10k
USING workspace.default.people_10k_updates AS people_10k_updates
ON people_10k.id = people_10k_updates.id
WHEN MATCHED THEN
UPDATE SET *
WHEN NOT MATCHED THEN
INSERT *;
-- View the additions to the table.
SELECT * FROM workspace.default.people_10k WHERE id >= 10001
SQL'de işleç, * kaynak tablonun hedef tabloyla aynı sütunlara sahip olduğu varsayılarak hedef tablodaki tüm sütunları güncelleştirir veya ekler. Hedef tablo aynı sütunlara sahip değilse, sorgu bir çözümleme hatası oluşturur. Ayrıca, bir ekleme işlemi gerçekleştirirken tablonuzdaki her sütun için bir değer belirtmeniz gerekir. Sütun değerleri boş olabilir, örneğin, ''. Ekleme işlemi gerçekleştirdiğinizde, tüm değerleri güncelleştirmeniz gerekmez.
Tablo okuma
Delta tablolarındaki verilere erişmek için tablo adını veya yolunu kullanın. Unity Kataloğu yönetilen tablolarına erişmek için tam nitelikli tablo adını kullanın. Yol tabanlı erişim yalnızca birimler ve dış tablolar için desteklenir, yönetilen tablolar için desteklenmez. Daha fazla bilgi için bkz. Unity Kataloğu birimlerinde yol kuralları ve erişim.
Piton
people_df = spark.read.table("workspace.default.people_10k")
display(people_df)
Scala programlama dili
val people_df = spark.read.table("workspace.default.people_10k")
display(people_df)
SQL
SELECT * FROM workspace.default.people_10k;
Tabloya yazma
Delta Lake, tablolara veri yazmak için standart söz dizimini kullanır. Mevcut Delta tablosuna yeni veri eklemek için ekleme modunu kullanın. Tabloya veri yazmak, upserting'den farklı olarak, yinelenen kayıtları kontrol etmez.
Piton
from pyspark.sql.types import StructType, StructField, StringType, IntegerType
from pyspark.sql.functions import col
schema = StructType([
StructField("id", IntegerType(), True),
StructField("firstName", StringType(), True),
StructField("lastName", StringType(), True),
StructField("gender", StringType(), True),
StructField("age", IntegerType(), True)
])
data = [
(10007, 'Miku', 'Hatsune', 'F', 25)
]
# Create the new data.
df = spark.createDataFrame(data, schema)
# Append the new data to the target table.
df.write.mode("append").saveAsTable("workspace.default.people_10k")
# View the new addition.
df = spark.read.table("workspace.default.people_10k")
df_filtered = df.filter(df["id"] == 10007)
display(df_filtered)
Scala programlama dili
// Create the new data.
val data = Seq(
(10007, "Miku", "Hatsune", "F", 25)
)
val df = spark.createDataFrame(data)
.toDF("id", "firstName", "lastName", "gender", "age")
// Append the new data to the target table
df.write.mode("append").saveAsTable("workspace.default.people_10k")
// View the new addition.
val df2 = spark.read.table("workspace.default.people_10k")
val df_filtered = df2.filter($"id" === 10007)
display(df_filtered)
SQL
CREATE OR REPLACE TABLE workspace.default.people_10k_new (
id INT,
firstName STRING,
lastName STRING,
gender STRING,
age INT
);
-- Insert the new data.
INSERT INTO workspace.default.people_10k_new VALUES
(10007, 'Miku', 'Hatsune', 'F', 25);
-- Append the new data to the target table.
INSERT INTO workspace.default.people_10k
SELECT * FROM workspace.default.people_10k_new;
-- View the new addition.
SELECT * FROM workspace.default.people_10k WHERE id = 10007;
Databricks not defteri hücre çıkışları en fazla 10.000 satır veya 2 MB (hangisi daha düşükse) görüntüler.
workspace.default.people_10k 10.000'den fazla satır içerdiğinden, not defteri çıkışında display(df)yalnızca ilk 10.000 satır görüntülenir. Ek satırlar tabloda bulunur, ancak bu sınır nedeniyle not defteri çıkışında işlenmez. Özel olarak filtreleyerek ek satırları görüntüleyebilirsiniz.
Tablodaki tüm verileri değiştirmek için üzerine yazma modunu kullanın.
Piton
df.write.mode("overwrite").saveAsTable("workspace.default.people_10k")
Scala programlama dili
df.write.mode("overwrite").saveAsTable("workspace.default.people_10k")
SQL
INSERT OVERWRITE TABLE workspace.default.people_10k SELECT * FROM workspace.default.people_10k_2
Tabloyu güncelleştirme
Delta tablosundaki verileri bir koşula göre güncelleştirin. Örneğin, gender sütunundaki değerleri Female'den F'ye, Male'ten M'e ve Other'ten O'ya değiştirin.
Piton
from delta.tables import *
from pyspark.sql.functions import *
deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
# Declare the predicate and update rows using a SQL-formatted string.
deltaTable.update(
condition = "gender = 'Female'",
set = { "gender": "'F'" }
)
# Declare the predicate and update rows using Spark SQL functions.
deltaTable.update(
condition = col('gender') == 'Male',
set = { 'gender': lit('M') }
)
deltaTable.update(
condition = col('gender') == 'Other',
set = { 'gender': lit('O') }
)
# View the updated table.
df = spark.read.table("workspace.default.people_10k")
display(df)
Scala programlama dili
import io.delta.tables._
import org.apache.spark.sql.functions._
val deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
// Declare the predicate and update rows using a SQL-formatted string.
deltaTable.updateExpr(
"gender = 'Female'",
Map("gender" -> "'F'")
)
// Declare the predicate and update rows using Spark SQL functions.
deltaTable.update(
col("gender") === "Male",
Map("gender" -> lit("M")));
deltaTable.update(
col("gender") === "Other",
Map("gender" -> lit("O")));
// View the updated table.
val df = spark.read.table("workspace.default.people_10k")
display(df)
SQL
-- Declare the predicate and update rows.
UPDATE workspace.default.people_10k SET gender = 'F' WHERE gender = 'Female';
UPDATE workspace.default.people_10k SET gender = 'M' WHERE gender = 'Male';
UPDATE workspace.default.people_10k SET gender = 'O' WHERE gender = 'Other';
-- View the updated table.
SELECT * FROM workspace.default.people_10k;
Tablodan silme
Delta tablosundan koşulla eşleşen verileri kaldırın. Örneğin, aşağıdaki kodda iki silme işlemi gösterilmektedir: önce yaş değeri 18'den küçük olan satırları silme, ardından yaş değeri 21'den küçük olan satırları silme.
Piton
from delta.tables import *
from pyspark.sql.functions import *
deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
# Declare the predicate and delete rows using a SQL-formatted string.
deltaTable.delete("age < '18'")
# Declare the predicate and delete rows using Spark SQL functions.
deltaTable.delete(col('age') < '21')
# View the updated table.
df = spark.read.table("workspace.default.people_10k")
display(df)
Scala programlama dili
import io.delta.tables._
import org.apache.spark.sql.functions._
val deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
// Declare the predicate and delete rows using a SQL-formatted string.
deltaTable.delete("age < '18'")
// Declare the predicate and delete rows using Spark SQL functions.
deltaTable.delete(col("age") < "21")
// View the updated table.
val df = spark.read.table("workspace.default.people_10k")
display(df)
SQL
-- Delete rows using a predicate.
DELETE FROM workspace.default.people_10k WHERE age < '21';
-- View the updated table.
SELECT * FROM workspace.default.people_10k;
Önemli
Silme işlemi Delta tablosunun en son sürümündeki verileri kaldırır, ancak eski sürümler açıkça vakumlanana kadar verileri fiziksel depolamadan kaldırmaz. Daha fazla bilgi için bkz. vakum.
Tablo geçmişini görüntüleme
DeltaTable.history
Python ve Scala'daki yöntemini ve DESCRIBE HISTORY SQL'deki deyimini kullanarak tabloya yapılan her yazma işleminin kanıtlanmış bilgilerini görüntüleyin.
Piton
from delta.tables import *
deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
display(deltaTable.history())
Scala programlama dili
import io.delta.tables._
val deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
display(deltaTable.history())
SQL
DESCRIBE HISTORY workspace.default.people_10k
Zaman yolculuğu kullanarak tablonun önceki bir sürümünü sorgulama
Delta Lake zaman yolculuğu kullanarak Delta tablosunun eski bir anlık görüntüsünü sorgula. Belirli bir sürümü sorgulamak için tablonun sürüm numarasını veya zaman damgasını kullanın. Örneğin, tablonun geçmişinden sorgu sürümü 0 veya zaman damgası 2026-01-05T23:09:47.000+00:00 .
Piton
from delta.tables import *
deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
deltaHistory = deltaTable.history()
# Query using the version number.
display(deltaHistory.where("version == 0"))
# Query using the timestamp.
display(deltaHistory.where("timestamp == '2026-01-05T23:09:47.000+00:00'"))
Scala programlama dili
import io.delta.tables._
val deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
val deltaHistory = deltaTable.history()
// Query using the version number.
display(deltaHistory.where("version == 0"))
// Query using the timestamp.
display(deltaHistory.where("timestamp == '2026-01-05T23:09:47.000+00:00'"))
SQL
-- Query using the version number
SELECT * FROM workspace.default.people_10k VERSION AS OF 0;
-- Query using the timestamp
SELECT * FROM workspace.default.people_10k TIMESTAMP AS OF '2026-01-05T23:09:47.000+00:00';
Zaman damgaları için yalnızca tarih veya zaman damgası dizeleri kabul edilir. Örneğin, dizeler "2026-01-05T22:43:15.000+00:00" veya "2026-01-05 22:43:15" olarak biçimlendirilmelidir.
Delta tablosundan, tablonun belirli bir sürümüne veya zaman damgasına sabit bir DataFrame oluşturmak için seçenekleri kullanın DataFrameReader .
Piton
# Query using the version number.
df = spark.read.option('versionAsOf', 0).table("workspace.default.people_10k")
# Query using the timestamp.
df = spark.read.option('timestampAsOf', '2026-01-05T23:09:47.000+00:00').table("workspace.default.people_10k")
display(df)
Scala programlama dili
// Query using the version number.
val dfVersion = spark.read
.option("versionAsOf", 0)
.table("workspace.default.people_10k")
// Query using the timestamp.
val dfTimestamp = spark.read
.option("timestampAsOf", "2026-01-05T23:09:47.000+00:00")
.table("workspace.default.people_10k")
display(dfVersion)
display(dfTimestamp)
SQL
-- Create a temporary view from version 0 of the table.
CREATE OR REPLACE TEMPORARY VIEW people_10k_v0 AS
SELECT * FROM workspace.default.people_10k VERSION AS OF 0;
-- Create a temporary view from a previous timestamp of the table.
CREATE OR REPLACE TEMPORARY VIEW people_10k_t0 AS
SELECT * FROM workspace.default.people_10k TIMESTAMP AS OF '2026-01-05T23:09:47.000+00:00';
SELECT * FROM people_10k_v0;
SELECT * FROM people_10k_t0;
Daha fazla bilgi için bkz . Tablo geçmişiyle çalışma.
Tabloyu iyileştirme
Tabloda yapılan birden çok değişiklik, okuma sorgu performansını yavaşlatan birkaç küçük dosya oluşturabilir. Küçük dosyaları daha büyük dosyalar halinde birleştirerek hızı artırmak için iyileştirme işlemini kullanın. Bkz. OPTIMIZE.
Piton
from delta.tables import *
deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
deltaTable.optimize().executeCompaction()
Scala programlama dili
import io.delta.tables._
val deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
deltaTable.optimize().executeCompaction()
SQL
OPTIMIZE workspace.default.people_10k
Not
Tahmine dayalı iyileştirme etkinleştirildiyse el ile iyileştirme yapmanız gerekmez. Tahmine dayalı iyileştirme, bakım görevlerini otomatik olarak yönetir. Daha fazla bilgi için bkz. Unity Kataloğu yönetilen tabloları için tahmine dayalı iyileştirme.
Sütunlara göre Z sırası
Verileri z sıralamak ve okuma performansını daha da geliştirmek için işlemde sıralanması gereken sütunları belirtin. Örneğin, yüksek kardinalite sütunu firstName ile birlikte yerleştirin. Z sıralama hakkında daha fazla bilgi için bkz. Veri atlama.
Piton
from delta.tables import *
deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
deltaTable.optimize().executeZOrderBy("firstName")
Scala programlama dili
import io.delta.tables._
val deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
deltaTable.optimize().executeZOrderBy("firstName")
SQL
OPTIMIZE workspace.default.people_10k
ZORDER BY (firstName)
Vakum işlemiyle anlık görüntüleri temizleme
Delta Lake, okumalar için anlık görüntü yalıtımına sahiptir; yani, diğer kullanıcılar veya işler tabloyu sorgularken iyileştirme işlemini çalıştırmak güvenlidir. Ancak, bunu yapmak depolama maliyetlerini azalttığı, sorgu performansını artırdığı ve veri uyumluluğunu sağladığından, eski anlık görüntüleri sonunda temizlemeniz gerekir.
VACUUM Eski anlık görüntüleri temizlemek için işlemi çalıştırın. Bkz. VACUUM.
Piton
from delta.tables import *
deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
deltaTable.vacuum()
Scala programlama dili
import io.delta.tables._
val deltaTable = DeltaTable.forName(spark, "workspace.default.people_10k")
deltaTable.vacuum()
SQL
VACUUM workspace.default.people_10k
Vakum işlemini etkili bir şekilde kullanma hakkında daha fazla bilgi için bkz. Kullanılmayan veri dosyalarını vakumla kaldırma.