Unity Catalog tabloları için yüzeysel kopya

Important

Bu özellik Genel Önizleme aşamasındadır.

Important

Unity Kataloğu tarafından yönetilen tablolar ile dış tablolar için sığ klonlama desteği farklılık gösterir. Yönetilen tablolar için Databricks Runtime 13.3 LTS ve üzerini, dış tablolarda ise Databricks Runtime 14.3 LTS ve üzerini kullanın.

Unity Kataloğu yönetilen tablolarını yalnızca Unity Kataloğu yönetilen tablolarına ve Unity Kataloğu dış tablolarını Unity Kataloğu dış tablolarına kopyalayabilirsiniz. VACUUM davranışı yönetilen ve dış tablolar arasında farklılık gösterir. Bkz. Unity Kataloğu basit kopyalarıyla kullanmaVACUUM.

Temelindeki veri dosyalarını kopyalamadan, kaynak tablolarından bağımsız erişim denetimi ayrıcalıklarına sahip Unity Catalog tabloları oluşturmak için sığ klon kullanın. Unity Kataloğu'ndaki sığ kopya yalnızca Delta Lake tablolarında desteklenir. Buzdağının veya Delta olmayan başka bir tablonun sığ bir kopyasını oluşturamazsınız.

Tabloyu kopyalama hakkında bilgi için bkz. Azure Databricks'te tablo kopyalama.

Unity Kataloğu yönetilen bir sığ kopya oluşturun

Unity Kataloğu'nda yönetilen tablonun sığ bir kopyasını oluşturun.

CREATE TABLE <catalog-name>.<schema-name>.<target-table-name>
SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>

Unity Kataloğu'nda yönetilen basit bir kopya oluşturmak için kaynak ve hedef kaynaklarda aşağıdaki ayrıcalıklara sahip olmanız gerekir.

Resource Gerekli izinler
Kaynak şema USE SCHEMA
Kaynak katalog USE CATALOG
Hedef şema USE SCHEMA, CREATE TABLE
Hedef katalog USE CATALOG

Diğer create table deyimleri gibi, komutunu çalıştırdığınızda SHALLOW CLONEhedef tablonun sahibi sizsiniz. Kopyalanan hedef tablonun sahibi, bu tablonun erişim haklarını kaynak tablodan bağımsız olarak denetler. Kopyalanan tablonun sahibi, kaynak tablonun sahibinden farklı olabilir.

Unity Kataloğu için dış sığ klon oluşturma

Bir dış konum belirleyerek Unity Kataloğu için dış sığ bir kopya oluşturun.

CREATE TABLE <catalog-name>.<schema-name>.<target-table-name>
SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
LOCATION 's3://<bucket-name>/<path-name>/<target-table-name>'

Unity Kataloğu'nda dış sığ bir kopya oluşturmak için kaynak ve hedef kaynaklarda aşağıdaki ayrıcalıklara sahip olmanız gerekir.

Resource Gerekli izinler
Kaynak şema USE SCHEMA
Kaynak katalog USE CATALOG
Hedef şema USE SCHEMA, CREATE TABLE
Hedef katalog USE CATALOG
Hedef harici konum CREATE EXTERNAL TABLE

Standart erişim modunda sığ kopyalanmış tablolarla çalışma

Standart erişim modunda (eski adıyla paylaşılan erişim modu) bir sığ klonu sorgulamak için, tablo ve tabloyu içeren kaynaklar üzerinde aşağıdaki ayrıcalıklara sahip olmanız gerekir:

Resource Gerekli izinler
Catalog USE CATALOG
Schema USE SCHEMA
Table SELECT

Aşağıdaki işlemleri çalıştırmak için kopyalama işleminin hedefi üzerinde de MODIFY izinleriniz olmalıdır:

  • INSERT
  • DELETE
  • UPDATE
  • MERGE
  • CREATE TABLE
  • DROP TABLE

Ayrılmış erişim modunda basit kopyalanmış tablolarla çalışma

Unity Kataloğu sığ kopyalarıyla ayrılmış erişim modunda (eski adıyla tek kullanıcı erişim modu) çalışırken, hem kopyalanan tablo kaynağı hem de hedef tablo için kaynaklar üzerinde izinlere sahip olmanız gerekir.

Basit sorgular için, hedef tabloda gerekli izinlere ek olarak, kaynak katalog ve şema üzerinde USE izinlerine ve kaynak tablo üzerinde SELECT izinlerine sahip olmanız gerekir. Hedef tabloya kayıt güncelleştiren veya ekleyen tüm sorgular için, kaynak tabloda da MODIFY izinleriniz olmalıdır.

Databricks, Unity Kataloğu basit kopya hedefleri ve kaynak tabloları için bağımsız izin değişikliklerine olanak sağladığından standart erişim moduyla işlemde Unity Kataloğu kopyalarının kullanılmasını önerir.

Unity Kataloğu sığ kopyalarla kullanınVACUUM

Basit bir kopyalama işleminin kaynağı ve hedefi için Unity Kataloğu tablolarını kullandığınızda, Unity Kataloğu kopyalama işleminin kaynağı ve hedefi için güvenilirliği artırmak için temel alınan veri dosyalarını yönetir. Sığ bir klonun kaynağında VACUUM komutunu çalıştırmak, klonlanan tabloyu bozmaz.

Normalde, VACUUM belirli bir bekletme eşiği için geçerli dosyaları tanımladığında, yalnızca geçerli tablonun meta verileri dikkate alınır. Ancak Unity Kataloğu için sığ kopya desteği, kopyalanan tüm tablolar ile kaynak veri dosyaları arasındaki ilişkileri izler, bu nedenle geçerli dosyalar hem basit kopyalanmış tablolar hem de kaynak tablo için sorguları döndürmek için gereken veri dosyalarını içerecek şekilde genişletilir.

