Azure Databricks’te satır izleme

Databricks Runtime 14.1 ve üzeri sürümlerde kullanılabilen satır izleme, her satıra kararlı satır kimlikleri ve satır işleme sürümleri atayarak satır düzeyi köken izlemeyi etkinleştirir. Gerçekleştirilmiş görünümler için bazı artımlı güncellemeler bu özelliği gerektirir.

Tüm Apache Iceberg v3 tabloları satır izleme içerir. Bkz. Apache Iceberg v3 özelliklerini kullanma. Delta Lake tabloları için satır izlemeyi açıkça etkinleştirmeniz gerekir.

Note

Satır izlemenin etkinleştirilmesi tablo yazıcı protokollerini yükseltir ve dış Delta Lake istemcileriyle uyumluluğu etkileyebilir. Bkz . Delta Lake özellik uyumluluğu ve protokolleri.

Delta Lake tablolarında satır izlemeyi etkinleştirme

Delta Lake tablosunda satır izlemeyi etkinleştirmek için tablo oluşturma sırasında tablo özelliğini delta.enableRowTracking = true ayarlayın:

CREATE TABLE table_name
TBLPROPERTIES (delta.enableRowTracking = true)
AS SELECT * FROM source_table;

Var olan bir Delta Lake tablosunda satır izlemeyi etkinleştirmek için aşağıdaki örneği kullanın:

ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = true);

Important

Varolan tablolarda satır izlemeyi etkinleştirmek, tablodaki tüm mevcut satırlara otomatik olarak satır kimlikleri ve satır işleme sürümleri atar. Bu işlem tablonun birden çok yeni sürümünün oluşturulmasına neden olabilir ve tamamlanması önemli ölçüde zaman alabilir.

Uyarı

Tablonuz Yapılandırılmış Akış iş yükleri gibi sürekli yazma işlemleri için bir hedefse, satır izlemeyi etkinleştirmeden önce yazma işlemlerini duraklatın ve işlem tamamlandıktan sonra devam edin. Satır izlemeyi etkinleştirmek için ALTER TABLE kullanmak, tablo meta verilerini günceller ve işlem süresince eşzamanlı tüm yazma işlemlerinin MetadataChangedException ile başarısız olmasına neden olur. Bkz . Çakışma özel durumları.

Tabloyu kopyalamak ayrı bir geçmiş oluşturur, böylece kopyalanan tablolardaki satır kimlikleri ve satır işleme sürümleri özgün tablodakilerle eşleşmez.

Meta veri alanları

Satır izleme, tabloya iki gizli meta veri alanı ekler. Değerleri döndürmek için bu alanları sorgunuza açıkça ekleyebilirsiniz.

Sütun adı Türü Değerler Explanation
_metadata.row_id Long Satırın benzersiz tanımlayıcısı. Satır, bir MERGE veya UPDATE deyimi kullanılarak değiştirildiğinde aynı kimliği tutar.
_metadata.row_commit_version Long Satırın son eklendiği veya güncelleştirildiği Delta günlüğü veya tablo sürümü. Her değiştirildiğinde, MERGE veya UPDATE deyimi kullanılarak satıra yeni bir sürüm atanır.

Bazı işlemler işlem günlüğünü kullanarak bu meta veri alanlarını depolar. Satır izleme özelliği etkinleştirilmiş bir tabloda OPTIMIZE veya REORG işlemlerini çalıştırmak, bu alanları depolamak için veri dosyalarını yeniden yazar.

Delta Lake tablolarında satır izlemeyi kapatın

Delta Lake tablosunda satır izlemeyi kapatmak için table özelliğini olarak falseayarlayın.

ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = false);

Important

Satır izlemeyi devre dışı bırakmak ilgili tablo özelliğini kaldırmaz ve tablo protokolü sürümünü düşürmez. Ayrıca meta veri alanlarını hedef tablodan kaldırmaz. Tablo özelliğini tamamen kaldırmak ve protokolü düşürmek için kullanın DROP FEATURE. Bkz . Delta Lake tablosu özelliğini bırakma ve tablo protokolünü düşürme.

Satır izlemeyi kapattıktan sonra, oluşturulan satır kimlikleri artık benzersiz satırları izlemek için güvenilir değildir.

Limitations

Değişiklik veri akışı okunurken satır kimlikleri ve satır işleme sürümleri meta veri alanlarına erişilemiyor. Bkz. Azure Databricks'te değişiklik veri akışını kullanma.