Mengambil dan melihat silsilah data menggunakan Katalog Unity
Artikel ini menjelaskan cara mengambil dan memvisualisasikan silsilah data menggunakan Catalog Explorer, tabel sistem silsilah data, dan REST API.
Anda dapat menggunakan Unity Catalog untuk mengambil silsilah data runtime di seluruh kueri yang dijalankan di Azure Databricks. Silsilah data didukung untuk semua bahasa dan diambil ke tingkat kolom. Data silsilah data mencakup buku catatan, alur kerja, dan dasbor yang terkait dengan kueri. Silsilah data dapat divisualisasikan di Catalog Explorer hampir secara real time dan diambil secara terprogram menggunakan tabel sistem silsilah data dan Databricks REST API.
Silsilah data dikumpulkan di semua ruang kerja yang dilampirkan ke metastore Katalog Unity. Ini berarti bahwa silsilah data yang diambil dalam satu ruang kerja terlihat di berbagi ruang kerja lain yang metastore. Pengguna harus memiliki izin yang benar untuk melihat data silsilah data. Data silsilah disimpan selama 1 tahun.
Untuk informasi tentang melacak silsilah model pembelajaran mesin, lihat Melacak silsilah data model di Katalog Unity.
Persyaratan
Berikut ini diperlukan untuk mengambil silsilah data menggunakan Katalog Unity:
Ruang kerja harus mengaktifkan Katalog Unity.
Tabel harus didaftarkan dalam metastore Katalog Unity.
Kueri harus menggunakan Spark DataFrame (misalnya, fungsi Spark SQL yang mengembalikan antarmuka DataFrame) atau Databricks SQL. Untuk contoh kueri Databricks SQL dan PySpark, lihat Contoh.
Untuk melihat silsilah tabel atau tampilan, pengguna harus memiliki setidaknya
BROWSE
hak istimewa pada katalog induk tabel atau tampilan.Untuk menampilkan informasi silsilah data untuk buku catatan, alur kerja, atau dasbor, pengguna harus memiliki izin pada objek ini seperti yang ditentukan oleh pengaturan kontrol akses di ruang kerja. Lihat Izin silsilah data.
Untuk melihat silsilah untuk alur yang diaktifkan Katalog Unity, Anda harus memiliki
CAN_VIEW
izin pada alur.Anda mungkin perlu memperbarui aturan firewall keluar untuk memungkinkan konektivitas ke titik akhir Pusat Aktivitas di sarana kontrol Azure Databricks. Biasanya ini berlaku jika ruang kerja Azure Databricks Anda disebarkan di VNet Anda sendiri (juga dikenal sebagai injeksi VNet). Untuk mendapatkan titik akhir Pusat Aktivitas untuk wilayah ruang kerja Anda, lihat Metastore, penyimpanan Blob artefak, penyimpanan tabel sistem, penyimpanan Blob log, dan alamat IP titik akhir Pusat Aktivitas. Untuk informasi tentang menyiapkan rute yang ditentukan pengguna (UDR) untuk Azure Databricks, lihat Pengaturan rute yang ditentukan pengguna untuk Azure Databricks.
Batasan
Streaming antar tabel Delta hanya didukung di Databricks Runtime 11.3 LTS atau lebih tinggi.
Karena silsilah data dihitung pada jendela bergulir 1 tahun, silsilah data yang dikumpulkan lebih dari 1 tahun yang lalu tidak ditampilkan. Misalnya, jika pekerjaan atau kueri membaca data dari tabel A dan menulis ke tabel B, tautan antara tabel A dan tabel B ditampilkan hanya selama 1 tahun.
Anda dapat memfilter data silsilah berdasarkan jangka waktu. Ketika "Semua silsilah" dipilih, data silsilah data yang dikumpulkan mulai Juni 2023 ditampilkan.
Alur kerja yang menggunakan permintaan JOBS API
runs submit
tidak tersedia saat melihat silsilah data. Silsilah tabel dan tingkat kolom masih diambil saat menggunakanruns submit
permintaan, tetapi tautan ke eksekusi tidak diambil.Unity Catalog mengambil silsilah data ke tingkat kolom sebanyak mungkin. Namun, dalam beberapa kasus, silsilah data tingkat kolom tidak dapat diambil.
Silsilah kolom hanya didukung ketika sumber dan target dirujuk oleh nama tabel (Contoh:
select * from <catalog>.<schema>.<table>
). Silsilah kolom tidak dapat diambil jika sumber atau target ditangani berdasarkan jalur (Contoh:select * from delta."s3://<bucket>/<path>"
).Jika nama tabel diganti, silsilah data tidak diambil untuk tabel tersebut.
Jika Anda menggunakan titik pemeriksaan himpunan data Spark SQL, silsilah data tidak diambil. Lihat pyspark.sql.DataFrame.checkpoint dalam dokumentasi Apache Spark.
Katalog Unity mengambil silsilah data dari alur Tabel Langsung Delta dalam banyak kasus. Namun, dalam beberapa instans, cakupan silsilah lengkap tidak dapat dijamin, seperti ketika alur menggunakan TABEL APPLY CHANGES API atau TEMPORARY.
Contoh
Catatan
Contoh berikut menggunakan nama katalog dan nama
lineage_data
lineagedemo
skema . Untuk menggunakan katalog dan skema yang berbeda, ubah nama yang digunakan dalam contoh.Untuk menyelesaikan contoh ini, Anda harus memiliki
CREATE
hak istimewa danUSE SCHEMA
pada skema. Admin metastore, pemilik katalog, atau pemilik skema dapat memberikan hak istimewa ini. Misalnya, untuk memberi semua pengguna dalam grup izin 'data_engineers' untuk membuat tabel dalamlineagedemo
skema dalamlineage_data
katalog, pengguna dengan salah satu hak istimewa atau peran di atas dapat menjalankan kueri berikut:CREATE SCHEMA lineage_data.lineagedemo; GRANT USE SCHEMA, CREATE on SCHEMA lineage_data.lineagedemo to `data_engineers`;
Mengambil dan menjelajahi silsilah data
Untuk mengambil data silsilah data, gunakan langkah-langkah berikut:
Buka halaman arahan Azure Databricks Anda, klik Baru di bar samping, dan pilih Buku Catatan dari menu.
Masukkan nama untuk buku catatan dan pilih SQL dalam Bahasa Default.
Di Kluster, pilih kluster dengan akses ke Unity Catalog.
Klik Buat.
Di sel buku catatan pertama, masukkan kueri berikut ini:
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
Untuk menjalankan kueri, klik di sel dan tekan shift+enter atau klik dan pilih Jalankan Sel.
Untuk menggunakan Catalog Explorer untuk melihat silsilah data yang dihasilkan oleh kueri ini, gunakan langkah-langkah berikut:
Dalam kotak Pencarian di bilah atas ruang kerja Azure Databricks, masukkan
lineage_data.lineagedemo.dinner
dan klik Cari lineage_data.lineagedemo.dinner di Databricks.Di bawah Tabel, klik
dinner
tabel.Pilih tab Silsilah data. Panel silsilah muncul dan menampilkan tabel terkait (untuk contoh ini adalah
menu
tabel).Untuk melihat grafik interaktif silsilah data, klik Lihat Grafik Silsilah Data. Secara default, satu tingkat ditampilkan dalam grafik. Anda dapat mengklik ikon pada simpul untuk mengungkapkan lebih banyak koneksi jika tersedia.
Klik panah yang menghubungkan simpul di grafik silsilah untuk membuka panel koneksi Silsilah. Panel Koneksi silsilah menampilkan detail tentang koneksi, termasuk tabel sumber dan target, buku catatan, dan alur kerja.
Untuk memperlihatkan buku catatan yang terkait dengan
dinner
tabel, pilih buku catatan di panel Koneksi silsilah atau tutup grafik silsilah data dan klik Buku Catatan. Untuk membuka buku catatan di tab baru, klik nama buku catatan.Untuk menampilkan silsilah data tingkat kolom, klik kolom dalam grafik untuk memperlihatkan tautan ke kolom terkait. Misalnya, mengklik kolom 'full_menu' memperlihatkan kolom upstram tempat kolom berasal dari:
Untuk menunjukkan pembuatan dan tampilan silsilah data dengan bahasa yang berbeda, misalnya, Python, gunakan langkah-langkah berikut:
Buka buku catatan yang Anda buat sebelumnya, buat sel baru, dan masukkan kode Python berikut ini:
%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")
Jalankan sel dengan mengklik sel dan tekan shift+enter atau klik dan pilih Jalankan Sel.
Dalam kotak Pencarian di bilah atas ruang kerja Azure Databricks, masukkan
lineage_data.lineagedemo.price
dan klik Cari lineage_data.lineagedemo.price di Databricks.Di bawah Tabel, klik
price
tabel.Pilih tab Silsilah data dan klik Lihat Grafik Silsilah Data. Klik ikon untuk menjelajahi silsilah data yang dihasilkan oleh kueri SQL dan Python.
Klik panah yang menghubungkan simpul di grafik silsilah untuk membuka panel koneksi Silsilah. Panel Koneksi silsilah menampilkan detail tentang koneksi, termasuk tabel sumber dan target, buku catatan, dan alur kerja.
Mengambil dan melihat silsilah alur kerja
Silsilah data juga diambil untuk alur kerja apa pun yang membaca atau menulis ke Katalog Unity. Untuk menunjukkan menampilkan silsilah untuk alur kerja Azure Databricks, gunakan langkah-langkah berikut:
Klik Baru di bar samping dan pilih Notebook dari menu.
Masukkan nama untuk buku catatan dan pilih SQL dalam Bahasa Default.
Klik Buat.
Di sel buku catatan pertama, masukkan kueri berikut ini:
SELECT * FROM lineage_data.lineagedemo.menu
Klik Jadwalkan di bilah atas. Dalam dialog jadwal, pilih Manual, pilih kluster dengan akses ke Unity Catalog, dan klik Buat.
Klik Jalankan sekarang.
Dalam kotak Pencarian di bilah atas ruang kerja Azure Databricks, masukkan
lineage_data.lineagedemo.menu
dan klik Cari lineage_data.lineagedemo.menu di Databricks.Di bawah Tabel Tampilkan semua tabel, klik
menu
tabel.Pilih tab Silsilah Data, klik Alur Kerja, dan pilih tab Hilir. Nama pekerjaan muncul di bawah Nama Pekerjaan sebagai konsumen
menu
tabel.
Mengambil dan melihat silsilah dasbor
Untuk menunjukkan menampilkan silsilah data untuk dasbor SQL, gunakan langkah-langkah berikut:
- Buka halaman arahan Azure Databricks Anda dan buka Catalog Explorer dengan mengklik Katalog di bar samping.
- Klik nama katalog, klik lineagedemo, dan pilih
menu
tabel. Anda juga bisa menggunakan kotak teks Cari tabel di bilah atas untukmenu
mencari tabel. - Klik Tindakan Buat dasbor >cepat.
- Pilih kolom untuk ditambahkan ke dasbor dan klik Buat.
- Dalam kotak Pencarian di bilah atas ruang kerja Azure Databricks, masukkan
lineage_data.lineagedemo.menu
dan klik Cari lineage_data.lineagedemo.menu di Databricks. - Di bawah Tabel Tampilkan semua tabel, klik
menu
tabel. - Pilih tab Silsilah data dan klik Dasbor. Nama dasbor muncul di bawah Nama Dasbor sebagai konsumen tabel menu.
Izin silsilah data
Grafik silsilah data berbagi model izin yang sama dengan Katalog Unity. Jika pengguna tidak memiliki BROWSE
hak istimewa atau SELECT
pada tabel, mereka tidak dapat menjelajahi silsilah data. Selain itu, pengguna hanya dapat melihat buku catatan, alur kerja, dan dasbor yang izinnya mereka tampilkan. Misalnya, jika Anda menjalankan perintah berikut untuk pengguna userA
non-admin :
GRANT USE SCHEMA on lineage_data.lineagedemo to `userA@company.com`;
GRANT SELECT on lineage_data.lineagedemo.menu to `userA@company.com`;
Saat userA
melihat grafik silsilah data untuk lineage_data.lineagedemo.menu
tabel, grafik tersebut akan melihat menu
tabel. Mereka tidak akan dapat melihat informasi tentang tabel terkait, seperti tabel hilir lineage_data.lineagedemo.dinner
. Tabel dinner
ditampilkan sebagai simpul masked
dalam tampilan ke userA
, dan userA
tidak dapat memperluas grafik untuk mengungkapkan tabel hilir dari tabel yang tidak memiliki izin untuk diakses.
Jika Anda menjalankan perintah berikut untuk memberikan BROWSE
izin kepada pengguna userB
non-admin :
GRANT BROWSE on lineage_data to `userA@company.com`;
userB
sekarang dapat melihat grafik silsilah untuk tabel apa pun dalam lineage_data
skema.
Untuk informasi selengkapnya tentang mengelola akses ke objek yang dapat diamankan di Katalog Unity, lihat Mengelola hak istimewa di Katalog Unity. Untuk informasi selengkapnya tentang mengelola akses ke objek ruang kerja seperti buku catatan, alur kerja, dan dasbor, lihat Daftar kontrol akses.
Menghapus data silsilah data
Peringatan
Instruksi berikut menghapus semua objek yang disimpan di Katalog Unity. Gunakan instruksi ini hanya jika perlu. Misalnya, untuk memenuhi persyaratan kepatuhan.
Untuk menghapus data silsilah data, Anda harus menghapus metastore yang mengelola objek Katalog Unity. Untuk informasi selengkapnya tentang menghapus metastore, lihat Menghapus metastore. Data akan dihapus dalam waktu 90 hari.
Mengkueri data silsilah data menggunakan tabel sistem
Anda dapat menggunakan tabel sistem silsilah data untuk mengkueri data silsilah data secara terprogram. Untuk instruksi terperinci, lihat Memantau penggunaan dengan tabel sistem dan referensi tabel sistem Silsilah.
Jika ruang kerja Anda berada di wilayah yang tidak mendukung tabel sistem silsilah data, Anda dapat menggunakan REST API Silsilah Data untuk mengambil data silsilah data secara terprogram.
Mengambil silsilah data menggunakan DATA Lineage REST API
API silsilah data memungkinkan Anda mengambil silsilah tabel dan kolom. Namun, jika ruang kerja Anda berada di wilayah yang mendukung tabel sistem silsilah data, Anda harus menggunakan kueri tabel sistem alih-alih REST API. Tabel sistem adalah opsi yang lebih baik untuk pengambilan data silsilah data terprogram. Sebagian besar wilayah mendukung tabel sistem silsilah data.
Penting
Untuk mengakses API Databricks REST, Anda harus melakukan autentikasi.
Mengambil silsilah tabel
Contoh ini mengambil data silsilah data untuk dinner
tabel.
Minta
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}'
Ganti <workspace-instance>
.
Contoh ini menggunakan file .netrc.
Respons
{
"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
}
]
}
]
}
Mengambil silsilah kolom
Contoh ini mengambil data kolom untuk dinner
tabel.
Minta
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"}'
Ganti <workspace-instance>
.
Contoh ini menggunakan file .netrc.
Tanggapan
{
"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"
}
]
}
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk