Köken Sistem Tabloları Referansı
Önemli
Bu sistem tablosu Genel Önizlemeiçindedir. Tabloya erişmek için şemanın system
kataloğunuzda etkinleştirilmesi gerekir. Daha fazla bilgi için bkz. sistem tablosu şemalarını etkinleştirme
Bu makalede, iki köken sistemi tablosuna genel bir bakış sağlanır. Bu sistem tabloları, Unity Kataloğu'nun veri kökeni özelliğiüzerine kuruludur ve böylece karar alma ve raporları desteklemek için köken verilerini program aracılığıyla sorgulamanıza olanak tanır.
Not
Kökenleri yakalamak her zaman mümkün olmadığından, her iki köken tablosu da tüm okuma/yazma olaylarının bir alt kümesini temsil eder. Kayıtlar yalnızca köken çıkarılabildiğinde gönderilir.
Tablo kökeni tablosu
Tablo kökeni sistem tablosu, Unity Kataloğu tablosunda veya yolundaki her okuma veya yazma olayı için bir kayıt içerir. Buna iş yürütmeleri, notebook çalıştırmaları ve okuma ya da yazma olaylarıyla güncellenen gösterge tabloları dahildir ancak bunlarla sınırlı değildir.
Tablo yolu: Bu sistem tablosu system.access.table_lineage
konumunda bulunur.
Tablo soyağacı şeması
Tablo kökeni sistem tablosu aşağıdaki şemayı kullanır.
Sütun adı | Veri türü | Açıklama | Örnek |
---|---|---|---|
account_id |
Dize | Azure Databricks hesabının kimliği. | 7af234db-66d7-4db3-bbf0-956098224879 |
metastore_id |
Dize | Unity Kataloğu meta veri deposunun kimliği. | 5a31ba44-bbf4-4174-bf33-e1fa078e6765 |
workspace_id |
Dize | Çalışma alanının kimliği | 123456789012345 |
entity_type |
Dize | Soy ağacı işleminin yakalandığı varlık türü. Değer, NOTEBOOK , JOB , PIPELINE , DASHBOARD_V3 (Pano), DBSQL_DASHBOARD (Eski pano), DBSQL_QUERY VEYA NULL şeklindedir. |
NOTEBOOK |
entity_id |
Dize | Soy işleminin yakalandığı varlığın kimliği. Eğer entity_type NULL ise, entity_id NULL olur. |
|
entity_run_id |
Dize | Varlığın benzersiz yürütmesini açıklayan kimlik veya NULL . Bu, her varlık türü için farklılık gösterir:
Eğer entity_type NULL ise, entity_run_id NULL olur. |
|
source_table_full_name |
Dize | Kaynak tabloyu tanımlamak için üç bölümlü ad. | catalog.schema.table |
source_table_catalog |
Dize | Kaynak tablonun kataloğu. | catalog |
source_table_schema |
Dize | Kaynak tablonun şeması. | schema |
source_table_name |
Dize | Kaynak tablonun adı. | table |
source_path |
Dize | Kaynak tablonun bulut depolamadaki konumu veya doğrudan bulut depolamadan okuyorsa yolu. | abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1 |
source_type |
Dize | Kaynağın türü. Değeri , , TABLE PATH veya VIEW şeklindedirSTREAMING_TABLE . |
TABLE |
target_table_full_name |
Dize | Hedef tabloyu tanımlamak için üç parçalı isim. | catalog.schema.table |
target_table_catalog |
Dize | Hedef tablonun kataloğu. | catalog |
target_table_schema |
Dize | Hedef tablonun şeması. | schema |
target_table_name |
Dize | Hedef tablonun adı. | table |
target_path |
Dize | Hedef tablonun bulut depolama alanında konum. | abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1 |
target_type |
Dize | Hedefin türü. Değer , , TABLE PATH veya VIEW şeklindedirSTREAMING TABLE . |
TABLE |
created_by |
Dize | Bu kökeni oluşturan kullanıcı. Bu, Azure Databricks kullanıcı adı, Azure Databricks hizmet sorumlusu kimliği, “Sistem-Kullanıcı” veya kullanıcı bilgileri yakalanamıyorsa NULL olabilir. |
crampton.rods@email.com |
event_time |
timestamp | Soygeçmişinin oluşturulma zaman damgası. Zaman dilimi bilgileri, UTC'yi temsil eden +00:00 ile birlikte değerin sonunda kaydedilir. |
2023-06-20T19:47:21.194+00:00 |
event_date |
tarih | Kökenin oluşturulduğu tarih. Bu bölümlenmiş bir sütundur. | 2023-06-20 |
Sütun kökeni tablosu
Sütun kökeni tablosu, kaynağı olmayan olayları içermez. Örneğin, açıkça belirtilmiş değerler kullanarak bir sütuna eklendiğinde, kaydedilmez. Eğer bir sütunu okursanız, çıktıyı yazıp yazmadığınıza bakılmaksızın yakalanır. DLT için sütun izleme desteklenmez.
Tablo yolu: Bu sistem tablosu system.access.column_lineage
konumunda bulunur.
Sütun kökeni şeması
Sütun kökeni sistem tablosu aşağıdaki şemayı kullanır:
Sütun adı | Veri türü | Açıklama | Örnek |
---|---|---|---|
account_id |
Dize | Azure Databricks hesabının kimliği. | 7af234db-66d7-4db3-bbf0-956098224879 |
metastore_id |
Dize | Unity Kataloğu meta veri deposunun kimliği. | 5a31ba44-bbf4-4174-bf33-e1fa078e6765 |
workspace_id |
Dize | Çalışma alanının kimliği | 123456789012345 |
entity_type |
Dize | Soy ağacı işleminin kaydedildiği varlık türü. Değer, NOTEBOOK , JOB , PIPELINE , DASHBOARD_V3 (Pano), DBSQL_DASHBOARD (Eski pano), DBSQL_QUERY VEYA NULL şeklindedir. |
NOTEBOOK |
entity_id |
Dize | Soy işleminin yakalandığı varlığın kimliği. Eğer entity_type NULL ise, entity_id NULL olur. |
|
entity_run_id |
Dize | Varlığın benzersiz çalışmasını veya NULL açıklayan kimlik. Bu, her varlık türü için farklılık gösterir:
Eğer entity_type NULL ise, entity_run_id NULL olur. |
|
source_table_full_name |
Dize | Kaynak tabloyu tanımlamak için üç bölümlü ad. | catalog.schema.table |
source_table_catalog |
Dize | Kaynak tablonun kataloğu. | catalog |
source_table_schema |
Dize | Kaynak tablonun şeması. | schema |
source_table_name |
Dize | Kaynak tablonun adı. | table |
source_path |
Dize | Bulut depolamadaki kaynak tablonun konumu veya doğrudan bulut depolamadan okunuyorsa yolu. | abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1 |
source_type |
Dize | Kaynağın türü. Değeri , , TABLE PATH veya VIEW şeklindedirSTREAMING_TABLE . |
TABLE |
source_column_name |
Dize | Kaynak sütunun adı. | date |
target_table_full_name |
Dize | Hedef tabloyu tanımlamak için üç parçalı isim. | catalog.schema.table |
target_table_catalog |
Dize | Hedef tablonun kataloğu. | catalog |
target_table_schema |
Dize | Hedef tablonun şeması. | schema |
target_table_name |
Dize | Hedef tablonun adı. | table |
target_path |
Dize | Hedef tablonun bulut depolama alanında konum. | abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1 |
target_type |
Dize | Hedefin türü. Değer , , TABLE PATH veya VIEW şeklindedirSTREAMING TABLE . |
TABLE |
target_column_name |
Dize | Hedef sütunun adı. | date |
created_by |
Dize | Bu kökeni oluşturan kullanıcı. Bu, Azure Databricks kullanıcı adı, Azure Databricks hizmet sorumlusu kimliği, “Sistem-Kullanıcı” veya kullanıcı bilgileri yakalanamıyorsa NULL olabilir. |
crampton.rods@email.com |
event_time |
timestamp | Soygeçmişinin oluşturulma zaman damgası. Zaman dilimi bilgileri, UTC'yi temsil eden +00:00 ile birlikte değerin sonunda kaydedilir. |
2023-06-20T19:47:21.194+00:00 |
event_date |
tarih | Kökenin oluşturulduğu tarih. Bu bölümlenmiş bir sütundur. | 2023-06-20 |
Köken sistemi tablolarını okuma
Köken sistemi tablolarını analiz ederken aşağıdaki noktalara dikkat edin:
-
entity_type
için Azure Databricks DLT, not defterleri, iş görevleri, Databricks SQL sorgularını ve panoları destekler. Diğer kaynaklardan gelen olaylar desteklenmez. - Eğer
entity_type
öğesininull
olarak görüyorsanız, bu, olaya hiçbir Azure Databricks varlığının dahil olmadığı anlamına gelir. Örneğin, bir JDBC sorgusunun veya bir kullanıcının Azure Databricks kullanıcı arabirimindeki Örnek Veri sekmesine tıklamasının sonucu olabilir. - Olayın okuma mı yoksa yazma mı olduğunu belirlemek için kaynak türünü ve hedef türü görüntüleyebilirsiniz.
- Salt okunur: Kaynak türü boş değil, ancak hedef tür boştur.
- Yalnızca yazma: Hedef tip boş değil, ancak kaynak tip boş.
- Okuma ve yazma: Kaynak türü ve hedef türü null değil.
Köken sistemi tablo örneği
Kökenlerin sistem tablolarında nasıl kaydedildiğiyle ilgili bir örnek olarak, aşağıda örnek bir sorgu ve ardından sorgunun oluşturduğu köken kayıtları verilmiştir:
CREATE OR REPLACE TABLE car_features
AS SELECT *, in1+in2 as premium_feature_set
FROM car_features_exterior
JOIN car_features_interior
USING(id, model);
içindeki system.access.table_lineage
kayıt şöyle görünür:
entity_type |
entity_id |
source_table_name |
target_table_name |
created_by |
event_time |
---|---|---|---|---|---|
NOTEBOOK |
27080565267 |
car_features_exterior |
car_features |
crampton@email.com |
2023-01-25T16:19:58.908+0000 |
NOTEBOOK |
27080565267 |
car_features_interior |
car_features |
crampton@email.com |
2023-01-25T16:19:58.908+0000 |
içindeki system.access.column_lineage
kayıt şöyle görünür:
entity_type |
entity_id |
source_table_name |
target_table_name |
source_column_name |
target_column_name |
event_time |
---|---|---|---|---|---|---|
NOTEBOOK |
27080565267 |
car_features_interior |
car_features |
in1 |
premium_feature_set |
2023-01-25T16:19:58.908+0000 |
NOTEBOOK |
27080565267 |
car_features_interior |
car_features |
in2 |
premium_feature_set |
2023-01-25T16:19:58.908+0000 |
Bilgi Notu
Yukarıdaki örnekte tüm köken sütunları gösterilmez. Şemanın tamamı için yukarıdaki köken şemasıbakın.
Dış tablo sorgularının sorunlarını giderme
Bulut depolama yolunu kullanarak bir dış tabloya başvurdığınızda, ilişkili köken kaydı tablo adını değil yalnızca yol adını içerir. Örneğin, bu sorgunun köken kaydı tablo adını değil yol adını içerir:
SELECT * FROM delta.`abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1`;
Yol tarafından referans verilen bir dış tablonun soy kayıtlarını sorgulamaya çalışıyorsanız, source_path
veya target_path
yerine source_table_full_name
veya target_table_full_name
kullanarak sorguyu filtrelemeniz gerekir. Örneğin, aşağıdaki sorgu bir dış tablonun tüm köken kayıtlarını çeker:
SELECT *
FROM system.access.table_lineage
WHERE
source_path = "abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1" OR
target_path = "abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1";
Örnek: Dış tablo adına göre köken kayıtlarını alma
Kökeni bulmak için bulut depolama yolunu el ile almak istemiyorsanız, tablo adını kullanarak köken verilerini almak için aşağıdaki işlevi kullanabilirsiniz. Fonksiyonda sütun kökenini sorgulamak istiyorsanız system.access.table_lineage
'ı system.access.column_lineage
ile de değiştirebilirsiniz.
def getLineageForTable(table_name):
table_path = spark.sql(f"describe detail {table_name}").select("location").head()[0]
df = spark.read.table("system.access.table_lineage")
return df.where(
(df.source_table_full_name == table_name)
| (df.target_table_full_name == table_name)
| (df.source_path == table_path)
| (df.target_path == table_path)
)
Ardından işlevi çağırmak ve dış tablonun köken kayıtlarını görüntülemek için aşağıdaki komutu kullanın:
display(getLineageForTable("table_name"))