Unity Kataloğu tabloları için basit kopya
Önemli
Unity Kataloğu ile yönetilen tablolar için yüzeysel klon desteği Databricks Runtime 13.3 ve üzeri sürümlerde Genel Önizleme aşamasındadır. Unity Kataloğu dış tablosu için yüzeysel klonlama desteği, Databricks Runtime 14.2 ve üzeri sürümlerde Genel Önizleme aşamasındadır.
Mevcut Unity Kataloğu tablolarından yeni Unity Kataloğu tabloları oluşturmak için sığ kopya kullanabilirsiniz. Unity Kataloğu için basit kopyalama desteği, temel alınan veri dosyalarını kopyalamaya gerek kalmadan üst tablolarından bağımsız olarak erişim denetimi ayrıcalıklarına sahip tablolar oluşturmanıza olanak tanır.
Önemli
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. Vakum ve Unity Kataloğu basit kopyaları.
Delta kopyası hakkında daha fazla bilgi için bkz. Azure Databricks'da bir tablonun nasıl kopyalanacağı.
Unity Kataloğu tabloları hakkında daha fazla bilgi için bkz. Tablolar ve görünümler nedir?.
Unity Kataloğu'nda sığ bir kopya oluşturma
Unity Kataloğu'nda, aşağıdaki söz dizimi örneğinde gösterildiği gibi, ürün genelindeki sığ klonlar için kullanılabilen aynı söz dizimini kullanarak sığ bir kopya oluşturabilirsiniz:
CREATE TABLE <catalog-name>.<schema-name>.<target-table-name> SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
Unity Kataloğu'nda sığ bir kopya oluşturmak için, aşağıdaki tabloda açıklandığı gibi hem kaynak hem de hedef kaynaklarda yeterli ayrıcalıklara sahip olmanız gerekir:
Kaynak | Gerekli izinler |
---|---|
Kaynak tablo | SELECT |
Kaynak şema | USE SCHEMA |
Kaynak katalog | USE CATALOG |
Hedef şema |
USE SCHEMA , CREATE TABLE |
Hedef katalog | USE CATALOG |
Hedef harici konum (sadece harici tablolar) | CREATE EXTERNAL TABLE |
Diğer create table deyimleri gibi, sığ bir kopya oluşturan kullanıcı da hedef tablonun sahibidir. Hedef kopyalanan tablonun sahibi, bu tablonun erişim haklarını kaynak tablodan bağımsız olarak denetleyebilir.
Not
Kopyalanan tablonun sahibi, kaynak tablonun sahibinden farklı olabilir.
Unity Kataloğu'nda basit bir kopyalanmış tabloyu sorgulama veya değiştirme
Önemli
Bu bölümdeki yönergelerde, standart erişim modu (eski adıyla paylaşılan erişim modu) ile yapılandırılmış işlem için gereken ayrıcalıklar açıklanmaktadır. Ayrılmış erişim modu (eski adıyla tek kullanıcı erişim modu) için bkz. Ayrılmış erişim modunda basit kopyalanmış tablolarla çalışma.
Unity Kataloğu'nda sığ bir kopyayı sorgulamak için, aşağıdaki tabloda açıklandığı gibi, hem tablo üzerinde hem de içeren kaynaklarda yeterli ayrıcalıklara sahip olmanız gerekir:
Kaynak | Gerekli izinler |
---|---|
Katalog | USE CATALOG |
Şema | USE SCHEMA |
Masa | SELECT |
Aşağıdaki eylemleri tamamlamak için kopyalama işleminin hedefi üzerinde de MODIFY
izinleriniz olmalıdır:
- Kayıt ekleme
- Kayıtları silme
- Kayıtları güncelleştirme
MERGE
CREATE TABLE
DROP TABLE
Vakum ve Unity Kataloğu basit kopyaları
Önemli
Bu davranış, yönetilen tablolar için Databricks Runtime 13.3 LTS ve üzeri, dış tablolar için de Databricks Runtime 14.2 ve üzeri için Genel Önizleme aşamasındadır.
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. Kısmi bir kopyanın kaynağında VACUUM
'ı çalıştırmak, kopyalanan 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. 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 sorgu döndürmek için gereken veri dosyalarını içerecek şekilde genişletilir.
Bu, Unity Kataloğu sığ kopya VACUUM
semantiği için geçerli bir veri dosyasının kaynak tablo veya kopyalanan tablo için belirtilen bekletme eşiği içindeki herhangi bir dosya olduğu anlamına gelir. Yönetilen tablolar ve dış tablolar biraz farklı semantiklere sahiptir.
Meta verilerin bu gelişmiş izlemesi, VACUUM
işlemlerinin Delta tablolarını yedekleyen veri dosyalarını nasıl etkilediğini aşağıdaki semantikle değiştirir:
- Yönetilen tablolar için, yüzeysel bir klonlama işleminin kaynağına veya hedefine karşı yapılan
VACUUM
işlemleri, 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.
Not
Databricks, sürekli uzun süre çalışan işlemlerin bozulmasını önlemek için hiçbir zaman 7 günden kısa bir bekletme ayarıyla çalışmamanızı VACUUM
önerir. Eğer VACUUM
'ı daha düşük bir saklama eşiğiyle çalıştırmanız gerekiyorsa, Unity Kataloğu'ndaki sığ kopyalar üzerinde VACUUM
'in, Azure Databricks'teki diğer kopyalanmış tablolarla VACUUM
'nin etkileşime geçiş biçiminden nasıl farklılık gösterdiğini anladığınızdan emin olun. Şuna bakın: Azure Databricksüzerinde bir tablo kopyalayın.
Ayrılmış erişim modunda basit kopyalanmış tablolarla çalışma
Unity Kataloğu sığ kopyalarıyla ayrılmış erişim modunda çalışırken, kopyalanan tablo kaynağı ve hedef tablo için kaynaklar üzerinde izinlere sahip olmanız gerekir.
Bu,hedef tabloda gerekli MODIFY
izinleriniz de olmalıdır.
Databricks, Unity Kataloğu sığ kopya hedefleri ve kaynak tabloları için izinlerin bağımsız olarak gelişmesine olanak tanıdığından, standart erişim moduyla hesaplama üzerinde Unity Kataloğu kopyalarıyla çalışmanızı önerir.
Sınırlamalar
- Dış tablolardaki sığ kopyaların dış tablolar olması gerekir. Yönetilen tablolardaki sığ kopyaların yönetilen tablolar olması gerekir.
- Mevcut yüzeysel klonun üzerine yazmak için
REPLACE
veyaCREATE OR REPLACE
kullanamazsınız. Bunun yerine,DROP
ile basit bir kopya yapın ve yeni birCREATE
deyimi çalıştırın. - Delta Sharing 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ı destekleyen veri dosyaları
DROP TABLE
işlemleri tarafından kaldırılmaz ve bu nedenle dış tabloların sığ kopyaları kaynağın düşürülmesinden etkilenmez. - Unity Kataloğu, kullanıcıların bir
UNDROP
komutunun ardından yaklaşık 7 gün boyunca yönetilen tablolaraDROP TABLE
olanak tanır. Databricks Runtime 13.3 LTS ve üzeri sürümlerde, bırakılan bir yönetilen tabloyu temel alan yönetilen sığ klonlar bu 7 günlük süre boyunca çalışmaya devam eder. Kaynak tabloyu bu penceredeUNDROP
etmezseniz, kaynak tablonun veri dosyaları çöp toplama işleminden geçtikten sonra sığ kopya çalışmayı durdurur.