Pantau alur Delta Live Tables
Artikel ini menjelaskan penggunaan fitur pemantauan dan pengamatan bawaan untuk alur Tabel Langsung Delta. Fitur-fitur ini mendukung tugas-tugas seperti:
- Mengamati kemajuan dan status pembaruan alur. Lihat Detail alur apa yang tersedia di UI?.
- Pemberitahuan tentang peristiwa alur seperti keberhasilan atau kegagalan pembaruan alur. Lihat Menambahkan pemberitahuan email untuk peristiwa alur.
- Mengekstrak informasi terperinci tentang pembaruan alur seperti silsilah data, metrik kualitas data, dan penggunaan sumber daya. Lihat Apa itu log peristiwa Delta Live Tables?.
- Menentukan tindakan kustom yang harus diambil saat peristiwa tertentu terjadi. Lihat Menentukan pemantauan kustom alur Delta Live Tables dengan kait peristiwa.
Menambahkan pemberitahuan email untuk peristiwa alur
Anda dapat mengonfigurasi satu atau beberapa alamat email untuk menerima pemberitahuan saat hal berikut ini terjadi:
- Pembaruan alur berhasil diselesaikan.
- Pembaruan alur gagal, baik dengan kesalahan yang dapat diulang atau tidak dapat diulang. Pilih opsi ini untuk menerima pemberitahuan untuk semua kegagalan alur.
- Pembaruan alur gagal dengan kesalahan yang tidak dapat diulang (fatal). Pilih opsi ini untuk menerima pemberitahuan hanya ketika kesalahan yang tidak dapat diulang terjadi.
- Satu aliran data gagal.
Untuk mengonfigurasi pemberitahuan email saat Anda membuat atau mengedit alur:
- Klik Tambahkan pemberitahuan.
- Masukkan satu atau beberapa alamat email untuk menerima pemberitahuan.
- Klik kotak centang untuk setiap jenis pemberitahuan untuk dikirim ke alamat email yang dikonfigurasi.
- Klik Tambahkan pemberitahuan.
Detail alur apa yang tersedia di UI?
Grafik alur ditampilkan segera setelah pembaruan ke alur berhasil dimulai. Panah mewakili dependensi antara himpunan data di alur Anda. Secara default, halaman detail alur memperlihatkan pembaruan terbaru untuk tabel, tetapi Anda dapat memilih pembaruan yang lebih lama dari menu drop-down.
Detailnya termasuk ID alur, kode sumber, biaya komputasi, edisi produk, dan saluran yang dikonfigurasi untuk alur.
Untuk melihat tampilan himpunan data tabular, klik tab Daftar . Tampilan Daftar memungkinkan Anda melihat semua himpunan data dalam alur Anda yang diwakili sebagai baris dalam tabel dan berguna saat DAG alur Anda terlalu besar untuk divisualisasikan dalam tampilan Grafik . Anda dapat mengontrol himpunan data yang ditampilkan dalam tabel menggunakan beberapa filter seperti nama, jenis, dan status himpunan data. Untuk beralih kembali ke visualisasi DAG, klik Grafik.
Jalankan sebagai pengguna adalah pemilik alur, dan pembaruan alur berjalan dengan izin pengguna ini. Untuk mengubah pengguna run as
, klik Izin dan ubah pemilik alur.
Bagaimana Anda dapat melihat detail himpunan data?
Mengklik himpunan data dalam grafik alur atau daftar himpunan data menampilkan detail tentang himpunan data. Detailnya termasuk skema himpunan data, metrik kualitas data, dan tautan ke kode sumber yang menentukan himpunan data.
Lihat riwayat pembaruan
Untuk melihat riwayat dan status pembaruan alur, klik menu drop-down riwayat pembaruan di bilah atas.
Pilih pembaruan di menu drop-down untuk melihat grafik, detail, dan peristiwa untuk pembaruan. Untuk kembali ke pembaruan terbaru, klik Tampilkan pembaruan terbaru.
Apa itu log peristiwa Tabel Langsung Delta?
Log peristiwa Delta Live Tables berisi semua informasi yang terkait dengan alur, termasuk log audit, pemeriksaan kualitas data, kemajuan alur, dan silsilah data. Anda dapat menggunakan log peristiwa untuk melacak, memahami, dan memantau status alur data Anda.
Anda dapat melihat entri log peristiwa di antarmuka pengguna Delta Live Tables, API Delta Live Tables, atau dengan langsung mengkueri log peristiwa. Bagian ini berfokus pada kueri log peristiwa secara langsung.
Anda juga dapat menentukan tindakan kustom untuk dijalankan saat peristiwa dicatat, misalnya, mengirim pemberitahuan, dengan hook peristiwa.
Skema log peristiwa
Tabel berikut menjelaskan skema log peristiwa. Beberapa bidang ini berisi data JSON yang memerlukan penguraian untuk melakukan beberapa kueri, seperti details
bidang . Azure Databricks :
mendukung operator untuk mengurai bidang JSON. Lihat : Operator (tanda titik dua).
Bidang | Deskripsi |
---|---|
id |
Pengidentifikasi unik untuk catatan log peristiwa. |
sequence |
Dokumen JSON yang berisi metadata untuk mengidentifikasi dan memesan peristiwa. |
origin |
Dokumen JSON yang berisi metadata untuk asal peristiwa, misalnya, penyedia cloud, wilayah penyedia cloud, user_id , , pipeline_id atau pipeline_type untuk menunjukkan tempat alur dibuat, baik DBSQL atau WORKSPACE . |
timestamp |
Waktu peristiwa direkam. |
message |
Pesan yang dapat dibaca manusia yang menggambarkan peristiwa tersebut. |
level |
Jenis peristiwa, misalnya, INFO , , WARN , ERROR atau METRICS . |
error |
Jika terjadi kesalahan, detail yang menjelaskan kesalahan. |
details |
Dokumen JSON yang berisi detail terstruktur dari peristiwa tersebut. Ini adalah bidang utama yang digunakan untuk menganalisis peristiwa. |
event_type |
Jenis kejadian. |
maturity_level |
Stabilitas skema peristiwa. Nilai yang mungkin adalah: - STABLE : Skema stabil dan tidak akan berubah.- NULL : Skema stabil dan tidak akan berubah. Nilainya mungkin NULL jika rekaman dibuat sebelum maturity_level bidang ditambahkan (rilis 2022.37).- EVOLVING : Skema tidak stabil dan dapat berubah.- DEPRECATED : Skema tidak digunakan lagi dan runtime Tabel Langsung Delta dapat berhenti menghasilkan peristiwa ini kapan saja. |
Mengkueri log peristiwa
Lokasi log peristiwa dan antarmuka untuk mengkueri log peristiwa bergantung pada apakah alur Anda dikonfigurasi untuk menggunakan metastore Apache Hive atau Katalog Unity.
Metastore Apache Hive
Jika alur Anda menerbitkan tabel ke metastore Apache Hive, log peristiwa disimpan di /system/events
bawah storage
lokasi. Misalnya, jika Anda telah mengonfigurasi pengaturan storage
alur Anda sebagai /Users/username/data
, log peristiwa disimpan di /Users/username/data/system/events
jalur di DBFS.
Jika Anda belum mengonfigurasi storage
pengaturan, lokasi log peristiwa default ada /pipelines/<pipeline-id>/system/events
di DBFS. Misalnya, jika ID alur Anda adalah 91de5e48-35ed-11ec-8d3d-0242ac130003
, lokasi penyimpanan adalah /pipelines/91de5e48-35ed-11ec-8d3d-0242ac130003/system/events
.
Anda dapat membuat tampilan untuk menyederhanakan kueri log peristiwa. Contoh berikut membuat tampilan sementara yang disebut event_log_raw
. Tampilan ini digunakan dalam contoh kueri log peristiwa yang disertakan dalam artikel ini:
CREATE OR REPLACE TEMP VIEW event_log_raw AS SELECT * FROM delta.`<event-log-path>`;
Ganti <event-log-path>
dengan lokasi log peristiwa.
Setiap instans eksekusi alur disebut pembaruan. Anda sering ingin mengekstrak informasi untuk pembaruan terbaru. Jalankan kueri berikut untuk menemukan pengidentifikasi untuk pembaruan terbaru dan simpan dalam latest_update_id
tampilan sementara. Tampilan ini digunakan dalam contoh kueri log peristiwa yang disertakan dalam artikel ini:
CREATE OR REPLACE TEMP VIEW latest_update AS SELECT origin.update_id AS id FROM event_log_raw WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;
Anda bisa mengkueri log peristiwa di buku catatan Azure Databricks atau editor SQL. Gunakan buku catatan atau editor SQL untuk menjalankan contoh kueri log peristiwa.
Katalog Unity
Jika alur Anda menerbitkan tabel ke Unity Catalog, Anda harus menggunakan event_log
fungsi bernilai tabel (TVF) untuk mengambil log peristiwa untuk alur. Anda mengambil log peristiwa untuk alur dengan meneruskan ID alur atau nama tabel ke TVF. Misalnya, untuk mengambil rekaman log peristiwa untuk alur dengan ID 04c78631-3dd7-4856-b2a6-7d84e9b2638b
:
SELECT * FROM event_log("04c78631-3dd7-4856-b2a6-7d84e9b2638b")
Untuk mengambil rekaman log peristiwa untuk alur yang membuat atau memiliki tabel my_catalog.my_schema.table1
:
SELECT * FROM event_log(TABLE(my_catalog.my_schema.table1))
Untuk memanggil TVF, Anda harus menggunakan kluster bersama atau gudang SQL. Misalnya, Anda dapat menggunakan notebook yang dilampirkan ke kluster bersama atau menggunakan editor SQL yang tersambung ke gudang SQL.
Untuk menyederhanakan kueri peristiwa untuk alur, pemilik alur dapat membuat tampilan melalui event_log
TVF. Contoh berikut membuat tampilan di atas log peristiwa untuk alur. Tampilan ini digunakan dalam contoh kueri log peristiwa yang disertakan dalam artikel ini.
Catatan
event_log
TVF hanya dapat dipanggil oleh pemilik alur dan tampilan yang dibuat melalui event_log
TVF hanya dapat dikueri oleh pemilik alur. Tampilan tidak dapat dibagikan dengan pengguna lain.
CREATE VIEW event_log_raw AS SELECT * FROM event_log("<pipeline-ID>");
Ganti <pipeline-ID>
dengan pengidentifikasi unik untuk alur Tabel Langsung Delta. Anda dapat menemukan ID di panel Detail alur di UI Tabel Langsung Delta.
Setiap instans eksekusi alur disebut pembaruan. Anda sering ingin mengekstrak informasi untuk pembaruan terbaru. Jalankan kueri berikut untuk menemukan pengidentifikasi untuk pembaruan terbaru dan simpan dalam latest_update_id
tampilan sementara. Tampilan ini digunakan dalam contoh kueri log peristiwa yang disertakan dalam artikel ini:
CREATE OR REPLACE TEMP VIEW latest_update AS SELECT origin.update_id AS id FROM event_log_raw WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;
Informasi silsilah kueri dari log peristiwa
Peristiwa yang berisi informasi tentang tindakan pengguna memiliki jenis peristiwa flow_definition
. Objek details:flow_definition
berisi output_dataset
dan input_datasets
menentukan setiap hubungan dalam grafik.
Anda bisa menggunakan kueri berikut untuk mengekstrak himpunan data input dan output untuk melihat informasi silsilah data:
SELECT
details:flow_definition.output_dataset as output_dataset,
details:flow_definition.input_datasets as input_dataset
FROM
event_log_raw,
latest_update
WHERE
event_type = 'flow_definition'
AND
origin.update_id = latest_update.id
output_dataset |
input_datasets |
---|---|
customers |
null |
sales_orders_raw |
null |
sales_orders_cleaned |
["customers", "sales_orders_raw"] |
sales_order_in_la |
["sales_orders_cleaned"] |
Kualitas data kueri dari log peristiwa
Jika Anda menentukan ekspektasi pada himpunan data di alur Anda, metrik kualitas data disimpan dalam details:flow_progress.data_quality.expectations
objek. Peristiwa yang berisi informasi tentang kualitas data memiliki jenis peristiwa flow_progress
. Contoh berikut menanyakan metrik kualitas data untuk pembaruan alur terakhir:
SELECT
row_expectations.dataset as dataset,
row_expectations.name as expectation,
SUM(row_expectations.passed_records) as passing_records,
SUM(row_expectations.failed_records) as failing_records
FROM
(
SELECT
explode(
from_json(
details :flow_progress :data_quality :expectations,
"array<struct<name: string, dataset: string, passed_records: int, failed_records: int>>"
)
) row_expectations
FROM
event_log_raw,
latest_update
WHERE
event_type = 'flow_progress'
AND origin.update_id = latest_update.id
)
GROUP BY
row_expectations.dataset,
row_expectations.name
dataset |
expectation |
passing_records |
failing_records |
---|---|---|---|
sales_orders_cleaned |
valid_order_number |
4083 | 0 |
Memantau backlog data dengan mengkueri log peristiwa
Tabel Langsung Delta melacak berapa banyak data yang ada di backlog dalam details:flow_progress.metrics.backlog_bytes
objek. Peristiwa yang berisi metrik backlog memiliki jenis flow_progress
peristiwa . Contoh berikut mengkueri metrik backlog untuk pembaruan alur terakhir:
SELECT
timestamp,
Double(details :flow_progress.metrics.backlog_bytes) as backlog
FROM
event_log_raw,
latest_update
WHERE
event_type ='flow_progress'
AND
origin.update_id = latest_update.id
Catatan
Metrik backlog mungkin tidak tersedia tergantung pada jenis sumber data alur dan versi Databricks Runtime.
Memantau peristiwa penskalaan otomatis yang ditingkatkan dari log peristiwa untuk alur tanpa mengaktifkan tanpa server
Untuk alur DLT yang tidak menggunakan komputasi tanpa server, log peristiwa mengambil perubahan ukuran kluster saat penskalaan otomatis yang ditingkatkan diaktifkan di alur Anda. Peristiwa yang berisi informasi tentang penskalakan otomatis yang ditingkatkan memiliki jenis autoscale
peristiwa . Informasi permintaan mengubah ukuran kluster disimpan dalam objek details:autoscale
. Contoh berikut mengkueri permintaan pengubahan ukuran kluster penskalaan otomatis yang disempurnakan untuk pembaruan alur terakhir:
SELECT
timestamp,
Double(
case
when details :autoscale.status = 'RESIZING' then details :autoscale.requested_num_executors
else null
end
) as starting_num_executors,
Double(
case
when details :autoscale.status = 'SUCCEEDED' then details :autoscale.requested_num_executors
else null
end
) as succeeded_num_executors,
Double(
case
when details :autoscale.status = 'PARTIALLY_SUCCEEDED' then details :autoscale.requested_num_executors
else null
end
) as partially_succeeded_num_executors,
Double(
case
when details :autoscale.status = 'FAILED' then details :autoscale.requested_num_executors
else null
end
) as failed_num_executors
FROM
event_log_raw,
latest_update
WHERE
event_type = 'autoscale'
AND
origin.update_id = latest_update.id
Memantau pemanfaatan sumber daya komputasi
cluster_resources
peristiwa menyediakan metrik pada jumlah slot tugas dalam kluster, berapa banyak slot tugas tersebut yang digunakan, dan berapa banyak tugas yang menunggu untuk dijadwalkan.
Saat penskalaan otomatis yang ditingkatkan diaktifkan, cluster_resources
peristiwa juga berisi metrik untuk algoritma penskalaan otomatis, termasuk latest_requested_num_executors
, dan optimal_num_executors
. Peristiwa juga menunjukkan status algoritma sebagai status yang berbeda seperti CLUSTER_AT_DESIRED_SIZE
, , SCALE_UP_IN_PROGRESS_WAITING_FOR_EXECUTORS
dan BLOCKED_FROM_SCALING_DOWN_BY_CONFIGURATION
.
Informasi ini dapat dilihat bersama dengan peristiwa penskalaan otomatis untuk memberikan gambaran keseluruhan penskalaan otomatis yang ditingkatkan.
Contoh berikut mengkueri riwayat ukuran antrean tugas untuk pembaruan alur terakhir:
SELECT
timestamp,
Double(details :cluster_resources.avg_num_queued_tasks) as queue_size
FROM
event_log_raw,
latest_update
WHERE
event_type = 'cluster_resources'
AND
origin.update_id = latest_update.id
Contoh berikut mengkueri riwayat pemanfaatan untuk pembaruan alur terakhir:
SELECT
timestamp,
Double(details :cluster_resources.avg_task_slot_utilization) as utilization
FROM
event_log_raw,
latest_update
WHERE
event_type = 'cluster_resources'
AND
origin.update_id = latest_update.id
Contoh berikut mengkueri riwayat jumlah pelaksana, disertai dengan metrik yang hanya tersedia untuk alur penskalaan otomatis yang ditingkatkan, termasuk jumlah pelaksana yang diminta oleh algoritma dalam permintaan terbaru, jumlah optimal pelaksana yang direkomendasikan oleh algoritma berdasarkan metrik terbaru, dan status algoritma penskalaan otomatis:
SELECT
timestamp,
Double(details :cluster_resources.num_executors) as current_executors,
Double(details :cluster_resources.latest_requested_num_executors) as latest_requested_num_executors,
Double(details :cluster_resources.optimal_num_executors) as optimal_num_executors,
details :cluster_resources.state as autoscaling_state
FROM
event_log_raw,
latest_update
WHERE
event_type = 'cluster_resources'
AND
origin.update_id = latest_update.id
Mengaudit alur Tabel Langsung Delta
Anda bisa menggunakan catatan log peristiwa Delta Live Tables dan log audit Azure Databricks lainnya untuk mendapatkan gambaran lengkap tentang bagaimana data diperbarui di Delta Live Tables.
Delta Live Tables menggunakan kredensial pemilik alur untuk menjalankan pembaruan. Anda dapat mengubah kredensial yang digunakan dengan memperbarui pemilik alur. Delta Live Tables mencatat tindakan yang dilakukan pengguna di alur, termasuk pembuatan alur, pengeditan terhadap konfigurasi, dan pemicuan pembaruan.
Lihat Peristiwa Katalog Unity untuk referensi peristiwa audit Katalog Unity.
Mengkueri tindakan pengguna di log peristiwa
Anda dapat menggunakan log peristiwa untuk mengaudit peristiwa, misalnya, tindakan pengguna. Peristiwa yang berisi informasi tentang tindakan pengguna memiliki jenis peristiwa user_action
.
Informasi tentang tindakan disimpan dalam user_action
objek di lapangan details
. Gunakan kueri berikut untuk membuat log audit peristiwa pengguna. Untuk membuat tampilan yang event_log_raw
digunakan dalam kueri ini, lihat Mengkueri log peristiwa.
SELECT timestamp, details:user_action:action, details:user_action:user_name FROM event_log_raw WHERE event_type = 'user_action'
timestamp |
action |
user_name |
---|---|---|
2021-05-20T19:36:03.517+0000 | START |
user@company.com |
2021-05-20T19:35:59.913+0000 | CREATE |
user@company.com |
2021-05-27T00:35:51.971+0000 | START |
user@company.com |
Informasi runtime
Anda dapat melihat informasi runtime untuk pembaruan alur, misalnya, versi Databricks Runtime untuk pembaruan:
SELECT details:create_update:runtime_version:dbr_version FROM event_log_raw WHERE event_type = 'create_update'
dbr_version |
---|
11.0 |