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.
Azure Databricks, Delta Lake tabloları için sütun eşlemeyi destekler. Bu, veri dosyalarını yeniden yazmadan sütunları silinmiş veya yeniden adlandırılmış olarak işaretlemek için yalnızca meta veri değişikliklerini etkinleştirir. Ayrıca, kullanıcıların önceki karakter kısıtlamaları nedeniyle sütunları yeniden adlandırmaya gerek kalmadan CSV veya JSON verilerini doğrudan Delta'ya alabilmesi için, kullanıcıların Parquet tarafından izin verilmeyen karakterleri kullanarak Delta tablo sütunlarını adlandırmasına da olanak tanır.
Önemli
Sütun eşlemesi etkinleştirilmiş tablolar yalnızca Databricks Runtime 10.4 LTS ve üzerinde okunabilir.
Delta tablolarını okumak için dizin adlarına dayalı eski bir desen kullanıyorsanız, sütun eşlemeyi etkinleştirmek eski iş yüklerini bozabilir. Sütun eşlemesi etkinleştirilmiş bölümlenmiş tablolar, bölüm dizinleri için sütun adları yerine rastgele önekler kullanır. Bkz . Delta Lake ve Parquet bölümleme stratejilerini paylaşıyor mu?.
Tablolarda sütun eşlemeyi etkinleştirmek, Delta değişiklik veri akışını kullanan aşağı akış operasyonlarını aksatabilir. Bkz . Sütun eşlemesi etkin tablolar için veri akışı sınırlamalarını değiştirme.
Tablo sütun eşlemesini etkinleştirmek, Lakeflow Bildirimli İşlem Hatları da dahil olmak üzere, Delta tablosunu kaynak olarak kullanarak yapılan akış okumalarını bozabilir. Bkz Sütun eşleme ve şema değişiklikleriyle akış .
Sütun eşlemesini etkinleştir
Sütun eşlemesini etkinleştirmek için aşağıdaki komutu kullanın:
ALTER TABLE <table-name> SET TBLPROPERTIES (
'delta.columnMapping.mode' = 'name'
)
Sütun eşlemesi için aşağıdaki Delta protokolleri gerekir:
- Okuyucu sürüm 2 veya üzeri.
- Writer sürüm 5 veya üzeri.
Bkz . Delta Lake özellik uyumluluğu ve protokolleri.
Sütun eşlemeyi devre dışı bırak
Databricks Runtime 15.3 ve üzeri sürümlerde, bir tablodan DROP FEATURE
sütun eşlemesini kaldırmak ve tablo protokollerini düşürmek için komutunu kullanabilirsiniz.
Önemli
Tablodaki sütun eşlemesi bırakıldığında, bölümlenmiş tablolar için dizin adlarında kullanılan rastgele ön ekler kaldırılmaz.
Bkz . Delta Lake tablosu özelliğini bırakma ve tablo protokolünü düşürme.
Sütunu yeniden adlandırın
Not
Databricks Runtime 10.4 LTS ve üzerinde kullanılabilir.
Delta tablosu için sütun eşleme etkinleştirildiğinde sütunu yeniden adlandırabilirsiniz:
ALTER TABLE <table-name> RENAME COLUMN old_col_name TO new_col_name
Daha fazla örnek için bkz . Delta Lake tablo şemasını güncelleştirme.
Sütunları kaldır
Not
Databricks Runtime 11.3 LTS ve üzerinde kullanılabilir.
Delta tablosu için sütun eşleme etkinleştirildiğinde, bir veya daha fazla sütun bırakabilirsiniz:
ALTER TABLE table_name DROP COLUMN col_name
ALTER TABLE table_name DROP COLUMNS (col_name_1, col_name_2, ...)
Diğer ayrıntılar için bkz. Delta Lake tablo şemasını güncelleştirme.
Sütun adlarında desteklenen karakterler
Delta tablosu için sütun eşleme etkinleştirildiğinde, tablonun sütun adlarında boşluklar ve şu karakterlerden herhangi birini ekleyebilirsiniz: ,;{}()\n\t=
.
Sütun eşlemesi ve şema değişiklikleriyle akış sağlama
Sütun eşlemesi etkin delta tablolarından akışı etkinleştirmek için bir şema izleme konumu sağlayabilirsiniz. Bu, eksiz şema değişikliklerinin bozuk akışlara neden olabileceği bir sorunun üstesinden gelir.
Veri kaynağına karşı yapılan her akış okuma için kendi schemaTrackingLocation
'sinin belirtilmiş olması gerekir. Belirtilen schemaTrackingLocation
, akış yazma için hedef tabloya ilişkin belirtilen checkpointLocation
dizini içinde yer almalıdır. Birden çok kaynak Delta tablosundaki verileri birleştiren akış iş yükleri için, her kaynak tablo için içinde checkpointLocation
benzersiz dizinler belirtmeniz gerekir.
Önemli
Çalışmakta olan bir işte sütun eşlemeyi etkinleştirmek için işi en az iki kez (yani iki kez yeniden başlatma) durdurup yeniden başlatmanız gerekir.
- İlk yeniden başlatma sütun eşlemesini başlatır.
- İkinci yeniden başlatma, şema değişikliklerinin etkili olmasını sağlar.
Diğer tüm şema değişiklikleri (sütun ekleme veya bırakma ya da sütun türünü değiştirme gibi) işi yeniden başlatmanızı da gerektirir.
seçeneği schemaTrackingLocation
, aşağıdaki kod örneğinde gösterildiği gibi şema izleme yolunu belirtmek için kullanılır:
checkpoint_path = "/path/to/checkpointLocation"
(spark.readStream
.option("schemaTrackingLocation", checkpoint_path)
.table("delta_source_table")
.writeStream
.option("checkpointLocation", checkpoint_path)
.toTable("output_table")
)