Share via


Databricks-To-Databricks Delta Sharing kullanarak paylaşılan verileri okuma (alıcılar için)

Bu makalede, Databricks'in veri paylaşımı için güvenli bir bağlantıyı yönettiği Databricks-To-Databricks Delta Sharing protokolü kullanılarak sizinle paylaşılan verilerin nasıl okunduğu açıklanmaktadır. Delta Sharing açık paylaşım protokolünden farklı olarak, Databricks-Databricks protokolü bir kimlik bilgisi dosyası (belirteç tabanlı güvenlik) gerektirmez.

Databricks-Databricks paylaşımı, alıcı olarak Unity Kataloğu için etkinleştirilmiş bir Databricks çalışma alanına erişmenizi gerektirir.

Unity Kataloğu için etkinleştirilmiş bir Databricks çalışma alanınız yoksa, Delta Sharing açık paylaşım protokolü kullanılarak verilerin sizinle paylaşılması gerekir ve bu makale sizin için geçerli değildir. Bkz. Delta Sharing açık paylaşımı kullanarak paylaşılan verileri okuma (alıcılar için).

Paylaşılan verileri ekibimin kullanımına Nasıl yaparım??

Databricks-To-Databricks protokolü kullanılarak sizinle paylaşılan verileri ve not defterlerini okumak için, Unity Kataloğu için etkinleştirilmiş bir Databricks çalışma alanında kullanıcı olmanız gerekir. Ekibinizin bir üyesi veri sağlayıcısına Unity Kataloğu meta veri deponuz için benzersiz bir tanımlayıcı sağlar ve veri sağlayıcısı bu tanımlayıcıyı kullanarak kuruluşunuzla güvenli bir paylaşım bağlantısı oluşturur. Paylaşılan veriler daha sonra çalışma alanınızda okuma erişimine sunulur ve veri sağlayıcısının paylaşılan tablolar, görünümler, birimler ve bölümler için yaptığı tüm güncelleştirmeler çalışma alanınıza neredeyse gerçek zamanlı olarak yansıtılır.

Not

Paylaşılan veri tablolarına, görünümlere ve birimlere Güncelleştirmeler çalışma alanınızda neredeyse gerçek zamanlı olarak görünür. Ancak sütun değişiklikleri (ekleme, yeniden adlandırma, silme) Katalog Gezgini'nde bir dakikaya kadar görünmeyebilir. Benzer şekilde, yeni paylaşımlar ve paylaşım güncelleştirmeleri (bir paylaşıma yeni tablolar ekleme gibi) görüntüleme ve sorgulama için kullanılabilir duruma gelmeden önce bir dakika boyunca önbelleğe alınır.

Sizinle paylaşılan verileri okumak için:

  1. Ekibinizdeki bir kullanıcı paylaşımı (sizinle paylaşılan tablolar, görünümler, birimler ve not defterleri için kapsayıcı) bulur ve bu paylaşımı kullanarak bir katalog oluşturur ve Databricks Unity Kataloğu'ndaki tüm veriler için en üst düzey kapsayıcıdır.
  2. Ekibinizdeki bir kullanıcı, kataloğun ve katalog içindeki nesnelerin (şemalar, tablolar, görünümler ve birimler) ekibinizin diğer üyelerine erişim izni verir veya erişimi reddeder.
  3. Salt okunur (SELECT veya ) erişiminiz olan Databricks'teki diğer veri varlıkları gibi size erişim verilen tablo, görünüm ve READ VOLUMEbirimlerdeki verileri okursunuz.
  4. Katalogda ayrıcalığınız olduğu sürece paylaşımdaki not defterlerini ön izlemeniz ve kopyalamanız USE CATALOG gerekir.

Gerekli izinler

Tüm sağlayıcılar ve sağlayıcı paylaşımları hakkındaki ayrıntıları listeleyebilmek ve görüntüleyebilmek için meta veri deposu yöneticisi olmanız veya ayrıcalığınız USE PROVIDER olması gerekir. Diğer kullanıcılar yalnızca sahip oldukları sağlayıcılara ve paylaşımlara erişebilir.

