Unity Kataloğu tabloları için basit kopya
Önemli
Unity Kataloğu yönetilen tabloları için basit kopyalama desteği Databricks Runtime 13.3 ve üzeri sürümlerde Genel Önizleme aşamasındadır. Unity Kataloğu dış tablosu için basit kopyalama 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 . Vacuum ve Unity Kataloğu sığ klonlar.
Delta kopyası hakkında daha fazla bilgi için bkz . Azure Databricks'te tablo kopyalama.
Unity Kataloğu tabloları hakkında daha fazla bilgi için bkz . Unity Kataloğu'nda tablo oluşturma.
Unity Kataloğu'nda basit 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 dış konum (yalnızca dış 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, paylaşılan erişim moduyla yapılandırılmış işlem için gereken ayrıcalıklar açıklanmaktadır. Tek Kullanıcı erişim modu için bkz . Tek Kullanıcı 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 tabloda ve kaynak içeren yeterli ayrıcalıklara sahip olmanız gerekir:
Kaynak | Gerekli izinler |
---|---|
Katalog | USE CATALOG |
Şema | USE SCHEMA |
Tablo | 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
- Güncelleştirme kayıtları
MERGE
CREATE OR REPLACE TABLE
DROP TABLE
Vakum ve Unity Kataloğu sığ klonlar
Ö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. Basit bir kopyanın kaynağı üzerinde çalıştırmak VACUUM
kopyalanan tabloyu bozmaz.
Normalde, belirli bir bekletme eşiği için geçerli dosyaları tanımladığında VACUUM
, 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, işlemlerin Delta tablolarını yedekleyen veri dosyalarını nasıl VACUUM
etkilediğini aşağıdaki semantikle değiştirir:
- Yönetilen tablolar için,
VACUUM
basit bir kopyalama işleminin kaynağına veya hedeflerine yönelik işlemler kaynak tablodan veri dosyalarını silebilir. - Dış tablolar için,
VACUUM
işlemler 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 kaynağa karşı herhangi bir basit kopya kaldırılır.
- Tek bir kaynak tabloda birden çok sığ kopya tanımlanırsa, kopyalanan tablolardan herhangi birinde çalıştırıldığında
VACUUM
diğer kopyalanan tablolar için geçerli veri dosyaları kaldırılmaz.
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. Daha düşük bir bekletme eşiğiyle çalıştırmanız VACUUM
gerekiyorsa Unity Kataloğu'ndaki sığ kopyaların Azure Databricks'teki diğer kopya tablolarla etkileşim kurma yönteminden ne VACUUM
kadar VACUUM
farklı olduğunu anladığınızdan emin olun. Bkz. Azure Databricks'te tablo kopyalama.
Tek Kullanıcı erişim modunda basit kopyalanmış tablolarla çalışma
Unity Kataloğu basit kopyalarıyla Tek Kullanıcı erişim modunda çalışırken, kopyalanan tablo kaynağı ve hedef tablo için kaynaklar üzerinde izinleriniz olmalıdır.
Bu, hedef tablodaki gerekli izinlere ek olarak basit sorgular için kaynak katalog ve şema üzerinde izinlere ve SELECT
kaynak tablo üzerindeki izinlere sahip USE
olmanız gerektiği anlamına gelir. Hedef tabloya kayıtları güncelleştirecek veya ekleyebilecek tüm sorgular için, kaynak tabloda da MODIFY
izinleriniz olmalıdır.
Databricks, Unity Kataloğu basit kopya hedefleri ve bunların kaynak tabloları için izinlerin bağımsız olarak gelişmesine olanak sağladığından, paylaşılan erişim moduyla işlem ü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.
- 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ılıyorsa, basit kopyaların hedef tablosu kesilir. Dış tabloların yedeklendiği veri dosyaları işlemler tarafından
DROP TABLE
kaldırılmaz ve bu nedenle dış tabloların sığ kopyaları kaynağı bırakarak etkilenmez. - Unity Kataloğu, kullanıcıların bir
DROP TABLE
komut sonrasında yaklaşık 7 gün boyunca yönetilen tablolaraUNDROP
izin verir. 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. Bu pencerede kaynak tabloyu yapmazsanızUNDROP
, kaynak tablonun veri dosyaları çöp olarak toplandıktan sonra sığ kopya çalışmayı durdurur.