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 tablolara UNDROP 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ız UNDROP , kaynak tablonun veri dosyaları çöp olarak toplandıktan sonra sığ kopya çalışmayı durdurur.