VACUUM Unity Kataloğu sığ kopyasında geçerli bir veri dosyası, kaynak tablo veya kopyalanan tablo için belirtilen bekletme eşiği içindeki herhangi bir dosyadır. Yönetilen tablolar ve dış tablolar biraz farklı davranışlara sahiptir.

Meta veri değişikliklerinin bu gelişmiş izlenmesi, VACUUM işlemlerinin Delta Lake tabloları için temeldeki veri dosyalarını nasıl etkilediğini aşağıdaki şekilde değiştirir:

  • Yönetilen tablolar için, VACUUM basit bir kopyalama işleminin kaynağı veya hedefi üzerindeki işlemler kaynak tablodan veri dosyalarını silebilir.
  • Dış tablolar için, VACUUM işlemleri yalnızca kaynak tabloda çalıştırıldığında kaynak tablodan veri dosyalarını kaldırır.
  • Yalnızca, kaynak tablo için geçerli kabul edilmeyen veri dosyaları veya kaynak ile karşılaştırıldığında geçersiz olan herhangi bir basit kopya kaldırılır.
  • Tek bir kaynak tabloda birden çok sığ kopya tanımlanırsa, kopyalanan tablolardan herhangi birinde VACUUM çalıştırmak diğer kopyalanan tablolar için geçerli veri dosyalarını kaldırmaz.

Note

Databricks, devam eden uzun süreli işlemlerin bozulmasını önlemek için VACUUM öğesini hiçbir zaman 7 günden kısa bir saklama ayarıyla çalıştırmamanızı önerir. Daha düşük bir saklama eşiğine ihtiyacınız varsa, Unity Catalog’daki sığ klonlarda VACUUM işleyişinin, Azure Databricks’teki diğer klonlanmış tabloları VACUUM etkileme biçiminden nasıl farklı olduğunu göz önünde bulundurun. Daha fazla bilgi için bkz. Azure Databricks'te tablo kopyalama.

Sığ klonlanmış bir tabloyu silseniz bile, temel tabloda SELECT çalıştırmak için bu sığ klonlanmış tabloya VACUUM erişim gerekebilir. Databricks, kopyayı vakumlamadan önce hangi temel tablo veri dosyalarına hala başvurulduğunu doğrulamak için shallow clone'un Delta günlüğünü okur. Databricks, işlemi desteklemek UNDROP için basit bir kopyalanmış tabloyu bıraktıktan sonra bu bağlantıyı 7 gün boyunca korur. Ancak standart erişim modunda bu izin gerekli değildir.

Basit bir kopya için temel tabloyu bırakma

Sığ bir klonun temel tablosunu silerseniz, klon kullanılamaz hale gelir. Databricks, varsayılan olarak, hala ona referans veren sığ kopyalar varsa, temel tabloyu bırakmanızı engeller.

Bu korumayı geçersiz kılmak için söz dizimini DROP TABLE ... FORCE kullanın. Eğer siz FORCE kullanıyorsanız:

  • Temel tablo derhal silinir.
  • Referans alan tüm sığ klonlar bozuk hale gelir ve:
    • Sığ klonlar, verileri veya meta verileri (örneğin, , SELECT, INSERT, UPDATEDESCRIBE HISTORY, CLONE) okumayı gerektiren işlemlerde başarısız olur.
    • Temizlemeye olanak tanımak için, sığ klonlar meta veri düzeyindeki işlemler üzerinden (örneğin, SHOW TABLES, DROP TABLE) hâlâ görünür durumdadır.

Bu davranış yalnızca Unity Kataloğu yönetilen tabloları için geçerlidir. Daha fazla bilgi için bkz. DROP TABLE.

Sınırlamalar

  • Sığ kopya yalnızca Delta Lake tabloları için desteklenir. Buzdağının veya Delta olmayan başka bir tablonun sığ bir kopyasını oluşturamazsınız.
  • CREATE OR REPLACE, mevcut bir sığ kopyanın üzerine yazmak için kullanılamaz. DROP TABLE öğesini ve ardından CREATE TABLE öğesini kullanın ya da yeni bir tablo adı kullanın.
  • Dış tablolardaki sığ kopyaların dış tablolar olması gerekir. Yönetilen tablolardaki sığ kopyaların yönetilen tablolar olması gerekir.
  • OpenSharing kullanarak sığ kopyaları paylaşamazsınız.
  • Sığ klonları iç içe yerleştiremezsiniz, yani sığ bir kopyadan sığ bir kopya yapamazsınız.
  • Yönetilen tablolar için kaynak tablo bırakıldığında, gerçek olmayan kopyaların hedef tablosu bozulur. Dış tablolar için temel veri dosyaları DROP TABLE işlemleri tarafından kaldırılmaz; bu nedenle, dış tabloların yüzeysel kopyaları kaynak dosyanın bırakılmasından etkilenmez.
  • Unity Kataloğu, kullanıcıların bir UNDROP komutunun ardından yaklaşık 7 gün boyunca yönetilen tablolara DROP TABLE olanak tanır. Databricks Runtime 13.3 LTS ve üzeri sürümlerde, bırakılan kaynak tablonun yönetilen sığ kopyaları, Unity Kataloğu'nun desteklediği UNDROP7 günlük süre boyunca çalışmaya devam eder. Kaynak tablo bu pencere içinde geri yüklenmezse, kaynak veri dosyaları çöp toplama sırasında silindiğinde sığ kopya çalışmayı durdurur.