Bir sağlayıcı paylaşımından katalog oluşturmak için meta veri deposu yöneticisi, Unity Kataloğu meta veri deponuzun hem ve CREATE_CATALOGUSE PROVIDER ayrıcalıklarına sahip olan bir kullanıcı hem de sağlayıcı nesnesinin CREATE_CATALOG hem ayrıcalığına hem de sahipliğine sahip bir kullanıcı olmanız gerekir.

Paylaşımdan oluşturulan katalogdaki şemalara (veritabanları), tablolara, görünümlere ve birimlere salt okunur erişim verme özelliği, tipik Unity Kataloğu ayrıcalık hiyerarşisini izler. Paylaşımdan oluşturulan katalogdaki not defterlerini görüntüleyebilmek için katalogda USE CATALOG ayrıcalık gerekir. Bkz. Delta Sharing kataloğundaki şemalar, tablolar ve birimler için izinleri yönetme.

Sağlayıcıları ve paylaşımları görüntüleme

Bir veri sağlayıcısı tarafından sizinle paylaşılan verileri okumaya başlamak için sağlayıcının adını bilmeniz ve sağlayıcı sizinle veri paylaştıktan sonra Unity Kataloğu meta deponuzda depolanan nesneleri paylaşmanız gerekir.

Sağlayıcı nesnesi, verileri sizinle paylaşan kuruluşun Unity Kataloğu meta veri depolarını, bulut platformunu ve bölgesini temsil eder.

Share nesnesi, sağlayıcının sizinle paylaştığı tabloları, birimleri ve görünümleri temsil eder.

Sizinle veri paylaşan tüm sağlayıcıları görüntüleme

Kullanılabilir veri sağlayıcılarının listesini görüntülemek için, Azure Databricks not defterinde veya SHOW PROVIDERS Databricks SQL sorgu düzenleyicisinde Katalog Gezgini'ni, Databricks Unity Kataloğu CLI'sini veya SQL komutunu kullanabilirsiniz.

gerekli izinler: Meta veri deposu yöneticisi olmanız veya ayrıcalığınız USE PROVIDER olması gerekir. Diğer kullanıcılar yalnızca sahip oldukları sağlayıcılara ve sağlayıcı paylaşımlarına erişebilir.

Ayrıntılar için bkz . Sağlayıcıları görüntüleme.

Sağlayıcı ayrıntılarını görüntüleme

Bir sağlayıcıyla ilgili ayrıntıları görüntülemek için, Bir Azure Databricks not defterinde veya DESCRIBE PROVIDER Databricks SQL sorgu düzenleyicisinde Katalog Gezgini'ni, Databricks Unity Kataloğu CLI'sini veya SQL komutunu kullanabilirsiniz.

Gerekli izinler: Meta veri deposu yöneticisi olmanız, ayrıcalığınız USE PROVIDER olması veya sağlayıcı nesnesine sahip olmanız gerekir.

Ayrıntılar için bkz . Sağlayıcı ayrıntılarını görüntüleme.

Paylaşımları görüntüleme

Bir sağlayıcının sizinle paylaştığı paylaşımları görüntülemek için, Bir Azure Databricks not defterinde veya SHOW SHARES IN PROVIDER Databricks SQL sorgu düzenleyicisinde Katalog Gezgini'ni, Databricks Unity Kataloğu CLI'sini veya SQL komutunu kullanabilirsiniz.

Gerekli izinler: Meta veri deposu yöneticisi olmanız, ayrıcalığınız USE PROVIDER olması veya sağlayıcı nesnesine sahip olmanız gerekir.

Ayrıntılar için bkz . Sağlayıcının sizinle paylaştığı paylaşımları görüntüleme.

Paylaşılan tablo veya birimdeki verilere erişme

Paylaşılan tablo veya birimdeki verileri okumak için:

  1. Ayrıcalıklı bir kullanıcı, tabloyu veya birimi içeren paylaşımdan bir katalog oluşturmalıdır. Bu bir meta veri deposu yöneticisi, Unity Kataloğu meta veri deponuzun hem ve CREATE_CATALOGUSE PROVIDER ayrıcalıklarına sahip olan bir kullanıcı hem de sağlayıcı nesnesinin CREATE_CATALOG hem ayrıcalığına hem de sahipliğine sahip bir kullanıcı olabilir.
  2. Bu kullanıcı veya aynı ayrıcalıklara sahip bir kullanıcı, paylaşılan tabloya veya birime erişim izni vermelidir.
  3. Tabloya veya birime, Unity Kataloğu meta veri deponuzda kayıtlı diğer veri varlıkları gibi erişebilirsiniz.

Bir paylaşımdan katalog oluşturma

Bir paylaşımdaki verilerin ekibiniz tarafından erişilebilir olmasını sağlamak için paylaşımdan bir katalog oluşturmanız gerekir. Bir paylaşımdan katalog oluşturmak için, Bir Azure Databricks not defterinde veya Databricks SQL sorgu düzenleyicisinde Katalog Gezgini'ni, Databricks Unity Kataloğu CLI'sini veya SQL komutlarını kullanabilirsiniz.

Gerekli izinler: Meta veri deposu yöneticisi, Unity Kataloğu meta veri deponuzun hem ve CREATE_CATALOGUSE PROVIDER ayrıcalıklarına sahip olan bir kullanıcı hem de sağlayıcı nesnesinin CREATE_CATALOG hem ayrıcalığına hem de sahipliğine sahip bir kullanıcı.

Not

Paylaşım görünümler içeriyorsa, sağlayıcının meta veri deposundaki görünümü içeren kataloğun adından farklı bir katalog adı kullanmanız gerekir.

Katalog gezgini

  1. Azure Databricks çalışma alanınızda Katalog'a tıklayınKatalog simgesi.
  2. Sol bölmede Delta Paylaşımı menüsünü genişletin ve Benimle paylaşılan'ı seçin.
  3. Sağlayıcılar sekmesinde sağlayıcıyı seçin.
  4. Paylaşımlar sekmesinde paylaşımı bulun ve paylaşım satırında Katalog oluştur'a tıklayın.
  5. Katalog için bir ad ve isteğe bağlı açıklama girin.
  6. Oluştur’a tıklayın.

Sql

Aşağıdaki komutu bir not defterinde veya Databricks SQL sorgu düzenleyicisinde çalıştırın.

CREATE CATALOG [IF NOT EXISTS] <catalog-name>
USING SHARE <provider-name>.<share-name>;

Clı

databricks catalogs create <catalog-name> /
--provider-name <provider-name> /
--share-name <share-name>

Bir paylaşımdan oluşturulan kataloğun bir katalog türü Delta Sharing'dır. Türü Katalog Gezgini'ndeki katalog ayrıntıları sayfasında veya not defterinde veya Databricks SQL sorgusunda DESCRIBE CATALOG SQL komutunu çalıştırarak görüntüleyebilirsiniz. Tüm paylaşılan kataloglar, Katalog Gezgini sol bölmesindeki Katalog Paylaşılan altında listelenir.>

Delta Sharing kataloğu, Unity Kataloğu meta veri deposundaki normal kataloglarla aynı şekilde yönetilebilir. Katalog Gezgini'ni, Databricks CLI'yı ve , DESCRIBE CATALOG, ALTER CATALOGve SQL komutlarını kullanarak SHOW CATALOGSDelta Sharing kataloğunu görüntüleyebilir, güncelleştirebilir ve DROP CATALOG silebilirsiniz.

Bir paylaşımdan oluşturulan Delta Sharing kataloğunun altındaki 3 düzeyli ad alanı yapısı, Unity Kataloğu'nda normal bir kataloğun altındakiyle aynıdır: catalog.schema.table veya catalog.schema.volume.

Paylaşılan bir kataloğun altındaki tablo ve birim verileri salt okunurdur; bu da aşağıdaki gibi okuma işlemleri gerçekleştirebileceğiniz anlamına gelir:

  • DESCRIBE, SHOWve SELECT tabloları için.
  • DESCRIBE VOLUME, LIST <volume-path>, SELECT * FROM <format>.'<volume_path>'ve COPY INTO birimleri için.

Paylaşılan katalogdaki not defterleri, katalogdaki herhangi bir kullanıcı USE CATALOG tarafından önizlenebilir ve kopyalanabilir.

Paylaşılan katalogdaki modeller, şu ayrıcalıklara sahip herhangi bir kullanıcı tarafından çıkarılma amacıyla okunabilir ve yüklenebilir: EXECUTE kayıtlı modelde ayrıcalık, ayrıca USE SCHEMA modeli içeren şema ve USE CATALOG katalogdaki ayrıcalıklar.

Delta Sharing kataloğundaki şemalar, tablolar ve birimler için izinleri yönetme

Varsayılan olarak, katalog oluşturucu bir Delta Sharing kataloğu altındaki tüm veri nesnelerinin sahibidir ve herhangi biri için izinleri yönetebilir.

Ayrıcalıklar aşağı doğru devralınır, ancak bazı çalışma alanları devralma sağlamayan eski güvenlik modelinde olabilir. Bkz . Devralma modeli. Katalogda SELECT ayrıcalık verilen SELECT tüm kullanıcılar, bu ayrıcalık iptal edilmediği sürece katalogdaki tüm şemalarda ve tablolarda ayrıcalığı olur. Benzer şekilde, katalogda READ VOLUME ayrıcalık verilen READ VOLUME tüm kullanıcılar, bu ayrıcalık iptal edilmediği sürece katalogdaki tüm birimlerde ayrıcalığı olur. Delta Sharing kataloğuna veya Delta Sharing kataloğundaki nesnelere yazma veya güncelleştirme erişimi veren ayrıcalıklar veremezsiniz.

Katalog sahibi, veri nesnelerinin sahipliğini diğer kullanıcılara veya gruplara devrederek bu kullanıcılara nesne izinlerini ve yaşam döngülerini yönetme olanağı verebilir.

Unity Kataloğu'nu kullanarak veri nesneleri üzerindeki ayrıcalıkları yönetme hakkında ayrıntılı bilgi için bkz . Unity Kataloğu'nda ayrıcalıkları yönetme.

Paylaşılan tablodaki verileri okuma

Azure Databricks kullanıcısı olarak kullanabileceğiniz araçlardan herhangi birini kullanarak paylaşılan bir tablodaki verileri okuyabilirsiniz: Katalog Gezgini, not defterleri, SQL sorguları, Databricks CLI ve Databricks REST API'leri. Tabloda ayrıcalığınız SELECT olmalıdır.

Paylaşılan bir birimde verileri okuma

Azure Databricks kullanıcısı olarak kullanabileceğiniz araçlardan herhangi birini kullanarak paylaşılan bir birimdeki verileri okuyabilirsiniz: Katalog Gezgini, not defterleri, SQL sorguları, Databricks CLI ve Databricks REST API'leri. Birimde ayrıcalığınız READ VOLUME olmalıdır.

Çıkarım için paylaşılan model yükleme

Paylaşılan modeli yükleme ve toplu çıkarım için kullanma hakkında ayrıntılı bilgi için bkz . Çıkarım için modelleri yükleme.

Tablonun geçmiş verilerini sorgulama

Tabloyla birlikte geçmiş paylaşılıyorsa, tablo verilerini bir sürüm veya zaman damgası olarak sorgulayabilirsiniz. Databricks Runtime 12.2 LTS veya üzerini gerektirir.

Örneğin:

SELECT * FROM vaccine.vaccine_us.vaccine_us_distribution VERSION AS OF 3;
SELECT * FROM vaccine.vaccine_us.vaccine_us_distribution TIMESTAMP AS OF "2023-01-01 00:00:00";

Ayrıca, değişiklik veri akışı (CDF) tabloyla etkinleştirildiyse CDF'yi sorgulayabilirsiniz. Hem sürüm hem de zaman damgası desteklenir:

SELECT * FROM table_changes('vaccine.vaccine_us.vaccine_us_distribution', 0, 3);
SELECT * FROM table_changes('vaccine.vaccine_us.vaccine_us_distribution', "2023-01-01 00:00:00", "2022-02-01 00:00:00");

Veri akışını değiştirme hakkında daha fazla bilgi için bkz . Azure Databricks'te Delta Lake değişiklik veri akışını kullanma.

Apache Spark Yapılandırılmış Akış kullanarak tablo sorgulama

Tablo geçmişle paylaşılıyorsa, Spark Yapılandırılmış Akış için kaynak olarak bunu kullanabilirsiniz. Databricks Runtime 12.2 LTS veya üzerini gerektirir.

