Unity Kataloğu'nu kullanarak veri kökenini yakalama ve görüntüleme
Bu makalede Katalog Gezgini' ni, veri kökeni sistem tablolarını ve REST API' yi kullanarak veri kökenini yakalama ve görselleştirme açıklanmaktadır.
Unity Kataloğu'nu kullanarak Azure Databricks'te çalıştırılacak sorgular arasında çalışma zamanı veri kökenini yakalayabilirsiniz. Köken tüm diller için desteklenir ve sütun düzeyine kadar yakalanır. Köken verileri, sorguyla ilgili not defterlerini, iş akışlarını ve panoları içerir. Köken, Katalog Gezgini'nde neredeyse gerçek zamanlı olarak görselleştirilebilir ve köken sistemi tabloları ve Databricks REST API kullanılarak program aracılığıyla alınabilir.
Köken, Unity Kataloğu meta veri deposuna eklenmiş tüm çalışma alanlarında toplanır. Bu, bir çalışma alanında yakalanan kökenin bu meta veri depolarını paylaşan diğer çalışma alanlarında görünür olduğu anlamına gelir. Kullanıcıların köken verilerini görüntülemek için doğru izinlere sahip olması gerekir. Köken verileri 1 yıl boyunca saklanır.
Makine öğrenmesi modelinin kökenini izleme hakkında bilgi için bkz . Unity Kataloğu'nda modelin veri kökenini izleme.
Gereksinimler
Unity Kataloğu'nu kullanarak veri kökenini yakalamak için aşağıdakiler gereklidir:
Çalışma alanında Unity Kataloğu etkinleştirilmiş olmalıdır.
Tabloların bir Unity Kataloğu meta veri deposuna kaydedilmesi gerekir.
Sorgular, Spark DataFrame (örneğin DataFrame döndüren Spark SQL işlevleri) veya Databricks SQL arabirimlerini kullanmalıdır. Databricks SQL ve PySpark sorguları örnekleri için bkz . Örnekler.
Bir tablonun veya görünümün kökenini görüntülemek için, kullanıcıların en azından
BROWSE
tablonun veya görünümün üst kataloğunda ayrıcalığı olmalıdır.Kullanıcılar; not defterlerinin, iş akışlarının veya panoların köken bilgilerini görüntülemek için çalışma alanında erişim denetimi ayarlarıyla tanımlanan bu nesneler üzerinde izinlere sahip olmalıdır. Bkz. Köken izinleri.
Unity Kataloğu özellikli bir işlem hattının kökenini görüntülemek için işlem hattı üzerinde izinlere sahip
CAN_VIEW
olmanız gerekir.Azure Databricks kontrol düzlemindeki Olay Hub'ı uç noktasına bağlantı sağlamak için, giden güvenlik duvarı kurallarınızı güncelleştirmeniz gerekebilir. Bu durum genellikle Azure Databricks çalışma alanınız kendi sanal ağınızda (sanal ağ ekleme olarak da bilinir) dağıtılırsa geçerlidir. Çalışma alanı bölgenizin Olay Hub'ı uç noktasını almak için bkz. Meta veri deposu, yapı Blob depolama, sistem tabloları depolama, günlük Blob depolama ve Olay Hub'ı uç noktası IP adresleri. Azure Databricks için kullanıcı tanımlı yolları (UDR) ayarlama hakkında bilgi için bkz. Azure Databricks için kullanıcı tanımlı yol ayarları.
Sınırlamalar
Delta tabloları arasındaki akış yalnızca Databricks Runtime 11.3 veya sonraki sürümlerinde desteklenir.
Köken 1 yıllık hareketli zaman penceresinde hesaplandığından, 1 yıldan daha önce toplanan köken görüntülenmez. Örneğin bir iş veya sorgu A tablosundan verileri okur ve B tablosuna yazarsa, A tablosu ile B tablosu arasındaki bağlantı yalnızca 1 yıl boyunca görüntülenir.
Köken verilerini zaman dilimine göre filtreleyebilirsiniz. "Tüm köken" seçildiğinde, Haziran 2023'te toplanan köken verileri görüntülenir.
İşler API'sini
runs submit
kullanan iş akışları, köken görüntülenirken kullanılamaz. İstek kullanılırkenruns submit
tablo ve sütun düzeyi kökeni hala yakalanır, ancak çalıştırma bağlantısı yakalanmaz.Unity Kataloğu sütun düzeyinde veri kökenini mümkün olduğunca yakalar. Bununla birlikte bazı durumlarda sütun düzeyinde veri kökeni yakalanamaz.
Sütun kökeni yalnızca hem kaynak hem de hedefe tablo adıyla başvurulduğunda desteklenir (Örnek:
select * from <catalog>.<schema>.<table>
). Kaynak veya hedef yola göre ele alınırsa sütun kökeni yakalanamaz (Örnek:select * from delta."s3://<bucket>/<path>"
).Tablo yeniden adlandırılırsa, yeniden adlandırılan tablo için veri kökeni yakalanmaz.
Spark SQL veri kümesi denetim noktası oluşturma kullanıyorsanız köken yakalanmaz. Apache Spark belgelerinde pyspark.sql.DataFrame.checkpoint bölümüne bakın.
Unity Kataloğu çoğu durumda Delta Live Tabloları veri hatlarından kökeni yakalar. Ancak bazı durumlarda, işlem hatlarının DEĞIŞIKLIKLERI UYGULA API'sini veya GEÇİCİ tabloları kullanması gibi eksiksiz köken kapsamı garanti edilemez.
Örnekler
Not
Aşağıdaki örneklerde katalog adı
lineage_data
ve şema adılineagedemo
kullanılır. Farklı bir katalog ve şema kullanmak için örneklerde kullanılan adları değiştirin.Bu örneği tamamlamak için şemada ve
USE SCHEMA
ayrıcalıklarına sahipCREATE
olmanız gerekir. Meta veri deposu yöneticisi, katalog sahibi veya şema sahibi bu ayrıcalıkları verebilir. Örneğin, 'data_engineers' grubundaki tüm kullanıcılara katalogdaki şemadalineagedemo
lineage_data
tablo oluşturma izni vermek için, yukarıdaki ayrıcalıklardan veya rollerden birine sahip bir kullanıcı aşağıdaki sorguları çalıştırabilir:CREATE SCHEMA lineage_data.lineagedemo; GRANT USE SCHEMA, CREATE on SCHEMA lineage_data.lineagedemo to `data_engineers`;
Köken yakalama ve keşfetme
Köken verilerini yakalamak için aşağıdaki adımları kullanın:
Azure Databricks giriş sayfanıza gidin, kenar çubuğunda Yeni'ye tıklayın ve menüden Not Defteri'ni seçin.
Not defteri için bir ad girin ve Varsayılan Dil'de SQL'i seçin.
Küme'de Unity Kataloğu'na erişimi olan bir küme seçin.
Oluştur’a tıklayın.
İlk not defteri hücresine aşağıdaki sorguları girin:
CREATE TABLE IF NOT EXISTS lineage_data.lineagedemo.menu ( recipe_id INT, app string, main string, dessert string ); INSERT INTO lineage_data.lineagedemo.menu (recipe_id, app, main, dessert) VALUES (1,"Ceviche", "Tacos", "Flan"), (2,"Tomato Soup", "Souffle", "Creme Brulee"), (3,"Chips","Grilled Cheese","Cheesecake"); CREATE TABLE lineage_data.lineagedemo.dinner AS SELECT recipe_id, concat(app," + ", main," + ",dessert) AS full_menu FROM lineage_data.lineagedemo.menu
Sorguları çalıştırmak için hücreye tıklayın ve shift+enter tuşlarına basın veya tıklayıp Hücreyi Çalıştır'ı seçin.
Katalog Gezgini'ni kullanarak bu sorgular tarafından oluşturulan kökeni görüntülemek için aşağıdaki adımları kullanın:
Azure Databricks çalışma alanının üst çubuğundaki Arama kutusuna Girin
lineage_data.lineagedemo.dinner
ve Databricks'te Lineage_data.lineagedemo.dinner dosyasını ara'ya tıklayın.Tablolar'ın altında tabloya
dinner
tıklayın.Köken sekmesini seçin. Köken paneli görüntülenir ve ilişkili tabloları görüntüler (bu örnek için tablodur
menu
).Veri kökeninin etkileşimli bir grafiğini görüntülemek için Bkz. Köken Grafiği. Varsayılan olarak, grafikte bir düzey görüntülenir. Varsa daha fazla bağlantı göstermek için düğümdeki simgeye tıklayabilirsiniz .
Köken bağlantı panelini açmak için köken grafiğindeki düğümleri bağlayan oka tıklayın. Köken bağlantı panelinde kaynak ve hedef tablolar, not defterleri ve iş akışları gibi bağlantıyla ilgili ayrıntılar gösterilir.
Tabloyla
dinner
ilişkili not defterini göstermek için, Köken bağlantı panelinde not defterini seçin veya köken grafiğini kapatın ve Not Defterleri'ne tıklayın. Not defterini yeni bir sekmede açmak için not defteri adına tıklayın.Sütun düzeyi kökeni görüntülemek için, ilgili sütunların bağlantılarını göstermek için grafikteki bir sütuna tıklayın. Örneğin, 'full_menu' sütununa tıklanması, sütunun türetildiği yukarı akış sütunlarını gösterir:
Python gibi farklı bir dille köken oluşturmayı ve görüntülemeyi göstermek için aşağıdaki adımları kullanın:
Daha önce oluşturduğunuz not defterini açın, yeni bir hücre oluşturun ve aşağıdaki Python kodunu girin:
%python from pyspark.sql.functions import rand, round df = spark.range(3).withColumn("price", round(10*rand(seed=42),2)).withColumnRenamed("id","recipe_id") df.write.mode("overwrite").saveAsTable("lineage_data.lineagedemo.price") dinner = spark.read.table("lineage_data.lineagedemo.dinner") price = spark.read.table("lineage_data.lineagedemo.price") dinner_price = dinner.join(price, on="recipe_id") dinner_price.write.mode("overwrite").saveAsTable("lineage_data.lineagedemo.dinner_price")
Hücreye tıklayıp shift+enter tuşlarına basarak veya tıklayıp Hücreyi Çalıştır'ı seçerek hücreyi çalıştırın.
Azure Databricks çalışma alanının üst çubuğundaki Arama kutusuna Girin
lineage_data.lineagedemo.price
ve Databricks'te lineage_data.lineagedemo.price ara'ya tıklayın.Tablolar'ın altında tabloya
price
tıklayın.Köken sekmesini seçin ve Köken Grafını Gör'e tıklayın. SQL ve Python sorguları tarafından oluşturulan veri kökenini keşfetmek için simgelere tıklayın.
Köken bağlantı panelini açmak için köken grafiğindeki düğümleri bağlayan oka tıklayın. Köken bağlantı panelinde kaynak ve hedef tablolar, not defterleri ve iş akışları gibi bağlantıyla ilgili ayrıntılar gösterilir.
İş akışı kökenini yakalama ve görüntüleme
Köken, Unity Kataloğu'nu okuyan veya yazan tüm iş akışları için de yakalanır. Azure Databricks iş akışının kökenini görüntülemeyi göstermek için aşağıdaki adımları kullanın:
Kenar çubuğunda Yeni'ye tıklayın ve menüden Not Defteri'ni seçin.
Not defteri için bir ad girin ve Varsayılan Dil'de SQL'i seçin.
Oluştur’a tıklayın.
İlk not defteri hücresine aşağıdaki sorguyu girin:
SELECT * FROM lineage_data.lineagedemo.menu
Üst çubukta Zamanla'ya tıklayın. Zamanlama iletişim kutusunda El ile'yi seçin, Unity Kataloğu'na erişimi olan bir küme seçin ve Oluştur'a tıklayın.
Şimdi çalıştır üzerine tıklayın.
Azure Databricks çalışma alanının üst çubuğundaki Arama kutusuna Girin
lineage_data.lineagedemo.menu
ve Databricks'te Ara lineage_data.lineagedemo.menu öğesine tıklayın.Tablolar Tüm tabloları görüntüle'nin altında tabloya
menu
tıklayın.Köken sekmesini seçin, İş Akışları'na tıklayın ve Aşağı Akış sekmesini seçin. İş adı, İş Adı'nın altında tablonun tüketicisi
menu
olarak görünür.
Pano kökenini yakalama ve görüntüleme
SQL panosunun kökenini görüntülemeyi göstermek için aşağıdaki adımları kullanın:
- Azure Databricks giriş sayfanıza gidin ve kenar çubuğunda Katalog'a tıklayarak Katalog Gezgini'ni açın.
- Katalog adına tıklayın, lineagedemo öğesine tıklayın ve tabloyu seçin
menu
. Tabloyu aramak içinmenu
üst çubuktaki Tablo ara metin kutusunu da kullanabilirsiniz. - Eylemler > Hızlı pano oluştur'a tıklayın.
- Panoya eklenecek sütunları seçin ve Oluştur'a tıklayın.
- Azure Databricks çalışma alanının üst çubuğundaki Arama kutusuna Girin
lineage_data.lineagedemo.menu
ve Databricks'te Ara lineage_data.lineagedemo.menu öğesine tıklayın. - Tablolar Tüm tabloları görüntüle'nin altında tabloya
menu
tıklayın. - Köken sekmesini seçin ve Panolar'a tıklayın. Pano adı, Pano Adı altında menü tablosunun tüketicisi olarak görünür.
Köken izinleri
Köken grafikleri Unity Kataloğu ile aynı izin modelini paylaşır. Bir kullanıcının BROWSE
tabloda veya SELECT
ayrıcalığı yoksa, kökeni keşfedemez. Ayrıca kullanıcılar yalnızca görüntüleme iznine sahip oldukları not defterlerini, iş akışlarını ve panoları görebilir. Örneğin, yönetici olmayan bir kullanıcı userA
için aşağıdaki komutları çalıştırırsanız:
GRANT USE SCHEMA on lineage_data.lineagedemo to `userA@company.com`;
GRANT SELECT on lineage_data.lineagedemo.menu to `userA@company.com`;
Tablo için köken grafiğini görüntülediğindeuserA
, tabloyu görürlermenu
.lineage_data.lineagedemo.menu
Aşağı akış lineage_data.lineagedemo.dinner
tablosu gibi ilişkili tablolar hakkındaki bilgileri göremezler. Tablodinner
, için görüntüde userA
bir masked
düğüm olarak görüntülenir ve userA
erişim izni olmayan tablolardan aşağı akış tablolarını ortaya çıkarmak için grafiği genişletemez.
Yönetici olmayan bir kullanıcıya userB
izin vermek için BROWSE
aşağıdaki komutu çalıştırırsanız:
GRANT BROWSE on lineage_data to `userA@company.com`;
userB
artık şemadaki herhangi bir tablonun köken grafiğini lineage_data
görüntüleyebilir.
Unity Kataloğu'nda güvenliği sağlanabilir nesnelere erişimi yönetme hakkında daha fazla bilgi için bkz . Unity Kataloğu'nda ayrıcalıkları yönetme. Not defterleri, iş akışları ve panolar gibi çalışma alanı nesnelerine erişimi yönetme hakkında daha fazla bilgi için bkz . Erişim denetim listeleri.
Köken verilerini silme
Uyarı
Aşağıdaki yönergeler Unity Kataloğu'nda depolanan tüm nesneleri siler. Bu yönergeleri yalnızca gerekirse kullanın. Örneğin, uyumluluk gereksinimlerini karşılamak için.
Köken verilerini silmek için Unity Kataloğu nesnelerini yöneten meta depoyu silmeniz gerekir. Meta depoyu silme hakkında daha fazla bilgi için bkz . Meta veri depolarını silme. Veriler 90 gün içinde silinir.
Sistem tablolarını kullanarak köken verilerini sorgulama
Köken verilerini program aracılığıyla sorgulamak için köken sistemi tablolarını kullanabilirsiniz. Ayrıntılı yönergeler için bkz . Sistem tablolarıyla kullanımı izleme ve Köken sistem tabloları başvurusu.
Çalışma alanınız köken sistemi tablolarını desteklemeyen bir bölgedeyse, alternatif olarak köken verilerini program aracılığıyla almak için Veri Kökeni REST API'sini kullanabilirsiniz.
Veri Kökeni REST API'sini kullanarak köken alma
Veri kökeni API'si tablo ve sütun kökenini almanıza olanak tanır. Ancak, çalışma alanınız köken sistemi tablolarını destekleyen bir bölgedeyse REST API yerine sistem tablosu sorgularını kullanmanız gerekir. Sistem tabloları, köken verilerini program aracılığıyla almak için daha iyi bir seçenektir. Çoğu bölge, köken sistemi tablolarını destekler.
Önemli
Databricks REST API’lerine erişmek için kimlik doğrulaması yapmanız gerekir.
Tablo kökenini alma
Bu örnek, tablo için dinner
köken verilerini alır.
İstek
curl --netrc -X GET \
-H 'Content-Type: application/json' \
https://<workspace-instance>/api/2.0/lineage-tracking/table-lineage \
-d '{"table_name": "lineage_data.lineagedemo.dinner", "include_entity_lineage": true}'
değerini değiştirin <workspace-instance>
.
Bu örnekte bir .netrc dosyası kullanılır.
Response
{
"upstreams": [
{
"tableInfo": {
"name": "menu",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_type": "TABLE"
},
"notebookInfos": [
{
"workspace_id": 4169371664718798,
"notebook_id": 1111169262439324
}
]
}
],
"downstreams": [
{
"notebookInfos": [
{
"workspace_id": 4169371664718798,
"notebook_id": 1111169262439324
}
]
},
{
"tableInfo": {
"name": "dinner_price",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_type": "TABLE"
},
"notebookInfos": [
{
"workspace_id": 4169371664718798,
"notebook_id": 1111169262439324
}
]
}
]
}
Sütun kökenini alma
Bu örnek, tablonun sütun verilerini dinner
alır.
İstek
curl --netrc -X GET \
-H 'Content-Type: application/json' \
https://<workspace-instance>/api/2.0/lineage-tracking/column-lineage \
-d '{"table_name": "lineage_data.lineagedemo.dinner", "column_name": "dessert"}'
değerini değiştirin <workspace-instance>
.
Bu örnekte bir .netrc dosyası kullanılır.
Yanıtla
{
"upstream_cols": [
{
"name": "dessert",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_name": "menu",
"table_type": "TABLE"
},
{
"name": "main",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_name": "menu",
"table_type": "TABLE"
},
{
"name": "app",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_name": "menu",
"table_type": "TABLE"
}
],
"downstream_cols": [
{
"name": "full_menu",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_name": "dinner_price",
"table_type": "TABLE"
}
]
}
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin