Aracılığıyla paylaş


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 izinlerine ek olarak basit sorgular için kaynak katalog ve şema üzerinde izinlerine ve kaynak tabloda izinlerine sahip olmanız gerektiği anlamına gelir. Hedef tabloya kayıt güncelleştirecek veya ekleyebilecek tüm sorgular için, kaynak tabloda 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 veya CREATE OR REPLACE kullanamazsınız. Bunun yerine, DROP ile basit bir kopya yapın ve yeni bir CREATE 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 tablolara DROP 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 pencerede UNDROP etmezseniz, kaynak tablonun veri dosyaları çöp toplama işleminden geçtikten sonra sığ kopya çalışmayı durdurur.