Desteklenen seçenekler:

  • ignoreDeletes: Verileri silen işlemleri yoksayın.
  • ignoreChanges: , MERGE INTO, DELETE (bölümler içinde) veya OVERWRITEgibi UPDATEbir veri değiştirme işlemi nedeniyle kaynak tabloda dosyalar yeniden yazıldıysa güncelleştirmeleri yeniden işleyin. Değişmemiş satırlar yine de yayılabilir. Bu nedenle aşağı akış tüketicilerinizin yinelenenleri işleyebilmesi gerekir. Silme işlemleri aşağı akışa yayılmaz. ignoreChanges, ignoreDeletes işlemini kapsar. Bu nedenle, kullanırsanız ignoreChanges, akışınız kaynak tablodaki silmeler veya güncelleştirmeler tarafından kesintiye uğramaz.
  • startingVersion: Başlangıç olarak paylaşılan tablo sürümü. Bu sürümden (dahil) başlayarak tüm tablo değişiklikleri akış kaynağı tarafından okunur.
  • startingTimestamp: Başlangıç olarak zaman damgası. Zaman damgası (dahil) sırasında veya sonrasında işlenen tüm tablo değişiklikleri akış kaynağı tarafından okunur. Örnek: "2023-01-01 00:00:00.0"
  • maxFilesPerTrigger: Her mikro toplu işlemde dikkate alınması gereken yeni dosyaların sayısı.
  • maxBytesPerTrigger: Her mikro toplu işlemde işlenen veri miktarı. Bu seçenek bir "soft max" ayarlar; başka bir deyişle bir toplu işlem yaklaşık olarak bu miktarda veriyi işler ve en küçük giriş biriminin bu sınırdan büyük olduğu durumlarda akış sorgusunun ileriye doğru ilerlemesini sağlamak için sınırdan daha fazlasını işleyebilecektir.
  • readChangeFeed: Akış, paylaşılan tablonun değişiklik veri akışını okur.

Desteklenmeyen seçenekler:

  • Trigger.availableNow

Örnek Yapılandırılmış Akış sorguları

Scala
spark.readStream.format("deltaSharing")
.option("startingVersion", 0)
.option("ignoreChanges", true)
.option("maxFilesPerTrigger", 10)
.table("vaccine.vaccine_us.vaccine_us_distribution")
Python
spark.readStream.format("deltaSharing")\
.option("startingVersion", 0)\
.option("ignoreDeletes", true)\
.option("maxBytesPerTrigger", 10000)\
.table("vaccine.vaccine_us.vaccine_us_distribution")

Değişiklik veri akışı (CDF) tabloyla etkinleştirildiyse, CDF'yi okuma akışını yapabilirsiniz.

spark.readStream.format("deltaSharing")
.option("readChangeFeed", "true")
.table("vaccine.vaccine_us.vaccine_us_distribution")

Silme vektörlerinin veya sütun eşlemenin etkinleştirildiği tabloları okuma

Önemli

Bu özellik Genel Önizlemededir.

Silme vektörleri, sağlayıcınızın paylaşılan Delta tablolarında etkinleştirebileceği bir depolama iyileştirme özelliğidir. Bkz . Silme vektörleri nedir?.

Azure Databricks, Delta tabloları için sütun eşlemeyi de destekler. Bkz . Delta Lake sütun eşlemesi ile sütunları yeniden adlandırma ve bırakma.

Sağlayıcınız silme vektörleri veya sütun eşlemesi etkinleştirilmiş bir tablo paylaştıysa, SQL ambarını veya Databricks Runtime 14.1 veya üzerini çalıştıran bir kümeyi kullanarak tabloda toplu okuma gerçekleştirebilirsiniz. CDF ve akış sorguları Databricks Runtime 14.2 veya üzerini gerektirir.

Toplu sorgular, paylaşılan tablonun tablo özelliklerine göre otomatik olarak çözümlenebileceği responseFormat için olduğu gibi gerçekleştirebilirsiniz.

Bir değişiklik veri akışını (CDF) okumak veya silme vektörleri veya sütun eşlemesi etkin olan paylaşılan tablolarda akış sorguları gerçekleştirmek için ek seçeneğini responseFormat=deltaayarlamanız gerekir.

Aşağıdaki örneklerde batch, CDF ve akış sorguları gösterilmektedir:

import org.apache.spark.sql.SparkSession

// Batch query
spark.read.format("deltaSharing").table(<tableName>)

// CDF query
spark.read.format("deltaSharing")
  .option("readChangeFeed", "true")
  .option("responseFormat", "delta")
  .option("startingVersion", 1)
  .table(<tableName>)

// Streaming query
spark.readStream.format("deltaSharing").option("responseFormat", "delta").table(<tableName>)

Paylaşılan görünümleri okuma

Önemli

Bu özellik Genel Önizlemededir.

Not

Görüntüleme paylaşımı yalnızca Databricks'ten Databricks'e paylaşımında desteklenir.

Paylaşılan görünümleri okuma, paylaşılan tabloları okumakla aynıdır; bu özel durumlar dışında:

İşlem gereksinimleri:

  • Azure Databricks hesabınız sağlayıcıdan farklıysa, paylaşılan görünümleri sorgulamak için Sunucusuz SQL ambarı kullanmanız gerekir.
  • Sağlayıcı aynı Azure Databricks hesabındaysa, herhangi bir SQL ambarını kullanabilir ve paylaşılan erişim modunu kullanan bir küme de kullanabilirsiniz.

Görüntüleme kısıtlamaları:

Paylaşılan görünümlere başvuran görünümler oluşturamazsınız.

Paylaşım kısıtlamalarını görüntüleme:

Paylaşılan tablolara veya paylaşılan görünümlere başvuran görünümleri paylaşamazsınız.

Adlandırma gereksinimleri:

Görünümü içeren paylaşılan katalog için kullandığınız katalog adı, görünüm tarafından başvurulan bir tablo içeren sağlayıcı kataloğuyla aynı olamaz. Örneğin, paylaşılan görünüm kataloğunuzda test yer alıyorsa ve sağlayıcının bu görünümde başvurulan tablolarından biri sağlayıcının test kataloğunda yer alıyorsa, sorgu ad alanı çakışma hatasına neden olur. Bkz. Paylaşımdan katalog oluşturma.

Geçmiş ve akış:

Geçmişi sorgulayamaz veya bir görünümü akış kaynağı olarak kullanamazsınız.

JDBC/ODBC:

Bu makaledeki yönergeler, Özellikle Unity Kataloğu söz dizimi ve arabirimleri gibi Azure Databricks kullanıcı arabirimlerini kullanarak paylaşılan verileri okumaya odaklanır. Databricks JDBC/ODBC sürücülerini kullanarak Apache Spark, Python ve Tableau ve Power BI gibi BI araçlarını kullanarak da paylaşılan görünümleri sorgulayabilirsiniz. Databricks JDBC/ODBC sürücülerini kullanarak bağlanmayı öğrenmek için bkz . Databricks ODBC ve JDBC Sürücüleri.

Paylaşılan not defterlerini okuma

Paylaşılan not defteri dosyalarını önizlemek ve kopyalamak için Katalog Gezgini'ni kullanabilirsiniz.

gerekli izinler: Katalog sahibi veya paylaşımdan oluşturulan katalogda ayrıcalığı olan USE CATALOG kullanıcı.

  1. Azure Databricks çalışma alanınızda Katalog'a tıklayınKatalog simgesi.

  2. Sol bölmede Katalog menüsünü genişletin, paylaşımdan oluşturulan kataloğu bulun ve seçin.

  3. Diğer varlıklar sekmesinde paylaşılan not defteri dosyalarını görürsünüz.

  4. Önizlemesini görüntülemek için paylaşılan not defteri dosyasının adına tıklayın.

  5. (İsteğe bağlı) Paylaşılan not defteri dosyasını çalışma alanınıza aktarmak için Kopyala düğmesine tıklayın.

    1. Kopyala iletişim kutusunda, isteğe bağlı olarak yeni bir ad girin ve not defteri dosyasını kopyalamak istediğiniz çalışma alanı klasörünü seçin.
    2. Kopyala'ya tıklayın.
    3. Not defteri kopyalandıktan sonra, başarıyla kopyalandığını size bildirmek için bir iletişim kutusu açılır. İletişim kutusundaki not defteri düzenleyicisinde göster'e tıklayarak not defteri düzenleyicisinde görüntüleyin.

    Bkz . Databricks not defterlerine giriş.